Files
project-gitops/docs/adr/0002-terraform-ownership.md
T

1.1 KiB

ADR 0002: Terraform state ownership

Status: accepted

Terraform은 VM/네트워크뿐 아니라 provider가 제공되는 Vault API 객체도 관리할 수 있다. 현재 저장소의 Terraform 범위는 Vault API이고 실제 machine provisioning은 provider가 확정될 때 별도 root로 추가한다.

dev-k3s는 두 state만 사용한다.

  • vault-core: mounts, auth backends, policies, Kubernetes/JWT roles, application Transit key
  • vault-database: PostgreSQL connection과 dynamic roles

resource/API path 하나는 한 state에만 속한다. state는 암호화, versioning, access control, locking이 가능한 remote backend에 저장한다.

vault-core는 privilege-escalation 가능한 객체를 포함하므로 제한된 관리자 실행만 허용한다. vault-database는 core가 생성한 vault-database-automation-dev 정책의 short-lived identity로 실행한다.

Secret payload는 Terraform resource/data source로 관리하지 않는다. 필수 credential은 ephemeral variable과 provider write-only argument를 통해서만 apply에 전달한다.