name: CI | Run kubernetes tests on amd64 on: workflow_call: inputs: registry: required: true type: string repo: required: true type: string tag: required: true type: string pr-number: required: true type: string commit-hash: required: false type: string target-branch: required: false type: string default: "" jobs: run-k8s-tests-amd64: strategy: fail-fast: false matrix: vmm: - clh #cloud-hypervisor - dragonball - fc #firecracker - qemu - cloud-hypervisor container_runtime: - containerd snapshotter: - devmapper k8s: - k3s include: - vmm: qemu container_runtime: crio snapshotter: "" k8s: k0s runs-on: ubuntu-22.04 env: DOCKER_REGISTRY: ${{ inputs.registry }} DOCKER_REPO: ${{ inputs.repo }} DOCKER_TAG: ${{ inputs.tag }} GH_PR_NUMBER: ${{ inputs.pr-number }} KATA_HYPERVISOR: ${{ matrix.vmm }} KUBERNETES: ${{ matrix.k8s }} KUBERNETES_EXTRA_PARAMS: ${{ matrix.container_runtime != 'crio' && '' || '--cri-socket remote:unix:///var/run/crio/crio.sock --kubelet-extra-args --cgroup-driver="systemd"' }} SNAPSHOTTER: ${{ matrix.snapshotter }} USING_NFD: "false" K8S_TEST_HOST_TYPE: all CONTAINER_RUNTIME: ${{ matrix.container_runtime }} steps: - uses: actions/checkout@v4 with: ref: ${{ inputs.commit-hash }} fetch-depth: 0 - name: Rebase atop of the latest target branch run: | ./tests/git-helper.sh "rebase-atop-of-the-latest-target-branch" env: TARGET_BRANCH: ${{ inputs.target-branch }} - name: Configure CRI-O if: matrix.container_runtime == 'crio' run: bash tests/integration/kubernetes/gha-run.sh setup-crio - name: Deploy ${{ matrix.k8s }} run: bash tests/integration/kubernetes/gha-run.sh deploy-k8s - name: Configure the ${{ matrix.snapshotter }} snapshotter if: matrix.snapshotter != '' run: bash tests/integration/kubernetes/gha-run.sh configure-snapshotter - name: Deploy Kata timeout-minutes: 10 run: bash tests/integration/kubernetes/gha-run.sh deploy-kata - name: Install `bats` run: bash tests/integration/kubernetes/gha-run.sh install-bats - name: Run tests timeout-minutes: 30 run: bash tests/integration/kubernetes/gha-run.sh run-tests - name: Collect artifacts ${{ matrix.vmm }} if: always() run: bash tests/integration/kubernetes/gha-run.sh collect-artifacts continue-on-error: true - name: Archive artifacts ${{ matrix.vmm }} uses: actions/upload-artifact@v4 with: name: k8s-tests-${{ matrix.vmm }}-${{ matrix.snapshotter }}-${{ matrix.k8s }}-${{ inputs.tag }} path: /tmp/artifacts retention-days: 1 - name: Delete kata-deploy if: always() run: bash tests/integration/kubernetes/gha-run.sh cleanup