ci: switch openbao loading to approle
CI / Rust Checks (push) Has been cancelled
CI / UI Checks (push) Has been cancelled
CI / Frontend E2E (push) Has been cancelled
CI / Deployment Manifests (push) Has been cancelled
Deploy / build-images (apps/admin-api/Dockerfile, git.itexp.me/bsodfather/crank-community-admin-api, admin-api) (push) Has been cancelled
Deploy / build-images (apps/mcp-server/Dockerfile, git.itexp.me/bsodfather/crank-community-mcp-server, mcp-server) (push) Has been cancelled
Deploy / build-images (apps/ui/Dockerfile, git.itexp.me/bsodfather/crank-community-ui, ui) (push) Has been cancelled
Deploy / deploy (push) Has been cancelled

This commit is contained in:
github-ops
2026-06-16 17:50:18 +00:00
parent 1b528106b7
commit 7ab04aab2d
7 changed files with 108 additions and 43 deletions
+24 -10
View File
@@ -253,25 +253,32 @@ CD для MVP должен:
В Gitea secrets хранится только bootstrap-доступ к OpenBao:
- `BAO_ADDR`
- `BAO_TOKEN`
- `BAO_SECRET_PATH`
- `BAO_ROLE_ID`
- `BAO_SECRET_ID`
Workflow читает `BAO_SECRET_PATH` через `scripts/load-openbao-env.sh` и получает оттуда deploy,
registry и runtime значения. Это оставляет Gitea runner без прямого списка прикладных секретов.
Workflow получает short-lived token через OpenBao AppRole и читает deploy, registry и runtime
значения через `scripts/load-openbao-env.sh`. Это оставляет Gitea runner без прямого списка
прикладных секретов.
Минимальный рекомендуемый путь секрета:
OpenBao mount:
```text
kv/data/crank/community/deploy
ci/
```
Секрет может быть KV v1 или KV v2. Для KV v2 workflow ожидает стандартный ответ вида
`data.data`.
Workflow читает KV v2 секреты:
```text
shared/registry
shared/deploy-ssh
projects/crank/deploy
projects/crank/runtime
```
В OpenBao должны лежать:
- `DEPLOY_REGISTRY_USER`
- `DEPLOY_REGISTRY_TOKEN`
- `REGISTRY_USERNAME`
- `REGISTRY_PASSWORD`
- `DEPLOY_SSH_KEY`
- `DEPLOY_HOST`
- `DEPLOY_PORT`
@@ -279,6 +286,13 @@ kv/data/crank/community/deploy
- `DEPLOY_PATH`
- `DEPLOY_KNOWN_HOSTS`, optional
`scripts/load-openbao-env.sh` маппит registry credentials для существующего workflow:
```text
REGISTRY_USERNAME -> DEPLOY_REGISTRY_USER
REGISTRY_PASSWORD -> DEPLOY_REGISTRY_TOKEN
```
Workflow доставляет именно `deploy/community/docker-compose.yml` как public Community deployment manifest
и собирает `.env` на сервере из значений OpenBao. Для runtime-переменных нужно
создавать ключи с теми же именами, что и у приложений:
+3 -3
View File
@@ -235,9 +235,9 @@ Demo/deployment:
В deployment workflow больше не используется монолитный `DEPLOY_ENV_FILE`.
`.env` на сервере собирается из OpenBao. В Gitea Actions хранятся только bootstrap credentials
`BAO_ADDR`, `BAO_TOKEN` и `BAO_SECRET_PATH`, а внутри OpenBao ключи совпадают с именами
runtime env-переменных. Это значит, что:
`.env` на сервере собирается из OpenBao. В Gitea Actions хранятся только AppRole credentials
`BAO_ADDR`, `BAO_ROLE_ID` и `BAO_SECRET_ID`, а внутри OpenBao ключи проекта
`projects/crank/runtime` совпадают с именами runtime env-переменных. Это значит, что:
- `CRANK_MASTER_KEY` хранится в OpenBao как ключ `CRANK_MASTER_KEY`;
- `CRANK_DEMO_SEED` хранится в OpenBao как ключ `CRANK_DEMO_SEED`;