Skip to content

Commit 47a49ac

Browse files
authored
feat(autopilot): add insecure_kubelet_readonly_port_enabled (#2252)
1 parent d83442f commit 47a49ac

File tree

12 files changed

+66
-35
lines changed

12 files changed

+66
-35
lines changed

autogen/main/cluster.tf.tmpl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,10 +279,17 @@ resource "google_container_cluster" "primary" {
279279
}
280280
{% if autopilot_cluster %}
281281
dynamic "node_pool_auto_config" {
282-
for_each = length(var.network_tags) > 0 || var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules ? [1] : []
282+
for_each = length(var.network_tags) > 0 || var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules || var.insecure_kubelet_readonly_port_enabled != null ? [1] : []
283283
content {
284284
network_tags {
285-
tags = var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules ? concat(var.network_tags, [local.cluster_network_tag]) : var.network_tags
285+
tags = var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules ? concat(var.network_tags, [local.cluster_network_tag]) : length(var.network_tags) > 0 ? var.network_tags : null
286+
}
287+
288+
dynamic "node_kubelet_config" {
289+
for_each = var.insecure_kubelet_readonly_port_enabled != null ? [1] : []
290+
content {
291+
insecure_kubelet_readonly_port_enabled = upper(tostring(var.insecure_kubelet_readonly_port_enabled))
292+
}
286293
}
287294
}
288295
}

autogen/main/variables.tf.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,13 @@ variable "service_external_ips" {
108108
default = false
109109
}
110110

111-
{% if autopilot_cluster != true %}
112111
variable "insecure_kubelet_readonly_port_enabled" {
113112
type = bool
114-
description = "Whether or not to set `insecure_kubelet_readonly_port_enabled` for node pool defaults and autopilot clusters. Note: this can be set at the node pool level separately within `node_pools`."
113+
description = "Whether or not to set `insecure_kubelet_readonly_port_enabled` for node pool defaults and autopilot clusters.{% if autopilot_cluster != true %} Note: this can be set at the node pool level separately within `node_pools`.{% endif %}"
115114
default = null
116115
}
117116

117+
{% if autopilot_cluster != true %}
118118
variable "datapath_provider" {
119119
type = string
120120
description = "The desired datapath provider for this cluster. By default, `DATAPATH_PROVIDER_UNSPECIFIED` enables the IPTables-based kube-proxy implementation. `ADVANCED_DATAPATH` enables Dataplane-V2 feature."

examples/simple_autopilot_private/main.tf

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,19 @@ module "gke" {
3737
source = "terraform-google-modules/kubernetes-engine/google//modules/beta-autopilot-private-cluster"
3838
version = "~> 35.0"
3939

40-
project_id = var.project_id
41-
name = "${local.cluster_type}-cluster"
42-
regional = true
43-
region = var.region
44-
network = module.gcp-network.network_name
45-
subnetwork = local.subnet_names[index(module.gcp-network.subnets_names, local.subnet_name)]
46-
ip_range_pods = local.pods_range_name
47-
ip_range_services = local.svc_range_name
48-
release_channel = "REGULAR"
49-
enable_vertical_pod_autoscaling = true
50-
enable_private_endpoint = true
51-
enable_private_nodes = true
52-
network_tags = [local.cluster_type]
53-
deletion_protection = false
40+
project_id = var.project_id
41+
name = "${local.cluster_type}-cluster"
42+
regional = true
43+
region = var.region
44+
network = module.gcp-network.network_name
45+
subnetwork = local.subnet_names[index(module.gcp-network.subnets_names, local.subnet_name)]
46+
ip_range_pods = local.pods_range_name
47+
ip_range_services = local.svc_range_name
48+
release_channel = "REGULAR"
49+
enable_vertical_pod_autoscaling = true
50+
enable_private_endpoint = true
51+
enable_private_nodes = true
52+
network_tags = [local.cluster_type]
53+
deletion_protection = false
54+
insecure_kubelet_readonly_port_enabled = false
5455
}

modules/beta-autopilot-private-cluster/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ Then perform the following commands on the root folder:
114114
| horizontal\_pod\_autoscaling | Enable horizontal pod autoscaling addon | `bool` | `true` | no |
115115
| http\_load\_balancing | Enable httpload balancer addon | `bool` | `true` | no |
116116
| identity\_namespace | The workload pool to attach all Kubernetes service accounts to. (Default value of `enabled` automatically sets project-based pool `[project_id].svc.id.goog`) | `string` | `"enabled"` | no |
117+
| insecure\_kubelet\_readonly\_port\_enabled | Whether or not to set `insecure_kubelet_readonly_port_enabled` for node pool defaults and autopilot clusters. | `bool` | `null` | no |
117118
| ip\_masq\_link\_local | Whether to masquerade traffic to the link-local prefix (169.254.0.0/16). | `bool` | `false` | no |
118119
| ip\_masq\_resync\_interval | The interval at which the agent attempts to sync its ConfigMap file from the disk. | `string` | `"60s"` | no |
119120
| ip\_range\_pods | The _name_ of the secondary subnet ip range to use for pods | `string` | n/a | yes |

modules/beta-autopilot-private-cluster/cluster.tf

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,17 @@ resource "google_container_cluster" "primary" {
135135
}
136136
}
137137
dynamic "node_pool_auto_config" {
138-
for_each = length(var.network_tags) > 0 || var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules ? [1] : []
138+
for_each = length(var.network_tags) > 0 || var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules || var.insecure_kubelet_readonly_port_enabled != null ? [1] : []
139139
content {
140140
network_tags {
141-
tags = var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules ? concat(var.network_tags, [local.cluster_network_tag]) : var.network_tags
141+
tags = var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules ? concat(var.network_tags, [local.cluster_network_tag]) : length(var.network_tags) > 0 ? var.network_tags : null
142+
}
143+
144+
dynamic "node_kubelet_config" {
145+
for_each = var.insecure_kubelet_readonly_port_enabled != null ? [1] : []
146+
content {
147+
insecure_kubelet_readonly_port_enabled = upper(tostring(var.insecure_kubelet_readonly_port_enabled))
148+
}
142149
}
143150
}
144151
}

modules/beta-autopilot-private-cluster/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,12 @@ variable "service_external_ips" {
108108
default = false
109109
}
110110

111+
variable "insecure_kubelet_readonly_port_enabled" {
112+
type = bool
113+
description = "Whether or not to set `insecure_kubelet_readonly_port_enabled` for node pool defaults and autopilot clusters."
114+
default = null
115+
}
116+
111117
variable "maintenance_start_time" {
112118
type = string
113119
description = "Time window specified for daily or recurring maintenance operations in RFC3339 format"

modules/beta-autopilot-public-cluster/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ Then perform the following commands on the root folder:
106106
| horizontal\_pod\_autoscaling | Enable horizontal pod autoscaling addon | `bool` | `true` | no |
107107
| http\_load\_balancing | Enable httpload balancer addon | `bool` | `true` | no |
108108
| identity\_namespace | The workload pool to attach all Kubernetes service accounts to. (Default value of `enabled` automatically sets project-based pool `[project_id].svc.id.goog`) | `string` | `"enabled"` | no |
109+
| insecure\_kubelet\_readonly\_port\_enabled | Whether or not to set `insecure_kubelet_readonly_port_enabled` for node pool defaults and autopilot clusters. | `bool` | `null` | no |
109110
| ip\_masq\_link\_local | Whether to masquerade traffic to the link-local prefix (169.254.0.0/16). | `bool` | `false` | no |
110111
| ip\_masq\_resync\_interval | The interval at which the agent attempts to sync its ConfigMap file from the disk. | `string` | `"60s"` | no |
111112
| ip\_range\_pods | The _name_ of the secondary subnet ip range to use for pods | `string` | n/a | yes |

modules/beta-autopilot-public-cluster/cluster.tf

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,17 @@ resource "google_container_cluster" "primary" {
135135
}
136136
}
137137
dynamic "node_pool_auto_config" {
138-
for_each = length(var.network_tags) > 0 || var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules ? [1] : []
138+
for_each = length(var.network_tags) > 0 || var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules || var.insecure_kubelet_readonly_port_enabled != null ? [1] : []
139139
content {
140140
network_tags {
141-
tags = var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules ? concat(var.network_tags, [local.cluster_network_tag]) : var.network_tags
141+
tags = var.add_cluster_firewall_rules || var.add_master_webhook_firewall_rules || var.add_shadow_firewall_rules ? concat(var.network_tags, [local.cluster_network_tag]) : length(var.network_tags) > 0 ? var.network_tags : null
142+
}
143+
144+
dynamic "node_kubelet_config" {
145+
for_each = var.insecure_kubelet_readonly_port_enabled != null ? [1] : []
146+
content {
147+
insecure_kubelet_readonly_port_enabled = upper(tostring(var.insecure_kubelet_readonly_port_enabled))
148+
}
142149
}
143150
}
144151
}

modules/beta-autopilot-public-cluster/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,12 @@ variable "service_external_ips" {
108108
default = false
109109
}
110110

111+
variable "insecure_kubelet_readonly_port_enabled" {
112+
type = bool
113+
description = "Whether or not to set `insecure_kubelet_readonly_port_enabled` for node pool defaults and autopilot clusters."
114+
default = null
115+
}
116+
111117
variable "maintenance_start_time" {
112118
type = string
113119
description = "Time window specified for daily or recurring maintenance operations in RFC3339 format"

terraform-google-kubernetes-engine

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)