https://github.com/workloads/regional-azure-deployment
Regional Deployment of Azure-specific Resources
https://github.com/workloads/regional-azure-deployment
azure terraform
Last synced: 12 months ago
JSON representation
Regional Deployment of Azure-specific Resources
- Host: GitHub
- URL: https://github.com/workloads/regional-azure-deployment
- Owner: workloads
- Created: 2023-08-14T11:33:58.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-30T08:08:53.000Z (over 1 year ago)
- Last Synced: 2025-01-21T06:11:41.660Z (about 1 year ago)
- Topics: azure, terraform
- Language: HCL
- Homepage: https://go.workloads.io/azure-regional
- Size: 97.7 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Regional Azure-specific Resources
> This repository manages regional, Azure-specific resources for [@workloads](https://github.com/workloads).
## Table of Contents
* [Regional Azure-specific Resources](#regional-azure-specific-resources)
* [Table of Contents](#table-of-contents)
* [Requirements](#requirements)
* [Development](#development)
* [Usage](#usage)
* [Inputs](#inputs)
* [Outputs](#outputs)
* [Notes](#notes)
* [Contributors](#contributors)
* [License](#license)
## Requirements
- Microsoft Azure [Account](https://azure.microsoft.com/free)
- HashiCorp Cloud Platform (HCP) [Account](https://portal.cloud.hashicorp.com/sign-in).
- HCP Terraform [Account](https://app.terraform.io/session)
- HashiCorp Terraform `1.9.x` or [newer](https://developer.hashicorp.com/terraform/downloads)
### Development
For development and testing of this repository:
- `terraform-docs` `0.18.0` or [newer](https://terraform-docs.io/user-guide/installation/)
## Usage
This repository uses a standard Terraform workflow (`init`, `plan`, `apply`).
For more information, including detailed usage guidelines, see the [Terraform documentation](https://developer.hashicorp.com/terraform/cli/commands).
### Inputs
| Name | Description | Type | Required |
|------|-------------|------|:--------:|
| location | Location of Resources. | `string` | yes |
| network_address_space | List of CIDRs for Network Address Space. | `list(string)` | yes |
| resource_name_prefix | Prefix of Resource Names. | `string` | yes |
| ssh_public_key | SSH Key of VM Scale Set Instances. | `string` | yes |
| subnet_address_prefixes | List of Address Prefixes for Subnet. | `list(string)` | yes |
| tags | Tags of (supported) Resources. | `map(string)` | yes |
| tenant_id | Identifier of Azure Tenant. | `string` | yes |
| tfe_organization | Name of HCP Terraform Organization. | `string` | yes |
| tfe_workspace | Name of HCP Terraform Workspace. | `string` | yes |
| vmss_automatic_os_upgrade_policy | Source Image Reference of VM Scale Set Instances. |
object({
disable_automatic_rollback = bool
enable_automatic_os_upgrade = bool
}) | yes |
| vmss_rolling_upgrade_policy | Source Image Reference of VM Scale Set Instances. | object({
cross_zone_upgrades_enabled = bool
max_batch_instance_percent = number
max_unhealthy_instance_percent = number
max_unhealthy_upgraded_instance_percent = number
pause_time_between_batches = string
prioritize_unhealthy_instances_enabled = bool
}) | yes |
| vmss_sku | SKU of VM Scale Set Instances. | `string` | yes |
| vmss_source_image_reference | Source Image Reference of VM Scale Set Instances. | object({
offer = string
publisher = string
sku = string
version = string
}) | yes |
| vmss_user_data | User Data of VM Scale Set Instances. | `string` | yes |
| vmss_username | Username of VM Scale Set Instances. | `string` | yes |
| autoscaling_enabled | Toggle to enable Autoscaling of VM Scale Set Instances. | `bool` | no |
| autoscaling_name | Name of Autoscaling Monitor. | `string` | no |
| autoscaling_profiles | Configuration of Autoscaling Profiles. | list(object({
name = string
capacity = object({
default = number
minimum = number
maximum = number
})
})) | no |
| autoscaling_rules | Configuration of Autoscaling Rules. | list(object({
name = string
operator = string
statistic = string
threshold = number
time_aggregation = string
time_window = string
time_grain = string
scale_action = object({
cooldown = string
direction = string
type = string
value = string
})
})) | no |
| ip_address_allocation_method | Allocation Method of Public IP Addresses. | `string` | no |
| ip_address_sku | SKU of Public IP Addresses. | `string` | no |
| ip_address_sku_tier | SKU Tier of Public IP Addresses. | `string` | no |
| ip_address_version | IP Version to use for Public IP addresses. Must be `IPv4` if Allocation Method is `Static`. | `string` | no |
| load_balancer_backend_address_pool_name | Name of Load Balancer Backend Address Pool | `string` | no |
| load_balancer_frontend_ip_name | Name of the Frontend IP Address of Load Balancer Resources. | `string` | no |
| load_balancer_rules | List of Rules for Load Balancer. | map(object({
backend_port = number
frontend_port = number
interval = number
name = string
protocol = string
})) | no |
| load_balancer_sku | SKU of Load Balancer Resources. | `string` | no |
| load_balancer_sku_tier | SKU Tier of Load Balancer Resources. | `string` | no |
| network_dns_servers | List of IP Addresses for Network DNS Servers. | `list(string)` | no |
| storage_account_kind | Kind of Storage Account for Boot Diagnostics. | `string` | no |
| storage_account_name | Name of Storage Account for Boot Diagnostics. | `string` | no |
| storage_account_replication_type | Replication Type of Storage Account for Boot Diagnostics. | `string` | no |
| storage_account_tier | Tier of Storage Account for Boot Diagnostics. | `string` | no |
| subscription_id | Identifier of Azure Subscription. | `string` | no |
| vmms_network_interface | Configuration of Network Interface for VM Scale Set Instances. | object({
name = string
primary = bool
enable_accelerated_networking = bool
}) | no |
| vmss_additional_caps_ultra_ssd_enabled | Toggle to enable Ultra SSD Support (additional capability) for VM Scale Set Instances. | `bool` | no |
| vmss_disable_password_authentication | Toggle to Disable Password Authentication of VM Scale Set Instances. | `bool` | no |
| vmss_do_not_run_extensions_on_overprovisioned_machines | Toggle to Prevent running of Extensions on over-provisioned VMs for VM Scale Set Instances. | `bool` | no |
| vmss_eviction_policy | Eviction Policy of VM Scale Set Instances. | `string` | no |
| vmss_instance_repair | Automatic Repair Grace Period of VM Scale Set Instances. | object({
enabled = bool
grace_period = string
}) | no |
| vmss_instances | Count of VM Scale Set Instances. | `number` | no |
| vmss_ip_configuration | IP Configuration of VM Scale Set Instances. | object({
name = string
primary = bool
}) | no |
| vmss_os_disk_caching | Caching Mode of OS Disk for VM Scale Set Instances. | `string` | no |
| vmss_os_disk_storage_account_type | Storage Account Type of OS Disk for VM Scale Set Instances. | `string` | no |
| vmss_overprovision | Toggle to enable over-provisioning of VM Scale Set VMs. | `bool` | no |
| vmss_priority | Priority of VM Scale Set Instances. | `string` | no |
| vmss_provision_vm_agent | Toggle to enable Provisioning of VM Agent for VM Scale Set Instances. | `bool` | no |
| vmss_public_ip_idle_timeout | Idle Timeout of Public IP Addresses for VM Scale Set Instances. | `number` | no |
| vmss_public_ip_name | Name of Public IP Addresses for VM Scale Set Instances. | `string` | no |
| vmss_termination_notification | Termination Notification of VM Scale Set Instances. | object({
enabled = bool
timeout = string
}) | no |
| vmss_upgrade_mode | Upgrade Mode of VM Scale Set Instances. | `string` | no |
### Outputs
| Name | Description |
|------|-------------|
| azurerm_lb | Exported Attributes for `azurerm_lb.main`. |
| azurerm_lb_backend_address_pool | Exported Attributes for `azurerm_lb_backend_address_pool.main`. |
| azurerm_lb_probe | Exported Attributes for `azurerm_lb_probe.main`. |
| azurerm_linux_virtual_machine_scale_set | Exported Attributes for `azurerm_linux_virtual_machine_scale_set.main`. |
| azurerm_monitor_autoscale_setting | Exported Attributes for `azurerm_monitor_autoscale_setting.main`. |
| azurerm_network_security_group | Exported Attributes for `azurerm_network_security_group.main`. |
| azurerm_public_ip | Exported Attributes for `azurerm_public_ip.main`. |
| azurerm_resource_group | Exported Attributes for `azurerm_resource_group`. |
| azurerm_ssh_public_key | Exported Attributes for `azurerm_ssh_public_key.main`. |
| azurerm_storage_account | Exported Attributes for `azurerm_storage_account`. |
| azurerm_subnet | Exported Attributes for `azurerm_subnet.main`. |
| azurerm_virtual_network | Exported Attributes for `azurerm_virtual_network.main`. |
| azurerm_virtual_network_dns_servers | Exported Attributes for `azurerm_virtual_network_dns_servers.main.` |
| portal_urls | Microsoft Azure Portal URLs. |
## Notes
* Terraform state may contain [sensitive data](https://developer.hashicorp.com/terraform/language/state/sensitive-data). This workspace uses [HCP Terraform](https://developer.hashicorp.com/terraform/cloud-docs) to safely store state, and encrypt the data at rest.
## Contributors
For a list of current (and past) contributors to this repository, see [GitHub](https://github.com/workloads/regional-azure-deployment/graphs/contributors).
## License
Licensed under the Apache License, Version 2.0 (the "License").
You may download a copy of the License at [apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0).
See the License for the specific language governing permissions and limitations under the License.