Files
feedc0de 1daf39f4fc
Validate and deploy Kubernetes Dashboard / validate (push) Successful in 17s
Validate and deploy Kubernetes Dashboard / deploy (push) Failing after 10m20s
Introduce CI/CD
2026-09-05 17:56:41 +02:00

52 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
set -eu
chart_version=${DASHBOARD_CHART_VERSION:-7.14.0}
chart_sha256=${DASHBOARD_CHART_SHA256:-37be462a39258fda57a2a5e5d81082d8d28a8083c7977f4f4632fa374b1a616d}
project_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
chart_archive=$(mktemp)
helm_cache=$(mktemp -d)
trap 'rm -f "$chart_archive"; rm -rf "$helm_cache"' EXIT HUP INT TERM
for command in curl helm kubectl sha256sum; do
if ! command -v "$command" >/dev/null 2>&1; then
echo "Required command not found: $command" >&2
exit 1
fi
done
kubectl create namespace kubernetes-dashboard --dry-run=client --output=yaml \
| kubectl apply --filename=-
# This privileged identity is deliberately bootstrap-only. CI cannot edit the
# cluster-admin binding, and no long-lived service-account token is created.
kubectl apply --filename "$project_dir/kubernetes-dashboard-user.yaml"
curl --fail --silent --show-error --location --output "$chart_archive" \
"https://github.com/kubernetes-retired/dashboard/releases/download/kubernetes-dashboard-${chart_version}/kubernetes-dashboard-${chart_version}.tgz"
printf '%s %s\n' "$chart_sha256" "$chart_archive" | sha256sum --check >&2
HELM_CACHE_HOME="$helm_cache" HELM_PLUGINS="$project_dir/helm-plugins" \
helm upgrade --install kubernetes-dashboard "$chart_archive" \
--namespace kubernetes-dashboard \
--values "$project_dir/kubernetes-dashboard-values.yaml" \
--post-renderer pin-images \
--server-side=true --take-ownership --force-conflicts --rollback-on-failure \
--wait --timeout 15m
kubectl apply --filename "$project_dir/auth-proxy.yaml"
kubectl apply --filename "$project_dir/kubernetes-dashboard-ingressroute.yaml"
for deployment in \
kubernetes-dashboard-api \
kubernetes-dashboard-auth \
kubernetes-dashboard-web \
kubernetes-dashboard-metrics-scraper \
kubernetes-dashboard-kong \
kubernetes-dashboard-auth-proxy
do
kubectl --namespace kubernetes-dashboard rollout status \
"deployment/$deployment" --timeout=10m
done