@@ -78,6 +78,18 @@ func schemaContainerdConfig() *schema.Schema {
78
78
}
79
79
}
80
80
81
+ // Note: this is a bool internally, but implementing as an enum internally to
82
+ // make it easier to accept API level defaults.
83
+ func schemaInsecureKubeletReadonlyPortEnabled() *schema.Schema {
84
+ return &schema.Schema{
85
+ Type: schema.TypeString,
86
+ Optional: true,
87
+ Computed: true,
88
+ Description: "Controls whether the kubelet read-only port is enabled. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.",
89
+ ValidateFunc: validation.StringInSlice([]string{"FALSE","TRUE"}, false),
90
+ }
91
+ }
92
+
81
93
func schemaLoggingVariant() *schema.Schema {
82
94
return &schema.Schema{
83
95
Type: schema.TypeString,
@@ -597,6 +609,7 @@ func schemaNodeConfig() *schema.Schema {
597
609
Optional: true,
598
610
Description: `Set the CPU CFS quota period value 'cpu.cfs_period_us'.`,
599
611
},
612
+ "insecure_kubelet_readonly_port_enabled": schemaInsecureKubeletReadonlyPortEnabled(),
600
613
"pod_pids_limit": {
601
614
Type: schema.TypeInt,
602
615
Optional: true,
@@ -769,14 +782,20 @@ func schemaNodeConfig() *schema.Schema {
769
782
}
770
783
771
784
func expandNodeConfigDefaults(configured interface{}) *container.NodeConfigDefaults {
772
- configs := configured.([]interface{})
785
+ configs := configured.([]interface{})
773
786
if len(configs) == 0 || configs[0] == nil {
774
787
return nil
775
788
}
776
789
config := configs[0].(map[string]interface{})
777
790
778
791
nodeConfigDefaults := &container.NodeConfigDefaults{}
779
792
nodeConfigDefaults.ContainerdConfig = expandContainerdConfig(config["containerd_config"])
793
+ if v, ok := config["insecure_kubelet_readonly_port_enabled"]; ok {
794
+ nodeConfigDefaults.NodeKubeletConfig = &container.NodeKubeletConfig{
795
+ InsecureKubeletReadonlyPortEnabled: expandInsecureKubeletReadonlyPortEnabled(v),
796
+ ForceSendFields: []string{"InsecureKubeletReadonlyPortEnabled"},
797
+ }
798
+ }
780
799
if variant, ok := config["logging_variant"]; ok {
781
800
nodeConfigDefaults.LoggingConfig = &container.NodePoolLoggingConfig{
782
801
VariantConfig: &container.LoggingVariantConfig{
@@ -785,14 +804,14 @@ func expandNodeConfigDefaults(configured interface{}) *container.NodeConfigDefau
785
804
}
786
805
}
787
806
<% unless version == "ga" -%>
788
- if v, ok := config["gcfs_config"]; ok && len(v.([]interface{})) > 0 {
789
- gcfsConfig := v.([]interface{})[0].(map[string]interface{})
807
+ if v, ok := config["gcfs_config"]; ok && len(v.([]interface{})) > 0 {
808
+ gcfsConfig := v.([]interface{})[0].(map[string]interface{})
790
809
nodeConfigDefaults.GcfsConfig = &container.GcfsConfig{
791
810
Enabled: gcfsConfig["enabled"].(bool),
792
811
}
793
812
}
794
813
<% end -%>
795
- return nodeConfigDefaults
814
+ return nodeConfigDefaults
796
815
}
797
816
798
817
func expandNodeConfig(v interface{}) *container.NodeConfig {
@@ -1134,6 +1153,13 @@ func expandWorkloadMetadataConfig(v interface{}) *container.WorkloadMetadataConf
1134
1153
return wmc
1135
1154
}
1136
1155
1156
+ func expandInsecureKubeletReadonlyPortEnabled(v interface{}) bool {
1157
+ if v == "TRUE" {
1158
+ return true
1159
+ }
1160
+ return false
1161
+ }
1162
+
1137
1163
func expandKubeletConfig(v interface{}) *container.NodeKubeletConfig {
1138
1164
if v == nil {
1139
1165
return nil
@@ -1154,6 +1180,10 @@ func expandKubeletConfig(v interface{}) *container.NodeKubeletConfig {
1154
1180
if cpuCfsQuotaPeriod, ok := cfg["cpu_cfs_quota_period"]; ok {
1155
1181
kConfig.CpuCfsQuotaPeriod = cpuCfsQuotaPeriod.(string)
1156
1182
}
1183
+ if insecureKubeletReadonlyPortEnabled, ok := cfg["insecure_kubelet_readonly_port_enabled"]; ok {
1184
+ kConfig.InsecureKubeletReadonlyPortEnabled = expandInsecureKubeletReadonlyPortEnabled(insecureKubeletReadonlyPortEnabled)
1185
+ kConfig.ForceSendFields = append(kConfig.ForceSendFields, "InsecureKubeletReadonlyPortEnabled")
1186
+ }
1157
1187
if podPidsLimit, ok := cfg["pod_pids_limit"]; ok {
1158
1188
kConfig.PodPidsLimit = int64(podPidsLimit.(int))
1159
1189
}
@@ -1362,6 +1392,8 @@ func flattenNodeConfigDefaults(c *container.NodeConfigDefaults) []map[string]int
1362
1392
1363
1393
result[0]["containerd_config"] = flattenContainerdConfig(c.ContainerdConfig)
1364
1394
1395
+ result[0]["insecure_kubelet_readonly_port_enabled"] = flattenInsecureKubeletReadonlyPortEnabled(c.NodeKubeletConfig)
1396
+
1365
1397
result[0]["logging_variant"] = flattenLoggingVariant(c.LoggingConfig)
1366
1398
1367
1399
<% unless version == 'ga' -%>
@@ -1553,6 +1585,14 @@ func flattenSecondaryBootDisks(c []*container.SecondaryBootDisk) []map[string]in
1553
1585
return result
1554
1586
}
1555
1587
1588
+ func flattenInsecureKubeletReadonlyPortEnabled(c *container.NodeKubeletConfig) string {
1589
+ // Convert bool from the API to the enum values used internally
1590
+ if c != nil && c.InsecureKubeletReadonlyPortEnabled {
1591
+ return "TRUE"
1592
+ }
1593
+ return "FALSE"
1594
+ }
1595
+
1556
1596
func flattenLoggingVariant(c *container.NodePoolLoggingConfig) string {
1557
1597
variant := "DEFAULT"
1558
1598
if c != nil && c.VariantConfig != nil && c.VariantConfig.Variant != "" {
@@ -1702,10 +1742,11 @@ func flattenKubeletConfig(c *container.NodeKubeletConfig) []map[string]interface
1702
1742
result := []map[string]interface{}{}
1703
1743
if c != nil {
1704
1744
result = append(result, map[string]interface{}{
1705
- "cpu_cfs_quota": c.CpuCfsQuota,
1706
- "cpu_cfs_quota_period": c.CpuCfsQuotaPeriod,
1707
- "cpu_manager_policy": c.CpuManagerPolicy,
1708
- "pod_pids_limit": c.PodPidsLimit,
1745
+ "cpu_cfs_quota": c.CpuCfsQuota,
1746
+ "cpu_cfs_quota_period": c.CpuCfsQuotaPeriod,
1747
+ "cpu_manager_policy": c.CpuManagerPolicy,
1748
+ "insecure_kubelet_readonly_port_enabled": flattenInsecureKubeletReadonlyPortEnabled(c),
1749
+ "pod_pids_limit": c.PodPidsLimit,
1709
1750
})
1710
1751
}
1711
1752
return result
0 commit comments