refactor: reorganize GitOps control plane
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# 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에 전달한다.
|
||||
Reference in New Issue
Block a user