@@ -2057,6 +2057,68 @@ func TestAccContainerCluster_withNodeConfigLinuxNodeConfig(t *testing.T) {
20572057 })
20582058}
20592059
2060+ func TestAccContainerCluster_withKubeletConfig(t *testing.T) {
2061+ t.Parallel()
2062+
2063+ clusterName := fmt.Sprintf("tf-test-cluster-%s", acctest.RandString(t, 10))
2064+ networkName := acctest.BootstrapSharedTestNetwork(t, "gke-cluster")
2065+ subnetworkName := acctest.BootstrapSubnet(t, "gke-cluster", networkName)
2066+
2067+ acctest.VcrTest(t, resource.TestCase{
2068+ PreCheck: func() { acctest.AccTestPreCheck(t) },
2069+ ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
2070+ CheckDestroy: testAccCheckContainerClusterDestroyProducer(t),
2071+ Steps: []resource.TestStep{
2072+ {
2073+ Config: testAccContainerCluster_withKubeletConfig(clusterName, networkName, subnetworkName, "none", "None", "best-effort", "pod"),
2074+ Check: resource.ComposeTestCheckFunc(
2075+ resource.TestCheckResourceAttr(
2076+ "google_container_cluster.with_kubelet_config",
2077+ "node_config.0.kubelet_config.0.cpu_manager_policy", "none"),
2078+ resource.TestCheckResourceAttr(
2079+ "google_container_cluster.with_kubelet_config",
2080+ "node_config.0.kubelet_config.0.memory_manager.0.policy", "None"),
2081+ resource.TestCheckResourceAttr(
2082+ "google_container_cluster.with_kubelet_config",
2083+ "node_config.0.kubelet_config.0.topology_manager.0.policy", "best-effort"),
2084+ resource.TestCheckResourceAttr(
2085+ "google_container_cluster.with_kubelet_config",
2086+ "node_config.0.kubelet_config.0.topology_manager.0.scope", "pod"),
2087+ ),
2088+ },
2089+ {
2090+ ResourceName: "google_container_cluster.with_kubelet_config",
2091+ ImportState: true,
2092+ ImportStateVerify: true,
2093+ ImportStateVerifyIgnore: []string{"deletion_protection"},
2094+ },
2095+ {
2096+ Config: testAccContainerCluster_withKubeletConfig(clusterName, networkName, subnetworkName, "static", "Static", "single-numa-node", "pod"),
2097+ Check: resource.ComposeTestCheckFunc(
2098+ resource.TestCheckResourceAttr(
2099+ "google_container_cluster.with_kubelet_config",
2100+ "node_config.0.kubelet_config.0.cpu_manager_policy", "static"),
2101+ resource.TestCheckResourceAttr(
2102+ "google_container_cluster.with_kubelet_config",
2103+ "node_config.0.kubelet_config.0.memory_manager.0.policy", "Static"),
2104+ resource.TestCheckResourceAttr(
2105+ "google_container_cluster.with_kubelet_config",
2106+ "node_config.0.kubelet_config.0.topology_manager.0.policy", "single-numa-node"),
2107+ resource.TestCheckResourceAttr(
2108+ "google_container_cluster.with_kubelet_config",
2109+ "node_config.0.kubelet_config.0.topology_manager.0.scope", "pod"),
2110+ ),
2111+ },
2112+ {
2113+ ResourceName: "google_container_cluster.with_kubelet_config",
2114+ ImportState: true,
2115+ ImportStateVerify: true,
2116+ ImportStateVerifyIgnore: []string{"deletion_protection"},
2117+ },
2118+ },
2119+ })
2120+ }
2121+
20602122func TestAccContainerCluster_withNodeConfigFastSocket(t *testing.T) {
20612123 t.Parallel()
20622124
@@ -8537,7 +8599,6 @@ resource "google_container_cluster" "with_node_config_kubelet_config_settings_in
85378599 node_pool {
85388600 name = "%s"
85398601 initial_node_count = 1
8540-
85418602 node_config {
85428603 machine_type = "n1-standard-1"
85438604 kubelet_config {
@@ -14795,3 +14856,92 @@ resource "google_container_cluster" "primary" {
1479514856}
1479614857`, clusterName, networkName, subnetworkName, unauthenticated, authenticated)
1479714858}
14859+
14860+ func TestAccContainerCluster_withKubeletResourceManagerConfig(t *testing.T) {
14861+ t.Parallel()
14862+
14863+ clusterName := fmt.Sprintf("tf-test-cluster-%s", acctest.RandString(t, 10))
14864+ networkName := acctest.BootstrapSharedTestNetwork(t, "gke-cluster")
14865+ subnetworkName := acctest.BootstrapSubnet(t, "gke-cluster", networkName)
14866+
14867+ acctest.VcrTest(t, resource.TestCase{
14868+ PreCheck: func() { acctest.AccTestPreCheck(t) },
14869+ ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
14870+ CheckDestroy: testAccCheckContainerClusterDestroyProducer(t),
14871+ Steps: []resource.TestStep{
14872+ {
14873+ Config: testAccContainerCluster_withKubeletConfig(clusterName, networkName, subnetworkName, "none", "None", "best-effort", "container"),
14874+ Check: resource.ComposeTestCheckFunc(
14875+ resource.TestCheckResourceAttr(
14876+ "google_container_cluster.with_kubelet_config",
14877+ "node_config.0.kubelet_config.0.cpu_manager_policy", "none"),
14878+ resource.TestCheckResourceAttr(
14879+ "google_container_cluster.with_kubelet_config",
14880+ "node_config.0.kubelet_config.0.memory_manager.0.policy", "None"),
14881+ resource.TestCheckResourceAttr(
14882+ "google_container_cluster.with_kubelet_config",
14883+ "node_config.0.kubelet_config.0.topology_manager.0.policy", "best-effort"),
14884+ resource.TestCheckResourceAttr(
14885+ "google_container_cluster.with_kubelet_config",
14886+ "node_config.0.kubelet_config.0.topology_manager.0.scope", "container"),
14887+ ),
14888+ },
14889+ {
14890+ ResourceName: "google_container_cluster.with_kubelet_config",
14891+ ImportState: true,
14892+ ImportStateVerify: true,
14893+ ImportStateVerifyIgnore: []string{"deletion_protection"},
14894+ },
14895+ {
14896+ Config: testAccContainerCluster_withKubeletConfig(clusterName, networkName, subnetworkName, "static", "Static", "single-numa-node", "container"),
14897+ Check: resource.ComposeTestCheckFunc(
14898+ resource.TestCheckResourceAttr(
14899+ "google_container_cluster.with_kubelet_config",
14900+ "node_config.0.kubelet_config.0.cpu_manager_policy", "static"),
14901+ resource.TestCheckResourceAttr(
14902+ "google_container_cluster.with_kubelet_config",
14903+ "node_config.0.kubelet_config.0.memory_manager.0.policy", "Static"),
14904+ resource.TestCheckResourceAttr(
14905+ "google_container_cluster.with_kubelet_config",
14906+ "node_config.0.kubelet_config.0.topology_manager.0.policy", "single-numa-node"),
14907+ resource.TestCheckResourceAttr(
14908+ "google_container_cluster.with_kubelet_config",
14909+ "node_config.0.kubelet_config.0.topology_manager.0.scope", "container"),
14910+ ),
14911+ },
14912+ {
14913+ ResourceName: "google_container_cluster.with_kubelet_config",
14914+ ImportState: true,
14915+ ImportStateVerify: true,
14916+ ImportStateVerifyIgnore: []string{"deletion_protection"},
14917+ },
14918+ },
14919+ })
14920+ }
14921+
14922+ func testAccContainerCluster_withKubeletConfig(clusterName, networkName, subnetworkName, cpuManagerPolicy, memoryManagerPolicy, topologyManagerPolicy , topologyManagerScope string) string {
14923+ return fmt.Sprintf(`
14924+ resource "google_container_cluster" "with_kubelet_config" {
14925+ name = %q
14926+ location = "us-central1-a"
14927+ initial_node_count = 1
14928+ network = %q
14929+ subnetwork = %q
14930+ deletion_protection = false
14931+
14932+ node_config {
14933+ machine_type = "c4-standard-2"
14934+ kubelet_config {
14935+ cpu_manager_policy = %q
14936+ memory_manager {
14937+ policy = %q
14938+ }
14939+ topology_manager {
14940+ policy = %q
14941+ scope = %q
14942+ }
14943+ }
14944+ }
14945+ }
14946+ `, clusterName, networkName, subnetworkName, cpuManagerPolicy, memoryManagerPolicy, topologyManagerPolicy, topologyManagerScope)
14947+ }
0 commit comments