CI/CD¶
.github/workflows/pve_cicd.yaml が Terraform の plan / apply を実行する。
ジョブは self-hosted runner 上で動き、作業ディレクトリを terraform/、バックエンドを GCS とする。
手元で同じことをする
ローカル実行の手順は ローカル環境の準備 を参照する。
トリガーとジョブ¶
| トリガー | ジョブ | 内容 |
|---|---|---|
| PR の作成と更新 | terraform-plan |
fmt / validate / plan |
main への push |
terraform-apply |
apply(production 環境) |
| workflow_dispatch | plan または apply | 手動実行 |
パスが terraform/** または workflow ファイル自身に当たるときだけ、plan / apply が走る。
docs/ だけの変更では plan / apply は走らない。
必要な GitHub 設定¶
Secrets
| 名前 | 用途 |
|---|---|
GCP_WORKLOAD_IDENTITY_PROVIDER |
Workload Identity Federation プロバイダ |
PROXMOX_ENDPOINT |
Proxmox API エンドポイント |
PROXMOX_API_TOKEN |
Proxmox API トークン |
PROXMOX_SSH_PASSWORD |
Proxmox ノード SSH パスワード |
GitHub Actions は Workload Identity Federation で認証し、GCS バケット pve-state へ直接アクセスする。
ドキュメント更新の通知¶
.github/workflows/trigger-docs-hub.yml は docs/** の main への push、または手動実行で docs-hub へ repository_dispatch を送る。
Terraform の plan / apply とは独立に動く。