Skip to content

Conversation

@sandeepbh5
Copy link
Contributor

Description

  • Introduced a new Keycloak operator application with a sync wave for managing Keycloak instances via CRDs.
  • Updated Keycloak tenant controller to use the latest target revision.
  • Modified platform Keycloak application to point to the new chart repository and updated target revision.
  • Enhanced Traefik extra objects to use the latest target revision.
  • Added default admin username in the on-prem installer functions.
  • Enabled Keycloak operator in the platform profile configuration.
  • Updated Trivy configuration to suppress specific false positives related to Keycloak operator permissions and ExternalName services.

Any Newly Introduced Dependencies

  • quay.io/keycloak/keycloak:26.4.5
  • quay.io/keycloak/keycloak-operator:26.4.5

How Has This Been Tested?

Coder

Checklist:

  • I agree to use the APACHE-2.0 license for my code changes
  • I have not introduced any 3rd party dependency changes
  • I have performed a self-review of my code

- Migrate from Bitnami Keycloak (26.1.3) to official Keycloak operator (26.5.0)
- Add new keycloak-operator application with Kustomize patches for security compliance
- Update platform-keycloak to use official Keycloak Operator and cloudnative-pg
- Update keycloak-tenant-controller configuration to use new bootstrap credentials
- Add Keycloak admin password configuration to multiple infrastructure components
- Update trivy.yaml to suppress false positives in Keycloak operator permissions
- Enable keycloak-operator in platform profile configuration
- Fix tools scripts to use admin-cli instead of system-client for authentication
- Update GitHub workflows and CI configurations for Keycloak upgrade compatibility

This migration improves:
- Native Keycloak operator for better Kubernetes integration
- Upgraded Keycloak version to 26.5.0 with enhanced security features
- Official support for cloudnative-pg PostgreSQL operator
- Better secret management with native bootstrap password support
…spec

- Simplified bootstrapAdmin configuration to only use 'user.secret: platform-keycloak'
- Operator automatically reads 'username' and 'password' keys from secret per CRD spec
- Updated secret key references from 'admin-password' to 'password' for consistency
- Added clarifying comments about CRD-compliant bootstrap admin configuration

This aligns with Keycloak operator CRD v2alpha1 spec which expects:
- bootstrapAdmin.user.secret points to secret containing 'username' and 'password' keys
- KC_BOOTSTRAP_ADMIN_USERNAME and KC_BOOTSTRAP_ADMIN_PASSWORD env vars for pod initialization
…-force protection

- Enable useM2MToken: true to use Vault-stored M2M credentials
- Consolidate app-orch-tenant-controller.tpl with complete configProvisioner config
- Remove unnecessary keycloak admin fields that were causing continuous auth failures
- Configure M2M client to use edge-manager-m2m-client credentials
- Temporary: disable bruteForceProtected in Keycloak for fresh deployment validation
- Will re-enable brute-force after bootstrap auto-creates edge-manager-m2m-client-secret
- Updated .golangci.yml to use correct linter names for golang 1.50.1:
  * Changed err113 to goerr113
  * Changed mnd to gomnd
  * Removed unsupported linters: canonicalheader, fatcontext, intrange, musttag, perfsprint, tagalign
- Updated go.mod to require Go 1.24.4 (matches .tool-versions)
- Ran gofmt to fix formatting issues in mage/deploy.go
- Ran go mod tidy to update dependencies
…atibility and re-add disabled linters

- golang 1.24.9 is not supported by golangci-lint 1.64.7 (only supports <=1.23.x)
- Re-add 8 disabled linters: canonicalheader, err113, fatcontext, intrange, mnd, musttag, perfsprint, tagalign
- These linters were disabled because violations exist in unrelated code outside keycloak migration PR scope
- Verified linting passes locally with these changes
Go 1.24.9 is incompatible with golangci-lint 1.64.7. Use Go 1.24.4 which is known to work.
Also restore .golangci.yml configuration from main branch to match known good state.
- Remove serviceAccount field from app-orch-catalog.yaml configProvisioner
- Update copy-keycloak-admin-to-infra.yaml to map password source key while maintaining admin-password target key for orch-infra services
@sandeepbh5 sandeepbh5 force-pushed the bitnamilegacy-to-official-keycloak-02dec branch 8 times, most recently from d09c492 to 4ad87c9 Compare January 20, 2026 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants