Skip to content

Commit 3dd58c8

Browse files
Add support for enable_relay field to advanced_datapath_observability_config (#9633) (#6960)
[upstream:ffb7cd3412162f0ac5895ab37a06283a8e0b09fc] Signed-off-by: Modular Magician <[email protected]>
1 parent 191d500 commit 3dd58c8

File tree

5 files changed

+179
-8
lines changed

5 files changed

+179
-8
lines changed

.changelog/9633.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
```release-note:enhancement
2+
container: added support for `enable_relay` field to `advanced_datapath_observability_config`
3+
container: deprecated support for `relay_mode` field in `advanced_datapath_observability_config` in favor of `enable_relay` field, `relay_mode` field will be removed in upcoming releases
4+
```

google-beta/services/container/resource_container_cluster.go

Lines changed: 51 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,7 +1174,7 @@ func ResourceContainerCluster() *schema.Resource {
11741174
Type: schema.TypeList,
11751175
Optional: true,
11761176
Computed: true,
1177-
MaxItems: 2,
1177+
MaxItems: 1,
11781178
Description: `Configuration of Advanced Datapath Observability features.`,
11791179
Elem: &schema.Resource{
11801180
Schema: map[string]*schema.Schema{
@@ -1183,12 +1183,21 @@ func ResourceContainerCluster() *schema.Resource {
11831183
Required: true,
11841184
Description: `Whether or not the advanced datapath metrics are enabled.`,
11851185
},
1186+
"enable_relay": {
1187+
Type: schema.TypeBool,
1188+
Optional: true,
1189+
Description: `Whether or not Relay is enabled.`,
1190+
Default: false,
1191+
ConflictsWith: []string{"monitoring_config.0.advanced_datapath_observability_config.0.relay_mode"},
1192+
},
11861193
"relay_mode": {
1187-
Type: schema.TypeString,
1188-
Optional: true,
1189-
Computed: true,
1190-
Description: `Mode used to make Relay available.`,
1191-
ValidateFunc: validation.StringInSlice([]string{"DISABLED", "INTERNAL_VPC_LB", "EXTERNAL_LB"}, false),
1194+
Type: schema.TypeString,
1195+
Optional: true,
1196+
Computed: true,
1197+
Deprecated: "Deprecated in favor of enable_relay field. Remove this attribute's configuration as this field will be removed in the next major release and enable_relay will become a required field.",
1198+
Description: `Mode used to make Relay available.`,
1199+
ValidateFunc: validation.StringInSlice([]string{"DISABLED", "INTERNAL_VPC_LB", "EXTERNAL_LB"}, false),
1200+
ConflictsWith: []string{"monitoring_config.0.advanced_datapath_observability_config.0.enable_relay"},
11921201
},
11931202
},
11941203
},
@@ -5243,7 +5252,18 @@ func expandMonitoringConfig(configured interface{}) *container.MonitoringConfig
52435252

52445253
mc.AdvancedDatapathObservabilityConfig = &container.AdvancedDatapathObservabilityConfig{
52455254
EnableMetrics: advanced_datapath_observability_config["enable_metrics"].(bool),
5246-
RelayMode: advanced_datapath_observability_config["relay_mode"].(string),
5255+
}
5256+
5257+
enable_relay := advanced_datapath_observability_config["enable_relay"].(bool)
5258+
relay_mode := advanced_datapath_observability_config["relay_mode"].(string)
5259+
if enable_relay {
5260+
mc.AdvancedDatapathObservabilityConfig.EnableRelay = enable_relay
5261+
} else if relay_mode == "INTERNAL_VPC_LB" || relay_mode == "EXTERNAL_LB" {
5262+
mc.AdvancedDatapathObservabilityConfig.RelayMode = relay_mode
5263+
} else {
5264+
mc.AdvancedDatapathObservabilityConfig.EnableRelay = enable_relay
5265+
mc.AdvancedDatapathObservabilityConfig.RelayMode = "DISABLED"
5266+
mc.AdvancedDatapathObservabilityConfig.ForceSendFields = []string{"EnableRelay"}
52475267
}
52485268
}
52495269

@@ -6057,10 +6077,33 @@ func flattenMonitoringConfig(c *container.MonitoringConfig) []map[string]interfa
60576077
}
60586078

