diff --git a/third_party/terraform/resources/resource_container_cluster.go.erb b/third_party/terraform/resources/resource_container_cluster.go.erb index 8595726af4e5..0185754fdcfa 100644 --- a/third_party/terraform/resources/resource_container_cluster.go.erb +++ b/third_party/terraform/resources/resource_container_cluster.go.erb @@ -58,6 +58,7 @@ var ( "addons_config.0.cloudrun_config", "addons_config.0.dns_cache_config", "addons_config.0.gce_persistent_disk_csi_driver_config", + "addons_config.0.kalm_config", <% end -%> } ) @@ -305,6 +306,21 @@ func resourceContainerCluster() *schema.Resource { }, }, }, + "kalm_config": { + Type: schema.TypeList, + Optional: true, + Computed: true, + AtLeastOneOf: addonsConfigKeys, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "enabled": { + Type: schema.TypeBool, + Required: true, + }, + }, + }, + }, <% end -%> }, }, @@ -2250,6 +2266,14 @@ func expandClusterAddonsConfig(configured interface{}) *containerBeta.AddonsConf ForceSendFields: []string{"Enabled"}, } } + + if v, ok := config["kalm_config"]; ok && len(v.([]interface{})) > 0 { + addon := v.([]interface{})[0].(map[string]interface{}) + ac.KalmConfig = &containerBeta.KalmConfig{ + Enabled: addon["enabled"].(bool), + ForceSendFields: []string{"Enabled"}, + } + } <% end -%> return ac @@ -2675,6 +2699,14 @@ func flattenClusterAddonsConfig(c *containerBeta.AddonsConfig) []map[string]inte }, } } + + if c.KalmConfig != nil { + result["kalm_config"] = []map[string]interface{}{ + { + "enabled": c.KalmConfig.Enabled, + }, + } + } <% end -%> return []map[string]interface{}{result} } diff --git a/third_party/terraform/tests/resource_container_cluster_test.go.erb b/third_party/terraform/tests/resource_container_cluster_test.go.erb index 232358316c01..eeab48f70bbb 100644 --- a/third_party/terraform/tests/resource_container_cluster_test.go.erb +++ b/third_party/terraform/tests/resource_container_cluster_test.go.erb @@ -1992,6 +1992,9 @@ resource "google_container_cluster" "primary" { gce_persistent_disk_csi_driver_config { enabled = false } + kalm_config { + enabled = false + } <% end -%> } } @@ -2030,7 +2033,10 @@ resource "google_container_cluster" "primary" { } gce_persistent_disk_csi_driver_config { enabled = true - } + } + kalm_config { + enabled = true + } <% end -%> } } diff --git a/third_party/terraform/website/docs/r/container_cluster.html.markdown b/third_party/terraform/website/docs/r/container_cluster.html.markdown index da215e182ffc..13d7db6360a5 100644 --- a/third_party/terraform/website/docs/r/container_cluster.html.markdown +++ b/third_party/terraform/website/docs/r/container_cluster.html.markdown @@ -338,6 +338,9 @@ The `addons_config` block supports: * `gce_persistent_disk_csi_driver_config` - (Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html)). Whether this cluster should enable the Google Compute Engine Persistent Disk Container Storage Interface (CSI) Driver. Defaults to disabled; set `enabled = true` to enable. +* `kalm_config` - (Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html)). + Configuration for the KALM addon, which manages the lifecycle of k8s. It is disabled by default; Set `enabled = true` to enable. + This example `addons_config` disables two addons: ```hcl