Skip to content

Commit

Permalink
azurerm_windows_virtual_machine - Support Hotpatch for Windows Serv…
Browse files Browse the repository at this point in the history
…er 2025 (hashicorp#28160)

* Hotpatch support for Windows Server 2025

* fix comment
  • Loading branch information
ms-zhenhua authored Dec 12, 2024
1 parent e04e6eb commit d1ad36f
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@ func resourceOrchestratedVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData,
}

if hotpatchingEnabled {
return fmt.Errorf("'hotpatching_enabled' field is not supported unless you are using one of the following hotpatching enable images, '2022-datacenter-azure-edition', '2022-datacenter-azure-edition-core-smalldisk', '2022-datacenter-azure-edition-hotpatch' or '2022-datacenter-azure-edition-hotpatch-smalldisk'")
return fmt.Errorf("'hotpatching_enabled' field is not supported unless you are using one of the following hotpatching enable images, '2022-datacenter-azure-edition', '2022-datacenter-azure-edition-core-smalldisk', '2022-datacenter-azure-edition-hotpatch', '2022-datacenter-azure-edition-hotpatch-smalldisk', '2025-datacenter-azure-edition', '2025-datacenter-azure-edition-smalldisk', '2025-datacenter-azure-edition-core' or '2025-datacenter-azure-edition-core-smalldisk'")
}
}
}
Expand Down
15 changes: 14 additions & 1 deletion internal/services/compute/shared_schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
package compute

import (
"slices"

"github.com/hashicorp/go-azure-helpers/lang/pointer"
"github.com/hashicorp/go-azure-helpers/resourcemanager/commonids"
"github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema"
Expand Down Expand Up @@ -641,7 +643,18 @@ func isValidHotPatchSourceImageReference(referenceInput []interface{}, imageId s
offer := raw["offer"].(string)
sku := raw["sku"].(string)

if pub == "MicrosoftWindowsServer" && offer == "WindowsServer" && (sku == "2022-datacenter-azure-edition-core" || sku == "2022-datacenter-azure-edition-core-smalldisk" || sku == "2022-datacenter-azure-edition-hotpatch" || sku == "2022-datacenter-azure-edition-hotpatch-smalldisk") {
supportedSkus := []string{
"2022-datacenter-azure-edition-core",
"2022-datacenter-azure-edition-core-smalldisk",
"2022-datacenter-azure-edition-hotpatch",
"2022-datacenter-azure-edition-hotpatch-smalldisk",
"2025-datacenter-azure-edition",
"2025-datacenter-azure-edition-smalldisk",
"2025-datacenter-azure-edition-core",
"2025-datacenter-azure-edition-core-smalldisk",
}

if pub == "MicrosoftWindowsServer" && offer == "WindowsServer" && slices.Contains(supportedSkus, sku) {
return true
}

Expand Down
5 changes: 3 additions & 2 deletions internal/services/compute/windows_virtual_machine_resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -598,7 +598,8 @@ func resourceWindowsVirtualMachineCreate(d *pluginsdk.ResourceData, meta interfa

// hot patching can only be enabled if the patch_mode is set to "AutomaticByPlatform"
// and if the image reference is using one of the following skus:
// 2022-datacenter-azure-edition-core or 2022-datacenter-azure-edition-core-smalldisk
// 2022-datacenter-azure-edition-core, 2022-datacenter-azure-edition-core-smalldisk, 2022-datacenter-azure-edition-hotpatch, 2022-datacenter-azure-edition-hotpatch-smalldisk,
// 2025-datacenter-azure-edition, 2025-datacenter-azure-edition-smalldisk, 2025-datacenter-azure-edition-core, 2025-datacenter-azure-edition-core-smalldisk
if hotPatch {
if patchMode != string(virtualmachines.WindowsVMGuestPatchModeAutomaticByPlatform) {
return fmt.Errorf("%q cannot be set to %q when %q is set to %q", "hotpatching_enabled", "true", "patch_mode", patchMode)
Expand All @@ -613,7 +614,7 @@ func resourceWindowsVirtualMachineCreate(d *pluginsdk.ResourceData, meta interfa
return fmt.Errorf("the %q field is not supported if referencing the image via the %q field", "hotpatching_enabled", "source_image_id")
}

return fmt.Errorf("%q is currently only supported on %q, %q, %q or %q image reference skus", "hotpatching_enabled", "2022-datacenter-azure-edition-core", "2022-datacenter-azure-edition-core-smalldisk", "2022-datacenter-azure-edition-hotpatch", "2022-datacenter-azure-edition-hotpatch-smalldisk")
return fmt.Errorf("%q is currently only supported on %q, %q, %q, %q, %q, %q, %q or %q image reference skus", "hotpatching_enabled", "2022-datacenter-azure-edition-core", "2022-datacenter-azure-edition-core-smalldisk", "2022-datacenter-azure-edition-hotpatch", "2022-datacenter-azure-edition-hotpatch-smalldisk", "2025-datacenter-azure-edition", "2025-datacenter-azure-edition-smalldisk", "2025-datacenter-azure-edition-core", "2025-datacenter-azure-edition-core-smalldisk")
}
}

Expand Down

0 comments on commit d1ad36f

Please sign in to comment.