Azure / terraform-azurerm-avm-res-app-managedenvironment

AVM Terraform module for Container Apps Managed Environments
MIT License
5 stars 5 forks source link

terraform-azurerm-avm-res-app-managedenvironment

Module to deploy Container Apps Managed Environments in Azure.

-> Major version Zero (0.y.z) is for initial development. Anything MAY change at any time. A module SHOULD NOT be considered stable till at least it is major version one (1.0.0) or greater. Changes will always be via new versions being published and no changes will be made to existing published versions. For more details please go to https://semver.org/

Requirements

The following requirements are needed by this module:

Providers

The following providers are used by this module:

Resources

The following resources are used by this module:

Required Inputs

The following input variables are required:

name

Description: The name of the Container Apps Managed Environment.

Type: string

resource_group_name

Description: (Required) The name of the resource group in which the Container App Environment is to be created. Changing this forces a new resource to be created.

Type: string

Optional Inputs

The following input variables are optional (have default values):

custom_domain_certificate_password

Description: Certificate password for custom domain.

Type: string

Default: null

custom_domain_dns_suffix

Description: DNS suffix for custom domain.

Type: string

Default: null

dapr_application_insights_connection_string

Description: Application Insights connection string used by Dapr to export Service to Service communication telemetry.

Type: string

Default: null

dapr_components

Description: - component_type - (Required) The Dapr Component Type. For example state.azure.blobstorage. Changing this forces a new resource to be created.


metadata block supports the following:


secret block supports the following:


timeouts block supports the following:

Type:

map(object({
    component_type         = string
    ignore_errors          = optional(bool, true)
    init_timeout           = optional(string)
    secret_store_component = optional(string)
    scopes                 = optional(list(string))
    version                = string
    metadata = optional(list(object({
      name        = string
      secret_name = optional(string)
      value       = optional(string)
    })))
    secret = optional(set(object({
      name  = string
      value = string
    })))
    timeouts = optional(object({
      create = optional(string)
      delete = optional(string)
      read   = optional(string)
    }))
  }))

Default: {}

diagnostic_settings

Description: A map of diagnostic settings to create on the Key Vault. The map key is deliberately arbitrary to avoid issues where map keys maybe unknown at plan time.

Type:

map(object({
    name                                     = optional(string, null)
    log_categories                           = optional(set(string), [])
    log_groups                               = optional(set(string), ["allLogs"])
    metric_categories                        = optional(set(string), ["AllMetrics"])
    log_analytics_destination_type           = optional(string, "Dedicated")
    workspace_resource_id                    = optional(string, null)
    storage_account_resource_id              = optional(string, null)
    event_hub_authorization_rule_resource_id = optional(string, null)
    event_hub_name                           = optional(string, null)
    marketplace_partner_resource_id          = optional(string, null)
  }))

Default: {}

enable_telemetry

Description: This variable controls whether or not telemetry is enabled for the module.
For more information see https://aka.ms/avm/telemetryinfo.
If it is set to false, then no telemetry will be collected.

Type: bool

Default: true

infrastructure_resource_group_name

Description: Name of the platform-managed resource group created for the Managed Environment to host infrastructure resources.
If a subnet ID is provided, this resource group will be created in the same subscription as the subnet.
If not specified, then one will be generated automatically, in the form ME_<app_managed_environment_name>_<resource_group>_<location>.

Type: string

Default: null

infrastructure_subnet_id

Description: The existing Subnet to use for the Container Apps Control Plane. NOTE: The Subnet must have a /21 or larger address space.

Type: string

Default: null

internal_load_balancer_enabled

Description: Should the Container Environment operate in Internal Load Balancing Mode? Defaults to false. Note: can only be set to true if infrastructure_subnet_id is specified.

Type: bool

Default: false

location

Description: Azure region where the resource should be deployed. If null, the location will be inferred from the resource group location.

Type: string

Default: null

lock

Description: Controls the Resource Lock configuration for this resource. The following properties can be specified:

Type:

object({
    kind = string
    name = optional(string, null)
  })

Default: null

log_analytics_workspace_customer_id

Description: The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to.

Type: string

Default: null

log_analytics_workspace_destination

Description: Destination for Log Analytics (options: 'log-analytics', 'azuremonitor', 'none').

Type: string

Default: "log-analytics"

log_analytics_workspace_primary_shared_key

Description: Primary shared key for Log Analytics.

Type: string

Default: null

peer_authentication_enabled

Description: Enable peer authentication (Mutual TLS).

Type: bool

Default: false

role_assignments

Description: A map of role assignments to create on this resource. The map key is deliberately arbitrary to avoid issues where map keys maybe unknown at plan time.

Note: only set skip_service_principal_aad_check to true if you are assigning a role to a service principal.

Type:

map(object({
    role_definition_id_or_name             = string
    principal_id                           = string
    description                            = optional(string, null)
    skip_service_principal_aad_check       = optional(bool, false)
    condition                              = optional(string, null)
    condition_version                      = optional(string, null)
    delegated_managed_identity_resource_id = optional(string, null)
  }))

Default: {}

storages

Description: - access_key - (Required) The Storage Account Access Key.


timeouts block supports the following:

Type:

map(object({
    access_key   = string
    access_mode  = string
    account_name = string
    share_name   = string
    timeouts = optional(object({
      create = optional(string)
      delete = optional(string)
      read   = optional(string)
    }))
  }))

Default: {}

tags

Description: (Optional) A mapping of tags to assign to the resource.

Type: map(string)

Default: null

timeouts

Description: - create - (Defaults to 30 minutes) Used when creating the Container App Environment.

Type:

object({
    create = optional(string)
    delete = optional(string)
    read   = optional(string)
  })

Default: null

workload_profile

Description:
This lists the workload profiles that will be configured for the Managed Environment.
This is in addition to the default Consumpion Plan workload profile.

Type:

set(object({
    maximum_count         = optional(number)
    minimum_count         = optional(number)
    name                  = string
    workload_profile_type = string
  }))

Default: []

zone_redundancy_enabled

Description: (Optional) Should the Container App Environment be created with Zone Redundancy enabled? Defaults to false. Changing this forces a new resource to be created.

Type: bool

Default: true

Outputs

The following outputs are exported:

dapr_components

Description: A map of dapr components connected to this environment. The map key is the supplied input to var.storages. The map value is the azurerm-formatted version of the entire dapr_components resource.

id

Description: The ID of the resource.

name

Description: The name of the resource

resource

Description: The Container Apps Managed Environment resource.

storages

Description: A map of storage shares connected to this environment. The map key is the supplied input to var.storages. The map value is the azurerm-formatted version of the entire storage shares resource.

Modules

No modules.

Data Collection

The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft’s privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.