Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions google_permissions/other_roles.tf
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,51 @@
//
*/

locals {
allowed_folder_roles = [
"roles/datastore.user",
]
allowed_nonprod_roles = [
"roles/datastore.user",
]
allowed_prod_roles = [
"roles/datastore.user",
]
}

resource "google_folder_iam_binding" "developers_folder_roles" {
for_each = setunion(
local.allowed_folder_roles,
[for role in var.folder_roles : role if !var.admin_only],
)

folder = var.google_folder_id
role = each.value
members = module.developers_workgroup.members
}

resource "google_project_iam_binding" "developers_nonprod_roles" {
for_each = setunion(
local.allowed_nonprod_roles,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't this be similarly qualified to the line below specifically && var.google_nonprod_project_id != ""?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok I think I understand the intent here. Shouldn't for_each here be selecting the set intersection of var.nonprod_roles and local.allowed_nonprod_roles?

[for role in var.nonprod_roles : role if !var.admin_only && var.google_nonprod_project_id != ""],
)

project = var.google_nonprod_project_id
role = each.value
members = module.developers_workgroup.members
}

resource "google_project_iam_binding" "developers_prod_roles" {
for_each = setunion(
local.allowed_prod_roles,
[for role in var.prod_roles : role if !var.admin_only && var.google_prod_project_id != ""],
)

project = var.google_prod_project_id
role = each.value
members = module.developers_workgroup.members
}

resource "google_folder_iam_binding" "bq_job_user" {
//
// NOTE: this uses bq_data_viewer as well as the next resource block so that those we grant data viewer
Expand Down
Loading