@@ -77,6 +77,8 @@ type agentClusterInstallInstallConfigOverrides struct {
7777 Capabilities * types.Capabilities `json:"capabilities,omitempty"`
7878 // AdditionalTrustBundle must be set here when mirroring not configured
7979 AdditionalTrustBundle string `json:"additionalTrustBundle,omitempty"`
80+ // Allow override of network type
81+ Networking * types.Networking `json:"networking,omitempty"`
8082}
8183
8284var _ asset.WritableAsset = (* AgentClusterInstall )(nil )
@@ -190,7 +192,11 @@ func (a *AgentClusterInstall) Generate(dependencies asset.Parents) error {
190192 agentClusterInstall .Spec .IngressVIP = installConfig .Config .Platform .VSphere .IngressVIPs [0 ]
191193 }
192194
193- setNetworkType (agentClusterInstall , installConfig .Config , "NetworkType is not specified in InstallConfig." )
195+ networkOverridden := setNetworkType (agentClusterInstall , installConfig .Config , "NetworkType is not specified in InstallConfig." )
196+ if networkOverridden {
197+ icOverridden = true
198+ icOverrides .Networking = installConfig .Config .Networking
199+ }
194200
195201 if installConfig .Config .Capabilities != nil {
196202 icOverrides .Capabilities = installConfig .Config .Capabilities
@@ -296,23 +302,29 @@ func (a *AgentClusterInstall) finish() error {
296302}
297303
298304// Sets the default network type to OVNKubernetes if it is unspecified in the
299- // AgentClusterInstall or InstallConfig
305+ // AgentClusterInstall or InstallConfig.
300306func setNetworkType (aci * hiveext.AgentClusterInstall , installConfig * types.InstallConfig ,
301- warningMessage string ) {
302-
307+ warningMessage string ) bool {
303308 if aci .Spec .Networking .NetworkType != "" {
304- return
309+ return false
305310 }
306311
307312 if installConfig != nil && installConfig .Networking != nil &&
308313 installConfig .Networking .NetworkType != "" {
309- aci .Spec .Networking .NetworkType = installConfig .NetworkType
310- return
314+ if installConfig .Networking .NetworkType == string (operv1 .NetworkTypeOVNKubernetes ) || installConfig .Networking .NetworkType == string (operv1 .NetworkTypeOpenShiftSDN ) {
315+ aci .Spec .Networking .NetworkType = installConfig .NetworkType
316+ return false
317+ }
318+
319+ // Set OVNKubernetes in AgentClusterInstall and return true to indicate InstallConfigOverride should be used
320+ aci .Spec .Networking .NetworkType = string (operv1 .NetworkTypeOVNKubernetes )
321+ return true
311322 }
312323
313324 defaults .SetInstallConfigDefaults (installConfig )
314325 logrus .Infof ("%s Defaulting NetworkType to %s." , warningMessage , installConfig .NetworkType )
315326 aci .Spec .Networking .NetworkType = installConfig .NetworkType
327+ return false
316328}
317329
318330func isIPv6 (ipAddress net.IP ) bool {
0 commit comments