Skip to content

Commit d2c4c01

Browse files
aboodasfariCopilotCopilot
authored
chore: remove windows annual VHD build inputs (#8540)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1 parent 37b42bd commit d2c4c01

10 files changed

Lines changed: 14 additions & 483 deletions

File tree

.github/workflows/validate-windows-binary-signature.yaml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,3 @@ jobs:
3232
shell: powershell
3333
run: |
3434
./vhdbuilder/packer/test/windows-files-check.ps1 2025
35-
36-
check-files-for-ws23H2:
37-
name: Check for Windows 23H2
38-
runs-on: windows-latest
39-
steps:
40-
- name: Check out repository code
41-
uses: actions/checkout@v6
42-
- name: Run check script for 23H2
43-
shell: powershell
44-
run: |
45-
./vhdbuilder/packer/test/windows-files-check.ps1 23H2

.pipelines/.vsts-vhd-builder-pr-windows.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,6 @@ stages:
7474
# 2022 gen1 is the default, so build that for PRs
7575
build2022containerd: True
7676
build2022containerdgen2: False
77-
# 23H2 gen1 is the default, so build that for PRs
78-
build23H2: True
79-
build23H2gen2: False
8077
# 2025 gen2 is the default, so build that for PRs
8178
build2025: False
8279
build2025gen2: True

.pipelines/.vsts-vhd-builder-release-windows.yaml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,6 @@ parameters:
2525
displayName: Build 2022 containerd Gen 2
2626
type: boolean
2727
default: True
28-
- name: build23H2
29-
displayName: Build 23H2
30-
type: boolean
31-
default: True
32-
- name: build23H2gen2
33-
displayName: Build 23H2 Gen 2
34-
type: boolean
35-
default: True
3628
- name: build2025
3729
displayName: Build 2025
3830
type: boolean
@@ -86,8 +78,6 @@ stages:
8678
buildVmSize: ${{ parameters.buildVmSize }}
8779
build2022containerd: ${{ parameters.build2022containerd }}
8880
build2022containerdgen2: ${{ parameters.build2022containerdgen2 }}
89-
build23H2: ${{ parameters.build23H2 }}
90-
build23H2gen2: ${{ parameters.build23H2gen2 }}
9181
build2025: ${{ parameters.build2025 }}
9282
build2025gen2: ${{ parameters.build2025gen2 }}
9383
skipExtensionCheck: ${{ variables.skipExtensionCheck }}

.pipelines/templates/.build-and-test-windows-vhds-template.yaml

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@ parameters:
55
- name: build2022containerdgen2
66
displayName: Build 2022 containerd Gen 2
77
type: boolean
8-
- name: build23H2
9-
displayName: Build 23H2
10-
type: boolean
11-
- name: build23H2gen2
12-
displayName: Build 23H2 Gen 2
13-
type: boolean
148
- name: build2025
159
displayName: Build 2025
1610
type: boolean
@@ -124,52 +118,6 @@ stages:
124118
csePackageDir: ${{ parameters.csePublishDir }}
125119
cseFileName: ${{ parameters.cseFileName }}
126120

127-
- template: ./.build-and-test-windows-vhd-template.yaml
128-
parameters:
129-
stageName: win_23H2_v1
130-
artifactName: 23H2
131-
imageName: windows-23H2
132-
windowsSku: 23H2
133-
hyperVGeneration: V1
134-
architecture: X86_64
135-
buildVmSize: ${{ parameters.buildVmSize }}
136-
build: ${{ parameters.build23H2 }}
137-
vhddebug: ${{ parameters.vhddebug }}
138-
dryrun: ${{ parameters.dryrun }}
139-
installOpenSshServer: ${{ parameters.installOpenSshServer }}
140-
skipExtensionCheck: ${{ parameters.skipExtensionCheck }}
141-
windowsBaseImageUrl: $(WINDOWS_23H2_BASE_IMAGE_URL)
142-
windowsNanoImageUrl: $(WINDOWS_2022_NANO_IMAGE_URL)
143-
windowsCoreImageUrl: $(WINDOWS_2022_CORE_IMAGE_URL)
144-
windowsContainerImageJsonUrl: ${{ parameters.windowsContainerImageJsonUrl }}
145-
overrideBranch: ${{ parameters.overrideBranch }}
146-
useOverrides: ${{ parameters.useOverrides }}
147-
csePackageDir: ${{ parameters.csePublishDir }}
148-
cseFileName: ${{ parameters.cseFileName }}
149-
150-
- template: ./.build-and-test-windows-vhd-template.yaml
151-
parameters:
152-
stageName: win_23H2_v2
153-
artifactName: 23H2-gen2
154-
imageName: windows-23H2-gen2
155-
windowsSku: 23H2-gen2
156-
hyperVGeneration: V2
157-
architecture: X86_64
158-
buildVmSize: ${{ parameters.buildVmSize }}
159-
build: ${{ parameters.build23H2gen2 }}
160-
vhddebug: ${{ parameters.vhddebug }}
161-
dryrun: ${{ parameters.dryrun }}
162-
installOpenSshServer: ${{ parameters.installOpenSshServer }}
163-
skipExtensionCheck: ${{ parameters.skipExtensionCheck }}
164-
windowsBaseImageUrl: $(WINDOWS_23H2_GEN2_BASE_IMAGE_URL)
165-
windowsNanoImageUrl: $(WINDOWS_2022_NANO_IMAGE_URL)
166-
windowsCoreImageUrl: $(WINDOWS_2022_CORE_IMAGE_URL)
167-
windowsContainerImageJsonUrl: ${{ parameters.windowsContainerImageJsonUrl }}
168-
overrideBranch: ${{ parameters.overrideBranch }}
169-
useOverrides: ${{ parameters.useOverrides }}
170-
csePackageDir: ${{ parameters.csePublishDir }}
171-
cseFileName: ${{ parameters.cseFileName }}
172-
173121
- template: ./.build-and-test-windows-vhd-template.yaml
174122
parameters:
175123
stageName: win_2025_v1

e2e/components/components_test.go

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func TestImagesAreFullySpecified(t *testing.T) {
3131
func TestWs2025Gen2ServerCore(t *testing.T) {
3232
serverCoreVersions := getWindowsContainerImageTags("mcr.microsoft.com/windows/servercore:*", "2025-gen2")
3333
t.Logf("found servercore version %v", serverCoreVersions)
34-
require.Len(t, serverCoreVersions, 4)
34+
require.Len(t, serverCoreVersions, 6)
3535
}
3636

3737
func TestWs2025Gen2Nanoserver(t *testing.T) {
@@ -43,7 +43,7 @@ func TestWs2025Gen2Nanoserver(t *testing.T) {
4343
func TestWs2025ServerCore(t *testing.T) {
4444
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/servercore:*", "2025")
4545
t.Logf("found servercore version %v", serverCoreVersions)
46-
require.Len(t, serverCoreVersions, 4)
46+
require.Len(t, serverCoreVersions, 6)
4747
}
4848

4949
func TestWs2025Nanoserver(t *testing.T) {
@@ -52,34 +52,10 @@ func TestWs2025Nanoserver(t *testing.T) {
5252
require.Len(t, serverCoreVersions, 2)
5353
}
5454

55-
func TestWs23H2ServerCore(t *testing.T) {
56-
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/servercore:*", "23H2")
57-
t.Logf("found servercore version %v", serverCoreVersions)
58-
require.Len(t, serverCoreVersions, 2)
59-
}
60-
61-
func TestWs23H2Nanoserver(t *testing.T) {
62-
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/nanoserver:*", "23H2")
63-
t.Logf("found servercore version %v", serverCoreVersions)
64-
require.Len(t, serverCoreVersions, 1)
65-
}
66-
67-
func TestWs23H2ServerCoreGen2(t *testing.T) {
68-
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/servercore:*", "23H2-gen2")
69-
t.Logf("found servercore version %v", serverCoreVersions)
70-
require.Len(t, serverCoreVersions, 2)
71-
}
72-
73-
func TestWs23H2NanoserverGen2(t *testing.T) {
74-
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/nanoserver:*", "23H2-gen2")
75-
t.Logf("found servercore version %v", serverCoreVersions)
76-
require.Len(t, serverCoreVersions, 1)
77-
}
78-
7955
func TestWs2022ServerCore(t *testing.T) {
8056
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/servercore:*", "2022-containerd")
8157
t.Logf("found servercore version %v", serverCoreVersions)
82-
require.Len(t, serverCoreVersions, 2)
58+
require.Len(t, serverCoreVersions, 3)
8359
}
8460

8561
func TestWs2022Nanoserver(t *testing.T) {
@@ -91,7 +67,7 @@ func TestWs2022Nanoserver(t *testing.T) {
9167
func TestWs2022ServerCoreGen2(t *testing.T) {
9268
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/servercore:*", "2022-containerd-gen2")
9369
t.Logf("found servercore version %v", serverCoreVersions)
94-
require.Len(t, serverCoreVersions, 2)
70+
require.Len(t, serverCoreVersions, 3)
9571
}
9672

9773
func TestWs2022NanoserverGen2(t *testing.T) {
@@ -107,8 +83,6 @@ func TestWindowsImagesHaveServercoreAndNanoserverSpecified(t *testing.T) {
10783
windowsImages := []*config.Image{
10884
config.VHDWindows2022Containerd,
10985
config.VHDWindows2022ContainerdGen2,
110-
config.VHDWindows23H2,
111-
config.VHDWindows23H2Gen2,
11286
config.VHDWindows2025,
11387
config.VHDWindows2025Gen2,
11488
}

e2e/config/vhd.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -291,23 +291,6 @@ var (
291291
Gallery: imageGalleryWindows,
292292
}
293293

294-
VHDWindows23H2 = &Image{
295-
Name: "windows-23H2",
296-
OS: OSWindows,
297-
Arch: "amd64",
298-
Distro: datamodel.AKSWindows23H2,
299-
Gallery: imageGalleryWindows,
300-
UnsupportedGen2: true,
301-
}
302-
303-
VHDWindows23H2Gen2 = &Image{
304-
Name: "windows-23H2-gen2",
305-
OS: OSWindows,
306-
Arch: "amd64",
307-
Distro: datamodel.AKSWindows23H2Gen2,
308-
Gallery: imageGalleryWindows,
309-
}
310-
311294
VHDWindows2025 = &Image{
312295
Name: "windows-2025",
313296
OS: OSWindows,

e2e/scenario_win_test.go

Lines changed: 3 additions & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ import (
1616
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v7"
1717
)
1818

19-
func EmptyBootstrapConfigMutator(_ *Cluster, configuration *datamodel.NodeBootstrappingConfiguration) {}
20-
func EmptyVMConfigMutator(vmss *armcompute.VirtualMachineScaleSet) {}
19+
func EmptyBootstrapConfigMutator(_ *Cluster, configuration *datamodel.NodeBootstrappingConfiguration) {
20+
}
21+
func EmptyVMConfigMutator(vmss *armcompute.VirtualMachineScaleSet) {}
2122

2223
func DualStackConfigMutator(_ *Cluster, configuration *datamodel.NodeBootstrappingConfiguration) {
2324
properties := configuration.ContainerService.Properties
@@ -145,117 +146,6 @@ func Test_Windows2022Gen2AzureOverlayNetworkDualStack(t *testing.T) {
145146
})
146147
}
147148

148-
func Test_Windows23H2AzureNetwork(t *testing.T) {
149-
RunScenario(t, &Scenario{
150-
Description: "Windows Server 23H2 with Azure Network",
151-
Config: Config{
152-
Cluster: ClusterAzureNetwork,
153-
VHD: config.VHDWindows23H2,
154-
VMConfigMutator: EmptyVMConfigMutator,
155-
BootstrapConfigMutator: EmptyBootstrapConfigMutator,
156-
Validator: func(ctx context.Context, s *Scenario) {
157-
ValidateWindowsVersionFromWindowsSettings(ctx, s, "23H2")
158-
ValidateWindowsProductName(ctx, s, "Windows Server 2022 Datacenter")
159-
ValidateWindowsDisplayVersion(ctx, s, "23H2")
160-
ValidateFileHasContent(ctx, s, "/k/kubeletstart.ps1", "--container-runtime=remote")
161-
ValidateWindowsProcessHasCliArguments(ctx, s, "kubelet.exe", []string{"--rotate-certificates=true", "--client-ca-file=c:\\k\\ca.crt"})
162-
ValidateCiliumIsNotRunningWindows(ctx, s)
163-
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
164-
ValidateCollectWindowsLogsScript(ctx, s)
165-
},
166-
},
167-
})
168-
}
169-
170-
func Test_Windows23H2AzureOverlayNetworkDualStack(t *testing.T) {
171-
t.Skip("Dual stack tests are not working yet")
172-
RunScenario(t, &Scenario{
173-
Description: "Windows Server 23H2 with Azure Overlay Network Dual Stack",
174-
Config: Config{
175-
Cluster: ClusterAzureOverlayNetworkDualStack,
176-
VHD: config.VHDWindows23H2,
177-
VMConfigMutator: DualStackVMConfigMutator,
178-
BootstrapConfigMutator: DualStackConfigMutator,
179-
Validator: func(ctx context.Context, s *Scenario) {
180-
ValidateWindowsVersionFromWindowsSettings(ctx, s, "23H2")
181-
ValidateWindowsProductName(ctx, s, "Windows Server 2022 Datacenter")
182-
ValidateWindowsDisplayVersion(ctx, s, "23H2")
183-
ValidateFileHasContent(ctx, s, "/k/kubeletstart.ps1", "--container-runtime=remote")
184-
ValidateWindowsProcessHasCliArguments(ctx, s, "kubelet.exe", []string{"--rotate-certificates=true", "--client-ca-file=c:\\k\\ca.crt"})
185-
ValidateCiliumIsNotRunningWindows(ctx, s)
186-
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
187-
ValidateCollectWindowsLogsScript(ctx, s)
188-
},
189-
},
190-
})
191-
}
192-
193-
func Test_Windows23H2Gen2AzureNetwork(t *testing.T) {
194-
RunScenario(t, &Scenario{
195-
Description: "Windows Server 23H2 with Azure Network - hyperv gen2",
196-
Config: Config{
197-
Cluster: ClusterAzureNetwork,
198-
VHD: config.VHDWindows23H2Gen2,
199-
VMConfigMutator: EmptyVMConfigMutator,
200-
BootstrapConfigMutator: EmptyBootstrapConfigMutator,
201-
Validator: func(ctx context.Context, s *Scenario) {
202-
ValidateWindowsVersionFromWindowsSettings(ctx, s, "23H2-gen2")
203-
ValidateWindowsProductName(ctx, s, "Windows Server 2022 Datacenter")
204-
ValidateWindowsDisplayVersion(ctx, s, "23H2")
205-
ValidateFileHasContent(ctx, s, "/k/kubeletstart.ps1", "--container-runtime=remote")
206-
ValidateWindowsProcessHasCliArguments(ctx, s, "kubelet.exe", []string{"--rotate-certificates=true", "--client-ca-file=c:\\k\\ca.crt"})
207-
ValidateCiliumIsNotRunningWindows(ctx, s)
208-
ValidateFileHasContent(ctx, s, "/AzureData/CustomDataSetupScript.log", "CSEScriptsPackageUrl used for provision is https://packages.aks.azure.com/aks/windows/cse/aks-windows-cse-scripts-current.zip")
209-
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
210-
ValidateCollectWindowsLogsScript(ctx, s)
211-
},
212-
},
213-
})
214-
}
215-
216-
func Test_Windows23H2Gen2AzureOverlayDualStack(t *testing.T) {
217-
t.Skip("Dual stack tests are not working yet")
218-
RunScenario(t, &Scenario{
219-
Description: "Windows Server 23H2 with Azure Overlay Network Dual Stack - hyperv gen2",
220-
Config: Config{
221-
Cluster: ClusterAzureOverlayNetworkDualStack,
222-
VHD: config.VHDWindows23H2Gen2,
223-
VMConfigMutator: DualStackVMConfigMutator,
224-
BootstrapConfigMutator: DualStackConfigMutator,
225-
Validator: func(ctx context.Context, s *Scenario) {
226-
ValidateWindowsVersionFromWindowsSettings(ctx, s, "23H2-gen2")
227-
ValidateWindowsProductName(ctx, s, "Windows Server 2022 Datacenter")
228-
ValidateWindowsDisplayVersion(ctx, s, "23H2")
229-
ValidateFileHasContent(ctx, s, "/k/kubeletstart.ps1", "--container-runtime=remote")
230-
ValidateWindowsProcessHasCliArguments(ctx, s, "kubelet.exe", []string{"--rotate-certificates=true", "--client-ca-file=c:\\k\\ca.crt"})
231-
ValidateCiliumIsNotRunningWindows(ctx, s)
232-
ValidateFileHasContent(ctx, s, "/AzureData/CustomDataSetupScript.log", "CSEScriptsPackageUrl used for provision is https://packages.aks.azure.com/aks/windows/cse/aks-windows-cse-scripts-current.zip")
233-
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
234-
ValidateCollectWindowsLogsScript(ctx, s)
235-
},
236-
},
237-
})
238-
}
239-
240-
func Test_Windows23H2Gen2CachingRegression(t *testing.T) {
241-
RunScenario(t, &Scenario{
242-
Description: "Windows 23H2 VHD built before local cache enabled should still work - overwrite the CSE scripts package URL",
243-
Config: Config{
244-
Cluster: ClusterAzureNetwork,
245-
VHD: config.VHDWindows23H2Gen2,
246-
VMConfigMutator: EmptyVMConfigMutator,
247-
BootstrapConfigMutator: func(_ *Cluster, nbc *datamodel.NodeBootstrappingConfiguration) {
248-
nbc.ContainerService.Properties.WindowsProfile.CseScriptsPackageURL = "https://packages.aks.azure.com/aks/windows/cse/aks-windows-cse-scripts-v0.0.52.zip"
249-
// Secure TLS Bootstrapping isn't supported on this CSE script package version
250-
nbc.SecureTLSBootstrappingConfig.Enabled = false
251-
},
252-
Validator: func(ctx context.Context, s *Scenario) {
253-
ValidateFileHasContent(ctx, s, "/AzureData/CustomDataSetupScript.log", "CSEScriptsPackageUrl used for provision is https://packages.aks.azure.com/aks/windows/cse/aks-windows-cse-scripts-v0.0.52.zip")
254-
},
255-
},
256-
})
257-
}
258-
259149
func Test_Windows2022CachingRegression(t *testing.T) {
260150
RunScenario(t, &Scenario{
261151
Description: "Windows 2022 VHD built before local cache enabled should still work - overwrite the CSE scripts package URL",
@@ -465,53 +355,6 @@ func Test_Windows2022Gen2_k8s_133(t *testing.T) {
465355
},
466356
})
467357
}
468-
func Test_Windows23H2_Cilium2(t *testing.T) {
469-
t.Skip("skipping test for Cilium on Windows 23H2, as it is not supported in production AKS yet")
470-
RunScenario(t, &Scenario{
471-
Description: "Windows Server 2022 with Containerd",
472-
Config: Config{
473-
Cluster: ClusterCiliumNetwork,
474-
VHD: config.VHDWindows23H2Gen2,
475-
VMConfigMutator: EmptyVMConfigMutator,
476-
BootstrapConfigMutator: func(_ *Cluster, configuration *datamodel.NodeBootstrappingConfiguration) {
477-
// cilium is only supported in 1.30 or greater.
478-
configuration.ContainerService.Properties.OrchestratorProfile.OrchestratorVersion = "1.30.9"
479-
configuration.ContainerService.Properties.OrchestratorProfile.KubernetesConfig.EbpfDataplane = datamodel.EbpfDataplane_cilium
480-
},
481-
Validator: func(ctx context.Context, s *Scenario) {
482-
ValidateFileHasContent(ctx, s, "/k/kubeletstart.ps1", "--container-runtime=remote")
483-
ValidateWindowsProcessHasCliArguments(ctx, s, "kubelet.exe", []string{"--rotate-certificates=true", "--client-ca-file=c:\\k\\ca.crt"})
484-
ValidateCiliumIsRunningWindows(ctx, s)
485-
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
486-
ValidateCollectWindowsLogsScript(ctx, s)
487-
},
488-
},
489-
})
490-
}
491-
492-
func Test_Windows23H2Gen2_WindowsCiliumNetworking(t *testing.T) {
493-
RunScenario(t, &Scenario{
494-
Description: "Windows Server 23H2 Gen2 with Windows Cilium Networking (WCN) enabled",
495-
Config: Config{
496-
Cluster: ClusterAzureNetwork,
497-
VHD: config.VHDWindows23H2Gen2,
498-
VMConfigMutator: EmptyVMConfigMutator,
499-
BootstrapConfigMutator: func(_ *Cluster, configuration *datamodel.NodeBootstrappingConfiguration) {
500-
if configuration.AgentPoolProfile.AgentPoolWindowsProfile == nil {
501-
configuration.AgentPoolProfile.AgentPoolWindowsProfile = &datamodel.AgentPoolWindowsProfile{}
502-
}
503-
configuration.AgentPoolProfile.AgentPoolWindowsProfile.NextGenNetworkingEnabled = to.Ptr(true)
504-
configuration.AgentPoolProfile.AgentPoolWindowsProfile.NextGenNetworkingConfig = to.Ptr("")
505-
},
506-
Validator: func(ctx context.Context, s *Scenario) {
507-
ValidateWindowsCiliumIsRunning(ctx, s)
508-
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
509-
ValidateCollectWindowsLogsScript(ctx, s)
510-
},
511-
},
512-
})
513-
}
514-
515358
func Test_Windows2022_McrChinaCloud_Windows(t *testing.T) {
516359
RunScenario(t, &Scenario{
517360
Tags: Tags{

0 commit comments

Comments
 (0)