Chapter 4. Customizing the web console in OpenShift Container Platform
You can customize the OpenShift Container Platform web console to set a custom logo, product name, links, notifications, and command line downloads. This is especially helpful if you need to tailor the web console to meet specific corporate or government requirements.
4.1. Adding a custom logo and product name
You can create custom branding by adding a custom logo or custom product name. You can set both or one without the other, as these settings are independent of each other.
Prerequisites
- You must have administrator privileges.
-
Create a file of the logo that you want to use. The logo can be a file in any common image format, including GIF, JPG, PNG, or SVG, and is constrained to a
max-height
of60px
.
Procedure
Import your logo file into a ConfigMap in the
openshift-config
namespace:$ oc create configmap console-custom-logo --from-file ~/path/to/console-custom-logo.png -n openshift-config
Edit the web console’s Operator configuration to include
customLogoFile
andcustomProductName
:$ oc edit console.operator.openshift.io cluster
apiVersion: operator.openshift.io/v1 kind: Console metadata: name: cluster spec: customization: customLogoFile: name: console-custom-logo key: console-custom-logo.png customProductName: My Console
Once the Operator configuration is updated, it will sync the custom logo ConfigMap into the console namespace, mount it to the console pod, and redeploy.
Check for success. If there are any issues, the console cluster operator will report
Degraded
, and the console Operator configuration will also reportCustomLogoDegraded
, but with reasons likeKeyOrFilenameInvalid
orNoImageProvided
.To check the
clusteroperator
, run:$ oc get clusteroperator console -o yaml
To check the console Operator configuration, run:
$ oc get console.operator.openshift.io -o yaml
4.2. Creating custom links in the web console
Prerequisites
- You must have administrator privileges.
Procedure
-
From Administration
Custom Resource Definitions, click on ConsoleLink. Click YAML and edit the file:
apiVersion: console.openshift.io/v1 kind: ConsoleLink metadata: name: example spec: href: 'https://www.example.com' location: HelpMenu 1 text: Link 1
- 1
- Valid location settings are
HelpMenu
,UserMenu
, andApplicationMenu
.
To make the custom link appear in the application menu, follow this example:
apiVersion: console.openshift.io/v1 kind: ConsoleLink metadata: name: application-menu-link-1 spec: href: 'https://www.example.com' location: ApplicationMenu text: Link 1 applicationMenu: section: My New Section # image that is 24x24 in size imageURL: https://via.placeholder.com/24
- Click the Save button to apply your changes.
4.3. Customizing the login page
Create Terms of Service information with custom login pages. Custom login pages can also be helpful if you use a third-party login provider, such as GitHub or Google, to show users a branded page that they trust and expect before being redirected to the authentication provider. You can also render custom error pages during the authentication process.
Prerequisites
- You must have administrator privileges.
Procedure
Run the following commands to create templates you can modify:
$ oc adm create-login-template > login.html $ oc adm create-provider-selection-template > providers.html $ oc adm create-error-template > errors.html
Create the secrets:
$ oc create secret generic login-template --from-file=login.html -n openshift-config $ oc create secret generic providers-template --from-file=providers.html -n openshift-config $ oc create secret generic error-template --from-file=errors.html -n openshift-config
Run:
$ oc edit oauths cluster
Update the specification:
spec: templates: error: name: error-template login: name: login-template providerSelection: name: providers-template
Run
oc explain oauths.spec.templates
to understand the options.
4.4. Defining a template for an external log link
If you are connected to a service that helps you browse your logs, but you need to generate URLs in a particular way, then you can define a template for your link.
Prerequisites
- You must have administrator privileges.
Procedure
-
From Administration
Custom Resource Definitions, click on ConsoleExternalLogLink. Click YAML and edit the file:
apiVersion: console.openshift.io/v1 kind: ConsoleExternalLogLink metadata: name: example spec: hrefTemplate: >- https://example.com/logs?resourceName=${resourceName}&containerName=${containerName}&resourceNamespace=${resourceNamespace}&podLabels=${podLabels} text: Example Logs
4.5. Creating custom notification banners
Prerequisites
- You must have administrator privileges.
Procedure
-
From Administration
Custom Resource Definitions, click on ConsoleNotification. Click YAML and edit the file:
apiVersion: console.openshift.io/v1 kind: ConsoleNotification metadata: name: example spec: backgroundColor: '#0088ce' color: '#fff' link: href: 'https://www.example.com' text: Optional link text location: BannerTop 1 text: This is an example notification message with an optional link.
- 1
- Valid location settings are
BannerTop
,BannerBottom
, andBannerTopBottom
.
- Click the Save button to apply your changes.
4.6. Customizing CLI downloads
You can configure links for downloading the CLI with custom link text and URLs, which can point directly to file packages or to an external page that provides the packages.
Prerequisites
- You must have administrator privileges.
Procedure
-
Navigate to Administration
Custom Resource Definitions. - Select ConsoleCLIDownload from the list of Custom Resource Definitions (CRDs).
Click the YAML tab, and then make your edits:
apiVersion: console.openshift.io/v1 kind: ConsoleCLIDownload metadata: name: example-cli-download-links-for-foo spec: description: | This is an example of download links for foo displayName: example-foo links: - href: 'https://www.example.com/public/foo.tar' text: foo for linux - href: 'https://www.example.com/public/foo.mac.zip' text: foo for mac - href: 'https://www.example.com/public/foo.win.zip' text: foo for windows
- Click the Save button.