https://github.com/data-platform-hq/terraform-azuredevops-vmss-pool
Terraform module for creation of Azure DevOps VMSS agent pool
https://github.com/data-platform-hq/terraform-azuredevops-vmss-pool
azure-devops azure-devops-agent azurerm terraform-module
Last synced: 2 months ago
JSON representation
Terraform module for creation of Azure DevOps VMSS agent pool
- Host: GitHub
- URL: https://github.com/data-platform-hq/terraform-azuredevops-vmss-pool
- Owner: data-platform-hq
- License: apache-2.0
- Created: 2023-11-28T20:15:48.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-22T08:55:43.000Z (about 1 year ago)
- Last Synced: 2024-02-22T09:46:49.700Z (about 1 year ago)
- Topics: azure-devops, azure-devops-agent, azurerm, terraform-module
- Language: HCL
- Homepage: https://registry.terraform.io/modules/data-platform-hq/vmss-pool/azuredevops/latest
- Size: 37.1 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Azure Devops VMSS Elastic Pool Terraform module
Terraform module for creation Azure Devops VMSS Elastic Pool## Usage
```hcl
data "azurerm_subnet" "example" {
name = "example-name"
virtual_network_name = "example-vnet-name"
resource_group_name = "example-rg"
}module "ado_vmss_agent_pool" {
source = "data-platform-hq/vmss-pool/azuredevops"
version = "~> 1.0"vm_scale_set_name = "example-vm-scale-set"
location = "eastus"
resource_group = "example-rg"
subnet_id = data.azurerm_subnet.example.id
ado_project_name = "datahq"
ado_service_connection_azurerm_name = "example-ado-service-connection-name"
ado_vmss_pool_name = "example-ado-vmss-pool-name"
}
```## Requirements
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0.0 |
| [azuredevops](#requirement\_azuredevops) | >= 0.10.0 |
| [azurerm](#requirement\_azurerm) | >= 4.0.1 |
| [tls](#requirement\_tls) | >= 4.0.5 |## Providers
| Name | Version |
|------|---------|
| [azuredevops](#provider\_azuredevops) | >= 0.10.0 |
| [tls](#provider\_tls) | >= 4.0.5 |## Modules
| Name | Source | Version |
|------|--------|---------|
| [vmss](#module\_vmss) | data-platform-hq/vmss/azurerm | 1.3.0 |## Resources
| Name | Type |
|------|------|
| [azuredevops_agent_queue.this](https://registry.terraform.io/providers/microsoft/azuredevops/latest/docs/resources/agent_queue) | resource |
| [azuredevops_elastic_pool.this](https://registry.terraform.io/providers/microsoft/azuredevops/latest/docs/resources/elastic_pool) | resource |
| [azuredevops_pipeline_authorization.this](https://registry.terraform.io/providers/microsoft/azuredevops/latest/docs/resources/pipeline_authorization) | resource |
| [tls_private_key.this](https://registry.terraform.io/providers/hashicorp/tls/latest/docs/resources/private_key) | resource |
| [azuredevops_project.this](https://registry.terraform.io/providers/microsoft/azuredevops/latest/docs/data-sources/project) | data source |
| [azuredevops_serviceendpoint_azurerm.this](https://registry.terraform.io/providers/microsoft/azuredevops/latest/docs/data-sources/serviceendpoint_azurerm) | data source |## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [ado\_project\_name](#input\_ado\_project\_name) | Target Azure DevOps Project name where VMSS agent pool would be provisioned | `string` | n/a | yes |
| [ado\_service\_connection\_azurerm\_name](#input\_ado\_service\_connection\_azurerm\_name) | Name of existing Azure DevOps Service Connection AzureRM that points to Azure Subscription with VMSS used in agent pool | `string` | n/a | yes |
| [ado\_vmss\_pool\_configuration](#input\_ado\_vmss\_pool\_configuration) | Object with configuration options for Azure DevOps VMSS agent pool |object({| `{}` | no |
desired_idle = optional(number, 0)
max_capacity = optional(number, 3)
time_to_live_minutes = optional(number, 30)
recycle_after_each_use = optional(bool, false)
})
| [ado\_vmss\_pool\_name](#input\_ado\_vmss\_pool\_name) | Given name to Azure DevOps VMSS agent pool | `string` | n/a | yes |
| [ado\_vmss\_public\_ip\_prefix\_enabled](#input\_ado\_vmss\_public\_ip\_prefix\_enabled) | Boolean flag that determines whether Public IP Prefix is assigned to VM Scale Sets | `bool` | `false` | no |
| [analytics\_workspace\_id](#input\_analytics\_workspace\_id) | Resource ID of Log Analytics Workspace | `string` | `null` | no |
| [create\_ado\_resources](#input\_create\_ado\_resources) | Boolean flag that determines whether ADO resources will be created | `bool` | `true` | no |
| [drc\_datasource\_name](#input\_drc\_datasource\_name) | Datasource syslog name | `string` | `"datasource-syslog"` | no |
| [drc\_enabled](#input\_drc\_enabled) | Enable data collection rule. var.analytics\_workspace\_id must be provided | `bool` | `false` | no |
| [drc\_facility\_names](#input\_drc\_facility\_names) | List of Facility names | `list(string)` |[| no |
"daemon",
"syslog",
"user"
]
| [drc\_log\_levels](#input\_drc\_log\_levels) | List of Log levels | `list(string)` |[| no |
"Debug"
]
| [identity\_ids](#input\_identity\_ids) | List of user assigned identity IDs | `list(string)` | `null` | no |
| [location](#input\_location) | The Azure Region in which all resources in this example should be created. | `string` | n/a | yes |
| [resource\_group](#input\_resource\_group) | The name of the resource group. | `string` | n/a | yes |
| [scale\_set\_configuration](#input\_scale\_set\_configuration) | Configuration options for linux virtual machine scale set |object({|
sku = optional(string)
instances = optional(string)
admin_username = optional(string)
admin_password = optional(string)
disable_password_authentication = optional(bool)
priority = optional(string)
overprovision = optional(bool)
single_placement_group = optional(bool)
upgrade_mode = optional(string)
enable_ip_forwarding_interface = optional(bool)
domain_name_label = optional(string)
lb_backend_address_pool_ids = optional(list(string))
}){| no |
"instances": "0"
}
| [subnet\_id](#input\_subnet\_id) | Subnet where VM Scale Sets would be provisioned | `string` | n/a | yes |
| [vm\_scale\_set\_name](#input\_vm\_scale\_set\_name) | VM Scale Sets name | `string` | n/a | yes |## Outputs
| Name | Description |
|------|-------------|
| [ado\_elastic\_pool\_name](#output\_ado\_elastic\_pool\_name) | Azure DevOps VMSS pool name |
| [public\_ip\_prefix](#output\_public\_ip\_prefix) | Public IP Address Prefix CIDR |
| [tls\_key](#output\_tls\_key) | SSH Key for VMSS authorization |
| [vmss\_id](#output\_vmss\_id) | VM Scale Sets id |## License
Apache 2 Licensed. For more information please see [LICENSE](https://github.com/data-platform-hq/terraform-azuredevops-vmss-pool/tree/master/LICENSE)