Skip to content

Commit 3bb7172

Browse files
Merge pull request openshift#7223 from bfournie/network-override
AGENT-624: Allow override of networkType
2 parents ed4b879 + 4119583 commit 3bb7172

File tree

2 files changed

+34
-7
lines changed

2 files changed

+34
-7
lines changed

pkg/asset/agent/manifests/agentclusterinstall.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

8284
var _ 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.
300306
func 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

318330
func isIPv6(ipAddress net.IP) bool {

pkg/asset/agent/manifests/agentclusterinstall_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ func TestAgentClusterInstall_Generate(t *testing.T) {
6666
installConfigOverrides: `{"additionalTrustBundle":"-----BEGIN CERTIFICATE-----MIIDZTCCAk2gAwIBAgIURbA8lR+5xlJZUoOXK66AHFWd3uswDQYJKoZIhvcNAQELBQAwQjELMAkGA1UEBhMCWFgxFTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDAeFw0yMjA3MDgxOTUzMTVaFw0yMjA4MDcxOTUzMTVaMEIxCzAJBgNVBAYTAlhYMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCroH9c2PLWI0O/nBrmKtS2IuReyWaR0DOMJY7C/vc12l9zlH0DxTOUfEtdqRktjVsUn1vIIiFakxd0QLIPcMyKplmbavIBUQp+MZr0pNVX+lwcctbA7FVHEnbWYNVepoV7kZkTVvMXAqFylMXU4gDmuZzIxhVMMxjialJNED+3ngqvX4w34q4KSk1ytaHGwjREIErwPJjv5PK48KVJL2nlCuA+tbxu1r8eVkOUvZlxAuNNXk/Umf3QX5EiUlTtsmRAct6fIUT3jkrsHSS/tZ66EYJ9Q0OBoX2lL/Msmi27OQvA7uYnuqYlwJzU43tCsiip9E9z/UrLcMYyXx3oPJyPAgMBAAGjUzBRMB0GA1UdDgQWBBTIahE8DDT4T1vta6cXVVaRjnel0zAfBgNVHSMEGDAWgBTIahE8DDT4T1vta6cXVVaRjnel0zAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCQbsMtPFkqPxwOAIds3IoupuyIKmsF32ECEH/OlS+7Sj7MUJnGTQrwgjrsVS5sl8AmnGx4hPdLVX98nEcKMNkph3Hkvh4EvgjSfmYGUXuJBcYU5jqNQrlrGv37rEf5FnvdHV1F3MG8A0Mj0TLtcTdtaJFoOrnQuD/k0/1d+cMiYGTSaT5XK/unARqGEMd4BlWPh5P3SflV/Vy2hHlMpv7OcZ8yaAI3htENZLus+L5kjHWKu6dxlPHKu6ef5k64su2LTNE07Vr9S655uiFW5AX2wDVUcQEDCOiEn6SI9DTt5oQjWPMxPf+rEyfQ2f1QwVez7cyr6Qc5OIUk31HnM/Fj-----END CERTIFICATE-----"}`,
6767
})
6868

69+
installConfigWithNetworkOverride := getValidOptionalInstallConfig()
70+
installConfigWithNetworkOverride.Config.Networking.NetworkType = "CustomNetworkType"
71+
72+
goodNetworkOverrideACI := getGoodACI()
73+
goodNetworkOverrideACI.SetAnnotations(map[string]string{
74+
installConfigOverrides: `{"networking":{"networkType":"CustomNetworkType","machineNetwork":[{"cidr":"10.10.11.0/24"}],"clusterNetwork":[{"cidr":"192.168.111.0/24","hostPrefix":23}],"serviceNetwork":["172.30.0.0/16"]}}`,
75+
})
76+
6977
cases := []struct {
7078
name string
7179
dependencies []asset.Asset
@@ -135,6 +143,13 @@ func TestAgentClusterInstall_Generate(t *testing.T) {
135143
},
136144
expectedConfig: goodAdditionalTrustBundleACI,
137145
},
146+
{
147+
name: "valid configuration with custom network type",
148+
dependencies: []asset.Asset{
149+
installConfigWithNetworkOverride,
150+
},
151+
expectedConfig: goodNetworkOverrideACI,
152+
},
138153
}
139154
for _, tc := range cases {
140155
t.Run(tc.name, func(t *testing.T) {

0 commit comments

Comments
 (0)