@@ -45,7 +45,7 @@ func New(clientset *clusterinfo.OpenShift, infraStatus *config.InfrastructureSta
4545}
4646
4747// newVSphereMachineProviderSpec returns a vSphereMachineProviderSpec generated from the inputs, or an error
48- func (p * Provider ) newVSphereMachineProviderSpec () (* mapi.VSphereMachineProviderSpec , error ) {
48+ func (p * Provider ) newVSphereMachineProviderSpec (windowsServerVersion windows. ServerVersion ) (* mapi.VSphereMachineProviderSpec , error ) {
4949 existingProviderSpec , err := p .getProviderSpecFromExistingMachineSet ()
5050 if err != nil {
5151 return nil , err
@@ -54,13 +54,20 @@ func (p *Provider) newVSphereMachineProviderSpec() (*mapi.VSphereMachineProvider
5454 existingProviderSpec .Workspace .Server , existingProviderSpec .Network )
5555
5656 // The template is an image which has been properly sysprepped. The image is derived from an environment variable
57- // defined in the job spec.
57+ // defined in the job spec. If not set, default based on Windows Server version.
5858 vmTemplate := os .Getenv ("VM_TEMPLATE" )
5959 if vmTemplate == "" {
60- vmTemplate = "windows-golden-images/windows-server-2022-template-ipv6-disabled"
60+ switch windowsServerVersion {
61+ case windows .Server2022 :
62+ vmTemplate = "windows-golden-images/windows-server-2022-template-ipv6-disabled"
63+ case windows .Server2025 :
64+ vmTemplate = "windows-golden-images/windows-server-2025-template-ipv6-disabled"
65+ default :
66+ return nil , fmt .Errorf ("unsupported Windows Server version: %s" , windowsServerVersion )
67+ }
6168 }
6269
63- log .Printf ("creating machineset based on template %s\n " , vmTemplate )
70+ log .Printf ("creating machineset based on template %s for Windows Server %s \n " , vmTemplate , windowsServerVersion )
6471
6572 return & mapi.VSphereMachineProviderSpec {
6673 TypeMeta : meta.TypeMeta {
@@ -109,13 +116,12 @@ func (p *Provider) getProviderSpecFromExistingMachineSet() (*mapi.VSphereMachine
109116
110117// GenerateMachineSet generates the MachineSet object which is vSphere provider specific
111118func (p * Provider ) GenerateMachineSet (withIgnoreLabel bool , replicas int32 , windowsServerVersion windows.ServerVersion ) (* mapi.MachineSet , error ) {
112- // TODO: (vsphere) add support for Windows Server 2025 when golden image is available for 2025
113- if windowsServerVersion != windows .Server2022 {
119+ if windowsServerVersion != windows .Server2022 && windowsServerVersion != windows .Server2025 {
114120 return nil , fmt .Errorf ("vSphere does not support Windows Server %s" , windowsServerVersion )
115121 }
116122
117123 // create new machine provider spec for deploying Windows node
118- providerSpec , err := p .newVSphereMachineProviderSpec ()
124+ providerSpec , err := p .newVSphereMachineProviderSpec (windowsServerVersion )
119125 if err != nil {
120126 return nil , fmt .Errorf ("failed to create new vSphere machine provider spec: %w" , err )
121127 }
0 commit comments