Image Overview: eks-distro-kubernetes-csi-livenessprobe

Overview: eks-distro-kubernetes-csi-livenessprobe Chainguard Image

Get It

The image is available on cgr.dev and provides older versions of eks-distro-kubernetes-csi-liveness-probe: 1.23 and 1.25.

You can use the following commands to pull images:

For 1.25:

docker pull cgr.dev/chainguard/eks-distro-kubernetes-csi-livenessprobe:1.25

For 1.23:

docker pull cgr.dev/chainguard/eks-distro-kubernetes-csi-livenessprobe:1.23

Run it

Generally speaking, the kubernetes-csi-livenessprobe is a low level Kubernetes component not meant to be managed directly. However, all the steps outlined in the upstream repo apply just as well to the Chainguard Image version.

Test it

A simple smoke test is provided below that leverages docker to spin up the liveness probe attached to a csi driver and ensure basic functionality is met:

#!/usr/bin/env bash
set -o errexit -o nounset -o errtrace -o pipefail -x

UDS="/csi/csi.sock"
CSI_ENDPOINT="unix:/$UDS"
# Start hostpathplugin in the background
docker run -d --name csi-driver -v $(pwd)/csi:/csi quay.io/k8scsi/hostpathplugin:v1.6.0 --endpoint=$CSI_ENDPOINT -nodeid 1 --v=5
trap "docker rm -f csi-driver" EXIT
docker run -d --name probe -p 9808:9808 -v $(pwd)/csi:/csi "$IMAGE_NAME" --v=5 --csi-address=$UDS
trap "docker rm -f probe" EXIT
# Give time to CSI hostpathplugin and livenessprobe to initialize
sleep 3
# Requesting health
health=$(curl -I http://localhost:9808/healthz | grep HTTP | awk '{print $2}')
if [[ "x$health" != "x200" ]]; then
	echo "Health check failed, but it was not supposed to, exiting..."
	exit 1
fi
# Killing hostpathplugin
docker stop csi-driver
sleep 3
# Requesting health, should fail since hostpathplugin is gone
health=$(curl -I http://localhost:9808/healthz | grep HTTP | awk '{print $2}')
if [[ "x$health" != "x500" ]]; then
	echo "Health check did not detect driver failure, returned code: $health, exiting..."
	exit 1
fi
exit 0

Last updated: 2024-02-29 16:25