Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
infra/gcp/main: create gcs buckets for terraform
Allow groups less privileged than k8s-infra-gcp-org-admins to use terraform to manage resources over which they have ownership. Terraform state can include potentially include sensitive values. Since we have terraform setup to store state in GCS, we need to ensure visibility and access to state matches ownership of (privileges to modify) the resources it describes. We're using uniform bucket-level access on our GCS buckets to avoid the complexity introduced by per-object ACLs. This means if we want different groups with different privilege levels using terraform to manage different sets of resources, we need to provision a GCS bucket for each group. The new bucket schema is "k8s-infra-tf-{folder}[-{suffix}]" where: - {folder} is the intended GCP folder for GCP projects managed by this group, access level should be ~owners of folder - {suffix} is subset of resources contained somewhere underneath folder, access level should ~editors of those resources The GCP folders don't actually exist yet, but the plan is: - public: kubernetes-public (potentially release related projects too) - prow: prow-build clusters and e2e projects - aws: if there are gcp projects being used to manage aws resources - sandbox: temporary projects The buckets being added are: - k8s-infra-tf-aws: to manage aws resources - k8s-infra-tf-prow-clusters: to manage prow-build, prow-build-trusted - k8s-infra-tf-public-clusters: to manage aaa - k8s-infra-tf-sandbox-ii: for the ii team to manage things in sandbox Organization admins are given storage.admin privileges to all buckets for break-glass purposes. The script hack/migrate-tf-buckets.sh is a one-off used to migrate from the old bucket to the new buckets. Intended to be run by someone with organization.admin privileges.
- Loading branch information