This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
Affected surfaces
Summary
AI summaryBroad release touches New Features, Upgrade Guide, Dependency Updates, and deps.
Full changelog
Highlights
This release introduces the KeycloakRequiredAction CRD for managing realm required action providers, adds human-friendly alias-based authentication flow binding overrides for KeycloakClient, and extends KeycloakIdentityProvider with secret references for sensitive configuration values.
New Features
KeycloakRequiredAction CRD
New custom resource to manage Keycloak required action providers (password update, OTP configuration, email verification, terms and conditions, etc.) through dedicated Admin API endpoints. Unlike requiredActions inside KeycloakRealm.spec.definition which only apply on initial realm import, KeycloakRequiredAction resources are reconciled continuously and can be added, modified, or removed after realm creation.
apiVersion: keycloak.hostzero.com/v1beta1
kind: KeycloakRequiredAction
metadata:
name: terms-and-conditions
namespace: keycloak
spec:
realmRef:
name: my-realm
definition:
alias: TERMS_AND_CONDITIONS
name: "Terms and Conditions"
providerId: TERMS_AND_CONDITIONS
enabled: true
defaultAction: true
priority: 20
- References either a namespaced
KeycloakRealm(viarealmRef) or aClusterKeycloakRealm(viaclusterRealmRef). - Definition follows Keycloak's
RequiredActionProviderRepresentationwith fields:alias,name,providerId,enabled,defaultAction,priority, andconfig. - On deletion, the required action is removed from Keycloak unless the
keycloak.hostzero.com/preserve-resourceannotation is set. - Short name:
kcra.
See the KeycloakRequiredAction Documentation for full details.
Authentication Flow Binding Overrides by Alias (KeycloakClient)
KeycloakClient resources now support referencing authentication flows by their human-readable alias instead of Keycloak-generated UUIDs when configuring authenticationFlowBindingOverrides. This makes manifests portable across environments where flow UUIDs differ.
Two new keys are recognized inside spec.definition.authenticationFlowBindingOverrides:
browserFlowAlias-- resolved to the flow UUID and stored asbrowserdirectGrantFlowAlias-- resolved to the flow UUID and stored asdirect_grant
apiVersion: keycloak.hostzero.com/v1beta1
kind: KeycloakClient
metadata:
name: my-app
spec:
realmRef:
name: my-realm
definition:
clientId: my-app
enabled: true
publicClient: true
standardFlowEnabled: true
authenticationFlowBindingOverrides:
browserFlowAlias: "my-custom-browser-flow"
directGrantFlowAlias: "my-custom-direct-grant"
The operator resolves aliases to UUIDs at reconciliation time. If both an alias key and the corresponding UUID key are present, the alias takes precedence. If no matching flow is found, reconciliation fails with status reason FlowAliasResolutionFailed.
The existing UUID-based approach (browser / direct_grant keys) continues to work unchanged.
See the KeycloakClient Documentation for full details.
Identity Provider Config from Secret (configSecretRef)
KeycloakIdentityProvider resources can now reference a Kubernetes Secret for sensitive configuration values (e.g. clientId, clientSecret) instead of embedding them in plaintext in spec.definition.config.
apiVersion: keycloak.hostzero.com/v1beta1
kind: KeycloakIdentityProvider
metadata:
name: corporate-sso
spec:
realmRef:
name: my-realm
configSecretRef:
name: corporate-sso-credentials
definition:
alias: corporate-sso
providerId: oidc
enabled: true
config:
authorizationUrl: https://sso.corp.example.com/auth
tokenUrl: https://sso.corp.example.com/token
defaultScope: openid profile email
- All entries from the referenced Secret's
dataare merged intodefinition.configbefore syncing to Keycloak. - Secret values take precedence over values specified inline in
definition.config. - When the Secret changes, the operator automatically re-reconciles the identity provider to pick up the new values.
See the KeycloakIdentityProvider Documentation for full details.
Improvements
Dependency Updates
k8s.io/api,k8s.io/apimachinery,k8s.io/client-gofrom 0.35.2 to 0.35.3codecov/codecov-actionfrom 5 to 6azure/setup-helmfrom 4 to 5actions/configure-pagesfrom 5 to 6actions/deploy-pagesfrom 4 to 5
Breaking Changes
None.
Bug Fixes
None.
Upgrade Guide
Helm Upgrade
helm upgrade keycloak-operator oci://ghcr.io/hostzero-gmbh/charts/keycloak-operator \
--namespace keycloak-operator \
--version 0.6.0
What's Changed
- chore(deps): bump k8s.io/client-go from 0.35.2 to 0.35.3 by @dependabot[bot] in https://github.com/Hostzero-GmbH/keycloak-operator/pull/35
- feat: add KeycloakRequiredAction CRD #33 by @pehlert in https://github.com/Hostzero-GmbH/keycloak-operator/pull/38
- feat: support authentication flow binding overrides by alias by @pehlert in https://github.com/Hostzero-GmbH/keycloak-operator/pull/41
- chore(deps): bump actions/configure-pages from 5 to 6 by @dependabot[bot] in https://github.com/Hostzero-GmbH/keycloak-operator/pull/42
- chore(deps): bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in https://github.com/Hostzero-GmbH/keycloak-operator/pull/43
- chore(deps): bump azure/setup-helm from 4 to 5 by @dependabot[bot] in https://github.com/Hostzero-GmbH/keycloak-operator/pull/44
- chore(deps): bump codecov/codecov-action from 5 to 6 by @dependabot[bot] in https://github.com/Hostzero-GmbH/keycloak-operator/pull/45
- Allow secret ref for KeycloakIdentityProvider. Closes #46 by @pehlert in https://github.com/Hostzero-GmbH/keycloak-operator/pull/47
Full Changelog: https://github.com/Hostzero-GmbH/keycloak-operator/compare/v0.5.0...v0.6.0
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Hostzero-GmbH/keycloak-operator
All releases →Related context
Related tools
Earlier breaking changes
- v0.9.0 Removes `spec.credentials` and `spec.client`; requires migration to new `spec.auth` block.
Beta — feedback welcome: [email protected]