v1alpha2

package
v0.0.0-...-af4d92e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2024 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package v1alpha2 contains API Schema definitions for the keycloak v1alpha2 API group +kubebuilder:object:generate=true +groupName=keycloak.japannext.co.jp

Index

Constants

This section is empty.

Variables

View Source
var (
	LDAP_STORAGE_MAPPER        = "org.keycloak.storage.ldap.mappers.LDAPStorageMapper"
	USER_STORAGE_PROVIDER      = "org.keycloak.storage.UserStorageProvider"
	ROLE_LDAP_MAPPER           = "role-ldap-mapper"
	USER_ATTRIBUTE_LDAP_MAPPER = "user-attribute-ldap-mapper"
	GROUP_LDAP_MAPPER          = "group-ldap-mapper"
	LDAP_PROVIDER              = "ldap"
)
View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "keycloak.japannext.co.jp", Version: "v1alpha2"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func DiffComponentConfigs

func DiffComponentConfigs(x, y *map[string][]string) diff.Changelog

Return a diff of 2 component config

func Ptr

func Ptr[T any](v T) *T

func Unwrap

func Unwrap[T any](v *T) T

Types

type ApiStatus

type ApiStatus struct {
	// Whether the resource is synced, not synced, failed to sync, etc
	Phase Phase `json:"phase,omitempty"`
	// The time the resource was last updated.
	// +optional
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"`
}

+kubebuilder:object:generate=true

func (*ApiStatus) DeepCopy

func (in *ApiStatus) DeepCopy() *ApiStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiStatus.

func (*ApiStatus) DeepCopyInto

func (in *ApiStatus) DeepCopyInto(out *ApiStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BasicAuthSecret

type BasicAuthSecret struct {
	// The name of a secret of type `kubernetes.io/basic-auth` to authenticate to
	// keycloak as admin. The secret need to be in the same namespace as the KeycloakEndpoint.
	Name string `json:"name"`

	// Namespace where the secret resides. Only used for KeycloakClusterEndpoint.
	// Has no effect when used with KeycloakEndpoint.
	Namespace string `json:"namespace,omitempty"`
}

Reference a user/password data stored in a secret +kubebuilder:object:generate=true

func (*BasicAuthSecret) DeepCopy

func (in *BasicAuthSecret) DeepCopy() *BasicAuthSecret

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuthSecret.

func (*BasicAuthSecret) DeepCopyInto

func (in *BasicAuthSecret) DeepCopyInto(out *BasicAuthSecret)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CertificateLdapMapper

type CertificateLdapMapper struct {
	// +kubebuilder:default=false
	AlwaysReadValueFromLDAP bool `json:"alwaysReadValueFromLDAP"`
	// +kubebuilder:default=""
	AttributeDefaultValue string `json:"attributeDefaultValue,omitempty"`
	// +kubebuilder:default=""
	LDAPAttribute string `json:"ldapAttribute,omitempty"`
	// +kubebuilder:default=true
	ReadOnly bool `json:"readOnly"`
	// If true, attribute is mandatory in LDAP. Hence if there is no value in Keycloak DB,
	// the default or empty value will be set to be propagated to LDAP
	// +kubebuilder:default=false
	IsMandatoryInLDAP bool `json:"isMandatoryInLDAP"`
	// Should be true for binary LDAP attributes
	// +kubebuilder:default=false
	IsBinaryAttribute bool `json:"isBinaryAttribute"`
	// +kubebuilder:default=false
	IsDERFormatted bool `json:"isDERFormatted"`
	// +kubebuilder:default=""
	UserModelAttribute string `json:"userModelAttribute,omitempty"`
}

+kubebuilder:object:generate=true

func (*CertificateLdapMapper) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateLdapMapper.

func (*CertificateLdapMapper) DeepCopyInto

func (in *CertificateLdapMapper) DeepCopyInto(out *CertificateLdapMapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CertificateLdapMapper) ToComponentConfig

func (m *CertificateLdapMapper) ToComponentConfig() map[string][]string

type ConfigMapValue

type ConfigMapValue struct {
	// Name of the configMap referenced
	Name string `json:"name"`

	// Name of the configMap key to use
	Key string `json:"key"`

	// Namespace where the ConfigMap resides. Used only for KeycloakClusterEndpoint.
	// Has no effect when used with KeycloakEndpoint.
	Namespace string `json:"namespace,omitempty"`
}

Reference a value stored in a ConfigMap +kubebuilder:object:generate=true

func (*ConfigMapValue) DeepCopy

func (in *ConfigMapValue) DeepCopy() *ConfigMapValue

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapValue.

func (*ConfigMapValue) DeepCopyInto

func (in *ConfigMapValue) DeepCopyInto(out *ConfigMapValue)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EndpointPhase

type EndpointPhase string
const (
	ENDPOINT_SYNCED  EndpointPhase = "Synced"
	ENDPOINT_PENDING EndpointPhase = "Pending"
	ENDPOINT_ERROR   EndpointPhase = "Error"
)

type EndpointSelector

type EndpointSelector struct {
	// Kind of the resource representing a Keycloak endpoint
	// +kubebuilder:validation:Enum=KeycloakEndpoint;KeycloakClusterEndpoint
	// +kubebuilder:default=KeycloakEndpoint
	Kind string `json:"kind,omitempty"`
	// Name of the KeycloakEndpoint/KeycloakClusterEndpoint resource
	// +required
	Name string `json:"name,omitempty"`
}

Select a KeycloakEndpoint +kubebuilder:object:generate=true

func (*EndpointSelector) DeepCopy

func (in *EndpointSelector) DeepCopy() *EndpointSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSelector.

func (*EndpointSelector) DeepCopyInto

func (in *EndpointSelector) DeepCopyInto(out *EndpointSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FullNameLdapMapper

type FullNameLdapMapper struct {
	// +kubebuilder:default="cn"
	LDAPFullNameAttribute string `json:"ldapFullNameAttribute"`
	// +kubebuilder:default=true
	ReadOnly bool `json:"readOnly"`
	// +kubebuilder:default=false
	WriteOnly bool `json:"writeOnly"`
}

+kubebuilder:object:generate=true

func (*FullNameLdapMapper) DeepCopy

func (in *FullNameLdapMapper) DeepCopy() *FullNameLdapMapper

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FullNameLdapMapper.

func (*FullNameLdapMapper) DeepCopyInto

func (in *FullNameLdapMapper) DeepCopyInto(out *FullNameLdapMapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FullNameLdapMapper) ToComponentConfig

func (m *FullNameLdapMapper) ToComponentConfig() map[string][]string

type GroupLdapMapper

type GroupLdapMapper struct {
	// +kubebuilder:default=false
	DropNonExistingGroupsDuringSync bool `json:"dropNonExistingGroupsDuringSync"`
	// Name of LDAP attribute, which is used in group objects for name and RDN of group. Usually it will
	// be 'cn' . In this case typical group/role object may have DN like 'cn=Group1,ou=groups,dc=example,dc=org'
	// +kubebuilder:default="cn"
	GroupNameLdapAttribute string `json:"groupNameLdapAttribute,omitempty"`
	// Object class (or classes) of the group object. It's divided by comma if more classes needed. In typical LDAP
	// deployment it could be 'groupOfNames' . In Active Directory it's usually 'group'
	// +kubebuilder:default={"group"}
	GroupObjectClasses []string `json:"groupObjectClasses,omitempty"`
	// LDAP DN where are groups of this tree saved. For example 'ou=groups,dc=example,dc=org'
	// +required
	GroupsDn string `json:"groupsDn,omitempty"`
	// LDAP Filter adds additional custom filter to the whole query for retrieve LDAP groups. Leave this empty if no
	// additional filtering is needed and you want to retrieve all groups from LDAP. Otherwise make sure that filter
	// starts with '(' and ends with ')'
	// +optional
	GroupsLdapFilter string `json:"groupsLdapFilter,omitempty"`
	// Keycloak group path the LDAP groups are added to. For example if value '/Applications/App1' is used, then LDAP
	// groups will be available in Keycloak under group 'App1', which is child of top level group 'Applications'.
	// The default value is '/' so LDAP groups will be mapped to the Keycloak groups at the top level. The configured
	// group path must already exists in the Keycloak when creating this mapper.
	// +kubebuilder:default="/"
	GroupsPath string `json:"groupsPath"`
	// Ignore missing groups in the group hierarchy
	// +kubebuilder:default=false
	IgnoreMissingGroups bool `json:"ignoreMissingGroups"`
	// +kubebuilder:default=""
	MemberofLdapAttribute string `json:"memberofLdapAttribute"`
	// +kubebuilder:default=""
	MembershipAttributeType string `json:"membershipAttributeType"`
	// +kubebuilder:default=""
	MembershipLdapAttribute string `json:"membershipLdapAttribute"`
	// +kubebuilder:default=""
	MembershipUserLdapAttribute string `json:"membershipUserLdapAttribute"`
	// LDAP_ONLY means that all group mappings of users are retrieved from LDAP and saved into LDAP.
	// READ_ONLY is Read-only LDAP mode where group mappings are retrieved from both LDAP and DB and
	// merged together. New group joins are not saved to LDAP but to DB. IMPORT is Read-only LDAP mode
	// where group mappings are retrieved from LDAP just at the time when user is imported from LDAP and
	// then they are saved to local keycloak DB.
	// +kubebuilder:validation:Enum=IMPORT;LDAP_ONLY;READ_ONLY
	// +kubebuilder:default="READ_ONLY"
	Mode string `json:"mode"`
	// Flag whether group inheritance from LDAP should be propagated to Keycloak. If false, then all LDAP groups
	// will be mapped as flat top-level groups in Keycloak. Otherwise group inheritance is preserved into Keycloak,
	// but the group sync might fail if LDAP structure contains recursions or multiple parent groups per child groups
	// +kubebuilder:default=false
	PreserveGroupInheritance bool `json:"preserveGroupInheritance"`
	// Specify how to retrieve groups of user. LOAD_GROUPS_BY_MEMBER_ATTRIBUTE means that roles of user
	// will be retrieved by sending LDAP query to retrieve all groups where 'member' is our user.
	// GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE means that groups of user will be retrieved from 'memberOf'
	// attribute of our user. Or from the other attribute specified by 'Member-Of LDAP Attribute'.
	// LOAD_GROUPS_BY_MEMBER_ATTRIBUTE_RECURSIVELY is applicable just in Active Directory and it means that
	// groups of user will be retrieved recursively with usage of LDAP_MATCHING_RULE_IN_CHAIN Ldap extension.
	// +kubebuilder:validation:Enum=GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE;LOAD_GROUPS_BY_MEMBER_ATTRIBUTE;LOAD_GROUPS_BY_MEMBER_ATTRIBUTE_RECURSIVELY
	// +kubebuilder:default="GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE"
	UserRolesRetrieveStrategy string `json:"userRolesRetrieveStrategy"`
}

+kubebuilder:object:generate=true

func (*GroupLdapMapper) DeepCopy

func (in *GroupLdapMapper) DeepCopy() *GroupLdapMapper

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupLdapMapper.

func (*GroupLdapMapper) DeepCopyInto

func (in *GroupLdapMapper) DeepCopyInto(out *GroupLdapMapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GroupLdapMapper) ToComponentConfig

func (m *GroupLdapMapper) ToComponentConfig() map[string][]string

type GroupRepresentation

type GroupRepresentation struct {
	// Group ID
	// +optional
	ID string `json:"id,omitempty"`
	// Name of the group
	Name string `json:"name"`
}

func (*GroupRepresentation) DeepCopy

func (in *GroupRepresentation) DeepCopy() *GroupRepresentation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupRepresentation.

func (*GroupRepresentation) DeepCopyInto

func (in *GroupRepresentation) DeepCopyInto(out *GroupRepresentation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HardcodedAttributeMapper

type HardcodedAttributeMapper struct {
	// Name of the model attribute, which will be added when importing user from ldap
	// +kubebuilder:default=""
	UserModelAttributeName string `json:"userModelAttributeName,omitempty"`
	// Value of the model attribute, which will be added when importing user from ldap
	// +kubebuilder:default=""
	AttributeValue string `json:"attributeValue,omitempty"`
}

func (*HardcodedAttributeMapper) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HardcodedAttributeMapper.

func (*HardcodedAttributeMapper) DeepCopyInto

func (in *HardcodedAttributeMapper) DeepCopyInto(out *HardcodedAttributeMapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HardcodedAttributeMapper) ToComponentConfig

func (m *HardcodedAttributeMapper) ToComponentConfig() map[string][]string

type HardcodedLdapAttributeMapper

type HardcodedLdapAttributeMapper struct {
	// Name of the LDAP attribute, which will be added to the new user during registration
	LDAPAttributeName string `json:"ldapAttributeName"`
	// Value of the LDAP attribute, which will be added to the new user during registration.
	// You can either hardcode any value like 'foo' but you can also use some special tokens.
	// Only supported token right now is '${RANDOM}' , which will be replaced with some randomly generated String.
	LDAPAttributeValue string `json:"ldapAttributeValue"`
}

func (*HardcodedLdapAttributeMapper) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HardcodedLdapAttributeMapper.

func (*HardcodedLdapAttributeMapper) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HardcodedLdapAttributeMapper) ToComponentConfig

func (m *HardcodedLdapAttributeMapper) ToComponentConfig() map[string][]string

type HardcodedLdapGroupMapper

type HardcodedLdapGroupMapper struct {
	// Group to add the user in. Fill the full path of the group including path.
	// For example '/root-group/child-group'
	Group string `json:"group"`
}

func (*HardcodedLdapGroupMapper) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HardcodedLdapGroupMapper.

func (*HardcodedLdapGroupMapper) DeepCopyInto

func (in *HardcodedLdapGroupMapper) DeepCopyInto(out *HardcodedLdapGroupMapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HardcodedLdapGroupMapper) ToComponentConfig

func (m *HardcodedLdapGroupMapper) ToComponentConfig() map[string][]string

type HardcodedLdapRoleMapper

type HardcodedLdapRoleMapper struct {
	// Role to give to the user. For client roles, it should be in the format
	// `<clientID>.<role>`
	Role string `json:"role,omitempty"`
}

func (*HardcodedLdapRoleMapper) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HardcodedLdapRoleMapper.

func (*HardcodedLdapRoleMapper) DeepCopyInto

func (in *HardcodedLdapRoleMapper) DeepCopyInto(out *HardcodedLdapRoleMapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HardcodedLdapRoleMapper) ToComponentConfig

func (m *HardcodedLdapRoleMapper) ToComponentConfig() map[string][]string

type KeycloakClient

type KeycloakClient struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KeycloakClientSpec   `json:"spec,omitempty"`
	Status KeycloakClientStatus `json:"status,omitempty"`
}

KeycloakClient is the Schema for the keycloakclients API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:resource:shortName=kc,categories=keycloak +kubebuilder:printcolumn:name="CLIENT ID",type="string",JSONPath=".spec.config.clientId",description="Client ID of the keycloak client" +kubebuilder:printcolumn:name="PROTOCOL",type="string",JSONPath=".spec.config.protocol",description="Authentication protocol used by the client" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.api.phase",description="The status of the realm" +kubebuilder:printcolumn:name="LAST CHANGED",priority=1,type="date",JSONPath=".status.api.lastTransitionTime",description="The last time the resource was changed" +kubebuilder:printcolumn:name="BASE URL",priority=1,type="string",JSONPath=".spec.config.baseUrl",description="Base URL of the service"

func (*KeycloakClient) ApiStatus

func (i *KeycloakClient) ApiStatus() *ApiStatus

func (*KeycloakClient) DeepCopy

func (in *KeycloakClient) DeepCopy() *KeycloakClient

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClient.

func (*KeycloakClient) DeepCopyInto

func (in *KeycloakClient) DeepCopyInto(out *KeycloakClient)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClient) DeepCopyObject

