ChaGPT added lab simulations
This commit is contained in:
46
lab-environment/create-lab.sh
Normal file
46
lab-environment/create-lab.sh
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
CLUSTER_NAME="cks-lab"
|
||||
KUBECONFIG_PATH="/opt/cks-lab/kubeconfig"
|
||||
NODE_IMAGE="kindest/node:v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a"
|
||||
CALICO_VERSION="v3.32.1"
|
||||
CONFIG_PATH="${1:?Pass the Kind configuration path.}"
|
||||
|
||||
if [[ "${EUID}" -ne 0 ]]; then
|
||||
echo "Run this script as root inside the lab WSL distribution." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
systemctl start docker 2>/dev/null || service docker start
|
||||
install -d -m 0700 /opt/cks-lab
|
||||
|
||||
if ! kind get clusters | grep -Fxq "$CLUSTER_NAME"; then
|
||||
kind create cluster \
|
||||
--name "$CLUSTER_NAME" \
|
||||
--image "$NODE_IMAGE" \
|
||||
--config "$CONFIG_PATH" \
|
||||
--kubeconfig "$KUBECONFIG_PATH"
|
||||
fi
|
||||
|
||||
export KUBECONFIG="$KUBECONFIG_PATH"
|
||||
chmod 0600 "$KUBECONFIG"
|
||||
context="$(kubectl config current-context)"
|
||||
if [[ "$context" != "kind-${CLUSTER_NAME}" ]]; then
|
||||
echo "Safety check failed: unexpected context $context" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
kubectl apply -f "https://raw.githubusercontent.com/projectcalico/calico/${CALICO_VERSION}/manifests/operator-crds.yaml"
|
||||
kubectl apply -f "https://raw.githubusercontent.com/projectcalico/calico/${CALICO_VERSION}/manifests/tigera-operator.yaml"
|
||||
kubectl apply -f "https://raw.githubusercontent.com/projectcalico/calico/${CALICO_VERSION}/manifests/custom-resources.yaml"
|
||||
|
||||
kubectl wait --for=condition=Available deployment/tigera-operator -n tigera-operator --timeout=300s
|
||||
kubectl wait --for=condition=Ready nodes --all --timeout=600s
|
||||
|
||||
for node in "${CLUSTER_NAME}-control-plane" "${CLUSTER_NAME}-worker"; do
|
||||
docker exec "$node" rm -rf /opt/kube-bench
|
||||
docker cp /opt/cks-lab/tools/kube-bench "$node":/opt/kube-bench
|
||||
docker exec "$node" /opt/kube-bench/kube-bench version
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user