Skip to content

Commit ab40722

Browse files
committed
Use workflow identity federation in composer
1 parent dd70267 commit ab40722

File tree

9 files changed

+12
-33
lines changed

9 files changed

+12
-33
lines changed

airflow/dags/publish_open_data/publish_california_open_data.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,10 @@ is_delete_operator_pod: true
1414
get_logs: true
1515

1616
env_vars:
17-
GOOGLE_APPLICATION_CREDENTIALS: /secrets/jobs-data/service_account.json
1817
CALITP_BUCKET__DBT_ARTIFACTS: "{{ env_var('CALITP_BUCKET__DBT_ARTIFACTS') }}"
1918
CALITP_BUCKET__PUBLISH: "{{ env_var('CALITP_BUCKET__PUBLISH') }}"
2019

2120
secrets:
22-
- deploy_type: volume
23-
deploy_target: /secrets/jobs-data/
24-
secret: jobs-data
25-
key: service-account.json
2621
- deploy_type: env
2722
deploy_target: CALITP_CKAN_GTFS_SCHEDULE_KEY
2823
secret: jobs-data

airflow/dags/unzip_and_validate_gtfs_schedule_hourly/validate_gtfs_schedule.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,12 @@ is_delete_operator_pod: true
1717
get_logs: true
1818

1919
env_vars:
20-
GOOGLE_APPLICATION_CREDENTIALS: /secrets/jobs-data/service_account.json
2120
AIRFLOW_ENV: "{{ env_var('AIRFLOW_ENV') }}"
2221
CALITP_USER: "{{ env_var('CALITP_USER') }}"
2322
CALITP_BUCKET__GTFS_SCHEDULE_RAW: "{{ env_var('CALITP_BUCKET__GTFS_SCHEDULE_RAW') }}"
2423
CALITP_BUCKET__GTFS_SCHEDULE_VALIDATION_HOURLY: "{{ env_var('CALITP_BUCKET__GTFS_SCHEDULE_VALIDATION_HOURLY') }}"
2524
GRAAS_SERVER_URL: "{{ env_var('GRAAS_SERVER_URL') }}"
2625

27-
secrets:
28-
- deploy_type: volume
29-
deploy_target: /secrets/jobs-data/
30-
secret: jobs-data
31-
key: service_account.json
32-
3326
k8s_resources:
3427
request_memory: 5.0Gi
3528
request_cpu: 1

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ resource "google_composer_environment" "calitp-staging-composer" {
6161
"POD_LOCATION" = "us-west2",
6262
"POD_CLUSTER_NAME" = data.terraform_remote_state.gke.outputs.google_container_cluster_airflow-jobs-staging_name,
6363
"POD_SECRETS_NAMESPACE" = local.namespace,
64-
"SERVICE_ACCOUNT_NAME" = local.service_account_name,
64+
"SERVICE_ACCOUNT_NAME" = local.kubernetes_service_account,
6565
"CALITP_BUCKET__AGGREGATOR_SCRAPER" = "gs://${data.terraform_remote_state.gcs.outputs.google_storage_bucket_calitp-staging-aggregator-scraper_name}",
6666
"CALITP_BUCKET__AIRTABLE" = "gs://${data.terraform_remote_state.gcs.outputs.google_storage_bucket_calitp-staging-airtable_name}",
6767
"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: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ resource "kubernetes_secret" "composer" {
2222
namespace = local.namespace
2323
}
2424
data = {
25-
"service_account.json" = base64decode(google_service_account_key.composer.private_key)
26-
transitland-api-key = data.kubernetes_secret.composer.data.transitland-api-key
25+
transitland-api-key = data.kubernetes_secret.composer.data.transitland-api-key
2726
}
2827
}
2928

