diff --git a/README.md b/README.md index 1b1a08ea..d2d7c245 100644 --- a/README.md +++ b/README.md @@ -211,7 +211,7 @@ The following sections are generated by [terraform-docs](https://github.com/terr |---------------------------------------------------------------------------|------------------| | [terraform](#requirement\_terraform) | >= 1.3 | | [azapi](#requirement\_azapi) | >= 1.4.0, < 2.0 | -| [azurerm](#requirement\_azurerm) | >= 3.51.0, < 4.0 | +| [azurerm](#requirement\_azurerm) | >= 3.69.0, < 4.0 | | [null](#requirement\_null) | >= 3.0 | | [tls](#requirement\_tls) | >= 3.1 | @@ -220,7 +220,7 @@ The following sections are generated by [terraform-docs](https://github.com/terr | Name | Version | |---------------------------------------------------------------|------------------| | [azapi](#provider\_azapi) | >= 1.4.0, < 2.0 | -| [azurerm](#provider\_azurerm) | >= 3.51.0, < 4.0 | +| [azurerm](#provider\_azurerm) | >= 3.69.0, < 4.0 | | [null](#provider\_null) | >= 3.0 | | [tls](#provider\_tls) | >= 3.1 | diff --git a/main.tf b/main.tf index 7bf67cad..121118bc 100644 --- a/main.tf +++ b/main.tf @@ -75,6 +75,7 @@ resource "azurerm_kubernetes_cluster" "main" { ultra_ssd_enabled = var.ultra_ssd_enabled vnet_subnet_id = var.vnet_subnet_id zones = var.agents_availability_zones + snapshot_id = var.snapshot_id dynamic "kubelet_config" { for_each = var.agents_pool_kubelet_configs @@ -174,6 +175,7 @@ resource "azurerm_kubernetes_cluster" "main" { ultra_ssd_enabled = var.ultra_ssd_enabled vnet_subnet_id = var.vnet_subnet_id zones = var.agents_availability_zones + snapshot_id = var.snapshot_id dynamic "kubelet_config" { for_each = var.agents_pool_kubelet_configs @@ -597,6 +599,7 @@ resource "azurerm_kubernetes_cluster_node_pool" "node_pool" { vnet_subnet_id = each.value.vnet_subnet_id workload_runtime = each.value.workload_runtime zones = each.value.zones + snapshot_id = each.value.snapshot_id dynamic "kubelet_config" { for_each = each.value.kubelet_config == null ? [] : ["kubelet_config"] diff --git a/variables.tf b/variables.tf index 8d747a33..10a0fcf4 100644 --- a/variables.tf +++ b/variables.tf @@ -845,6 +845,7 @@ variable "node_pools" { proximity_placement_group_id = optional(string) spot_max_price = optional(number) scale_down_mode = optional(string, "Delete") + snapshot_id = optional(string) ultra_ssd_enabled = optional(bool) vnet_subnet_id = optional(string) upgrade_settings = optional(object({ @@ -942,6 +943,7 @@ variable "node_pools" { proximity_placement_group_id = (Optional) The ID of the Proximity Placement Group where the Virtual Machine Scale Set that powers this Node Pool will be placed. Changing this forces a new resource to be created. When setting `priority` to Spot - you must configure an `eviction_policy`, `spot_max_price` and add the applicable `node_labels` and `node_taints` [as per the Azure Documentation](https://docs.microsoft.com/azure/aks/spot-node-pool). spot_max_price = (Optional) The maximum price you're willing to pay in USD per Virtual Machine. Valid values are `-1` (the current on-demand price for a Virtual Machine) or a positive value with up to five decimal places. Changing this forces a new resource to be created. This field can only be configured when `priority` is set to `Spot`. scale_down_mode = (Optional) Specifies how the node pool should deal with scaled-down nodes. Allowed values are `Delete` and `Deallocate`. Defaults to `Delete`. + snapshot_id = (Optional) The ID of the Snapshot which should be used to create this Node Pool. Changing this forces a new resource to be created. ultra_ssd_enabled = (Optional) Used to specify whether the UltraSSD is enabled in the Node Pool. Defaults to `false`. See [the documentation](https://docs.microsoft.com/azure/aks/use-ultra-disks) for more information. Changing this forces a new resource to be created. vnet_subnet_id = (Optional) The ID of the Subnet where this Node Pool should exist. Changing this forces a new resource to be created. A route table must be configured on this Subnet. upgrade_settings = optional(object({ @@ -1138,6 +1140,12 @@ variable "sku_tier" { } } +variable "snapshot_id" { + type = string + default = null + description = "(Optional) The ID of the Snapshot which should be used to create this default Node Pool. `temporary_name_for_rotation` must be specified when changing this property." +} + variable "storage_profile_blob_driver_enabled" { type = bool default = false diff --git a/versions.tf b/versions.tf index 6131bfd1..642c7c1d 100644 --- a/versions.tf +++ b/versions.tf @@ -8,7 +8,7 @@ terraform { } azurerm = { source = "hashicorp/azurerm" - version = ">= 3.51.0, < 4.0" + version = ">= 3.69.0, < 4.0" } null = { source = "hashicorp/null"