name: e2e on: push: branches: - 'main' - 'release*' paths-ignore: - 'README.md' - '.github/config.yml' pull_request: branches: - 'main' - 'release*' paths-ignore: - 'README.md' - '.github/config.yml' permissions: read-all jobs: e2e-test: strategy: fail-fast: false matrix: k8s-version: [v1.24.4, v1.25.0] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 - name: Unshallow run: git fetch --prune --unshallow - name: Set up Go uses: actions/setup-go@424fc82d43fa5a37540bae62709ddcc23d9520d4 # v2.1.5 with: go-version: 1.18 - name: Set up Helm uses: azure/setup-helm@18bc76811624f360dbd7f18c2d4ecb32c7b87bab # v1.1 with: version: v3.5.0 - name: Set up chart-testing uses: helm/chart-testing-action@b0d4458c71155b54fcf33e11dd465dc923550009 # v2.0.1 - name: Cache Go modules uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # pin@v3 with: path: | ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name : Create dev images, kind cluster and setup kustomize run: | export KIND_IMAGE=kindest/node:${{ matrix.k8s-version }} make create-e2e-infrastructure - name: e2e testing run: | echo ">>> Install Kyverno" cat ${GITHUB_WORKSPACE}/config/install.yaml | \ sed -e 's/imagePullPolicy:.*$/imagePullPolicy: IfNotPresent/g' | \ sed -e 's/--autogenInternals:true$/--autogenInternals:false/g' | \ kubectl apply -f - kubectl apply -f ${GITHUB_WORKSPACE}/config/github/rbac.yaml chmod a+x ${GITHUB_WORKSPACE}/scripts/verify-deployment.sh sleep 50 echo ">>> Check kyverno" kubectl get pods -n kyverno ${GITHUB_WORKSPACE}/scripts/verify-deployment.sh -n kyverno kyverno sleep 20 echo ">>> Expose the Kyverno's service's metric server to the host" kubectl port-forward svc/kyverno-svc-metrics -n kyverno 8000:8000 & echo ">>> Run Kyverno e2e test" export FLAG_AUTOGEN_INTERNALS=false make test-e2e kubectl delete -f ${GITHUB_WORKSPACE}/config/install.yaml - name: Update chart values run: | make helm-test-values cat charts/kyverno/values.yaml - name: Run chart-testing (install) run: | kubectl create namespace kyverno ct install --target-branch=main --namespace=kyverno --charts charts/kyverno - name: Run chart-testing (policies) run: | helm install kyverno charts/kyverno -n kyverno ct install --target-branch=main --namespace=kyverno --charts charts/kyverno-policies - name: Debug failure if: failure() run: | kubectl get mutatingwebhookconfigurations,validatingwebhookconfigurations kubectl -n kyverno get pod kubectl -n kyverno describe pod | grep -i events -A10 kubectl -n kyverno logs deploy/kyverno -p || true kubectl -n kyverno logs deploy/kyverno