Skip to content

Commit

Permalink
e2e: Move tests to gh action using azure workers
Browse files Browse the repository at this point in the history
use the azure runners provided by "confidential-containers/infra" to run
the kata-clh and kata-qemu workflows.

Signed-off-by: Lukáš Doktor <[email protected]>
  • Loading branch information
ldoktor committed Dec 4, 2023
1 parent 4d65952 commit 4d4972b
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 6 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/ccruntime_e2e.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: ccruntime e2e tests
on:
pull_request:
branches:
- main

permissions:
contents: read

jobs:
e2e:
name: operator tests
strategy:
matrix:
runtimeclass: ["kata-qemu", "kata-clh"]
instance: ["az-ubuntu-2004", "az-ubuntu-2204"]
runs-on: ${{ matrix.instance }}
steps:
- uses: actions/checkout@v4

- name: Install deps
run: |
sudo apt-get update -y
sudo apt-get install -y ansible python-is-python3
- name: Run e2e tests
run: |
cd tests/e2e
export PATH="$PATH:/usr/local/bin"
./run-local.sh -r "${{ matrix.runtimeclass }}" -u
4 changes: 2 additions & 2 deletions tests/e2e/cluster/up.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ main() {

# Untaint the node so that pods can be scheduled on it.
for role in master control-plane; do
kubectl taint nodes "$(hostname)" \
kubectl taint nodes "$SAFE_HOST_NAME" \
"node-role.kubernetes.io/$role:NoSchedule-"
done

kubectl label node "$(hostname)" node.kubernetes.io/worker=
kubectl label node "$SAFE_HOST_NAME" node.kubernetes.io/worker=
}

main "$@"
3 changes: 3 additions & 0 deletions tests/e2e/lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
# SPDX-License-Identifier: Apache-2.0
#

# Normalize system hostname to the usual kubectl node name
export SAFE_HOST_NAME=$(hostname | tr '[:upper:]' '[:lower:]')

# Wait until the node is ready. It is set a timeout of 180 seconds.
#
check_node_is_ready() {
Expand Down
8 changes: 4 additions & 4 deletions tests/e2e/operator.sh
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,9 @@ install_operator() {

# The node should be 'worker' labeled
local label="node.kubernetes.io/worker"
if ! kubectl get node "$(hostname)" -o jsonpath='{.metadata.labels}' \
if ! kubectl get node "$SAFE_HOST_NAME" -o jsonpath='{.metadata.labels}' \
| grep -q "$label"; then
kubectl label node "$(hostname)" "$label="
kubectl label node "$SAFE_HOST_NAME" "$label="
fi

handle_older_containerd
Expand Down Expand Up @@ -182,10 +182,10 @@ uninstall_ccruntime() {
! kubectl get --no-headers runtimeclass 2>/dev/null | grep -q kata

# Labels should be gone
if kubectl get nodes "$(hostname)" -o jsonpath='{.metadata.labels}' | \
if kubectl get nodes "$SAFE_HOST_NAME" -o jsonpath='{.metadata.labels}' | \
grep -q -e cc-preinstall -e katacontainers.io; then
echo "ERROR: there are labels left behind"
kubectl get nodes "$(hostname)" -o jsonpath='{.metadata.labels}'
kubectl get nodes "$SAFE_HOST_NAME" -o jsonpath='{.metadata.labels}'

return 1
fi
Expand Down

0 comments on commit 4d4972b

Please sign in to comment.