Skip to content

Commit 48b28da

Browse files
Composer enable_ip_masq_agent flag support (beta) (#9698) (#5277) (#3705)
Signed-off-by: Modular Magician <[email protected]>
1 parent f48ab99 commit 48b28da

File tree

5 files changed

+27
-4
lines changed

5 files changed

+27
-4
lines changed

.changelog/5277.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
composer: added field `enable_ip_masq_agent` to resource `google_composer_environment` (beta)
3+
```

google-beta/resource_composer_environment.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,13 @@ func resourceComposerEnvironment() *schema.Resource {
203203
ValidateFunc: validation.IntBetween(8, 110),
204204
Description: `The maximum pods per node in the GKE cluster allocated during environment creation. Lowering this value reduces IP address consumption by the Cloud Composer Kubernetes cluster. This value can only be set during environment creation, and only if the environment is VPC-Native. The range of possible values is 8-110, and the default is 32.`,
205205
},
206+
"enable_ip_masq_agent": {
207+
Type: schema.TypeBool,
208+
Computed: true,
209+
Optional: true,
210+
ForceNew: true,
211+
Description: `Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent`,
212+
},
206213
"tags": {
207214
Type: schema.TypeSet,
208215
Optional: true,
@@ -995,6 +1002,7 @@ func flattenComposerEnvironmentConfigNodeConfig(nodeCfg *composer.NodeConfig) in
9951002
transformed["service_account"] = nodeCfg.ServiceAccount
9961003
transformed["oauth_scopes"] = flattenComposerEnvironmentConfigNodeConfigOauthScopes(nodeCfg.OauthScopes)
9971004
transformed["max_pods_per_node"] = nodeCfg.MaxPodsPerNode
1005+
transformed["enable_ip_masq_agent"] = nodeCfg.EnableIpMasqAgent
9981006
transformed["tags"] = flattenComposerEnvironmentConfigNodeConfigTags(nodeCfg.Tags)
9991007
transformed["ip_allocation_policy"] = flattenComposerEnvironmentConfigNodeConfigIPAllocationPolicy(nodeCfg.IpAllocationPolicy)
10001008
return []interface{}{transformed}
@@ -1273,6 +1281,10 @@ func expandComposerEnvironmentConfigNodeConfig(v interface{}, d *schema.Resource
12731281
transformed.MaxPodsPerNode = int64(transformedMaxPodsPerNode.(int))
12741282
}
12751283

1284+
if transformedEnableIpMasqAgent, ok := original["enable_ip_masq_agent"]; ok {
1285+
transformed.EnableIpMasqAgent = transformedEnableIpMasqAgent.(bool)
1286+
}
1287+
12761288
var nodeConfigZone string
12771289
if v, ok := original["zone"]; ok {
12781290
transformedZone, err := expandComposerEnvironmentZone(v, d, config)

google-beta/resource_composer_environment_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -997,15 +997,16 @@ func testAccComposerEnvironment_nodeCfg(environment, network, subnetwork, servic
997997
return fmt.Sprintf(`
998998
resource "google_composer_environment" "test" {
999999
name = "%s"
1000-
region = "us-central1"
1000+
region = "us-east1" # later should be changed to us-central1, when ip_masq_agent feature is accessible globally
10011001
config {
10021002
node_config {
10031003
network = google_compute_network.test.self_link
10041004
subnetwork = google_compute_subnetwork.test.self_link
1005-
zone = "us-central1-a"
1005+
zone = "us-east1-b" # later should be changed to us-central1-a, when ip_masq_agent feature is accessible globally
10061006
10071007
service_account = google_service_account.test.name
10081008
max_pods_per_node = 33
1009+
enable_ip_masq_agent = true
10091010
ip_allocation_policy {
10101011
use_ip_aliases = true
10111012
cluster_ipv4_cidr_block = "10.0.0.0/16"
@@ -1023,7 +1024,7 @@ resource "google_compute_network" "test" {
10231024
resource "google_compute_subnetwork" "test" {
10241025
name = "%s"
10251026
ip_cidr_range = "10.2.0.0/16"
1026-
region = "us-central1"
1027+
region = "us-east1" # later should be changed to us-central1, when ip_masq_agent feature is accessible globally
10271028
network = google_compute_network.test.self_link
10281029
}
10291030

google-beta/resource_gke_hub_feature_membership_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"fmt"
66
"testing"
77

8-
dcl "github.com/GoogleCloudPlatform/declarative-resource-client-library/dcl"
8+
"github.com/GoogleCloudPlatform/declarative-resource-client-library/dcl"
99
gkehub "github.com/GoogleCloudPlatform/declarative-resource-client-library/services/google/gkehub/beta"
1010
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1111
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"

website/docs/r/composer_environment.html.markdown

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,13 @@ The `node_config` block supports:
259259
The range of possible values is 8-110, and the default is 32.
260260
Cannot be updated.
261261

262+
* `enable_ip_masq_agent` -
263+
(Optional, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html))
264+
Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines
265+
nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for
266+
all destination addresses, except between pods traffic.
267+
See the [documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent).
268+
262269
The `software_config` block supports:
263270

264271
* `airflow_config_overrides` -

0 commit comments

Comments
 (0)