Openshift Web Console 自定义

openshift4 提供了一些CRD 来修改web console,方便我们作一些告示和自定义帮助链接、第三方平台跳转。
需要注意的是有限修改,改一些为了便捷可视化的内容,毕竟想一想,要在左边加个菜单可不是那么简单的事情。

一共有4个CRD
ConsoleNotifications :定义页面抬头颜色和告示
ConsoleExternalLogLinks :pod 日志外部跳转链接
ConsoleLinks :自定义外部链接
ConsoleCLIDownloads :自定义常用cli工具下载

另外从 4.7 开始已经增加了中文支持(还有日文),对于新用户更友好一些。

下面具体介绍这4个 CRD 怎么用,及其效果。
以下操作内容均需 cluster-admin 权限。

ConsoleNotifications

这个能干啥呢,比如给不同的环境整个不一样的颜色,免得不小心混了。或者写点什么告诉你的小伙伴生产环境悠着点,还可以写上你队友的电话号码。又或者来个帮助文档的链接,都是ok的。
后面会介绍另外一种方式可以添加更多链接。

ConsoleNotification.png
[root@bastion console-crd]# cat ConsoleNotification.yaml 
apiVersion: console.openshift.io/v1
kind: ConsoleNotification
metadata:
  name: example
spec:
  text: 这是生产环境,请遵循变更流程谨慎操作。
  location: BannerTop ##Other options are BannerBottom, BannerTopBottom
  link:
    href: 'https://www.example.com'
    text: 有不会的点这里
  color: '#fff'
  backgroundColor: red

text: 显示的文字内容。
location: BannerTop 显示在上面,也可以在下面或者上下一起(看着会有点奇怪,哈)。
link: 超链接了,可以用了跳转帮助文档页面。
color: 字体颜色。
backgroundColor: 背景色。
颜色可以直接写英文,也可以写编码,这边有个对照表。
http://xh.5156edu.com/page/z1015m9220j18754.html

比如
MediumBlue 中蓝色 #0000CD
Gold 金色 #FFD700

ConsoleExternalLogLinks

针对将日志转发到外部平台的情况。
现在很多客户都建设了大数据平台,会要求将应用日志发送到统一的日志平台。
openshift 页面默认的日志跳转是指向平台内部kibana地址的(前提是安装了EFK)。
如下图

show-in-kibana.png

kibana.png

通过 ConsoleExternalLogLinks 可以定义好外部的日志查询地址和规则,一键跳转,不需要到日志平台再去输入查询规则。

我没有去实际做转发日志到外部日志服务器,只测试下跳转能力。

[root@bastion console-crd]# cat ConsoleExternalLogLink.yaml 
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

导入后,log 页面多了一个跳转按钮。按钮名称就是上面的 text 内容。

ConsoleExternalLogLink.png

ConsoleLinks

添加自定义超链接。
有几个地方可以加,分别是 User Menu,Help Menu,Application Menu,NamespaceDashboard

ConsoleLinks-1.png

User Menu & Help Menu

这两个可配置参数是一样的,location 不同而已。 可用于链接到用户文档、帮助文档。

ConsoleLink-helplink.png
[root@bastion console-crd]# cat ConsoleLink-help.yaml 
apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
 name: openshift-help-zh
spec:
 href: 'https://access.redhat.com/documentation/zh-cn/openshift_container_platform/4.7/'
 location: HelpMenu
 text: Openshift 官方帮助文档

Application Menu

用于链接到 openshift 平台组件或者其他平台地址,如git代码库地址,监控等。
像 openshift GitOps operator, EFK operator 部署完成后,自动添加了两个 Application Menu
比上面的两个 menu 多了两个参数,section 可以分类,imageURL可以添加一个小logo

[root@bastion console-crd]# cat  ConsoleLink-Application.yaml
apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
  name:  applicationmenu-k8s
spec:
  applicationMenu:
    imageURL: data:image/png;base64,iVBORw0KGgoAAAAN........

    section: Kubernetes Blogs
  href: 'https://github.com/cai11745/k8s-ocp-yaml'
  location: ApplicationMenu
  text: Caifeng's k8s Blog

