Skip to content

Commit 27e6f9a

Browse files
juliocckarpok78
authored andcommitted
Make service agents work in different universes (GoogleCloudPlatform#2894)
* Make service agents work in different universes * Use templatestring and two passes for service agent emails * Fix tests
1 parent a81c9a6 commit 27e6f9a

File tree

15 files changed

+299
-262
lines changed

15 files changed

+299
-262
lines changed

blueprints/data-solutions/bq-ml/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,5 +97,5 @@ module "test" {
9797
prefix = "prefix"
9898
}
9999
100-
# tftest modules=9 resources=69
100+
# tftest modules=9 resources=70
101101
```

blueprints/data-solutions/data-playground/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,5 +84,5 @@ module "test" {
8484
parent = "folders/467898377"
8585
}
8686
}
87-
# tftest modules=8 resources=68
87+
# tftest modules=8 resources=69
8888
```

blueprints/data-solutions/vertex-mlops/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ module "test" {
7272
project_id = "test-dev"
7373
}
7474
}
75-
# tftest modules=11 resources=90
75+
# tftest modules=11 resources=91
7676
```
7777
<!-- BEGIN TFDOC -->
7878
## Variables
@@ -128,5 +128,5 @@ module "test" {
128128
project_id = "test-dev"
129129
}
130130
}
131-
# tftest modules=13 resources=95 e2e
131+
# tftest modules=13 resources=96 e2e
132132
```

modules/project/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ service_agents = {
269269
"email" = "[email protected]"
270270
"iam_email" = "serviceAccount:[email protected]"
271271
"is_primary" = false
272-
"role" = "roles/container.nodeServiceAgent"
272+
"role" = "roles/container.defaultNodeServiceAgent"
273273
}
274274
}
275275
```

modules/project/service-agents.tf

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,31 @@ locals {
2626
for agent in local._service_agents_data :
2727
coalesce(agent.api, "cloudservices") => agent... # cloudservices api is null
2828
}
29+
_universe_domain = (
30+
var.universe == null
31+
? ""
32+
: "${var.universe.prefix}-system."
33+
)
2934
# map of service agent name => agent details for this project
30-
_project_service_agents = merge([
35+
_project_service_agents_0 = merge([
3136
for api in concat(local.services, ["cloudservices"]) : {
3237
for agent in lookup(local._service_agents_by_api, api, []) :
3338
(agent.name) => merge(agent, {
34-
email = format(agent.identity, local.project.number)
35-
iam_email = "serviceAccount:${format(agent.identity, local.project.number)}"
36-
create_jit = api == "cloudservices" || contains(local.available_services, api)
39+
email = (
40+
var.universe == null || api != "cloudservices"
41+
? templatestring(agent.identity, { project_number = local.project.number, universe_domain = local._universe_domain })
42+
: format("%s@cloudservices.%siam.gserviceaccount.com", local.project.number, local._universe_domain)
43+
)
3744
})
3845
}
3946
]...)
47+
_project_service_agents = {
48+
for k, v in local._project_service_agents_0 :
49+
k => merge(v, {
50+
iam_email = "serviceAccount:${v.email}"
51+
create_jit = v.api == null ? false : contains(local.available_services, v.api)
52+
})
53+
}
4054
# list of APIs with primary agents that should be created for the
4155
# current project, if the user requested it
4256
primary_service_agents = [

0 commit comments

Comments
 (0)