Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions .github/workflows/validate-windows-binary-signature.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,3 @@ jobs:
shell: powershell
run: |
./vhdbuilder/packer/test/windows-files-check.ps1 2025

check-files-for-ws23H2:
name: Check for Windows 23H2
runs-on: windows-latest
steps:
- name: Check out repository code
uses: actions/checkout@v6
- name: Run check script for 23H2
shell: powershell
run: |
./vhdbuilder/packer/test/windows-files-check.ps1 23H2
3 changes: 0 additions & 3 deletions .pipelines/.vsts-vhd-builder-pr-windows.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,6 @@ stages:
# 2022 gen1 is the default, so build that for PRs
build2022containerd: True
build2022containerdgen2: False
# 23H2 gen1 is the default, so build that for PRs
build23H2: True
build23H2gen2: False
# 2025 gen2 is the default, so build that for PRs
build2025: False
build2025gen2: True
Expand Down
10 changes: 0 additions & 10 deletions .pipelines/.vsts-vhd-builder-release-windows.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,6 @@ parameters:
displayName: Build 2022 containerd Gen 2
type: boolean
default: True
- name: build23H2
displayName: Build 23H2
type: boolean
default: True
- name: build23H2gen2
displayName: Build 23H2 Gen 2
type: boolean
default: True
- name: build2025
displayName: Build 2025
type: boolean
Expand Down Expand Up @@ -86,8 +78,6 @@ stages:
buildVmSize: ${{ parameters.buildVmSize }}
build2022containerd: ${{ parameters.build2022containerd }}
build2022containerdgen2: ${{ parameters.build2022containerdgen2 }}
build23H2: ${{ parameters.build23H2 }}
build23H2gen2: ${{ parameters.build23H2gen2 }}
build2025: ${{ parameters.build2025 }}
build2025gen2: ${{ parameters.build2025gen2 }}
skipExtensionCheck: ${{ variables.skipExtensionCheck }}
Expand Down
52 changes: 0 additions & 52 deletions .pipelines/templates/.build-and-test-windows-vhds-template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@ parameters:
- name: build2022containerdgen2
displayName: Build 2022 containerd Gen 2
type: boolean
- name: build23H2
displayName: Build 23H2
type: boolean
- name: build23H2gen2
displayName: Build 23H2 Gen 2
type: boolean
- name: build2025
displayName: Build 2025
type: boolean
Expand Down Expand Up @@ -124,52 +118,6 @@ stages:
csePackageDir: ${{ parameters.csePublishDir }}
cseFileName: ${{ parameters.cseFileName }}

- template: ./.build-and-test-windows-vhd-template.yaml
parameters:
stageName: win_23H2_v1
artifactName: 23H2
imageName: windows-23H2
windowsSku: 23H2
hyperVGeneration: V1
architecture: X86_64
buildVmSize: ${{ parameters.buildVmSize }}
build: ${{ parameters.build23H2 }}
vhddebug: ${{ parameters.vhddebug }}
dryrun: ${{ parameters.dryrun }}
installOpenSshServer: ${{ parameters.installOpenSshServer }}
skipExtensionCheck: ${{ parameters.skipExtensionCheck }}
windowsBaseImageUrl: $(WINDOWS_23H2_BASE_IMAGE_URL)
windowsNanoImageUrl: $(WINDOWS_2022_NANO_IMAGE_URL)
windowsCoreImageUrl: $(WINDOWS_2022_CORE_IMAGE_URL)
windowsContainerImageJsonUrl: ${{ parameters.windowsContainerImageJsonUrl }}
overrideBranch: ${{ parameters.overrideBranch }}
useOverrides: ${{ parameters.useOverrides }}
csePackageDir: ${{ parameters.csePublishDir }}
cseFileName: ${{ parameters.cseFileName }}

- template: ./.build-and-test-windows-vhd-template.yaml
parameters:
stageName: win_23H2_v2
artifactName: 23H2-gen2
imageName: windows-23H2-gen2
windowsSku: 23H2-gen2
hyperVGeneration: V2
architecture: X86_64
buildVmSize: ${{ parameters.buildVmSize }}
build: ${{ parameters.build23H2gen2 }}
vhddebug: ${{ parameters.vhddebug }}
dryrun: ${{ parameters.dryrun }}
installOpenSshServer: ${{ parameters.installOpenSshServer }}
skipExtensionCheck: ${{ parameters.skipExtensionCheck }}
windowsBaseImageUrl: $(WINDOWS_23H2_GEN2_BASE_IMAGE_URL)
windowsNanoImageUrl: $(WINDOWS_2022_NANO_IMAGE_URL)
windowsCoreImageUrl: $(WINDOWS_2022_CORE_IMAGE_URL)
windowsContainerImageJsonUrl: ${{ parameters.windowsContainerImageJsonUrl }}
overrideBranch: ${{ parameters.overrideBranch }}
useOverrides: ${{ parameters.useOverrides }}
csePackageDir: ${{ parameters.csePublishDir }}
cseFileName: ${{ parameters.cseFileName }}

- template: ./.build-and-test-windows-vhd-template.yaml
parameters:
stageName: win_2025_v1
Expand Down
26 changes: 0 additions & 26 deletions e2e/components/components_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,30 +52,6 @@ func TestWs2025Nanoserver(t *testing.T) {
require.Len(t, serverCoreVersions, 2)
}

func TestWs23H2ServerCore(t *testing.T) {
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/servercore:*", "23H2")
t.Logf("found servercore version %v", serverCoreVersions)
require.Len(t, serverCoreVersions, 2)
}

func TestWs23H2Nanoserver(t *testing.T) {
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/nanoserver:*", "23H2")
t.Logf("found servercore version %v", serverCoreVersions)
require.Len(t, serverCoreVersions, 1)
}

func TestWs23H2ServerCoreGen2(t *testing.T) {
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/servercore:*", "23H2-gen2")
t.Logf("found servercore version %v", serverCoreVersions)
require.Len(t, serverCoreVersions, 2)
}

func TestWs23H2NanoserverGen2(t *testing.T) {
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/nanoserver:*", "23H2-gen2")
t.Logf("found servercore version %v", serverCoreVersions)
require.Len(t, serverCoreVersions, 1)
}

func TestWs2022ServerCore(t *testing.T) {
serverCoreVersions := GetWindowsContainerImages("mcr.microsoft.com/windows/servercore:*", "2022-containerd")
t.Logf("found servercore version %v", serverCoreVersions)
Expand Down Expand Up @@ -107,8 +83,6 @@ func TestWindowsImagesHaveServercoreAndNanoserverSpecified(t *testing.T) {
windowsImages := []*config.Image{
config.VHDWindows2022Containerd,
config.VHDWindows2022ContainerdGen2,
config.VHDWindows23H2,
config.VHDWindows23H2Gen2,
config.VHDWindows2025,
config.VHDWindows2025Gen2,
}
Expand Down
17 changes: 0 additions & 17 deletions e2e/config/vhd.go
Original file line number Diff line number Diff line change
Expand Up @@ -281,23 +281,6 @@ var (
Gallery: imageGalleryWindows,
}

VHDWindows23H2 = &Image{
Name: "windows-23H2",
OS: OSWindows,
Arch: "amd64",
Distro: datamodel.AKSWindows23H2,
Gallery: imageGalleryWindows,
UnsupportedGen2: true,
}

VHDWindows23H2Gen2 = &Image{
Name: "windows-23H2-gen2",
OS: OSWindows,
Arch: "amd64",
Distro: datamodel.AKSWindows23H2Gen2,
Gallery: imageGalleryWindows,
}

VHDWindows2025 = &Image{
Name: "windows-2025",
OS: OSWindows,
Expand Down
163 changes: 3 additions & 160 deletions e2e/scenario_win_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v7"
)

func EmptyBootstrapConfigMutator(_ *Cluster, configuration *datamodel.NodeBootstrappingConfiguration) {}
func EmptyVMConfigMutator(vmss *armcompute.VirtualMachineScaleSet) {}
func EmptyBootstrapConfigMutator(_ *Cluster, configuration *datamodel.NodeBootstrappingConfiguration) {
}
func EmptyVMConfigMutator(vmss *armcompute.VirtualMachineScaleSet) {}

func DualStackConfigMutator(_ *Cluster, configuration *datamodel.NodeBootstrappingConfiguration) {
properties := configuration.ContainerService.Properties
Expand Down Expand Up @@ -145,117 +146,6 @@ func Test_Windows2022Gen2AzureOverlayNetworkDualStack(t *testing.T) {
})
}

func Test_Windows23H2AzureNetwork(t *testing.T) {
RunScenario(t, &Scenario{
Description: "Windows Server 23H2 with Azure Network",
Config: Config{
Cluster: ClusterAzureNetwork,
VHD: config.VHDWindows23H2,
VMConfigMutator: EmptyVMConfigMutator,
BootstrapConfigMutator: EmptyBootstrapConfigMutator,
Validator: func(ctx context.Context, s *Scenario) {
ValidateWindowsVersionFromWindowsSettings(ctx, s, "23H2")
ValidateWindowsProductName(ctx, s, "Windows Server 2022 Datacenter")
ValidateWindowsDisplayVersion(ctx, s, "23H2")
ValidateFileHasContent(ctx, s, "/k/kubeletstart.ps1", "--container-runtime=remote")
ValidateWindowsProcessHasCliArguments(ctx, s, "kubelet.exe", []string{"--rotate-certificates=true", "--client-ca-file=c:\\k\\ca.crt"})
ValidateCiliumIsNotRunningWindows(ctx, s)
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
ValidateCollectWindowsLogsScript(ctx, s)
},
},
})
}

func Test_Windows23H2AzureOverlayNetworkDualStack(t *testing.T) {
t.Skip("Dual stack tests are not working yet")
RunScenario(t, &Scenario{
Description: "Windows Server 23H2 with Azure Overlay Network Dual Stack",
Config: Config{
Cluster: ClusterAzureOverlayNetworkDualStack,
VHD: config.VHDWindows23H2,
VMConfigMutator: DualStackVMConfigMutator,
BootstrapConfigMutator: DualStackConfigMutator,
Validator: func(ctx context.Context, s *Scenario) {
ValidateWindowsVersionFromWindowsSettings(ctx, s, "23H2")
ValidateWindowsProductName(ctx, s, "Windows Server 2022 Datacenter")
ValidateWindowsDisplayVersion(ctx, s, "23H2")
ValidateFileHasContent(ctx, s, "/k/kubeletstart.ps1", "--container-runtime=remote")
ValidateWindowsProcessHasCliArguments(ctx, s, "kubelet.exe", []string{"--rotate-certificates=true", "--client-ca-file=c:\\k\\ca.crt"})
ValidateCiliumIsNotRunningWindows(ctx, s)
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
ValidateCollectWindowsLogsScript(ctx, s)
},
},
})
}

func Test_Windows23H2Gen2AzureNetwork(t *testing.T) {
RunScenario(t, &Scenario{
Description: "Windows Server 23H2 with Azure Network - hyperv gen2",
Config: Config{
Cluster: ClusterAzureNetwork,
VHD: config.VHDWindows23H2Gen2,
VMConfigMutator: EmptyVMConfigMutator,
BootstrapConfigMutator: EmptyBootstrapConfigMutator,
Validator: func(ctx context.Context, s *Scenario) {
ValidateWindowsVersionFromWindowsSettings(ctx, s, "23H2-gen2")
ValidateWindowsProductName(ctx, s, "Windows Server 2022 Datacenter")
ValidateWindowsDisplayVersion(ctx, s, "23H2")
ValidateFileHasContent(ctx, s, "/k/kubeletstart.ps1", "--container-runtime=remote")
ValidateWindowsProcessHasCliArguments(ctx, s, "kubelet.exe", []string{"--rotate-certificates=true", "--client-ca-file=c:\\k\\ca.crt"})
ValidateCiliumIsNotRunningWindows(ctx, s)
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")
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
ValidateCollectWindowsLogsScript(ctx, s)
},
},
})
}

func Test_Windows23H2Gen2AzureOverlayDualStack(t *testing.T) {
t.Skip("Dual stack tests are not working yet")
RunScenario(t, &Scenario{
Description: "Windows Server 23H2 with Azure Overlay Network Dual Stack - hyperv gen2",
Config: Config{
Cluster: ClusterAzureOverlayNetworkDualStack,
VHD: config.VHDWindows23H2Gen2,
VMConfigMutator: DualStackVMConfigMutator,
BootstrapConfigMutator: DualStackConfigMutator,
Validator: func(ctx context.Context, s *Scenario) {
ValidateWindowsVersionFromWindowsSettings(ctx, s, "23H2-gen2")
ValidateWindowsProductName(ctx, s, "Windows Server 2022 Datacenter")
ValidateWindowsDisplayVersion(ctx, s, "23H2")
ValidateFileHasContent(ctx, s, "/k/kubeletstart.ps1", "--container-runtime=remote")
ValidateWindowsProcessHasCliArguments(ctx, s, "kubelet.exe", []string{"--rotate-certificates=true", "--client-ca-file=c:\\k\\ca.crt"})
ValidateCiliumIsNotRunningWindows(ctx, s)
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")
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
ValidateCollectWindowsLogsScript(ctx, s)
},
},
})
}

func Test_Windows23H2Gen2CachingRegression(t *testing.T) {
RunScenario(t, &Scenario{
Description: "Windows 23H2 VHD built before local cache enabled should still work - overwrite the CSE scripts package URL",
Config: Config{
Cluster: ClusterAzureNetwork,
VHD: config.VHDWindows23H2Gen2,
VMConfigMutator: EmptyVMConfigMutator,
BootstrapConfigMutator: func(_ *Cluster, nbc *datamodel.NodeBootstrappingConfiguration) {
nbc.ContainerService.Properties.WindowsProfile.CseScriptsPackageURL = "https://packages.aks.azure.com/aks/windows/cse/aks-windows-cse-scripts-v0.0.52.zip"
// Secure TLS Bootstrapping isn't supported on this CSE script package version
nbc.SecureTLSBootstrappingConfig.Enabled = false
},
Validator: func(ctx context.Context, s *Scenario) {
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")
},
},
})
}

func Test_Windows2022CachingRegression(t *testing.T) {
RunScenario(t, &Scenario{
Description: "Windows 2022 VHD built before local cache enabled should still work - overwrite the CSE scripts package URL",
Expand Down Expand Up @@ -465,53 +355,6 @@ func Test_Windows2022Gen2_k8s_133(t *testing.T) {
},
})
}
func Test_Windows23H2_Cilium2(t *testing.T) {
t.Skip("skipping test for Cilium on Windows 23H2, as it is not supported in production AKS yet")
RunScenario(t, &Scenario{
Description: "Windows Server 2022 with Containerd",
Config: Config{
Cluster: ClusterCiliumNetwork,
VHD: config.VHDWindows23H2Gen2,
VMConfigMutator: EmptyVMConfigMutator,
BootstrapConfigMutator: func(_ *Cluster, configuration *datamodel.NodeBootstrappingConfiguration) {
// cilium is only supported in 1.30 or greater.
configuration.ContainerService.Properties.OrchestratorProfile.OrchestratorVersion = "1.30.9"
configuration.ContainerService.Properties.OrchestratorProfile.KubernetesConfig.EbpfDataplane = datamodel.EbpfDataplane_cilium
},
Validator: func(ctx context.Context, s *Scenario) {
ValidateFileHasContent(ctx, s, "/k/kubeletstart.ps1", "--container-runtime=remote")
ValidateWindowsProcessHasCliArguments(ctx, s, "kubelet.exe", []string{"--rotate-certificates=true", "--client-ca-file=c:\\k\\ca.crt"})
ValidateCiliumIsRunningWindows(ctx, s)
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
ValidateCollectWindowsLogsScript(ctx, s)
},
},
})
}

func Test_Windows23H2Gen2_WindowsCiliumNetworking(t *testing.T) {
RunScenario(t, &Scenario{
Description: "Windows Server 23H2 Gen2 with Windows Cilium Networking (WCN) enabled",
Config: Config{
Cluster: ClusterAzureNetwork,
VHD: config.VHDWindows23H2Gen2,
VMConfigMutator: EmptyVMConfigMutator,
BootstrapConfigMutator: func(_ *Cluster, configuration *datamodel.NodeBootstrappingConfiguration) {
if configuration.AgentPoolProfile.AgentPoolWindowsProfile == nil {
configuration.AgentPoolProfile.AgentPoolWindowsProfile = &datamodel.AgentPoolWindowsProfile{}
}
configuration.AgentPoolProfile.AgentPoolWindowsProfile.NextGenNetworkingEnabled = to.Ptr(true)
configuration.AgentPoolProfile.AgentPoolWindowsProfile.NextGenNetworkingConfig = to.Ptr("")
},
Validator: func(ctx context.Context, s *Scenario) {
ValidateWindowsCiliumIsRunning(ctx, s)
ValidateWindowsSystemServicesRestartConfiguration(ctx, s)
ValidateCollectWindowsLogsScript(ctx, s)
},
},
})
}

func Test_Windows2022_McrChinaCloud_Windows(t *testing.T) {
RunScenario(t, &Scenario{
Tags: Tags{
Expand Down
Loading
Loading