$ oc create configmap console-custom-logo --from-file /path/to/console-custom-logo.png -n openshift-config
您可以自定义 OpenShift Container Platform Web 控制台以设置自定义徽标、产品名称、链接、通知和命令行下载。如果您需要根据特定的公司或政府要求调整 Web 控制台,这将特别有用。
您可以通过添加自定义徽标或自定义产品名称来创建自定义品牌。您可以同时设置两者,也可以只设置其中一个,因为这些设置彼此独立。
您必须具有管理员权限。
创建您要使用的徽标文件。徽标可以是任何常用图像格式的文件,包括 GIF、JPG、PNG 或 SVG,并且其最大高度 (max-height
) 限制为 60px
。由于 ConfigMap
对象大小的限制,图像大小不得超过 1 MB。
将您的徽标文件导入 openshift-config
命名空间中的配置映射
$ oc create configmap console-custom-logo --from-file /path/to/console-custom-logo.png -n openshift-config
或者,您可以应用以下 YAML 来创建配置映射
|
编辑 Web 控制台的操作符配置,以包含 customLogoFile
和 customProductName
$ oc edit consoles.operator.openshift.io cluster
apiVersion: operator.openshift.io/v1
kind: Console
metadata:
name: cluster
spec:
customization:
customLogoFile:
key: console-custom-logo.png
name: console-custom-logo
customProductName: My Console
更新操作符配置后,它会将自定义徽标配置映射同步到控制台命名空间,将其挂载到控制台 Pod,然后重新部署。
检查是否成功。如果出现任何问题,控制台集群操作符将报告 Degraded
状态,控制台操作符配置也将报告 CustomLogoDegraded
状态,但会给出原因,例如 KeyOrFilenameInvalid
或 NoImageProvided
。
要检查 clusteroperator
,请运行
$ oc get clusteroperator console -o yaml
要检查控制台操作符配置,请运行
$ oc get consoles.operator.openshift.io -o yaml
您必须具有管理员权限。
从**管理** → **自定义资源定义**,单击**ConsoleLink**。
选择**实例**选项卡
单击**创建控制台链接**并编辑文件
apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
name: example
spec:
href: 'https://www.example.com'
location: HelpMenu (1)
text: Link 1
1 | 有效的定位设置包括HelpMenu 、UserMenu 、ApplicationMenu 和NamespaceDashboard 。 |
要使自定义链接显示在所有命名空间中,请按照此示例操作
apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
name: namespaced-dashboard-link-for-all-namespaces
spec:
href: 'https://www.example.com'
location: NamespaceDashboard
text: This appears in all namespaces
要使自定义链接仅显示在某些命名空间中,请按照此示例操作
apiVersion: console.openshift.io/v1
kind: ConsoleLink
metadata:
name: namespaced-dashboard-for-some-namespaces
spec:
href: 'https://www.example.com'
location: NamespaceDashboard
# This text will appear in a box called "Launcher" under "namespace" or "project" in the web console
text: Custom Link Text
namespaceDashboard:
namespaces:
# for these specific namespaces
- my-namespace
- your-namespace
- other-namespace
要使自定义链接显示在应用程序菜单中,请按照此示例操作
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
点击保存以应用您的更改。
对于console
和downloads
路由,自定义路由功能使用ingress
配置路由配置API。如果在ingress
配置和console-operator
配置中都设置了console
自定义路由,则新的ingress
配置自定义路由配置将优先。使用console-operator
配置的路由配置已弃用。
您可以通过在集群Ingress
配置的spec.componentRoutes
字段中设置自定义主机名和TLS证书来自定义控制台路由。
您已以具有管理员权限的用户身份登录到集群。
您已在openshift-config
命名空间中创建了一个包含TLS证书和密钥的密钥。如果自定义主机名后缀的域名与集群域名后缀不匹配,则需要此密钥。如果后缀匹配,则密钥是可选的。
您可以使用 |
编辑集群Ingress
配置
$ oc edit ingress.config.openshift.io cluster
设置自定义主机名,并可选地设置服务证书和密钥
apiVersion: config.openshift.io/v1
kind: Ingress
metadata:
name: cluster
spec:
componentRoutes:
- name: console
namespace: openshift-console
hostname: <custom_hostname> (1)
servingCertKeyPairSecret:
name: <secret_name> (2)
1 | 自定义主机名。 |
2 | 对openshift-config 命名空间中包含TLS证书(tls.crt )和密钥(tls.key )的密钥的引用。如果自定义主机名后缀的域名与集群域名后缀不匹配,则需要此密钥。如果后缀匹配,则密钥是可选的。 |
保存文件以应用更改。
添加指向应用程序入口负载均衡器的自定义控制台路由的DNS记录。 |
您可以通过在集群Ingress
配置的spec.componentRoutes
字段中设置自定义主机名和TLS证书来自定义下载路由。
您已以具有管理员权限的用户身份登录到集群。
您已在openshift-config
命名空间中创建了一个包含TLS证书和密钥的密钥。如果自定义主机名后缀的域名与集群域名后缀不匹配,则需要此密钥。如果后缀匹配,则密钥是可选的。
您可以使用 |
编辑集群Ingress
配置
$ oc edit ingress.config.openshift.io cluster
设置自定义主机名,并可选地设置服务证书和密钥
apiVersion: config.openshift.io/v1
kind: Ingress
metadata:
name: cluster
spec:
componentRoutes:
- name: downloads
namespace: openshift-console
hostname: <custom_hostname> (1)
servingCertKeyPairSecret:
name: <secret_name> (2)
1 | 自定义主机名。 |
2 | 对openshift-config 命名空间中包含TLS证书(tls.crt )和密钥(tls.key )的密钥的引用。如果自定义主机名后缀的域名与集群域名后缀不匹配,则需要此密钥。如果后缀匹配,则密钥是可选的。 |
保存文件以应用更改。
添加指向应用程序入口负载均衡器的自定义下载路由的DNS记录。 |
使用自定义登录页面创建服务条款信息。如果您使用第三方登录提供商(例如GitHub或Google),则自定义登录页面也很有用,这样可以在重定向到身份验证提供商之前向用户显示他们信任并期望的品牌页面。您还可以渲染身份验证过程中的自定义错误页面。
自定义错误模板仅限于使用重定向的身份提供商 (IDP),例如请求标头和基于 OIDC 的 IDP。它对使用直接密码身份验证的 IDP(例如 LDAP 和 htpasswd)无效。 |
您必须具有管理员权限。
运行以下命令以创建您可以修改的模板
$ oc adm create-login-template > login.html
$ oc adm create-provider-selection-template > providers.html
$ oc adm create-error-template > errors.html
创建密钥
$ 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
运行
$ oc edit oauths cluster
更新规范
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
# ...
spec:
templates:
error:
name: error-template
login:
name: login-template
providerSelection:
name: providers-template
运行oc explain oauths.spec.templates
以了解选项。
如果您已连接到帮助您浏览日志的服务,但需要以特定方式生成URL,则可以为您的链接定义模板。
您必须具有管理员权限。
从管理→自定义资源定义中,点击ConsoleExternalLogLink。
选择**实例**选项卡
点击创建 Console 外部日志链接并编辑文件
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
您必须具有管理员权限。
从管理→自定义资源定义中,点击ConsoleNotification。
选择**实例**选项卡
点击创建 Console 通知并编辑文件
apiVersion: console.openshift.io/v1
kind: ConsoleNotification
metadata:
name: example
spec:
text: This is an example notification message with an optional link.
location: BannerTop (1)
link:
href: 'https://www.example.com'
text: Optional link text
color: '#fff'
backgroundColor: '#0088ce'
1 | 有效的定位设置包括BannerTop 、BannerBottom 和BannerTopBottom 。 |
点击创建以应用您的更改。
您可以配置用于下载 CLI 的链接,包括自定义链接文本和 URL,这些 URL 可以直接指向文件包或提供这些包的外部页面。
您必须具有管理员权限。
导航到管理→自定义资源定义。
从自定义资源定义 (CRD) 列表中选择ConsoleCLIDownload。
点击YAML选项卡,然后进行编辑
apiVersion: console.openshift.io/v1
kind: ConsoleCLIDownload
metadata:
name: example-cli-download-links
spec:
description: |
This is an example of download links
displayName: example
links:
- href: 'https://www.example.com/public/example.tar'
text: example for linux
- href: 'https://www.example.com/public/example.mac.zip'
text: example for mac
- href: 'https://www.example.com/public/example.win.zip'
text: example for windows
点击保存按钮。
您可以随时动态地向任何 Kubernetes 资源添加 YAML 示例。
您必须具有集群管理员权限。
从管理→自定义资源定义中,点击ConsoleYAMLSample。
点击YAML并编辑文件
apiVersion: console.openshift.io/v1
kind: ConsoleYAMLSample
metadata:
name: example
spec:
targetResource:
apiVersion: batch/v1
kind: Job
title: Example Job
description: An example Job YAML sample
yaml: |
apiVersion: batch/v1
kind: Job
metadata:
name: countdown
spec:
template:
metadata:
name: countdown
spec:
containers:
- name: counter
image: centos:7
command:
- "bin/bash"
- "-c"
- "for i in 9 8 7 6 5 4 3 2 1 ; do echo $i ; done"
restartPolicy: Never
使用spec.snippet
表示YAML示例不是完整的YAML资源定义,而是一个可以插入用户光标处现有YAML文档的片段。
点击保存。
OpenShift Container Platform Web 控制台默认提供两种视角,管理员和开发者。根据已安装的控制台插件,您可能还有更多视角可用。作为集群管理员,您可以为所有用户或特定用户角色显示或隐藏视角。自定义视角可确保用户只能查看与其角色和任务相关的视角。例如,您可以向非特权用户隐藏管理员视角,以防止他们管理集群资源、用户和项目。同样,您可以向具有开发者角色的用户显示开发者视角,以便他们可以创建、部署和监控应用程序。
您还可以根据基于角色的访问控制 (RBAC) 自定义用户的视角可见性。例如,如果您自定义了用于监控目的的视角,这需要特定权限,则可以定义该视角仅对具有所需权限的用户可见。
每个视角都包含以下您可以使用 YAML 视图编辑的必填参数
id
:定义要显示或隐藏的视角的ID
visibility
:定义视角的状态以及所需的访问审查检查
state
:定义视角是启用、禁用还是需要访问审查检查
默认情况下,所有视角都已启用。当您自定义用户视角时,您的更改将应用于整个集群。 |
您必须具有管理员权限。
在管理员视角中,导航到管理→集群设置。
选择配置选项卡,然后点击Console (operator.openshift.io)资源。
点击YAML选项卡并进行自定义
要启用或禁用视角,请插入添加用户视角的代码段,并根据需要编辑 YAML 代码
apiVersion: operator.openshift.io/v1
kind: Console
metadata:
name: cluster
spec:
customization:
perspectives:
- id: admin
visibility:
state: Enabled
- id: dev
visibility:
state: Enabled
要根据 RBAC 权限隐藏视角,请插入隐藏用户视角的代码段,并根据需要编辑 YAML 代码
apiVersion: operator.openshift.io/v1
kind: Console
metadata:
name: cluster
spec:
customization:
perspectives:
- id: admin
requiresAccessReview:
- group: rbac.authorization.k8s.io
resource: clusterroles
verb: list
- id: dev
state: Enabled
要根据您的需求自定义视角,请创建您自己的 YAML 代码段
apiVersion: operator.openshift.io/v1
kind: Console
metadata:
name: cluster
spec:
customization:
perspectives:
- id: admin
visibility:
state: AccessReview
accessReview:
missing:
- resource: deployment
verb: list
required:
- resource: namespaces
verb: list
- id: dev
visibility:
state: Enabled
点击保存。
作为集群管理员,您可以组织和管理开发者目录或其子目录。您可以启用或禁用子目录类型,或禁用整个开发者目录。
developerCatalog.types
对象包含以下参数,您必须在代码片段中定义这些参数才能在 YAML 视图中使用它们
state
:定义应启用还是禁用开发者目录类型的列表。
enabled
:定义对用户可见的开发者目录类型(子目录)列表。
disabled
:定义对用户不可见的开发者目录类型(子目录)列表。
您可以使用 YAML 视图或表单视图启用或禁用以下开发者目录类型(子目录)。
构建器镜像
模板
Devfile
示例
Helm Chart
事件源
事件接收器
Operator 支持
您可以通过编辑 YAML 视图中的 YAML 内容来自定义开发者目录。
具有集群管理员权限的 OpenShift Web 控制台会话。
在 Web 控制台的管理员视角中,导航到管理 → 集群设置。
选择配置选项卡,单击控制台 (operator.openshift.io) 资源,然后查看详细信息页面。
单击YAML 选项卡以打开编辑器并根据需要编辑 YAML 内容。
例如,要禁用开发者目录类型,请插入以下代码片段,该片段定义了已禁用的开发者目录资源列表。
apiVersion: operator.openshift.io/v1
kind: Console
metadata:
name: cluster
...
spec:
customization:
developerCatalog:
categories:
types:
state: Disabled
disabled:
- BuilderImage
- Devfile
- HelmChart
...
点击保存。
默认情况下,开发者目录类型在 Web 控制台的管理员视图中启用。 |
您可以使用 Web 控制台中的表单视图自定义开发者目录。
具有集群管理员权限的 OpenShift Web 控制台会话。
已启用开发者视角。
在管理员视角中,导航到管理→集群设置。
选择配置选项卡,然后点击Console (operator.openshift.io)资源。
单击操作 → 自定义。
启用或禁用预设导航项、添加页面和开发者目录部分中的项目。
自定义开发者目录后,您的更改会自动保存到系统中,并在浏览器刷新后生效。
作为管理员,您可以定义默认情况下对所有用户显示的导航项。您还可以重新排序导航项。 |
您可以使用类似的步骤来自定义 Web UI 项目,例如快速入门、集群角色和操作。 |
您可以在 YAML 编辑器中动态添加以下代码片段以自定义开发者目录。
使用以下代码片段通过将state类型设置为启用来显示所有子目录。
apiVersion: operator.openshift.io/v1
kind: Console
metadata:
name: cluster
...
spec:
customization:
developerCatalog:
categories:
types:
state: Enabled
使用以下代码片段通过将state类型设置为禁用来禁用所有子目录。
apiVersion: operator.openshift.io/v1
kind: Console
metadata:
name: cluster
...
spec:
customization:
developerCatalog:
categories:
types:
state: Disabled
当集群管理员定义在 Web 控制台中启用的子目录列表时,请使用以下代码片段。
apiVersion: operator.openshift.io/v1
kind: Console
metadata:
name: cluster
...
spec:
customization:
developerCatalog:
categories:
types:
state: Enabled
enabled:
- BuilderImage
- Devfile
- HelmChart
- ...