mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-07-06 10:12:39 +00:00
Use attr syntax on cluster-specific GKE fields. (#3448)
<!-- This change is generated by MagicModules. --> Original Author: @rileykarson
This commit is contained in:
parent
dc95bd3468
commit
58a58c769f
|
@ -494,10 +494,11 @@ func resourceContainerCluster() *schema.Resource {
|
||||||
|
|
||||||
"ip_allocation_policy": {
|
"ip_allocation_policy": {
|
||||||
Type: schema.TypeList,
|
Type: schema.TypeList,
|
||||||
|
MaxItems: 1,
|
||||||
|
ForceNew: true,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
Computed: true,
|
Computed: true,
|
||||||
ForceNew: true,
|
ConfigMode: schema.SchemaConfigModeAttr,
|
||||||
MaxItems: 1,
|
|
||||||
Elem: &schema.Resource{
|
Elem: &schema.Resource{
|
||||||
Schema: map[string]*schema.Schema{
|
Schema: map[string]*schema.Schema{
|
||||||
"use_ip_aliases": {
|
"use_ip_aliases": {
|
||||||
|
@ -575,8 +576,8 @@ func resourceContainerCluster() *schema.Resource {
|
||||||
|
|
||||||
"private_cluster_config": {
|
"private_cluster_config": {
|
||||||
Type: schema.TypeList,
|
Type: schema.TypeList,
|
||||||
Optional: true,
|
|
||||||
MaxItems: 1,
|
MaxItems: 1,
|
||||||
|
Optional: true,
|
||||||
Computed: true,
|
Computed: true,
|
||||||
DiffSuppressFunc: containerClusterPrivateClusterConfigSuppress,
|
DiffSuppressFunc: containerClusterPrivateClusterConfigSuppress,
|
||||||
Elem: &schema.Resource{
|
Elem: &schema.Resource{
|
||||||
|
|
|
@ -274,7 +274,7 @@ func TestAccContainerCluster_withMasterAuthorizedNetworksConfig(t *testing.T) {
|
||||||
CheckDestroy: testAccCheckContainerClusterDestroy,
|
CheckDestroy: testAccCheckContainerClusterDestroy,
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
{
|
{
|
||||||
Config: testAccContainerCluster_withMasterAuthorizedNetworksConfig(clusterName, []string{}, "cidr_blocks = []"),
|
Config: testAccContainerCluster_withMasterAuthorizedNetworksConfig(clusterName, []string{}, ""),
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
resource.TestCheckResourceAttr("google_container_cluster.with_master_authorized_networks",
|
resource.TestCheckResourceAttr("google_container_cluster.with_master_authorized_networks",
|
||||||
"master_authorized_networks_config.#", "1"),
|
"master_authorized_networks_config.#", "1"),
|
||||||
|
@ -1164,6 +1164,39 @@ func TestAccContainerCluster_withIPAllocationPolicy_createSubnetwork(t *testing.
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This test will intentionally perform a recreate. Without attr syntax, there's
|
||||||
|
// no way to go from allocation policy set -> unset without one.
|
||||||
|
func TestAccContainerCluster_withIPAllocationPolicy_explicitEmpty(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
cluster := fmt.Sprintf("cluster-test-%s", acctest.RandString(10))
|
||||||
|
resource.Test(t, resource.TestCase{
|
||||||
|
PreCheck: func() { testAccPreCheck(t) },
|
||||||
|
Providers: testAccProviders,
|
||||||
|
CheckDestroy: testAccCheckContainerClusterDestroy,
|
||||||
|
Steps: []resource.TestStep{
|
||||||
|
{
|
||||||
|
Config: testAccContainerCluster_withIPAllocationPolicy_createSubnetwork(cluster),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ResourceName: "google_container_cluster.with_ip_allocation_policy",
|
||||||
|
ImportStateIdPrefix: "us-central1-a/",
|
||||||
|
ImportState: true,
|
||||||
|
ImportStateVerify: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Config: testAccContainerCluster_withIPAllocationPolicy_explicitEmpty(cluster),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ResourceName: "google_container_cluster.with_ip_allocation_policy",
|
||||||
|
ImportStateIdPrefix: "us-central1-a/",
|
||||||
|
ImportState: true,
|
||||||
|
ImportStateVerify: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func TestAccContainerCluster_withResourceLabels(t *testing.T) {
|
func TestAccContainerCluster_withResourceLabels(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
@ -2293,6 +2326,17 @@ resource "google_container_cluster" "with_ip_allocation_policy" {
|
||||||
}`, cluster)
|
}`, cluster)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testAccContainerCluster_withIPAllocationPolicy_explicitEmpty(cluster string) string {
|
||||||
|
return fmt.Sprintf(`
|
||||||
|
resource "google_container_cluster" "with_ip_allocation_policy" {
|
||||||
|
name = "%s"
|
||||||
|
zone = "us-central1-a"
|
||||||
|
|
||||||
|
initial_node_count = 1
|
||||||
|
ip_allocation_policy = []
|
||||||
|
}`, cluster)
|
||||||
|
}
|
||||||
|
|
||||||
func testAccContainerCluster_withPrivateClusterConfig(clusterName string) string {
|
func testAccContainerCluster_withPrivateClusterConfig(clusterName string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "google_compute_network" "container_network" {
|
resource "google_compute_network" "container_network" {
|
||||||
|
@ -2331,7 +2375,7 @@ resource "google_container_cluster" "with_private_cluster" {
|
||||||
enable_private_nodes = true
|
enable_private_nodes = true
|
||||||
master_ipv4_cidr_block = "10.42.0.0/28"
|
master_ipv4_cidr_block = "10.42.0.0/28"
|
||||||
}
|
}
|
||||||
master_authorized_networks_config { cidr_blocks = [] }
|
master_authorized_networks_config { }
|
||||||
ip_allocation_policy {
|
ip_allocation_policy {
|
||||||
cluster_secondary_range_name = "${google_compute_subnetwork.container_subnetwork.secondary_ip_range.0.range_name}"
|
cluster_secondary_range_name = "${google_compute_subnetwork.container_subnetwork.secondary_ip_range.0.range_name}"
|
||||||
services_secondary_range_name = "${google_compute_subnetwork.container_subnetwork.secondary_ip_range.1.range_name}"
|
services_secondary_range_name = "${google_compute_subnetwork.container_subnetwork.secondary_ip_range.1.range_name}"
|
||||||
|
|
|
@ -212,7 +212,8 @@ deprecated in favour of `node_locations`.
|
||||||
|
|
||||||
* `ip_allocation_policy` - (Optional) Configuration for cluster IP allocation. As of now, only pre-allocated subnetworks (custom type with secondary ranges) are supported.
|
* `ip_allocation_policy` - (Optional) Configuration for cluster IP allocation. As of now, only pre-allocated subnetworks (custom type with secondary ranges) are supported.
|
||||||
This will activate IP aliases. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-aliases)
|
This will activate IP aliases. See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-aliases)
|
||||||
Structure is documented below.
|
Structure is documented below. This field is marked to use [Attribute as Block](/docs/configuration/attr-as-blocks.html)
|
||||||
|
in order to support explicit removal with `ip_allocation_policy = []`.
|
||||||
|
|
||||||
* `logging_service` - (Optional) The logging service that the cluster should
|
* `logging_service` - (Optional) The logging service that the cluster should
|
||||||
write logs to. Available options include `logging.googleapis.com`,
|
write logs to. Available options include `logging.googleapis.com`,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user