Skip to content

Commit 5bfd318

Browse files
committed
CI: test Kubernetes port forwarder
Signed-off-by: Akihiro Suda <[email protected]>
1 parent 9d5f469 commit 5bfd318

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ jobs:
296296
- archlinux.yaml
297297
- opensuse.yaml
298298
- docker.yaml
299+
- k8s.yaml
299300
- ../hack/test-templates/alpine-iso-9p-writable.yaml # Covers alpine-iso.yaml
300301
- ../hack/test-templates/net-user-v2.yaml
301302
- ../hack/test-templates/test-misc.yaml # TODO: merge net-user-v2 into test-misc

hack/test-templates.sh

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ declare -A CHECKS=(
4545
["systemd-strict"]="1"
4646
["mount-home"]="1"
4747
["container-engine"]="1"
48+
["k8s"]=""
4849
["restart"]="1"
4950
# snapshot tests are too flaky (especially with archlinux)
5051
["snapshot-online"]=""
@@ -64,6 +65,12 @@ declare -A CHECKS=(
6465
["ssh-over-vsock"]=""
6566
)
6667

68+
clear_checks() {
69+
for k in "${!CHECKS[@]}"; do
70+
CHECKS["$k"]=""
71+
done
72+
}
73+
6774
case "$NAME" in
6875
"default")
6976
# CI failure:
@@ -77,9 +84,10 @@ case "$NAME" in
7784
CHECKS["container-engine"]=
7885
[ "$NAME" = "alpine-iso-9p-writable" ] && CHECKS["mount-path-with-spaces"]="1"
7986
;;
80-
"k3s")
81-
ERROR "File \"$FILE\" is not testable with this script"
82-
exit 1
87+
"k0s" | "k3s" | "k8s")
88+
# Disable all checks except k8s
89+
clear_checks
90+
CHECKS["k8s"]="1"
8391
;;
8492
"fedora")
8593
WARNING "Relaxing systemd tests for fedora (For avoiding CI failure)"
@@ -432,6 +440,18 @@ if [[ -n ${CHECKS["container-engine"]} ]]; then
432440
fi
433441
fi
434442

443+
if [[ -n ${CHECKS["k8s"]} ]]; then
444+
INFO "Testing Kubernetes"
445+
set -x
446+
limactl shell "$NAME" kubectl get nodes -o wide
447+
limactl shell "$NAME" kubectl create deployment nginx --image="${nginx_image}"
448+
limactl shell "$NAME" kubectl create service nodeport nginx --node-port=31080 --tcp=80:80
449+
timeout 3m bash -euxc "until curl -f --retry 30 --retry-connrefused http://127.0.0.1:31080; do sleep 3; done"
450+
limactl shell "$NAME" kubectl delete service nginx
451+
limactl shell "$NAME" kubectl delete deployment nginx
452+
set +x
453+
fi
454+
435455
if [[ -n ${CHECKS["port-forwards"]} ]]; then
436456
INFO "Testing port forwarding rules using netcat"
437457
set -x

templates/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Container orchestration:
5757
- [`faasd`](./faasd.yaml): [Faasd](https://docs.openfaas.com/deployment/edge/)
5858
- [`k0s`](./k0s.yaml): [k0s](https://k0sproject.io/) Zero Friction Kubernetes
5959
- [`k3s`](./k3s.yaml): Kubernetes via k3s
60-
- [`k8s`](./k8s.yaml): Kubernetes via kubeadm
60+
- [`k8s`](./k8s.yaml): Kubernetes via kubeadm
6161
- [`experimental/u7s`](./experimental/u7s.yaml): [Usernetes](https://github.com/rootless-containers/usernetes): Rootless Kubernetes
6262

6363
Optional feature enablers:

0 commit comments

Comments
 (0)