ci: checkout playbooks and iac_modules from public repos
- Stop checking out the old private mono-repo `ai-workspace-infra`. - Checkout the split public repositories `ai-workspace-infra/playbooks` and `ai-workspace-infra/iac_modules` separately. - Remove `CODEX_GITHUB_PERSONAL_ACCESS_TOKEN` (`INFRA_REPO_TOKEN`) dependency from vault as it's no longer needed for public repos.
This commit is contained in:
parent
4231afc399
commit
4b1f809937
25
.github/workflows/deploy-ai-workspace-iac.yaml
vendored
25
.github/workflows/deploy-ai-workspace-iac.yaml
vendored
@ -20,7 +20,6 @@ name: Deploy AI Workspace (IaC + Ansible + Cloudflare)
|
|||||||
# - KV 路径: kv/data/CICD(共享 CICD 机密) + kv/data/openclaw(LLM keys)
|
# - KV 路径: kv/data/CICD(共享 CICD 机密) + kv/data/openclaw(LLM keys)
|
||||||
# - 用到的键(详见 docs/operations/vault-github-actions.md):
|
# - 用到的键(详见 docs/operations/vault-github-actions.md):
|
||||||
# [kv/CICD] VULTR_API_KEY → TF_VAR_vultr_api_key
|
# [kv/CICD] VULTR_API_KEY → TF_VAR_vultr_api_key
|
||||||
# [kv/CICD] CODEX_GITHUB_PERSONAL_ACCESS_TOKEN → checkout ai-workspace-infra
|
|
||||||
# [kv/CICD] SSH_PRIVATE_DEPLOY_KEY[_B64] → 连主机 SSH 私钥(B64 优先)
|
# [kv/CICD] SSH_PRIVATE_DEPLOY_KEY[_B64] → 连主机 SSH 私钥(B64 优先)
|
||||||
# [kv/CICD] CLOUDFLARE_DNS_API_TOKEN → Cloudflare DNS 编辑
|
# [kv/CICD] CLOUDFLARE_DNS_API_TOKEN → Cloudflare DNS 编辑
|
||||||
# [kv/openclaw] DEEPSEEK_API_KEY / NVIDIA_API_KEY / OLLAMA_API_KEY → LLM provider keys
|
# [kv/openclaw] DEEPSEEK_API_KEY / NVIDIA_API_KEY / OLLAMA_API_KEY → LLM provider keys
|
||||||
@ -73,7 +72,6 @@ env:
|
|||||||
VAULT_KV: kv/data/CICD
|
VAULT_KV: kv/data/CICD
|
||||||
# LLM provider keys 放在 openclaw 路径
|
# LLM provider keys 放在 openclaw 路径
|
||||||
VAULT_KV_OPENCLAW: kv/data/openclaw
|
VAULT_KV_OPENCLAW: kv/data/openclaw
|
||||||
INFRA_REPO: ${{ github.repository_owner }}/ai-workspace-infra
|
|
||||||
# vultr-vps 根(共享 scripts/ templates/ config/);ENV_DIR 为 terraform 运行目录(workdir)
|
# vultr-vps 根(共享 scripts/ templates/ config/);ENV_DIR 为 terraform 运行目录(workdir)
|
||||||
VPS_ROOT: infra/iac_modules/terraform-hcl-standard/vultr-vps
|
VPS_ROOT: infra/iac_modules/terraform-hcl-standard/vultr-vps
|
||||||
ENV_DIR: infra/iac_modules/terraform-hcl-standard/vultr-vps/envs/ai-workspace
|
ENV_DIR: infra/iac_modules/terraform-hcl-standard/vultr-vps/envs/ai-workspace
|
||||||
@ -99,7 +97,6 @@ jobs:
|
|||||||
ignoreNotFound: true
|
ignoreNotFound: true
|
||||||
secrets: |
|
secrets: |
|
||||||
${{ env.VAULT_KV }} VULTR_API_KEY | VULTR_API_KEY ;
|
${{ env.VAULT_KV }} VULTR_API_KEY | VULTR_API_KEY ;
|
||||||
${{ env.VAULT_KV }} CODEX_GITHUB_PERSONAL_ACCESS_TOKEN | INFRA_REPO_TOKEN ;
|
|
||||||
${{ env.VAULT_KV }} TF_STATE_ENDPOINT | TF_STATE_ENDPOINT ;
|
${{ env.VAULT_KV }} TF_STATE_ENDPOINT | TF_STATE_ENDPOINT ;
|
||||||
${{ env.VAULT_KV }} TF_STATE_BUCKET | TF_STATE_BUCKET ;
|
${{ env.VAULT_KV }} TF_STATE_BUCKET | TF_STATE_BUCKET ;
|
||||||
${{ env.VAULT_KV }} TF_STATE_ACCESS_KEY | TF_STATE_ACCESS_KEY ;
|
${{ env.VAULT_KV }} TF_STATE_ACCESS_KEY | TF_STATE_ACCESS_KEY ;
|
||||||
@ -120,13 +117,19 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
[ "$missing" -eq 0 ] || { echo "::error::必需机密缺失,终止 provision"; exit 1; }
|
[ "$missing" -eq 0 ] || { echo "::error::必需机密缺失,终止 provision"; exit 1; }
|
||||||
|
|
||||||
- name: Checkout infra (iac_modules + playbooks)
|
- name: Checkout iac_modules
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: ${{ env.INFRA_REPO }}
|
repository: ai-workspace-infra/iac_modules
|
||||||
ref: ${{ github.event.inputs.infra_ref || 'main' }}
|
ref: ${{ github.event.inputs.infra_ref || 'main' }}
|
||||||
token: ${{ steps.vault.outputs.INFRA_REPO_TOKEN || github.token }}
|
path: infra/iac_modules
|
||||||
path: infra
|
|
||||||
|
- name: Checkout playbooks
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: ai-workspace-infra/playbooks
|
||||||
|
ref: ${{ github.event.inputs.infra_ref || 'main' }}
|
||||||
|
path: infra/playbooks
|
||||||
|
|
||||||
- uses: hashicorp/setup-terraform@v3
|
- uses: hashicorp/setup-terraform@v3
|
||||||
with:
|
with:
|
||||||
@ -357,7 +360,6 @@ jobs:
|
|||||||
jwtGithubAudience: vault
|
jwtGithubAudience: vault
|
||||||
ignoreNotFound: true
|
ignoreNotFound: true
|
||||||
secrets: |
|
secrets: |
|
||||||
${{ env.VAULT_KV }} CODEX_GITHUB_PERSONAL_ACCESS_TOKEN | INFRA_REPO_TOKEN ;
|
|
||||||
${{ env.VAULT_KV }} CLOUDFLARE_DNS_API_TOKEN | CLOUDFLARE_DNS_API_TOKEN
|
${{ env.VAULT_KV }} CLOUDFLARE_DNS_API_TOKEN | CLOUDFLARE_DNS_API_TOKEN
|
||||||
|
|
||||||
- name: Validate required secrets
|
- name: Validate required secrets
|
||||||
@ -373,13 +375,12 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
[ "$missing" -eq 0 ] || { echo "::error::必需机密缺失,终止 dns"; exit 1; }
|
[ "$missing" -eq 0 ] || { echo "::error::必需机密缺失,终止 dns"; exit 1; }
|
||||||
|
|
||||||
- name: Checkout infra (playbooks)
|
- name: Checkout playbooks
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: ${{ env.INFRA_REPO }}
|
repository: ai-workspace-infra/playbooks
|
||||||
ref: ${{ github.event.inputs.infra_ref || 'main' }}
|
ref: ${{ github.event.inputs.infra_ref || 'main' }}
|
||||||
token: ${{ steps.vault.outputs.INFRA_REPO_TOKEN || github.token }}
|
path: infra/playbooks
|
||||||
path: infra
|
|
||||||
|
|
||||||
- name: Download CMDB + inventory
|
- name: Download CMDB + inventory
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
|
|||||||
@ -55,7 +55,6 @@ vault write auth/jwt/role/github-actions-xworkspace-console \
|
|||||||
| Vault 路径 | 键 | 映射到输出 | 用途 |
|
| Vault 路径 | 键 | 映射到输出 | 用途 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| `kv/data/CICD` | `VULTR_API_KEY` | `VULTR_API_KEY` | provision:`TF_VAR_vultr_api_key` |
|
| `kv/data/CICD` | `VULTR_API_KEY` | `VULTR_API_KEY` | provision:`TF_VAR_vultr_api_key` |
|
||||||
| `kv/data/CICD` | `CODEX_GITHUB_PERSONAL_ACCESS_TOKEN` | `INFRA_REPO_TOKEN` | checkout 私有 `ai-workspace-infra` |
|
|
||||||
| `kv/data/CICD` | `CLOUDFLARE_DNS_API_TOKEN` | `CLOUDFLARE_DNS_API_TOKEN` | dns:Cloudflare DNS 编辑 |
|
| `kv/data/CICD` | `CLOUDFLARE_DNS_API_TOKEN` | `CLOUDFLARE_DNS_API_TOKEN` | dns:Cloudflare DNS 编辑 |
|
||||||
| `kv/data/CICD` | `SSH_PRIVATE_DEPLOY_KEY_B64` | `ANSIBLE_SSH_KEY_B64` | 连主机 SSH 私钥(**优先**,单行 base64) |
|
| `kv/data/CICD` | `SSH_PRIVATE_DEPLOY_KEY_B64` | `ANSIBLE_SSH_KEY_B64` | 连主机 SSH 私钥(**优先**,单行 base64) |
|
||||||
| `kv/data/CICD` | `SSH_PRIVATE_DEPLOY_KEY` | `ANSIBLE_SSH_KEY` | 同上原始多行(回退) |
|
| `kv/data/CICD` | `SSH_PRIVATE_DEPLOY_KEY` | `ANSIBLE_SSH_KEY` | 同上原始多行(回退) |
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user