Sync the shared issue-core ingestion key from OpenBao into actcore-runtime-secret via External Secrets, with an interim coulombcore ClusterSecretStore bootstrap script and deploy docs. Removes manual key injection from bootstrap-secrets.sh.
44 lines
1.5 KiB
Bash
44 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
NS="${NS:-activity-core}"
|
|
|
|
kubectl apply -f k8s/railiance/00-namespace.yaml
|
|
|
|
secret_exists() {
|
|
kubectl -n "$NS" get secret "$1" >/dev/null 2>&1
|
|
}
|
|
|
|
random_password() {
|
|
openssl rand -base64 32 | tr -d '\n'
|
|
}
|
|
|
|
if ! secret_exists actcore-app-db-secret; then
|
|
APP_DB_PASSWORD="$(random_password)"
|
|
kubectl -n "$NS" create secret generic actcore-app-db-secret \
|
|
--from-literal=username=actcore \
|
|
--from-literal=database=actcore \
|
|
--from-literal=password="$APP_DB_PASSWORD"
|
|
else
|
|
APP_DB_PASSWORD="$(kubectl -n "$NS" get secret actcore-app-db-secret -o jsonpath='{.data.password}' | base64 -d)"
|
|
fi
|
|
|
|
if ! secret_exists actcore-temporal-db-secret; then
|
|
kubectl -n "$NS" create secret generic actcore-temporal-db-secret \
|
|
--from-literal=username=temporal \
|
|
--from-literal=database=temporal \
|
|
--from-literal=password="$(random_password)"
|
|
fi
|
|
|
|
ACTCORE_DB_URL="postgresql+asyncpg://actcore:${APP_DB_PASSWORD}@actcore-app-db:5432/actcore"
|
|
|
|
if ! secret_exists actcore-runtime-secret; then
|
|
kubectl -n "$NS" create secret generic actcore-runtime-secret \
|
|
--from-literal=ACTCORE_DB_URL="$ACTCORE_DB_URL" \
|
|
--from-literal=WEBHOOK_SECRET_GITEA="" \
|
|
--from-literal=WEBHOOK_SECRET_GITHUB="" \
|
|
--from-literal=OPS_HUB_KEY=""
|
|
fi
|
|
# ISSUE_CORE_API_KEY is merged into actcore-runtime-secret by ExternalSecret
|
|
# actcore-issue-core-runtime (k8s/railiance/15-externalsecret-issue-core.yaml).
|
|
# Apply that manifest after ClusterSecretStore openbao-activity-core is Ready.
|