Files
feedc0de 3d36d550c7
Validate and deploy cert-manager configuration / validate (push) Successful in 11s
Validate and deploy cert-manager configuration / deploy (push) Successful in 20s
Introduce CI/CD
2026-09-05 15:42:12 +02:00

46 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
set -eu
CERT_MANAGER_VERSION=v1.21.1
CERT_MANAGER_CHART=oci://quay.io/jetstack/charts/cert-manager
PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
CREDENTIALS_FILE=${CLOUDFLARE_CREDENTIALS_FILE:-$PROJECT_DIR/cloudflare-api-credentials.yaml}
kubectl create namespace cert-manager --dry-run=client -o yaml | kubectl apply -f -
if [ -f "$CREDENTIALS_FILE" ]; then
if grep -q 'REPLACE_WITH_' "$CREDENTIALS_FILE"; then
echo "Refusing placeholder credentials in $CREDENTIALS_FILE" >&2
exit 1
fi
kubectl apply -f "$CREDENTIALS_FILE"
elif kubectl -n cert-manager get secret cloudflare-api-token-secret >/dev/null 2>&1; then
echo "Keeping existing cert-manager/cloudflare-api-token-secret Secret."
else
echo "Missing $CREDENTIALS_FILE and the live Cloudflare Secret." >&2
exit 1
fi
helm upgrade --install cert-manager "$CERT_MANAGER_CHART" \
--version "$CERT_MANAGER_VERSION" \
--namespace cert-manager \
--create-namespace \
--take-ownership \
--force-conflicts \
--rollback-on-failure \
--wait \
--timeout 10m \
-f "$PROJECT_DIR/values.yaml"
kubectl apply -f "$PROJECT_DIR/cloudflare.yaml"
kubectl apply -f "$PROJECT_DIR/http-issuer.yaml"
kubectl wait --for=condition=Ready clusterissuer/letsencrypt-dns --timeout=120s
kubectl wait --for=condition=Ready clusterissuer/letsencrypt-http --timeout=120s
kubectl apply -f "$PROJECT_DIR/certificates.yaml"
kubectl wait --for=condition=Ready certificate/brunner-ninja --namespace default --timeout=10m
kubectl wait --for=condition=Ready certificate/watschn-studio --namespace default --timeout=10m
kubectl wait --for=condition=Ready certificate/brgkepler-com --namespace default --timeout=10m
kubectl wait --for=condition=Ready certificate/gschissenes-equipment --namespace default --timeout=10m