#!/usr/bin/env bash set -euo pipefail PASS=0 FAIL=0 ok() { echo "[OK] $*"; ((PASS++)) || true; } fail() { echo "[FAIL] $*"; ((FAIL++)) || true; } # ── Node Ready ─────────────────────────────────────────────────────────────── if kubectl get nodes 2>/dev/null | grep -q " Ready"; then ok "Node(s) in Ready state" else fail "No nodes in Ready state" fi # ── Helm ───────────────────────────────────────────────────────────────────── if helm version --short &>/dev/null; then ok "helm version: $(helm version --short)" else fail "helm not available or erroring" fi # ── CoreDNS ────────────────────────────────────────────────────────────────── if kubectl get pods -n kube-system -l k8s-app=kube-dns 2>/dev/null | grep -q "Running"; then ok "CoreDNS pod running in kube-system" else fail "CoreDNS pod not running in kube-system" fi # ── Traefik ────────────────────────────────────────────────────────────────── if kubectl get pods -n kube-system -l app.kubernetes.io/name=traefik 2>/dev/null | grep -q "Running"; then ok "Traefik ingress controller running in kube-system" else fail "Traefik ingress controller not running in kube-system" fi # ── Summary ────────────────────────────────────────────────────────────────── echo "" echo "Results: ${PASS} passed, ${FAIL} failed" [[ "$FAIL" -eq 0 ]]