1818
1919locals {
2020 service_account_list = " ${ compact (concat (google_service_account. cluster_service_account . * . email , list (" dummy" )))} "
21- service_account = " ${ var . service_account == " create" ? element (local. service_account_list , 0 ) : var . service_account } "
21+ service_account = " ${ var . service_account == " create" ? element (local. service_account_list , 0 ) : var . service_account } "
2222}
2323
2424resource "google_service_account" "cluster_service_account" {
@@ -27,3 +27,24 @@ resource "google_service_account" "cluster_service_account" {
2727 account_id = " tf-gke-${ substr (var. name , 0 , 20 )} "
2828 display_name = " Terraform-managed service account for cluster ${ var . name } "
2929}
30+
31+ resource "google_project_iam_member" "cluster_service_account-log_writer" {
32+ count = " ${ var . service_account == " create" ? 1 : 0 } "
33+ project = " ${ google_service_account . cluster_service_account . project } "
34+ role = " roles/logging.logWriter"
35+ member = " serviceAccount:${ google_service_account . cluster_service_account . email } "
36+ }
37+
38+ resource "google_project_iam_member" "cluster_service_account-metric_writer" {
39+ count = " ${ var . service_account == " create" ? 1 : 0 } "
40+ project = " ${ google_project_iam_member . cluster_service_account-log_writer . project } "
41+ role = " roles/monitoring.metricWriter"
42+ member = " serviceAccount:${ google_service_account . cluster_service_account . email } "
43+ }
44+
45+ resource "google_project_iam_member" "cluster_service_account-monitoring_viewer" {
46+ count = " ${ var . service_account == " create" ? 1 : 0 } "
47+ project = " ${ google_project_iam_member . cluster_service_account-metric_writer . project } "
48+ role = " roles/monitoring.viewer"
49+ member = " serviceAccount:${ google_service_account . cluster_service_account . email } "
50+ }
0 commit comments