Skip to content

ADR-030: Helm charts published to GitHub Pages OCI registry

Category: development Provenance: human

Decision

Publish all three Helm charts (operator, realm, client) to GitHub Pages which serves as an OCI registry. Charts are available at https://vriesdemichael.github.io/keycloak-operator/charts/. JSON schemas for Helm chart values are published alongside charts for IDE validation and auto-completion.

Rationale

GitHub Pages provides free, reliable hosting for Helm charts. OCI registry format allows versioned chart distribution. Users can pin to specific chart versions for stability. Helm repo index allows 'helm search repo' to discover versions. Integrated with release process - charts published automatically on release. No external registry costs or management. Charts accessible globally via CDN with SSL. Publishing JSON schemas alongside charts enables IDE validation and auto-completion for values.yaml files, improving developer experience and catching configuration errors early.

Agent Instructions

Package Helm charts and publish to GitHub Pages charts directory. Maintain index.yaml with all chart versions. Charts are served via GitHub Pages and can be added to Helm with 'helm repo add'. Keep charts directory in gh-pages branch synchronized with releases. Never delete old chart versions - users may be pinned to specific versions. When values.yaml changes in any chart, regenerate the corresponding JSON schema for that chart's values to keep schemas in sync with supported configuration options.

Rejected Alternatives

Use external chart registry (ChartMuseum, Harbor)

Additional infrastructure to maintain. Costs money. GitHub Pages is free and reliable.

Bundle charts in git repository only

Users would need to clone repo to get charts. No version discovery. Not standard Helm workflow.