Skip to content

Kubeconform action

Actions
Generate manifests with helm template and run kubeconform on the results
v0.1.7
Latest
Star (1)

Helm Kubeconform Action

A flexible GitHub Action to validate Helm charts with Kubeconform.

Usage

Assuming you have a charts directory under which you have a set of charts and a schemas directory containing any custom resource schemas, like this:

charts
└───foo
│  ├───templates
│  └───tests
└───bar
│  ├───templates
│  └───tests
└───schemas

Example usage in workflow

name: Chart Test
on: [push] 
jobs:
    kubeconform:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - name: Validate Helm Chart
      uses: wdaan/helm-kubeconform-action@v0.1.6
      with:
        additionalSchemaPaths: |
          schemas/{{ .ResourceKind }}.json
        chartsDirectory: "charts"
        ignoreMissingSchemas: "true"
        kubernetesVersion: "1.25.0"

Example usage with docker (faster)

    - name: Login to GitHub Container Registry
      uses: docker/login-action@v2
      with:
        registry: ghcr.io
        username: ${{ github.actor }}
        password: ${{ secrets.GITHUB_TOKEN }}

    - name: Validate Helm Chart
      uses: docker://ghcr.io/wdaan/helm-kubeconform-action:v0.1.7
      env:
        ADDITIONAL_SCHEMA_PATHS: |
          schemas/{{ .ResourceKind }}.json
        CHARTS_DIRECTORY: "charts"
        KUBECONFORM_STRICT: "true"
        HELM_UPDATE_DEPENDENCIES: "true"
        IGNORE_MISSING_SCHEMAS: "false"
        KUBERNETES_VERSION: "1.25.0"

See action.yml for more information on the parameters.

Schemas

The default Kubernetes schema will always be automatically included. If you need to add custom schemas, additionalSchemaPaths should be a list of paths, one per line, in the format expected by Kubeconform. These are relative to the root of your repository.

Tests

Every chart subdirectory must have a tests subdirectory containing values files as you would pass to Helm. Each file will be passed on its own to helm template release charts/MY_CHART and the results will be validated by Kubeconform.

Kubeconform action is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Generate manifests with helm template and run kubeconform on the results
v0.1.7
Latest

Kubeconform action is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.