@@ -38,7 +37,7 @@ resource "kubernetes_priority_class" "dbt-high-priority" {
3837

3938
resource "kubernetes_service_account" "composer-service-account" {
4039
metadata {
41-
name = local.service_account_name
40+
name = local.kubernetes_service_account
4241
namespace = local.namespace
4342
annotations = {
4443
"iam.gke.io/gcp-service-account" = data.terraform_remote_state.iam.outputs.google_service_account_composer-service-account_email

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
locals {
2-
namespace = "airflow-jobs"
3-
secret = "jobs-data"
4-
service_account_name = "composer-service-account"
2+
namespace = "airflow-jobs"
3+
secret = "jobs-data"
4+
kubernetes_service_account = "composer-service-account"
55

66
# This regular expression corresponds to the Python package name specification
77
# https://packaging.python.org/en/latest/specifications/name-normalization/

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ resource "google_composer_environment" "calitp-composer" {
6161
"POD_LOCATION" = "us-west2",
6262
"POD_CLUSTER_NAME" = data.terraform_remote_state.gke.outputs.google_container_cluster_airflow-jobs_name,
6363
"POD_SECRETS_NAMESPACE" = local.namespace,
64-
"SERVICE_ACCOUNT_NAME" = local.service_account_name,
64+
"SERVICE_ACCOUNT_NAME" = local.kubernetes_service_account,
6565
"CALITP_BUCKET__AGGREGATOR_SCRAPER" = "gs://${data.terraform_remote_state.gcs.outputs.google_storage_bucket_calitp-aggregator-scraper_name}",
6666
"CALITP_BUCKET__AIRTABLE" = "gs://${data.terraform_remote_state.gcs.outputs.google_storage_bucket_calitp-airtable_name}",
6767
"CALITP_BUCKET__AMPLITUDE_BENEFITS_EVENTS" = "gs://${data.terraform_remote_state.gcs.outputs.google_storage_bucket_calitp-amplitude-benefits-events_name}",

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ resource "kubernetes_secret" "composer" {
2424

2525
data = {
2626
calitp-ckan-gtfs-schedule-key = data.kubernetes_secret.composer.data.calitp-ckan-gtfs-schedule-key
27-
"service_account.json" = base64decode(google_service_account_key.composer.private_key)
2827
transitland-api-key = data.kubernetes_secret.composer.data.transitland-api-key
2928
}
3029
}
@@ -40,7 +39,7 @@ resource "kubernetes_priority_class" "dbt-high-priority" {
4039

4140
resource "kubernetes_service_account" "composer-service-account" {
4241
metadata {
43-
name = local.service_account_name
42+
name = local.kubernetes_service_account
4443
namespace = local.namespace
4544
annotations = {
4645
"iam.gke.io/gcp-service-account" = data.terraform_remote_state.iam.outputs.google_service_account_composer-service-account_email

iac/cal-itp-data-infra/composer/us/variables.tf

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
locals {
2-
namespace = "airflow-jobs"
3-
secret = "jobs-data"
4-
service_account_name = "composer-service-account"
2+
namespace = "airflow-jobs"
3+
secret = "jobs-data"
4+
kubernetes_service_account = "composer-service-account"
5+
56
# This regular expression corresponds to the Python package name specification
67
# https://packaging.python.org/en/latest/specifications/name-normalization/
78
python_package_regex = "(?P<name>[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9])(?P<version>.*)"

warehouse/profiles.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,10 @@ calitp_warehouse:
2626
spark.executor.instances: "4" # dbt defaults to 2
2727
spark.executor.memory: 4g
2828
spark.dynamicAllocation.maxExecutors: "16"
29-
prod_service_account:
30-
<<: *prod
31-
method: service-account
32-
keyfile: "{{ env_var('BIGQUERY_KEYFILE_LOCATION', '/secrets/jobs-data/service-account.json') }}"
3329
staging:
3430
&staging
3531
<<: *prod
3632
execution_project: cal-itp-data-infra-staging
3733
database: cal-itp-data-infra-staging
3834
schema: staging
3935
gcs_bucket: test-calitp-dbt-python-models
40-
staging_service_account:
41-
<<: *staging
42-
method: service-account
43-
keyfile: "{{ env_var('BIGQUERY_KEYFILE_LOCATION', '/secrets/jobs-data/service-account.json') }}"

0 commit comments

Comments
 (0)