Skip to content

Commit

Permalink
Merge pull request #7346 from jbinko/fix/InternalLoadBalancingModeWeb…
Browse files Browse the repository at this point in the history
…Publishing2
  • Loading branch information
jackofallops committed Jun 23, 2020
2 parents d3965f8 + 8e4434f commit e47be41
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 6 deletions.
Expand Up @@ -24,6 +24,10 @@ import (
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils"
)

const (
InternalLoadBalancingModeWebPublishing web.InternalLoadBalancingMode = "Web, Publishing"
)

func resourceArmAppServiceEnvironment() *schema.Resource {
return &schema.Resource{
Create: resourceArmAppServiceEnvironmentCreate,
Expand Down Expand Up @@ -61,11 +65,13 @@ func resourceArmAppServiceEnvironment() *schema.Resource {
"internal_load_balancing_mode": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Default: string(web.InternalLoadBalancingModeNone),
ValidateFunc: validation.StringInSlice([]string{
string(web.InternalLoadBalancingModeNone),
string(web.InternalLoadBalancingModePublishing),
string(web.InternalLoadBalancingModeWeb),
string(InternalLoadBalancingModeWebPublishing),
}, false),
},

Expand Down
Expand Up @@ -159,6 +159,26 @@ func TestAccAzureRMAppServiceEnvironment_withCertificatePfx(t *testing.T) {
})
}

func TestAccAzureRMAppServiceEnvironment_internalLoadBalancer(t *testing.T) {
data := acceptance.BuildTestData(t, "azurerm_app_service_environment", "test")

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acceptance.PreCheck(t) },
Providers: acceptance.SupportedProviders,
CheckDestroy: testCheckAzureRMAppServiceEnvironmentDestroy,
Steps: []resource.TestStep{
{
Config: testAccAzureRMAppServiceEnvironment_internalLoadBalancerAndWhitelistedIpRanges(data),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMAppServiceEnvironmentExists(data.ResourceName),
resource.TestCheckResourceAttr(data.ResourceName, "internal_load_balancing_mode", "Web, Publishing"),
),
},
data.ImportStep(),
},
})
}

func testCheckAzureRMAppServiceEnvironmentExists(resourceName string) resource.TestCheckFunc {
return func(s *terraform.State) error {
client := acceptance.AzureProvider.Meta().(*clients.Client).Web.AppServiceEnvironmentsClient
Expand Down Expand Up @@ -379,3 +399,19 @@ resource "azurerm_subnet" "gateway" {
}
`, data.RandomInteger, data.Locations.Primary, data.RandomInteger)
}

func testAccAzureRMAppServiceEnvironment_internalLoadBalancerAndWhitelistedIpRanges(data acceptance.TestData) string {
template := testAccAzureRMAppServiceEnvironment_template(data)
return fmt.Sprintf(`
%s
resource "azurerm_app_service_environment" "test" {
name = "acctest-ase-%d"
subnet_id = azurerm_subnet.ase.id
pricing_tier = "I1"
front_end_scale_factor = 5
internal_load_balancing_mode = "Web, Publishing"
user_whitelisted_ip_ranges = ["11.22.33.44/32", "55.66.77.0/24"]
}
`, template, data.RandomInteger)
}
13 changes: 7 additions & 6 deletions website/docs/r/app_service_environment.html.markdown
Expand Up @@ -41,11 +41,12 @@ resource "azurerm_subnet" "gateway" {
}
resource "azurerm_app_service_environment" "example" {
name = "example-ase"
subnet_id = azurerm_subnet.ase.id
pricing_tier = "I2"
front_end_scale_factor = 10
user_whitelisted_ip_ranges = ["11.22.33.44/32", "55.66.77.0/24"]
name = "example-ase"
subnet_id = azurerm_subnet.ase.id
pricing_tier = "I2"
front_end_scale_factor = 10
internal_load_balancing_mode = "Web, Publishing"
user_whitelisted_ip_ranges = ["11.22.33.44/32", "55.66.77.0/24"]
}
```
Expand All @@ -58,7 +59,7 @@ resource "azurerm_app_service_environment" "example" {

~> **NOTE** a /24 or larger CIDR is required. Once associated with an ASE this size cannot be changed.

* `internal_load_balancing_mode` - (Optional) Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values are `None`, `Web` and `Publishing`. Defaults to `None`.
* `internal_load_balancing_mode` - (Optional) Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values are `None`, `Web`, `Publishing` and combined value `"Web, Publishing"`. Defaults to `None`.

* `pricing_tier` - (Optional) Pricing tier for the front end instances. Possible values are `I1`, `I2` and `I3`. Defaults to `I1`.

Expand Down

0 comments on commit e47be41

Please sign in to comment.