Skip to content

launchbynttdata/tf-azurerm-module_primitive-container_app_environment

Repository files navigation

tf-azurerm-module_primitive-container_app_environment

License License: CC BY-NC-ND 4.0

Overview

A Container App Environment. This is a building block for use with Container Apps and Container App Jobs.

Local Development and Testing

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
  • asdf or mise
  • 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

Requirements

Name Version
terraform ~> 1.0
azurerm ~> 3.117

Modules

No modules.

Resources

Name Type
azurerm_container_app_environment.environment resource

Inputs

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({
name = string
workload_profile_type = string
maximum_count = optional(number)
minimum_count = optional(number)
}))
[] 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

Outputs

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published