54 lines
2.3 KiB
Bash
54 lines
2.3 KiB
Bash
#!/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
|