@@ -19,9 +19,23 @@ locals {
1919 gcp_sa_email = google_service_account. cluster_service_account . email
2020
2121 # This will cause terraform to block returning outputs until the service account is created
22- k8s_given_name = var. k8s_sa_name != null ? var. k8s_sa_name : var. name
23- output_k8s_name = var. use_existing_k8s_sa ? local. k8s_given_name : kubernetes_service_account. main [0 ]. metadata [0 ]. name
24- output_k8s_namespace = var. use_existing_k8s_sa ? var. namespace : kubernetes_service_account. main [0 ]. metadata [0 ]. namespace
22+ k8s_given_name = var. k8s_sa_name != null ? var. k8s_sa_name : var. name
23+ output_k8s_name = var. use_existing_k8s_sa ? local. k8s_given_name : kubernetes_service_account. main [0 ]. metadata [0 ]. name
24+ output_k8s_namespace = var. use_existing_k8s_sa ? var. namespace : kubernetes_service_account. main [0 ]. metadata [0 ]. namespace
25+ token = var. use_existing_k8s_sa ? data. google_client_config . default . 0 . access_token : " "
26+ cluster_ca_certificate = var. use_existing_k8s_sa ? data. google_container_cluster . primary . 0 . master_auth . 0 . cluster_ca_certificate : " "
27+ cluster_endpoint = var. use_existing_k8s_sa ? " https://${ data . google_container_cluster . primary . 0 . endpoint } " : " "
28+ }
29+
30+ data "google_container_cluster" "primary" {
31+ count = var. use_existing_k8s_sa ? 1 : 0
32+ name = var. cluster_name
33+ project = var. project_id
34+ location = var. location
35+ }
36+
37+ data "google_client_config" "default" {
38+ count = var. use_existing_k8s_sa ? 1 : 0
2539}
2640
2741resource "google_service_account" "cluster_service_account" {
@@ -51,11 +65,11 @@ module "annotate-sa" {
5165 enabled = var. use_existing_k8s_sa
5266 skip_download = true
5367
54- create_cmd_entrypoint = " kubectl "
55- create_cmd_body = " annotate sa -n ${ local . output_k8s_namespace } ${ local . k8s_given_name } iam.gke.io/gcp-service-account=${ local . gcp_sa_email } "
68+ create_cmd_entrypoint = " ${ path . module } /scripts/kubectl_wrapper.sh "
69+ create_cmd_body = " ${ local . cluster_endpoint } ${ local . token } ${ local . cluster_ca_certificate } kubectl annotate --overwrite sa -n ${ local . output_k8s_namespace } ${ local . k8s_given_name } iam.gke.io/gcp-service-account=${ local . gcp_sa_email } "
5670
57- destroy_cmd_entrypoint = " kubectl "
58- destroy_cmd_body = " annotate sa -n ${ local . output_k8s_namespace } ${ local . k8s_given_name } iam.gke.io/gcp-service-account-"
71+ destroy_cmd_entrypoint = " ${ path . module } /scripts/kubectl_wrapper.sh "
72+ destroy_cmd_body = " ${ local . cluster_endpoint } ${ local . token } ${ local . cluster_ca_certificate } kubectl annotate sa -n ${ local . output_k8s_namespace } ${ local . k8s_given_name } iam.gke.io/gcp-service-account-"
5973}
6074
6175resource "google_service_account_iam_member" "main" {
0 commit comments