Skip to content

Commit 4c27a6a

Browse files
foosinnapeabody
andauthored
feat(acm)!: remove direct kubectl commands (#1751)
Co-authored-by: Andrew Peabody <[email protected]>
1 parent 2beb720 commit 4c27a6a

File tree

1 file changed

+41
-37
lines changed

1 file changed

+41
-37
lines changed

modules/acm/creds.tf

Lines changed: 41 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -39,63 +39,67 @@ resource "time_sleep" "wait_acm" {
3939
}
4040

4141
resource "google_service_account_iam_binding" "ksa_iam" {
42-
count = length(local.iam_ksa_binding_members) > 0 ? 1 : 0
42+
count = length(local.iam_ksa_binding_members) > 0 ? 1 : 0
43+
depends_on = [google_gke_hub_feature_membership.main]
44+
4345
service_account_id = google_service_account.acm_metrics_writer_sa[0].name
4446
role = "roles/iam.workloadIdentityUser"
4547

4648
members = [
4749
for ksa in local.iam_ksa_binding_members : "serviceAccount:${var.project_id}.svc.id.goog[${ksa}]"
4850
]
49-
50-
depends_on = [google_gke_hub_feature_membership.main]
5151
}
5252

53-
module "annotate-sa-config-management-monitoring" {
54-
source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
55-
version = "~> 3.1"
53+
resource "kubernetes_annotations" "annotate-sa-config-management-monitoring" {
54+
count = var.enable_config_sync && var.create_metrics_gcp_sa ? 1 : 0
5655

57-
count = var.enable_config_sync && var.create_metrics_gcp_sa ? 1 : 0
58-
skip_download = true
59-
cluster_name = var.cluster_name
60-
cluster_location = var.location
61-
project_id = var.project_id
56+
api_version = "v1"
57+
kind = "ServiceAccount"
6258

63-
kubectl_create_command = "kubectl annotate --overwrite sa -n config-management-monitoring default iam.gke.io/gcp-service-account=${google_service_account.acm_metrics_writer_sa[0].email}"
64-
kubectl_destroy_command = "kubectl annotate sa -n config-management-monitoring default iam.gke.io/gcp-service-account-"
59+
metadata {
60+
name = "default"
61+
namespace = "config-management-monitoring"
62+
}
63+
64+
annotations = {
65+
"iam.gke.io/gcp-service-account" : google_service_account.acm_metrics_writer_sa[0].email
66+
}
6567

66-
module_depends_on = time_sleep.wait_acm
68+
depends_on = [time_sleep.wait_acm]
6769
}
6870

69-
module "annotate-sa-gatekeeper-system" {
70-
source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
71-
version = "~> 3.1"
71+
resource "kubernetes_annotations" "annotate-sa-gatekeeper-system" {
72+
count = var.enable_policy_controller && var.create_metrics_gcp_sa ? 1 : 0
73+
depends_on = [time_sleep.wait_acm]
7274

73-
count = var.enable_policy_controller && var.create_metrics_gcp_sa ? 1 : 0
74-
skip_download = true
75-
cluster_name = var.cluster_name
76-
cluster_location = var.location
77-
project_id = var.project_id
75+
api_version = "v1"
76+
kind = "ServiceAccount"
7877

79-
kubectl_create_command = "kubectl annotate --overwrite sa -n gatekeeper-system gatekeeper-admin iam.gke.io/gcp-service-account=${google_service_account.acm_metrics_writer_sa[0].email}"
80-
kubectl_destroy_command = "kubectl annotate sa -n gatekeeper-system gatekeeper-admin iam.gke.io/gcp-service-account-"
78+
metadata {
79+
name = "gatekeeper-admin"
80+
namespace = "gatekeeper-system"
81+
}
8182

82-
module_depends_on = time_sleep.wait_acm
83+
annotations = {
84+
"iam.gke.io/gcp-service-account" : google_service_account.acm_metrics_writer_sa[0].email
85+
}
8386
}
8487

85-
module "annotate-sa-gatekeeper-system-restart" {
86-
source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
87-
version = "~> 3.1"
88+
resource "time_static" "restarted_at" {}
89+
resource "kubernetes_annotations" "annotate-sa-gatekeeper-system-restart" {
90+
count = var.enable_policy_controller && var.create_metrics_gcp_sa ? 1 : 0
8891

89-
count = var.enable_policy_controller && var.create_metrics_gcp_sa ? 1 : 0
90-
skip_download = true
91-
cluster_name = var.cluster_name
92-
cluster_location = var.location
93-
project_id = var.project_id
94-
95-
kubectl_create_command = "kubectl rollout restart deployment gatekeeper-controller-manager -n gatekeeper-system"
96-
kubectl_destroy_command = ""
92+
api_version = "apps/v1"
93+
kind = "Deployment"
94+
metadata {
95+
name = "gatekeeper-controller-manager"
96+
namespace = "gatekeeper-system"
97+
}
98+
template_annotations = {
99+
"kubectl.kubernetes.io/restartedAt" = time_static.restarted_at.rfc3339
100+
}
97101

98-
module_depends_on = module.annotate-sa-gatekeeper-system
102+
depends_on = [kubernetes_annotations.annotate-sa-gatekeeper-system]
99103
}
100104

101105
resource "google_service_account" "acm_metrics_writer_sa" {

0 commit comments

Comments
 (0)