In Openshift 4, we built a brand new UI(Console) from the ground up with the goal in mind of keeping it simple, while still giving admins the ability to customize and extend it for their needs. In this blog, we’ll answer the following Console-related questions:

  • What can I customize in the Console?
  • What are some of the Console customization use cases?
  • How can I enable the different Console customizations?

The new Console Customizations are built using Custom Resource Definitions(CRD), allowing cluster admins a powerful mechanism to modify the Console as they see fit. The Console code has been written to detect certain CRDs that dynamically update the Console views. New in Openshift 4.2, the following Console CRDs are available for use:

  • ConsoleNotifications
  • ConsoleExternalLogLinks
  • ConsoleLinks
  • ConsoleCLIDownloads

The first thing to notice is that we use the identifier “Console” as the prefix for all our Console Customization CRDs. You can access the Console CRDs from the Console/ Administration/ Custom Resource Definitions navigation item. Just filter by “Console” to remove other items from the list:

 

Now let's explore what each of these CRDs enable us to customize:

ConsoleNotifications CRD allows admins to create a banner of your choice of color with optional text and hyperlinks embedded into it. You have the option of placing the banner on the top, bottom, or top and bottom of the page. Take a look at the following sample schema:

apiVersion: console.openshift.io/v1
kind: ConsoleNotification
metadata:
name: example
spec:
text: This is an example notification message with an optional link.
location: BannerTop ##Other options are BannerBottom, BannerTopBottom
link:
href: 'https://www.example.com'
text: Optional link text
color: '#fff'
backgroundColor: purple

The results will generate you the following view:

 

Potential Use Case: I want to clearly mark that this is a production cluster.

ConsoleExternalLogLinks CRD enable you to link to external logging solutions instead of using OpenShift Container Platform’s EFK logging stack.

hrefTemplate:

hrefTemplate is an absolute secure URL (must use https) for the log link including variables to be replaced. Variables are specified in the URL with the format ${variableName}, for instance, ${containerName} and will be replaced with the corresponding values from the resource. Resource is a pod.

Supported variables are

* ${resourceName} - name of the resource which contains the logs

* ${resourceUID} - UID of the resource which contains the logs

* e.g. `11111111-2222-3333-4444-555555555555`

* ${containerName} - name of the resource's container that contains the logs

* ${resourceNamespace} - namespace of the resource that contains the logs

* ${podLabels} - JSON representation of labels matching the pod with the logs

* e.g. `{"key1":"value1","key2":"value2"}`

Example hrefTemplate: https://example.com/logs?resourceName=${resourceName}&containerName=${containerName}&resourceNamespace=${resourceNamespace}&podLabels=${podLabels}

Take a look at the following sample logging configuration:

apiVersion: console.openshift.io/v1
kind: ConsoleExternalLogLink
metadata:
creationTimestamp: '2019-09-09T18:50:09Z'
generation: 1
name: example
resourceVersion: '310302'
selfLink: /apis/console.openshift.io/v1/consoleexternalloglinks/example
uid: a5a05876-d332-11e9-9414-0aebe39a74f4
spec:
hrefTemplate: >-
https://example.com/logs?resourceName=${resourceName}&containerName=${containerName}&resourceNamespace=${resourceNamespace}&podLabels=${podLabels}
text: Example Logs

Potential Use Case: I want to send my logs to DataDog.

ConsoleLinks CRD enables a cluster admin to add links to the following menus:

  • User Menu
  • Help Menu
  • Application Menu

User Menu

For the User menu you have the following configuration items:

  • DISPLAY STRING
  • URL

Take a look at the following sample link:

apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
name: example
spec:
href: 'https://www.example.com'
location: UserMenu
text: Additional user menu link

The results will generate you the following User Menu:

Potential Use Case: I want to link to additional user information.

Help Menu

For the Help menu you have the following configuration items:

  • DISPLAY STRING
  • URL

Take a look at the following sample link:

apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
name: example
spec:
href: 'https://www.example.com'
location: HelpMenu
text: Additional help menu link

The results will generate you the following Help Menu:

 

Potential Use Case: I want to link to additional help information.

Application Menu

For the Application menu you have the following configuration items:

  • DISPLAY STRING
  • URL
  • SECTION
  • LOGO

Take a look at the following sample link:

apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
name: example
spec:
applicationMenu:
section: ThirdParty Applications
href: 'https://www.example.com'
location: ApplicationMenu
text: My App link

The results will generate you the following Application Menu:

Potential Use Case: I want to link to another application dashboard.

ConsoleCLIDownloads CRDS is designed to enable admins to create links to useful command lines for their users. The CLI download description can include markdown such as paragraphs, unordered lists, code, links, etc.

Take a look at the following sample CLI:

apiVersion: console.openshift.io/v1
kind: ConsoleCLIDownload
metadata:
creationTimestamp: '2019-07-25T07:03:43Z'
generation: 1
name: example
resourceVersion: '413626'
selfLink: /apis/console.openshift.io/v1/consoleclidownloads/example
uid: 56df3c2e-aeaa-11e9-b4e5-0690f22365f6
spec:
description: >
  This is an example CLI download description that can include markdown such
  as paragraphs, unordered lists, code, [links](https://www.example.com), etc.

 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce a lobortis
 justo, eu suscipit purus.
displayName: examplecli
links:
  - href: 'https://www.example.com'

The results will generate the following view:

 

Potential Use Case: Allow third party\customer applications to offer their CLIs for download.

Using CRDs to enable customization now affords us the ability to programatically update the Console. Any Operator can now extend the Console by using the Console Customization CRDs. The following example shows a link to the Couchbase user interface via the Application Launcher Menu. This entry was programmatically added when the Couchbase Operator was installed. Operators now have the ability to use any of the Console CRDs to enhance their user experience in the Console.

 


저자 소개

UI_Icon-Red_Hat-Close-A-Black-RGB

채널별 검색

automation icon

오토메이션

기술, 팀, 인프라를 위한 IT 자동화 최신 동향

AI icon

인공지능

고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트

open hybrid cloud icon

오픈 하이브리드 클라우드

하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요

security icon

보안

환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보

edge icon

엣지 컴퓨팅

엣지에서의 운영을 단순화하는 플랫폼 업데이트

Infrastructure icon

인프라

세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보

application development icon

애플리케이션

복잡한 애플리케이션에 대한 솔루션 더 보기

Virtualization icon

가상화

온프레미스와 클라우드 환경에서 워크로드를 유연하게 운영하기 위한 엔터프라이즈 가상화의 미래