mirror of
https://github.com/kata-containers/kata-containers.git
synced 2026-07-13 03:26:54 +00:00
When added, I've mistakenly used the wrong test-type name, which is now fixed and should be enough to trigger the tests correctly. Signed-off-by: Fabiano Fidêncio <ffidencio@nvidia.com>
168 lines
7.4 KiB
YAML
168 lines
7.4 KiB
YAML
name: CI | Run containerd guest pull stability tests
|
|
on:
|
|
schedule:
|
|
- cron: "0 */1 * * *" #run every hour
|
|
|
|
permissions: {}
|
|
|
|
# This job relies on k8s pre-installed using kubeadm
|
|
jobs:
|
|
run-containerd-guest-pull-stability-tests:
|
|
name: run-containerd-guest-pull-stability-tests-${{ matrix.environment.test-type }}-${{ matrix.environment.containerd }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
environment: [
|
|
{ test-type: multi-snapshotter, containerd: v2.2 },
|
|
{ test-type: force-guest-pull, containerd: v1.7 },
|
|
{ test-type: force-guest-pull, containerd: v2.0 },
|
|
{ test-type: force-guest-pull, containerd: v2.1 },
|
|
{ test-type: force-guest-pull, containerd: v2.2 },
|
|
]
|
|
env:
|
|
# I don't want those to be inside double quotes, so I'm deliberately ignoring the double quotes here.
|
|
IMAGES_LIST: quay.io/mongodb/mongodb-community-server@sha256:8b73733842da21b6bbb6df4d7b2449229bb3135d2ec8c6880314d88205772a11 ghcr.io/edgelesssys/redis@sha256:ecb0a964c259a166a1eb62f0eb19621d42bd1cce0bc9bb0c71c828911d4ba93d
|
|
runs-on: containerd-${{ matrix.environment.test-type }}-${{ matrix.environment.containerd }}
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Rotate the journal
|
|
run: sudo journalctl --rotate --vacuum-time 1s
|
|
|
|
- name: Pull the kata-deploy image to be used
|
|
run: sudo ctr -n k8s.io image pull quay.io/kata-containers/kata-deploy-ci:kata-containers-latest
|
|
|
|
- name: Deploy Kata Containers
|
|
run: bash tests/integration/kubernetes/gha-run.sh deploy-kata
|
|
env:
|
|
KATA_HYPERVISOR: qemu-coco-dev
|
|
KUBERNETES: vanilla
|
|
SNAPSHOTTER: ${{ matrix.environment.test-type == 'multi-snapshotter' && 'nydus' || '' }}
|
|
USE_EXPERIMENTAL_SETUP_SNAPSHOTTER: ${{ matrix.environment.test-type == 'multi-snapshotter' }}
|
|
EXPERIMENTAL_FORCE_GUEST_PULL: ${{ matrix.environment.test-type == 'force-guest-pull' && 'qemu-coco-dev' || '' }}
|
|
|
|
# This is needed as we may hit the createContainerTimeout
|
|
- name: Adjust Kata Containers' create_container_timeout
|
|
run: |
|
|
sudo sed -i -e 's/^\(create_container_timeout\).*=.*$/\1 = 600/g' /opt/kata/share/defaults/kata-containers/configuration-qemu-coco-dev.toml
|
|
grep "create_container_timeout.*=" /opt/kata/share/defaults/kata-containers/configuration-qemu-coco-dev.toml
|
|
|
|
# This is needed in order to have enough tmpfs space inside the guest to pull the image
|
|
- name: Adjust Kata Containers' default_memory
|
|
run: |
|
|
sudo sed -i -e 's/^\(default_memory\).*=.*$/\1 = 4096/g' /opt/kata/share/defaults/kata-containers/configuration-qemu-coco-dev.toml
|
|
grep "default_memory.*=" /opt/kata/share/defaults/kata-containers/configuration-qemu-coco-dev.toml
|
|
|
|
- name: Run a few containers using overlayfs
|
|
run: |
|
|
# I don't want those to be inside double quotes, so I'm deliberately ignoring the double quotes here
|
|
# shellcheck disable=SC2086
|
|
for img in ${IMAGES_LIST}; do
|
|
echo "overlayfs | Using on image: ${img}"
|
|
pod="$(echo ${img} | tr ':.@/' '-' | awk '{print substr($0,1,56)}')"
|
|
kubectl run "${pod}" \
|
|
-it --rm \
|
|
--restart=Never \
|
|
--image="${img}" \
|
|
--image-pull-policy=Always \
|
|
--pod-running-timeout=10m \
|
|
-- uname -r
|
|
done
|
|
|
|
- name: Run a the same few containers using a different snapshotter
|
|
run: |
|
|
# I don't want those to be inside double quotes, so I'm deliberately ignoring the double quotes here
|
|
# shellcheck disable=SC2086
|
|
for img in ${IMAGES_LIST}; do
|
|
echo "nydus | Using on image: ${img}"
|
|
pod="kata-$(echo ${img} | tr ':.@/' '-' | awk '{print substr($0,1,56)}')"
|
|
kubectl run "${pod}" \
|
|
-it --rm \
|
|
--restart=Never \
|
|
--image="${img}" \
|
|
--image-pull-policy=Always \
|
|
--pod-running-timeout=10m \
|
|
--overrides='{
|
|
"spec": {
|
|
"runtimeClassName": "kata-qemu-coco-dev"
|
|
}
|
|
}' \
|
|
-- uname -r
|
|
done
|
|
|
|
- name: Uninstall Kata Containers
|
|
run: bash tests/integration/kubernetes/gha-run.sh cleanup
|
|
env:
|
|
KATA_HYPERVISOR: qemu-coco-dev
|
|
KUBERNETES: vanilla
|
|
SNAPSHOTTER: nydus
|
|
USE_EXPERIMENTAL_SETUP_SNAPSHOTTER: true
|
|
|
|
- name: Run a few containers using overlayfs
|
|
run: |
|
|
# I don't want those to be inside double quotes, so I'm deliberately ignoring the double quotes here
|
|
# shellcheck disable=SC2086
|
|
for img in ${IMAGES_LIST}; do
|
|
echo "overlayfs | Using on image: ${img}"
|
|
pod="$(echo ${img} | tr ':.@/' '-' | awk '{print substr($0,1,56)}')"
|
|
kubectl run "${pod}" \
|
|
-it --rm \
|
|
--restart=Never \
|
|
--image=${img} \
|
|
--image-pull-policy=Always \
|
|
--pod-running-timeout=10m \
|
|
-- uname -r
|
|
done
|
|
|
|
- name: Deploy Kata Containers
|
|
run: bash tests/integration/kubernetes/gha-run.sh deploy-kata
|
|
env:
|
|
KATA_HYPERVISOR: qemu-coco-dev
|
|
KUBERNETES: vanilla
|
|
SNAPSHOTTER: nydus
|
|
USE_EXPERIMENTAL_SETUP_SNAPSHOTTER: true
|
|
|
|
# This is needed as we may hit the createContainerTimeout
|
|
- name: Adjust Kata Containers' create_container_timeout
|
|
run: |
|
|
sudo sed -i -e 's/^\(create_container_timeout\).*=.*$/\1 = 600/g' /opt/kata/share/defaults/kata-containers/configuration-qemu-coco-dev.toml
|
|
grep "create_container_timeout.*=" /opt/kata/share/defaults/kata-containers/configuration-qemu-coco-dev.toml
|
|
|
|
# This is needed in order to have enough tmpfs space inside the guest to pull the image
|
|
- name: Adjust Kata Containers' default_memory
|
|
run: |
|
|
sudo sed -i -e 's/^\(default_memory\).*=.*$/\1 = 4096/g' /opt/kata/share/defaults/kata-containers/configuration-qemu-coco-dev.toml
|
|
grep "default_memory.*=" /opt/kata/share/defaults/kata-containers/configuration-qemu-coco-dev.toml
|
|
|
|
- name: Run a the same few containers using a different snapshotter
|
|
run: |
|
|
# I don't want those to be inside double quotes, so I'm deliberately ignoring the double quotes here
|
|
# shellcheck disable=SC2086
|
|
for img in ${IMAGES_LIST}; do
|
|
echo "nydus | Using on image: ${img}"
|
|
pod="kata-$(echo ${img} | tr ':.@/' '-' | awk '{print substr($0,1,56)}')"
|
|
kubectl run "${pod}" \
|
|
-it --rm \
|
|
--restart=Never \
|
|
--image="${img}" \
|
|
--image-pull-policy=Always \
|
|
--pod-running-timeout=10m \
|
|
--overrides='{
|
|
"spec": {
|
|
"runtimeClassName": "kata-qemu-coco-dev"
|
|
}
|
|
}' \
|
|
-- uname -r
|
|
done
|
|
|
|
- name: Uninstall Kata Containers
|
|
run: bash tests/integration/kubernetes/gha-run.sh cleanup || true
|
|
if: always()
|
|
env:
|
|
KATA_HYPERVISOR: qemu-coco-dev
|
|
KUBERNETES: vanilla
|
|
SNAPSHOTTER: nydus
|
|
USE_EXPERIMENTAL_SETUP_SNAPSHOTTER: true
|