Create separate chart validation workflow for gha-* charts. (#2393)
Co-authored-by: Nikola Jokic <jokicnikola07@gmail.com>
This commit is contained in:
		
							parent
							
								
									babbfc77d5
								
							
						
					
					
						commit
						bd9f32e354
					
				|  | @ -9,12 +9,16 @@ on: | ||||||
|       - '.github/workflows/validate-chart.yaml' |       - '.github/workflows/validate-chart.yaml' | ||||||
|       - '!charts/actions-runner-controller/docs/**' |       - '!charts/actions-runner-controller/docs/**' | ||||||
|       - '!**.md' |       - '!**.md' | ||||||
|  |       - '!charts/gha-runner-scale-set-controller/**' | ||||||
|  |       - '!charts/gha-runner-scale-set/**' | ||||||
|   push: |   push: | ||||||
|     paths: |     paths: | ||||||
|       - 'charts/**' |       - 'charts/**' | ||||||
|       - '.github/workflows/validate-chart.yaml' |       - '.github/workflows/validate-chart.yaml' | ||||||
|       - '!charts/actions-runner-controller/docs/**' |       - '!charts/actions-runner-controller/docs/**' | ||||||
|       - '!**.md' |       - '!**.md' | ||||||
|  |       - '!charts/gha-runner-scale-set-controller/**' | ||||||
|  |       - '!charts/gha-runner-scale-set/**' | ||||||
|   workflow_dispatch: |   workflow_dispatch: | ||||||
| env: | env: | ||||||
|   KUBE_SCORE_VERSION: 1.10.0 |   KUBE_SCORE_VERSION: 1.10.0 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,134 @@ | ||||||
|  | name: Validate Helm Chart (gha-runner-scale-set-controller and gha-runner-scale-set) | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     branches: | ||||||
|  |       - master | ||||||
|  |     paths: | ||||||
|  |       - 'charts/**' | ||||||
|  |       - '.github/workflows/validate-gha-chart.yaml' | ||||||
|  |       - '!charts/actions-runner-controller/**' | ||||||
|  |       - '!**.md' | ||||||
|  |   push: | ||||||
|  |     paths: | ||||||
|  |       - 'charts/**' | ||||||
|  |       - '.github/workflows/validate-gha-chart.yaml' | ||||||
|  |       - '!charts/actions-runner-controller/**' | ||||||
|  |       - '!**.md' | ||||||
|  |   workflow_dispatch: | ||||||
|  | env: | ||||||
|  |   KUBE_SCORE_VERSION: 1.16.1 | ||||||
|  |   HELM_VERSION: v3.8.0 | ||||||
|  | 
 | ||||||
|  | permissions: | ||||||
|  |   contents: read | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   validate-chart: | ||||||
|  |     name: Lint Chart | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |         with: | ||||||
|  |           fetch-depth: 0 | ||||||
|  | 
 | ||||||
|  |       - name: Set up Helm | ||||||
|  |         # Using https://github.com/Azure/setup-helm/releases/tag/v3.5 | ||||||
|  |         uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 | ||||||
|  |         with: | ||||||
|  |           version: ${{ env.HELM_VERSION }} | ||||||
|  | 
 | ||||||
|  |       - name: Set up kube-score | ||||||
|  |         run: | | ||||||
|  |           wget https://github.com/zegl/kube-score/releases/download/v${{ env.KUBE_SCORE_VERSION }}/kube-score_${{ env.KUBE_SCORE_VERSION }}_linux_amd64 -O kube-score | ||||||
|  |           chmod 755 kube-score | ||||||
|  | 
 | ||||||
|  |       - name: Kube-score generated manifests | ||||||
|  |         run: helm template  --values charts/.ci/values-kube-score.yaml charts/* | ./kube-score score - | ||||||
|  |               --ignore-test pod-networkpolicy | ||||||
|  |               --ignore-test deployment-has-poddisruptionbudget | ||||||
|  |               --ignore-test deployment-has-host-podantiaffinity | ||||||
|  |               --ignore-test container-security-context | ||||||
|  |               --ignore-test pod-probes | ||||||
|  |               --ignore-test container-image-tag | ||||||
|  |               --enable-optional-test container-security-context-privileged | ||||||
|  |               --enable-optional-test container-security-context-readonlyrootfilesystem | ||||||
|  | 
 | ||||||
|  |       # python is a requirement for the chart-testing action below (supports yamllint among other tests) | ||||||
|  |       - uses: actions/setup-python@v4 | ||||||
|  |         with: | ||||||
|  |           python-version: '3.7' | ||||||
|  | 
 | ||||||
|  |       - name: Set up chart-testing | ||||||
|  |         uses: helm/chart-testing-action@v2.3.1 | ||||||
|  | 
 | ||||||
|  |       - name: Set up latest version chart-testing | ||||||
|  |         run: | | ||||||
|  |           echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | sudo tee /etc/apt/sources.list.d/goreleaser.list | ||||||
|  |           sudo apt update | ||||||
|  |           sudo apt install goreleaser | ||||||
|  |           git clone https://github.com/helm/chart-testing | ||||||
|  |           cd chart-testing | ||||||
|  |           unset CT_CONFIG_DIR | ||||||
|  |           goreleaser build --clean --skip-validate  | ||||||
|  |           ./dist/chart-testing_linux_amd64_v1/ct version | ||||||
|  |           echo 'Adding ct directory to PATH...' | ||||||
|  |           echo "$RUNNER_TEMP/chart-testing/dist/chart-testing_linux_amd64_v1" >> "$GITHUB_PATH" | ||||||
|  |           echo 'Setting CT_CONFIG_DIR...' | ||||||
|  |           echo "CT_CONFIG_DIR=$RUNNER_TEMP/chart-testing/etc" >> "$GITHUB_ENV" | ||||||
|  |         working-directory: ${{ runner.temp }} | ||||||
|  | 
 | ||||||
|  |       - name: Run chart-testing (list-changed) | ||||||
|  |         id: list-changed | ||||||
|  |         run: | | ||||||
|  |           ct version | ||||||
|  |           changed=$(ct list-changed --config charts/.ci/ct-config-gha.yaml) | ||||||
|  |           if [[ -n "$changed" ]]; then | ||||||
|  |             echo "::set-output name=changed::true" | ||||||
|  |           fi | ||||||
|  | 
 | ||||||
|  |       - name: Run chart-testing (lint) | ||||||
|  |         run: | | ||||||
|  |           ct lint --config charts/.ci/ct-config-gha.yaml | ||||||
|  | 
 | ||||||
|  |       - name: Set up docker buildx | ||||||
|  |         uses: docker/setup-buildx-action@v2 | ||||||
|  |         if: steps.list-changed.outputs.changed == 'true' | ||||||
|  |         with: | ||||||
|  |           version: latest | ||||||
|  | 
 | ||||||
|  |       - name: Build controller image | ||||||
|  |         uses: docker/build-push-action@v3 | ||||||
|  |         if: steps.list-changed.outputs.changed == 'true' | ||||||
|  |         with: | ||||||
|  |           file: Dockerfile | ||||||
|  |           platforms: linux/amd64 | ||||||
|  |           load: true | ||||||
|  |           build-args: | | ||||||
|  |             DOCKER_IMAGE_NAME=test-arc | ||||||
|  |             VERSION=dev  | ||||||
|  |           tags: | | ||||||
|  |             test-arc:dev | ||||||
|  |           cache-from: type=gha | ||||||
|  |           cache-to: type=gha,mode=max | ||||||
|  | 
 | ||||||
|  |       - name: Create kind cluster | ||||||
|  |         uses: helm/kind-action@v1.4.0 | ||||||
|  |         if: steps.list-changed.outputs.changed == 'true' | ||||||
|  |         with: | ||||||
|  |           cluster_name: chart-testing | ||||||
|  | 
 | ||||||
|  |       - name: Load image into cluster | ||||||
|  |         if: steps.list-changed.outputs.changed == 'true' | ||||||
|  |         run: | | ||||||
|  |             export DOCKER_IMAGE_NAME=test-arc | ||||||
|  |             export VERSION=dev | ||||||
|  |             export IMG_RESULT=load | ||||||
|  |             make docker-buildx | ||||||
|  |             kind load docker-image test-arc:dev --name chart-testing | ||||||
|  | 
 | ||||||
|  |       - name: Run chart-testing (install) | ||||||
|  |         if: steps.list-changed.outputs.changed == 'true' | ||||||
|  |         run: | | ||||||
|  |           ct install --config charts/.ci/ct-config-gha.yaml | ||||||
|  | @ -0,0 +1,9 @@ | ||||||
|  | # This file defines the config for "ct" (chart tester) used by the helm linting GitHub workflow | ||||||
|  | lint-conf: charts/.ci/lint-config.yaml | ||||||
|  | chart-repos: | ||||||
|  |   - jetstack=https://charts.jetstack.io | ||||||
|  | check-version-increment: false # Disable checking that the chart version has been bumped | ||||||
|  | charts: | ||||||
|  | - charts/gha-runner-scale-set-controller | ||||||
|  | - charts/gha-runner-scale-set | ||||||
|  | skip-clean-up: true | ||||||
|  | @ -5,5 +5,3 @@ chart-repos: | ||||||
| check-version-increment: false # Disable checking that the chart version has been bumped | check-version-increment: false # Disable checking that the chart version has been bumped | ||||||
| charts: | charts: | ||||||
| - charts/actions-runner-controller | - charts/actions-runner-controller | ||||||
| - charts/gha-runner-scale-set-controller |  | ||||||
| - charts/gha-runner-scale-set |  | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | # Set the following to dummy values. | ||||||
|  | # This is only useful in CI | ||||||
|  | image: | ||||||
|  |   repository: test-arc | ||||||
|  |   tag: dev | ||||||
		Loading…
	
		Reference in New Issue