Home

Awesome

terraform-demo

事前準備

$ aqua i

ディレクトリ構成

.
├── README.md
├── aqua.yaml                                              # config of aqua
├── modules                                                # terraform modules 独自運用するmoduleがあればここに書く
├── renovate.json                                          # config of Renovate
└── services                                               # services
    ├── argocd_demo                                        # serviceごとにtfstateを分割
    ├── platform                                           # 基盤
    │   ├── production
    │   │   ├── main.tf -> ../staging/main.tf              # 環境間の差分を減らすためsymlinkを使う
    │   │   ├── production.tfbackend                       # terraform init --backend-config=production.tfbackend としてinit時に変数を渡す
    │   │   ├── providers.tf -> ../staging/providers.tf
    │   │   ├── terraform.tfvars                           # variablesのデフォルト値をoverrideする。環境間の設定差分はここでカバーする
    │   │   └── variables.tf -> ../staging/variables.tf
    │   └── staging
    │       ├── main.tf                                    # 主処理。直接リソースを定義すると肥大化してしまうためmoduleを呼び出す
    │       ├── providers.tf                               # terraform providerの設定を定義
    │       ├── staging.tfbackend                          # terraform backendの変数を定義
    │       ├── staging_only.tf                            # stagingにしか作らないリソースがあればここで定義
    │       ├── terraform.tfvars                           # variablesのデフォルト値をoverrideする。環境間の設定差分はここでカバーする
    │       └── variables.tf                               # 変数の定義
    └── prometheus_demo