Terraform-provider-azurerm: Support for Integration Service Environments

Created on 18 Jun 2020  ยท  9Comments  ยท  Source: terraform-providers/terraform-provider-azurerm

Community Note

  • Please vote on this issue by adding a ๐Ÿ‘ reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Description

Please add support for Integration Service Environment

New or Affected Resource(s)

  • azurerm_integration_service_environment

Potential Terraform Configuration (ARM template)

{
            "type": "Microsoft.Logic/integrationServiceEnvironments",
            "apiVersion": "[parameters('integrationServiceEnvironmentApiVersion')]",
            "name": "[parameters('integrationServiceEnvironmentName')]",
            "location": "[parameters('integrationServiceEnvironmentLocation')]",
            "dependsOn": [
                "Microsoft.Resources/deployments/updateVirtualNetworkSubnetWithDelegation"
            ],
            "tags": "[parameters('tags')]",
            "sku": {
                "name": "[parameters('skuName')]",
                "capacity": "[parameters('skuCapacity')]"
            },
            "properties": {
                "networkConfiguration": {
                    "subnets": "[parameters('subnetResourceIds')]",
                    "accessEndpoint": "[parameters('accessEndpoint')]"
                }
            }
        }

References


https://azure.microsoft.com/nl-nl/blog/announcing-azure-integration-service-environment-for-logic-apps/

documentation new-resource serviclogic

All 9 comments

Once this is created azurerm_logic_app_workflow would need to be updated to support linking to it.

Just wrote specification #7492 and will focus on implementation. Please provide feedback on spec!

Description


Moving specification into this thread.
Support in Terraform for Integration Service Environment (ISE) / Azure Logic Apps
https://docs.microsoft.com/en-us/azure/logic-apps/ise-manage-integration-service-environment
https://docs.microsoft.com/en-us/azure/templates/microsoft.logic/integrationserviceenvironments#IntegrationServiceEnvironmentAccessEndpoint

Please see specification, will also initiate implementation based on the specification discussed and described here. Please provide feedback! Implementation self assigned to me @jbinko . Please assign me.

New or Affected Resource(s)

  • azurerm_integration_service_environment

Potential Terraform Configuration

resource "azurerm_resource_group" "example" {
  name     = "exampleRG1"
  location = "westeurope"
}

resource "azurerm_virtual_network" "example" {
  name                = "example-vnet1"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  address_space       = ["10.0.0.0/22"]
}

resource "azurerm_subnet" "isesubnet1" {
  name                 = "isesubnet1"
  resource_group_name  = azurerm_resource_group.example.name
  virtual_network_name = azurerm_virtual_network.example.name
  address_prefixes     = ["10.0.1.0/26"]

  delegation {
    name = "integrationServiceEnvironments"

    service_delegation {
      name = "Microsoft.Logic/integrationServiceEnvironments"
    }
  }
}

resource "azurerm_subnet" "isesubnet2" {
  name                 = "isesubnet2"
  resource_group_name  = azurerm_resource_group.example.name
  virtual_network_name = azurerm_virtual_network.example.name
  address_prefixes     = ["10.0.1.64/26"]
}

resource "azurerm_subnet" "isesubnet3" {
  name                 = "isesubnet3"
  resource_group_name  = azurerm_resource_group.example.name
  virtual_network_name = azurerm_virtual_network.example.name
  address_prefixes     = ["10.0.1.128/26"]
}

resource "azurerm_subnet" "isesubnet4" {
  name                 = "isesubnet4"
  resource_group_name  = azurerm_resource_group.example.name
  virtual_network_name = azurerm_virtual_network.example.name
  address_prefixes     = ["10.0.1.192/26"]
}

resource "azurerm_integration_service_environment" "example" {
  name                 = "example-ise"
  location             = azurerm_resource_group.example.location
  resource_group_name  = azurerm_resource_group.example.name
  sku_name             = "Developer_0"
  access_endpoint_type = "Internal"
  virtual_network_subnet_ids = [
    azurerm_subnet.isesubnet1.id,
    azurerm_subnet.isesubnet2.id,
    azurerm_subnet.isesubnet3.id,
    azurerm_subnet.isesubnet4.id
  ]
  tags = {
    environment = "development"
  }
}

// sku_name - Developer_0 | Premium_0 | Premium_1 | Premium_2 | Premium_3 | Premium_4 | Premium_5 | Premium_6 | Premium_7 | Premium_8 | Premium_9 | Premium_10 / Optional, defaults to Developer_0 / ForceNew when tier is changed from the other
// access_endpoint_type - Internal | External / Required / ForceNew
// virtual_network_subnet_ids - Exactly four IDs to subnets must be provided / ForceNew

// The following attributes are exported:
// id - The Integration Service Environment ID.
// connector_endpoint_ip_addresses - The list of access endpoint ip addresses of connector.
// connector_outbound_ip_addresses - The list of outgoing ip addresses of connector.
// workflow_endpoint_ip_addresses - The list of access endpoint ip addresses of workflow.
// workflow_outbound_ip_addresses - The list of outgoing ip addresses of workflow.

Branch with support for azurerm_integration_service_environment resource is stored in github/jbinko

Update: 07/27/2020 - Based on the feedback changing the spec. Capacity will not be used directly. sku_name will contain tier name and capacity. Effectively merging sku and capacity all together. Optional, defaults to Developer_0

@jbinko Need any help finalizing this?

@jbinko - thanks for working on this! took a quick look at your branch and loosk pretty good! feel free to open a PR so we can give it a proper review ๐Ÿ™‚

Just published PR. @favoretti , @katbyte thank you for interest. I'll be happy if you can do review and/or bring new ideas.

Based on the feedback changing the spec. Capacity will not be used directly. sku_name will contain tier name and capacity. Effectively merging sku and capacity all together. See changed spec above.

This has been released in version 2.23.0 of the provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. As an example:

provider "azurerm" {
    version = "~> 2.23.0"
}
# ... other configuration ...

I'm going to lock this issue because it has been closed for _30 days_ โณ. This helps our maintainers find and focus on the active issues.

If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. If you feel I made an error ๐Ÿค– ๐Ÿ™‰ , please reach out to my human friends ๐Ÿ‘‰ [email protected]. Thanks!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

titilambert picture titilambert  ยท  35Comments

tombuildsstuff picture tombuildsstuff  ยท  89Comments

mjyeaney picture mjyeaney  ยท  34Comments

pindey picture pindey  ยท  35Comments

srusru picture srusru  ยท  44Comments