Skip to content

Commit 4a7d450

Browse files
committed
CONSOLE-4161: Bump openshift/api + Add capabilities to config builder
1 parent 7332544 commit 4a7d450

File tree

13 files changed

+266
-12
lines changed

13 files changed

+266
-12
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ require (
1111
github.com/go-bindata/go-bindata v3.1.2+incompatible
1212
github.com/go-test/deep v1.0.5
1313
github.com/google/go-cmp v0.6.0
14-
github.com/openshift/api v0.0.0-20240703080403-99bfe922c181
14+
github.com/openshift/api v0.0.0-20240730123620-ae8eac7b3268
1515
github.com/openshift/build-machinery-go v0.0.0-20240419090851-af9c868bcf52
1616
github.com/openshift/client-go v0.0.0-20240523113335-452272e0496d
1717
github.com/openshift/library-go v0.0.0-20240124134907-4dfbf6bc7b11

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY
144144
github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM=
145145
github.com/onsi/gomega v1.31.0 h1:54UJxxj6cPInHS3a35wm6BK/F9nHYueZ1NVujHDrnXE=
146146
github.com/onsi/gomega v1.31.0/go.mod h1:DW9aCi7U6Yi40wNVAvT6kzFnEVEI5n3DloYBiKiT6zk=
147-
github.com/openshift/api v0.0.0-20240703080403-99bfe922c181 h1:YDKe2dJKx/NdA1tyAtX9sdrlLsgl3qnL+T38MxU75iY=
148-
github.com/openshift/api v0.0.0-20240703080403-99bfe922c181/go.mod h1:OOh6Qopf21pSzqNVCB5gomomBXb8o5sGKZxG2KNpaXM=
147+
github.com/openshift/api v0.0.0-20240730123620-ae8eac7b3268 h1:531fmfVMUHRaH0D6FeDD/HSurupo3s4XNCII4g0oUTA=
148+
github.com/openshift/api v0.0.0-20240730123620-ae8eac7b3268/go.mod h1:OOh6Qopf21pSzqNVCB5gomomBXb8o5sGKZxG2KNpaXM=
149149
github.com/openshift/build-machinery-go v0.0.0-20240419090851-af9c868bcf52 h1:bqBwrXG7sbJUqP1Og1bR8FvVh7qb7CrMgy9saKmOZFs=
150150
github.com/openshift/build-machinery-go v0.0.0-20240419090851-af9c868bcf52/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE=
151151
github.com/openshift/client-go v0.0.0-20240523113335-452272e0496d h1:Dq21KMlDTVy2fCIyp0gsW+6ir6FwD3RjnCuza2/bIyM=

manifests/01-operator-config.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,8 @@ metadata:
1111
capability.openshift.io/name: Console
1212
spec:
1313
managementState: Managed
14+
customization:
15+
capabilities:
16+
- name: LightspeedButton
17+
visibility:
18+
state: Enabled

pkg/console/subresource/configmap/configmap.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ func DefaultConfigMap(
9999
NodeArchitectures(nodeArchitectures).
100100
NodeOperatingSystems(nodeOperatingSystems).
101101
AuthConfig(authConfig, apiServerURL).
102+
Capabilities(operatorConfig.Spec.Customization.Capabilities).
102103
ConfigYAML()
103104
if err != nil {
104105
klog.Errorf("failed to generate user defined console-config config: %v", err)

pkg/console/subresource/consoleserver/config_builder.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ type ConsoleServerCLIConfigBuilder struct {
7474
authType string
7575
sessionEncryptionFile string
7676
sessionAuthenticationFile string
77+
capabilities []operatorv1.Capability
7778
}
7879

7980
func (b *ConsoleServerCLIConfigBuilder) Host(host string) *ConsoleServerCLIConfigBuilder {
@@ -144,6 +145,11 @@ func (b *ConsoleServerCLIConfigBuilder) StatusPageID(id string) *ConsoleServerCL
144145
return b
145146
}
146147

148+
func (b *ConsoleServerCLIConfigBuilder) Capabilities(capabilities []operatorv1.Capability) *ConsoleServerCLIConfigBuilder {
149+
b.capabilities = capabilities
150+
return b
151+
}
152+
147153
func (b *ConsoleServerCLIConfigBuilder) AuthConfig(authnConfig *configv1.Authentication, apiServerURL string) *ConsoleServerCLIConfigBuilder {
148154
switch authnConfig.Spec.Type {
149155
case "", configv1.AuthenticationTypeIntegratedOAuth:
@@ -492,6 +498,8 @@ func (b *ConsoleServerCLIConfigBuilder) customization() Customization {
492498
conf.Perspectives = perspectives
493499
}
494500

501+
conf.Capabilities = b.capabilities
502+
495503
return conf
496504
}
497505

pkg/console/subresource/consoleserver/config_builder_test.go

Lines changed: 81 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"github.com/go-test/deep"
88
"github.com/google/go-cmp/cmp"
99
configv1 "github.com/openshift/api/config/v1"
10-
operatorv1 "github.com/openshift/api/operator/v1"
1110
v1 "github.com/openshift/api/operator/v1"
1211
"github.com/openshift/console-operator/pkg/api"
1312
authorizationv1 "k8s.io/api/authorization/v1"
@@ -46,6 +45,48 @@ func TestConsoleServerCLIConfigBuilder(t *testing.T) {
4645
Customization: Customization{},
4746
Providers: Providers{},
4847
},
48+
}, {
49+
name: "Config builder should handle customization with LightspeedButton capability",
50+
input: func() Config {
51+
b := &ConsoleServerCLIConfigBuilder{}
52+
return b.
53+
Capabilities([]v1.Capability{
54+
{
55+
Name: v1.LightspeedButton,
56+
Visibility: v1.CapabilityVisibility{
57+
State: v1.CapabilityEnabled,
58+
},
59+
},
60+
}).
61+
Config()
62+
},
63+
output: Config{
64+
Kind: "ConsoleConfig",
65+
APIVersion: "console.openshift.io/v1",
66+
ServingInfo: ServingInfo{
67+
BindAddress: "https://[::]:8443",
68+
CertFile: certFilePath,
69+
KeyFile: keyFilePath,
70+
},
71+
ClusterInfo: ClusterInfo{
72+
ConsoleBasePath: "",
73+
},
74+
Auth: Auth{
75+
ClientID: api.OpenShiftConsoleName,
76+
ClientSecretFile: clientSecretFilePath,
77+
},
78+
Customization: Customization{
79+
Capabilities: []v1.Capability{
80+
{
81+
Name: v1.LightspeedButton,
82+
Visibility: v1.CapabilityVisibility{
83+
State: v1.CapabilityEnabled,
84+
},
85+
},
86+
},
87+
},
88+
Providers: Providers{},
89+
},
4990
}, {
5091
name: "Config builder should handle cluster info with internal OAuth",
5192
input: func() Config {
@@ -551,7 +592,7 @@ func TestConsoleServerCLIConfigBuilder(t *testing.T) {
551592
Missing: []authorizationv1.ResourceAttributes{{Resource: "clusterroles", Verb: "list"}},
552593
},
553594
},
554-
PinnedResources: &[]operatorv1.PinnedResourceReference{
595+
PinnedResources: &[]v1.PinnedResourceReference{
555596
{Group: "apps", Version: "v1", Resource: "deployments"},
556597
{Group: "", Version: "v1", Resource: "configmaps"},
557598
},
@@ -593,7 +634,7 @@ func TestConsoleServerCLIConfigBuilder(t *testing.T) {
593634
},
594635
},
595636
},
596-
PinnedResources: &[]operatorv1.PinnedResourceReference{
637+
PinnedResources: &[]v1.PinnedResourceReference{
597638
{Group: "apps", Version: "v1", Resource: "deployments"},
598639
{Group: "", Version: "v1", Resource: "configmaps"},
599640
},
@@ -618,7 +659,7 @@ func TestConsoleServerCLIConfigBuilder(t *testing.T) {
618659
Missing: []authorizationv1.ResourceAttributes{{Resource: "clusterroles", Verb: "list"}},
619660
},
620661
},
621-
PinnedResources: &[]operatorv1.PinnedResourceReference{},
662+
PinnedResources: &[]v1.PinnedResourceReference{},
622663
}, {
623664
ID: "perspective2",
624665
Visibility: v1.PerspectiveVisibility{
@@ -658,7 +699,7 @@ func TestConsoleServerCLIConfigBuilder(t *testing.T) {
658699
},
659700
},
660701
},
661-
PinnedResources: &[]operatorv1.PinnedResourceReference{},
702+
PinnedResources: &[]v1.PinnedResourceReference{},
662703
},
663704
{ID: "perspective2", Visibility: PerspectiveVisibility{State: PerspectiveDisabled}},
664705
},
@@ -1275,7 +1316,7 @@ providers: {}
12751316
Missing: []authorizationv1.ResourceAttributes{{Resource: "clusterroles", Verb: "list"}},
12761317
},
12771318
},
1278-
PinnedResources: &[]operatorv1.PinnedResourceReference{
1319+
PinnedResources: &[]v1.PinnedResourceReference{
12791320
{Group: "apps", Version: "v1", Resource: "deployments"},
12801321
{Group: "", Version: "v1", Resource: "configmaps"},
12811322
},
@@ -1348,7 +1389,7 @@ providers: {}
13481389
Missing: []authorizationv1.ResourceAttributes{{Resource: "clusterroles", Verb: "list"}},
13491390
},
13501391
},
1351-
PinnedResources: &[]operatorv1.PinnedResourceReference{},
1392+
PinnedResources: &[]v1.PinnedResourceReference{},
13521393
}, {
13531394
ID: "perspective2",
13541395
Visibility: v1.PerspectiveVisibility{
@@ -1424,6 +1465,39 @@ providers: {}
14241465
telemetry:
14251466
a-boolean-as-string: "false"
14261467
a-key: a-value
1468+
`,
1469+
},
1470+
{
1471+
name: "Config builder should pass customization Capabilities",
1472+
input: func() ([]byte, error) {
1473+
b := &ConsoleServerCLIConfigBuilder{}
1474+
b.Capabilities([]v1.Capability{
1475+
{
1476+
Name: v1.LightspeedButton,
1477+
Visibility: v1.CapabilityVisibility{
1478+
State: v1.CapabilityEnabled,
1479+
},
1480+
},
1481+
})
1482+
return b.ConfigYAML()
1483+
},
1484+
output: `apiVersion: console.openshift.io/v1
1485+
kind: ConsoleConfig
1486+
servingInfo:
1487+
bindAddress: https://[::]:8443
1488+
certFile: /var/serving-cert/tls.crt
1489+
keyFile: /var/serving-cert/tls.key
1490+
clusterInfo: {}
1491+
auth:
1492+
clientID: console
1493+
clientSecretFile: /var/oauth-config/clientSecret
1494+
session: {}
1495+
customization:
1496+
capabilities:
1497+
- name: LightspeedButton
1498+
visibility:
1499+
state: Enabled
1500+
providers: {}
14271501
`,
14281502
},
14291503
}

pkg/console/subresource/consoleserver/types.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@ type Customization struct {
112112
// addPage allows customizing actions on the Add page in developer perspective.
113113
AddPage AddPage `yaml:"addPage,omitempty"`
114114
// perspectives allows enabling/disabling of perspective(s) that user can see in the Perspective switcher dropdown.
115-
Perspectives []Perspective `yaml:"perspectives,omitempty"`
115+
Perspectives []Perspective `yaml:"perspectives,omitempty"`
116+
Capabilities []operatorv1.Capability `yaml:"capabilities,omitempty"`
116117
}
117118

118119
// QuickStarts contains options for quick starts

vendor/github.com/openshift/api/console/v1/zz_generated.crd-manifests/90_consoleplugins.crd.yaml

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

vendor/github.com/openshift/api/operator/v1/types_console.go

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

vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_console_01_consoles.crd.yaml

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

0 commit comments

Comments
 (0)