Skip to content

Add CI step to validate helm template renders with all features enabled#684

Merged
lhotari merged 1 commit intoapache:masterfrom
lhotari:lh-improve-ci
May 4, 2026
Merged

Add CI step to validate helm template renders with all features enabled#684
lhotari merged 1 commit intoapache:masterfrom
lhotari:lh-improve-ci

Conversation

@lhotari
Copy link
Copy Markdown
Member

@lhotari lhotari commented May 4, 2026

Adds .ci/templates-all-values.yaml (every optional feature on, with multi-element lists and maps for every list/map-shaped value) and .ci/templates-all-values-patch1.yaml (overlay that flips mutually-exclusive choices: zookeeper -> oxia, JWT symmetric -> OpenID, selfsigning -> ca issuer, multiVolumes -> single common bookkeeper volume, hard -> soft anti-affinity, etc.). A new step in the ct-lint job renders both combinations with helm template and validates them with kubeconform -strict against k8s 1.34.0.

This catches indent / range / toYaml | nindent bugs that no individual scenario in .ci/clusters/ can surface on its own, since each existing scenario only enables one or two features at a time.

Also fixes two real bugs uncovered by writing the test: oxia-coordinator-serviceaccount.yaml and oxia-server-serviceaccount.yaml treated images.imagePullSecrets as an object with .secretName, but per the schema in values.yaml and the pulsar.imagePullSecrets helper, it is a list of secret-name strings. Both files now use the shared helper and template-error no longer when the field is set.

Adds .ci/templates-all-values.yaml (every optional feature on, with
multi-element lists and maps for every list/map-shaped value) and
.ci/templates-all-values-patch1.yaml (overlay that flips
mutually-exclusive choices: zookeeper -> oxia, JWT symmetric -> OpenID,
selfsigning -> ca issuer, multiVolumes -> single common bookkeeper
volume, hard -> soft anti-affinity, etc.). A new step in the ct-lint
job renders both combinations with `helm template` and validates them
with `kubeconform -strict` against k8s 1.34.0.

This catches indent / `range` / `toYaml | nindent` bugs that no
individual scenario in .ci/clusters/ can surface on its own, since
each existing scenario only enables one or two features at a time.

Also fixes two real bugs uncovered by writing the test:
oxia-coordinator-serviceaccount.yaml and oxia-server-serviceaccount.yaml
treated `images.imagePullSecrets` as an object with `.secretName`,
but per the schema in values.yaml and the `pulsar.imagePullSecrets`
helper, it is a list of secret-name strings. Both files now use the
shared helper and template-error no longer when the field is set.
@lhotari lhotari merged commit c8f74d7 into apache:master May 4, 2026
39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant