Web 控制台

OpenShift Container Platform 4.11

在 OpenShift Container Platform 中使用 web 控制台

Red Hat OpenShift Documentation Team

摘要

本文档提供了有关使用和定制 OpenShift Container Platform web 控制台的信息。

第 1 章 Web 控制台概述

Red Hat OpenShift Container Platform Web 控制台提供了一个图形用户界面,用于视觉化您的项目数据,并执行管理、管理和故障排除任务。Web 控制台在 openshift-console 项目的 control plane 节点上运行。它由一个 console-operator pod 管理。支持管理员开发者视角。

管理员开发者视角都允许您为 OpenShift Container Platform 创建快速开始指南。快速开始是关于用户任务的指导教程,可用于熟悉应用程序、Operator 或其他产品。

1.1. 关于 web 控制台中的 Administrator 视角

Administrator 视角可让您查看集群清单、容量、常规和特定使用信息以及重要事件的流,它们可帮助您简化计划和故障排除任务。项目管理员和开发人员可以使用管理员视角。

集群管理员还可在 OpenShift Container Platform 4.7 及之后的版本中为 web 终端 Operator 打开内嵌的命令行终端实例。

注意

显示的默认 Web 控制台视角取决于用户的角色。如果用户被视为管理员,则默认显示管理员视角。

管理员视角提供特定于管理员用例的工作流,例如:

  • 管理工作负载、存储、网络和集群设置。
  • 使用 Operator Hub 安装和管理 Operator。
  • 添加允许用户通过角色和角色绑定登录和管理用户访问权限的身份提供程序。
  • 查看和管理各种高级设置,如集群更新、部分集群更新、集群 Operator、自定义资源定义(CRD)、角色绑定和资源配额。
  • 访问和管理监控功能,如指标、警报和监控仪表板。
  • 查看并管理有关集群的日志记录、指标和高状态信息。
  • 在 OpenShift Container Platform 中,以视觉化的方式和与管理员视角关联的应用程序、组件和服务交互。

1.2. 关于 web 控制台中的开发者视角

开发者视角提供了几个用来部署应用程序、服务和数据库的内置方法。在开发者视角中,您可以:

  • 查看组件上滚动和重新创建推出部署的实时视觉化。
  • 查看应用状态、资源利用率、项目事件流和配额消耗。
  • 将您的项目与他人共享。
  • 通过在项目上运行 Prometheus Query Language(PromQL)查询并查看图表中呈现的指标来排除应用程序的问题。此指标数据提供有关集群以及要监控的任何用户定义工作负载的状态信息。

集群管理员也可以在 OpenShift Container Platform 4.7 及之后的版本中的 Web 控制台中打开内嵌的命令行终端实例。

注意

显示的默认 Web 控制台视角取决于用户的角色。如果用户是开发人员,则 Developer 视角会被默认显示。

Developer 视角提供开发人员用例特有的工作流,比如:

  • 通过导入现有代码基、镜像和容器文件在 OpenShift Container Platform 中创建和部署应用程序。
  • 在一个项目中,以可视的形式和与其关联的应用程序、组件和服务进行交互,并监控它们的部署和构建状态。
  • 在应用程序中对组件进行分组,并在应用程序内部及跨应用程序间连接组件。
  • 集成无服务器功能(技术预览)。
  • 使用 Eclipse Che 创建开发平台来编辑应用程序代码。

您可以使用 Topology 视图来显示项目的应用程序、组件和工作负载。如果项目中没有工作负载,则 Topology 视图将显示一些创建或导入它们的链接。您还可以使用 Quick Search 来直接导入组件。

其它资源

如需有关在 Developer 视角中使用 Topology 视图的更多信息,请参阅使用 Topology 视图查看应用程序组成

1.3. 访问视角

您可以通过 web 控制台访问 AdministratorDeveloper 视角,如下所示:

先决条件

要访问视角,请确保您已登陆到 web 控制台。您的默认视角由用户权限自动决定。对有权访问所有项目的用户选择 Administrator 视角,而对于对自己项目具有有限访问权限的用户选择 Developer 视角

其它资源

有关更改视角的更多信息,请参阅添加用户首选项

流程

  1. 使用视角切换器切换到 AdministratorDeveloper 视角。
  2. Project 下拉列表中选择一个现有项目。您也可以从此下拉菜单创建新项目。
注意

您只能以 cluster-admin 用户身份使用视角切换器。

第 2 章 访问Web控制台

OpenShift Container Platform Web控制台是可从Web浏览器访问的用户界面。开发人员可以使用Web控制台来直观地浏览并管理项目的内容。

2.1. 先决条件

2.2. 了解和访问Web控制台

Web控制台作为一个pod 在主服务器(master)上运行。这个 pod 提供了运行Web控制台所需的静态环境。当使用 openshift-install create cluster 成功安装 OpenShift Container Platform 后,在安装程序的 CLI 输出中找到已安装集群的 Web 控制台的 URL 及登录凭证。例如:

输出示例

INFO Install complete!
INFO Run 'export KUBECONFIG=<your working directory>/auth/kubeconfig' to manage the cluster with 'oc', the OpenShift CLI.
INFO The cluster is ready when 'oc login -u kubeadmin -p <provided>' succeeds (wait a few minutes).
INFO Access the OpenShift web-console here: https://console-openshift-console.apps.demo1.openshift4-beta-abcorp.com
INFO Login to the console with user: kubeadmin, password: <provided>

使用这些信息登录并访问Web控制台。

对于不是您安装的、已存在的集群,可以使用 oc whoami --show-console 查看 web 控制台 URL。

第 3 章 使用 OpenShift Container Platform dashboard 获取集群信息

OpenShift Container Platform Web 控制台会捕获集群的高级别信息。

3.1. 关于 OpenShift Container Platform 仪表板页

访问 OpenShift Container Platform 仪表板,它捕获了有关集群的高级别信息,方法是进入到 OpenShift Container Platform Web 控制台中的 HomeOverview

OpenShift Container Platform 仪表板提供各种集群信息,被分别显示在独立的仪表板卡中。

OpenShift Container Platform 仪表板由以下各卡组成:

  • Details 提供有关信息型集群详情的简单概述。

    状态包括 okerrorwarningin progressunknown。资源可添加自定义状态名称。

    • 集群 ID
    • 提供者
    • 版本
  • Cluster Inventory 详细列出资源数目和相关状态。这在通过干预解决问题时非常有用,其中包含以下相关信息:

    • 节点数
    • pod 数量
    • 持久性存储卷声明
    • 集群中的裸机主机,根据其状态列出(只在 metal3 环境中可用)。
    • 集群中的裸机主机,根据其状态列出(只在 metal3 环境中可用)
  • Status 可帮助管理员了解集群资源是如何被消耗的。点一个资源可以进入一个包括详细信息的页面,它列出了对指定集群资源(CPU 、内存或者存储)消耗最多的 Pod 和节点。
  • Cluster Utilization 显示指定时间段内各种资源的容量,以帮助管理员了解高资源消耗的规模和频率,包括以下信息:

    • CPU 时间
    • 内存分配
    • 所消耗的存储
    • 所消耗的网络资源
    • Pod 数量
  • Activity 列出了与集群中最近活动相关的消息,如创建 pod 或虚拟机迁移到另一台主机。

3.2. 识别资源和项目配额和配额

您可以在 web 控制台的 Developer 视角的 Topology 视图中查看可用资源的图形表示。

如果资源有一个关于达到资源限制或配额的消息,则会针对资源名称出现黄色的边框。点资源以打开侧面板来查看消息。如果 Topology 视图被缩放,则一个黄色点表示信息可用。

如果您在 View Shortcuts 菜单中使用 List View,则资源会显示为列表。Alerts 列指示消息是否可用。

第 4 章 添加用户首选项

您可以更改您的配置集的默认首选项以满足您的要求。您可以设置默认项目、拓扑视图(图形/列表)、编辑介质(格式或 YAML)以及语言首选项。

对用户首选项所做的更改会自动保存。

4.1. 设置用户首选项

您可以为集群设置默认用户首选项。

流程

  1. 使用您的登录凭证登录到 OpenShift Container Platform web 控制台。
  2. 使用 masthead 访问用户配置文件下的用户首选项。
  3. General 部分中:

    1. Theme 字段中,您可以设置您要工作的主题。每次登录时,控制台默认为所选主题。
    2. Perspective 字段中,您可以设置要登录到的默认视角。您可以根据需要选择 AdministratorDeveloper 视角。如果未选择透视图,您会登录到您最近看到的视角。
    3. Project 字段中,选择一个您要处理的项目。每次登录时,控制台默认为项目。
    4. Topology 字段中,您可以将拓扑视图设置为 default 到 graph 或 list 视图。如果未选中,控制台将默认为您使用的最后一个视图。
    5. Create/Edit resource method 字段中,您可以设置创建或编辑资源的首选。如果表单和 YAML 选项都可用,控制台默认为您的选择。
  4. Language 部分中,选择 默认浏览器语言 以使用默认浏览器语言设置。否则,请选择您要用于控制台的语言。
  5. Notifications 部分中,您可以在 Overview 页面或 notification drawer 中切换为特定项目创建的显示通知。
  6. Applications 部分:

    1. 您可以查看默认资源类型。例如,如果安装了 OpenShift Serverless Operator,则默认资源类型为 Serverless Deployment。否则,默认的资源类型为 Deployment
    2. 您可以从 Resource Type 字段选择另一个资源类型作为默认资源类型。

第 5 章 在OpenShift Container Platform中配置Web控制台

您可以修改 OpenShift Container Platform Web 控制台来设置注销重定向 URL 或禁用快速启动指南。

5.1. 先决条件

  • 部署一个OpenShift Container Platform集群。

5.2. 配置Web控制台

您可以通过编辑console.config.openshift.io资源来配置Web控制台设置。

  • 编辑console.config.openshift.io资源:

    $ oc edit console.config.openshift.io cluster

    以下是控制台的资源定义示例:

    apiVersion: config.openshift.io/v1
    kind: Console
    metadata:
      name: cluster
    spec:
      authentication:
        logoutRedirect: "" 1
    status:
      consoleURL: "" 2
    1
    指定用户注销后,Web控制台要加载页面的URL。如果未指定,则用户将会返回到Web控制台的登录页面。通过指定logoutRedirect URL,用户可以使用身份供应商的单点注销(SLO)功能销毁其单点登录会话。
    2
    Web控制台URL。要将它更新为自定义值,请参阅自定义 Web 控制台 URL

5.3. 在 web 控制台中禁用快速启动

您可以使用 Web 控制台的 Administrator 视角来禁用一个或多个快速启动。

先决条件

  • 有集群管理员权限并登录到 web 控制台。

流程

  1. Administrator 视角中,进入 AdministrationCluster Settings
  2. Cluster Settings 页面中,点 Configuration 选项卡。
  3. Configuration 页面中,点带有描述 operator.openshift.ioConsole 配置资源。

    Configuration 页面中的镜像显示要选择的正确控制台配置资源
  4. Action 下拉列表中,选择 Customize,以打开 Cluster 配置页面。
  5. General 选项卡中,在 Quick start 部分中,您可以在 EnabledDisabled 列表中选择项目,并使用箭头按钮将它们从一个列表中移到另一个列表中。

    • 要启用或禁用单个快速启动,请点快速启动,然后使用单个箭头按钮将快速启动移到适当的列表中。
    • 要一次启用或禁用多个快速启动,请按 Ctrl 并点击您要移动的快速启动。然后,使用单箭头按钮将快速启动移到适当的列表中。
    • 要一次启用或禁用所有快速启动,请点双箭头按钮将所有快速开始移到适当的列表中。

第 6 章 在 OpenShift Container Platform 中定制 Web 控制台

您可以对 OpenShift Container Platform web 控制台进行定制,如设置自定义徽标、产品名、链接、通知标语和命令行下载。这在您需要定制 Web 控制台以满足具体公司或政府要求时特别有用。

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

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

先决条件

  • 您必须具有管理员特权。
  • 创建一个要使用的徽标文件。徽标可以是通用图像格式的文件,包括 GIF 、JPG 、PNG 或 SVG ,并有 max-height60px的限制。

流程

  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 控制台的 Operator 配置使其包含 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

    更新 Operator 配置后,它将会把自定义的 logo 配置映射同步到控制台命名空间中,并将其挂载到 console pod 并重新部署。

  3. 检查操作是否成功。如果有任何问题,控制台集群 Operator 将报告 Degraded 状态,控制台 Operator 配置也会报告 CustomLogoDegraded 状态,但状态类似于 KeyOrFilenameInvalidNoImageProvided

    运行以下命令检查 clusteroperator

    $ oc get clusteroperator console -o yaml

    运行以下命令检查 console Operator 配置:

    $ oc get consoles.operator.openshift.io -o yaml

6.3. 自定义控制台路由

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

6.3.1. 自定义控制台路由

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

先决条件

  • 已使用具有管理特权的用户身份登录集群。
  • 您已在 openshift-config 命名空间中创建了包含 TLS 证书和密钥的 secret。如果自定义主机名后缀的域与集群域后缀不匹配,则需要此项。如果后缀匹配,secret 是可选的。

    提示

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

流程

  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 命名空间中的 secret 的引用,该 secret 包含 TLS 证书 (tls.crt) 和密钥 (tls.key)。如果自定义主机名后缀的域与集群域后缀不匹配,则需要此项。如果后缀匹配,secret 是可选的。
  3. 保存文件以使改变生效。

6.3.2. 自定义下载路由

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

先决条件

  • 已使用具有管理特权的用户身份登录集群。
  • 您已在 openshift-config 命名空间中创建了包含 TLS 证书和密钥的 secret。如果自定义主机名后缀的域与集群域后缀不匹配,则需要此项。如果后缀匹配,secret 是可选的。

    提示

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

流程

  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 命名空间中的 secret 的引用,该 secret 包含 TLS 证书 (tls.crt) 和密钥 (tls.key)。如果自定义主机名后缀的域与集群域后缀不匹配,则需要此项。如果后缀匹配,secret 是可选的。
  3. 保存文件以使改变生效。

6.4. 自定义登录页面

使用自定义登录页面创建服务条款信息。如果您使用第三方登录提供程序(如 GitHub 或 Google),在将用户信任并期望它重定向到认证提供程序之前,自定义登录页面也会很有用。您还可以在验证过程中显示自定义的错误页。

注意

自定义错误模板仅限于使用重定向的身份提供程序(IDP),如请求标头和基于 OIDC 的操作。它对使用直接密码身份验证的 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. 创建 secret:

    $ 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 以了解选项。

6.6. 创建自定义通知标语

先决条件

  • 您必须具有管理员特权。

流程

  1. AdministrationCustom Resource Definitions 中点 ConsoleNotification
  2. 选择 Instances 标签
  3. 点击 Create Console Notification 并编辑文件:

    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. Create 以应用您的更改。

6.7. 自定义 CLI 下载

您可以使用自定义链接文本和 URL 来配置用于下载 CLI 的链接。它们可以直接指向软件包的文件或提供软件包的外部页面。

先决条件

  • 您必须具有管理员特权。

流程

  1. 进入 AdministrationCustom Resource Definitions
  2. 从 Custom Resource Definitions (CRDs) 列表中选 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. Save 按钮。

6.8. 在 Kubernetes 资源中添加 YAML 示例

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

先决条件

  • 您必须具有集群管理员特权。

流程

  1. AdministrationCustom Resource Definitions 中点 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. 点击 Save

第 7 章 动态插件

7.1. 动态插件概述

7.1.1. 关于动态插件

动态插件允许您在运行时为接口添加自定义页面和其他扩展。ConsolePlugin 自定义资源使用控制台注册插件,集群管理员在 console-operator 配置中启用了插件。

重要

创建动态插件只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

7.1.2. 主要特性

通过动态插件,您可以对 OpenShift Container Platform 体验进行以下自定义:

  • 添加自定义页面。
  • 增加了除管理员和开发人员之外的其他视角。
  • 添加导航项。
  • 在资源页面中添加制表符和操作。

7.1.3. 常规指南

在创建插件时,请遵循以下常规准则:

  • 构建和运行插件需要 Node.jsyarn
  • 为您的 CSS 类名称加上插件名称前缀,以避免冲突。例如,my-plugin__headingmy-plugin_\_icon
  • 与其他控制台页面保持一致的外观、感觉和行为。
  • 在创建插件时遵循 react-i18next 指南。您可以使用类似以下示例中的 useTranslation hook:

    conster Header: React.FC = () => {
      const { t } = useTranslation('plugin__console-demo-plugin');
      return <h1>{t('Hello, World!')}</h1>;
    };
  • 避免可能影响插件组件之外的标记的选择器,如元素选择器。这些不是 API,可能随时更改。使用它们可能会破坏插件。

PatternFly 4 指南

在创建插件时,请按照以下使用 PatternFly 的准则进行以下操作:

  • 使用 PatternFly4 组件和 PatternFly CSS 变量。SDK 提供了核心 PatternFly 组件。使用 PatternFly 组件和变量可帮助您的插件在将来的控制台版本中保持一致。
  • 您可以按照 PatternFly 的可访问性基础,使您的插件能被访问。
  • 避免使用其他 CSS 库,如 Bootstrap 或 Tailwind。它们可能会与 PatternFly 冲突,不会与控制台的外观和感觉相匹配。

7.2. 动态插件入门

要开始使用动态插件,您必须设置您的环境来编写新的 OpenShift Container Platform 动态插件。有关如何编写新插件的示例,请参阅 Adding a tab to the pods 页

7.2.1. 动态插件开发

您可以使用本地开发环境运行插件。OpenShift Container Platform Web 控制台在一个连接到您登录的集群的容器中运行。

先决条件

  • 您必须有一个 OpenShift 集群正在运行。
  • 已安装 OpenShift CLI (oc)。
  • 需要安装 yarn
  • 已安装并运行 Docker v3.2.0 或更新版本或 Podman

流程

  1. 在终端中,运行以下命令使用 yarn 安装插件的依赖项。

    $ yarn install
  2. 安装后,运行以下命令来启动 yarn。

    $ yarn run start
  3. 在另一个终端窗口中,通过 CLI 登录 OpenShift Container Platform。

    $ oc login
  4. 运行以下命令,在连接到您登录的集群的容器中运行 OpenShift Container Platform Web 控制台:

    $ yarn run start-console

验证

  • 访问 localhost:9000 以查看正在运行的插件。检查 window.SERVER_FLAGS.consolePlugins 的值,以查看在运行时载入的插件列表。

7.3. 在集群中部署插件

您可以将插件部署到 OpenShift Container Platform 集群。

7.3.1. 使用 Docker 构建镜像

要在集群中部署插件,您需要构建镜像并将其推送到镜像 registry。

流程

  1. 使用以下命令构建镜像:

    $ docker build -t quay.io/my-repositroy/my-plugin:latest .
  2. 可选:如果要测试您的镜像,请运行以下命令:

    $ docker run -it --rm -d -p 9001:80 quay.io/my-repository/my-plugin:latest
  3. 运行以下命令推送镜像:

    $ docker push quay.io/my-repository/my-plugin:latest

7.3.2. 在集群中部署插件

在将镜像推送到 registry 后,您可以将插件部署到集群中。

流程

  1. 使用插件名称作为 Helm 发行版本名称安装 Helm chart,作为 Helm 发行版本名称,或由 -n 命令行选项指定的现有命名空间。使用以下命令,提供 plugin.image 参数中镜像的位置:

    $ helm upgrade -i  my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location

    其中:

    n <my-plugin-namespace>
    指定要将插件部署到的现有命名空间。
    --create-namespace
    可选:如果部署到新命名空间,请使用此参数。
    --set plugin.image=my-plugin-image-location
    指定 plugin.image 参数中镜像的位置。
  2. 可选: 您可以使用 charts/openshift-console-plugin/values.yaml 文件中的一组支持的参数来指定任何其他参数。
plugin:
  name: ""
  description: ""
  image: ""
  imagePullPolicy: IfNotPresent
  replicas: 2
  port: 9443
  securityContext:
    enabled: true
  podSecurityContext:
    enabled: true
    runAsNonRoot: true
    seccompProfile:
      type: RuntimeDefault
  containerSecurityContext:
    enabled: true
    allowPrivilegeEscalation: false
    capabilities:
      drop:
        - ALL
  resources:
    requests:
      cpu: 10m
      memory: 50Mi
  basePath: /
  certificateSecretName: ""
  serviceAccount:
    create: true
    annotations: {}
    name: ""
  patcherServiceAccount:
    create: true
    annotations: {}
    name: ""
  jobs:
    patchConsoles:
      enabled: true
      image: "registry.redhat.io/openshift4/ose-tools-rhel8@sha256:e44074f21e0cca6464e50cb6ff934747e0bd11162ea01d522433a1a1ae116103"
      podSecurityContext:
        enabled: true
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      containerSecurityContext:
        enabled: true
        allowPrivilegeEscalation: false
        capabilities:
          drop:
            - ALL
      resources:
        requests:
          cpu: 10m
          memory: 50Mi

验证

您可以在 Overview 页中看到启用的插件列表,或者通过 AdministrationCluster SettingsConfigurationConsole operator.openshift.ioConsole plugins

注意

显示新插件配置可能需要几分钟时间。如果没有看到插件,则在最近启用了插件时,可能需要刷新浏览器。如果您在运行时收到任何错误,请在浏览器开发人员工具中检查 JS 控制台,以查看插件代码中的任何错误。

7.3.3. 在浏览器中禁用您的插件

控制台用户可以使用 disable-plugins 查询参数来禁用通常会在运行时加载的特定或所有动态插件。

流程

  • 要禁用特定的插件,请从以逗号分隔的插件名称列表中删除您要禁用的插件。
  • 要禁用所有插件,请在 disable-plugins 查询参数中有一个空字符串。
注意

集群管理员可以在 web 控制台的 Cluster Settings 页面中禁用插件

7.4. 动态插件示例

在操作示例前,请按照动态插件开发中的步骤来验证插件是否正常工作。

7.4.1. 在 Pod 页面中添加标签页

您可以对 OpenShift Container Platform Web 控制台进行不同的自定义配置。设置您的环境以编写新的 OpenShift 控制台动态插件,并在 Pod 详情页面中添加标签页作为插件的一个示例扩展。

注意

OpenShift Container Platform Web 控制台在一个连接到您登录的集群的容器中运行。有关在创建自己的前测试插件的信息,请参阅"动态插件开发"。

先决条件

流程

  1. 在新标签页中,打开 console-plugin-template 存储库,其中包含用于在新标签页中创建插件的模板。

    重要

    红帽不支持自定义插件代码。对于插件,只有合作社区支持

  2. Use this templateCreate new repository 从模板创建 GitHub 存储库。
  3. 使用插件的名称替换新存储库。
  4. 将新存储库克隆到本地机器,以便您可以编辑代码。
  5. 编辑 package.json 文件,将插件的元数据添加到 consolePlugin 声明中。例如:

    "consolePlugin": {
      "name": "my-plugin", 1
      "version": "0.0.1", 2
      "displayName": "My Plugin", 3
      "description": "Enjoy this shiny, new console plugin!", 4
      "exposedModules": {
        "ExamplePage": "./components/ExamplePage"
      },
      "dependencies": {
        "@console/pluginAPI": "/*"
      }
    }
    1
    更新插件的名称。
    2
    更新版本。
    3
    更新插件的显示名称。
    4
    使用有关插件的同步更新描述。
  6. console-extensions.json 文件中添加以下内容:

    {
      "type": "console.tab/horizontalNav",
      "properties": {
        "page": {
          "name": "Example Tab",
          "href": "example"
        },
        "model": {
          "group": "core",
          "version": "v1",
          "kind": "Pod"
        },
        "component": { "$codeRef": "ExampleTab" }
      }
    }
  7. 编辑 package.json 文件以包括以下更改:

            "exposedModules": {
                "ExamplePage": "./components/ExamplePage",
                "ExampleTab": "./components/ExampleTab"
            }
  8. 通过创建新文件 src/components/ExampleTab.tsx 并添加以下脚本,在 Pod 页面上的一个新自定义标签页中写入信息:

    import * as React from 'react';
    
    export default function ExampleTab() {
        return (
            <p>This is a custom tab added to a resource using a dynamic plugin.</p>
        );
    }
  9. 使用以下命令,将带有插件名称的 Helm chart 作为 Helm 发行版本名称安装到由 -n 命令行选项指定的新命名空间或现有命名空间中,并提供 plugin.image 参数中镜像的位置,以在集群中部署插件:

    $ helm upgrade -i  my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location
    注意

    有关在集群中部署插件的更多信息,请参阅"在集群中部署插件"。

验证

  • 访问 Pod 页面查看添加的选项卡。

7.5. 动态插件参考

您可以添加允许您自定义插件的扩展。这些扩展随后会在运行时加载到控制台。

7.5.1. 动态插件扩展类型

7.5.1.1. console.action/filter

7.5.1.1.1. 概述

ActionFilter 可用于过滤操作。

7.5.1.1.2. Properties
Name值类型选填描述

contextId

string

上下文 ID 有助于将贡献操作的范围缩小到应用的特定区域。示例包括 topologyhelm

filter

CodeRef<(scope: any, action: Action) ⇒ boolean>

将根据某些条件过滤操作的功能。scope:为其提供操作的范围。如果要使用 Pod 横向自动扩展 (HPA) 从部署中删除 ModifyCount 操作,则可能需要 hook。

7.5.1.2. console.action/group

7.5.1.2.1. 概述

ActionGroup 贡献一个操作组,也可以是一个子菜单

7.5.1.2.2. Properties
Name值类型选填描述

id

string

用于识别操作部分的 ID。

label

string

UI 中显示的标签。子菜单是必需的。

submenu

布尔值

此组是否应显示为子菜单。

insertBefore

string | string[]

在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。

insertAfter

string | string[]

在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。insertBefore 值具有优先权。

7.5.1.3. console.action/provider

7.5.1.3.1. 概述

ActionProvider 贡献了一个 hook,用于返回特定上下文的操作列表。

7.5.1.3.2. Properties
Name值类型选填描述

contextId

string

上下文 ID 有助于将贡献操作的范围缩小到应用的特定区域。示例包括 topologyhelm

provider

CodeRef<ExtensionHook<Action[], any>>

一个 React hook,用于返回给定范围的操作。如果 contextId = resource,则范围始终为 Kubernetes 资源对象。

7.5.1.4. console.action/resource-provider

7.5.1.4.1. 概述

ResourceActionProvider 贡献 hook,用于返回特定资源模型的操作列表。

7.5.1.4.2. Properties
Name值类型选填描述

model

ExtensionK8sKindVersionModel

此提供程序提供操作的模型。

provider

CodeRef<ExtensionHook<Action[], any>>

反应 hook,它返回给定资源模型的操作

7.5.1.5. console.alert-action

7.5.1.5.1. 概述

(不可用)

7.5.1.5.2. Properties
Name值类型选填描述

alert

string

 

text

string

 

action

CodeRef<(alert: any) ⇒ void>

 

7.5.1.6. console.catalog/item-filter

7.5.1.6.1. 概述

(不可用)

7.5.1.6.2. Properties
Name值类型选填描述

catalogId

string | string[]

此提供程序参与的目录的唯一标识符。

type

string

目录项目类型的类型 ID。

filter

CodeRef<(item: CatalogItem) ⇒ boolean>

过滤特定类型的项目。值是采用 CatalogItem[] 且根据过滤器标准返回子集的功能。

7.5.1.7. console.catalog/item-metadata

7.5.1.7.1. 概述

(不可用)

7.5.1.7.2. Properties
Name值类型选填描述

catalogId

string | string[]

此提供程序参与的目录的唯一标识符。

type

string

目录项目类型的类型 ID。

provider

CodeRef<ExtensionHook<CatalogItemMetadataProviderFunction, CatalogExtensionHookOptions>>

返回一个将用来向特定类型的目录项提供元数据的 hook。

7.5.1.8. console.catalog/item-provider

7.5.1.8.1. 概述

(不可用)

7.5.1.8.2. Properties
Name值类型选填描述

catalogId

string | string[]

此提供程序参与的目录的唯一标识符。

type

string

目录项目类型的类型 ID。

title

string

目录项提供程序的标题

provider

CodeRef<ExtensionHook<CatalogItem<any>[], CatalogExtensionHookOptions>>

为目录获取项目并进行规范化。值是对 hook 做出反应。

priority

number

此提供程序的优先级。默认值为 0。优先级更高的提供程序可能会覆盖由其他供应商提供的目录项。

7.5.1.9. console.catalog/item-type

7.5.1.9.1. 概述

(不可用)

7.5.1.9.2. Properties
Name值类型选填描述

type

string

目录项的类型。

title

string

目录项的标题。

catalogDescription

string | CodeRef<React.ReactNode>

特定与目录类型的描述。

typeDescription

string

目录项类型的描述。

filters

CatalogItemAttribute[]

特定于目录项的自定义过滤器。

groupings

CatalogItemAttribute[]

特定于目录项的自定义分组。

7.5.1.10. console.catalog/item-type-metadata

7.5.1.10.1. 概述

(不可用)

7.5.1.10.2. Properties
Name值类型选填描述

type

string

目录项的类型。

filters

CatalogItemAttribute[]

特定于目录项的自定义过滤器。

groupings

CatalogItemAttribute[]

特定于目录项的自定义分组。

7.5.1.11. console.cluster-overview/inventory-item

7.5.1.11.1. 概述

将新清单项添加到集群概览页面中。

7.5.1.11.2. Properties
Name值类型选填描述

component

CodeRef<React.ComponentType<{}>>

要呈现的组件。

7.5.1.12. console.cluster-overview/multiline-utilization-item

7.5.1.12.1. 概述

添加新的集群概述多行使用项。

7.5.1.12.2. Properties
Name值类型选填描述

title

string

使用项目的标题。

getUtilizationQueries

CodeRef<GetMultilineQueries>

Prometheus 使用率查询。

humanize

CodeRef<Humanize>

将 Prometheus 数据转换为人类可读形式。

TopConsumerPopovers

CodeRef<React.ComponentType<TopConsumerPopoverProps>[]>

显示顶部消费者弹出而不是普通值

7.5.1.13. console.cluster-overview/utilization-item

7.5.1.13.1. 概述

添加新的集群概览使用率项目。

7.5.1.13.2. Properties
Name值类型选填描述

title

string

使用项目的标题。

getUtilizationQuery

CodeRef<GetQuery>

Prometheus 使用率查询。

humanize

CodeRef<Humanize>

将 Prometheus 数据转换为人类可读形式。

getTotalQuery

CodeRef<GetQuery>

Prometheus 总计查询。

getRequestQuery

CodeRef<GetQuery>

Prometheus 请求查询。

getLimitQuery

CodeRef<GetQuery>

Prometheus 限制查询。

TopConsumerPopover

CodeRef<React.ComponentType<TopConsumerPopoverProps>>

显示顶部消费者弹出而不是普通值

7.5.1.14. console.context-provider

7.5.1.14.1. 概述

在 web 控制台应用程序根目录中添加新的 React 上下文提供程序。

7.5.1.14.2. Properties
Name值类型选填描述

provider

CodeRef<Provider<T>>

上下文提供程序组件。

useValueHook

CodeRef<() ⇒ T>

上下文值的 hook。

7.5.1.15. console.dashboards/card

7.5.1.15.1. 概述

添加新的仪表板卡。

7.5.1.15.2. Properties
Name值类型选填描述

tab

string

将添加到卡的仪表板标签的 ID。

position

'LEFT' | 'RIGHT' | 'MAIN'

该卡在仪表板上的网格位置。

component

CodeRef<React.ComponentType<{}>>

仪表板卡组件。

span

OverviewCardSpan

栏中卡的垂直范围。对于小屏幕会忽略,默认为 12

7.5.1.16. console.dashboards/overview/activity/resource

7.5.1.16.1. 概述

在 Overview 仪表板的活动卡中添加一个活动,其中根据监视 Kubernetes 资源触发活动。

7.5.1.16.2. Properties
Name值类型选填描述

k8sResource

CodeRef<FirehoseResource & { isList: true; }>

要替换的 utilization 项。

component

CodeRef<React.ComponentType<K8sActivityProps<T>>>

操作组件。

isActivity

CodeRef<(resource: T) ⇒ boolean>

确定给定资源是否代表该操作的功能。如果没有定义,则每个资源都代表活动。

getTimestamp

CodeRef<(resource: T) ⇒ Date>

给定操作的时间戳,用于排序。

7.5.1.17. console.dashboards/overview/detail/item

7.5.1.17.1. 概述

Overview 仪表板的详情卡中添加项

7.5.1.17.2. Properties
Name值类型选填描述

component

CodeRef<React.ComponentType<{}>>

基于 DetailItem 组件的值

7.5.1.18. console.dashboards/overview/health/operator

7.5.1.18.1. 概述

Overview 仪表板的状态卡中添加一个健康子系统,其中状态源是 Kubernetes REST API。

7.5.1.18.2. Properties
Name值类型选填描述

title

string

弹出菜单中的 Operators 部分的标题。

资源

CodeRef<FirehoseResource[]>

将获取并传递给 healthHandler 的 Kubernetes 资源。

getOperatorsWithStatuses

CodeRef<GetOperatorsWithStatuses<T>>

解析 Operator 的状态。

operatorRowLoader

CodeRef<React.ComponentType<OperatorRowProps<T>>>

弹出行组件的加载程序。

viewAllLink

string

链接到所有资源页面。如果没有提供,则使用资源 prop 中第一个资源的列表页面。

7.5.1.19. console.dashboards/overview/health/prometheus

7.5.1.19.1. 概述

在 Status 为 Prometheus 的 Overview 仪表板的状态卡中添加一个健康子系统。

7.5.1.19.2. Properties
Name值类型选填描述

title

string

子系统的显示名称。

queries

string[]

Prometheus 查询

healthHandler

CodeRef<PrometheusHealthHandler>

解决子系统的健康状况。

additionalResource

CodeRef<FirehoseResource>

将获取并传递给 healthHandler 的其他资源。

popupComponent

CodeRef<React.ComponentType<PrometheusHealthPopupProps>>

弹出式菜单内容的加载程序。如果定义,健康项表示为链接,它会打开一个带有给定内容的弹出窗口。

popupTitle

string

弹出的标题。

disallowedControlPlaneTopology

string[]

应该隐藏子系统的 control plane 拓扑。

7.5.1.20. console.dashboards/overview/health/resource

7.5.1.20.1. 概述

在状态仪表板的 Overview 卡中添加一个健康子系统,其中状态源是一个 Kubernetes 资源。

7.5.1.20.2. Properties
Name值类型选填描述

title

string

子系统的显示名称。

资源

CodeRef<WatchK8sResources<T>>

将获取并传递给 healthHandler 的 Kubernetes 资源。

healthHandler

CodeRef<ResourceHealthHandler<T>>

解决子系统的健康状况。

popupComponent

CodeRef<WatchK8sResults<T>>

弹出式菜单内容的加载程序。如果定义,健康项表示为链接,它会打开一个带有给定内容的弹出窗口。

popupTitle

string

弹出的标题。

7.5.1.21. console.dashboards/overview/health/url

7.5.1.21.1. 概述

在状态仪表板的 Overview 卡中添加一个健康子系统,其中状态源是一个 Kubernetes REST API。

7.5.1.21.2. Properties
Name值类型选填描述

title

string

子系统的显示名称。

url

string

从中获取数据的 URL。它将以基本 Kubernetes URL 作为前缀。

healthHandler

`CodeRef<URLHealthHandler<T, K8sResourceCommon

K8sResourceCommon[]>>`

解决子系统的健康状况。

additionalResource

CodeRef<FirehoseResource>

将获取并传递给 healthHandler 的其他资源。

popupComponent

CodeRef<React.ComponentType<{ healthResult?: T; healthResultError?: any; k8sResult?: FirehoseResult<R>; }>>

弹出内容的加载程序。如果定义,则一个健康项目将显示为一个链接,该链接会打开给定内容弹出窗口中。

popupTitle

string

7.5.1.22. console.dashboards/overview/inventory/item

7.5.1.22.1. 概述

在概述清单卡中添加资源标题。

7.5.1.22.2. Properties
Name值类型选填描述

model

CodeRef<T>

将获取的资源模型。用于获取模型的 labelabbr

mapper

CodeRef<StatusGroupMapper<T, R>>

将各种状态映射到组的功能。

additionalResources

CodeRef<WatchK8sResources<R>>

将获取并传递给映射程序函数的其他资源。

7.5.1.23. console.dashboards/overview/inventory/item/group

7.5.1.23.1. 概述

添加清单状态组。

7.5.1.23.2. Properties
Name值类型选填描述

id

string

状态组的 id。

icon

CodeRef<React.ReactElement<any, string | React.JSXElementConstructor<any>>>

响应代表状态组图标的组件。

7.5.1.24. console.dashboards/overview/inventory/item/replacement

7.5.1.24.1. 概述

替换概述清单卡。

7.5.1.24.2. Properties
Name值类型选填描述

model

CodeRef<T>

将获取的资源模型。用于获取模型的 labelabbr

mapper

CodeRef<StatusGroupMapper<T, R>>

将各种状态映射到组的功能。

additionalResources

CodeRef<WatchK8sResources<R>>

将获取并传递给映射程序函数的其他资源。

7.5.1.25. console.dashboards/overview/prometheus/activity/resource

7.5.1.25.1. 概述

在 Prometheus Overview 仪表板的 Activity 卡中添加一个活动,该仪表板根据监视 Kubernetes 资源来触发活动。

7.5.1.25.2. Properties
Name值类型选填描述

queries

string[]

要监视的查询

component

CodeRef<React.ComponentType<PrometheusActivityProps>>

操作组件。

isActivity

CodeRef<(results: PrometheusResponse[]) ⇒ boolean>

确定给定资源是否代表该操作的功能。如果没有定义,则每个资源都代表活动。

7.5.1.26. console.dashboards/project/overview/item

7.5.1.26.1. 概述

为项目概述清单卡中添加资源标题。

7.5.1.26.2. Properties
Name值类型选填描述

model

CodeRef<T>

将获取的资源模型。用于获取模型的 labelabbr

mapper

CodeRef<StatusGroupMapper<T, R>>

将各种状态映射到组的功能。

additionalResources

CodeRef<WatchK8sResources<R>>

将获取并传递给映射程序函数的其他资源。

7.5.1.27. console.dashboards/tab

7.5.1.27.1. 概述

添加新仪表板选项卡,它位于 Overview 选项卡的后面。

7.5.1.27.2. Properties
Name值类型选填描述

id

string

唯一标签页标识符,用作标签链接 href 以及在此标签页中添加卡时。

navSection

'home' | 'storage'

选项卡所属的导航部分。

title

string

选项卡的标题。

7.5.1.28. console.file-upload

7.5.1.28.1. 概述

(不可用)

7.5.1.28.2. Properties
Name值类型选填描述

fileExtensions

string[]

支持的文件扩展。

handler

CodeRef<FileUploadHandler>

处理文件丢弃操作的功能。

7.5.1.29. console.flag

7.5.1.29.1. 概述

提供对 Web 控制台功能标记的完整控制。

7.5.1.29.2. Properties
Name值类型选填描述

handler

CodeRef<FeatureFlagHandler>

用于设置或取消设置任意功能标记。

7.5.1.30. console.flag/hookProvider

7.5.1.30.1. 概述

提供对带有 hook 处理程序的 Web 控制台功能标记的完整控制。

7.5.1.30.2. Properties
Name值类型选填描述

handler

CodeRef<FeatureFlagHandler>

用于设置或取消设置任意功能标记。

7.5.1.31. console.flag/model

7.5.1.31.1. 概述

通过在集群中存在 CRD 来添加新的 Web 控制台功能标记。

7.5.1.31.2. Properties
Name值类型选填描述

flag

string

在检测到 CRD 后设置的标记名称。

model

ExtensionK8sModel

引用 CustomResourceDefinition 的模型。

7.5.1.32. console.global-config

7.5.1.32.1. 概述

(不可用)

7.5.1.32.2. Properties
Name值类型选填描述

id

string

集群配置资源实例的唯一标识符。

name

string

集群配置资源实例的名称。

model

ExtensionK8sModel

指代集群配置资源的模型。

namespace

string

集群配置资源实例的命名空间。

7.5.1.33. console.model-metadata

7.5.1.33.1. 概述

通过覆盖通过 API 发现检索并生成的值来自定义模型显示。

7.5.1.33.2. Properties
Name值类型选填描述

model

ExtensionK8sGroupModel

要定制的模型。只能指定组或可选版本和类型。

badge

ModelBadge

是否将这个模型视为技术预览还是开发者预览。

color

string

与这个模型关联的颜色。

label

string

覆盖标签。需要提供的 kind

labelPlural

string

覆盖复数标签。需要提供的 kind

abbr

string

自定义缩写。默认为 kind 中的所有字符的大写,最多 4 个字符。需要 kind 提供。

7.5.1.34. console.navigation/href

7.5.1.34.1. 概述

(不可用)

7.5.1.34.2. Properties
Name值类型选填描述

id

string

此项目的唯一标识符。

name

string

此项目的名称。

href

string

链接 href 值。

perspective

string

此项目所属的视角 ID。若未指定,则向默认视角。

string

导航此项目所属的导航部分。如果未指定,请将此项目呈现为顶级链接。

dataAttributes

{ [key: string]: string; }

在 DOM 中添加数据属性。

startsWith

string[]

当 URL 从其中一个路径之一时,将此项标记为 active。

insertBefore

string | string[]

在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。

insertAfter

string | string[]

在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。insertBefore 具有高优先级。

namespaced

布尔值

如果为 true,请在末尾添加 /ns/active-namespace

prefixNamespaced

布尔值

如果为 true,将 /k8s/ns/active-namespace 添加到起始位置

7.5.1.35. console.navigation/resource-cluster

7.5.1.35.1. 概述

(不可用)

7.5.1.35.2. Properties
Name值类型选填描述

id

string

此项目的唯一标识符。

model

ExtensionK8sModel

此导航项目所链接的模型。

perspective

string

此项目所属的视角 ID。若未指定,则向默认视角。

string

导航此项目所属的导航部分。如果未指定,请将此项目呈现为顶级链接。

dataAttributes

{ [key: string]: string; }

在 DOM 中添加数据属性。

startsWith

string[]

当 URL 从其中一个路径之一时,将此项标记为 active。

insertBefore

string | string[]

在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。

insertAfter

string | string[]

在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。insertBefore 具有高优先级。

name

string

覆盖默认名称。如果没有提供链接的名称,则会与模型的复数值相同。

7.5.1.36. console.navigation/resource-ns

7.5.1.36.1. 概述

(不可用)

7.5.1.36.2. Properties
Name值类型选填描述

id

string

此项目的唯一标识符。

model

ExtensionK8sModel

此导航项目所链接的模型。

perspective

string

此项目所属的视角 ID。若未指定,则向默认视角。

string

导航此项目所属的导航部分。如果未指定,请将此项目呈现为顶级链接。

dataAttributes

{ [key: string]: string; }

在 DOM 中添加数据属性。

startsWith

string[]

当 URL 从其中一个路径之一时,将此项标记为 active。

insertBefore

string | string[]

在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。

insertAfter

string | string[]

在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。insertBefore 具有高优先级。

name

string

覆盖默认名称。如果没有提供链接的名称,则会与模型的复数值相同。

7.5.1.37. console.navigation/section

7.5.1.37.1. 概述

(不可用)

7.5.1.37.2. Properties
Name值类型选填描述

id

string

此项目的唯一标识符。

perspective

string

此项目所属的视角 ID。若未指定,则向默认视角。

dataAttributes

{ [key: string]: string; }

在 DOM 中添加数据属性。

insertBefore

string | string[]

在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。

insertAfter

string | string[]

在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。insertBefore 具有高优先级。

name

string

本节的名称。如果没有提供,上面部分将仅显示一个分隔符。

7.5.1.38. console.navigation/separator

7.5.1.38.1. 概述

(不可用)

7.5.1.38.2. Properties
Name值类型选填描述

id

string

此项目的唯一标识符。

perspective

string

此项目所属的视角 ID。若未指定,则向默认视角。

string

导航此项目所属的导航部分。如果未指定,请将此项目呈现为顶级链接。

dataAttributes

{ [key: string]: string; }

在 DOM 中添加数据属性。

insertBefore

string | string[]

在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。

insertAfter

string | string[]

在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。insertBefore 具有高优先级。

7.5.1.39. console.page/resource/details

7.5.1.39.1. 概述

在 Web 控制台路由器中添加一个新的资源详情页面。

7.5.1.39.2. Properties
Name值类型选填描述

model

ExtensionK8sGroupKindModel

此资源页面链接到的型号。

component

CodeRef<React.ComponentType<{ match: match<{}>; namespace: string; model: ExtensionK8sModel; }>>

路由匹配时要呈现的组件。

7.5.1.40. console.page/resource/list

7.5.1.40.1. 概述

向控制台路由器添加新的资源列表页面。

7.5.1.40.2. Properties
Name值类型选填描述

model

ExtensionK8sGroupKindModel

此资源页面链接到的型号。

component

CodeRef<React.ComponentType<{ match: match<{}>; namespace: string; model: ExtensionK8sModel; }>>

路由匹配时要呈现的组件。

7.5.1.41. console.page/route

7.5.1.41.1. 概述

在 Web 控制台路由器中添加新页面。请参阅 React Router

7.5.1.41.2. Properties
Name值类型选填描述

component

CodeRef<React.ComponentType<RouteComponentProps<{}, StaticContext, any>>>

路由匹配时要呈现的组件。

path

string | string[]

path-to-regexp@^1.7.0 可以理解的有效 URL 路径或路径数组。

perspective

string

此页面所属的视图。如果没有指定,则会对所有视角贡献。

exact

布尔值

为 true 时,只有在路径与 location.pathname 完全匹配时才会匹配。

7.5.1.42. console.page/route/standalone

7.5.1.42.1. 概述

向 web 控制台路由器中添加在通用页面布局外呈现的新独立页面。请参阅 React Router

7.5.1.42.2. Properties
Name值类型选填描述

component

CodeRef<React.ComponentType<RouteComponentProps<{}, StaticContext, any>>>

路由匹配时要呈现的组件。

path

string | string[]

path-to-regexp@^1.7.0 可以理解的有效 URL 路径或路径数组。

exact

布尔值

为 true 时,只有在路径与 location.pathname 完全匹配时才会匹配。

7.5.1.43. console.perspective

7.5.1.43.1. 概述

(不可用)

7.5.1.43.2. Properties
Name值类型选填描述

id

string

透视图标识符。

name

string

视角显示名称。

icon

CodeRef<LazyComponent>

视角显示图标。

landingPageURL

CodeRef<(flags: { [key: string]: boolean; }, isFirstVisit: boolean) ⇒ string>

获取视角登录页面 URL 的功能。

importRedirectURL

CodeRef<(namespace: string) ⇒ string>

获取导入流的重定向 URL。

default

布尔值

这个视角是默认的。只能有一个默认值。

defaultPins

ExtensionK8sModel[]

nav 上的默认固定资源

usePerspectiveDetection

CodeRef<() ⇒ [boolean, boolean]>

要检测默认视角的 hook

7.5.1.44. console.project-overview/inventory-item

7.5.1.44.1. 概述

Project Overview 页面中添加一个新清单项。

7.5.1.44.2. Properties
Name值类型选填描述

component

CodeRef<React.ComponentType<{ projectName: string; }>>

要呈现的组件。

7.5.1.45. console.project-overview/utilization-item

7.5.1.45.1. 概述

添加新项目概述使用率项目。

7.5.1.45.2. Properties
Name值类型选填描述

title

string

使用项目的标题。

getUtilizationQuery

CodeRef<GetProjectQuery>

Prometheus 使用率查询。

humanize

CodeRef<Humanize>

将 Prometheus 数据转换为人类可读形式。

getTotalQuery

CodeRef<GetProjectQuery>

Prometheus 总计查询。

getRequestQuery

CodeRef<GetProjectQuery>

Prometheus 请求查询。

getLimitQuery

CodeRef<GetProjectQuery>

Prometheus 限制查询。

TopConsumerPopover

CodeRef<React.ComponentType<TopConsumerPopoverProps>>

显示 top consumer 弹出窗而不是纯值。

7.5.1.46. console.pvc/alert

7.5.1.46.1. 概述

(不可用)

7.5.1.46.2. Properties
Name值类型选填描述

alert

CodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>

警报组件。

7.5.1.47. console.pvc/create-prop

7.5.1.47.1. 概述

(不可用)

7.5.1.47.2. Properties
Name值类型选填描述

label

string

创建 prop 操作的标签。

path

string

创建 prop 操作的路径。

7.5.1.48. console.pvc/delete

7.5.1.48.1. 概述

(不可用)

7.5.1.48.2. Properties
Name值类型选填描述

predicate

CodeRef<(pvc: K8sResourceCommon) ⇒ boolean>

告知是否使用扩展名的 predicate。

onPVCKill

CodeRef<(pvc: K8sResourceCommon) ⇒ Promise<void>>

PVC 删除操作的方法。

alert

CodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>

警报组件以显示其他信息。

7.5.1.49. console.pvc/status

7.5.1.49.1. 概述

(不可用)

7.5.1.49.2. Properties
Name值类型选填描述

priority

number

状态组件的优先级。较大的值代表优先级更高。

status

CodeRef<React.ComponentType<{ pvc: K8sResourceCommon; }>>

状态组件。

predicate

CodeRef<(pvc: K8sResourceCommon) ⇒ boolean>

指示是否呈现状态组件的 predicate。

7.5.1.50. console.redux-reducer

7.5.1.50.1. 概述

为 Console Red Hatux 存储添加了新的减少程序,该存储在 plugins.<scope> 子状态上运行。

7.5.1.50.2. Properties
Name值类型选填描述

scope

string

代表 Red Hatux 状态对象中减少管理的子状态的关键。

reducer

CodeRef<Reducer<any, AnyAction>>

reducer 函数,在 reducer-managed substate 中操作。

7.5.1.51. console.resource/create

7.5.1.51.1. 概述

(不可用)

7.5.1.51.2. Properties
Name值类型选填描述

model

ExtensionK8sModel

此创建资源页面将呈现的型号。

component

CodeRef<React.ComponentType<CreateResourceComponentProps>>

当模型匹配时要呈现的组件

7.5.1.52. console.storage-provider

7.5.1.52.1. 概述

(不可用)

7.5.1.52.2. Properties
Name值类型选填描述

name

string

 

组件

CodeRef<React.ComponentType<Partial<RouteComponentProps<{}, StaticContext, any>>>>

 

7.5.1.53. console.tab/horizontalNav

7.5.1.53.1. 概述

(不可用)

7.5.1.53.2. Properties
Name值类型选填描述

model

ExtensionK8sKindVersionModel

此提供程序显示选项卡的型号。

page

{ name: string; href: string; }

要在水平标签页中显示的页面。它取标签名称作为名称,并且是 href 的选项卡

component

CodeRef<React.ComponentType<PageComponentProps<K8sResourceCommon>>>

路由匹配时要呈现的组件。

7.5.1.54. console.telemetry/listener

7.5.1.54.1. 概述

(不可用)

7.5.1.54.2. Properties
Name值类型选填描述

listener

CodeRef<TelemetryEventListener>

侦听遥测事件

7.5.1.55. console.topology/adapter/build

7.5.1.55.1. 概述

BuildAdapter 贡献适配器将元素适应 Build 组件可以使用的数据

7.5.1.55.2. Properties
Name值类型选填描述

adapt

'CodeRef< (element: GraphElement) jpeg AdapterDataType<BuildConfigData>

undefined>`

7.5.1.56. console.topology/adapter/network

7.5.1.56.1. 概述

NetworkAdpater 贡献适配器,将元素适应数据,以供 Networking 组件使用

7.5.1.56.2. Properties
Name值类型选填描述

adapt

'CodeRef< (element: GraphElement) jpeg NetworkAdapterType

undefined>`

7.5.1.57. console.topology/adapter/pod

7.5.1.57.1. 概述

PodAdapter 贡献一个适配器,将元素适应 Pod 组件可以使用的数据。

7.5.1.57.2. Properties
Name值类型选填描述

adapt

'CodeRef< (element: GraphElement) jpeg AdapterDataType<PodsAdapterDataType>

undefined>`

7.5.1.58. console.topology/component/factory

7.5.1.58.1. 概述

ViewComponentFactory 的 getter。

7.5.1.58.2. Properties
Name值类型选填描述

getFactory

CodeRef<ViewComponentFactory>

ViewComponentFactory 的 getter。

7.5.1.59. console.topology/create/connector

7.5.1.59.1. 概述

创建连接器功能的 getter。

7.5.1.59.2. Properties
Name值类型选填描述

getCreateConnector

CodeRef<CreateConnectionGetter>

创建连接器功能的 getter。

7.5.1.60. console.topology/data/factory

7.5.1.60.1. 概述

拓扑数据模型工厂扩展

7.5.1.60.2. Properties
Name值类型选填描述

id

string

工厂的唯一 ID。

priority

number

工厂的优先级

资源

WatchK8sResourcesGeneric

要从 useK8sWatchResources hook 获取的资源。

workloadKeys

string[]

包含工作负载的资源中的密钥。

getDataModel

CodeRef<TopologyDataModelGetter>

数据模型工厂的 getter。

isResourceDepicted

CodeRef<TopologyDataModelDepicted>

用于确定资源是否由这个模型描述的 getter。

getDataModelReconciler

CodeRef<TopologyDataModelReconciler>

在所有扩展模型加载后用于协调数据模型的功能。

7.5.1.61. console.topology/decorator/provider

7.5.1.61.1. 概述

拓扑声明器供应商扩展

7.5.1.61.2. Properties
Name值类型选填描述

id

string

 

priority

number

 

quadrant

TopologyQuadrant

 

decorator

CodeRef<TopologyDecoratorGetter>

 

7.5.1.62. console.topology/details/resource-alert

7.5.1.62.1. 概述

DetailsResourceAlert 为特定拓扑上下文或图形元素贡献警报。

7.5.1.62.2. Properties
Name值类型选填描述

id

string

此警报的 ID。用于保存状态,如果警报在丢弃后不应显示。

contentProvider

'CodeRef< (element: GraphElement) jpeg DetailsResourceAlertContent

null>`

7.5.1.64. console.topology/details/tab

7.5.1.64.1. 概述

DetailsTab 为拓扑详情面板提供标签页。

7.5.1.64.2. Properties
Name值类型选填描述

id

string

此详细信息标签的唯一标识符。

label

string

要在 UI 中显示的标签标签。

insertBefore

string | string[]

在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。

insertAfter

string | string[]

在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。insertBefore 值具有优先权。

7.5.1.65. console.topology/details/tab-section

7.5.1.65.1. 概述

DetailsTabSection 对拓扑详情面板中的特定标签页贡献了一个部分。

7.5.1.65.2. Properties
Name值类型选填描述

id

string

此详细信息选项卡部分的唯一标识符。

tab

string

本节应贡献的父选项卡 ID。

provider

CodeRef<DetailsTabSectionExtensionHook>

返回一个组件,或者在拓扑侧边栏中显示 null 或未定义的 hook:<Section title=\{}>…​ padded area

'CodeRef< (element: GraphElement, renderNull?: () especially null)TOKEN React.Component