func (in *KeycloakClient) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakClient) Default

func (r *KeycloakClient) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*KeycloakClient) Endpoint

func (i *KeycloakClient) Endpoint() EndpointSelector

func (*KeycloakClient) Realm

func (i *KeycloakClient) Realm() string

func (*KeycloakClient) SetupWebhookWithManager

func (r *KeycloakClient) SetupWebhookWithManager(mgr ctrl.Manager) error

type KeycloakClientList

type KeycloakClientList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakClient `json:"items"`
}

KeycloakClientList contains a list of KeycloakClient +kubebuilder:object:root=true

func (*KeycloakClientList) DeepCopy

func (in *KeycloakClientList) DeepCopy() *KeycloakClientList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientList.

func (*KeycloakClientList) DeepCopyInto

func (in *KeycloakClientList) DeepCopyInto(out *KeycloakClientList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClientList) DeepCopyObject

func (in *KeycloakClientList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakClientProtocolMapper

type KeycloakClientProtocolMapper struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KeycloakClientProtocolMapperSpec   `json:"spec,omitempty"`
	Status KeycloakClientProtocolMapperStatus `json:"status,omitempty"`
}

KeycloakClientProtocolMapper is the Schema for the keycloakclientprotocolmappers API +kubebuilder:object:root=true +kubebuilder:subresource:status

func (*KeycloakClientProtocolMapper) ApiStatus

func (i *KeycloakClientProtocolMapper) ApiStatus() *ApiStatus

func (*KeycloakClientProtocolMapper) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientProtocolMapper.

func (*KeycloakClientProtocolMapper) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClientProtocolMapper) DeepCopyObject

func (in *KeycloakClientProtocolMapper) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakClientProtocolMapper) Endpoint

func (*KeycloakClientProtocolMapper) Realm

type KeycloakClientProtocolMapperList

type KeycloakClientProtocolMapperList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakClientProtocolMapper `json:"items"`
}

KeycloakClientProtocolMapperList contains a list of KeycloakClientProtocolMapper +kubebuilder:object:root=true

