avm-ptn-cicd-agents-and-runners
Azure/avm-ptn-cicd-agents-and-runners/azurerm
Terraform Azure Verified Pattern Module for CI CD Agents and Runners
Azure Verified Module for CI/CD Agents and Runners This module deploys self-hosted Azure DevOps Agents and Github Runners with support for both Personal Access Token (PAT) and User Assigned Managed Identity (UAMI) authentication. Features - Deploys Azure DevOps Agents with PAT or UAMI authentication - Deploys Github Runners with PAT or GitHub App authentication - Supports Azure Container Apps with KEDA auto scaling - Supports Azure Container Instances - Supports public or private networking - Creates all required Azure resources or use existing ones - No PAT token management required with UAMI authentication Authentication Methods Azure DevOps: PAT (token-based) or UAMI (identity-based, no tokens required) GitHub: PAT (token-based) or GitHub App (app-based) Prerequisites for UAMI Authentic
| Name | Type | Description | Default |
|---|---|---|---|
| version_control_system_organization | string | The version control system organization to deploy the agents too. | required |
| location | string | Azure region where the resource should be deployed. | required |
| postfix | string | A postfix used to build default names if no name has been supplied for a specifi | required |
| custom_container_registry_id | string | The id of the container registry to use if `container_registry_creation_enabled` | null |
| custom_container_registry_password | string | The password of the container registry to use if `container_registry_creation_en | null |
| default_image_registry_dockerfile_path | string | The default image registry Dockerfile path to use if no custom image is provided | "dockerfile" |
| version_control_system_placeholder_agent_name | string | The version control system placeholder agent name. | null |
| container_registry_private_endpoint_subnet_id | string | The ID of a pre-existing subnet to use. Required if `virtual_network_creation_en | null |
| container_registry_subnet_cidr_size | number | The CIDR size for the container registry subnet. | 29 |
| public_ip_creation_enabled | bool | Whether or not to create a public IP. | true |
| container_app_environment_name | string | The name of the Container App Environment. Only required if `container_app_envir | null |
| container_instance_container_cpu | number | The CPU value for the container instance | 2 |
| container_instance_container_cpu_limit | number | The CPU limit value for the container instance | 2 |
| use_private_networking | bool | Whether or not to use private networking for the container registry. | true |
| user_assigned_managed_identity_principal_id | string | The principal id of the user assigned managed identity. Only required if `user_a | null |
| version_control_system_runner_group | string | The runner group to add the runner to. | null |
| container_app_environment_id | string | The resource id of the Container App Environment. Only required if `container_ap | null |
| container_app_min_execution_count | number | The minimum number of executions (ADO jobs) to spawn per polling interval. | 0 |
| container_app_replica_retry_limit | number | The number of times to retry the runner Container Apps job. | 3 |
| container_instance_container_memory | number | The memory value for the container instance | 4 |
| container_instance_sensitive_environment_variables | set(object({ name = strin | List of additional sensitive environment variables to pass to the container. | [] |
| version_control_system_personal_access_token | string | The personal access token for the version control system. Required when authenti | null |
| container_app_subnet_address_prefix | string | The address prefix for the Container App Environment. Either subnet_id or subnet | null |
| … and 10 more inputs | |||
placeholder_job_resource_id — The resource id of the placeholder container app job.user_assigned_managed_identity_client_id — The client id of the user assigned managed identity.user_assigned_managed_identity_id — The resource id of the user assigned managed identity.container_instance_names — The names of the container instances.container_registry_login_server — The container registry login server.private_dns_zone_subnet_resource_id — The private dns zone id of the container registry.user_assigned_managed_identity_principal_id — The principal id of the user assigned managed identity.virtual_network_resource_id — The virtual network resource id.container_app_subnet_resource_id — The subnet id of the container app job.container_instance_resource_ids — The resource ids of the container instances.container_registry_name — The container registry name.container_registry_resource_id — The container registry resource id.placeholder_job_name — The name of the placeholder contaienr app job.resource_id — The resource id of the container app environment.virtual_network_name — The virtual network name.job_name — The name of the container app job.job_resource_id — The resource id of the container app job.name — The name of the container app environment.