A Container App Environment. This is a building block for use with Container Apps and Container App Jobs.
To set yourself up for local development and testing activities, ensure you have the following software available on your PATH:
- make
- git (ensure your user.name and user.email are configured)
- git-repo
asdformise- python3 (for pre-commit hooks)
You will also need to authenticate to the Cloud Provider. Terraform will use the default credential resolution mechanism, so ensure you are signed on through the CLI.
Clone this repository to your machine and issue the following command:
make configure
This will synchronize supporting repositories into this directory and expose additional targets.
To perform linting actions against the Terraform module and Terratests, issue the following command:
make lint
To provision cloud resources and perform tests against them, issue the following command:
make test
Note that make test causes the creation of some ignored files on your filesystem. This behavior is expected and we want to exclude any state or lockfiles from being pushed to the repository.
These two commands will be utilized in the pipeline and if you cannot run them successfully locally, you are unlikely to see a different result in the pipeline.
For convenience, a target exists that will execute both make lint and make test for you in sequence. Issue the following command to perform a holistic lint and test:
make check
| Name | Version |
|---|---|
| terraform | ~> 1.0 |
| azurerm | ~> 3.117 |
No modules.
| Name | Type |
|---|---|
| azurerm_container_app_environment.environment | resource |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| name | The name of the Container App Environment. Changing this forces a new resource to be created. | string |
n/a | yes |
| resource_group_name | The name of the Resource Group in which to create the Container App Environment. Changing this forces a new resource to be created. | string |
n/a | yes |
| location | Specifies the supported Azure location where the Container App Environment is to exist. Changing this forces a new resource to be created. | string |
n/a | yes |
| dapr_application_insights_connection_string | Application Insights connection string used by Dapr to export Service to Service communication telemetry. Changing this forces a new resource to be created. | string |
null |
no |
| infrastructure_resource_group_name | Name of the platform-managed resource group created for the Managed Environment to host infrastructure resources. Changing this forces a new resource to be created. | string |
null |
no |
| infrastructure_subnet_id | The existing Subnet to use for the Container Apps Control Plane. The subnet must have /21 or larger address space. Changing this forces a new resource to be created. | string |
null |
no |
| internal_load_balancer_enabled | Should the Container Environment operate in Internal Load Balancing Mode? Defaults to false. Can only be enabled if infrastructure_subnet_id is specified. Changing this forces a new resource to be created. |
bool |
null |
no |
| zone_redundancy_enabled | Should the Container App Environment be created with Zone Redundancy enabled? Defaults to false. Can only be enabled if infrastructure_subnet_id is specified. Changing this forces a new resource to be created. |
bool |
null |
no |
| log_analytics_workspace_id | The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to. | string |
null |
no |
| workload_profiles | A list of workload profiles for the Container App Environment. workload_profile_type must be one of 'Consumption', 'D4', 'D8', 'D16', 'D32', 'E4', 'E8', 'E16', or 'E32'. If the type is 'Consumption', the name must also be 'Consumption'. Only one Consumption workload profile is allowed per environment. The default value (an empty list) will result in an environment that is Consumption-only. Changing this forces a new resource to be created. |
list(object({ |
[] |
no |
| mutual_tls_enabled | Should mutual transport layer security (mTLS) be enabled? Defaults to false. | bool |
false |
no |
| tags | Tags to apply to all resources. | map(string) |
{} |
no |
| Name | Description |
|---|---|
| id | The ID of the Container App Environment. |
| name | Name of the Container App Environment. |
| custom_domain_verification_id | The ID of the Custom Domain Verification for this Container App Environment. |
| default_domain | The default, publicly resolvable, name of this Container App Environment. |
| docker_bridge_cidr | The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation. This property only has a value when infrastructure_subnet_id is configured and will be a range within the CIDR of the Subnet. |
| platform_reserved_cidr | The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses. This property only has a value when infrastructure_subnet_id is configured and will be a range within the CIDR of the Subnet. |
| platform_reserved_dns_ip_address | The IP address from the IP range defined by platform_reserved_cidr that is reserved for the internal DNS server. This property only has a value when infrastructure_subnet_id is configured and will be a value within the CIDR of the Subnet. |
| static_ip_address | The static IP address assigned to the Container App Environment. This will be a Public IP unless internal_load_balancer_enabled is set to true, in which case an IP in the Internal Subnet will be reserved. |