×

添加自定义徽标和产品名称

您可以通过添加自定义徽标或自定义产品名称来创建自定义品牌。您可以同时设置两者,也可以只设置其中一个,因为这些设置彼此独立。

先决条件
  • 您必须具有管理员权限。

  • 创建您要使用的徽标文件。徽标可以是任何常用图像格式的文件,包括 GIF、JPG、PNG 或 SVG,并且其最大高度 (max-height) 限制为 60px。由于 ConfigMap 对象大小的限制,图像大小不得超过 1 MB。

步骤
  1. 将您的徽标文件导入 openshift-config 命名空间中的配置映射

    $ oc create configmap console-custom-logo --from-file /path/to/console-custom-logo.png -n openshift-config

    或者,您可以应用以下 YAML 来创建配置映射

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: console-custom-logo
      namespace: openshift-config
    binaryData:
      console-custom-logo.png: <base64-encoded_logo> ... (1)
    1 提供有效的 base64 编码徽标。
  2. 编辑 Web 控制台的操作符配置,以包含 customLogoFilecustomProductName

    $ 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,然后重新部署。

  3. 检查是否成功。如果出现任何问题,控制台集群操作符将报告 Degraded 状态,控制台操作符配置也将报告 CustomLogoDegraded 状态,但会给出原因,例如 KeyOrFilenameInvalidNoImageProvided

    要检查 clusteroperator,请运行

    $ oc get clusteroperator console -o yaml

    要检查控制台操作符配置,请运行

    $ oc get consoles.operator.openshift.io -o yaml
先决条件
  • 您必须具有管理员权限。

步骤
  1. 从**管理** → **自定义资源定义**,单击**ConsoleLink**。

  2. 选择**实例**选项卡

  3. 单击**创建控制台链接**并编辑文件

    apiVersion: console.openshift.io/v1
    kind: ConsoleLink
    metadata:
      name: example
    spec:
      href: 'https://www.example.com'
      location: HelpMenu (1)
      text: Link 1
    1 有效的定位设置包括HelpMenuUserMenuApplicationMenuNamespaceDashboard

    要使自定义链接显示在所有命名空间中,请按照此示例操作

    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
  4. 点击保存以应用您的更改。

自定义控制台路由

对于consoledownloads路由,自定义路由功能使用ingress配置路由配置API。如果在ingress配置和console-operator配置中都设置了console自定义路由,则新的ingress配置自定义路由配置将优先。使用console-operator配置的路由配置已弃用。

自定义控制台路由

您可以通过在集群Ingress配置的spec.componentRoutes字段中设置自定义主机名和TLS证书来自定义控制台路由。

先决条件
  • 您已以具有管理员权限的用户身份登录到集群。

  • 您已在openshift-config命名空间中创建了一个包含TLS证书和密钥的密钥。如果自定义主机名后缀的域名与集群域名后缀不匹配,则需要此密钥。如果后缀匹配,则密钥是可选的。

    您可以使用oc create secret tls命令创建TLS密钥。

步骤
  1. 编辑集群Ingress配置

    $ oc edit ingress.config.openshift.io cluster
  2. 设置自定义主机名,并可选地设置服务证书和密钥

    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)的密钥的引用。如果自定义主机名后缀的域名与集群域名后缀不匹配,则需要此密钥。如果后缀匹配,则密钥是可选的。
  3. 保存文件以应用更改。

添加指向应用程序入口负载均衡器的自定义控制台路由的DNS记录。

自定义下载路由

您可以通过在集群Ingress配置的spec.componentRoutes字段中设置自定义主机名和TLS证书来自定义下载路由。

先决条件
  • 您已以具有管理员权限的用户身份登录到集群。

  • 您已在openshift-config命名空间中创建了一个包含TLS证书和密钥的密钥。如果自定义主机名后缀的域名与集群域名后缀不匹配,则需要此密钥。如果后缀匹配,则密钥是可选的。

    您可以使用oc create secret tls命令创建TLS密钥。

