@@ -18,6 +18,7 @@ import (
1818 "github.com/openshift/installer/pkg/types/aws"
1919 "github.com/openshift/installer/pkg/types/azure"
2020 "github.com/openshift/installer/pkg/types/baremetal"
21+ "github.com/openshift/installer/pkg/types/external"
2122 "github.com/openshift/installer/pkg/types/gcp"
2223 "github.com/openshift/installer/pkg/types/ibmcloud"
2324 "github.com/openshift/installer/pkg/types/libvirt"
@@ -1550,7 +1551,7 @@ func TestValidateInstallConfig(t *testing.T) {
15501551 installConfig : func () * types.InstallConfig {
15511552 c := validInstallConfig ()
15521553 c .Capabilities = & types.Capabilities {BaselineCapabilitySet : "v4.11" }
1553- c .Capabilities .AdditionalEnabledCapabilities = append (c .Capabilities .AdditionalEnabledCapabilities , configv1 .ClusterVersionCapabilityCloudCredential )
1554+ c .Capabilities .AdditionalEnabledCapabilities = append (c .Capabilities .AdditionalEnabledCapabilities , configv1 .ClusterVersionCapabilityCloudCredential , configv1 . ClusterVersionCapabilityCloudControllerManager )
15541555 return c
15551556 }(),
15561557 },
@@ -1597,7 +1598,7 @@ func TestValidateInstallConfig(t *testing.T) {
15971598 installConfig : func () * types.InstallConfig {
15981599 c := validInstallConfig ()
15991600 c .Capabilities = & types.Capabilities {BaselineCapabilitySet : "v4.11" }
1600- c .Capabilities .AdditionalEnabledCapabilities = append (c .Capabilities .AdditionalEnabledCapabilities , configv1 .ClusterVersionCapabilityCloudCredential , configv1 .ClusterVersionCapabilityOpenShiftSamples )
1601+ c .Capabilities .AdditionalEnabledCapabilities = append (c .Capabilities .AdditionalEnabledCapabilities , configv1 .ClusterVersionCapabilityCloudCredential , configv1 .ClusterVersionCapabilityOpenShiftSamples , configv1 . ClusterVersionCapabilityCloudControllerManager )
16011602 return c
16021603 }(),
16031604 },
@@ -2253,7 +2254,7 @@ func TestValidateInstallConfig(t *testing.T) {
22532254 c .Capabilities = & types.Capabilities {
22542255 BaselineCapabilitySet : configv1 .ClusterVersionCapabilitySetNone ,
22552256 }
2256- c .Capabilities .AdditionalEnabledCapabilities = append (c .Capabilities .AdditionalEnabledCapabilities , configv1 .ClusterVersionCapabilityCloudCredential )
2257+ c .Capabilities .AdditionalEnabledCapabilities = append (c .Capabilities .AdditionalEnabledCapabilities , configv1 .ClusterVersionCapabilityCloudCredential , configv1 . ClusterVersionCapabilityCloudControllerManager )
22572258 return c
22582259 }(),
22592260 },
@@ -2263,7 +2264,7 @@ func TestValidateInstallConfig(t *testing.T) {
22632264 c := validInstallConfig ()
22642265 c .Capabilities = & types.Capabilities {
22652266 BaselineCapabilitySet : configv1 .ClusterVersionCapabilitySetNone ,
2266- AdditionalEnabledCapabilities : []configv1.ClusterVersionCapability {configv1 .ClusterVersionCapabilityBaremetal , configv1 .ClusterVersionCapabilityMachineAPI , configv1 .ClusterVersionCapabilityCloudCredential },
2267+ AdditionalEnabledCapabilities : []configv1.ClusterVersionCapability {configv1 .ClusterVersionCapabilityBaremetal , configv1 .ClusterVersionCapabilityMachineAPI , configv1 .ClusterVersionCapabilityCloudCredential , configv1 . ClusterVersionCapabilityCloudControllerManager },
22672268 }
22682269 return c
22692270 }(),
@@ -2274,7 +2275,7 @@ func TestValidateInstallConfig(t *testing.T) {
22742275 c := validInstallConfig ()
22752276 c .Capabilities = & types.Capabilities {
22762277 BaselineCapabilitySet : configv1 .ClusterVersionCapabilitySetNone ,
2277- AdditionalEnabledCapabilities : []configv1.ClusterVersionCapability {configv1 .ClusterVersionCapabilityMachineAPI , configv1 .ClusterVersionCapabilityCloudCredential },
2278+ AdditionalEnabledCapabilities : []configv1.ClusterVersionCapability {configv1 .ClusterVersionCapabilityMachineAPI , configv1 .ClusterVersionCapabilityCloudCredential , configv1 . ClusterVersionCapabilityCloudControllerManager },
22782279 }
22792280 return c
22802281 }(),
@@ -2338,6 +2339,86 @@ func TestValidateInstallConfig(t *testing.T) {
23382339 return c
23392340 }(),
23402341 },
2342+ {
2343+ name : "CloudController can't be disabled on cloud" ,
2344+ installConfig : func () * types.InstallConfig {
2345+ c := validInstallConfig ()
2346+ c .Capabilities = & types.Capabilities {
2347+ BaselineCapabilitySet : configv1 .ClusterVersionCapabilitySetNone ,
2348+ }
2349+ return c
2350+ }(),
2351+ expectedError : "disabling CloudControllerManager is only supported on the Baremetal, None, or External platform with cloudControllerManager value none" ,
2352+ },
2353+ {
2354+ name : "valid disabled CloudController configuration none platform" ,
2355+ installConfig : func () * types.InstallConfig {
2356+ c := validInstallConfig ()
2357+ c .Platform .AWS = nil
2358+ c .Platform .None = & none.Platform {}
2359+ c .Capabilities = & types.Capabilities {
2360+ BaselineCapabilitySet : configv1 .ClusterVersionCapabilitySetNone ,
2361+ }
2362+ return c
2363+ }(),
2364+ },
2365+ {
2366+ name : "valid disabled CloudController configuration platform baremetal" ,
2367+ installConfig : func () * types.InstallConfig {
2368+ c := validInstallConfig ()
2369+ c .Platform .AWS = nil
2370+ c .Platform .BareMetal = validBareMetalPlatform ()
2371+ c .Capabilities = & types.Capabilities {
2372+ BaselineCapabilitySet : configv1 .ClusterVersionCapabilitySetNone ,
2373+ AdditionalEnabledCapabilities : []configv1.ClusterVersionCapability {configv1 .ClusterVersionCapabilityBaremetal , configv1 .ClusterVersionCapabilityMachineAPI },
2374+ }
2375+ return c
2376+ }(),
2377+ },
2378+ {
2379+ name : "valid disabled CloudController configuration platform External" ,
2380+ installConfig : func () * types.InstallConfig {
2381+ c := validInstallConfig ()
2382+ c .Platform .AWS = nil
2383+ c .Platform .External = & external.Platform {}
2384+ c .Capabilities = & types.Capabilities {
2385+ BaselineCapabilitySet : configv1 .ClusterVersionCapabilitySetNone ,
2386+ AdditionalEnabledCapabilities : []configv1.ClusterVersionCapability {configv1 .ClusterVersionCapabilityCloudCredential },
2387+ }
2388+ return c
2389+ }(),
2390+ },
2391+ {
2392+ name : "valid disabled CloudController configuration platform External 2" ,
2393+ installConfig : func () * types.InstallConfig {
2394+ c := validInstallConfig ()
2395+ c .Platform .AWS = nil
2396+ c .Platform .External = & external.Platform {
2397+ CloudControllerManager : external .CloudControllerManagerTypeNone ,
2398+ }
2399+ c .Capabilities = & types.Capabilities {
2400+ BaselineCapabilitySet : configv1 .ClusterVersionCapabilitySetNone ,
2401+ AdditionalEnabledCapabilities : []configv1.ClusterVersionCapability {configv1 .ClusterVersionCapabilityCloudCredential },
2402+ }
2403+ return c
2404+ }(),
2405+ },
2406+ {
2407+ name : "invalid disabled CloudController configuration platform External 2" ,
2408+ installConfig : func () * types.InstallConfig {
2409+ c := validInstallConfig ()
2410+ c .Platform .AWS = nil
2411+ c .Platform .External = & external.Platform {
2412+ CloudControllerManager : external .CloudControllerManagerTypeExternal ,
2413+ }
2414+ c .Capabilities = & types.Capabilities {
2415+ BaselineCapabilitySet : configv1 .ClusterVersionCapabilitySetNone ,
2416+ AdditionalEnabledCapabilities : []configv1.ClusterVersionCapability {configv1 .ClusterVersionCapabilityCloudCredential },
2417+ }
2418+ return c
2419+ }(),
2420+ expectedError : "disabling CloudControllerManager on External platform supported only with cloudControllerManager value none" ,
2421+ },
23412422 }
23422423 for _ , tc := range cases {
23432424 t .Run (tc .name , func (t * testing.T ) {
0 commit comments