Skip to content

ci: add kubernetes 1.35.0 e2e image #1105

ci: add kubernetes 1.35.0 e2e image

ci: add kubernetes 1.35.0 e2e image #1105

Workflow file for this run

name: e2e-test
on:
push:
branches:
- "*"
pull_request:
permissions:
contents: read
jobs:
e2e-test:
runs-on: ubuntu-24.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.14",
digest: "8703bd94ee24e51b778d5556ae310c6c0fa67d761fae6379c8e0bb480e6fea29",
},
{
node: "v1.30.13",
digest: "397209b3d947d154f6641f2d0ce8d473732bd91c87d9575ade99049aa33cd648",
},
{
node: "v1.31.14",
digest: "e360318c07a2bb22ced43884c6884208a82d3da24828c9f1329222dd517adc06",
},
{
node: "v1.32.11",
digest: "831a3aa45e399a20b3aef41d6d8572cc6ff07b1f76cac1242ce26be0ccf86402",
},
{
node: "v1.33.1",
digest: "eb929cd8aca88dd03836180c65f3892ba8ccc79d80de1cc6666bcb9a35c1334e",
},
{
node: "v1.34.3",
digest: "babda82416d417f720a4d6dbd35deec5263af2a6c164c81c08cde0044c2b9f78",
},
{
node: "v1.35.0",
digest: "986401fce0e567a9860075ba9df8c8459bd99a35f79024d8a682773fb40f0753",
},
]
install-mode:
- ha
- standalone
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v6
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.7.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.12.0
- name: Build Container Image
uses: docker/build-push-action@v6.18.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.29.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@v6
with:
cache: true
go-version: 1.25.5
- 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