ci: upgrade kind v0.26.0 #940
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: e2e-test | |
on: | |
push: | |
branches: | |
- "*" | |
pull_request: | |
permissions: | |
contents: read | |
jobs: | |
e2e-test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
arrays: | |
[ | |
{ | |
node: "v1.22.17", | |
digest: "f5b2e5698c6c9d6d0adc419c0deae21a425c07d81bbf3b6a6834042f25d4fba2", | |
}, | |
{ | |
node: "v1.23.17", | |
digest: "14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3", | |
}, | |
{ | |
node: "v1.24.17", | |
digest: "bad10f9b98d54586cba05a7eaa1b61c6b90bfc4ee174fdc43a7b75ca75c95e51", | |
}, | |
{ | |
node: "v1.25.16", | |
digest: "6110314339b3b44d10da7d27881849a87e092124afab5956f2e10ecdb463b025", | |
}, | |
{ | |
node: "v1.26.15", | |
digest: "c79602a44b4056d7e48dc20f7504350f1e87530fe953428b792def00bc1076dd", | |
}, | |
{ | |
node: "v1.27.16", | |
digest: "2d21a61643eafc439905e18705b8186f3296384750a835ad7a005dceb9546d20", | |
}, | |
{ | |
node: "v1.28.15", | |
digest: "a7c05c7ae043a0b8c818f5a06188bc2c4098f6cb59ca7d1856df00375d839251", | |
}, | |
{ | |
node: "v1.29.12", | |
digest: "62c0672ba99a4afd7396512848d6fc382906b8f33349ae68fb1dbfe549f70dec", | |
}, | |
{ | |
node: "v1.30.8", | |
digest: "17cd608b3971338d9180b00776cb766c50d0a0b6b904ab4ff52fd3fc5c6369bf", | |
}, | |
{ | |
node: "v1.31.4", | |
digest: "2cb39f7295fe7eafee0842b1052a599a4fb0f8bcf3f83d96c7f4864c357c6c30", | |
}, | |
] | |
install-mode: | |
- ha | |
- standalone | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up kubectl | |
uses: azure/setup-kubectl@v4 | |
with: | |
version: ${{ matrix.arrays.node }} | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3.2.0 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3.8.0 | |
- name: Build Container Image | |
uses: docker/build-push-action@v6.10.0 | |
with: | |
context: . | |
file: ./Dockerfile | |
load: true | |
platforms: linux/amd64 | |
provenance: false | |
push: false | |
tags: ghcr.io/${{ github.repository }}:ci | |
- name: Set up KinD | |
uses: engineerd/setup-kind@v0.6.2 | |
with: | |
config: ./hack/e2e-kind-config.yaml | |
image: docker.io/kindest/node@sha256:${{ matrix.arrays.digest }} | |
skipClusterLogsExport: true | |
version: "v0.26.0" | |
- name: Wait for KiND readiness | |
run: | | |
kubectl --namespace kube-system wait --for=condition=ready pod -l tier=control-plane --timeout=300s | |
kubectl get nodes -o wide | |
- name: Load image on the nodes of the KinD | |
run: | | |
kind load docker-image ghcr.io/${{ github.repository }}:ci | |
- name: Patch Install Manifests | |
run: | | |
sed -i -e 's@imagePullPolicy: Always@imagePullPolicy: IfNotPresent@g' ./deploy/${{ matrix.install-mode }}-install.yaml | |
sed -i -e 's@image: .*@image: ghcr.io/${{ github.repository }}:ci@g' ./deploy/${{ matrix.install-mode }}-install.yaml | |
- name: Deploy Application | |
id: deployment | |
run: | | |
kubectl apply -f ./deploy/${{ matrix.install-mode }}-install.yaml | |
count=0 | |
until [[ $(kubectl --namespace kubelet-serving-cert-approver get pod --selector app.kubernetes.io/name=kubelet-serving-cert-approver 2>/dev/null) ]]; do | |
count=$((count + 1)) | |
if [[ "${count}" -eq "150" ]]; then | |
echo 'Wait Timeout exceeded' >&3 | |
return 1 | |
fi | |
sleep 2 | |
done | |
kubectl --namespace kubelet-serving-cert-approver wait --for=condition=ready pod --selector app.kubernetes.io/name=kubelet-serving-cert-approver --timeout=300s | |
- name: Get deployment failure logs | |
if: ${{ failure() && steps.deployment.outputs.exit_code != 0 }} | |
run: | | |
kubectl --namespace kubelet-serving-cert-approver get events | |
kubectl --namespace kubelet-serving-cert-approver describe deployments kubelet-serving-cert-approver | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
cache: true | |
go-version: 1.23.4 | |
- name: Test Approved Certificate Signing Requests | |
run: go test -tags=e2e -v ./e2e | |
- name: Get Application logs | |
if: ${{ always() }} | |
run: | | |
kubectl --namespace kubelet-serving-cert-approver logs --selector app.kubernetes.io/name=kubelet-serving-cert-approver --prefix |