imageURL 可以是一个http的在线图片, http://xxx/xx.png
也可以是png 转成base64,不要用太大的图,我这边用了一个k8s的logo,转完也很多行,我就不贴了。

随便搜一下 png to base64 就会出来很多在线工具。
https://onlinepngtools.com/convert-png-to-base64
https://www.base64-image.de/

效果如下

ConsoleLink-application.png

NamespaceDashboard

这是加到 project 页面的,可以指定哪些 project 看到。

以下指定了 default,demo,demo-cicd 三个project,在 Home -> project 详情页可以看到配置的链接。

ConsoleLink-namspace.png
[root@bastion console-crd]# cat ConsoleLink-namspace.yaml 
apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
  name: example-namespace-dashboard
spec:
  href: 'https://www.example.com'
  location: NamespaceDashboard
  text: Namespace Dashboard Link
  namespaceDashboard:
    namespaces:
      - default
      - demo
      - demo-cicd

ConsoleCLIDownloads

用于配置一些 client 工具的下载说明和下载地址。
系统已经内置了 helm kam oc tkn 这些命令,不过他们的地址都是互联网的,可以修改为我们内网的,或者添加新的工具下载地址。

[root@bastion console-crd]# oc get ConsoleCLIDownload
NAME                  DISPLAY NAME                                            AGE
helm-download-links   helm - Helm 3 CLI                                       2021-04-08T04:25:11Z
kam                   GitOps Application Manager                              2021-05-10T02:40:34Z
oc-cli-downloads      oc - OpenShift Command Line Interface (CLI)             2021-04-08T06:11:45Z
odo-cli-downloads     odo - Developer-focused CLI for OpenShift               2021-04-08T06:11:45Z
tkn                   tkn - OpenShift Pipeline Command Line Interface (CLI)   2021-04-12T05:31:54Z

这些内容通过点击右上角 “?”符号 -> Command Line Tools
跳转到下载说明页面

Command-Line-Tools.png

oc 命令的配置页面,可以把 url 改成内网相应内容。

# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: console.openshift.io/v1
kind: ConsoleCLIDownload
metadata:
  creationTimestamp: "2021-04-08T06:11:45Z"
  generation: 1
  name: oc-cli-downloads
  resourceVersion: "116909"
  selfLink: /apis/console.openshift.io/v1/consoleclidownloads/oc-cli-downloads
  uid: 7cd6735b-3e7c-45b1-b23a-de147d0dcf1b
spec:
  description: |
    With the OpenShift command line interface, you can create applications and manage OpenShift projects from a terminal.

    The oc binary offers the same capabilities as the kubectl binary, but it is further extended to natively support OpenShift Container Platform features.
  displayName: oc - OpenShift Command Line Interface (CLI)
  links:
  - href: https://downloads-openshift-console.apps.ocp4.example.com/amd64/linux/oc.tar
    text: Download oc for Linux for x86_64
  - href: https://downloads-openshift-console.apps.ocp4.example.com/amd64/mac/oc.zip
    text: Download oc for Mac for x86_64
  - href: https://downloads-openshift-console.apps.ocp4.example.com/amd64/windows/oc.zip
    text: Download oc for Windows for x86_64
  - href: https://downloads-openshift-console.apps.ocp4.example.com/arm64/linux/oc.tar
    text: Download oc for Linux for ARM 64 (unsupported)
  - href: https://downloads-openshift-console.apps.ocp4.example.com/ppc64le/linux/oc.tar
    text: Download oc for Linux for IBM Power, little endian
  - href: https://downloads-openshift-console.apps.ocp4.example.com/s390x/linux/oc.tar
    text: Download oc for Linux for IBM Z
  - href: https://downloads-openshift-console.apps.ocp4.example.com/oc-license
    text: LICENSE

参考链接

https://www.openshift.com/blog/openshift-4-2-console-customization

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容