步骤
  1. 编辑集群Ingress配置

    $ oc edit ingress.config.openshift.io cluster
  2. 设置自定义主机名,并可选地设置服务证书和密钥

    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)的密钥的引用。如果自定义主机名后缀的域名与集群域名后缀不匹配,则需要此密钥。如果后缀匹配,则密钥是可选的。
  3. 保存文件以应用更改。

添加指向应用程序入口负载均衡器的自定义下载路由的DNS记录。

自定义登录页面

使用自定义登录页面创建服务条款信息。如果您使用第三方登录提供商(例如GitHub或Google),则自定义登录页面也很有用,这样可以在重定向到身份验证提供商之前向用户显示他们信任并期望的品牌页面。您还可以渲染身份验证过程中的自定义错误页面。

自定义错误模板仅限于使用重定向的身份提供商 (IDP),例如请求标头和基于 OIDC 的 IDP。它对使用直接密码身份验证的 IDP(例如 LDAP 和 htpasswd)无效。

先决条件
  • 您必须具有管理员权限。

步骤
  1. 运行以下命令以创建您可以修改的模板

    $ oc adm create-login-template > login.html
    $ oc adm create-provider-selection-template > providers.html
    $ oc adm create-error-template > errors.html
  2. 创建密钥

    $ 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
  3. 运行

    $ oc edit oauths cluster
  4. 更新规范

    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,则可以为您的链接定义模板。

先决条件
  • 您必须具有管理员权限。

步骤
  1. 管理自定义资源定义中,点击ConsoleExternalLogLink

  2. 选择**实例**选项卡

  3. 点击创建 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

创建自定义通知横幅

先决条件
  • 您必须具有管理员权限。

步骤
  1. 管理自定义资源定义中,点击ConsoleNotification

  2. 选择**实例**选项卡

  3. 点击创建 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 有效的定位设置包括BannerTopBannerBottomBannerTopBottom
  4. 点击创建以应用您的更改。

自定义 CLI 下载

您可以配置用于下载 CLI 的链接,包括自定义链接文本和 URL,这些 URL 可以直接指向文件包或提供这些包的外部页面。

先决条件
  • 您必须具有管理员权限。

步骤
  1. 导航到管理自定义资源定义

  2. 从自定义资源定义 (CRD) 列表中选择ConsoleCLIDownload

  3. 点击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
  4. 点击保存按钮。

向 Kubernetes 资源添加 YAML 示例

您可以随时动态地向任何 Kubernetes 资源添加 YAML 示例。

先决条件
  • 您必须具有集群管理员权限。

步骤
  1. 管理自定义资源定义中,点击ConsoleYAMLSample

  2. 点击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文档的片段。

  3. 点击保存

自定义用户视角

OpenShift Container Platform Web 控制台默认提供两种视角,管理员开发者。根据已安装的控制台插件,您可能还有更多视角可用。作为集群管理员,您可以为所有用户或特定用户角色显示或隐藏视角。自定义视角可确保用户只能查看与其角色和任务相关的视角。例如,您可以向非特权用户隐藏管理员视角,以防止他们管理集群资源、用户和项目。同样,您可以向具有开发者角色的用户显示开发者视角,以便他们可以创建、部署和监控应用程序。

您还可以根据基于角色的访问控制 (RBAC) 自定义用户的视角可见性。例如,如果您自定义了用于监控目的的视角,这需要特定权限,则可以定义该视角仅对具有所需权限的用户可见。

每个视角都包含以下您可以使用 YAML 视图编辑的必填参数

  • id:定义要显示或隐藏的视角的ID

  • visibility:定义视角的状态以及所需的访问审查检查

  • state:定义视角是启用、禁用还是需要访问审查检查

默认情况下,所有视角都已启用。当您自定义用户视角时,您的更改将应用于整个集群。

使用 YAML 视图自定义视角

先决条件
  • 您必须具有管理员权限。