undefined>`

如果未定义提供程序,则 @deprecated Fallback。renderNull 属于 no-op。

insertBefore

string | string[]

在引用 here.For 数组的项目前插入此项目,使用第一个按顺序找到的项目。

insertAfter

string | string[]

7.5.1.66. console.topology/display/filters

7.5.1.66.1. 概述

拓扑显示过滤器扩展

7.5.1.66.2. Properties
Name值类型选填描述

getTopologyFilters

CodeRef<() ⇒ TopologyDisplayOption[]>

 

applyDisplayOptions

CodeRef<TopologyApplyDisplayOptions>

 

7.5.1.67. console.topology/relationship/provider

7.5.1.67.1. 概述

拓扑关系供应商连接器扩展

7.5.1.67.2. Properties
Name值类型选填描述

provides

CodeRef<RelationshipProviderProvides>

 

工具提示

string

 

create

CodeRef<RelationshipProviderCreate>

 

priority

number

 

7.5.1.68. console.user-preference/group

7.5.1.68.1. 概述

(不可用)

7.5.1.68.2. Properties
Name值类型选填描述

id

string

用于识别用户首选项组的 ID。

label

string

用户首选项组的标签

insertBefore

string

应该放置此组前的用户首选项组群 ID

insertAfter

string

应该放置此组的用户首选项组群 ID

7.5.1.69. console.user-preference/item

7.5.1.69.1. 概述

(不可用)

7.5.1.69.2. Properties
Name值类型选填描述

id

string

ID 用于识别用户首选项项目,并在 insertAfter 和 insertBefore 中引用来定义项目顺序。

label

string

用户首选项的标签

description

string

用户首选项的描述。

field

UserPreferenceField

用于呈现值设定用户首选项的输入字段选项。

groupId

string

用于识别项目所属的用户首选项组的 ID。

insertBefore

string

应放置此项目前的用户首选项项目 ID

insertAfter

string

用户首选项项目的 ID,之后应放置此项目

7.5.1.70. console.yaml-template

7.5.1.70.1. 概述

通过 yaml 编辑器编辑资源的 YAML 模板。

7.5.1.70.2. Properties
Name值类型选填描述

model

ExtensionK8sModel

与模板关联的模型。

模板

CodeRef<string>

YAML 模板。

name

string

模板的名称。使用名称 default 将其标记为默认模板。

7.5.1.71. dev-console.add/action

7.5.1.71.1. 概述

(不可用)

7.5.1.71.2. Properties
Name值类型选填描述

id

string

用于识别操作的 ID。

label

string

操作的标签

description

string

操作的描述。

href

string

要导航到的 href。

groupId

string

用于识别该操作所属的操作组的 ID。

icon

CodeRef<React.ReactNode>

视角显示图标。

accessReview

AccessReviewResourceAttributes[]

可选访问查看来控制操作的可见性或启用。

7.5.1.72. dev-console.add/action-group

7.5.1.72.1. 概述

(不可用)

7.5.1.72.2. Properties
Name值类型选填描述

id

string

用于识别操作组的 ID。

name

string

操作组的标题

insertBefore

string

应该放置此组的操作组群 ID

insertAfter

string

应该放置此组的操作组群 ID

7.5.1.73. dev-console.import/environment

7.5.1.73.1. 概述

(不可用)

7.5.1.73.2. Properties
Name值类型选填描述

imageStreamName

string

为提供自定义环境变量的镜像流名称

imageStreamTags

string[]

支持的镜像流标签列表

environments

ImageEnvironment[]

环境变量列表

7.5.1.74. console.page/resource/tab

7.5.1.74.1. Summary [DEPRECATED]

已弃用。使用 console.tab/horizontalNav 替代。添加新资源选项卡页面到控制台路由器。

7.5.1.74.2. Properties
Name值类型选填描述

model

ExtensionK8sGroupKindModel

此资源页面链接到的型号。

component

CodeRef<React.ComponentType<RouteComponentProps<{}, StaticContext, any>>>

路由匹配时要呈现的组件。

name

string

选项卡的名称。

href

string

选项卡链接的可选 href。如果没有提供,则使用第一个 path

exact

布尔值

为 true 时,只有在路径与 location.pathname 完全匹配时才会匹配。

7.5.2. 对动态插件进行故障排除

如果您在加载插件时遇到问题,请参阅此故障排除提示列表。

  • 运行以下命令,在控制台 Operator 配置中启用了插件,并且您的插件名称是输出:

    $ oc get console.operator.openshift.io cluster -o jsonpath='{.spec.plugins}'
    • Administrator 视角中的 Overview 页面的状态卡中验证已启用的插件。如果插件最近启用,您必须刷新浏览器。
  • 通过以下方法验证您的插件服务是否健康:

    • 验证您的插件 pod 状态正在运行,容器已就绪。
    • 验证服务标签选择器与 pod 和目标端口匹配是否正确。
    • 在控制台 pod 或集群中的另一个 pod 终端中,使用带有来自服务的 plugin-manifest.json 的 curl 命令。
  • 验证 ConsolePlugin 资源名称 (consolePlugin.name) 与 package.json 中使用的插件名称匹配。
  • ConsolePlugin 资源中验证您的服务名称、命名空间、端口和路径是否已正确声明。
  • 验证您的插件服务使用 HTTPS 和服务证书。
  • 验证控制台 pod 日志中是否有证书或连接错误。
  • 验证插件依赖的功能标志没有被禁用。
  • 验证您的插件没有在 package.json 中不满足 consolePlugin.dependencies 的问题。

    • 这包括控制台版本依赖项或依赖其他插件。在浏览器中为您的插件的名称过滤 JS 控制台,以查看日志记录的消息。
  • 验证导航扩展视角或部分 ID 中没有拼写错误。

    • 您的插件可能会被加载,但如果 ID 不正确,可以缺少导航项。编辑 URL 尝试直接导航到插件页面。
  • 验证没有网络策略阻止从控制台 Pod 到插件服务的流量。

    • 如有必要,调整网络策略,以允许 openshift-console 命名空间中的控制台 pod 向服务发出请求。
  • 在开发人员工具浏览器的 Console 选项卡中,验证要在浏览器中载入的动态插件列表。

    • 评估 window.SERVER_FLAGS.consolePlugins,以查看 Console 前端的动态插件。

其他资源

第 8 章 Web 终端

8.1. 安装 web 终端

您可以使用 OpenShift Container Platform OperatorHub 中列出的 Web Terminal Operator 来安装 Web 终端。安装 Web Terminal Operator 时,会自动安装命令行配置(如 DevWorkspace CRD)所需的自定义资源定义(CRD)。打开 web 终端时,web 控制台会创建所需的资源。

先决条件

  • 已登陆到 OpenShift Container Platform Web 控制台。
  • 有集群管理员权限。

流程

  1. 在 Web 控制台的 Administrator 视角中,导航到 Operators → OperatorHub
  2. 使用 Filter by keyword 复选框在目录中搜索 Web Terminal Operator,然后点 Web Terminal 标题。
  3. 参阅 Web Terminal 页面中有关 Operator 的简单描述,然后点击 Install
  4. Install Operator 页面中,保留所有字段的默认值。

    • Update Channel 菜单中的 fast 选项启用 Web Terminal Operator 最新版本的安装。
    • Installation Mode 菜单中的 All namespaces on the cluster 选项可让 Operator 监视并可供集群中的所有命名空间使用。
    • Installed Namespace 菜单中的 openshift-operators 选项会在默认的 openshift-operators 命名空间中安装 Operator。
    • Approval Strategy 菜单中的 Automatic 选项确保以后对 Operator 的升级由 Operator Lifecycle Manager 自动处理。
  5. Install
  6. Installed Operators 页面中,点 View Operator 来验证 Installed Operators 页面中是否列出了 Operator。

    注意

    Web Terminal Operator 将 DevWorkspace Operator 安装为依赖项。

  7. 安装 Operator 后,刷新页面以查看控制台 masthead 中的命令行终端图标( odc wto icon )。

8.2. 使用 web 终端

您可以在 web 控制台中启动内嵌的命令行终端实例。此终端实例预安装了与集群交互的通用 CLI 工具,如 oc, kubectl,odo, kn, tkn, helm, and subctl.它还包含正在处理的项目的上下文,并自动记录您使用凭证的项目。

8.2.1. 访问 Web 终端

安装 Web Terminal Operator 后,您可以访问 Web 终端。初始化 web 终端后,您可以在 web 终端中使用预安装的 CLI 工具,如 ockubectlodokntknhelmsubctl。您可以从在终端中运行的命令列表中选择这些命令,以重新运行这些命令。这些命令可在多个终端会话中保留。Web 终端保持打开,直到您关闭浏览器窗口或标签页。

先决条件

  • 您可以访问 OpenShift Container Platform 集群,并登录到 web 控制台。
  • 在集群中安装了 Web Terminal Operator。

流程

  1. 要启动 web 终端,请在控制台的 masthead 中点命令行终端图标( odc wto icon )。在 Command line terminal 窗格中会显示 web 终端实例。此实例使用您的凭证自动登录。
  2. 如果在当前会话中没有选择项目,请从 Project 下拉列表中选择创建 DevWorkspace CR 的项目。默认情况下会选择当前项目。

    注意
    • 只有在不存在 DevWorkspace CR 时才会创建 DevWorkspace CR。
    • openshift-terminal 项目是集群管理员使用的默认项目。它们没有选择其他项目的选项。Web Terminal Operator 将 DevWorkspace Operator 安装为依赖项。
  3. 可选:为当前会话设置 web 终端超时:

    1. 点 Timeout。
    2. 在出现的字段中,输入超时值。
    3. 从下拉列表中选择超时时间为 Seconds,Minutes,Hours, 或 Milliseconds
  4. 可选:为要使用的 web 终端选择一个自定义镜像。

    1. 点 Image。
    2. 在出现的字段中,输入您要使用的镜像的 URL。
  5. Start 使用所选项目初始化 Web 终端。
  6. + 在控制台中 web 终端中打开多个标签页。

8.3. 对 web 终端进行故障排除

8.3.1. Web 终端和网络策略

如果集群配置了网络策略,web 终端可能无法启动。要初始化 Web 终端实例,Web Terminal Operator 必须与 Web 终端的 pod 通信以验证它是否正在运行,OpenShift Container Platform Web 控制台需要发送信息才能在终端中自动登录到集群。如果任一步骤失败,Web 终端将无法初始化,终端面板看似处于加载状态。

要避免这个问题,请确保用于终端的网络策略允许从 openshift-consoleopenshift-operators 命名空间进行入站数据。

8.4. 卸载 Web 终端

卸载 Web Terminal Operator 不会删除安装 Operator 时创建的任何自定义资源定义 (CRD) 或受管资源。为了安全起见,您必须手动卸载这些组件。通过删除这些组件,您可以保存集群资源,因为在卸载 Operator 时终端不会闲置。

卸载 web 终端需要两步:

  1. 卸载 Web Terminal Operator 和安装 Operator 时添加的相关自定义资源 (CR)。
  2. 卸载 DevWorkspace Operator 及其作为 Web Terminal Operator 依赖项添加的相关自定义资源。

8.4.1. 删除 Web Terminal Operator

您可以通过删除 Web Terminal Operator 和 Operator 使用的自定义资源来卸载 web 终端。

先决条件

  • 您可以使用集群管理员权限访问 OpenShift Container Platform 集群。
  • 已安装 oc CLI。

流程

  1. 在 web 控制台的 Administrator 视角中,导航到 Operators → Installed Operators
  2. 滚动过滤器列表或在 Filter by name 框中输入关键字以查找 Web Terminal Operator。
  3. 点击 Web Terminal Operator 的 Options 菜单 kebab ,然后选择 Uninstall Operator
  4. Uninstall Operator 确认对话框中,点 Uninstall 从集群中删除 Operator、Operator 部署和 pod。Operator 会停止运行,并且不再接收更新。

8.4.2. 删除 DevWorkspace Operator

要完全卸载 web 终端,还必须删除 DevWorkspace Operator 和 Operator 使用的自定义资源。

重要

DevWorkspace Operator 是一个独立 Operator,可能需要作为集群中安装的其他 Operator 的依赖项。只有在确保不再需要 DevWorkspace Operator 时,才按照以下步骤操作。

先决条件

  • 您可以使用集群管理员权限访问 OpenShift Container Platform 集群。
  • 已安装 oc CLI。

流程

  1. 删除 Operator 使用的 DevWorkspace 自定义资源,以及任何相关的 Kubernetes 对象:

    $ oc delete devworkspaces.workspace.devfile.io --all-namespaces --all --wait
    $ oc delete devworkspaceroutings.controller.devfile.io --all-namespaces --all --wait
    警告

    如果此步骤未完成,则终结器很难完全卸载 Operator。

  2. 删除 Operator 使用的 CRD:

    警告

    DevWorkspace Operator 提供了使用转换 Webhook 的自定义资源定义(CRD)。无法删除这些 CRD 可能会导致集群中的问题。

    $ oc delete customresourcedefinitions.apiextensions.k8s.io devworkspaceroutings.controller.devfile.io
    $ oc delete customresourcedefinitions.apiextensions.k8s.io devworkspaces.workspace.devfile.io
    $ oc delete customresourcedefinitions.apiextensions.k8s.io devworkspacetemplates.workspace.devfile.io
    $ oc delete customresourcedefinitions.apiextensions.k8s.io devworkspaceoperatorconfigs.controller.devfile.io
  3. 验证所有涉及的自定义资源定义都已移除。以下命令不应该显示任何输出:

    $ oc get customresourcedefinitions.apiextensions.k8s.io | grep "devfile.io"
  4. 删除 devworkspace-webhook-server 部署、变异并验证 Webhook:

    $ oc delete deployment/devworkspace-webhook-server -n openshift-operators
    $ oc delete mutatingwebhookconfigurations controller.devfile.io
    $ oc delete validatingwebhookconfigurations controller.devfile.io
    注意

    如果您在没有删除变异并验证 Webhook 的情况下删除 devworkspace-webhook-server 部署,则无法使用 oc exec 命令在集群中的容器中运行命令。删除 Webhook 后,您可以再次使用 oc exec 命令。

  5. 删除任何剩余的服务、secret 和配置映射。取决于具体的安装,以下命令中包含的一些资源可能不存在。

    $ oc delete all --selector app.kubernetes.io/part-of=devworkspace-operator,app.kubernetes.io/name=devworkspace-webhook-server -n openshift-operators
    $ oc delete serviceaccounts devworkspace-webhook-server -n openshift-operators
    $ oc delete clusterrole devworkspace-webhook-server
    $ oc delete clusterrolebinding devworkspace-webhook-server
  6. 卸载 DevWorkspace Operator:

    1. 在 web 控制台的 Administrator 视角中,导航到 Operators → Installed Operators
    2. 滚动过滤器列表或在 Filter by name 框中输入关键字以查找 DevWorkspace Operator。
    3. 点 Operator 的 Options 菜单 kebab ,然后选择 Uninstall Operator
    4. Uninstall Operator 确认对话框中,点 Uninstall 从集群中删除 Operator、Operator 部署和 pod。Operator 会停止运行,并且不再接收更新。

第 9 章 在OpenShift Container Platform中禁用Web控制台

您可以禁用OpenShift Container Platform Web控制台。

9.1. 先决条件

  • 部署一个OpenShift Container Platform集群。

9.2. 禁用Web控制台

您可以通过编辑consoles.operator.openshift.io资源来禁用Web控制台。

  • 编辑 consoles.operator.openshift.io 资源:

    $ oc edit consoles.operator.openshift.io cluster

    以下示例显示了资源中可以修改的参数:

    apiVersion: operator.openshift.io/v1
    kind: Console
    metadata:
      name: cluster
    spec:
      managementState: Removed 1
    1
    managementState参数值设置为Removed以禁用Web控制台。此参数的其他有效值是Managed(启用由集群控制的控制台),Unmanaged(启用由用户控制管理的Web控制台)。

第 10 章 在 web 控制台中创建快速启动指南

如果您要为 OpenShift Container Platform Web 控制台创建快速启动指南,请按照以下步骤保留所有快速启动的用户体验。

10.1. 了解快速开始

快速开始是用户任务的指导教程。在 Web 控制台中,您可以在 Help 菜单下快速启动访问。它们在使用应用程序、Operator 或其他产品时特别有用。

快速开始主要由任务和步骤组成。每个任务都有多个步骤,每个快速开始都有多个任务。例如:

  • 任务 1

    • 第 1 步
    • 第 2 步
    • 第 3 步
  • 任务 2

    • 第 1 步
    • 第 2 步
    • 第 3 步
  • 任务 3

    • 第 1 步
    • 第 2 步
    • 第 3 步

10.2. 快速启动用户工作流

当您与现有快速启动指南交互时,这是预期的工作流体验:

  1. AdministratorDeveloper 视角中,点击 Help 图标并选择 Quick Starts
  2. 点快速启动卡。
  3. 在出现的面板中点 Start
  4. 完成屏幕的说明,然后点 Next
  5. 在出现 Check your work 模块时,回答问题以确认您成功完成了该任务。

    1. 如果您选择 Yes,点 Next 来继续到下一个任务。
    2. 如果您选择 No,重复任务说明并再次检查您的工作。
  6. 重复以上第 1 到 6 步,以便快速完成剩余的任务。
  7. 完成最后的任务后,点 Close 关闭快速启动。

10.3. 快速启动组件

快速开始由以下部分组成:

  • Card:提供快速启动基本信息的 catalog 标题,其中包括标题、描述、时间提交和完成状态
  • Introduction:概述快速开始的目标和任务
  • Task headings:快速启动中每个任务的超链接标题
  • Check your work module:一个模块用户使用一个模块来确认他们成功完成了任务,然后到快速启动的下一个任务为止
  • Hints:帮助用户识别产品特定部分的动画
  • Buttons

    • Next and back buttons:用来浏览快速开始任务里的步骤和模块的按钮
    • Final screen buttons:关闭快速启动,返回到快速启动中的先前任务,并查看所有快速启动

快速启动的主要内容包括以下部分:

  • Card copy
  • 简介
  • Task steps
  • Modals and in-app messaging
  • Check your work module

10.4. 快速开始

OpenShift Container Platform 引入了由 ConsoleQuickStart 对象定义的快速启动自定义资源。operator 和管理员可以使用此资源来快速使用集群。

先决条件

  • 您必须具有集群管理员特权。

流程

  1. 要创建新快速启动,请运行:

    $ oc get -o yaml consolequickstart spring-with-s2i > my-quick-start.yaml
  2. 运行:

    $ oc create -f my-quick-start.yaml
  3. 根据本文档中介绍的指南更新 YAML 文件。
  4. 保存您的编辑。

10.4.1. 查看快速启动 API 文档

流程

  • 要查看快速启动 API 文档,请运行:

    $ oc explain consolequickstarts

运行 oc explain -h 以了解有关 oc explain 使用的更多信息。

10.4.2. 将快速启动 CR 中的元素映射到快速启动 CR

本节帮助您视觉地映射快速启动自定义资源(CR)的部分,使其出现在 web 控制台中快速启动的自定义资源(CR)中。

10.4.2.1. conclusion 元素

查看 YAML 文件中的 conclusion 元素

...
summary:
  failed: Try the steps again.
  success: Your Spring application is running.
title: Run the Spring application
conclusion: >-
  Your Spring application is deployed and ready. 1

1
conclusion 文本

在 web 控制台中查看 conclusion 元素

最后会出现在快速开始的最后部分。

quick start conclusion in the web console

10.4.2.2. description 元素

查看 YAML 文件中的 description 元素

apiVersion: console.openshift.io/v1
kind: ConsoleQuickStart
metadata:
  name: spring-with-s2i
spec:
  description: 'Import a Spring Application from git, build, and deploy it onto OpenShift.' 1
...

1
description 文本

在 web 控制台中查看 description 元素

这个描述会出现在快速开始页的介绍中。

quick start description in the web console

10.4.2.3. displayName 元素

查看 YAML 文件中的 displayName 元素

apiVersion: console.openshift.io/v1
kind: ConsoleQuickStart
metadata:
  name: spring-with-s2i
spec:
  description: 'Import a Spring Application from git, build, and deploy it onto OpenShift.'
  displayName: Get started with Spring 1
  durationMinutes: 10

1
displayName 文本。

在 web 控制台中查看 displayName 元素

显示名称会出现在快速启动页的介绍中。

quick start display name in the web console

10.4.2.4. durationMinutes 元素

在 YAML 文件中查看 durationMinutes 元素

apiVersion: console.openshift.io/v1
kind: ConsoleQuickStart
metadata:
  name: spring-with-s2i
spec:
  description: 'Import a Spring Application from git, build, and deploy it onto OpenShift.'
  displayName: Get started with Spring
  durationMinutes: 10 1

1
durationMinutes 值,以分钟为单位。这个值定义了快速启动完成所需的时间。

在 web 控制台中查看 durationMinutes 元素

durationMinutes 元素会出现在快速开始页的介绍中。

quick start durationMinutes element in the web console

10.4.2.5. icon 元素

查看 YAML 文件中的 icon 元素

...
spec:
  description: 'Import a Spring Application from git, build, and deploy it onto OpenShift.'
  displayName: Get started with Spring
  durationMinutes: 10
  icon: >-   1
    data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJMYXllcl8xIiBkYXRhLW5hbWU9IkxheWVyIDEiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMTUzZDNjO30uY2xzLTJ7ZmlsbDojZDhkYTlkO30uY2xzLTN7ZmlsbDojNThjMGE4O30uY2xzLTR7ZmlsbDojZmZmO30uY2xzLTV7ZmlsbDojM2Q5MTkxO308L3N0eWxlPjwvZGVmcz48dGl0bGU+c25vd2Ryb3BfaWNvbl9yZ2JfZGVmYXVsdDwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTAxMi42OSw1OTNjLTExLjEyLTM4LjA3LTMxLTczLTU5LjIxLTEwMy44LTkuNS0xMS4zLTIzLjIxLTI4LjI5LTM5LjA2LTQ3Ljk0QzgzMy41MywzNDEsNzQ1LjM3LDIzNC4xOCw2NzQsMTY4Ljk0Yy01LTUuMjYtMTAuMjYtMTAuMzEtMTUuNjUtMTUuMDdhMjQ2LjQ5LDI0Ni40OSwwLDAsMC0zNi41NS0yNi44LDE4Mi41LDE4Mi41LDAsMCwwLTIwLjMtMTEuNzcsMjAxLjUzLDIwMS41MywwLDAsMC00My4xOS0xNUExNTUuMjQsMTU1LjI0LDAsMCwwLDUyOCw5NS4yYy02Ljc2LS42OC0xMS43NC0uODEtMTQuMzktLjgxaDBsLTEuNjIsMC0xLjYyLDBhMTc3LjMsMTc3LjMsMCwwLDAtMzEuNzcsMy4zNSwyMDguMjMsMjA4LjIzLDAsMCwwLTU2LjEyLDE3LjU2LDE4MSwxODEsMCwwLDAtMjAuMjcsMTEuNzUsMjQ3LjQzLDI0Ny40MywwLDAsMC0zNi41NywyNi44MUMzNjAuMjUsMTU4LjYyLDM1NSwxNjMuNjgsMzUwLDE2OWMtNzEuMzUsNjUuMjUtMTU5LjUsMTcyLTI0MC4zOSwyNzIuMjhDOTMuNzMsNDYwLjg4LDgwLDQ3Ny44Nyw3MC41Miw0ODkuMTcsNDIuMzUsNTIwLDIyLjQzLDU1NC45LDExLjMxLDU5MywuNzIsNjI5LjIyLTEuNzMsNjY3LjY5LDQsNzA3LjMxLDE1LDc4Mi40OSw1NS43OCw4NTkuMTIsMTE4LjkzLDkyMy4wOWEyMiwyMiwwLDAsMCwxNS41OSw2LjUyaDEuODNsMS44Ny0uMzJjODEuMDYtMTMuOTEsMTEwLTc5LjU3LDE0My40OC0xNTUuNiwzLjkxLTguODgsNy45NS0xOC4wNSwxMi4yLTI3LjQzcTUuNDIsOC41NCwxMS4zOSwxNi4yM2MzMS44NSw0MC45MSw3NS4xMiw2NC42NywxMzIuMzIsNzIuNjNsMTguOCwyLjYyLDQuOTUtMTguMzNjMTMuMjYtNDkuMDcsMzUuMy05MC44NSw1MC42NC0xMTYuMTksMTUuMzQsMjUuMzQsMzcuMzgsNjcuMTIsNTAuNjQsMTE2LjE5bDUsMTguMzMsMTguOC0yLjYyYzU3LjItOCwxMDAuNDctMzEuNzIsMTMyLjMyLTcyLjYzcTYtNy42OCwxMS4zOS0xNi4yM2M0LjI1LDkuMzgsOC4yOSwxOC41NSwxMi4yLDI3LjQzLDMzLjQ5LDc2LDYyLjQyLDE0MS42OSwxNDMuNDgsMTU1LjZsMS44MS4zMWgxLjg5YTIyLDIyLDAsMCwwLDE1LjU5LTYuNTJjNjMuMTUtNjQsMTAzLjk1LTE0MC42LDExNC44OS0yMTUuNzhDMTAyNS43Myw2NjcuNjksMTAyMy4yOCw2MjkuMjIsMTAxMi42OSw1OTNaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMzY0LjE1LDE4NS4yM2MxNy44OS0xNi40LDM0LjctMzAuMTUsNDkuNzctNDAuMTFhMjEyLDIxMiwwLDAsMSw2NS45My0yNS43M0ExOTgsMTk4LDAsMCwxLDUxMiwxMTYuMjdhMTk2LjExLDE5Ni4xMSwwLDAsMSwzMiwzLjFjNC41LjkxLDkuMzYsMi4wNiwxNC41MywzLjUyLDYwLjQxLDIwLjQ4LDg0LjkyLDkxLjA1LTQ3LjQ0LDI0OC4wNi0yOC43NSwzNC4xMi0xNDAuNywxOTQuODQtMTg0LjY2LDI2OC40MmE2MzAuODYsNjMwLjg2LDAsMCwwLTMzLjIyLDU4LjMyQzI3Niw2NTUuMzQsMjY1LjQsNTk4LDI2NS40LDUyMC4yOSwyNjUuNCwzNDAuNjEsMzExLjY5LDI0MC43NCwzNjQuMTUsMTg1LjIzWiIvPjxwYXRoIGNsYXNzPSJjbHMtMyIgZD0iTTUyNy41NCwzODQuODNjODQuMDYtOTkuNywxMTYuMDYtMTc3LjI4LDk1LjIyLTIzMC43NCwxMS42Miw4LjY5LDI0LDE5LjIsMzcuMDYsMzEuMTMsNTIuNDgsNTUuNSw5OC43OCwxNTUuMzgsOTguNzgsMzM1LjA3LDAsNzcuNzEtMTAuNiwxMzUuMDUtMjcuNzcsMTc3LjRhNjI4LjczLDYyOC43MywwLDAsMC0zMy4yMy01OC4zMmMtMzktNjUuMjYtMTMxLjQ1LTE5OS0xNzEuOTMtMjUyLjI3QzUyNi4zMywzODYuMjksNTI3LDM4NS41Miw1MjcuNTQsMzg0LjgzWiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTEzNC41OCw5MDguMDdoLS4wNmEuMzkuMzksMCwwLDEtLjI3LS4xMWMtMTE5LjUyLTEyMS4wNy0xNTUtMjg3LjQtNDcuNTQtNDA0LjU4LDM0LjYzLTQxLjE0LDEyMC0xNTEuNiwyMDIuNzUtMjQyLjE5LTMuMTMsNy02LjEyLDE0LjI1LTguOTIsMjEuNjktMjQuMzQsNjQuNDUtMzYuNjcsMTQ0LjMyLTM2LjY3LDIzNy40MSwwLDU2LjUzLDUuNTgsMTA2LDE2LjU5LDE0Ny4xNEEzMDcuNDksMzA3LjQ5LDAsMCwwLDI4MC45MSw3MjNDMjM3LDgxNi44OCwyMTYuOTMsODkzLjkzLDEzNC41OCw5MDguMDdaIi8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNNTgzLjQzLDgxMy43OUM1NjAuMTgsNzI3LjcyLDUxMiw2NjQuMTUsNTEyLDY2NC4xNXMtNDguMTcsNjMuNTctNzEuNDMsMTQ5LjY0Yy00OC40NS02Ljc0LTEwMC45MS0yNy41Mi0xMzUuNjYtOTEuMThhNjQ1LjY4LDY0NS42OCwwLDAsMSwzOS41Ny03MS41NGwuMjEtLjMyLjE5LS4zM2MzOC02My42MywxMjYuNC0xOTEuMzcsMTY3LjEyLTI0NS42Niw0MC43MSw1NC4yOCwxMjkuMSwxODIsMTY3LjEyLDI0NS42NmwuMTkuMzMuMjEuMzJhNjQ1LjY4LDY0NS42OCwwLDAsMSwzOS41Nyw3MS41NEM2ODQuMzQsNzg2LjI3LDYzMS44OCw4MDcuMDUsNTgzLjQzLDgxMy43OVoiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik04ODkuNzUsOTA4YS4zOS4zOSwwLDAsMS0uMjcuMTFoLS4wNkM4MDcuMDcsODkzLjkzLDc4Nyw4MTYuODgsNzQzLjA5LDcyM2EzMDcuNDksMzA3LjQ5LDAsMCwwLDIwLjQ1LTU1LjU0YzExLTQxLjExLDE2LjU5LTkwLjYxLDE2LjU5LTE0Ny4xNCwwLTkzLjA4LTEyLjMzLTE3My0zNi42Ni0yMzcuNHEtNC4yMi0xMS4xNi04LjkzLTIxLjdjODIuNzUsOTAuNTksMTY4LjEyLDIwMS4wNSwyMDIuNzUsMjQyLjE5QzEwNDQuNzksNjIwLjU2LDEwMDkuMjcsNzg2Ljg5LDg4OS43NSw5MDhaIi8+PC9zdmc+Cg==
...

1
定义为 base64 值的图标。

在 web 控制台中查看 icon 元素

这个描述会出现在快速开始页的介绍中。

quick start icon element in the web console

10.4.2.6. introduction 元素

查看 YAML 文件中的 introduction 元素

...
  introduction: >- 1
    **Spring** is a Java framework for building applications based on a distributed microservices architecture.

    - Spring enables easy packaging and configuration of Spring applications into a self-contained executable application which can be easily deployed as a container to OpenShift.

    - Spring applications can integrate OpenShift capabilities to provide a natural "Spring on OpenShift" developer experience for both existing and net-new Spring applications. For example:

    - Externalized configuration using Kubernetes ConfigMaps and integration with Spring Cloud Kubernetes

    - Service discovery using Kubernetes Services

    - Load balancing with Replication Controllers

    - Kubernetes health probes and integration with Spring Actuator

    - Metrics: Prometheus, Grafana, and integration with Spring Cloud Sleuth

    - Distributed tracing with Istio & Jaeger tracing

    - Developer tooling through Red Hat OpenShift and Red Hat CodeReady developer tooling to quickly scaffold new Spring projects, gain access to familiar Spring APIs in your favorite IDE, and deploy to Red Hat OpenShift
...

1
简介介绍了快速启动并列出其中的任务。

在 web 控制台中查看 introduction 元素

点一个快速启动卡后,一个侧边面板滑盘将快速启动并列出它里面的任务。

quick start introduction element in the web console

10.4.3. 为快速启动添加自定义图标

为所有快速启动提供了默认图标。您可以提供自己的自定义图标。

流程

  1. 查找您要用作自定义图标的 .svg 文件。
  2. 使用在线工具将文本转换为 base64
  3. 在 YAML 文件中,添加 icon: >-,然后在下一行中包含 data:image/svg+xml;base64,后面接的是 base64 转换的输出。例如:

    icon: >-
       data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHJvbGU9ImltZyIgdmlld.

10.4.4. 限制对快速开始的访问

并不是所有的快速开始都应该对所有人可用。YAML 文件的 accessReviewResources 部分提供限制对快速启动的访问的能力。

只有有权创建 HelmChartRepository 资源的用户,才能访问快速开始,使用以下配置:

accessReviewResources:
  - group: helm.openshift.io
    resource: helmchartrepositories
    verb: create

只有用户具有列出 Operator 组和软件包清单(因此能够安装 Operator)时允许用户访问快速开始,使用以下配置:

accessReviewResources:
  - group: operators.coreos.com
    resource: operatorgroups
    verb: list
  - group: packages.operators.coreos.com
    resource: packagemanifests
    verb: list

10.4.5. 连接到其他快速开始

流程

  • 在 YAML 文件的 nextQuickStart 部分,提供您要链接的快速开始的 name 而不是 displayName。例如:

    nextQuickStart:
      - add-healthchecks

10.4.6. 支持的标签快速启动

使用这些标签在标记中写入快速开始内容。标记将转换为 HTML。

Tag描述

'b',

粗体文本。

'img',

嵌入图像。

'i',

斜体文本。

'strike',

带有横线贯穿的文本。

's',

较小的文本

'del',

较小的文本。

'em',

加重文本。

'strong',

重要文本。

'a',

anchor 标签。

'p',

段落文本。

'h1',

1 级标题。

'h2',

2 级标题。

'h3',

3 级标题。

'h4',

4 级标题。

'ul',

一个没有顺序的列表。

'ol',

一个有顺序的列表。

'li',

一个列表项。

'code',

代码文本。

'pre',

预格式化的文本块。

'button',

文本中的一个按钮。

10.4.7. 快速入门突出显示 markdown 参考

高亮显示(或提示)功能可让快速入门包含可突出显示并模拟 web 控制台组件的链接。

markdown 语法包含:

  • 括起的链接文本
  • highlight 关键字,后跟您要动画的元素的 ID

10.4.7.1. 视角切换器

[Perspective switcher]{{highlight qs-perspective-switcher}}

10.4.7.2. Administrator 视角导航链接

[Home]{{highlight qs-nav-home}}
[Operators]{{highlight qs-nav-operators}}
[Workloads]{{highlight qs-nav-workloads}}
[Serverless]{{highlight qs-nav-serverless}}
[Networking]{{highlight qs-nav-networking}}
[Storage]{{highlight qs-nav-storage}}
[Service catalog]{{highlight qs-nav-servicecatalog}}
[Compute]{{highlight qs-nav-compute}}
[User management]{{highlight qs-nav-usermanagement}}
[Administration]{{highlight qs-nav-administration}}

10.4.7.3. Developer 视角导航链接

[Add]{{highlight qs-nav-add}}
[Topology]{{highlight qs-nav-topology}}
[Search]{{highlight qs-nav-search}}
[Project]{{highlight qs-nav-project}}
[Helm]{{highlight qs-nav-helm}}

10.4.7.4. 常用导航链接

[Builds]{{highlight qs-nav-builds}}
[Pipelines]{{highlight qs-nav-pipelines}}
[Monitoring]{{highlight qs-nav-monitoring}}

10.4.8. 代码片段 markdown 参考

当 web 控制台的快速入门中包括了一个 CLI 代码片段时,您可以它。要使用这个功能,您必须首先安装 Web Terminal Operator。如果您没有安装 Web Terminal Operator,则 web 终端中执行的 web 终端和代码片段操作将不存在。另外,无论您是否安装了 Web Terminal Operator,您都可以将代码片段复制到剪贴板中。

10.4.8.1. 内联代码片段的语法

`code block`{{copy}}
`code block`{{execute}}
注意

如果使用 execute 语法,无论您是否安装了 Web Terminal Operator,都会出现 Copy to clipboard 操作。

10.4.8.2. 多行代码片段的语法

```
multi line code block
```{{copy}}

```
multi line code block
```{{execute}}

10.5. 快速开始内容指南

10.5.1. Card copy

您可以在快速开始卡上自定义标题及描述,但您无法自定义状态。

  • 将您的描述长度限制为一到两句。
  • 从操作动词开始,并告知用户其目的。正确的示例:

    Create a serverless application.

10.5.2. 简介

点一个快速启动卡后,一个侧边面板滑盘将快速启动并列出它里面的任务。

  • 使您的简介内容更加简洁、明确、易于理解。
  • 说明快速开始的目的。用户应在开始之前了解快速开始的目的。
  • 为用户提供一个操作,而不是快速开始。

    • 正确的示例

      In this quick start, you will deploy a sample application to {product-title}.
    • 不正确的示例

      This quick start shows you how to deploy a sample application to {product-title}.
  • 根据特性的复杂程度,简介应保持在最多四到五句。介绍不要太长。
  • 列出简介内容后快速开始的任务,并以操作动词启动每个任务。不要指定任务数量,因为每次添加或删除任务时都需要更新副本。

    • 正确的示例

      Tasks to complete: Create a serverless application; Connect an event source; Force a new revision
    • 不正确的示例

      You will complete these 3 tasks: Creating a serverless application; Connecting an event source; Forcing a new revision

10.5.3. Task steps

用户点 Start 后会出现一系列步骤,它们必须执行这些操作来完成快速开始。

在编写任务步骤时遵循这些常规指南:

  • 对于按钮和标签使用 "Click"。在选择框、单选按钮和下拉菜单中使用"选择"。
  • 使用 "Click" 而不是 "Click on"

    • 正确的示例

      Click OK.
    • 不正确的示例

      Click on the OK button.
  • 告诉用户如何在管理员开发者视角间如何切换。即使您认为某个用户可能已经处于正确的视角,最好仍为用户提供相应的操作说明,使其确定位于正确的位置。

    示例:

    Enter the Developer perspective: In the main navigation, click the dropdown menu and select Developer.
    Enter the Administrator perspective: In the main navigation, click the dropdown menu and select Admin.
  • 使用 "Location, action" 结构。告诉用户要做什么前先告诉用户到什么地方。

    • 正确的示例

      In the node.js deployment, hover over the icon.
    • 不正确的示例

      Hover over the icon in the node.js deployment.
  • 保持您的产品术语大写一致。
  • 如果您必须指定一个菜单类型或使用列表作为下拉菜单,使用 "dropdown"(一个单词,没有短横线)。
  • 明确区分用户动作和产品功能的附加信息。

    • User action

      Change the time range of the dashboard by clicking the dropdown menu and selecting time range.
    • Additional information

      To look at data in a specific time frame, you can change the time range of the dashboard.
  • 避免方向性的语言,如 "In the top-right corner, click the icon"。因为当 UI 布局改变时,方向语言就有可能变为不正确。另外,桌面用户对于具有不同屏幕大小的用户来说,方向可能是不正确的。反之,使用它的名称来标识项。

    • 正确的示例

      In the navigation menu, click Settings.
    • 不正确的示例

      In the left-hand menu, click Settings.
  • 不要只使用颜色来标识项,如 "Click the gray circle"。颜色标识符对受限制的用户,尤其是无法识别颜色的用户可能不可用。相反,使用它的名称或复制来标识项目,如 button copy。

    • 正确的示例

      The success message indicates a connection.
    • 不正确的示例

      The message with a green icon indicates a connection.
  • 一致性地使用第二人称(you):

    • 正确的示例

      Set up your environment.
    • 不正确的示例

      Let's set up our environment.

10.5.4. Check your work module

  • 用户完成一个步骤后会出现一个 Check your work 模块。这个模块提示用户回答"是"或对步骤结果没有问题,这使得他们有机会复核他们的工作。对于这个模块,您只需要写一个是或不需要问题。

    • 如果用户的回答是 Yes,会出现一个标记。
    • 如果用户的回答是 No, 会出现一个出错信息,其中包含相关文档的链接。然后,用户可以选择返回并再次进行尝试。

10.5.5. 格式化 UI 元素

使用以下指南格式化 UI 元素:

  • 按钮、下拉菜单、标签、字段和其他 UI 控制的副本复制:在 UI 中写入副本并加粗体。
  • 所有其他 UI 元素-包括页面、窗口和面板名称:在 UI 中写入该文件并加粗体。
  • 代码或用户输入的文本:使用 monospaced 字体。
  • 提示:如果包含到导航或 masthead 元素的提示,则使用您链接的文本。
  • CLI 命令:使用 monospaced 字体。
  • 在运行文本时,在命令中使用粗体 monospaced 字体。
  • 如果参数或选项是一个变量值,使用 monospaced 字体。
  • 参数使用粗体的 monospaced 字体,选项使用 monospaced 字体。

10.6. 其他资源

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.