60596079
func flattenAdvancedDatapathObservabilityConfig(c *container.AdvancedDatapathObservabilityConfig) []map[string]interface{} {
6080+
if c == nil {
6081+
return nil
6082+
}
6083+
6084+
if c.EnableRelay {
6085+
return []map[string]interface{}{
6086+
{
6087+
"enable_metrics": c.EnableMetrics,
6088+
"enable_relay": c.EnableRelay,
6089+
},
6090+
}
6091+
}
6092+
6093+
if c.RelayMode == "INTERNAL_VPC_LB" || c.RelayMode == "EXTERNAL_LB" {
6094+
return []map[string]interface{}{
6095+
{
6096+
"enable_metrics": c.EnableMetrics,
6097+
"relay_mode": c.RelayMode,
6098+
},
6099+
}
6100+
}
6101+
60606102
return []map[string]interface{}{
60616103
{
60626104
"enable_metrics": c.EnableMetrics,
6063-
"relay_mode": c.RelayMode,
6105+
"enable_relay": false,
6106+
"relay_mode": "DISABLED",
60646107
},
60656108
}
60666109
}

google-beta/services/container/resource_container_cluster_migratev1.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -980,6 +980,11 @@ func resourceContainerClusterResourceV1() *schema.Resource {
980980
Required: true,
981981
Description: `Whether or not the advanced datapath metrics are enabled.`,
982982
},
983+
"enable_relay": {
984+
Type: schema.TypeBool,
985+
Optional: true,
986+
Description: `Whether or not Relay is enabled.`,
987+
},
983988
"relay_mode": {
984989
Type: schema.TypeString,
985990
Optional: true,

google-beta/services/container/resource_container_cluster_test.go

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3106,6 +3106,24 @@ func TestAccContainerCluster_withMonitoringConfigAdvancedDatapathObservabilityCo
31063106
ImportStateVerify: true,
31073107
ImportStateVerifyIgnore: []string{"min_master_version", "deletion_protection"},
31083108
},
3109+
{
3110+
Config: testAccContainerCluster_withMonitoringConfigAdvancedDatapathObservabilityConfigEnabledOld(clusterName),
3111+
},
3112+
{
3113+
ResourceName: "google_container_cluster.primary",
3114+
ImportState: true,
3115+
ImportStateVerify: true,
3116+
ImportStateVerifyIgnore: []string{"min_master_version", "deletion_protection"},
3117+
},
3118+
{
3119+
Config: testAccContainerCluster_withMonitoringConfigAdvancedDatapathObservabilityConfigDisabledOld(clusterName),
3120+
},
3121+
{
3122+
ResourceName: "google_container_cluster.primary",
3123+
ImportState: true,
3124+
ImportStateVerify: true,
3125+
ImportStateVerifyIgnore: []string{"min_master_version", "deletion_protection"},
3126+
},
31093127
},
31103128
})
31113129
}
@@ -8802,6 +8820,56 @@ resource "google_compute_subnetwork" "container_subnetwork" {
88028820
}
88038821
}
88048822
8823+
resource "google_container_cluster" "primary" {
8824+
name = "%s"
8825+
location = "us-central1-a"
8826+
initial_node_count = 1
8827+
datapath_provider = "ADVANCED_DATAPATH"
8828+
8829+
network = google_compute_network.container_network.name
8830+
subnetwork = google_compute_subnetwork.container_subnetwork.name
8831+
ip_allocation_policy {
8832+
cluster_secondary_range_name = google_compute_subnetwork.container_subnetwork.secondary_ip_range[0].range_name
8833+
services_secondary_range_name = google_compute_subnetwork.container_subnetwork.secondary_ip_range[1].range_name
8834+
}
8835+
8836+
monitoring_config {
8837+
enable_components = []
8838+
advanced_datapath_observability_config {
8839+
enable_metrics = true
8840+
enable_relay = true
8841+
}
8842+
}
8843+
deletion_protection = false
8844+
}
8845+
`, name, name)
8846+
}
8847+
8848+
func testAccContainerCluster_withMonitoringConfigAdvancedDatapathObservabilityConfigEnabledOld(name string) string {
8849+
return fmt.Sprintf(`
8850+
resource "google_compute_network" "container_network" {
8851+
name = "%s-nw"
8852+
auto_create_subnetworks = false
8853+
}
8854+
8855+
resource "google_compute_subnetwork" "container_subnetwork" {
8856+
name = google_compute_network.container_network.name
8857+
network = google_compute_network.container_network.name
8858+
ip_cidr_range = "10.0.36.0/24"
8859+
region = "us-central1"
8860+
private_ip_google_access = true
8861+
8862+
secondary_ip_range {
8863+
range_name = "services-range"
8864+
ip_cidr_range = "192.168.1.0/24"
8865+
}
8866+
8867+
secondary_ip_range {
8868+
range_name = "pod-ranges"
8869+
ip_cidr_range = "192.168.64.0/22"
8870+
}
8871+
}
8872+
88058873
resource "google_container_cluster" "primary" {
88068874
name = "%s"
88078875
location = "us-central1-a"
@@ -8852,6 +8920,56 @@ resource "google_compute_subnetwork" "container_subnetwork" {
88528920
}
88538921
}
88548922
8923+
resource "google_container_cluster" "primary" {
8924+
name = "%s"
8925+
location = "us-central1-a"
8926+
initial_node_count = 1
8927+
datapath_provider = "ADVANCED_DATAPATH"
8928+
8929+
network = google_compute_network.container_network.name
8930+
subnetwork = google_compute_subnetwork.container_subnetwork.name
8931+
ip_allocation_policy {
8932+
cluster_secondary_range_name = google_compute_subnetwork.container_subnetwork.secondary_ip_range[0].range_name
8933+
services_secondary_range_name = google_compute_subnetwork.container_subnetwork.secondary_ip_range[1].range_name
8934+
}
8935+
8936+
monitoring_config {
8937+
enable_components = []
8938+
advanced_datapath_observability_config {
8939+
enable_metrics = false
8940+
enable_relay = false
8941+
}
8942+
}
8943+
deletion_protection = false
8944+
}
8945+
`, name, name)
8946+
}
8947+
8948+
func testAccContainerCluster_withMonitoringConfigAdvancedDatapathObservabilityConfigDisabledOld(name string) string {
8949+
return fmt.Sprintf(`
8950+
resource "google_compute_network" "container_network" {
8951+
name = "%s-nw"
8952+
auto_create_subnetworks = false
8953+
}
8954+
8955+
resource "google_compute_subnetwork" "container_subnetwork" {
8956+
name = google_compute_network.container_network.name
8957+
network = google_compute_network.container_network.name
8958+
ip_cidr_range = "10.0.36.0/24"
8959+
region = "us-central1"
8960+
private_ip_google_access = true
8961+
8962+
secondary_ip_range {
8963+
range_name = "services-range"
8964+
ip_cidr_range = "192.168.1.0/24"
8965+
}
8966+
8967+
secondary_ip_range {
8968+
range_name = "pod-ranges"
8969+
ip_cidr_range = "192.168.64.0/22"
8970+
}
8971+
}
8972+
88558973
resource "google_container_cluster" "primary" {
88568974
name = "%s"
88578975
location = "us-central1-a"

website/docs/r/container_cluster.html.markdown

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,7 @@ This block also contains several computed attributes, documented below.
618618
<a name="nested_advanced_datapath_observability_config"></a>The `advanced_datapath_observability_config` block supports:
619619

620620
* `enable_metrics` - (Required) Whether or not to enable advanced datapath metrics.
621+
* `enable_relay` - (Optional) Whether or not Relay is enabled.
621622
* `relay_mode` - (Optional) Mode used to make Relay available.
622623

623624
<a name="nested_maintenance_policy"></a>The `maintenance_policy` block supports:

0 commit comments

Comments
 (0)