Files
homelab-gitops/bootstrap/install.sh
T

77 lines
2.4 KiB
Bash
Executable File

#!/bin/sh
set -eu
expected_context=kubernetes-admin@kubernetes
current_context=$(kubectl config current-context)
if [ "${current_context}" != "${expected_context}" ]; then
echo "Refusing to bootstrap through unexpected context: ${current_context}" >&2
exit 1
fi
script_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
kubectl apply --dry-run=server -k "${script_dir}"
kubectl apply -k "${script_dir}"
kubectl --namespace argocd wait application/immich-sync \
--for=jsonpath='{.status.sync.status}'=Synced \
--timeout=5m
kubectl --namespace argocd wait application/immich-sync \
--for=jsonpath='{.status.health.status}'=Healthy \
--timeout=5m
kubectl --namespace argocd wait application/sealed-secrets \
--for=jsonpath='{.status.sync.status}'=Synced \
--timeout=5m
kubectl --namespace argocd wait application/sealed-secrets \
--for=jsonpath='{.status.health.status}'=Healthy \
--timeout=5m
kubectl --namespace argocd wait application/immichframe \
--for=jsonpath='{.status.sync.status}'=Synced \
--timeout=5m
kubectl --namespace argocd wait application/immichframe \
--for=jsonpath='{.status.health.status}'=Healthy \
--timeout=5m
kubectl --namespace argocd wait application/metallb \
--for=jsonpath='{.status.sync.status}'=Synced \
--timeout=5m
kubectl --namespace argocd wait application/metallb \
--for=jsonpath='{.status.health.status}'=Healthy \
--timeout=5m
kubectl --namespace argocd wait application/argocd \
--for=jsonpath='{.status.sync.status}'=Synced \
--timeout=10m
kubectl --namespace argocd wait application/argocd \
--for=jsonpath='{.status.health.status}'=Healthy \
--timeout=10m
for application in \
brgkepler-com \
gschissenes-equipment \
immich-crack \
pfostendynamics-com \
watschn-studio
do
kubectl --namespace argocd wait "application/${application}" \
--for=jsonpath='{.status.sync.status}'=Synced \
--timeout=5m
kubectl --namespace argocd wait "application/${application}" \
--for=jsonpath='{.status.health.status}'=Healthy \
--timeout=5m
done
for application in \
artcraft \
brunner-ninja \
coturn \
flaresolverr \
mosquitto \
ombi \
tautulli \
uptime-kuma \
visual-studio-code \
wiki-js
do
kubectl --namespace argocd wait "application/${application}" \
--for=jsonpath='{.status.sync.status}'=Synced \
--timeout=15m
kubectl --namespace argocd wait "application/${application}" \
--for=jsonpath='{.status.health.status}'=Healthy \
--timeout=15m
done