KubernetesIdentityProvider
identityprovider.keycloak.crossplane.io / v1alpha1
apiVersion: identityprovider.keycloak.crossplane.io/v1alpha1
kind: KubernetesIdentityProvider
metadata:
name: example
apiVersion
string
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
object
spec object required
KubernetesIdentityProviderSpec defines the desired state of KubernetesIdentityProvider
deletionPolicy
string
DeletionPolicy specifies what will happen to the underlying external
when this managed resource is deleted - either "Delete" or "Orphan" the
external resource.
This field is planned to be deprecated in favor of the ManagementPolicies
field in a future release. Currently, both could be set independently and
non-default values would be honored if the feature flag is enabled.
See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
enum:
Orphan, DeleteforProvider object required
addReadTokenRoleOnCreate
boolean
Enable/disable if new users can read any stored tokens. This assigns the broker.read-token role.
alias
string
The alias uniquely identifies an identity provider, and it is also used to build the redirect uri.
The alias uniquely identifies an identity provider and it is also used to build the redirect uri.
authenticateByDefault
boolean
Enable/disable authenticate users by default.
displayName
string
Friendly name for Identity Providers.
enabled
boolean
Enable/disable this identity provider.
extraConfig
object
firstBrokerLoginFlowAlias
string
The alias uniquely identifies an identity provider, and it is also used to build the redirect uri.
Alias of authentication flow, which is triggered after first login with this identity provider. Term 'First Login' means that there is not yet existing Keycloak account linked with the authenticated identity provider account.
firstBrokerLoginFlowAliasRef object
Reference to a Flow in authenticationflow to populate firstBrokerLoginFlowAlias.
name
string required
Name of the referenced object.
policy object
Policies for referencing.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresentfirstBrokerLoginFlowAliasSelector object
Selector for a Flow in authenticationflow to populate firstBrokerLoginFlowAlias.
matchControllerRef
boolean
MatchControllerRef ensures an object with the same controller reference
as the selecting object is selected.
matchLabels
object
MatchLabels ensures an object with matching labels is selected.
policy object
Policies for selection.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresent
guiOrder
string
GUI Order
issuer
string
The Kubernetes issuer URL of service account tokens. The URL /.well-known/openid-configuration must be available to Keycloak.
The issuer of the Kubernetes service account tokens. Depending your Keycloak Realm "ssl_required" setting, this may need to be an HTTPS URL.
linkOnly
boolean
If true, users cannot log in through this provider. They can only link to this provider. This is useful if you don't want to allow login from the provider, but want to integrate with a provider
orgDomain
string
orgRedirectModeEmailMatches
boolean
organizationId
string
ID of organization with which this identity is linked.
organizationIdRef object
Reference to a Organization in organization to populate organizationId.
name
string required
Name of the referenced object.
policy object
Policies for referencing.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresentorganizationIdSelector object
Selector for a Organization in organization to populate organizationId.
matchControllerRef
boolean
MatchControllerRef ensures an object with the same controller reference
as the selecting object is selected.
matchLabels
object
MatchLabels ensures an object with matching labels is selected.
policy object
Policies for selection.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresent
postBrokerLoginFlowAlias
string
The alias uniquely identifies an identity provider, and it is also used to build the redirect uri.
Alias of authentication flow, which is triggered after each login with this identity provider. Useful if you want additional verification of each user authenticated with this identity provider (for example OTP). Leave this empty if you don't want any additional authenticators to be triggered after login with this identity provider. Also note, that authenticator implementations must assume that user is already set in ClientSession as identity provider already set it.
providerId
string
Provider ID, is always kubernetes.
realm
string
The name of the realm. This is unique across Keycloak.
Realm Name
realmRef object
Reference to a Realm in realm to populate realm.
name
string required
Name of the referenced object.
policy object
Policies for referencing.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresentrealmSelector object
Selector for a Realm in realm to populate realm.
matchControllerRef
boolean
MatchControllerRef ensures an object with the same controller reference
as the selecting object is selected.
matchLabels
object
MatchLabels ensures an object with matching labels is selected.
policy object
Policies for selection.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresent
storeToken
boolean
Enable/disable if tokens must be stored after authenticating users.
syncMode
string
Sync Mode
trustEmail
boolean
If enabled then email provided by this provider is not verified even if verification is enabled for the realm.
initProvider object
THIS IS A BETA FIELD. It will be honored
unless the Management Policies feature flag is disabled.
InitProvider holds the same fields as ForProvider, with the exception
of Identifier and other resource reference fields. The fields that are
in InitProvider are merged into ForProvider when the resource is created.
The same fields are also added to the terraform ignore_changes hook, to
avoid updating them after creation. This is useful for fields that are
required on creation, but we do not desire to update them after creation,
for example because of an external controller is managing them, like an
autoscaler.
addReadTokenRoleOnCreate
boolean
Enable/disable if new users can read any stored tokens. This assigns the broker.read-token role.
alias
string
The alias uniquely identifies an identity provider, and it is also used to build the redirect uri.
The alias uniquely identifies an identity provider and it is also used to build the redirect uri.
authenticateByDefault
boolean
Enable/disable authenticate users by default.
displayName
string
Friendly name for Identity Providers.
enabled
boolean
Enable/disable this identity provider.
extraConfig
object
firstBrokerLoginFlowAlias
string
The alias uniquely identifies an identity provider, and it is also used to build the redirect uri.
Alias of authentication flow, which is triggered after first login with this identity provider. Term 'First Login' means that there is not yet existing Keycloak account linked with the authenticated identity provider account.
firstBrokerLoginFlowAliasRef object
Reference to a Flow in authenticationflow to populate firstBrokerLoginFlowAlias.
name
string required
Name of the referenced object.
policy object
Policies for referencing.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresentfirstBrokerLoginFlowAliasSelector object
Selector for a Flow in authenticationflow to populate firstBrokerLoginFlowAlias.
matchControllerRef
boolean
MatchControllerRef ensures an object with the same controller reference
as the selecting object is selected.
matchLabels
object
MatchLabels ensures an object with matching labels is selected.
policy object
Policies for selection.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresent
guiOrder
string
GUI Order
issuer
string
The Kubernetes issuer URL of service account tokens. The URL /.well-known/openid-configuration must be available to Keycloak.
The issuer of the Kubernetes service account tokens. Depending your Keycloak Realm "ssl_required" setting, this may need to be an HTTPS URL.
linkOnly
boolean
If true, users cannot log in through this provider. They can only link to this provider. This is useful if you don't want to allow login from the provider, but want to integrate with a provider
orgDomain
string
orgRedirectModeEmailMatches
boolean
organizationId
string
ID of organization with which this identity is linked.
organizationIdRef object
Reference to a Organization in organization to populate organizationId.
name
string required
Name of the referenced object.
policy object
Policies for referencing.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresentorganizationIdSelector object
Selector for a Organization in organization to populate organizationId.
matchControllerRef
boolean
MatchControllerRef ensures an object with the same controller reference
as the selecting object is selected.
matchLabels
object
MatchLabels ensures an object with matching labels is selected.
policy object
Policies for selection.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresent
postBrokerLoginFlowAlias
string
The alias uniquely identifies an identity provider, and it is also used to build the redirect uri.
Alias of authentication flow, which is triggered after each login with this identity provider. Useful if you want additional verification of each user authenticated with this identity provider (for example OTP). Leave this empty if you don't want any additional authenticators to be triggered after login with this identity provider. Also note, that authenticator implementations must assume that user is already set in ClientSession as identity provider already set it.
providerId
string
Provider ID, is always kubernetes.
realm
string
The name of the realm. This is unique across Keycloak.
Realm Name
realmRef object
Reference to a Realm in realm to populate realm.
name
string required
Name of the referenced object.
policy object
Policies for referencing.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresentrealmSelector object
Selector for a Realm in realm to populate realm.
matchControllerRef
boolean
MatchControllerRef ensures an object with the same controller reference
as the selecting object is selected.
matchLabels
object
MatchLabels ensures an object with matching labels is selected.
policy object
Policies for selection.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresent
storeToken
boolean
Enable/disable if tokens must be stored after authenticating users.
syncMode
string
Sync Mode
trustEmail
boolean
If enabled then email provided by this provider is not verified even if verification is enabled for the realm.
managementPolicies
[]string
THIS IS A BETA FIELD. It is on by default but can be opted out
through a Crossplane feature flag.
ManagementPolicies specify the array of actions Crossplane is allowed to
take on the managed and external resources.
This field is planned to replace the DeletionPolicy field in a future
release. Currently, both could be set independently and non-default
values would be honored if the feature flag is enabled. If both are
custom, the DeletionPolicy field will be ignored.
See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md
providerConfigRef object
ProviderConfigReference specifies how the provider that will be used to
create, observe, update, and delete this managed resource should be
configured.
name
string required
Name of the referenced object.
policy object
Policies for referencing.
resolution
string
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
Required, Optional
resolve
string
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
Always, IfNotPresentwriteConnectionSecretToRef object
WriteConnectionSecretToReference specifies the namespace and name of a
Secret to which any connection details for this managed resource should
be written. Connection details frequently include the endpoint, username,
and password required to connect to the managed resource.
name
string required
Name of the secret.
namespace
string required
Namespace of the secret.
status object
KubernetesIdentityProviderStatus defines the observed state of KubernetesIdentityProvider.
atProvider object
addReadTokenRoleOnCreate
boolean
Enable/disable if new users can read any stored tokens. This assigns the broker.read-token role.
alias
string
The alias uniquely identifies an identity provider, and it is also used to build the redirect uri.
The alias uniquely identifies an identity provider and it is also used to build the redirect uri.
authenticateByDefault
boolean
Enable/disable authenticate users by default.
displayName
string
Friendly name for Identity Providers.
enabled
boolean
Enable/disable this identity provider.
extraConfig
object
firstBrokerLoginFlowAlias
string
The alias uniquely identifies an identity provider, and it is also used to build the redirect uri.
Alias of authentication flow, which is triggered after first login with this identity provider. Term 'First Login' means that there is not yet existing Keycloak account linked with the authenticated identity provider account.
guiOrder
string
GUI Order
hideOnLoginPage
boolean
This is always set to true for Kubernetes identity provider.
id
string
internalId
string
Internal Identity Provider Id
issuer
string
The Kubernetes issuer URL of service account tokens. The URL /.well-known/openid-configuration must be available to Keycloak.
The issuer of the Kubernetes service account tokens. Depending your Keycloak Realm "ssl_required" setting, this may need to be an HTTPS URL.
linkOnly
boolean
If true, users cannot log in through this provider. They can only link to this provider. This is useful if you don't want to allow login from the provider, but want to integrate with a provider
orgDomain
string
orgRedirectModeEmailMatches
boolean
organizationId
string
ID of organization with which this identity is linked.
postBrokerLoginFlowAlias
string
The alias uniquely identifies an identity provider, and it is also used to build the redirect uri.
Alias of authentication flow, which is triggered after each login with this identity provider. Useful if you want additional verification of each user authenticated with this identity provider (for example OTP). Leave this empty if you don't want any additional authenticators to be triggered after login with this identity provider. Also note, that authenticator implementations must assume that user is already set in ClientSession as identity provider already set it.
providerId
string
Provider ID, is always kubernetes.
realm
string
The name of the realm. This is unique across Keycloak.
Realm Name
storeToken
boolean
Enable/disable if tokens must be stored after authenticating users.
syncMode
string
Sync Mode
trustEmail
boolean
If enabled then email provided by this provider is not verified even if verification is enabled for the realm.
conditions []object
Conditions of the resource.
lastTransitionTime
string required
LastTransitionTime is the last time this condition transitioned from one
status to another.
format:
date-time
message
string
A Message containing details about this condition's last transition from
one status to another, if any.
observedGeneration
integer
ObservedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format:
int64
reason
string required
A Reason for this condition's last transition from one status to another.
status
string required
Status of this condition; is it currently True, False, or Unknown?
type
string required
Type of this condition. At most one of each condition type may apply to
a resource at any point in time.
observedGeneration
integer
ObservedGeneration is the latest metadata.generation
which resulted in either a ready state, or stalled due to error
it can not recover from without human intervention.
format:
int64No matches. Try .spec.deletionPolicy for an exact path