func (*KeycloakClientProtocolMapperList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientProtocolMapperList.

func (*KeycloakClientProtocolMapperList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClientProtocolMapperList) DeepCopyObject

func (in *KeycloakClientProtocolMapperList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakClientProtocolMapperSpec

type KeycloakClientProtocolMapperSpec struct {
	Endpoint EndpointSelector `json:"endpoint,omitempty"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Realm string `json:"realm"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Client string                 `json:"client"`
	Config gocloak.ProtocolMapper `json:"config,omitempty"`
}

KeycloakClientProtocolMapperSpec defines the desired state of KeycloakClientProtocolMapper

func (*KeycloakClientProtocolMapperSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientProtocolMapperSpec.

func (*KeycloakClientProtocolMapperSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClientProtocolMapperStatus

type KeycloakClientProtocolMapperStatus struct {
	// The ID of the client
	ClientID string `json:"clientID,omitempty"`
	// The ID of the protocol mapper managed
	ProtocolMapperID string `json:"protocolMapperID,omitempty"`
	// Base status
	// +optional
	Api ApiStatus `json:"api,omitempty"`
}

KeycloakClientProtocolMapperStatus defines the observed state of KeycloakClientProtocolMapper

func (*KeycloakClientProtocolMapperStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientProtocolMapperStatus.

func (*KeycloakClientProtocolMapperStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClientRole

type KeycloakClientRole struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	ClientName string `json:"clientName,omitempty"`

	Spec   KeycloakClientRoleSpec   `json:"spec,omitempty"`
	Status KeycloakClientRoleStatus `json:"status,omitempty"`
}

KeycloakClientRole is the Schema for the keycloakclientroles API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:resource:shortName=kcrole,categories=keycloak +kubebuilder:printcolumn:name="REALM",type="string",JSONPath=".spec.realm" +kubebuilder:printcolumn:name="CLIENT",type="string",JSONPath=".spec.client" +kubebuilder:printcolumn:name="ROLE",type="string",JSONPath=".spec.config.name" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.api.phase",description="The status of the resource" +kubebuilder:printcolumn:name="LAST CHANGED",priority=1,type="date",JSONPath=".status.api.lastTransitionTime",description="The last time the resource was changed" +kubebuilder:printcolumn:name="DESCRIPTION",type="string",priority=1,JSONPath=".spec.config.description",description="The description of the role"

func (*KeycloakClientRole) ApiStatus

func (i *KeycloakClientRole) ApiStatus() *ApiStatus

func (*KeycloakClientRole) DeepCopy

func (in *KeycloakClientRole) DeepCopy() *KeycloakClientRole

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientRole.

func (*KeycloakClientRole) DeepCopyInto

func (in *KeycloakClientRole) DeepCopyInto(out *KeycloakClientRole)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClientRole) DeepCopyObject

func (in *KeycloakClientRole) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakClientRole) Default

func (r *KeycloakClientRole) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*KeycloakClientRole) Endpoint

func (i *KeycloakClientRole) Endpoint() EndpointSelector

func (*KeycloakClientRole) Realm

func (i *KeycloakClientRole) Realm() string

func (*KeycloakClientRole) SetupWebhookWithManager

func (r *KeycloakClientRole) SetupWebhookWithManager(mgr ctrl.Manager) error

type KeycloakClientRoleList

type KeycloakClientRoleList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakClientRole `json:"items"`
}

KeycloakClientRoleList contains a list of KeycloakClientRole +kubebuilder:object:root=true

func (*KeycloakClientRoleList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientRoleList.

func (*KeycloakClientRoleList) DeepCopyInto

func (in *KeycloakClientRoleList) DeepCopyInto(out *KeycloakClientRoleList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClientRoleList) DeepCopyObject

func (in *KeycloakClientRoleList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakClientRoleMapping

type KeycloakClientRoleMapping struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KeycloakClientRoleMappingSpec   `json:"spec,omitempty"`
	Status KeycloakClientRoleMappingStatus `json:"status,omitempty"`
}

KeycloakClientRoleMapping is the Schema for the keycloakclientrolemappings API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="REALM",type="string",JSONPath=".spec.realm" +kubebuilder:printcolumn:name="CLIENT",type="string",JSONPath=".spec.client" +kubebuilder:printcolumn:name="ROLE",type="string",JSONPath=".spec.role" +kubebuilder:printcolumn:name="TYPE",type="string",JSONPath=".spec.subject.kind" +kubebuilder:printcolumn:name="SUBJECT",type="string",JSONPath=".spec.subject.name" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.api.phase",description="The status of the resource" +kubebuilder:printcolumn:name="LAST CHANGED",priority=1,type="date",JSONPath=".status.api.lastTransitionTime",description="The last time the resource was changed" +kubebuilder:resource:shortName=kcrolemap,categories=keycloak

func (*KeycloakClientRoleMapping) ApiStatus

func (i *KeycloakClientRoleMapping) ApiStatus() *ApiStatus

func (*KeycloakClientRoleMapping) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientRoleMapping.

func (*KeycloakClientRoleMapping) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClientRoleMapping) DeepCopyObject

func (in *KeycloakClientRoleMapping) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakClientRoleMapping) Endpoint

func (*KeycloakClientRoleMapping) Realm

func (i *KeycloakClientRoleMapping) Realm() string

type KeycloakClientRoleMappingList

type KeycloakClientRoleMappingList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakClientRoleMapping `json:"items"`
}

KeycloakClientRoleMappingList contains a list of KeycloakClientRoleMapping +kubebuilder:object:root=true

