From 80d1ccb26d3e2b7e95b32bf237ae197579060581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Edouard=20Br=C3=A9t=C3=A9ch=C3=A9?= Date: Tue, 29 Mar 2022 18:35:27 +0200 Subject: [PATCH] chore: add autogen internals e2e tests (#3492) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Charles-Edouard Brétéché Co-authored-by: shuting --- .github/workflows/e2e-autogen-internals.yaml | 89 ++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 .github/workflows/e2e-autogen-internals.yaml diff --git a/.github/workflows/e2e-autogen-internals.yaml b/.github/workflows/e2e-autogen-internals.yaml new file mode 100644 index 0000000000..0db1d3cd4d --- /dev/null +++ b/.github/workflows/e2e-autogen-internals.yaml @@ -0,0 +1,89 @@ +name: e2e-autogen-internals +on: + push: + branches: + - 'main' + - 'release*' + paths-ignore: + - 'README.md' + - 'docs/**' + - '.github/config.yml' + pull_request: + branches: + - 'main' + - 'release*' + paths-ignore: + - 'README.md' + - 'docs/**' + - '.github/config.yml' + +permissions: read-all + +jobs: + e2e-test: + strategy: + fail-fast: false + matrix: + k8s-version: [v1.23.3] + 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.17 + + - 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@d9747005de0f7240e5d35a68dca96b3f41b8b340 # v1.2.0 + with: + path: ~/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-infrastruture + + - name: e2e testing + run: | + echo ">>> Install Kyverno" + cat ${GITHUB_WORKSPACE}/config/install.yaml | \ + sed -e 's/imagePullPolicy:.*$/imagePullPolicy: IfNotPresent/g' | \ + sed -e 's/--autogenInternals:false$/--autogenInternals:true/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=true + make test-e2e + kubectl delete -f ${GITHUB_WORKSPACE}/config/install.yaml + + - 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