Skip to content

Commit f39099b

Browse files
authored
Add GKE workflow identity federation for composer service account (#4020)
Signed-off-by: Erika Pacheco <[email protected]>
1 parent ca54c2e commit f39099b

File tree

4 files changed

+30
-0
lines changed

4 files changed

+30
-0
lines changed

iac/cal-itp-data-infra-staging/composer/us/environment.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ resource "google_composer_environment" "calitp-staging-composer" {
5555
"POD_LOCATION" = "us-west2",
5656
"POD_CLUSTER_NAME" = data.terraform_remote_state.gke.outputs.google_container_cluster_airflow-jobs-staging_name,
5757
"POD_SECRETS_NAMESPACE" = local.namespace,
58+
"SERVICE_ACCOUNT_NAME" = data.terraform_remote_state.iam.outputs.google_service_account_composer-service-account_email,
5859
"CALITP_BUCKET__AGGREGATOR_SCRAPER" = "gs://${data.terraform_remote_state.gcs.outputs.google_storage_bucket_calitp-staging-aggregator-scraper_name}",
5960
"CALITP_BUCKET__AIRTABLE" = "gs://${data.terraform_remote_state.gcs.outputs.google_storage_bucket_calitp-staging-airtable_name}",
6061
"CALITP_BUCKET__AMPLITUDE_BENEFITS_EVENTS" = "gs://${data.terraform_remote_state.gcs.outputs.google_storage_bucket_calitp-staging-amplitude-benefits-events_name}",

iac/cal-itp-data-infra-staging/composer/us/kubernetes.tf

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,22 @@ resource "kubernetes_secret" "composer" {
2626
transitland-api-key = data.kubernetes_secret.composer.data.transitland-api-key
2727
}
2828
}
29+
30+
resource "kubernetes_priority_class" "dbt-high-priority" {
31+
metadata {
32+
name = "dbt-high-priority"
33+
}
34+
global_default = false
35+
value = 1000000
36+
description = "This priority class should be used for dbt pods only."
37+
}
38+
39+
resource "kubernetes_service_account" "composer-service-account" {
40+
metadata {
41+
name = "composer-service-account"
42+
namespace = local.namespace
43+
annotations = {
44+
"iam.gke.io/gcp-service-account" = data.terraform_remote_state.iam.outputs.google_service_account_composer-service-account_email
45+
}
46+
}
47+
}

iac/cal-itp-data-infra-staging/gke/us/container_cluster.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,8 @@ resource "google_container_cluster" "airflow-jobs-staging" {
1010
secret_manager_config {
1111
enabled = true
1212
}
13+
14+
workload_identity_config {
15+
workload_pool = "cal-itp-data-infra-staging.svc.id.goog"
16+
}
1317
}

iac/cal-itp-data-infra-staging/iam/us/service_account_iam_member.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,9 @@ resource "google_service_account_iam_member" "custom_service_account" {
1515
role = "roles/composer.ServiceAgentV2Ext"
1616
member = "serviceAccount:service-${local.project_id}@cloudcomposer-accounts.iam.gserviceaccount.com"
1717
}
18+
19+
resource "google_service_account_iam_member" "airflow-jobs_composer-service-account" {
20+
service_account_id = google_service_account.composer-service-account.id
21+
role = "roles/iam.workloadIdentityUser"
22+
member = "serviceAccount:cal-itp-data-infra-staging.svc.id.goog[airflow-jobs/composer-service-account]"
23+
}

0 commit comments

Comments
 (0)