Skip to content

Commit 43c4349

Browse files
authored
fix: Add additional guardrails for disabled workload identity. (#542)
1 parent cc30fbb commit 43c4349

File tree

6 files changed

+12
-31
lines changed

6 files changed

+12
-31
lines changed

autogen/main/main.tf.tmpl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,8 @@ locals {
171171
cluster_intranode_visibility_enabled = local.cluster_output_intranode_visbility_enabled
172172
cluster_vertical_pod_autoscaling_enabled = local.cluster_output_vertical_pod_autoscaling_enabled
173173

174-
cluster_workload_identity_config = var.identity_namespace == null ? [] : var.identity_namespace == "enabled" ? [{
174+
workload_identity_enabled = ! (var.identity_namespace == null || var.identity_namespace == "null")
175+
cluster_workload_identity_config = ! local.workload_identity_enabled ? [] : var.identity_namespace == "enabled" ? [{
175176
identity_namespace = "${var.project_id}.svc.id.goog" }] : [{ identity_namespace = var.identity_namespace
176177
}]
177178
# /BETA features

examples/simple_regional_beta/main.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ module "gke" {
4747
enable_binary_authorization = var.enable_binary_authorization
4848
pod_security_policy_config = var.pod_security_policy_config
4949
release_channel = "REGULAR"
50+
51+
# Disable workload identity
52+
identity_namespace = null
53+
node_metadata = "UNSPECIFIED"
5054
}
5155

5256
data "google_client_config" "default" {

modules/beta-private-cluster-update-variant/main.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,8 @@ locals {
155155
cluster_intranode_visibility_enabled = local.cluster_output_intranode_visbility_enabled
156156
cluster_vertical_pod_autoscaling_enabled = local.cluster_output_vertical_pod_autoscaling_enabled
157157

158-
cluster_workload_identity_config = var.identity_namespace == null ? [] : var.identity_namespace == "enabled" ? [{
158+
workload_identity_enabled = ! (var.identity_namespace == null || var.identity_namespace == "null")
159+
cluster_workload_identity_config = ! local.workload_identity_enabled ? [] : var.identity_namespace == "enabled" ? [{
159160
identity_namespace = "${var.project_id}.svc.id.goog" }] : [{ identity_namespace = var.identity_namespace
160161
}]
161162
# /BETA features

modules/beta-private-cluster/main.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,8 @@ locals {
155155
cluster_intranode_visibility_enabled = local.cluster_output_intranode_visbility_enabled
156156
cluster_vertical_pod_autoscaling_enabled = local.cluster_output_vertical_pod_autoscaling_enabled
157157

158-
cluster_workload_identity_config = var.identity_namespace == null ? [] : var.identity_namespace == "enabled" ? [{
158+
workload_identity_enabled = ! (var.identity_namespace == null || var.identity_namespace == "null")
159+
cluster_workload_identity_config = ! local.workload_identity_enabled ? [] : var.identity_namespace == "enabled" ? [{
159160
identity_namespace = "${var.project_id}.svc.id.goog" }] : [{ identity_namespace = var.identity_namespace
160161
}]
161162
# /BETA features

modules/beta-public-cluster/main.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,8 @@ locals {
154154
cluster_intranode_visibility_enabled = local.cluster_output_intranode_visbility_enabled
155155
cluster_vertical_pod_autoscaling_enabled = local.cluster_output_vertical_pod_autoscaling_enabled
156156

157-
cluster_workload_identity_config = var.identity_namespace == null ? [] : var.identity_namespace == "enabled" ? [{
157+
workload_identity_enabled = ! (var.identity_namespace == null || var.identity_namespace == "null")
158+
cluster_workload_identity_config = ! local.workload_identity_enabled ? [] : var.identity_namespace == "enabled" ? [{
158159
identity_namespace = "${var.project_id}.svc.id.goog" }] : [{ identity_namespace = var.identity_namespace
159160
}]
160161
# /BETA features

test/integration/beta_cluster/controls/gcloud.rb

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,6 @@
7474
})
7575
end
7676

77-
it "has the expected nodeMetadata conseal config" do
78-
expect(data['nodeConfig']['workloadMetadataConfig']).to eq({
79-
"mode" => "GKE_METADATA",
80-
"nodeMetadata" => 'GKE_METADATA_SERVER',
81-
})
82-
end
83-
8477
it "has the expected podSecurityPolicyConfig config" do
8578
expect(data['podSecurityPolicyConfig']).to eq({
8679
"enabled" => true,
@@ -93,13 +86,6 @@
9386
"keyName" => attribute('database_encryption_key_name'),
9487
})
9588
end
96-
97-
it "has the expected workload identity config" do
98-
expect(data['workloadIdentityConfig']).to eq({
99-
"identityNamespace" => attribute('identity_namespace'),
100-
"workloadPool" => attribute('identity_namespace'),
101-
})
102-
end
10389
end
10490

10591
describe "default node pool" do
@@ -212,19 +198,6 @@
212198
)
213199
)
214200
end
215-
216-
it "has the expected node metadata for workload identity" do
217-
expect(node_pools).to include(
218-
including(
219-
"config" => including(
220-
"workloadMetadataConfig" => eq(
221-
"mode" => "GKE_METADATA",
222-
"nodeMetadata" => 'GKE_METADATA_SERVER',
223-
),
224-
),
225-
)
226-
)
227-
end
228201
end
229202
end
230203
end

0 commit comments

Comments
 (0)