#!/usr/bin/env bash # Deploy entry for the radicle_seed cluster component. Runs ON the control-plane # node (k0s kubectl reachable only there — see control-plane-ssh-cluster-access). # Deployed via the orchestrator core (`provisioning component install radicle_seed`): # run_taskserv renders env-radicle_seed.j2 → env-radicle_seed, injects # radicle-seed.sops.yaml → _credentials.env, bundles this dir + catalog/lib/, and # runs this script on the CP. Methods live in radicle_seed-lib.sh. # # Scope: radicle-node (P2P 8776) + radicle-httpd (8080), seedingPolicy default=block # (selective). The cib + radicle-nats-adapter CI bridge (in the image) is a second # layer added once NATS wiring exists. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" [ -f "${SCRIPT_DIR}/env-radicle_seed" ] && source "${SCRIPT_DIR}/env-radicle_seed" # SOPS-injected identity (RADICLE_IDENTITY_KEY_B64/_PUB_B64, RADICLE_ALIAS, …) — # written by the orchestrator's run_taskserv from radicle-seed.sops.yaml. [ -f "${SCRIPT_DIR}/_credentials.env" ] && set -a && source "${SCRIPT_DIR}/_credentials.env" && set +a RADICLE_NAMESPACE="${RADICLE_NAMESPACE:-ops}" RADICLE_IMAGE="${RADICLE_IMAGE:-daoreg.librecloud.online/solera/radicle-seed:1.9.1}" RADICLE_ALIAS="${RADICLE_ALIAS:-seed.libre-daoshi}" RADICLE_P2P_PORT="${RADICLE_P2P_PORT:-8776}" RADICLE_HTTP_PORT="${RADICLE_HTTP_PORT:-8080}" RADICLE_EXTERNAL_ADDR="${RADICLE_EXTERNAL_ADDR:-10.0.8.5:8776}" RADICLE_SEEDING_DEFAULT="${RADICLE_SEEDING_DEFAULT:-block}" RADICLE_SEEDING_SCOPE="${RADICLE_SEEDING_SCOPE:-all}" RADICLE_SEED_RIDS="${RADICLE_SEED_RIDS:-}" RADICLE_STORAGE_SIZE="${RADICLE_STORAGE_SIZE:-10Gi}" RADICLE_STORAGE_CLASS="${RADICLE_STORAGE_CLASS:-hcloud-volumes}" RADICLE_RAD_HOME="${RADICLE_RAD_HOME:-/radicle/.radicle}" RADICLE_HOST_NETWORK="${RADICLE_HOST_NETWORK:-false}" RADICLE_NODE_SELECTOR="${RADICLE_NODE_SELECTOR:-}" RADICLE_GATEWAY_ENABLED="${RADICLE_GATEWAY_ENABLED:-false}" RADICLE_GATEWAY_NAME="${RADICLE_GATEWAY_NAME:-libre-daoshi}" RADICLE_GATEWAY_NS="${RADICLE_GATEWAY_NS:-kube-system}" RADICLE_LISTENER_NAME="${RADICLE_LISTENER_NAME:-https-radicle-seed}" RADICLE_HOSTNAME="${RADICLE_HOSTNAME:-seed.librecloud.online}" RADICLE_CLUSTER_ISSUER="${RADICLE_CLUSTER_ISSUER:-letsencrypt-prod-librecloud}" RADICLE_CERT_SECRET="${RADICLE_CERT_SECRET:-radicle-tls}" RADICLE_CERT_NAMESPACE="${RADICLE_CERT_NAMESPACE:-kube-system}" # shellcheck source=radicle_seed-lib.sh source "${SCRIPT_DIR}/radicle_seed-lib.sh" case "${1:-install}" in install) cmd_install ;; uninstall) cmd_uninstall ;; *) echo "usage: $0 {install|uninstall}" >&2; exit 2 ;; esac