Skip to content

Run helm chart through kubeconform -strict as part of the CI process #37919

Description

@brokenjacobs

Description

There have been several releases in a row that have broken helm chart deployments of airflow using tools like fluxcd. If you do a helm install of the chart on the command line it works, but there are errors in the yaml output causing strict validation to fail. I suggest adding a check to PR's that update the helm chart to do the equivalent of:

helm template -f values.yaml ./ | kubeconform -strict

I'm not sure if I can just go add random github actions to this project, but I would suggest an approach like this:
https://github.com/marketplace/actions/helm-kubeval

And we would need to pull the keda crds into the repo for use with kubeconform for these checks. A quick sanity check of this approach with the 1.13.0 release:

❯ helm template -f values.yaml ./ | kubeconform -strict
stdin - Deployment release-name-scheduler failed validation: error unmarshalling resource: error converting YAML to JSON: yaml: unmarshal errors:
  line 43: key "cluster-autoscaler.kubernetes.io/safe-to-evict" already set in map
stdin - StatefulSet release-name-triggerer failed validation: error unmarshalling resource: error converting YAML to JSON: yaml: unmarshal errors:
  line 36: key "cluster-autoscaler.kubernetes.io/safe-to-evict" already set in map

I'm willing to submit a PR if someone can give me guidance as to if using an action for this is acceptable.

Use case/motivation

Preventing future errors in the helm chart through automated testing.

Related issues

#37872
#37794

Are you willing to submit a PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:featureFeature Requestsneeds-triagelabel for new issues that we didn't triage yet

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions