Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions pkg/console/operator/operator.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,6 @@ type consoleOperator struct {
// lister
consolePluginLister listerv1.ConsolePluginLister

// CSP feature gate enabled
contentSecurityPolicyEnabled bool

resourceSyncer resourcesynccontroller.ResourceSyncer

trackables trackables
Expand All @@ -110,7 +107,6 @@ type trackables struct {

func NewConsoleOperator(
ctx context.Context,
contentSecurityPolicyEnabled bool,
// top level config
configClient configclientv1.ConfigV1Interface,
configInformer configinformer.SharedInformerFactory,
Expand Down Expand Up @@ -192,8 +188,7 @@ func NewConsoleOperator(
consolePluginLister: consolePluginInformer.Lister(),
resourceSyncer: resourceSyncer,

monitoringDeploymentLister: monitoringDeploymentInformer.Lister(),
contentSecurityPolicyEnabled: contentSecurityPolicyEnabled,
monitoringDeploymentLister: monitoringDeploymentInformer.Lister(),
}

informers := []factory.Informer{
Expand Down
1 change: 0 additions & 1 deletion pkg/console/operator/sync_v400.go
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,6 @@ func (co *consoleOperator) SyncConfigMap(
nodeArchitectures,
nodeOperatingSystems,
copiedCSVsDisabled,
co.contentSecurityPolicyEnabled,
telemetryConfig,
consoleHost,
techPreviewEnabled,
Expand Down
2 changes: 0 additions & 2 deletions pkg/console/starter/starter.go
Original file line number Diff line number Diff line change
Expand Up @@ -235,11 +235,9 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
return err
}

contentSecurityPolicyEnabled := featureGates.Enabled("ConsolePluginContentSecurityPolicy")
// TODO: rearrange these into informer,client pairs, NOT separated.
consoleOperator := consoleoperator.NewConsoleOperator(
ctx,
contentSecurityPolicyEnabled,
// top level config
configClient.ConfigV1(),
configInformers,
Expand Down
2 changes: 0 additions & 2 deletions pkg/console/subresource/configmap/configmap.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ func DefaultConfigMap(
nodeArchitectures []string,
nodeOperatingSystems []string,
copiedCSVsDisabled bool,
contentSecurityPolicyEnabled bool,
telemeterConfig map[string]string,
consoleHost string,
techPreviewEnabled bool,
Expand Down Expand Up @@ -89,7 +88,6 @@ func DefaultConfigMap(
PluginsOrder(availablePlugins, operatorConfig).
I18nNamespaces(pluginsWithI18nNamespace(availablePlugins)).
ContentSecurityPolicies(aggregateCSPDirectives(availablePlugins)).
ContentSecurityPolicyEnabled(contentSecurityPolicyEnabled).
Proxy(getPluginsProxyServices(availablePlugins)).
CustomLogoFile(operatorConfig.Spec.Customization.CustomLogoFile). // TODO Remove deprecated CustomLogoFile API.
CustomLogos(operatorConfig.Spec.Customization.Logos).
Expand Down
30 changes: 14 additions & 16 deletions pkg/console/subresource/configmap/configmap_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,21 +51,20 @@ nV5cXbp9W1bC12Tc8nnNXn4ypLE2JTQAvyp51zoZ8hQoSnRVx/VCY55Yu+br8gQZ
// To manually run these tests: go test -v ./pkg/console/subresource/configmap/...
func TestDefaultConfigMap(t *testing.T) {
type args struct {
operatorConfig *operatorv1.Console
authConfig *configv1.Authentication
consoleConfig *configv1.Console
managedConfig *corev1.ConfigMap
monitoringSharedConfig *corev1.ConfigMap
authServerCAConfig *corev1.ConfigMap
infrastructureConfig *configv1.Infrastructure
rt *routev1.Route
inactivityTimeoutSeconds int
availablePlugins []*consolev1.ConsolePlugin
nodeArchitectures []string
nodeOperatingSystems []string
copiedCSVsDisabled bool
contentSecurityPolicyEnabled bool
telemetryConfig map[string]string
operatorConfig *operatorv1.Console
authConfig *configv1.Authentication
consoleConfig *configv1.Console
managedConfig *corev1.ConfigMap
monitoringSharedConfig *corev1.ConfigMap
authServerCAConfig *corev1.ConfigMap
infrastructureConfig *configv1.Infrastructure
rt *routev1.Route
inactivityTimeoutSeconds int
availablePlugins []*consolev1.ConsolePlugin
nodeArchitectures []string
nodeOperatingSystems []string
copiedCSVsDisabled bool
telemetryConfig map[string]string
}
t.Setenv("OPERATOR_IMAGE_VERSION", testReleaseVersion)
tests := []struct {
Expand Down Expand Up @@ -1303,7 +1302,6 @@ providers: {}
tt.args.nodeArchitectures,
tt.args.nodeOperatingSystems,
tt.args.copiedCSVsDisabled,
tt.args.contentSecurityPolicyEnabled,
tt.args.telemetryConfig,
tt.args.rt.Spec.Host,
false, // techPreviewEnabled - default to false for tests
Expand Down
1 change: 0 additions & 1 deletion pkg/console/subresource/configmap/tech_preview_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ func TestTechPreviewEnabled(t *testing.T) {
[]string{"amd64"}, // nodeArchitectures
[]string{"linux"}, // nodeOperatingSystems
false, // copiedCSVsDisabled
false, // contentSecurityPolicyEnabled
map[string]string{}, // telemetryConfig
"console.test.cluster", // consoleHost
tt.args.techPreviewEnabled,
Expand Down
115 changes: 52 additions & 63 deletions pkg/console/subresource/consoleserver/config_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,44 +46,43 @@ var SupportedLightspeedArchitectures = []string{"amd64"}
//
// b.Host().Brand("").Config()
type ConsoleServerCLIConfigBuilder struct {
host string
logoutRedirectURL string
brand operatorv1.Brand
docURL string
apiServerURL string
controlPlaneToplogy configv1.TopologyMode
statusPageID string
customProductName string
devCatalogCustomization operatorv1.DeveloperConsoleCatalogCustomization
projectAccess operatorv1.ProjectAccess
quickStarts operatorv1.QuickStarts
addPage operatorv1.AddPage
perspectives []operatorv1.Perspective
CAFile string
monitoring map[string]string
customHostnameRedirectPort int
inactivityTimeoutSeconds int
pluginsList map[string]string
pluginsOrder []string
i18nNamespaceList []string
proxyServices []ProxyService
telemetry map[string]string
releaseVersion string
nodeArchitectures []string
nodeOperatingSystems []string
copiedCSVsDisabled bool
oauthClientID string
oidcExtraScopes []string
oidcIssuerURL string
oidcOCLoginCommand string
authType string
sessionEncryptionFile string
sessionAuthenticationFile string
capabilities []operatorv1.Capability
contentSecurityPolicyEnabled bool
contentSecurityPolicyList map[v1.DirectiveType][]string
logos []operatorv1.Logo
techPreviewEnabled bool
host string
logoutRedirectURL string
brand operatorv1.Brand
docURL string
apiServerURL string
controlPlaneToplogy configv1.TopologyMode
statusPageID string
customProductName string
devCatalogCustomization operatorv1.DeveloperConsoleCatalogCustomization
projectAccess operatorv1.ProjectAccess
quickStarts operatorv1.QuickStarts
addPage operatorv1.AddPage
perspectives []operatorv1.Perspective
CAFile string
monitoring map[string]string
customHostnameRedirectPort int
inactivityTimeoutSeconds int
pluginsList map[string]string
pluginsOrder []string
i18nNamespaceList []string
proxyServices []ProxyService
telemetry map[string]string
releaseVersion string
nodeArchitectures []string
nodeOperatingSystems []string
copiedCSVsDisabled bool
oauthClientID string
oidcExtraScopes []string
oidcIssuerURL string
oidcOCLoginCommand string
authType string
sessionEncryptionFile string
sessionAuthenticationFile string
capabilities []operatorv1.Capability
contentSecurityPolicyList map[v1.DirectiveType][]string
logos []operatorv1.Logo
techPreviewEnabled bool
}

func (b *ConsoleServerCLIConfigBuilder) Host(host string) *ConsoleServerCLIConfigBuilder {
Expand Down Expand Up @@ -272,11 +271,6 @@ func (b *ConsoleServerCLIConfigBuilder) ContentSecurityPolicies(cspList map[v1.D
return b
}

func (b *ConsoleServerCLIConfigBuilder) ContentSecurityPolicyEnabled(enabled bool) *ConsoleServerCLIConfigBuilder {
b.contentSecurityPolicyEnabled = enabled
return b
}

func (b *ConsoleServerCLIConfigBuilder) I18nNamespaces(i18nNamespaces []string) *ConsoleServerCLIConfigBuilder {
b.i18nNamespaceList = i18nNamespaces
return b
Expand Down Expand Up @@ -319,22 +313,21 @@ func (b *ConsoleServerCLIConfigBuilder) TechPreviewEnabled(techPreviewEnabled bo

func (b *ConsoleServerCLIConfigBuilder) Config() Config {
return Config{
Kind: "ConsoleConfig",
APIVersion: "console.openshift.io/v1",
Auth: b.auth(),
Session: b.session(),
ClusterInfo: b.clusterInfo(),
Customization: b.customization(),
ServingInfo: b.servingInfo(),
Providers: b.providers(),
MonitoringInfo: b.monitoringInfo(),
Plugins: b.plugins(),
PluginsOrder: b.getPluginsOrder(),
I18nNamespaces: b.i18nNamespaces(),
Proxy: b.proxy(),
ContentSecurityPolicy: b.contentSecurityPolicy(),
ContentSecurityPolicyEnabled: b.getContentSecurityPolicyEnabled(),
Telemetry: b.telemetry,
Kind: "ConsoleConfig",
APIVersion: "console.openshift.io/v1",
Auth: b.auth(),
Session: b.session(),
ClusterInfo: b.clusterInfo(),
Customization: b.customization(),
ServingInfo: b.servingInfo(),
Providers: b.providers(),
MonitoringInfo: b.monitoringInfo(),
Plugins: b.plugins(),
PluginsOrder: b.getPluginsOrder(),
I18nNamespaces: b.i18nNamespaces(),
Proxy: b.proxy(),
ContentSecurityPolicy: b.contentSecurityPolicy(),
Telemetry: b.telemetry,
}
}

Expand Down Expand Up @@ -618,10 +611,6 @@ func (b *ConsoleServerCLIConfigBuilder) contentSecurityPolicy() map[v1.Directive
return b.contentSecurityPolicyList
}

func (b *ConsoleServerCLIConfigBuilder) getContentSecurityPolicyEnabled() bool {
return b.contentSecurityPolicyEnabled
}

func (b *ConsoleServerCLIConfigBuilder) proxy() Proxy {
return Proxy{
Services: b.proxyServices,
Expand Down
31 changes: 15 additions & 16 deletions pkg/console/subresource/consoleserver/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,21 @@ import (

// Config is the top-level console server cli configuration.
type Config struct {
APIVersion string `yaml:"apiVersion"`
Kind string `yaml:"kind"`
ServingInfo `yaml:"servingInfo"`
ClusterInfo `yaml:"clusterInfo"`
Auth `yaml:"auth"`
Session `yaml:"session"`
Customization `yaml:"customization"`
Providers `yaml:"providers"`
MonitoringInfo `yaml:"monitoringInfo,omitempty"`
Plugins map[string]string `yaml:"plugins,omitempty"`
PluginsOrder []string `yaml:"pluginsOrder,omitempty"`
I18nNamespaces []string `yaml:"i18nNamespaces,omitempty"`
Proxy Proxy `yaml:"proxy,omitempty"`
ContentSecurityPolicy map[v1.DirectiveType][]string `yaml:"contentSecurityPolicy,omitempty"`
ContentSecurityPolicyEnabled bool `yaml:"contentSecurityPolicyEnabled,omitempty"`
Telemetry map[string]string `yaml:"telemetry,omitempty"`
APIVersion string `yaml:"apiVersion"`
Kind string `yaml:"kind"`
ServingInfo `yaml:"servingInfo"`
ClusterInfo `yaml:"clusterInfo"`
Auth `yaml:"auth"`
Session `yaml:"session"`
Customization `yaml:"customization"`
Providers `yaml:"providers"`
MonitoringInfo `yaml:"monitoringInfo,omitempty"`
Plugins map[string]string `yaml:"plugins,omitempty"`
PluginsOrder []string `yaml:"pluginsOrder,omitempty"`
I18nNamespaces []string `yaml:"i18nNamespaces,omitempty"`
Proxy Proxy `yaml:"proxy,omitempty"`
ContentSecurityPolicy map[v1.DirectiveType][]string `yaml:"contentSecurityPolicy,omitempty"`
Telemetry map[string]string `yaml:"telemetry,omitempty"`
}

type Proxy struct {
Expand Down