func (*KeycloakClientRoleMappingList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientRoleMappingList.

func (*KeycloakClientRoleMappingList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClientRoleMappingList) DeepCopyObject

func (in *KeycloakClientRoleMappingList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakClientRoleMappingSpec

type KeycloakClientRoleMappingSpec struct {
	Endpoint EndpointSelector `json:"endpoint,omitempty"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Realm string `json:"realm"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Client string `json:"client"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Role string `json:"role"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Subject Subject `json:"subject"`
}

func (*KeycloakClientRoleMappingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientRoleMappingSpec.

func (*KeycloakClientRoleMappingSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClientRoleMappingStatus

type KeycloakClientRoleMappingStatus struct {
	// The ID of the client owning the role concerned by the mapping
	ClientID string `json:"clientID,omitempty"`
	// The ID of the client role concerned by the mapping
	RoleID string `json:"roleID,omitempty"`
	// The ID of the Subject concerned by the mapping
	SubjectID string `json:"subjectID,omitempty"`
	// Base status
	// +optional
	Api ApiStatus `json:"api,omitempty"`
}

+k8s:openapi-gen=true +kubebuilder:subresource:status

func (*KeycloakClientRoleMappingStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientRoleMappingStatus.

func (*KeycloakClientRoleMappingStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClientRoleSpec

type KeycloakClientRoleSpec struct {
	Endpoint EndpointSelector `json:"endpoint,omitempty"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Realm string `json:"realm"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Client string       `json:"client"`
	Config gocloak.Role `json:"config"`
}

KeycloakClientRoleSpec defines the desired state of KeycloakClientRole +kubebuilder:object:generate=true

func (*KeycloakClientRoleSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientRoleSpec.

func (*KeycloakClientRoleSpec) DeepCopyInto

func (in *KeycloakClientRoleSpec) DeepCopyInto(out *KeycloakClientRoleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClientRoleStatus

type KeycloakClientRoleStatus struct {
	// The ID of the client the role belongs to
	ClientID string `json:"clientID,omitempty"`
	// The ID of the role managed
	RoleID string `json:"roleID,omitempty"`
	// Base status
	// +optional
	Api ApiStatus `json:"api,omitempty"`
}

+k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:validation:Optional

func (*KeycloakClientRoleStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientRoleStatus.

func (*KeycloakClientRoleStatus) DeepCopyInto

func (in *KeycloakClientRoleStatus) DeepCopyInto(out *KeycloakClientRoleStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClientScope

type KeycloakClientScope struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KeycloakClientScopeSpec   `json:"spec,omitempty"`
	Status KeycloakClientScopeStatus `json:"status,omitempty"`
}

KeycloakClientScope is the Schema for the keycloakclientscopes API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:resource:shortName=kcs,categories=keycloak +kubebuilder:printcolumn:name="REALM",type="string",JSONPath=".spec.realm",description="Realm of the client scope" +kubebuilder:printcolumn:name="PROTOCOL",type="string",JSONPath=".spec.config.protocol",description="Authentication protocol used by the client" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.api.phase",description="The status of the realm" +kubebuilder:printcolumn:name="LAST CHANGED",priority=1,type="date",JSONPath=".status.api.lastTransitionTime",description="The last time the resource was changed"

func (*KeycloakClientScope) ApiStatus

func (i *KeycloakClientScope) ApiStatus() *ApiStatus

func (*KeycloakClientScope) DeepCopy

func (in *KeycloakClientScope) DeepCopy() *KeycloakClientScope

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientScope.

func (*KeycloakClientScope) DeepCopyInto

func (in *KeycloakClientScope) DeepCopyInto(out *KeycloakClientScope)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClientScope) DeepCopyObject

func (in *KeycloakClientScope) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakClientScope) Endpoint

func (i *KeycloakClientScope) Endpoint() EndpointSelector

func (*KeycloakClientScope) Realm

func (i *KeycloakClientScope) Realm() string

type KeycloakClientScopeList

type KeycloakClientScopeList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakClientScope `json:"items"`
}

KeycloakClientScopeList contains a list of KeycloakClientScope +kubebuilder:object:root=true

func (*KeycloakClientScopeList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientScopeList.

func (*KeycloakClientScopeList) DeepCopyInto

func (in *KeycloakClientScopeList) DeepCopyInto(out *KeycloakClientScopeList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClientScopeList) DeepCopyObject

func (in *KeycloakClientScopeList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakClientScopeProtocolMapper

type KeycloakClientScopeProtocolMapper struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KeycloakClientScopeProtocolMapperSpec   `json:"spec,omitempty"`
	Status KeycloakClientScopeProtocolMapperStatus `json:"status,omitempty"`
}

KeycloakClientScopeProtocolMapper is the Schema for the keycloakclientscopeprotocolmappers API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:resource:shortName=kcspm,categories=keycloak +kubebuilder:printcolumn:name="REALM",type="string",JSONPath=".spec.realm",description="Realm of the client scope" +kubebuilder:printcolumn:name="SCOPE",type="string",JSONPath=".spec.clientScope",description="Name of the client scope" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.api.phase",description="The status of the realm" +kubebuilder:printcolumn:name="LAST CHANGED",priority=1,type="date",JSONPath=".status.api.lastTransitionTime",description="The last time the resource was changed"

func (*KeycloakClientScopeProtocolMapper) ApiStatus

func (*KeycloakClientScopeProtocolMapper) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientScopeProtocolMapper.

func (*KeycloakClientScopeProtocolMapper) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClientScopeProtocolMapper) DeepCopyObject

func (in *KeycloakClientScopeProtocolMapper) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakClientScopeProtocolMapper) Endpoint

func (*KeycloakClientScopeProtocolMapper) Realm

type KeycloakClientScopeProtocolMapperList

type KeycloakClientScopeProtocolMapperList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakClientScopeProtocolMapper `json:"items"`
}

KeycloakClientScopeProtocolMapperList contains a list of KeycloakClientScopeProtocolMapper +kubebuilder:object:root=true

func (*KeycloakClientScopeProtocolMapperList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientScopeProtocolMapperList.

func (*KeycloakClientScopeProtocolMapperList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClientScopeProtocolMapperList) DeepCopyObject

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakClientScopeProtocolMapperSpec

type KeycloakClientScopeProtocolMapperSpec struct {
	Endpoint EndpointSelector `json:"endpoint,omitempty"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Realm string `json:"realm"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	ClientScope string                 `json:"clientScope"`
	Config      gocloak.ProtocolMapper `json:"config,omitempty"`
}

KeycloakClientScopeProtocolMapperSpec defines the desired state of KeycloakClientScopeProtocolMapper

func (*KeycloakClientScopeProtocolMapperSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientScopeProtocolMapperSpec.

func (*KeycloakClientScopeProtocolMapperSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClientScopeProtocolMapperStatus

type KeycloakClientScopeProtocolMapperStatus struct {
	// The ID of the client scope
	ClientScopeID string `json:"clientScopeID,omitempty"`
	// The ID of the protocol mapper managed
	ProtocolMapperID string `json:"protocolMapperID,omitempty"`
	// Base status
	// +optional
	Api ApiStatus `json:"api,omitempty"`
}

KeycloakClientScopeProtocolMapperStatus defines the observed state of KeycloakClientScopeProtocolMapper

func (*KeycloakClientScopeProtocolMapperStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientScopeProtocolMapperStatus.

func (*KeycloakClientScopeProtocolMapperStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClientScopeSpec

type KeycloakClientScopeSpec struct {
	Endpoint EndpointSelector `json:"endpoint,omitempty"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Realm  string              `json:"realm"`
	Config gocloak.ClientScope `json:"config"`
}

KeycloakClientScopeSpec defines the desired state of KeycloakClientScope

func (*KeycloakClientScopeSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientScopeSpec.

func (*KeycloakClientScopeSpec) DeepCopyInto

func (in *KeycloakClientScopeSpec) DeepCopyInto(out *KeycloakClientScopeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClientScopeStatus

type KeycloakClientScopeStatus struct {
	// The ID of the client scope deployed
	ClientScopeID string `json:"clientScopeID,omitempty"`
	// Base status
	// +optional
	Api ApiStatus `json:"api,omitempty"`
}

KeycloakClientScopeStatus defines the observed state of KeycloakClientScope +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:validation:Optional

func (*KeycloakClientScopeStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientScopeStatus.

func (*KeycloakClientScopeStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClientSpec

type KeycloakClientSpec struct {
	Endpoint EndpointSelector `json:"endpoint,omitempty"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Realm  string          `json:"realm"`
	Secret SecretGenerator `json:"secret,omitempty"`
	Config gocloak.Client  `json:"config"`
}

func (*KeycloakClientSpec) DeepCopy

func (in *KeycloakClientSpec) DeepCopy() *KeycloakClientSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientSpec.

func (*KeycloakClientSpec) DeepCopyInto

func (in *KeycloakClientSpec) DeepCopyInto(out *KeycloakClientSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClientStatus

type KeycloakClientStatus struct {
	// The ID of the OIDC/SAML client that is created / managed
	ClientID string `json:"clientID,omitempty"`
	// Base status
	// +optional
	Api ApiStatus `json:"api,omitempty"`
}

+k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:validation:Optional

func (*KeycloakClientStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClientStatus.

func (*KeycloakClientStatus) DeepCopyInto

func (in *KeycloakClientStatus) DeepCopyInto(out *KeycloakClientStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakClusterEndpoint

type KeycloakClusterEndpoint struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KeycloakEndpointSpec   `json:"spec,omitempty"`
	Status KeycloakEndpointStatus `json:"status,omitempty"`
}

KeycloakClusterEndpoint represent a Keycloak endpoint. It is similar to KeycloakEndpoint, but not scoped +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:resource:scope=Cluster,shortName=kce,categories=keycloak +kubebuilder:printcolumn:name="VERSION",type="string",JSONPath=".status.version",description="The version of the endpoint" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.phase",description="The status of the endpoint" +kubebuilder:printcolumn:name="LAST CONNECTION",priority=1,type="date",JSONPath=".status.lastSuccess",description="The last time the endpoint was connected" +kubebuilder:printcolumn:name="URL",type="string",priority=1,JSONPath=".spec.baseUrl",description="The URL of the endpoint"

func (*KeycloakClusterEndpoint) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClusterEndpoint.

func (*KeycloakClusterEndpoint) DeepCopyInto

func (in *KeycloakClusterEndpoint) DeepCopyInto(out *KeycloakClusterEndpoint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClusterEndpoint) DeepCopyObject

func (in *KeycloakClusterEndpoint) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakClusterEndpoint) EndpointSpec

func (i *KeycloakClusterEndpoint) EndpointSpec() *KeycloakEndpointSpec

func (*KeycloakClusterEndpoint) EndpointStatus

func (i *KeycloakClusterEndpoint) EndpointStatus() *KeycloakEndpointStatus

type KeycloakClusterEndpointList

type KeycloakClusterEndpointList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakClusterEndpoint `json:"items"`
}

KeycloakClusterEndpointList contains a list of KeycloakClusterEndpoint +kubebuilder:object:root=true

func (*KeycloakClusterEndpointList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakClusterEndpointList.

func (*KeycloakClusterEndpointList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakClusterEndpointList) DeepCopyObject

func (in *KeycloakClusterEndpointList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakEndpoint

type KeycloakEndpoint struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KeycloakEndpointSpec   `json:"spec,omitempty"`
	Status KeycloakEndpointStatus `json:"status,omitempty"`
}

KeycloakEndpoint is the Schema for the keycloakendpoints API +genclient +k8s:openapi-gen=true +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="VERSION",type="string",JSONPath=".status.version",description="The version of the endpoint" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.phase",description="The status of the endpoint" +kubebuilder:printcolumn:name="LAST CONNECTION",priority=1,type="date",JSONPath=".status.lastSuccess",description="The last time the endpoint was connected" +kubebuilder:printcolumn:name="URL",type="string",priority=1,JSONPath=".spec.baseUrl",description="The URL of the endpoint"

func (*KeycloakEndpoint) DeepCopy

func (in *KeycloakEndpoint) DeepCopy() *KeycloakEndpoint

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakEndpoint.

func (*KeycloakEndpoint) DeepCopyInto

func (in *KeycloakEndpoint) DeepCopyInto(out *KeycloakEndpoint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakEndpoint) DeepCopyObject

func (in *KeycloakEndpoint) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakEndpoint) EndpointSpec

func (i *KeycloakEndpoint) EndpointSpec() *KeycloakEndpointSpec

func (*KeycloakEndpoint) EndpointStatus

func (i *KeycloakEndpoint) EndpointStatus() *KeycloakEndpointStatus

type KeycloakEndpointList

type KeycloakEndpointList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakEndpoint `json:"items"`
}

KeycloakEndpointList contains a list of KeycloakEndpoint +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*KeycloakEndpointList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakEndpointList.

func (*KeycloakEndpointList) DeepCopyInto

func (in *KeycloakEndpointList) DeepCopyInto(out *KeycloakEndpointList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakEndpointList) DeepCopyObject

func (in *KeycloakEndpointList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakEndpointSpec

type KeycloakEndpointSpec struct {
	// URL to the keycloak server to manage
	BaseUrl string `json:"baseUrl,omitempty"`

	// Additional prefix of the keycloak API (if needed). Should sometimes
	// be set to `/auth` for some deployments of keycloak.
	// +kubebuilder:default=""
	BasePath string `json:"basePath,omitempty"`

	// Use the value stored in a ConfigMap for the CA certificate
	CaConfigMap *ConfigMapValue `json:"caConfigMap,omitempty"`

	// Ignore TLS CA verification. It's recommended to set `caConfigMap` instead.
	// +kubebuilder:default=false
	TlsInsecureSkipVerify bool `json:"tlsInsecureSkipVerify,omitempty"`

	// Realm to use for admin connections. Defaults to `master`.
	// +kubebuilder:default="master"
	Realm string `json:"realm"`

	// Timeout in seconds for the HTTP connection. Defaults to 10 seconds.
	// +kubebuilder:default=10
	Timeout int `json:"timeout"`

	// The name of a secret of type `kubernetes.io/basic-auth` to authenticate to
	// keycloak as admin. The secret need to be in the same namespace as the KeycloakEndpoint.
	// When used in the context of KeycloakClusterEndpoint, a the `namespace` of the secret can
	// be set.
	BasicAuthSecret BasicAuthSecret `json:"basicAuthSecret,omitempty"`

	// A list of rules to complete kubernetes RBAC. If the resource being reconciled matches
	// one of this rule, the action will be executed (allow/reject). If no rule match, the
	// `noMatchBehavior` will be executed. If nothing matches, it will be allowed.
	// If you need to default to forbidden, add a `{action: reject}` as the last rule.
	Rules []Rule `json:"rules,omitempty"`
}

KeycloakEndpointSpec defines the desired state of KeycloakEndpoint +kubebuilder:object:generate=true +k8s:openapi-gen=true

func (*KeycloakEndpointSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakEndpointSpec.

func (*KeycloakEndpointSpec) DeepCopyInto

func (in *KeycloakEndpointSpec) DeepCopyInto(out *KeycloakEndpointSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakEndpointStatus

type KeycloakEndpointStatus struct {
	// Whether the CRD could connect to the keycloak endpoint successfully
	Phase   EndpointPhase `json:"phase,omitempty"`
	Version string        `json:"version,omitempty"`
	Message string        `json:"message,omitempty"`
	// +optional
	LastSuccess *metav1.Time `json:"lastSuccess,omitempty"`
}

KeycloakEndpointStatus defines the observed state of KeycloakEndpoint +k8s:openapi-gen=true +kubebuilder:subresource:status

func (*KeycloakEndpointStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakEndpointStatus.

func (*KeycloakEndpointStatus) DeepCopyInto

func (in *KeycloakEndpointStatus) DeepCopyInto(out *KeycloakEndpointStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakLDAPFederation

type KeycloakLDAPFederation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KeycloakLDAPFederationSpec   `json:"spec,omitempty"`
	Status KeycloakLDAPFederationStatus `json:"status,omitempty"`
}

KeycloakLDAPFederation is the Schema for the keycloakldapfederations API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:resource:shortName=kldap,categories=keycloak +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.api.phase" +kubebuilder:printcolumn:name="LAST CHANGED",priority=1,type="date",JSONPath=".status.api.lastTransitionTime",description="The last time the resource was changed"

func (*KeycloakLDAPFederation) ApiStatus

func (i *KeycloakLDAPFederation) ApiStatus() *ApiStatus

func (*KeycloakLDAPFederation) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakLDAPFederation.

func (*KeycloakLDAPFederation) DeepCopyInto

func (in *KeycloakLDAPFederation) DeepCopyInto(out *KeycloakLDAPFederation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakLDAPFederation) DeepCopyObject

func (in *KeycloakLDAPFederation) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakLDAPFederation) Default

func (r *KeycloakLDAPFederation) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*KeycloakLDAPFederation) Endpoint

func (*KeycloakLDAPFederation) Realm

func (i *KeycloakLDAPFederation) Realm() string

func (*KeycloakLDAPFederation) SetupWebhookWithManager

func (r *KeycloakLDAPFederation) SetupWebhookWithManager(mgr ctrl.Manager) error

type KeycloakLDAPFederationList

type KeycloakLDAPFederationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakLDAPFederation `json:"items"`
}

KeycloakLDAPFederationList contains a list of KeycloakLDAPFederation +kubebuilder:object:root=true

func (*KeycloakLDAPFederationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakLDAPFederationList.

func (*KeycloakLDAPFederationList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakLDAPFederationList) DeepCopyObject

func (in *KeycloakLDAPFederationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakLDAPFederationSpec

type KeycloakLDAPFederationSpec struct {
	Endpoint EndpointSelector `json:"endpoint,omitempty"`
	Realm    string           `json:"realm"`
	Config   *LdapFederation  `json:"config,omitempty"`
}

KeycloakLDAPFederationSpec defines the desired state of KeycloakLDAPFederation

func (*KeycloakLDAPFederationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakLDAPFederationSpec.

func (*KeycloakLDAPFederationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakLDAPFederationStatus

type KeycloakLDAPFederationStatus struct {
	// ID of the component representing the managed LDAP federation
	ComponentID string `json:"componentID,omitempty"`
	// Result of the last successful sync
	// +optional
	Result *gocloak.LDAPSyncResult `json:"result,omitempty"`
	// Base status
	// +optional
	Api ApiStatus `json:"api,omitempty"`
}

KeycloakLDAPFederationStatus defines the observed state of KeycloakLDAPFederation +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:validation:Optional

func (*KeycloakLDAPFederationStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakLDAPFederationStatus.

func (*KeycloakLDAPFederationStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakLDAPMapper

type KeycloakLDAPMapper struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KeycloakLDAPMapperSpec   `json:"spec,omitempty"`
	Status KeycloakLDAPMapperStatus `json:"status,omitempty"`
}

KeycloakLDAPMapper is the Schema for the keycloakldapmappers API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:resource:shortName=kldapmapper,categories=keycloak +kubebuilder:printcolumn:name="TYPE",type="string",JSONPath=".spec.type" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.api.phase" +kubebuilder:printcolumn:name="LAST CHANGED",priority=1,type="date",JSONPath=".status.api.lastTransitionTime",description="The last time the resource was changed"

func (*KeycloakLDAPMapper) ApiStatus

func (i *KeycloakLDAPMapper) ApiStatus() *ApiStatus

func (*KeycloakLDAPMapper) DeepCopy

func (in *KeycloakLDAPMapper) DeepCopy() *KeycloakLDAPMapper

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakLDAPMapper.

func (*KeycloakLDAPMapper) DeepCopyInto

func (in *KeycloakLDAPMapper) DeepCopyInto(out *KeycloakLDAPMapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakLDAPMapper) DeepCopyObject

func (in *KeycloakLDAPMapper) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakLDAPMapper) Endpoint

func (i *KeycloakLDAPMapper) Endpoint() EndpointSelector

func (*KeycloakLDAPMapper) Realm

func (i *KeycloakLDAPMapper) Realm() string

func (*KeycloakLDAPMapper) ToComponent

func (i *KeycloakLDAPMapper) ToComponent(fid string) (*gocloak.Component, error)

type KeycloakLDAPMapperList

type KeycloakLDAPMapperList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakLDAPMapper `json:"items"`
}

KeycloakLDAPMapperList contains a list of KeycloakLDAPMapper +kubebuilder:object:root=true

func (*KeycloakLDAPMapperList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakLDAPMapperList.

func (*KeycloakLDAPMapperList) DeepCopyInto

func (in *KeycloakLDAPMapperList) DeepCopyInto(out *KeycloakLDAPMapperList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakLDAPMapperList) DeepCopyObject

func (in *KeycloakLDAPMapperList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakLDAPMapperSpec

type KeycloakLDAPMapperSpec struct {
	Endpoint EndpointSelector `json:"endpoint,omitempty"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Realm string `json:"realm"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Federation string `json:"federation"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:Enum=user-attribute-ldap-mapper;group-ldap-mapper;role-ldap-mapper
	Type string `json:"type"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Name string `json:"name"`
	// +optional
	GroupLdapMapper *GroupLdapMapper `json:"groupLdapMapper,omitempty"`
	// +optional
	UserAttributeLdapMapper *UserAttributeLdapMapper `json:"userAttributeLdapMapper,omitempty"`
	// +optional
	RoleLdapMapper *RoleLdapMapper `json:"roleLdapMapper,omitempty"`
	// +optional
	FullNameLdapMapper *FullNameLdapMapper `json:"fullNameLdapMapper,omitempty"`
	// +optional
	CertificateLdapMapper *CertificateLdapMapper `json:"certificateLdapMapper,omitempty"`
	// +optional
	HardcodedLdapGroupMapper *HardcodedLdapGroupMapper `json:"hardcodedLdapGroupMapper,omitempty"`
	// +optional
	HardcodedLdapAttributeMapper *HardcodedLdapAttributeMapper `json:"hardcodedLdapAttributeMapper,omitempty"`
	// +optional
	HardcodedAttributeMapper *HardcodedAttributeMapper `json:"hardcodedAttributeMapper,omitempty"`
	// +optional
	HardcodedLdapRoleMapper *HardcodedLdapRoleMapper `json:"hardcodedLdapRoleMapper,omitempty"`
	// +optional
	MSADUserAccountControlMapper *MSADUserAccountControlMapper `json:"msadUserAccountControlMapper,omitempty"`
}

KeycloakLDAPMapperSpec defines the desired state of KeycloakLDAPMapper

func (*KeycloakLDAPMapperSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakLDAPMapperSpec.

func (*KeycloakLDAPMapperSpec) DeepCopyInto

func (in *KeycloakLDAPMapperSpec) DeepCopyInto(out *KeycloakLDAPMapperSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakLDAPMapperStatus

type KeycloakLDAPMapperStatus struct {
	// ID of the component representing the managed LDAP mapper
	ComponentID string `json:"componentID,omitempty"`
	// ID of the LDAP Federation it belongs to
	FederationID string `json:"federationID,omitempty"`
	// Result of the last successful sync
	// +optional
	Result *gocloak.LDAPSyncResult `json:"result,omitempty"`
	// Base status
	// +optional
	Api ApiStatus `json:"api,omitempty"`
}

KeycloakLDAPMapperStatus defines the observed state of KeycloakLDAPMapper

func (*KeycloakLDAPMapperStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakLDAPMapperStatus.

func (*KeycloakLDAPMapperStatus) DeepCopyInto

func (in *KeycloakLDAPMapperStatus) DeepCopyInto(out *KeycloakLDAPMapperStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakRealm

type KeycloakRealm struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KeycloakRealmSpec   `json:"spec,omitempty"`
	Status KeycloakRealmStatus `json:"status,omitempty"`
}

KeycloakRealm is the Schema for the keycloakrealms API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:object:generate=true +kubebuilder:storageversion +kubebuilder:resource:shortName=kr,categories=keycloak +kubebuilder:printcolumn:name="DISPLAY NAME",type="string",JSONPath=".spec.config.displayName",description="Display name of the realm" +kubebuilder:printcolumn:name="ENABLED",type="boolean",JSONPath=".spec.config.enabled",description="Whether the realm is enabled" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.api.phase",description="The status of the realm" +kubebuilder:printcolumn:name="LAST TRANSITION",priority=1,type="date",JSONPath=".status.api.lastTransitionTime",description="The last time the resource was changed"

func (*KeycloakRealm) ApiStatus

func (i *KeycloakRealm) ApiStatus() *ApiStatus

func (*KeycloakRealm) DeepCopy

func (in *KeycloakRealm) DeepCopy() *KeycloakRealm

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakRealm.

func (*KeycloakRealm) DeepCopyInto

func (in *KeycloakRealm) DeepCopyInto(out *KeycloakRealm)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakRealm) DeepCopyObject

func (in *KeycloakRealm) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakRealm) Default

func (r *KeycloakRealm) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*KeycloakRealm) Endpoint

func (i *KeycloakRealm) Endpoint() EndpointSelector

func (*KeycloakRealm) Realm

func (i *KeycloakRealm) Realm() string

func (*KeycloakRealm) SetupWebhookWithManager

func (r *KeycloakRealm) SetupWebhookWithManager(mgr ctrl.Manager) error

type KeycloakRealmList

type KeycloakRealmList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakRealm `json:"items"`
}

KeycloakRealmList contains a list of KeycloakRealm +kubebuilder:object:root=true

func (*KeycloakRealmList) DeepCopy

func (in *KeycloakRealmList) DeepCopy() *KeycloakRealmList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakRealmList.

func (*KeycloakRealmList) DeepCopyInto

func (in *KeycloakRealmList) DeepCopyInto(out *KeycloakRealmList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakRealmList) DeepCopyObject

func (in *KeycloakRealmList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakRealmRole

type KeycloakRealmRole struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   KeycloakRealmRoleSpec   `json:"spec,omitempty"`
	Status KeycloakRealmRoleStatus `json:"status,omitempty"`
}

KeycloakRealmRole is the Schema for the keycloakrealmroles API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:resource:shortName=krrole,categories=keycloak +kubebuilder:printcolumn:name="REALM",type="string",JSONPath=".spec.realm" +kubebuilder:printcolumn:name="ROLE",type="string",JSONPath=".spec.config.name" +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.api.phase",description="The status of the resource" +kubebuilder:printcolumn:name="LAST CHANGED",priority=1,type="date",JSONPath=".status.api.lastTransitionTime",description="The last time the resource was changed" +kubebuilder:printcolumn:name="DESCRIPTION",type="string",priority=1,JSONPath=".spec.config.description",description="The description of the role"

func (*KeycloakRealmRole) ApiStatus

func (i *KeycloakRealmRole) ApiStatus() *ApiStatus

func (*KeycloakRealmRole) DeepCopy

func (in *KeycloakRealmRole) DeepCopy() *KeycloakRealmRole

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakRealmRole.

func (*KeycloakRealmRole) DeepCopyInto

func (in *KeycloakRealmRole) DeepCopyInto(out *KeycloakRealmRole)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakRealmRole) DeepCopyObject

func (in *KeycloakRealmRole) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*KeycloakRealmRole) Endpoint

func (i *KeycloakRealmRole) Endpoint() EndpointSelector

func (*KeycloakRealmRole) Realm

func (i *KeycloakRealmRole) Realm() string

type KeycloakRealmRoleList

type KeycloakRealmRoleList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []KeycloakRealmRole `json:"items"`
}

KeycloakRealmRoleList contains a list of KeycloakRealmRole +kubebuilder:object:root=true

func (*KeycloakRealmRoleList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakRealmRoleList.

func (*KeycloakRealmRoleList) DeepCopyInto

func (in *KeycloakRealmRoleList) DeepCopyInto(out *KeycloakRealmRoleList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeycloakRealmRoleList) DeepCopyObject

func (in *KeycloakRealmRoleList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeycloakRealmRoleSpec

type KeycloakRealmRoleSpec struct {
	Endpoint EndpointSelector `json:"endpoint,omitempty"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Realm  string       `json:"realm"`
	Config gocloak.Role `json:"config"`
}

KeycloakRealmRoleSpec defines the desired state of KeycloakRealmRole

func (*KeycloakRealmRoleSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakRealmRoleSpec.

func (*KeycloakRealmRoleSpec) DeepCopyInto

func (in *KeycloakRealmRoleSpec) DeepCopyInto(out *KeycloakRealmRoleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakRealmRoleStatus

type KeycloakRealmRoleStatus struct {
	// The ID of the role managed
	RoleID string `json:"roleID,omitempty"`
	// Base status
	// +optional
	Api ApiStatus `json:"api,omitempty"`
}

KeycloakRealmRoleStatus defines the observed state of KeycloakRealmRole

func (*KeycloakRealmRoleStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakRealmRoleStatus.

func (*KeycloakRealmRoleStatus) DeepCopyInto

func (in *KeycloakRealmRoleStatus) DeepCopyInto(out *KeycloakRealmRoleStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakRealmSpec

type KeycloakRealmSpec struct {
	Endpoint EndpointSelector `json:"endpoint,omitempty"`
	// +kubebuilder:validation:Required
	Config gocloak.RealmRepresentation `json:"config"`
}

KeycloakRealmSpec defines the desired state of KeycloakRealm +kubebuilder:object:generate=true +k8s:openapi-gen=true

func (*KeycloakRealmSpec) DeepCopy

func (in *KeycloakRealmSpec) DeepCopy() *KeycloakRealmSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakRealmSpec.

func (*KeycloakRealmSpec) DeepCopyInto

func (in *KeycloakRealmSpec) DeepCopyInto(out *KeycloakRealmSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeycloakRealmStatus

type KeycloakRealmStatus struct {
	// The ID of the realm managed
	// +optional
	RealmID string `json:"realmId,omitempty"`

	// Base status
	// +optional
	Api ApiStatus `json:"api,omitempty"`
}

+k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:validation:Optional

func (*KeycloakRealmStatus) DeepCopy

func (in *KeycloakRealmStatus) DeepCopy() *KeycloakRealmStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeycloakRealmStatus.

func (*KeycloakRealmStatus) DeepCopyInto

func (in *KeycloakRealmStatus) DeepCopyInto(out *KeycloakRealmStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LdapFederation

type LdapFederation struct {
	// Enable/disable HTTP authentication of users with SPNEGO/Kerberos tokens. The data about authenticated users
	// will be provisioned from this LDAP server.
	// +kubebuilder:default=false
	AllowKerberosAuthentication bool `json:"allowKerberosAuthentication"`
	// Count of LDAP users to be imported from LDAP to Keycloak within a single transaction
	// +kubebuilder:default=1000
	BatchSizeForSync int `json:"batchSizeForSync"`
	// Name of a kubernetes secret holding the `bind_dn` and `bind_password` necessary to connect
	// +kubebuilder:default=""
	BindCredentialsSecret string `json:"bindCredentialsSecret,omitempty"`
	// Cache Policy for this storage provider. 'DEFAULT' is whatever the default settings are for the global cache.
	// 'EVICT_DAILY' is a time of day every day that the cache will be invalidated. 'EVICT_WEEKLY' is a day of the week
	// and time the cache will be invalidated. 'MAX_LIFESPAN' is the time in milliseconds that will be the lifespan of a
	// cache entry.
	// +kubebuilder:validation:Enum=DEFAULT;EVICT_DAILY;EVICT_WEEKLY;MAX_LIFESPAN
	// +kubebuilder:default="DEFAULT"
	CachePolicy string `json:"cachePolicy,omitempty"`
	// Day of the week the entry will become invalid
	// +kubebuilder:validation:Enum=monday;tuesday;wednesday;thursday;friday;saturday;sunday
	// +kubebuilder:default="sunday"
	EvictionDay string `json:"evictionDay,omitempty"`
	// Hour of the day the entry will become invalid (when selecting 'EVICT_DAILY' or 'EVICT_WEEKLY' cachePolicy)
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=23
	// +kubebuilder:default=0
	EvictionHour int `json:"evictionHour,omitempty"`
	// Minute of the hour the entry will become invalid (when selecting 'EVICT_DAILY' or 'EVICT_WEEKLY' cachePolicy)
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=59
	// +kubebuilder:default=0
	EvictionMinute int `json:"evictionMinute,omitempty"`
	// Max lifespan of cache entry in milliseconds (when selecting 'MAX_LIFESPAN' cachePolicy)
	// +kubebuilder:default=86400000
	MaxLifespan int `json:"maxLifespan,omitempty"`
	// Period for synchronization of changed or newly created LDAP users in seconds
	ChangedSyncPeriod *metav1.Duration `json:"changedSyncPeriod,omitempty"`
	// Determines if Keycloak should use connection pooling for accessing LDAP server.
	// +kubebuilder:default=false
	ConnectionPooling bool `json:"connectionPooling"`
	// Connection URL to your LDAP server
	// +required
	ConnectionUrl string `json:"connectionUrl"`
	// LDAP connection timeout in milliseconds
	ConnectionTimeout *metav1.Duration `json:"connectionTimeout,omitempty"`
	// READ_ONLY is a read-only LDAP store. WRITABLE means data will be synced back to LDAP on demand.
	// UNSYNCED means user data will be imported, but not synced back to LDAP.
	// +kubebuilder:validation:Enum=READ_ONLY;WRITABLE;UNSYNCED
	// +kubebuilder:default="READ_ONLY"
	EditMode string `json:"editMode,omitempty"`
	// Enable or disable the LDAP federation
	// +kubebuilder:default=true
	Enabled bool `json:"enabled"`
	// Period for full synchronization in seconds
	FullSyncPeriod *metav1.Duration `json:"fullSyncPeriod,omitempty"`
	// If true, LDAP users will be imported into the Keycloak DB and synced by the configured sync policies.
	// +kubebuilder:default=true
	ImportEnabled bool `json:"importEnabled"`
	// Whether the LDAP server supports pagination
	// +kubebuilder:default=false
	Pagination bool `json:"pagination"`
	// +kubebuilder:default=0
	Priority int `json:"priority"`
	// Name of the LDAP attribute, which is used as RDN (top attribute) of typical user DN. Usually it's the same as the Username LDAP attribute,
	// however it is not required. For example for Active directory, it is common to use 'cn' as RDN attribute when username attribute might be 'sAMAccountName'.
	// +kubebuilder:default=cn
	RdnLDAPAttribute string `json:"rdnLDAPAttribute,omitempty"`
	// Name of the LDAP federation
	// +required
	Name string `json:"name"`
	// Whether periodic synchronization of changed or newly created LDAP users to Keycloak should be enabled or not
	// +kubebuilder:default=false
	PeriodicChangedUsersSync bool `json:"periodicChangedUsersSync"`
	// Whether periodic full synchronization of LDAP users to Keycloak should be enabled or not
	// +kubebuilder:default=false
	PeriodicFullSync bool `json:"periodicFullSync"`
	// For one level, the search applies only for users in the DNs specified by User DNs. For subtree, the search applies to the whole subtree.
	// See LDAP documentation for more details.
	// +kubebuilder:validation:Enum="1";"2"
	// +kubebuilder:default="2"
	SearchScope string `json:"searchScope"`
	// Encrypts the connection to LDAP using STARTTLS, which will disable connection pooling
	// +kubebuilder:default=false
	StartTls bool `json:"startTls"`
	// +kubebuilder:default=false
	SyncRegistrations bool `json:"syncRegistrations"`
	// +kubebuilder:default=false
	TrustEmail bool `json:"trustEmail"`
	// User Kerberos login module for authenticating username/password against Kerberos server instead of authenticating against
	// LDAP server with Directory Service API
	// +kubebuilder:default=false
	UseKerberosForPasswordAuthentication bool `json:"useKerberosForPasswordAuthentication,omitempty"`
	// Use the LDAPv3 Password Modify Extended Operation (RFC-3062). The password modify extended operation usually requires that
	// LDAP user already has password in the LDAP server. So when this is used with 'Sync Registrations', it can be good to add
	// also 'Hardcoded LDAP attribute mapper' with randomly generated initial password.
	// +kubebuilder:default=false
	UsePasswordModifyExtendedOp bool `json:"usePasswordModifyExtendedOp"`
	// Specifies whether LDAP connection will use the Truststore SPI with the truststore configured in standalone.xml/domain.sml.
	// 'always' means that it will always use it. 'never' means that it will not use it. 'ldapsOnly' means that it will use
	// it if your connection URL use ldaps. Note that even if standalone.xml/domain.xml is not configured, the default java cacerts
	// or certificate specified by 'javax.net.ssl.trustStore' property will be used.
	// +kubebuilder:validation:Enum=always;ldapsOnly;never
	// +kubebuilder:default=ldapsOnly
	UseTruststoreSpi string `json:"useTruststoreSpi"`
	// All values of LDAP objectClass attribute for users in LDAP, divided by commas. For example: 'inetOrgPerson, organizationalPerson'.
	// Newly created Keycloak users will be written to LDAP with all those object classes and existing LDAP user records are found just
	// if they contain all those object classes.
	// +kubebuilder:default={'person'}
	UserObjectClasses []string `json:"userObjectClasses"`
	// Name of the LDAP attribute, which is mapped as Keycloak username. For many LDAP server vendors it can be 'uid'. For Active directory
	// it can be 'sAMAccountName' or 'cn'. The attribute should be filled for all LDAP user records you want to import from LDAP to Keycloak.
	// +kubebuilder:default=samaccountname
	UsernameLDAPAttribute string `json:"usernameLDAPAttribute,omitempty"`
	// Full DN of LDAP tree where your users are. This DN is the parent of LDAP users. It could be for example 'ou=users,dc=example,dc=com'
	// assuming that your typical user will have DN like 'uid='john',ou=users,dc=example,dc=com'.
	// +required
	UsersDn string `json:"usersDn,omitempty"`
	// Name of the LDAP attribute, which is used as a unique object identifier (UUID) for objects in LDAP. For many LDAP server vendors, it is
	// 'entryUUID'; however some are different. For example, for Active directory it should be 'objectGUID'. If your LDAP server does not support
	// the notion of UUID, you can use any other attribute that is supposed to be unique among LDAP users in tree. For example 'uid' or 'entryDN'.
	// +kubebuilder:default=objectGUID
	UuidLDAPAttribute string `json:"uuidLDAPAttribute,omitempty"`
	// Determines if Keycloak should validate the password with the realm password policy before updating it
	// +kubebuilder:default=false
	ValidatePasswordPolicy bool `json:"validatePasswordPolicy"`
	// LDAP vendor (provider)
	// +kubebuilder:validation:Enum=ad;rhds;other;tivoli;edirectory
	// +required
	Vendor string `json:"vendor,omitempty"`
}

+kubebuilder:object:generate=true

func (*LdapFederation) DeepCopy

func (in *LdapFederation) DeepCopy() *LdapFederation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LdapFederation.

func (*LdapFederation) DeepCopyInto

func (in *LdapFederation) DeepCopyInto(out *LdapFederation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*LdapFederation) ToComponent

func (ldap *LdapFederation) ToComponent(ctx context.Context, c client.Client, ns string) (*gocloak.Component, error)

type MSADUserAccountControlMapper

type MSADUserAccountControlMapper struct {
	// Applicable just for writable MSAD. If on, then updating password of MSAD user will use
	// LDAP_SERVER_POLICY_HINTS_OID extension, which means that advanced MSAD password policies
	// like 'password history' or 'minimal password age' will be applied. This extension works just
	// for MSAD 2008 R2 or newer.
	// +kubebuilder:default=false
	PasswordPolicyHintsEnabled bool `json:"passwordPolicyHintsEnabled"`
}

func (*MSADUserAccountControlMapper) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MSADUserAccountControlMapper.

func (*MSADUserAccountControlMapper) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MSADUserAccountControlMapper) ToComponentConfig

func (m *MSADUserAccountControlMapper) ToComponentConfig() map[string][]string

type Phase

type Phase string
const (
	SYNCED        Phase = "Synced"
	ERROR         Phase = "Error"
	FORBIDDEN     Phase = "Forbidden"
	NO_ENDPOINT   Phase = "NoEndpoint"
	WAITING       Phase = "Waiting"
	NOT_CONNECTED Phase = "NotConnected"
)

type RoleLdapMapper

type RoleLdapMapper struct {
	// Used just when 'User Roles Retrieve Strategy' is GET_ROLES_FROM_USER_MEMBEROF_ATTRIBUTE.
	// It specifies the name of the LDAP attribute on the LDAP user, which contains the roles
	// (LDAP Groups), which the user is member of. Usually it will be 'memberOf' and that's
	// also the default value.
	// +kubebuilder:default="memberOf"
	MemberofLdapAttribute string `json:"memberofLdapAttribute,omitempty"`
	// +kubebuilder:validation:Enum=DN;UID
	// +kubebuilder:default="DN"
	MembershipAttributeType string `json:"membershipAttributeType,omitempty"`
	// +kubebuilder:default=""
	MembershipLdapAttribute string `json:"membershipLdapAttribute,omitempty"`
	// +kubebuilder:default=""
	MembershipUserLdapAttribute string `json:"membershipUserLdapAttribute,omitempty"`
	// LDAP_ONLY means that all role mappings are retrieved from LDAP and saved into LDAP. READ_ONLY
	// is Read-only LDAP mode where role mappings are retrieved from both LDAP and DB and merged together.
	// New role grants are not saved to LDAP but to DB. IMPORT is Read-only LDAP mode where role mappings are
	// retrieved from LDAP just at the time when user is imported from LDAP and then they are saved to local keycloak DB.
	// +kubebuilder:validation:Enum=READ_ONLY;IMPORT;LDAP_ONLY
	// +kubebuilder:default="READ_ONLY"
	Mode string `json:"mode"`
	// +optional
	RoleObjectClasses []string `json:"roleObjectClasses,omitempty"`
	// +kubebuilder:default=""
	RolesDn string `json:"rolesDn,omitempty"`
	// If true, then LDAP role mappings will be mapped to realm role mappings in Keycloak. Otherwise it will be mapped to client role mappings
	// +kubebuilder:default=true
	UseRealmRolesMapping bool `json:"useRealmRoleMapping"`
	// Specify how to retrieve groups of user. LOAD_GROUPS_BY_MEMBER_ATTRIBUTE means that roles of user
	// will be retrieved by sending LDAP query to retrieve all groups where 'member' is our user.
	// GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE means that groups of user will be retrieved from 'memberOf'
	// attribute of our user. Or from the other attribute specified by 'Member-Of LDAP Attribute'.
	// LOAD_GROUPS_BY_MEMBER_ATTRIBUTE_RECURSIVELY is applicable just in Active Directory and it means that
	// groups of user will be retrieved recursively with usage of LDAP_MATCHING_RULE_IN_CHAIN Ldap extension.
	// +kubebuilder:validation:Enum=GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE;LOAD_GROUPS_BY_MEMBER_ATTRIBUTE;LOAD_GROUPS_BY_MEMBER_ATTRIBUTE_RECURSIVELY
	// +kubebuilder:default="LOAD_GROUPS_BY_MEMBER_ATTRIBUTE"
	UserRolesRetrieveStrategy string `json:"userRolesRetrieveStrategy"`
}

+kubebuilder:object:generate=true

func (*RoleLdapMapper) DeepCopy

func (in *RoleLdapMapper) DeepCopy() *RoleLdapMapper

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleLdapMapper.

func (*RoleLdapMapper) DeepCopyInto

func (in *RoleLdapMapper) DeepCopyInto(out *RoleLdapMapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RoleLdapMapper) ToComponentConfig

func (m *RoleLdapMapper) ToComponentConfig() map[string][]string

type Rule

type Rule struct {
	// A name to describe and document the rule.
	// +optional
	Name string `json:"name,omitempty"`
	// The authorization action to perform. Valid values: `allow`/`reject`.
	// +kubebuilder:validation:Enum=allow;reject
	Action string `json:"action"`
	// Resources that are allowed to be modified.
	// `*` and an empty array will authorize the rule for every resource
	Resources []string `json:"resources,omitempty"`
	// Namespaces allowed to manage resources
	// `*` and an empty array will authorize the rule for any namespace
	Namespaces []string `json:"namespaces,omitempty"`
	// Realms concerned by the constraint
	// `*` and an empty array will authorize the rule for any realm
	Realms []string `json:"realms,omitempty"`
}

A constraint. Can be match a resource being reconciled. +kubebuilder:object:generate=true

func (*Rule) DeepCopy

func (in *Rule) DeepCopy() *Rule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rule.

func (*Rule) DeepCopyInto

func (in *Rule) DeepCopyInto(out *Rule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Rule) Match

func (c *Rule) Match(i client.Object, realm string) bool

Decides if a rule allows an object

type SecretGenerator

type SecretGenerator struct {
	// Name of the secret to generate
	Name string `json:"name"`
	// Enable secret generation. Only useful when using the `client-secret`
	// client auth method.
	// +kubebuilder:default=true
	Enabled bool `json:"enabled"`
}

+kubebuilder:object:generate=true

func (*SecretGenerator) DeepCopy

func (in *SecretGenerator) DeepCopy() *SecretGenerator

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretGenerator.

func (*SecretGenerator) DeepCopyInto

func (in *SecretGenerator) DeepCopyInto(out *SecretGenerator)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Subject

type Subject struct {
	// The type of the subject. Either `user` or `group`.
	// +kubebuilder:validation:Enum=user;group
	Kind string `json:"kind"`
	// The name of the user or group
	Name string `json:"name"`
}

Represent a user or group in keycloak +kubebuilder:object:generate=true

func (*Subject) DeepCopy

func (in *Subject) DeepCopy() *Subject

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.

func (*Subject) DeepCopyInto

func (in *Subject) DeepCopyInto(out *Subject)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UserAttributeLdapMapper

type UserAttributeLdapMapper struct {
	// If on, then during reading of the LDAP attribute value will always used instead of the
	// value from Keycloak DB
	// +kubebuilder:default=false
	AlwaysReadValueFromLdap bool `json:"alwaysReadValueFromLdap"`
	// If there is no value in Keycloak DB and attribute is mandatory in LDAP, this value will
	// be propagated to LDAP
	// +kubebuilder:default=""
	AttributeDefaultValue string `json:"attributeDefaultValue"`
	// Should be true for binary LDAP attributes
	// +kubebuilder:default=false
	IsBinaryAttribute bool `json:"isBinaryAttribute"`
	// If true, attribute is mandatory in LDAP. Hence if there is no value in Keycloak DB,
	// the default or empty value will be set to be propagated to LDAP
	// +kubebuilder:default=false
	IsMandatoryInLdap bool `json:"isMandatoryInLdap"`
	// Name of mapped attribute on LDAP object. For example 'cn', 'sn, 'mail', 'street' etc.
	// +kubebuilder:default=""
	LdapAttribute string `json:"ldapAttribute"`
	// +kubebuilder:default=true
	// Read-only attribute is imported from LDAP to UserModel, but it's not saved back to LDAP when
	// user is updated in Keycloak.
	ReadOnly bool `json:"readOnly"`
	// Name of the UserModel property or attribute you want to map the LDAP attribute into.
	// For example 'firstName', 'lastName, 'email', 'street' etc.
	// +kubebuilder:default=""
	UserModelAttribute string `json:"userModelAttribute"`
}

+kubebuilder:object:generate=true

func (*UserAttributeLdapMapper) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAttributeLdapMapper.

func (*UserAttributeLdapMapper) DeepCopyInto

func (in *UserAttributeLdapMapper) DeepCopyInto(out *UserAttributeLdapMapper)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*UserAttributeLdapMapper) ToComponentConfig

func (m *UserAttributeLdapMapper) ToComponentConfig() map[string][]string

type UserRepresentation

type UserRepresentation struct {
	// User ID.
	// +optional
	ID string `json:"id,omitempty"`
	// User Name.
	// +optional
	UserName string `json:"username,omitempty"`
}

func (*UserRepresentation) DeepCopy

func (in *UserRepresentation) DeepCopy() *UserRepresentation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserRepresentation.

func (*UserRepresentation) DeepCopyInto

func (in *UserRepresentation) DeepCopyInto(out *UserRepresentation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL