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"