Skip to content

imagesPullSecret used in Helm template but not defined in CRD schema #942

@mfchanou

Description

@mfchanou

What happened?

There is an inconsistency between the Helm chart templates and the Config CRD schema regarding image pull secret configuration.

The Helm template for kai-config.yaml sets the following field:

spec: global: imagesPullSecret: <string>

However, in the configs.kai.scheduler CRD schema, this field is not defined.
Instead, the CRD defines:

spec: global: additionalImagePullSecrets: []string

So the chart writes a field that is not part of the CRD’s OpenAPI schema

Affected Versions

Observed in:

Chart version 0.12.7

Chart version 0.12.10

(The same mismatch exists in both.)

Details

From Helm template (templates/kai-config.yaml):

{{- if .Values.global.imagePullSecrets }} imagesPullSecret: {{ index .Values.global.imagePullSecrets 0 | default "" }} {{- end }}
This produces:

spec.global.imagesPullSecret # string

From CRD (configs.kai.scheduler):

additionalImagePullSecrets: description: ImagePullSecrets defines the container registry additional secret credentials type: array items: type: string
There is no imagesPullSecret (string) field defined in the CRD schema.

Why this is a problem ?

  • The field written by the chart is not validated by the CRD schema.
  • It does not appear in kubectl explain.
  • It is unclear whether the controller still reads imagesPullSecret (legacy) or expects additionalImagePullSecrets (current schema).
  • This creates ambiguity for users upgrading or trying to follow the CRD as the source of truth.

What did you expect to happen?

Expected Behavior

The Helm chart and CRD schema should be aligned. One of the following should happen

  • Preferred (array of strings)

Update the Helm template to use:
spec.global.additionalImagePullSecrets

  • Or, if imagesPullSecret is still intentionally supported:
    Add it to the CRD schema with proper type and documentation.

Actual Behavior

  • Helm chart writes spec.global.imagesPullSecret (string)
  • CRD schema only defines spec.global.additionalImagePullSecrets (array)
  • Mismatch between declared API and generated resource

Happy to help test a fix or validate behavior once clarified which field is the intended one going forward.

Environment

  • Kubernetes version: 1.30
  • KAI Scheduler version: 0.12.7
  • Cloud provider or hardware configuration:
  • Tools that you are using KAI together with
  • Anything else that is relevant

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions