Skip to content

Commit 2e5e2bc

Browse files
authored
Merge pull request #1042 from ksamoray/t1_ha_mode_none
Handle T1 ha_mode properly.
2 parents 43df0d5 + cbedf79 commit 2e5e2bc

3 files changed

+9
-10
lines changed

nsxt/resource_nsxt_policy_tier1_gateway.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ func resourceNsxtPolicyTier1Gateway() *schema.Resource {
135135
Description: "High-availability Mode for Tier-1",
136136
ValidateFunc: validation.StringInSlice(t1HaModeValues, false),
137137
Optional: true,
138-
Default: model.Tier1_HA_MODE_STANDBY,
138+
Computed: true,
139139
},
140140
"type": {
141141
Type: schema.TypeString,
@@ -405,7 +405,7 @@ func policyTier1GatewayResourceToInfraStruct(context utl.SessionContext, d *sche
405405
}
406406

407407
if nsxVersionHigherOrEqual("3.2.0") {
408-
if haMode != "NONE" {
408+
if haMode != "NONE" && haMode != "" {
409409
obj.HaMode = &haMode
410410
}
411411
}

nsxt/resource_nsxt_policy_tier1_gateway_test.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99

1010
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1111
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
12-
"github.com/vmware/vsphere-automation-sdk-go/services/nsxt/model"
1312
)
1413

1514
func TestAccResourceNsxtPolicyTier1Gateway_basic(t *testing.T) {
@@ -50,7 +49,7 @@ func testAccResourceNsxtPolicyTier1GatewayBasic(t *testing.T, withContext bool,
5049
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "true"),
5150
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "false"),
5251
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
53-
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
52+
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
5453
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "2"),
5554
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
5655
resource.TestCheckResourceAttrSet(testResourceName, "ipv6_ndra_profile_path"),
@@ -72,7 +71,7 @@ func testAccResourceNsxtPolicyTier1GatewayBasic(t *testing.T, withContext bool,
7271
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "false"),
7372
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "true"),
7473
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
75-
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
74+
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
7675
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "1"),
7776
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
7877
resource.TestCheckResourceAttrSet(testResourceName, "ipv6_ndra_profile_path"),
@@ -94,7 +93,7 @@ func testAccResourceNsxtPolicyTier1GatewayBasic(t *testing.T, withContext bool,
9493
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "false"),
9594
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "true"),
9695
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
97-
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
96+
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
9897
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "1"),
9998
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
10099
resource.TestCheckResourceAttrSet(testResourceName, "ipv6_ndra_profile_path"),
@@ -132,7 +131,7 @@ func TestAccResourceNsxtPolicyTier1Gateway_withPoolAllocation(t *testing.T) {
132131
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "true"),
133132
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "false"),
134133
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
135-
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
134+
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
136135
resource.TestCheckResourceAttr(testResourceName, "pool_allocation", "ROUTING"),
137136
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "2"),
138137
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
@@ -155,7 +154,7 @@ func TestAccResourceNsxtPolicyTier1Gateway_withPoolAllocation(t *testing.T) {
155154
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "false"),
156155
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "true"),
157156
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
158-
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
157+
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
159158
resource.TestCheckResourceAttr(testResourceName, "pool_allocation", "ROUTING"),
160159
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "1"),
161160
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
@@ -179,7 +178,7 @@ func TestAccResourceNsxtPolicyTier1Gateway_withPoolAllocation(t *testing.T) {
179178
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "false"),
180179
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "true"),
181180
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
182-
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
181+
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
183182
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "1"),
184183
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
185184
resource.TestCheckResourceAttrSet(testResourceName, "ipv6_ndra_profile_path"),

website/docs/r/policy_tier1_gateway.html.markdown

+1-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ The following arguments are supported:
144144
* `intersite_config` - (Optional) This clause is relevant for Global Manager only.
145145
* `transit_subnet` - (Optional) IPv4 subnet for inter-site transit segment connecting service routers across sites for stretched gateway. For IPv6 link local subnet is auto configured.
146146
* `primary_site_path` - (Optional) Primary egress site for gateway.
147-
* `ha_mode` - (Optional) High-availability Mode for Tier-1. Valid values are `ACTIVE_ACTIVE`, `ACTIVE_STANDBY` and `NONE`. `ACTIVE_ACTIVE` is supported with NSX version 4.0.0 and above. `NONE` mode should be used for Distributed Only.
147+
* `ha_mode` - (Optional) High-availability Mode for Tier-1. Valid values are `ACTIVE_ACTIVE`, `ACTIVE_STANDBY` and `NONE`. `ACTIVE_ACTIVE` is supported with NSX version 4.0.0 and above. `NONE` mode should be used for Distributed Only, e.g when a gateway is created and has no services.
148148
* `type` - (Optional) This setting is only applicable to VMC and it helps auto-configure router advertisements for the gateway. Valid values are `ROUTED`, `NATTED` and `ISOLATED`. For `ROUTED` and `NATTED`, `tier0_path` should be specified in configuration.
149149

150150

0 commit comments

Comments
 (0)