46 lines
1.8 KiB
Bash
Executable File
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
|