Skip to content

Commit 5cb3271

Browse files
author
Matthew Barnes
committed
api: Remove ClusterCapabilitiesProfile
We decided to structure optional features differently after a lengthy discussion in openshift-online/ocm-api-model#1037 This keeps the nice test framework in ocm_test.go even though it doesn't do much now. This can be expanded upon in the future.
1 parent 0ac501d commit 5cb3271

File tree

14 files changed

+12
-286
lines changed

14 files changed

+12
-286
lines changed

api/redhatopenshift/HcpCluster.Management/hcpCluster-models.tsp

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -68,29 +68,6 @@ model HcpOpenShiftClusterProperties {
6868
/** Azure platform configuration */
6969
@visibility(Lifecycle.Read, Lifecycle.Create)
7070
platform: PlatformProfile;
71-
72-
/** Configure cluter capabilities. */
73-
@visibility(Lifecycle.Read, Lifecycle.Create)
74-
capabilities?: ClusterCapabilitiesProfile;
75-
}
76-
77-
/** Cluster capabilities configuration. */
78-
model ClusterCapabilitiesProfile {
79-
/**
80-
* Immutable list of disabled capabilities. May only contain "ImageRegistry" at
81-
* this time. Additional capabilities may be available in the future. Clients
82-
* should expect to handle additional values.
83-
*/
84-
@visibility(Lifecycle.Read, Lifecycle.Create)
85-
disabled?: OptionalClusterCapability[];
86-
}
87-
88-
/** Cluster capabilities that can be disabled. */
89-
union OptionalClusterCapability {
90-
string,
91-
92-
/** Enables the OpenShift internal image registry. */
93-
ImageRegistry: "ImageRegistry",
9471
}
9572

9673
/** The resource provisioning state. */

api/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/hcpclusters/preview/2024-06-10-preview/openapi.json

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -971,23 +971,6 @@
971971
}
972972
]
973973
},
974-
"ClusterCapabilitiesProfile": {
975-
"type": "object",
976-
"description": "Cluster capabilities configuration.",
977-
"properties": {
978-
"disabled": {
979-
"type": "array",
980-
"description": "Immutable list of disabled capabilities. May only contain \"ImageRegistry\" at\nthis time. Additional capabilities may be available in the future. Clients\nshould expect to handle additional values.",
981-
"items": {
982-
"$ref": "#/definitions/OptionalClusterCapability"
983-
},
984-
"x-ms-mutability": [
985-
"read",
986-
"create"
987-
]
988-
}
989-
}
990-
},
991974
"ConsoleProfile": {
992975
"type": "object",
993976
"description": "Configuration of the cluster web console",
@@ -1163,14 +1146,6 @@
11631146
"read",
11641147
"create"
11651148
]
1166-
},
1167-
"capabilities": {
1168-
"$ref": "#/definitions/ClusterCapabilitiesProfile",
1169-
"description": "Configure cluter capabilities.",
1170-
"x-ms-mutability": [
1171-
"read",
1172-
"create"
1173-
]
11741149
}
11751150
},
11761151
"required": [
@@ -1635,24 +1610,6 @@
16351610
"userAssignedIdentities"
16361611
]
16371612
},
1638-
"OptionalClusterCapability": {
1639-
"type": "string",
1640-
"description": "Cluster capabilities that can be disabled.",
1641-
"enum": [
1642-
"ImageRegistry"
1643-
],
1644-
"x-ms-enum": {
1645-
"name": "OptionalClusterCapability",
1646-
"modelAsString": true,
1647-
"values": [
1648-
{
1649-
"name": "ImageRegistry",
1650-
"value": "ImageRegistry",
1651-
"description": "Enables the OpenShift internal image registry."
1652-
}
1653-
]
1654-
}
1655-
},
16561613
"PlatformProfile": {
16571614
"type": "object",
16581615
"description": "Azure specific configuration",

frontend/pkg/frontend/ocm.go

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -81,38 +81,6 @@ func convertOutboundTypeRPToCS(outboundTypeRP api.OutboundType) (outboundTypeCS
8181
return
8282
}
8383

84-
func convertDisabledCapabilitiesToCS(in []api.OptionalClusterCapability) []string {
85-
var out []string
86-
for _, c := range in {
87-
out = append(out, string(c))
88-
}
89-
return out
90-
}
91-
92-
func convertDisableCapabilitiesToRP(in []string) []api.OptionalClusterCapability {
93-
var out []api.OptionalClusterCapability
94-
for _, c := range in {
95-
out = append(out, api.OptionalClusterCapability(c))
96-
}
97-
return out
98-
}
99-
100-
func convertClusterCapabilitiesToRP(in *arohcpv1alpha1.Cluster) api.ClusterCapabilitiesProfile {
101-
out := api.ClusterCapabilitiesProfile{}
102-
if in == nil {
103-
return out
104-
}
105-
if in.Capabilities() != nil {
106-
out.Disabled = convertDisableCapabilitiesToRP(in.Capabilities().Disabled())
107-
}
108-
return out
109-
}
110-
111-
func convertClusterCapabilitiesToCSBuilder(in api.ClusterCapabilitiesProfile) *arohcpv1alpha1.ClusterCapabilitiesBuilder {
112-
return arohcpv1alpha1.NewClusterCapabilities().
113-
Disabled(convertDisabledCapabilitiesToCS(in.Disabled)...)
114-
}
115-
11684
func convertEnableEncryptionAtHostToCSBuilder(in api.NodePoolPlatformProfile) *arohcpv1alpha1.AzureNodePoolEncryptionAtHostBuilder {
11785
var state string
11886

@@ -175,7 +143,6 @@ func ConvertCStoHCPOpenShiftCluster(resourceID *azcorearm.ResourceID, cluster *a
175143
NetworkSecurityGroupID: cluster.Azure().NetworkSecurityGroupResourceID(),
176144
IssuerURL: "",
177145
},
178-
Capabilities: convertClusterCapabilitiesToRP(cluster),
179146
},
180147
}
181148

@@ -284,8 +251,7 @@ func withImmutableAttributes(clusterBuilder *arohcpv1alpha1.ClusterBuilder, hcpC
284251
MachineCIDR(hcpCluster.Properties.Network.MachineCIDR).
285252
HostPrefix(int(hcpCluster.Properties.Network.HostPrefix))).
286253
API(arohcpv1alpha1.NewClusterAPI().
287-
Listening(convertVisibilityToListening(hcpCluster.Properties.API.Visibility))).
288-
Capabilities(convertClusterCapabilitiesToCSBuilder(hcpCluster.Properties.Capabilities))
254+
Listening(convertVisibilityToListening(hcpCluster.Properties.API.Visibility)))
289255

290256
azureBuilder := arohcpv1alpha1.NewAzure().
291257
TenantID(tenantID).

frontend/pkg/frontend/ocm_test.go

Lines changed: 0 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -84,30 +84,6 @@ func TestConvertCStoHCPOpenShiftCluster(t *testing.T) {
8484
cluster: arohcpv1alpha1.NewCluster(),
8585
want: clusterResource(),
8686
},
87-
{
88-
name: "disabled capability",
89-
cluster: arohcpv1alpha1.NewCluster().
90-
Capabilities(
91-
arohcpv1alpha1.NewClusterCapabilities().
92-
Disabled("red"),
93-
),
94-
want: clusterResource(withDisabledCapabilities("red")),
95-
},
96-
{
97-
name: "disabled capabilities",
98-
cluster: arohcpv1alpha1.NewCluster().
99-
Capabilities(
100-
arohcpv1alpha1.NewClusterCapabilities().
101-
Disabled("red", "green", "blue"),
102-
),
103-
want: clusterResource(withDisabledCapabilities("red", "green", "blue")),
104-
},
105-
{
106-
name: "disabled capabilities empty",
107-
cluster: arohcpv1alpha1.NewCluster().
108-
Capabilities(arohcpv1alpha1.NewClusterCapabilities()),
109-
want: clusterResource(),
110-
},
11187
}
11288
for _, tc := range testCases {
11389
t.Run(tc.name, func(t *testing.T) {
@@ -135,39 +111,6 @@ func TestWithImmutableAttributes(t *testing.T) {
135111
},
136112
want: ocmCluster(t, withOCMClusterDefaults()),
137113
},
138-
{
139-
name: "disabled capability",
140-
hcpCluster: &api.HCPOpenShiftCluster{
141-
Properties: api.HCPOpenShiftClusterProperties{
142-
Platform: api.PlatformProfile{
143-
ManagedResourceGroup: "test",
144-
},
145-
Capabilities: api.ClusterCapabilitiesProfile{
146-
Disabled: []api.OptionalClusterCapability{
147-
api.OptionalClusterCapability("TEST_ONE"),
148-
},
149-
},
150-
},
151-
},
152-
want: ocmCluster(t, withOCMClusterDefaults(), withOCMDisabledCapabilities("TEST_ONE")),
153-
},
154-
{
155-
name: "disabled capabilities",
156-
hcpCluster: &api.HCPOpenShiftCluster{
157-
Properties: api.HCPOpenShiftClusterProperties{
158-
Platform: api.PlatformProfile{
159-
ManagedResourceGroup: "test",
160-
},
161-
Capabilities: api.ClusterCapabilitiesProfile{
162-
Disabled: []api.OptionalClusterCapability{
163-
api.OptionalClusterCapability("TEST_ONE"),
164-
api.OptionalClusterCapability("TEST_TWO"),
165-
},
166-
},
167-
},
168-
},
169-
want: ocmCluster(t, withOCMClusterDefaults(), withOCMDisabledCapabilities("TEST_ONE", "TEST_TWO")),
170-
},
171114
}
172115

173116
for _, tc := range testCases {
@@ -208,14 +151,6 @@ func clusterResource(opts ...func(*api.HCPOpenShiftCluster)) *api.HCPOpenShiftCl
208151
return c
209152
}
210153

211-
func withDisabledCapabilities(caps ...string) func(*api.HCPOpenShiftCluster) {
212-
return func(c *api.HCPOpenShiftCluster) {
213-
for _, capability := range caps {
214-
c.Properties.Capabilities.Disabled = append(c.Properties.Capabilities.Disabled, api.OptionalClusterCapability(capability))
215-
}
216-
}
217-
}
218-
219154
func ocmCluster(t *testing.T, opts ...func(*arohcpv1alpha1.ClusterBuilder) *arohcpv1alpha1.ClusterBuilder) *arohcpv1alpha1.Cluster {
220155
b := arohcpv1alpha1.NewCluster()
221156
for _, opt := range opts {
@@ -225,11 +160,6 @@ func ocmCluster(t *testing.T, opts ...func(*arohcpv1alpha1.ClusterBuilder) *aroh
225160
assert.NoError(t, err)
226161
return c
227162
}
228-
func withOCMDisabledCapabilities(values ...string) func(*arohcpv1alpha1.ClusterBuilder) *arohcpv1alpha1.ClusterBuilder {
229-
return func(b *arohcpv1alpha1.ClusterBuilder) *arohcpv1alpha1.ClusterBuilder {
230-
return b.Capabilities(arohcpv1alpha1.NewClusterCapabilities().Disabled(values...))
231-
}
232-
}
233163

234164
func withOCMClusterDefaults() func(*arohcpv1alpha1.ClusterBuilder) *arohcpv1alpha1.ClusterBuilder {
235165
return func(b *arohcpv1alpha1.ClusterBuilder) *arohcpv1alpha1.ClusterBuilder {
@@ -248,8 +178,6 @@ func withOCMClusterDefaults() func(*arohcpv1alpha1.ClusterBuilder) *arohcpv1alph
248178
SubscriptionID("test").
249179
TenantID("test"),
250180
).
251-
Capabilities(arohcpv1alpha1.NewClusterCapabilities().
252-
Disabled()).
253181
CCS(arohcpv1alpha1.NewCCS().Enabled(true)).
254182
CloudProvider(cmv1.NewCloudProvider().
255183
ID("azure")).

go.work.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -782,16 +782,20 @@ honnef.co/go/tools v0.6.1 h1:R094WgE8K4JirYjBaOpz/AvTyUu/3wbmAoskKN/pxTI=
782782
honnef.co/go/tools v0.6.1/go.mod h1:3puzxxljPCe8RGJX7BIy1plGbxEOZni5mR2aXe3/uk4=
783783
k8s.io/apiserver v0.33.1 h1:yLgLUPDVC6tHbNcw5uE9mo1T6ELhJj7B0geifra3Qdo=
784784
k8s.io/apiserver v0.33.1/go.mod h1:VMbE4ArWYLO01omz+k8hFjAdYfc3GVAYPrhP2tTKccs=
785+
k8s.io/apiserver v0.33.2/go.mod h1:9qday04wEAMLPWWo9AwqCZSiIn3OYSZacDyu/AcoM/M=
785786
k8s.io/cli-runtime v0.32.2 h1:aKQR4foh9qeyckKRkNXUccP9moxzffyndZAvr+IXMks=
786787
k8s.io/cli-runtime v0.32.2/go.mod h1:a/JpeMztz3xDa7GCyyShcwe55p8pbcCVQxvqZnIwXN8=
787788
k8s.io/code-generator v0.33.1 h1:ZLzIRdMsh3Myfnx9BaooX6iQry29UJjVfVG+BuS+UMw=
788789
k8s.io/code-generator v0.33.1/go.mod h1:HUKT7Ubp6bOgIbbaPIs9lpd2Q02uqkMCMx9/GjDrWpY=
790+
k8s.io/code-generator v0.33.2/go.mod h1:hBjCA9kPMpjLWwxcr75ReaQfFXY8u+9bEJJ7kRw3J8c=
789791
k8s.io/component-base v0.33.1 h1:EoJ0xA+wr77T+G8p6T3l4efT2oNwbqBVKR71E0tBIaI=
790792
k8s.io/component-base v0.33.1/go.mod h1:guT/w/6piyPfTgq7gfvgetyXMIh10zuXA6cRRm3rDuY=
793+
k8s.io/component-base v0.33.2/go.mod h1:/41uw9wKzuelhN+u+/C59ixxf4tYQKW7p32ddkYNe2k=
791794
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 h1:2OX19X59HxDprNCVrWi6jb7LW1PoqTlYqEq5H2oetog=
792795
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=
793796
k8s.io/kms v0.33.1 h1:jJKrFhsbVofpyLF+G8k+drwOAF9CMQpxilHa5Uilb8Q=
794797
k8s.io/kms v0.33.1/go.mod h1:C1I8mjFFBNzfUZXYt9FZVJ8MJl7ynFbGgZFbBzkBJ3E=
798+
k8s.io/kms v0.33.2/go.mod h1:C1I8mjFFBNzfUZXYt9FZVJ8MJl7ynFbGgZFbBzkBJ3E=
795799
k8s.io/kubectl v0.32.2 h1:TAkag6+XfSBgkqK9I7ZvwtF0WVtUAvK8ZqTt+5zi1Us=
796800
k8s.io/kubectl v0.32.2/go.mod h1:+h/NQFSPxiDZYX/WZaWw9fwYezGLISP0ud8nQKg+3g8=
797801
mvdan.cc/gofumpt v0.7.0 h1:bg91ttqXmi9y2xawvkuMXyvAA/1ZGJqYAEGjXuP0JXU=

internal/api/enums.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,3 @@ const (
5656
// EffectPreferNoSchedule - PreferNoSchedule taint effect
5757
EffectPreferNoSchedule Effect = "PreferNoSchedule"
5858
)
59-
60-
// OptionalClusterCapability - Cluster capabilities that can be disabled.
61-
type OptionalClusterCapability string
62-
63-
const (
64-
// OptionalClusterCapabilityImageRegistry - Enables the OpenShift internal image registry.
65-
OptionalClusterCapabilityImageRegistry OptionalClusterCapability = "ImageRegistry"
66-
)

internal/api/hcpopenshiftcluster.go

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,13 @@ type HCPOpenShiftCluster struct {
3535

3636
// HCPOpenShiftClusterProperties represents the property bag of a HCPOpenShiftCluster resource.
3737
type HCPOpenShiftClusterProperties struct {
38-
ProvisioningState arm.ProvisioningState `json:"provisioningState,omitempty" visibility:"read"`
39-
Version VersionProfile `json:"version,omitempty"`
40-
DNS DNSProfile `json:"dns,omitempty"`
41-
Network NetworkProfile `json:"network,omitempty" visibility:"read create"`
42-
Console ConsoleProfile `json:"console,omitempty" visibility:"read"`
43-
API APIProfile `json:"api,omitempty"`
44-
Platform PlatformProfile `json:"platform,omitempty" visibility:"read create"`
45-
Capabilities ClusterCapabilitiesProfile `json:"capabilities,omitempty" visibility:"read create"`
38+
ProvisioningState arm.ProvisioningState `json:"provisioningState,omitempty" visibility:"read"`
39+
Version VersionProfile `json:"version,omitempty"`
40+
DNS DNSProfile `json:"dns,omitempty"`
41+
Network NetworkProfile `json:"network,omitempty" visibility:"read create"`
42+
Console ConsoleProfile `json:"console,omitempty" visibility:"read"`
43+
API APIProfile `json:"api,omitempty"`
44+
Platform PlatformProfile `json:"platform,omitempty" visibility:"read create"`
4645
}
4746

4847
// VersionProfile represents the cluster control plane version.
@@ -107,13 +106,6 @@ type UserAssignedIdentitiesProfile struct {
107106
ServiceManagedIdentity string `json:"serviceManagedIdentity,omitempty" validate:"omitempty,resource_id=Microsoft.ManagedIdentity/userAssignedIdentities"`
108107
}
109108

110-
// ClusterCapabilitiesProfile - Cluster capabilities configuration.
111-
// Visibility for the entire struct is "read create".
112-
type ClusterCapabilitiesProfile struct {
113-
// Disabled cluter capabilities.
114-
Disabled []OptionalClusterCapability `json:"disabled,omitempty" validate:"dive,enum_optionalclustercapability"`
115-
}
116-
117109
// Creates an HCPOpenShiftCluster with any non-zero default values.
118110
func NewDefaultHCPOpenShiftCluster() *HCPOpenShiftCluster {
119111
return &HCPOpenShiftCluster{

internal/api/testhelpers.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ func NewTestValidator() *validator.Validate {
8686
arm.ManagedServiceIdentityTypeSystemAssigned,
8787
arm.ManagedServiceIdentityTypeSystemAssignedUserAssigned,
8888
arm.ManagedServiceIdentityTypeUserAssigned))
89-
validate.RegisterAlias("enum_optionalclustercapability", EnumValidateTag(
90-
OptionalClusterCapabilityImageRegistry))
9189

9290
return validate
9391
}

internal/api/v20240610preview/generated/constants.go

Lines changed: 0 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/api/v20240610preview/generated/models.go

Lines changed: 0 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)