步骤
  1. 管理员视角中,导航到管理集群设置

  2. 选择配置选项卡,然后点击Console (operator.openshift.io)资源。

  3. 点击YAML选项卡并进行自定义

    1. 要启用或禁用视角,请插入添加用户视角的代码段,并根据需要编辑 YAML 代码

      apiVersion: operator.openshift.io/v1
      kind: Console
      metadata:
        name: cluster
      spec:
        customization:
          perspectives:
            - id: admin
              visibility:
                state: Enabled
            - id: dev
              visibility:
                state: Enabled
    2. 要根据 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
    3. 要根据您的需求自定义视角,请创建您自己的 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
  4. 点击保存

使用表单视图自定义视角

先决条件
  • 您必须具有管理员权限。

步骤
  1. 管理员视角中,导航到管理集群设置

  2. 选择配置选项卡,然后点击Console (operator.openshift.io)资源。

  3. 点击页面右侧的操作自定义

  4. 常规设置中,通过从下拉列表中选择以下选项之一来自定义视角

    • 已启用:为所有用户启用该视角

    • 仅限特权用户可见:启用可列出所有命名空间用户的视角

    • 仅限非特权用户可见:启用无法列出所有命名空间用户的视角

    • 已禁用:对所有用户禁用此视角

      将打开一个通知,确认您的更改已保存。

      customizing user perspective

      自定义用户视角后,您的更改会自动保存,并在浏览器刷新后生效。

开发者目录及其子目录的自定义

作为集群管理员,您可以组织和管理开发者目录或其子目录。您可以启用或禁用子目录类型,或禁用整个开发者目录。

developerCatalog.types 对象包含以下参数,您必须在代码片段中定义这些参数才能在 YAML 视图中使用它们

  • state:定义应启用还是禁用开发者目录类型的列表。

  • enabled:定义对用户可见的开发者目录类型(子目录)列表。

  • disabled:定义对用户不可见的开发者目录类型(子目录)列表。

您可以使用 YAML 视图或表单视图启用或禁用以下开发者目录类型(子目录)。

  • 构建器镜像

  • 模板

  • Devfile

  • 示例

  • Helm Chart

  • 事件源

  • 事件接收器

  • Operator 支持

使用 YAML 视图自定义开发者目录或其子目录

您可以通过编辑 YAML 视图中的 YAML 内容来自定义开发者目录。

先决条件
  • 具有集群管理员权限的 OpenShift Web 控制台会话。

步骤
  1. 在 Web 控制台的管理员视角中,导航到管理集群设置

  2. 选择配置选项卡,单击控制台 (operator.openshift.io) 资源,然后查看详细信息页面。

  3. 单击YAML 选项卡以打开编辑器并根据需要编辑 YAML 内容。

    例如,要禁用开发者目录类型,请插入以下代码片段,该片段定义了已禁用的开发者目录资源列表。

    apiVersion: operator.openshift.io/v1
    kind: Console
    metadata:
      name: cluster
    ...
    spec:
      customization:
        developerCatalog:
          categories:
          types:
            state: Disabled
            disabled:
              - BuilderImage
              - Devfile
              - HelmChart
    ...
  4. 点击保存

默认情况下,开发者目录类型在 Web 控制台的管理员视图中启用。

使用表单视图自定义开发者目录或其子目录

您可以使用 Web 控制台中的表单视图自定义开发者目录。

先决条件
  • 具有集群管理员权限的 OpenShift Web 控制台会话。

  • 已启用开发者视角。

步骤
  1. 管理员视角中,导航到管理集群设置

  2. 选择配置选项卡,然后点击Console (operator.openshift.io)资源。

  3. 单击操作自定义

  4. 启用或禁用预设导航项添加页面开发者目录部分中的项目。

    验证

    自定义开发者目录后,您的更改会自动保存到系统中,并在浏览器刷新后生效。

    odc customizing developer catalog

作为管理员,您可以定义默认情况下对所有用户显示的导航项。您还可以重新排序导航项。

您可以使用类似的步骤来自定义 Web UI 项目,例如快速入门、集群角色和操作。

YAML 文件更改示例

您可以在 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
          - ...