diff --git a/azure/defaults.go b/azure/defaults.go
index 02e5508fa5c..0b958629457 100644
--- a/azure/defaults.go
+++ b/azure/defaults.go
@@ -52,7 +52,7 @@ const (
// DefaultLinuxGalleryImageName is the default Linux community gallery image definition.
DefaultLinuxGalleryImageName = "capi-ubun2-2404"
// DefaultWindowsGalleryImageName is the default Windows community gallery image definition.
- DefaultWindowsGalleryImageName = "capi-win-2019-containerd"
+ DefaultWindowsGalleryImageName = "capi-win-2025-containerd"
)
const (
@@ -72,7 +72,7 @@ const (
const (
// DefaultWindowsOsAndVersion is the default Windows Server version to use when
// generating default images for Windows nodes.
- DefaultWindowsOsAndVersion = "windows-2019"
+ DefaultWindowsOsAndVersion = "windows-2025"
)
const (
diff --git a/azure/services/virtualmachineimages/images.go b/azure/services/virtualmachineimages/images.go
index 3a6fcac29ff..5b5d6c72614 100644
--- a/azure/services/virtualmachineimages/images.go
+++ b/azure/services/virtualmachineimages/images.go
@@ -106,7 +106,7 @@ func (s *Service) GetDefaultWindowsImage(ctx context.Context, _, k8sVersion, run
if len(match) != 2 {
return nil, errors.Errorf("unsupported osAndVersion %s", osAndVersion)
}
- imageName = strings.Replace(imageName, "2019", match[1], 1)
+ imageName = strings.Replace(imageName, "2025", match[1], 1)
}
// Use the Azure Marketplace for specific older versions, to keep "clusterctl upgrade" from rolling new machines.
diff --git a/docs/book/src/developers/development.md b/docs/book/src/developers/development.md
index 35bf7a1edbc..6aa26d6d001 100644
--- a/docs/book/src/developers/development.md
+++ b/docs/book/src/developers/development.md
@@ -553,7 +553,7 @@ With the following environment variables defined, you can build a CAPZ cluster f
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `E2E_ARGS` | `-kubetest.use-ci-artifacts` |
| `KUBERNETES_VERSION` | `latest` - extract Kubernetes version from https://dl.k8s.io/ci/latest.txt (main's HEAD)
`latest-1.` - extract Kubernetes version from dl.k8s.io/ci/latest-1..txt (release branch's HEAD) |
-| `WINDOWS_SERVER_VERSION` | Optional, can be `windows-2019` (default) or `windows-2022` |
+| `WINDOWS_SERVER_VERSION` | Optional, can be `windows-2025` (default) or `windows-2022` |
| `KUBETEST_WINDOWS_CONFIG` | Default is `upstream-windows.yaml`. CAPZ contains various other configuration recipes in the `test/e2e/data/` directory; you may use any of those by referencing their file names as the value of `KUBETEST_WINDOWS_CONFIG` (e.g., `conformance-fast.yaml`), or you may drop in your own config files into `test/e2e/data/` and reference those. |
| `WINDOWS_CONTAINERD_URL` | Optional, can be any url to a `tar.gz` file containing binaries for containerd in the same format as upstream package |
diff --git a/templates/test/ci/cluster-template-prow-ci-version.yaml b/templates/test/ci/cluster-template-prow-ci-version.yaml
index 9c1fdc31ea8..5bc5d6def4d 100644
--- a/templates/test/ci/cluster-template-prow-ci-version.yaml
+++ b/templates/test/ci/cluster-template-prow-ci-version.yaml
@@ -472,7 +472,7 @@ spec:
marketplace:
offer: capi-windows
publisher: cncf-upstream
- sku: ${WINDOWS_SERVER_VERSION:=windows-2019}-containerd-gen1
+ sku: ${WINDOWS_SERVER_VERSION:=windows-2025}-containerd-gen1
version: latest
osDisk:
diskSizeGB: 128
diff --git a/templates/test/ci/cluster-template-prow-machine-pool-ci-version.yaml b/templates/test/ci/cluster-template-prow-machine-pool-ci-version.yaml
index 5d82db90e72..53df6c02cb5 100644
--- a/templates/test/ci/cluster-template-prow-machine-pool-ci-version.yaml
+++ b/templates/test/ci/cluster-template-prow-machine-pool-ci-version.yaml
@@ -481,7 +481,7 @@ spec:
marketplace:
offer: capi-windows
publisher: cncf-upstream
- sku: ${WINDOWS_SERVER_VERSION:=windows-2019}-containerd-gen1
+ sku: ${WINDOWS_SERVER_VERSION:=windows-2025}-containerd-gen1
version: latest
osDisk:
diskSizeGB: 128
diff --git a/templates/test/ci/prow-ci-version/patches/machine-deployment-ci-version-windows.yaml b/templates/test/ci/prow-ci-version/patches/machine-deployment-ci-version-windows.yaml
index a0e8936019e..1ab7432533b 100644
--- a/templates/test/ci/prow-ci-version/patches/machine-deployment-ci-version-windows.yaml
+++ b/templates/test/ci/prow-ci-version/patches/machine-deployment-ci-version-windows.yaml
@@ -11,7 +11,7 @@ spec:
marketplace:
publisher: cncf-upstream
offer: capi-windows
- sku: ${WINDOWS_SERVER_VERSION:=windows-2019}-containerd-gen1
+ sku: ${WINDOWS_SERVER_VERSION:=windows-2025}-containerd-gen1
version: "latest"
identity: UserAssigned
userAssignedIdentities:
diff --git a/templates/test/ci/prow-machine-pool-ci-version/patches/machine-pool-ci-version-windows.yaml b/templates/test/ci/prow-machine-pool-ci-version/patches/machine-pool-ci-version-windows.yaml
index 07beec81a4c..f9302ccb6b0 100644
--- a/templates/test/ci/prow-machine-pool-ci-version/patches/machine-pool-ci-version-windows.yaml
+++ b/templates/test/ci/prow-machine-pool-ci-version/patches/machine-pool-ci-version-windows.yaml
@@ -11,7 +11,7 @@ spec:
marketplace:
publisher: cncf-upstream
offer: capi-windows
- sku: ${WINDOWS_SERVER_VERSION:=windows-2019}-containerd-gen1
+ sku: ${WINDOWS_SERVER_VERSION:=windows-2025}-containerd-gen1
version: latest
identity: UserAssigned
userAssignedIdentities:
diff --git a/templates/test/dev/cluster-template-custom-builds-load.yaml b/templates/test/dev/cluster-template-custom-builds-load.yaml
index 4a5039fa0a5..02579f76a90 100644
--- a/templates/test/dev/cluster-template-custom-builds-load.yaml
+++ b/templates/test/dev/cluster-template-custom-builds-load.yaml
@@ -427,7 +427,7 @@ spec:
marketplace:
offer: capi-windows
publisher: cncf-upstream
- sku: ${WINDOWS_SERVER_VERSION:=windows-2019}-containerd-gen1
+ sku: ${WINDOWS_SERVER_VERSION:=windows-2025}-containerd-gen1
version: latest
osDisk:
diskSizeGB: 128
diff --git a/templates/test/dev/cluster-template-custom-builds-machine-pool.yaml b/templates/test/dev/cluster-template-custom-builds-machine-pool.yaml
index 8b049d46e3e..49106fc6681 100644
--- a/templates/test/dev/cluster-template-custom-builds-machine-pool.yaml
+++ b/templates/test/dev/cluster-template-custom-builds-machine-pool.yaml
@@ -436,7 +436,7 @@ spec:
marketplace:
offer: capi-windows
publisher: cncf-upstream
- sku: ${WINDOWS_SERVER_VERSION:=windows-2019}-containerd-gen1
+ sku: ${WINDOWS_SERVER_VERSION:=windows-2025}-containerd-gen1
version: latest
osDisk:
diskSizeGB: 128
diff --git a/templates/test/dev/cluster-template-custom-builds.yaml b/templates/test/dev/cluster-template-custom-builds.yaml
index b0621f1aabd..b38aa19d0e0 100644
--- a/templates/test/dev/cluster-template-custom-builds.yaml
+++ b/templates/test/dev/cluster-template-custom-builds.yaml
@@ -421,7 +421,7 @@ spec:
marketplace:
offer: capi-windows
publisher: cncf-upstream
- sku: ${WINDOWS_SERVER_VERSION:=windows-2019}-containerd-gen1
+ sku: ${WINDOWS_SERVER_VERSION:=windows-2025}-containerd-gen1
version: latest
osDisk:
diskSizeGB: 128
diff --git a/templates/test/dev/custom-builds-machine-pool/patches/machine-pool-deployment-pr-version-windows.yaml b/templates/test/dev/custom-builds-machine-pool/patches/machine-pool-deployment-pr-version-windows.yaml
index a18713bbeb2..cd389da115a 100644
--- a/templates/test/dev/custom-builds-machine-pool/patches/machine-pool-deployment-pr-version-windows.yaml
+++ b/templates/test/dev/custom-builds-machine-pool/patches/machine-pool-deployment-pr-version-windows.yaml
@@ -10,5 +10,5 @@ spec:
marketplace:
publisher: cncf-upstream
offer: capi-windows
- sku: ${WINDOWS_SERVER_VERSION:=windows-2019}-containerd-gen1
+ sku: ${WINDOWS_SERVER_VERSION:=windows-2025}-containerd-gen1
version: latest
diff --git a/templates/test/dev/custom-builds/patches/machine-deployment-pr-version-windows.yaml b/templates/test/dev/custom-builds/patches/machine-deployment-pr-version-windows.yaml
index c153570d2eb..c67a34bbee6 100644
--- a/templates/test/dev/custom-builds/patches/machine-deployment-pr-version-windows.yaml
+++ b/templates/test/dev/custom-builds/patches/machine-deployment-pr-version-windows.yaml
@@ -15,5 +15,5 @@ spec:
marketplace:
publisher: cncf-upstream
offer: capi-windows
- sku: ${WINDOWS_SERVER_VERSION:=windows-2019}-containerd-gen1
+ sku: ${WINDOWS_SERVER_VERSION:=windows-2025}-containerd-gen1
version: latest
diff --git a/test/e2e/helpers.go b/test/e2e/helpers.go
index dc7e94bb421..d7bf9d88a7e 100644
--- a/test/e2e/helpers.go
+++ b/test/e2e/helpers.go
@@ -698,7 +698,7 @@ func resolveKubernetesVersions(config *clusterctl.E2EConfig) {
windowsRequired := testWindows != "false"
if windowsRequired {
- windowsVersions := getVersionsInCommunityGallery(context.TODO(), os.Getenv(AzureLocation), capiCommunityGallery, "capi-win-2019-containerd")
+ windowsVersions := getVersionsInCommunityGallery(context.TODO(), os.Getenv(AzureLocation), capiCommunityGallery, "capi-win-2025-containerd")
for k, v := range linuxVersions {
if _, ok := windowsVersions[k]; ok {
versions = append(versions, v)