Skip to content

Commit 57695b1

Browse files
Merge pull request openshift#7901 from bfournie/bm-capabilities
OCPBUGS-25835: Validate baremetal capability is set for baremetal platform
2 parents fba8239 + 88c319c commit 57695b1

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

pkg/types/validation/installconfig.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,10 @@ func ValidateInstallConfig(c *types.InstallConfig, usingAgentMethod bool) field.
207207
allErrs = append(allErrs, field.Invalid(field.NewPath("additionalEnabledCapabilities"), c.Capabilities.AdditionalEnabledCapabilities,
208208
"the marketplace capability requires the OperatorLifecycleManager capability"))
209209
}
210+
if c.Platform.BareMetal != nil && !enabledCaps.Has(configv1.ClusterVersionCapabilityBaremetal) {
211+
allErrs = append(allErrs, field.Invalid(field.NewPath("additionalEnabledCapabilities"), c.Capabilities.AdditionalEnabledCapabilities,
212+
"platform baremetal requires the baremetal capability"))
213+
}
210214
}
211215

212216
if !enabledCaps.Has(configv1.ClusterVersionCapabilityCloudCredential) {

pkg/types/validation/installconfig_test.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1639,6 +1639,18 @@ func TestValidateInstallConfig(t *testing.T) {
16391639
}(),
16401640
expectedError: `capabilities.additionalEnabledCapabilities\[0\]: Unsupported value: "not-valid": supported values: .*`,
16411641
},
1642+
{
1643+
name: "baremetal platform requires the baremetal capability",
1644+
installConfig: func() *types.InstallConfig {
1645+
c := validInstallConfig()
1646+
c.Platform = types.Platform{
1647+
BareMetal: validBareMetalPlatform(),
1648+
}
1649+
c.Capabilities = &types.Capabilities{BaselineCapabilitySet: "None", AdditionalEnabledCapabilities: []configv1.ClusterVersionCapability{"marketplace"}}
1650+
return c
1651+
}(),
1652+
expectedError: `additionalEnabledCapabilities: Invalid value: \[\]v1.ClusterVersionCapability{"marketplace"}: platform baremetal requires the baremetal capability`,
1653+
},
16421654
//VIP tests
16431655
{
16441656
name: "apivip_v4_not_in_machinenetwork_cidr",
@@ -2338,7 +2350,8 @@ func TestValidateInstallConfig(t *testing.T) {
23382350
c.BareMetal = validBareMetalPlatform()
23392351
c.AWS = nil
23402352
c.Capabilities = &types.Capabilities{
2341-
BaselineCapabilitySet: configv1.ClusterVersionCapabilitySetNone,
2353+
BaselineCapabilitySet: configv1.ClusterVersionCapabilitySetNone,
2354+
AdditionalEnabledCapabilities: []configv1.ClusterVersionCapability{configv1.ClusterVersionCapabilityBaremetal, configv1.ClusterVersionCapabilityMachineAPI},
23422355
}
23432356
return c
23442357
}(),

0 commit comments

Comments
 (0)