#!/bin/bash set -euo pipefail WOODPECKER_NAMESPACE="${WOODPECKER_NAMESPACE:-data}" WOODPECKER_IMAGE_SERVER="${WOODPECKER_IMAGE_SERVER:-woodpecker/server:latest}" WOODPECKER_IMAGE_AGENT="${WOODPECKER_IMAGE_AGENT:-woodpecker/agent:latest}" WOODPECKER_DATABASE="${WOODPECKER_DATABASE:-woodpecker}" WOODPECKER_DB_HOST="${WOODPECKER_DB_HOST:-postgresql.data.svc}" WOODPECKER_FORGEJO_URL="${WOODPECKER_FORGEJO_URL:-http://forgejo.data.svc:3000}" WOODPECKER_HTTP_PORT="${WOODPECKER_HTTP_PORT:-8000}" WOODPECKER_GRPC_PORT="${WOODPECKER_GRPC_PORT:-9000}" WOODPECKER_STORAGE_CLASS="${WOODPECKER_STORAGE_CLASS:-local-path}" WOODPECKER_STORAGE_SIZE="${WOODPECKER_STORAGE_SIZE:-5Gi}" WOODPECKER_DB_NAMESPACE="${WOODPECKER_DB_NAMESPACE:-core-data}" WOODPECKER_HOSTNAME="${WOODPECKER_HOSTNAME:-}" WOODPECKER_CLUSTER_ISSUER="${WOODPECKER_CLUSTER_ISSUER:-letsencrypt-prod-librecloud}" WOODPECKER_TLS_SECRET="${WOODPECKER_TLS_SECRET:-woodpecker-tls}" WOODPECKER_GATEWAY_NAME="${WOODPECKER_GATEWAY_NAME:-libre-daoshi}" WOODPECKER_GATEWAY_NS="${WOODPECKER_GATEWAY_NS:-kube-system}" WOODPECKER_FORGEJO_GATEWAY_IP="${WOODPECKER_FORGEJO_GATEWAY_IP:-}" WOODPECKER_ADMIN="${WOODPECKER_ADMIN:-}" KUBECONFIG="${KUBECONFIG:-/root/.kube/config}" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CATALOG_LIB="${SCRIPT_DIR}/../../../lib" # When bundled for remote execution, catalog/lib/ is copied to lib/ beside this # script (forgejo/radicle convention); fall back to a flat sibling, then dev layout. if [ -f "${SCRIPT_DIR}/lib/gateway-tls.sh" ]; then CATALOG_LIB="${SCRIPT_DIR}/lib" elif [ -f "${SCRIPT_DIR}/gateway-tls.sh" ]; then CATALOG_LIB="${SCRIPT_DIR}" fi export KUBECONFIG CMD_TSK="${CMD_TSK:-${1:-install}}" [ -f "${SCRIPT_DIR}/env-woodpecker" ] && source "${SCRIPT_DIR}/env-woodpecker" # SOPS-injected secrets (WOODPECKER_AGENT_SECRET, …, POSTGRES_PASSWORD) from woodpecker.sops.yaml [ -f "${SCRIPT_DIR}/_credentials.env" ] && set -a && source "${SCRIPT_DIR}/_credentials.env" && set +a # shellcheck source=woodpecker-lib.sh source "${SCRIPT_DIR}/woodpecker-lib.sh" case "$CMD_TSK" in install) _do_install ;; update) _do_update ;; delete) _do_delete ;; health) _do_health ;; *) echo "ERROR: unknown CMD_TSK='$CMD_TSK'. Valid: install|update|delete|health" >&2 exit 1 ;; esac