Web 控制台
在 Red Hat OpenShift Service on AWS 中使用 Web 控制台
摘要
第 1 章 Web 控制台概述
Red Hat OpenShift Service on AWS Web 控制台提供了一个图形用户界面,用于视觉化您的项目数据并执行管理、管理和故障排除任务。Web 控制台在 openshift-console 项目的 control plane 节点上运行。它由一个 console-operator
pod 管理。支持管理员和开发者视角。
管理员和开发者视角 都允许您为 AWS 上的 Red Hat OpenShift Service 创建快速启动指南。快速开始是关于用户任务的指导教程,可用于熟悉应用程序、Operator 或其他产品。
1.1. 关于 web 控制台中的 Administrator 视角
Administrator 视角可让您查看集群清单、容量、常规和特定使用信息以及重要事件的流,它们可帮助您简化计划和故障排除任务。项目管理员和开发人员可以使用管理员视角。
集群管理员也可以打开带有 Red Hat OpenShift Service on AWS 4.7 及之后的版本中的 Web 终端 Operator 的内嵌命令行终端实例。
显示的默认 Web 控制台视角取决于用户的角色。如果用户被视为管理员,则默认显示管理员视角。
管理员视角提供特定于管理员用例的工作流,例如:
- 管理工作负载、存储、网络和集群设置。
- 使用 Operator Hub 安装和管理 Operator。
- 添加允许用户通过角色和角色绑定登录和管理用户访问权限的身份提供程序。
- 查看和管理各种高级设置,如集群更新、部分集群更新、集群 Operator、自定义资源定义(CRD)、角色绑定和资源配额。
- 访问和管理监控功能,如指标、警报和监控仪表板。
- 查看并管理有关集群的日志记录、指标和高状态信息。
- 在 Red Hat OpenShift Service on AWS 中,以视觉方式与 Red Hat OpenShift Service 中的 Administrator 视角关联的应用程序、组件和服务进行交互。
1.2. 关于 web 控制台中的开发者视角
开发者视角提供了几个用来部署应用程序、服务和数据库的内置方法。在开发者视角中,您可以:
- 查看组件上滚动和重新创建推出部署的实时视觉化。
- 查看应用状态、资源利用率、项目事件流和配额消耗。
- 将您的项目与他人共享。
- 通过在项目上运行 Prometheus Query Language(PromQL)查询并查看图表中呈现的指标来排除应用程序的问题。此指标数据提供有关集群以及要监控的任何用户定义工作负载的状态信息。
集群管理员也可以在 Red Hat OpenShift Service on AWS 4.7 及之后的版本的 Web 控制台中打开内嵌的命令行终端实例。
显示的默认 Web 控制台视角取决于用户的角色。如果用户是开发人员,则 Developer 视角会被默认显示。
Developer 视角提供开发人员用例特有的工作流,比如:
- 通过导入现有代码库、镜像和容器文件,在 Red Hat OpenShift Service on AWS 上创建和部署应用程序。
- 在一个项目中,以可视的形式和与其关联的应用程序、组件和服务进行交互,并监控它们的部署和构建状态。
- 在应用程序中对组件进行分组,并在应用程序内部及跨应用程序间连接组件。
- 集成无服务器功能(技术预览)。
- 使用 Eclipse Che 创建开发平台来编辑应用程序代码。
您可以使用 Topology 视图来显示项目的应用程序、组件和工作负载。如果项目中没有工作负载,则 Topology 视图将显示一些创建或导入它们的链接。您还可以使用 Quick Search 来直接导入组件。
其它资源
如需有关在 Developer 视角中使用 Topology 视图的更多信息,请参阅使用 Topology 视图查看应用程序组成。
1.3. 访问视角
您可以通过 web 控制台访问 Administrator 和 Developer 视角,如下所示:
先决条件
要访问视角,请确保您已登陆到 web 控制台。您的默认视角由用户权限自动决定。对有权访问所有项目的用户选择 Administrator 视角,而对于对自己项目具有有限访问权限的用户选择 Developer 视角
其它资源
有关更改视角的更多信息,请参阅添加用户首选项。
流程
- 使用视角切换器切换到 Administrator 或 Developer 视角。
- 从 Project 下拉列表中选择一个现有项目。您也可以从此下拉菜单创建新项目。
您只能以 cluster-admin
用户身份使用视角切换器。
第 2 章 访问Web控制台
Red Hat OpenShift Service on AWS Web 控制台是一个从 Web 浏览器访问的用户界面。开发人员可以使用Web控制台来直观地浏览并管理项目的内容。
2.1. 先决条件
- 必须启用JavaScript才能使用Web控制台。为获得最佳体验,请使用支持WebSockets的Web浏览器。
- 在为集群创建支持基础结构之前,请参阅OpenShift Container Platform 4.x Tested Integrations页。
2.2. 了解和访问Web控制台
Web 控制台作为 pod 在 control plane 节点上运行。这个 pod 提供了运行Web控制台所需的静态环境。
步骤
- 登录到 OpenShift Cluster Manager 并点集群的名称。
- 在集群 Overview 选项卡中,点 Open console,并使用您的凭证登录。
或者,使用 oc whoami --show-console
命令获取 Web 控制台 URL。
第 3 章 使用 Red Hat OpenShift Service on AWS 仪表板获取集群信息
Red Hat OpenShift Service on AWS web 控制台会捕获集群的高级别信息。
3.1. 关于 Red Hat OpenShift Service on AWS 仪表板页面
访问 Red Hat OpenShift Service on AWS 仪表板,它捕获了有关集群的高级别信息,方法是进入到 Red Hat OpenShift Service on AWS Web 控制台中的 Home → Overview。
Red Hat OpenShift Service on AWS 仪表板提供各种集群信息,它们包括在单个仪表板卡中。
Red Hat OpenShift Service on AWS 仪表板由以下卡组成:
Details 提供有关信息型集群详情的简单概述。
状态包括 ok、error、warning、in progress 和 unknown。资源可添加自定义状态名称。
- 集群 ID
- 提供者
- 版本
Cluster Inventory 详细列出资源数目和相关状态。这在通过干预解决问题时非常有用,其中包含以下相关信息:
- 节点数
- pod 数量
- 持久性存储卷声明
- 集群中的裸机主机,根据其状态列出(只在 metal3 环境中可用)
- Status 可帮助管理员了解集群资源是如何被消耗的。点一个资源可以进入一个包括详细信息的页面,它列出了对指定集群资源(CPU 、内存或者存储)消耗最多的 Pod 和节点。
Cluster Utilization 显示指定时间段内各种资源的容量,以帮助管理员了解高资源消耗的规模和频率,包括以下信息:
- CPU 时间
- 内存分配
- 所消耗的存储
- 所消耗的网络资源
- Pod 数量
- 活动 列出了与集群中最近活动相关的消息,如创建 pod 或虚拟机迁移到另一台主机。
3.2. 识别资源和项目配额和配额
您可以在 web 控制台的 Developer 视角的 Topology 视图中查看可用资源的图形表示。
如果资源有一个关于达到资源限制或配额的消息,则会针对资源名称出现黄色的边框。点资源以打开侧面板来查看消息。如果 Topology 视图被缩放,则一个黄色点表示信息可用。
如果您在 View Shortcuts 菜单中使用 List View,则资源会显示为列表。Alerts 列指示消息是否可用。
第 4 章 动态插件
4.1. 动态插件概述
4.1.1. 关于动态插件
动态插件作为工作负载在集群中部署。它们允许您在运行时为控制台用户界面添加自定义页面和其他扩展。ConsolePlugin
自定义资源使用控制台注册插件,集群管理员在 console-operator
配置中启用了插件。
4.1.2. 主要特性
通过动态插件,您可以对 Red Hat OpenShift Service on AWS 进行以下自定义:
- 添加自定义页面。
- 增加了除管理员和开发人员之外的其他视角。
- 添加导航项。
- 在资源页面中添加制表符和操作。
4.1.3. 常规指南
在创建插件时,请遵循以下常规准则:
-
构建和运行插件需要
Node.js
和yarn
。 -
为您的 CSS 类名称加上插件名称前缀,以避免冲突。例如,
my-plugin__heading
和my-plugin_\_icon
。 - 与其他控制台页面保持一致的外观、感觉和行为。
在创建插件时遵循 react-i18next 指南。您可以使用类似以下示例中的
useTranslation
hook:conster Header: React.FC = () => { const { t } = useTranslation('plugin__console-demo-plugin'); return <h1>{t('Hello, World!')}</h1>; };
- 避免可能影响插件组件之外的标记的选择器,如元素选择器。这些不是 API,可能随时更改。使用它们可能会破坏插件。避免选择器,如元素选择器,它们可能会影响插件组件之外的标记。
-
为插件 Web 服务器提供的所有资产,使用
Content-Type
响应标头提供有效的 JavaScript 多用途互联网邮件扩展(MIME)类型。每个插件部署都应该包含一个 Web 服务器,用于托管给定插件生成的资产。
PatternFly 指南
在创建插件时,请按照以下使用 PatternFly 的准则进行以下操作:
使用 PatternFly 组件和 PatternFly CSS 变量。SDK 提供了核心 PatternFly 组件。使用 PatternFly 组件和变量可帮助您的插件在将来的控制台版本中保持一致。
- 如果您使用 Red Hat OpenShift Service on AWS 版本 4.14 及更早版本,请使用 Patternfly 4.x。
- 如果您在 AWS 4.15 或更高版本中使用 Red Hat OpenShift Service,请使用 Patternfly 5.x。
- 您可以按照 PatternFly 的可访问性基础,使您的插件能被访问。
-
避免使用其他 CSS 库,如 Bootstrap 或 Tailwind。它们可能会与 PatternFly 冲突,不会与控制台的外观和感觉相匹配。插件应仅包含特定于其用户界面的样式,以便在基本 PatternFly 样式上评估。避免在插件中导入
@patternfly/react-styles/*/.css
或来自@patternfly/patternfly
软件包的任何样式。 - 控制台应用程序负责为所有支持的 PatternFly 版本载入基本风格。
4.2. 动态插件入门
要开始使用动态插件,您必须设置您的环境来编写新的 Red Hat OpenShift Service on AWS 动态插件。有关如何编写新插件的示例,请参阅 Adding a tab to the pods 页。
4.2.1. 动态插件开发
您可以使用本地开发环境运行插件。Red Hat OpenShift Service on AWS Web 控制台在连接到您登录的集群的容器中运行。
先决条件
流程
在终端中,运行以下命令使用 yarn 安装插件的依赖项。
$ yarn install
安装后,运行以下命令来启动 yarn。
$ yarn run start
在另一个终端窗口中,通过 CLI 登录到 Red Hat OpenShift Service on AWS。
$ oc login
运行以下命令,在连接到您登录的集群的容器中运行 Red Hat OpenShift Service on AWS Web 控制台:
$ yarn run start-console
验证
-
访问 localhost:9000 以查看正在运行的插件。检查
window.SERVER_FLAGS.consolePlugins
的值,以查看在运行时加载的插件列表。
4.3. 在集群中部署插件
您可以将插件部署到 Red Hat OpenShift Service on AWS 集群中。
4.3.1. 使用 Docker 构建镜像
要在集群中部署插件,您需要构建镜像并将其推送到镜像 registry。
流程
使用以下命令构建镜像:
$ docker build -t quay.io/my-repositroy/my-plugin:latest .
可选:如果要测试您的镜像,请运行以下命令:
$ docker run -it --rm -d -p 9001:80 quay.io/my-repository/my-plugin:latest
运行以下命令推送镜像:
$ docker push quay.io/my-repository/my-plugin:latest
4.3.2. 在集群中部署插件
在将镜像推送到 registry 后,您可以将插件部署到集群中。
流程
要将插件部署到集群中,请使用插件名称作为 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
参数中镜像的位置。
可选: 您可以使用
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
验证
-
从 Administration → Cluster Settings → Configuration → Console
operator.openshift.io
→ Console plugins 或访问 Overview 页面来查看启用的插件列表。
显示新插件配置可能需要几分钟时间。如果没有看到插件,则在最近启用了插件时,可能需要刷新浏览器。如果您在运行时收到任何错误,请在浏览器开发人员工具中检查 JS 控制台,以查看插件代码中的任何错误。
4.3.3. 在浏览器中禁用您的插件
控制台用户可以使用 disable-plugins
查询参数来禁用通常会在运行时加载的特定或所有动态插件。
流程
- 要禁用特定的插件,请从以逗号分隔的插件名称列表中删除您要禁用的插件。
-
要禁用所有插件,请在
disable-plugins
查询参数中有一个空字符串。
集群管理员可以在 web 控制台的 Cluster Settings 页面中禁用插件
4.4. 动态插件示例
在操作示例前,请按照动态插件开发中的步骤来验证插件是否正常工作
4.4.1. 在 Pod 页面中添加标签页
您可以对 Red Hat OpenShift Service on AWS Web 控制台进行不同的自定义配置。以下流程在 Pod Details 页中添加一个标签页,作为插件的一个示例扩展。
Red Hat OpenShift Service on AWS Web 控制台在连接到您登录的集群的容器中运行。有关在创建自己的前测试插件的信息,请参阅"动态插件开发"。
流程
访问
console-plugin-template
存储库,其中包含用于在新标签页中创建插件的模板。重要红帽不支持自定义插件代码。对于插件,只有合作社区支持。
- 点 Use this template → Create new repository,为模板创建一个 GitHub 存储库。
- 使用插件的名称替换新存储库。
- 将新存储库克隆到本地机器,以便您可以编辑代码。
编辑
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": "/*" } }
在
console-extensions.json
文件中添加以下内容:{ "type": "console.tab/horizontalNav", "properties": { "page": { "name": "Example Tab", "href": "example" }, "model": { "group": "core", "version": "v1", "kind": "Pod" }, "component": { "$codeRef": "ExampleTab" } } }
编辑
package.json
文件以包括以下更改:"exposedModules": { "ExamplePage": "./components/ExamplePage", "ExampleTab": "./components/ExampleTab" }
通过创建新文件
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> ); }
使用插件名称作为 Helm 发行版本名称安装 Helm Chart,或由
-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 页面查看添加的选项卡。
4.5. 动态插件参考
您可以添加允许您自定义插件的扩展。这些扩展随后会在运行时加载到控制台。
4.5.1. 动态插件扩展类型
console.action/filter
ActionFilter
可用于过滤操作。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 |
上下文 ID 有助于将贡献操作的范围缩小到应用的特定区域。示例包括 |
|
| 否 | 将根据某些条件过滤操作的功能。
|
console.action/group
ActionGroup
贡献一个操作组,也可以是一个子菜单
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 用于识别操作部分的 ID。 |
|
| 是 | UI 中显示的标签。子菜单是必需的。 |
|
| 是 | 此组是否应显示为子菜单。 |
|
| 是 | 在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 |
在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。 |
console.action/provider
ActionProvider
贡献了一个 hook,用于返回特定上下文的操作列表。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 |
上下文 ID 有助于将贡献操作的范围缩小到应用的特定区域。示例包括 |
|
| 否 |
一个 React hook,用于返回给定范围的操作。如果 |
console.action/resource-provider
ResourceActionProvider
贡献 hook,用于返回特定资源模型的操作列表。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此提供程序提供操作的模型。 |
|
| 否 | 反应 hook,它返回给定资源模型的操作 |
console.alert-action
当控制台根据其 rule.name
值观察特定 Prometheus 警报时,此扩展可用于触发特定操作。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 |
由 |
|
| 否 | |
|
| 否 | 执行副作用的功能 |
console.catalog/item-filter
此扩展可用于插件,以生成一个可以过滤特定目录项的处理程序。例如,插件可以贡献从特定提供程序过滤 helm chart 的过滤器。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此提供程序参与的目录的唯一标识符。 |
|
| 否 | 目录项目类型的类型 ID。 |
|
| 否 |
过滤特定类型的项目。值是采用 |
console.catalog/item-metadata
此扩展可用于贡献向特定目录项添加额外的元数据的供应商。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此提供程序参与的目录的唯一标识符。 |
|
| 否 | 目录项目类型的类型 ID。 |
|
| 否 | 返回一个将用来向特定类型的目录项提供元数据的 hook。 |
console.catalog/item-provider
此扩展允许插件为目录项类型贡献供应商。例如,Helm 插件可以添加一个供应商来获取所有 Helm Charts。此扩展也可以被其他插件使用,来向特定的目录项类型添加更多项目。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此提供程序参与的目录的唯一标识符。 |
|
| 否 | 目录项目类型的类型 ID。 |
|
| 否 | 目录项提供程序的标题 |
|
| 否 | 为目录获取项目并进行规范化。值是对 hook 做出反应。 |
|
| 是 |
此提供程序的优先级。默认值为 |
console.catalog/item-type
此扩展允许插件生成新的目录项。例如,Helm 插件可将新的目录项类型定义为它希望向 Developer Catalog 贡献的 HelmCharts。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 目录项的类型。 |
|
| 否 | 目录项的标题。 |
|
| 是 | 特定与目录类型的描述。 |
|
| 是 | 目录项类型的描述。 |
|
| 是 | 特定于目录项的自定义过滤器。 |
|
| 是 | 特定于目录项的自定义分组。 |
console.catalog/item-type-metadata
此扩展允许插件为任何目录项类型贡献额外的元数据,如自定义过滤器或分组。例如,插件可以为根据 Chart 供应商过滤的 HelmCharts 附加自定义过滤器。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 目录项的类型。 |
|
| 是 | 特定于目录项的自定义过滤器。 |
|
| 是 | 特定于目录项的自定义分组。 |
console.cluster-overview/inventory-item
将新清单项添加到集群概览页面中。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 要呈现的组件。 |
console.cluster-overview/multiline-utilization-item
添加新的集群概述多行使用项。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 使用项目的标题。 |
|
| 否 | Prometheus 使用率查询。 |
|
| 否 | 将 Prometheus 数据转换为人类可读形式。 |
|
| 是 | 显示顶部消费者弹出而不是普通值 |
console.cluster-overview/utilization-item
添加新的集群概览使用率项目。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 使用项目的标题。 |
|
| 否 | Prometheus 使用率查询。 |
|
| 否 | 将 Prometheus 数据转换为人类可读形式。 |
|
| 是 | Prometheus 总计查询。 |
|
| 是 | Prometheus 请求查询。 |
|
| 是 | Prometheus 限制查询。 |
|
| 是 | 显示顶部消费者弹出而不是普通值 |
console.context-provider
在 web 控制台应用程序根目录中添加新的 React 上下文提供程序。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 上下文提供程序组件。 |
|
| 否 | 上下文值的 hook。 |
console.dashboards/card
添加新的仪表板卡。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 将添加到卡的仪表板标签的 ID。 |
|
| 否 | 该卡在仪表板上的网格位置。 |
|
| 否 | 仪表板卡组件。 |
|
| 是 |
栏中卡的垂直范围。对于小屏幕会忽略,默认为 |
console.dashboards/custom/overview/detail/item
在 Overview 仪表板的详情卡中添加项目。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 详情卡标题 |
|
| 否 | 由 OverviewDetailItem 组件呈现的值 |
|
| 是 | className 的值 |
|
| 是 | 返回组件的加载状态的功能 |
|
| 是 | 组件显示的功能返回错误 |
console.dashboards/overview/activity/resource
在 Overview 仪表板的活动卡中添加一个活动,其中根据监视 Kubernetes 资源触发活动。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 要替换的 utilization 项。 |
|
| 否 | 操作组件。 |
|
| 是 | 确定给定资源是否代表该操作的功能。如果没有定义,则每个资源都代表活动。 |
|
| 是 | 给定操作的时间戳,用于排序。 |
console.dashboards/overview/health/operator
在 Overview 仪表板的状态卡中添加一个健康子系统,其中状态源是 Kubernetes REST API。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 弹出菜单中的 Operators 部分的标题。 |
|
| 否 |
将获取并传递给 |
|
| 是 | 解析 Operator 的状态。 |
|
| 是 | 弹出行组件的加载程序。 |
|
| 是 | 链接到所有资源页面。如果没有提供,则使用资源 prop 中第一个资源的列表页面。 |
console.dashboards/overview/health/prometheus
在 Status 为 Prometheus 的 Overview 仪表板的状态卡中添加一个健康子系统。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 子系统的显示名称。 |
|
| 否 | Prometheus 查询。 |
|
| 否 | 解决子系统的健康状况。 |
|
| 是 |
将获取并传递给 |
|
| 是 | 弹出式菜单内容的加载程序。如果定义,健康项表示为链接,它会打开一个带有给定内容的弹出窗口。 |
|
| 是 | 弹出的标题。 |
|
| 是 | 应该隐藏子系统的 control plane 拓扑。 |
console.dashboards/overview/health/resource
在状态仪表板的 Overview 卡中添加一个健康子系统,其中状态源是一个 Kubernetes 资源。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 子系统的显示名称。 |
|
| 否 |
将获取并传递给 |
|
| 否 | 解决子系统的健康状况。 |
|
| 是 | 弹出式菜单内容的加载程序。如果定义,健康项表示为链接,它会打开一个带有给定内容的弹出窗口。 |
|
| 是 | 弹出的标题。 |
console.dashboards/overview/health/url
在状态仪表板的 Overview 卡中添加一个健康子系统,其中状态源是一个 Kubernetes REST API。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 子系统的显示名称。 |
|
| 否 | 从中获取数据的 URL。它将以基本 Kubernetes URL 作为前缀。 |
|
| 否 | 解决子系统的健康状况。 |
|
| 是 |
将获取并传递给 |
|
| 是 | 弹出内容的加载程序。如果定义,则一个健康项目将显示为一个链接,该链接会打开给定内容弹出窗口中。 |
|
| 是 | 弹出的标题。 |
console.dashboards/overview/inventory/item
在概述清单卡中添加资源标题。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 |
将获取的 |
|
| 是 | 将各种状态映射到组的功能。 |
|
| 是 |
将获取并传递给 |
console.dashboards/overview/inventory/item/group
添加清单状态组。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 状态组的 ID。 |
|
| 否 | 响应代表状态组图标的组件。 |
console.dashboards/overview/inventory/item/replacement
替换概述清单卡。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 |
将获取的 |
|
| 是 | 将各种状态映射到组的功能。 |
|
| 是 |
将获取并传递给 |
console.dashboards/overview/prometheus/activity/resource
在 Prometheus Overview 仪表板的 Activity 卡中添加一个活动,该仪表板根据监视 Kubernetes 资源来触发活动。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 要监视的查询。 |
|
| 否 | 操作组件。 |
|
| 是 | 确定给定资源是否代表该操作的功能。如果没有定义,则每个资源都代表活动。 |
console.dashboards/project/overview/item
为项目概述清单卡中添加资源标题。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 |
将获取的 |
|
| 是 | 将各种状态映射到组的功能。 |
|
| 是 |
将获取并传递给 |
console.dashboards/tab
添加新仪表板选项卡,它位于 Overview 选项卡的后面。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 |
唯一标签页标识符,用作标签链接 |
|
| 否 | 选项卡所属的导航部分。 |
|
| 否 | 选项卡的标题。 |
console.file-upload
此扩展可用于为特定文件扩展提供文件丢弃操作的处理程序。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 支持的文件扩展。 |
|
| 否 | 处理文件丢弃操作的功能。 |
console.flag
提供对 Web 控制台功能标记的完整控制。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 用于设置或取消设置任意功能标记。 |
console.flag/hookProvider
提供对带有 hook 处理程序的 Web 控制台功能标记的完整控制。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 用于设置或取消设置任意功能标记。 |
console.flag/model
通过在集群中存在 CustomResourceDefinition
(CRD) 对象来添加新的 Web 控制台功能标记。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 在检测到 CRD 后要设置的标记名称。 |
|
| 否 | 引用 CRD 的模型。 |
console.global-config
此扩展标识用于管理集群配置的资源。资源的链接将添加到 Administration → Cluster Settings → Configuration 页面中。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 集群配置资源实例的唯一标识符。 |
|
| 否 | 集群配置资源实例的名称。 |
|
| 否 | 指代集群配置资源的模型。 |
|
| 否 | 集群配置资源实例的命名空间。 |
console.model-metadata
通过覆盖通过 API 发现检索并生成的值来自定义模型显示。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 要定制的模型。只能指定组或可选版本和类型。 |
|
| 是 | 是否将这个模型视为技术预览还是开发者预览。 |
|
| 是 | 与这个模型关联的颜色。 |
|
| 是 |
覆盖标签。需要提供的 |
|
| 是 |
覆盖复数标签。需要提供的 |
|
| 是 |
自定义缩写。默认为 |
console.navigation/href
此扩展可用于贡献指向 UI 中特定链接的导航项。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此项目的唯一标识符。 |
|
| 否 | 此项目的名称。 |
|
| 否 |
链接 |
|
| 是 | 此项目所属的视角 ID。若未指定,则向默认视角。 |
|
| 是 | 导航此项目所属的导航部分。如果未指定,请将此项目呈现为顶级链接。 |
|
| 是 | 在 DOM 中添加数据属性。 |
|
| 是 | 当 URL 从其中一个路径之一时,将此项标记为 active。 |
|
| 是 | 在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 |
在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 |
如果为 |
|
| 是 |
如果为 |
console.navigation/resource-cluster
此扩展可用于贡献指向集群资源详情页面的导航项。该资源的 K8s 模型可用于定义导航项。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此项目的唯一标识符。 |
|
| 否 | 此导航项目所链接的模型。 |
|
| 是 | 此项目所属的视角 ID。若未指定,则向默认视角。 |
|
| 是 | 导航此项目所属的导航部分。如果未指定,请将此项目呈现为顶级链接。 |
|
| 是 | 在 DOM 中添加数据属性。 |
|
| 是 | 当 URL 从其中一个路径之一时,将此项标记为 active。 |
|
| 是 | 在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 |
在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 | 覆盖默认名称。如果没有提供链接的名称,则会与模型的复数值相同。 |
console.navigation/resource-ns
此扩展可用于贡献指向命名空间资源详情页面的导航项。该资源的 K8s 模型可用于定义导航项。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此项目的唯一标识符。 |
|
| 否 | 此导航项目所链接的模型。 |
|
| 是 | 此项目所属的视角 ID。若未指定,则向默认视角。 |
|
| 是 | 导航此项目所属的导航部分。如果未指定,请将此项目呈现为顶级链接。 |
|
| 是 | 在 DOM 中添加数据属性。 |
|
| 是 | 当 URL 从其中一个路径之一时,将此项标记为 active。 |
|
| 是 | 在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 |
在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 | 覆盖默认名称。如果没有提供链接的名称,则会与模型的复数值相同。 |
console.navigation/section
此扩展可用于在导航选项卡中定义导航项的新部分。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此项目的唯一标识符。 |
|
| 是 | 此项目所属的视角 ID。若未指定,则向默认视角。 |
|
| 是 | 在 DOM 中添加数据属性。 |
|
| 是 | 在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 |
在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 | 本节的名称。如果没有提供,上面部分将仅显示一个分隔符。 |
console.navigation/separator
此扩展可用于在导航中的导航项目之间添加分隔符。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此项目的唯一标识符。 |
|
| 是 | 此项目所属的视角 ID。若未指定,则向默认视角。 |
|
| 是 | 导航此项目所属的导航部分。如果未指定,请将此项目呈现为顶级链接。 |
|
| 是 | 在 DOM 中添加数据属性。 |
|
| 是 | 在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 |
在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。 |
console.page/resource/details
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此资源页面链接到的型号。 |
|
| 否 | 路由匹配时要呈现的组件。 |
console.page/resource/list
向控制台路由器添加新的资源列表页面。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此资源页面链接到的型号。 |
|
| 否 | 路由匹配时要呈现的组件。 |
console.page/route
在 Web 控制台路由器中添加新页面。请参阅 React Router。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 路由匹配时要呈现的组件。 |
|
| 否 |
|
|
| 是 | 此页面所属的视图。如果没有指定,则会对所有视角贡献。 |
|
| 是 |
为 true 时,只有在路径与 |
console.page/route/standalone
向 web 控制台路由器中添加在通用页面布局外呈现的新独立页面。请参阅 React Router。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 路由匹配时要呈现的组件。 |
|
| 否 |
|
|
| 是 |
为 true 时,只有在路径与 |
console.perspective
此扩展为控制台贡献一个新的视角,它允许自定义导航菜单。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 透视图标识符。 |
|
| 否 | 视角显示名称。 |
|
| 否 | 视角显示图标。 |
|
| 否 | 获取视角登录页面 URL 的功能。 |
|
| 否 | 获取导入流的重定向 URL。 |
|
| 是 | 这个视角是默认的。只能有一个默认值。 |
|
| 是 | nav 上的默认固定资源 |
|
| 是 | 要检测默认视角的 hook |
console.project-overview/inventory-item
在 Project Overview 页面中添加一个新清单项。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 要呈现的组件。 |
console.project-overview/utilization-item
添加新项目概述使用率项目。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 使用项目的标题。 |
|
| 否 | Prometheus 使用率查询。 |
|
| 否 | 将 Prometheus 数据转换为人类可读形式。 |
|
| 是 | Prometheus 总计查询。 |
|
| 是 | Prometheus 请求查询。 |
|
| 是 | Prometheus 限制查询。 |
|
| 是 | 显示 top consumer 弹出窗而不是纯值。 |
console.pvc/alert
此扩展可用于在 PVC 详情页面中贡献自定义警报。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 警报组件。 |
console.pvc/create-prop
此扩展可以用来指定在 PVC 列表页面中创建 PVC 资源时使用的附加属性。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 创建 prop 操作的标签。 |
|
| 否 | 创建 prop 操作的路径。 |
console.pvc/delete
此扩展允许 hook 删除 PVC 资源。它可以为警报提供额外的信息和自定义 PVC 删除逻辑。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 告知是否使用扩展名的 predicate。 |
|
| 否 | PVC 删除操作的方法。 |
|
| 否 | 警报组件以显示其他信息。 |
console.pvc/status
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 状态组件的优先级。较大的值代表优先级更高。 |
|
| 否 | 状态组件。 |
|
| 否 | 指示是否呈现状态组件的 predicate。 |
console.redux-reducer
为 Console Red Hatux 存储添加了新的减少程序,该存储在 plugins.<scope>
子状态上运行。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 代表 Red Hatux 状态对象中减少管理的子状态的关键。 |
|
| 否 | reducer 函数,在 reducer-managed substate 中操作。 |
console.resource/create
此扩展允许插件为特定资源提供自定义资源(如向导或表单)的自定义资源,当用户尝试创建新资源实例时,这些组件会被呈现。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此创建资源页面将呈现的型号 |
|
| 否 | 当模型匹配时要呈现的组件 |
console.resource/details-item
在详情页面的默认资源摘要中添加一个新的详情项。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 主题资源的 API 组、版本和类型。 |
|
| 否 | 唯一标识符。 |
|
| 否 | 确定项目是否将显示在详细信息页面上的资源摘要的"左"或"右"列中。默认:"右" |
|
| 否 | 详情项标题。 |
|
| 是 | 一个可选的、完全限定的、资源属性的路径,用作详情项目值。只能 直接渲染原始类型 值。使用 component 属性处理其他数据类型。 |
|
| 是 | 可选的 React 组件,用于呈现详情项目值。 |
|
| 是 | 可选的排序权重,相对于同一列中的所有其他详细信息项目。由任何有效的 JavaScriptNumber 表示。每个列中的项目都独立排序,最低为最高。在项目带有排序权重的项目后,没有排序 weight。 |
console.storage-class/provisioner
在存储类创建过程中,添加新的存储类置备程序作为选项。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 是 | Container Storage Interface provisioner 类型 |
|
| 是 | 其他置备程序类型 |
console.storage-provider
此扩展可用于生成新的存储供应商,以便在附加存储和供应商特定组件时进行选择。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 显示提供程序的名称。 |
|
| 否 | 要呈现的供应商特定组件。 |
console.tab
向与 contextId
匹配的 nav 中添加一个标签页。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 |
分配给水平 nav 的上下文 ID,在其中注入选项卡。可能的值: |
|
| 否 | 选项卡的显示标签 |
|
| 否 |
|
|
| 否 | 选项卡内容组件。 |
console.tab/horizontalNav
此扩展可用于在资源详情页面中添加标签页。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此提供程序显示选项卡的型号。 |
|
| 否 | 要在水平标签页中显示的页面。它取标签名称作为名称,并且是 href 的选项卡 |
|
| 否 | 路由匹配时要呈现的组件。 |
console.telemetry/listener
此组件可用于注册接收遥测事件的监听程序功能。这些事件包括用户识别、页面导航和其他特定应用程序的事件。侦听器可以使用这些数据进行报告和分析目的。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 侦听遥测事件 |
console.topology/adapter/build
BuildAdapter
贡献适配器将元素适应 Build 组件可以使用的数据
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 用于调整元素以适用于 Build 组件的适配器。 |
console.topology/adapter/network
NetworkAdpater
贡献适配器,将元素适应数据,以供 Networking
组件使用
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 用于调整元素以适用于 Networking 组件的适配器。 |
console.topology/adapter/pod
PodAdapter
贡献一个适配器,将元素适应 Pod
组件可以使用的数据。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 用于调整元素以适用于 Pod 组件的适配器。 |
console.topology/component/factory
ViewComponentFactory
的 getter。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 |
|
console.topology/create/connector
创建连接器功能的 getter。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 创建连接器功能的 getter。 |
console.topology/data/factory
拓扑数据模型工厂扩展
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 工厂的唯一 ID。 |
|
| 否 | 工厂的优先级 |
|
| 是 |
要从 |
|
| 是 | 包含工作负载的资源中的密钥。 |
|
| 是 | 数据模型工厂的 getter。 |
|
| 是 | 用于确定资源是否由这个模型描述的 getter。 |
|
| 是 | 在所有扩展模型加载后用于协调数据模型的功能。 |
console.topology/decorator/provider
拓扑声明器供应商扩展
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 拓扑 decorator 的 ID,特定于扩展 |
|
| 否 | 拓扑 decorator 的优先级,特定于扩展 |
|
| 否 | 拓扑 decorator 的 Quadrant,特定于扩展 |
|
| 否 | 特定于扩展的 decorator |
console.topology/details/resource-alert
DetailsResourceAlert
为特定拓扑上下文或图形元素贡献警报。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此警报的 ID。用于保存状态,如果警报在丢弃后不应显示。 |
|
| 否 | 返回警报内容的 hook。 |
console.topology/details/resource-link
DetailsResourceLink
为特定拓扑上下文或图形元素贡献一个链接。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 |
如果提供,则返回资源链接,否则未定义。将 |
|
| 是 | 一个高的优先级可以在第一个机会出现时创建链接。 |
console.topology/details/tab
DetailsTab
为拓扑详情面板提供标签页。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此详细信息标签的唯一标识符。 |
|
| 否 | 要在 UI 中显示的标签标签。 |
|
| 是 | 在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 |
在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。 |
console.topology/details/tab-section
DetailsTabSection
对拓扑详情面板中的特定标签页贡献了一个部分。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此详细信息选项卡部分的唯一标识符。 |
|
| 否 | 本节应贡献的父选项卡 ID。 |
|
| 否 |
返回组件的 hook,或者如果为 null 或未定义,会在拓扑栏中显示。SDK 组件: |
|
| 否 | Deprecated: 如果没有定义供应商会 Fallback,renderNull 已是一个 no-op。 |
|
| 是 | 在此处引用的项目前插入此项。对于数组,使用按顺序找到的第一个。 |
|
| 是 |
在此处引用的项目后插入此项。对于数组,使用按顺序找到的第一个。 |
console.topology/display/filters
拓扑显示过滤器扩展
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 特定于扩展的拓扑过滤器的 getter |
|
| 否 | 将过滤器应用到模型的功能 |
console.topology/relationship/provider
拓扑关系供应商连接器扩展
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 用于确定是否可以在源和目标节点之间创建连接 |
|
| 否 | 显示连接器操作将鼠标悬停在 drop 目标的工具,例如:"Create a Visual Connector" |
|
| 否 | 连接器通过目标节点丢弃时执行的回调以创建连接 |
|
| 否 | 关系的优先级,在有多个情况下,首选更高的优先级 |
console.user-preference/group
此扩展可用于在控制台 user-preferences 页面中添加组。它将在控制台 user-preferences 页面中显示为垂直标签页选项。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 用于识别用户首选项组的 ID。 |
|
| 否 | 用户首选项组的标签 |
|
| 是 | 应该放置此组前的用户首选项组群 ID |
|
| 是 | 应该放置此组的用户首选项组群 ID |
console.user-preference/item
此扩展可用于在控制台用户首选项页面中的用户首选项组群中添加项目。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | ID 用于识别用户首选项项目,并在 insertAfter 和 insertBefore 中引用来定义项目顺序 |
|
| 否 | 用户首选项的标签 |
|
| 否 | 用户首选项的描述 |
|
| 否 | 用于呈现值来设置用户首选项的输入字段选项 |
|
| 是 | 用于识别项目所属的用户首选项组的 ID |
|
| 是 | 应放置此项目前的用户首选项项目 ID |
|
| 是 | 用户首选项项目的 ID,之后应放置此项目 |
console.yaml-template
通过 yaml 编辑器编辑资源的 YAML 模板。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 与模板关联的模型。 |
|
| 否 | YAML 模板。 |
|
| 否 |
模板的名称。使用名称 |
dev-console.add/action
此扩展允许插件在开发人员视角的 add 页面中贡献 add action 项。例如,无服务器插件可以添加一个新的 action 项,用于在开发人员控制台的添加页面中添加无服务器功能。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 用于识别操作的 ID。 |
|
| 否 | 操作的标签。 |
|
| 否 | 操作的描述。 |
|
| 否 |
要进入到的 |
|
| 是 | 用于识别该操作所属的操作组的 ID。 |
|
| 是 | 视角显示图标。 |
|
| 是 | 可选访问查看来控制操作的可见性或启用。 |
dev-console.add/action-group
此扩展允许插件在开发人员控制台的添加页面中继续组。组可以被操作引用,这些操作将根据它们的扩展定义在 add 操作页面中分组。例如,Serverless 插件可以贡献 Serverless 组,以及多个 add 操作。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 用于识别操作组的 ID |
|
| 否 | 操作组的标题 |
|
| 是 | 应该放置此组的操作组群 ID |
|
| 是 | 应该放置此组的操作组群 ID |
dev-console.import/environment
此扩展可用于在开发人员控制台 git import 表单的构建器镜像选择器下指定额外的构建环境变量字段。设置后,字段将覆盖 build 部分中相同名称的环境变量。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 为提供自定义环境变量的镜像流名称 |
|
| 否 | 支持的镜像流标签列表 |
|
| 否 | 环境变量列表 |
console.dashboards/overview/detail/item
弃用。使用 CustomOverviewDetailItem
类型
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 |
基于 |
console.page/resource/tab
已弃用。使用 console.tab/horizontalNav
替代。添加新资源选项卡页面到控制台路由器。
Name | 值类型 | 选填 | 描述 |
---|---|---|---|
|
| 否 | 此资源页面链接到的型号。 |
|
| 否 | 路由匹配时要呈现的组件。 |
|
| 否 | 选项卡的名称。 |
|
| 是 |
选项卡链接的可选 |
|
| 是 |
为 true 时,只有在路径与 |
4.5.2. Red Hat OpenShift Service on AWS 控制台 API
useActivePerspective
提供用于设置活跃视角的 hook,以及用于设置活跃视角的回调。它返回一个包含当前活跃视角和 setter 回调的元组。
Example
const Component: React.FC = (props) => { const [activePerspective, setActivePerspective] = useActivePerspective(); return <select value={activePerspective} onChange={(e) => setActivePerspective(e.target.value)} > { // ...perspective options } </select> }
GreenCheckCircleIcon
显示绿色勾号图标的组件。
Example
<GreenCheckCircleIcon title="Healthy" />
参数名称 | 描述 |
---|---|
| (可选)组件的额外类名称 |
| (可选)图标标题 |
|
(可选)图标大小:( |
RedExclamationCircleIcon
用于显示感叹号圆圈图标的组件。
Example
<RedExclamationCircleIcon title="Failed" />
参数名称 | 描述 |
---|---|
| (可选)组件的额外类名称 |
| (可选)图标标题 |
|
(可选)图标大小:( |
YellowExclamationTriangleIcon
用于显示一个黄色三角形感叹号图标的组件。
Example
<YellowExclamationTriangleIcon title="Warning" />
参数名称 | 描述 |
---|---|
| (可选)组件的额外类名称 |
| (可选)图标标题 |
|
(可选)图标大小:( |
BlueInfoCircleIcon
用于显示信息的蓝色圆圈图标的组件。
Example
<BlueInfoCircleIcon title="Info" />
参数名称 | 描述 |
---|---|
| (可选)组件的额外类名称 |
| (可选)图标标题 |
| (可选)图标大小:('sm', 'md', 'lg', 'xl') |
ErrorStatus
用于显示错误状态弹出的组件。
Example
<ErrorStatus title={errorMsg} />
参数名称 | 描述 |
---|---|
| (可选)状态文本 |
| (可选)如果为 true,则仅显示图标 |
| (可选)如果为 true,则不会显示工具提示 |
| (可选)组件的额外类名称 |
| (可选)弹出的标题 |
InfoStatus
用于显示信息状态弹出窗口的组件。
Example
<InfoStatus title={infoMsg} />
参数名称 | 描述 |
---|---|
| (可选)状态文本 |
| (可选)如果为 true,则仅显示图标 |
| (可选)如果为 true,则不会显示工具提示 |
| (可选)组件的额外类名称 |
| (可选)弹出的标题 |
ProgressStatus
显示进度状态弹出的组件。
Example
<ProgressStatus title={progressMsg} />
参数名称 | 描述 |
---|---|
| (可选)状态文本 |
| (可选)如果为 true,则仅显示图标 |
| (可选)如果为 true,则不会显示工具提示 |
| (可选)组件的额外类名称 |
| (可选)弹出的标题 |
SuccessStatus
用于显示成功状态弹出窗口的组件。
Example
<SuccessStatus title={successMsg} />
参数名称 | 描述 |
---|---|
| (可选)状态文本 |
| (可选)如果为 true,则仅显示图标 |
| (可选)如果为 true,则不会显示工具提示 |
| (可选)组件的额外类名称 |
| (可选)弹出的标题 |
checkAccess
提供有关用户对给定资源的访问权限的信息。它返回一个具有资源访问信息的对象。
参数名称 | 描述 |
---|---|
| 访问查看的资源属性 |
| 模拟详情 |
useAccessReview
hook,提供有关用户对给定资源的访问权限的信息。它返回一个带有 isAllowed
和 loading
值的数组。
参数名称 | 描述 |
---|---|
| 访问查看的资源属性 |
| 模拟详情 |
useResolvedExtensions
使用已解析的 CodeRef
属性为消耗控制台扩展做出反应 hook。此 hook 接受与 useExtensions
hook 相同的参数,并返回自适应扩展实例列表,从而解析每个扩展属性中的所有代码引用。
最初,hook 返回一个空数组。完成解析后,React 组件将重新渲染,使用 hook 返回已修改的扩展列表。当匹配扩展列表更改时,会重启解析。hook 将继续返回前面的结果,直到解析完成为止。
hook 结果元素保证在重新方之间保持稳定。它返回一个包含已解析代码引用的自适应扩展实例列表的元组、指示解析是否完成的布尔值标志,以及在解析过程中检测到的错误列表。
Example
const [navItemExtensions, navItemsResolved] = useResolvedExtensions<NavItem>(isNavItem); // process adapted extensions and render your component
参数名称 | 描述 |
---|---|
| 每个接受动态插件扩展作为参数的回调列表,并返回布尔值标记,指示扩展是否满足所需的类型限制 |
HorizontalNav
为页面创建导航栏的组件。路由作为组件的一部分进行处理。console.tab/horizontalNav
可用于向任何横向导航中添加额外的内容。
Example
const HomePage: React.FC = (props) => { const page = { href: '/home', name: 'Home', component: () => <>Home</> } return <HorizontalNav match={props.match} pages={[page]} /> }
参数名称 | 描述 |
---|---|
| 与这个 Navigation 关联的资源,对象为 K8sResourceCommon 类型 |
| 页面对象数组 |
| 匹配 React Router 提供的对象 |
VirtualizedTable
创建虚拟化表的组件。
Example
const MachineList: React.FC<MachineListProps> = (props) => { return ( <VirtualizedTable<MachineKind> {...props} aria-label='Machines' columns={getMachineColumns} Row={getMachineTableRow} /> ); }
参数名称 | 描述 |
---|---|
| 表的数据 |
| 表示数据已加载的标记 |
| 如果问题载入数据,则错误对象 |
| 列设置 |
| 行设置 |
| 没有过滤器的原始数据 |
| (可选)没有数据空消息组件 |
| (可选)空消息组件 |
| (可选)处理滚动的功能 |
| (可选)表的标签 |
| (可选)aria 标签 |
| 调整用于响应的网格如何分隔 |
| (可选)处理表选择的功能 |
| (可选)特定于行的数据 |
TableData
用于在表行中显示表数据的组件。
Example
const PodRow: React.FC<RowProps<K8sResourceCommon>> = ({ obj, activeColumnIDs }) => { return ( <> <TableData id={columns[0].id} activeColumnIDs={activeColumnIDs}> <ResourceLink kind="Pod" name={obj.metadata.name} namespace={obj.metadata.namespace} /> </TableData> <TableData id={columns[1].id} activeColumnIDs={activeColumnIDs}> <ResourceLink kind="Namespace" name={obj.metadata.namespace} /> </TableData> </> ); };
参数名称 | 描述 |
---|---|
| 表的唯一 ID |
| active 列 |
| (可选) 风格的选项类名称 |
useActiveColumns
一个 hook,它提供了用户选择的 active TableColumns 列表。
Example
// See implementation for more details on TableColumn type const [activeColumns, userSettingsLoaded] = useActiveColumns({ columns, showNamespaceOverride: false, columnManagementID, }); return userSettingsAreLoaded ? <VirtualizedTable columns={activeColumns} {...otherProps} /> : null
参数名称 | 描述 |
---|---|
| 哪些作为键-值映射传递 |
| 所有可用 TableColumns 的数组 |
| (可选)如果为 true,则会包括命名空间列,无论列管理选择是什么 |
| (可选)用于保留和检索列管理选择的唯一 ID,并从用户设置中保留和检索列管理选择。通常,一个资源的 group/version/kind (GVK) 字符串。 |
包含当前用户所选活跃列(options.columns 的子集)和布尔值标志,指示用户设置是否已加载。
ListPageHeader
用于生成页面标头的组件。
Example
const exampleList: React.FC = () => { return ( <> <ListPageHeader title="Example List Page"/> </> ); };
参数名称 | 描述 |
---|---|
| 头标题 |
| (可选) help 部分作为响应节点 |
| (可选)作为响应节点的徽标图标 |
ListPageCreate
用于为特定资源类型添加创建按钮的组件,它们会自动为该资源创建 YAML 生成链接。
Example
const exampleList: React.FC<MyProps> = () => { return ( <> <ListPageHeader title="Example Pod List Page"/> <ListPageCreate groupVersionKind="Pod">Create Pod</ListPageCreate> </ListPageHeader> </> ); };
参数名称 | 描述 |
---|---|
| 要代表的资源组/版本/类型 |
ListPageCreateLink
用于创建样式链接的组件。
Example
const exampleList: React.FC<MyProps> = () => { return ( <> <ListPageHeader title="Example Pod List Page"/> <ListPageCreateLink to={'/link/to/my/page'}>Create Item</ListPageCreateLink> </ListPageHeader> </> ); };
参数名称 | 描述 |
---|---|
| 链接应连接到的字符串位置 |
| (可选)用于决定访问的命名空间和 kind 的对象 |
| (可选)组件的子项 |
ListPageCreateButton
创建按钮的组件。
Example
const exampleList: React.FC<MyProps> = () => { return ( <> <ListPageHeader title="Example Pod List Page"/> <ListPageCreateButton createAccessReview={access}>Create Pod</ListPageCreateButton> </ListPageHeader> </> ); };
参数名称 | 描述 |
---|---|
| (可选)用于决定访问的命名空间和 kind 的对象 |
| (可选) Patternfly Button props |
ListPageCreateDropdown
创建权限检查嵌套的下拉菜单的组件。
Example
const exampleList: React.FC<MyProps> = () => { const items = { SAVE: 'Save', DELETE: 'Delete', } return ( <> <ListPageHeader title="Example Pod List Page"/> <ListPageCreateDropdown createAccessReview={access} items={items}>Actions</ListPageCreateDropdown> </ListPageHeader> </> ); };
参数名称 | 描述 |
---|---|
| Key:ReactNode 对,以便在组件下拉列表中显示 |
| 点下拉菜单项目的回调功能 |
| (可选)用于决定访问的命名空间和 kind 的对象 |
| (可选)下拉菜单的子项 |
ListPageFilter
为列表页面生成过滤器的组件。
Example
// See implementation for more details on RowFilter and FilterValue types const [staticData, filteredData, onFilterChange] = useListPageFilter( data, rowFilters, staticFilters, ); // ListPageFilter updates filter state based on user interaction and resulting filtered data can be rendered in an independent component. return ( <> <ListPageHeader .../> <ListPagBody> <ListPageFilter data={staticData} onFilterChange={onFilterChange} /> <List data={filteredData} /> </ListPageBody> </> )
参数名称 | 描述 |
---|---|
| 一个数据点的数组 |
| 表示数据已加载 |
| 更新过滤器时的回调功能 |
| (可选)定义可用过滤器选项的 RowFilter 元素的数组 |
| (可选)名称过滤器的占位符 |
| (可选)标签过滤器的占位符 |
| (可选)仅显示 name 过滤器,而不是 name 和 label 过滤器 |
| (可选)隐藏 name 和 label filter |
| (可选)列布局对象 |
| (可选)隐藏列管理的标记 |
useListPageFilter
管理 ListPageFilter 组件的过滤器状态的 hook。它返回一个 tuple,其中包含由所有静态过滤器过滤的数据、由所有静态和行过滤器过滤的数据,以及更新 rowFilters 的回调。
Example
// See implementation for more details on RowFilter and FilterValue types const [staticData, filteredData, onFilterChange] = useListPageFilter( data, rowFilters, staticFilters, ); // ListPageFilter updates filter state based on user interaction and resulting filtered data can be rendered in an independent component. return ( <> <ListPageHeader .../> <ListPagBody> <ListPageFilter data={staticData} onFilterChange={onFilterChange} /> <List data={filteredData} /> </ListPageBody> </> )
参数名称 | 描述 |
---|---|
| 一个数据点的数组 |
| (可选)定义可用过滤器选项的 RowFilter 元素的数组 |
| (可选)静态应用到数据的 FilterValue 元素的数组 |
ResourceLink
创建指向带有图标徽标的特定资源类型的链接的组件。
Example
<ResourceLink kind="Pod" name="testPod" title={metadata.uid} />
参数名称 | 描述 |
---|---|
| (可选)资源(如 Pod、Deployment、Namespace)的类型 |
| (可选)带有 group、version 和 kind 的对象 |
| (可选)组件类风格 |
| (可选)组件显示名称,如果设置则覆盖资源名称 |
| (可选)使用子项创建图标徽标和名称标记 |
| (可选)创建 Link 对象的标记 - 默认为 true |
| (可选)资源名称 |
| (可选)要链接到的 kind 资源的特定命名空间 |
| (可选)隐藏图标徽标的标记 |
| (可选)链接对象的标题(未显示) |
| (可选)用于测试的标识符 |
| (可选)当点组件时的回调功能 |
| (可选)用于截断链接(如果太长)的标记 |
ResourceIcon
为特定资源类型创建图标徽标的组件。
Example
<ResourceIcon kind="Pod"/>
参数名称 | 描述 |
---|---|
| (可选)资源(如 Pod、Deployment、Namespace)的类型 |
| (可选)带有 group、version 和 kind 的对象 |
| (可选)组件类风格 |
useK8sModel
用于为来自 redux 的 K8sGroupVersionKind 获取 k8s 模型的 hook。它返回一个数组,第一个项为 k8s 模型,第二个项目为 inFlight
状态。
Example
const Component: React.FC = () => { const [model, inFlight] = useK8sModel({ group: 'app'; version: 'v1'; kind: 'Deployment' }); return ... }
参数名称 | 描述 |
---|---|
| group, version, k8s 资源 kind K8sGroupVersionKind 是首选的,或为 group, version 传递引用,kind 已弃用,例如 group/version/kind (GVK) K8sResourceKindReference。 |
useK8sModels
从 redux 检索所有当前 k8s 模型的 hook。它返回一个数组,第一个项是 k8s 模型列表,第二个项目是 inFlight
状态。
Example
const Component: React.FC = () => { const [models, inFlight] = UseK8sModels(); return ... }
useK8sWatchResource
检索 k8s 资源以及加载和错误的状态的 hook。它返回一个数组,包含第一个项目作为资源,第二个项目作为加载的状态,第三个项目则作为错误状态(若有)。
Example
const Component: React.FC = () => { const watchRes = { ... } const [data, loaded, error] = useK8sWatchResource(watchRes) return ... }
参数名称 | 描述 |
---|---|
| 监视资源所需的选项。 |
useK8sWatchResources
检索 k8s 资源的 hook,以及它们的相应状态用于加载和错误。它返回一个映射,在 initResouces 中提供的键,值有三个属性 data, loaded 和 error。
Example
const Component: React.FC = () => { const watchResources = { 'deployment': {...}, 'pod': {...} ... } const {deployment, pod} = useK8sWatchResources(watchResources) return ... }
参数名称 | 描述 |
---|---|
| 资源需要被监视为键值对,其中键对于资源是唯一的,值将是监视相应资源的选项。 |
consoleFetch
一个围绕 fetch
添加控制台特定标头的自定义打包程序,并允许重试和超时。它还验证响应状态代码,并抛出适当的错误或根据需要注销用户。它返回一个可以解析到响应的承诺。
参数名称 | 描述 |
---|---|
| 要获取的 URL |
| 传递给获取的选项 |
| 以毫秒为单位的超时时间 |
consoleFetchJSON
围绕 fetch
的自定义打包程序,添加特定于控制台的标头并允许重试和超时。它还验证响应状态代码,并在需要时抛出适当的错误或注销用户。它将响应返回为 JSON 对象。在内部使用 consoleFetch
。它返回一个承诺,它将解析为 JSON 对象的响应。
参数名称 | 描述 |
---|---|
| 要获取的 URL |
| 要使用的 HTTP 方法。默认为 GET |
| 传递给获取的选项 |
| 以毫秒为单位的超时时间 |
| 发出请求的集群名称。默认为用户选择的活跃集群 |
consoleFetchText
围绕 fetch
的自定义打包程序,添加特定于控制台的标头并允许重试和超时。它还验证响应状态代码,并在需要时抛出适当的错误或注销用户。它将响应返回为文本。在内部使用 consoleFetch
。它返回一个能以文本方式解析到响应的承诺。
参数名称 | 描述 |
---|---|
| 要获取的 URL |
| 传递给获取的选项 |
| 以毫秒为单位的超时时间 |
| 发出请求的集群名称。默认为用户选择的活跃集群 |
getConsoleRequestHeaders
使用当前 redux 状态的 API 请求创建模拟和多集群相关标头的功能。它根据 redux 状态返回一个包含适当模拟和冲突的对象。
参数名称 | 描述 |
---|---|
| 使用提供的 targetCluster 覆盖当前活跃的集群 |
k8sGetResource
它根据提供的选项从集群获取资源。如果提供了名称,它会返回一个资源,它会返回与模型匹配的所有资源。如果名称被提供,它会返回一个承诺,它将作为 JSON 对象解析到 JSON 对象(如果其返回与模型匹配的所有资源)。如果出现故障,则承诺将被拒绝,并附带 HTTP 错误响应。
参数名称 | 描述 |
---|---|
| 在映射中作为键值对传递 |
| k8s 模型 |
| 如果没有提供资源名称,它将查找与模型匹配的所有资源。 |
| 要查找的命名空间,不应为集群范围的资源指定。 |
| 如果提供,请附加为子路径 |
| URL 中包含的查询参数。 |
| 要使用的 fetch init 对象。这可以具有请求标头、方法、重定向等。如需更多信息,请参阅 Interface RequestInit。 |
k8sCreateResource
它会根据提供的选项在集群中创建资源。它返回一个能够解析所创建的资源响应的承诺。如果失败承诺,则拒绝 HTTP 错误响应。
参数名称 | 描述 |
---|---|
| 在映射中作为键值对传递 |
| k8s 模型 |
| 要创建的资源的有效负载 |
| 如果提供,请附加为子路径 |
| URL 中包含的查询参数。 |
k8sUpdateResource
它根据提供的选项更新集群中的整个资源。当客户端需要完全替换现有资源时,它们可以使用 k8sUpdate。或者,也可以使用 k8sPatch 执行部分更新。它返回一个可以解析到更新的资源响应的承诺。如果失败承诺,则拒绝 HTTP 错误响应。
参数名称 | 描述 |
---|---|
| 在映射中作为键值对传递 |
| k8s 模型 |
| 要更新的 k8s 资源的有效负载 |
| 要查找的命名空间,不应为集群范围的资源指定。 |
| 要更新的资源名称。 |
| 如果提供,请附加为子路径 |
| URL 中包含的查询参数。 |
k8sPatchResource
它根据提供的选项对集群中的任何资源进行补丁。当客户端需要执行部分更新时,可以使用 k8sPatch。或者可以使用 k8sUpdate 来完全替换现有资源。如需更多信息,请参阅数据跟踪器。它返回一个可以解析到修补资源响应的承诺。如果失败承诺,则拒绝 HTTP 错误响应。
参数名称 | 描述 |
---|---|
| 在映射中作为键值对传递。 |
| k8s 模型 |
| 要修补的资源。 |
| 只有现有资源使用操作、路径和值修补的数据。 |
| 如果提供,请附加为子路径。 |
| URL 中包含的查询参数。 |
k8sDeleteResource
它根据提供的模型资源从集群中删除资源。垃圾回收基于 Foreground
|Background
,可以在提供的模型中使用 propagationPolicy 属性进行配置,或者在 json 中传递。它返回一个解析为 Status 的响应的承诺。如果失败承诺,则拒绝 HTTP 错误响应。
Example
kind: 'DeleteOptions', apiVersion: 'v1', propagationPolicy
参数名称 | 描述 |
---|---|
| 在映射中作为键值对传递。 |
| k8s 模型 |
| 要删除的资源。 |
| 如果提供,请附加为子路径 |
| URL 中包含的查询参数。 |
| 要使用的 fetch init 对象。这可以具有请求标头、方法、重定向等。如需更多信息,请参阅 Interface RequestInit。 |
| 如果其他提供的资源被默认设置为"propagationPolicy",则可以明确控制资源的垃圾回收。 |
k8sListResource
根据提供的选项,将资源列为集群中的数组。它返回一个可以解析到响应的承诺。
参数名称 | 描述 |
---|---|
| 在映射中作为键值对传递 |
| k8s 模型 |
| URL 中包含的查询参数,并可使用键 "labelSelector" 传递标签选择器。 |
| 要使用的 fetch init 对象。这可以具有请求标头、方法、重定向等。如需更多信息,请参阅 Interface RequestInit。 |
k8sListResourceItems
与 k8sListResource 相同的接口,但会返回子项目。它返回模型的 apiVersion,即 group/version
。
getAPIVersionForModel
为 k8s 模型提供 apiVersion。
参数名称 | 描述 |
---|---|
| k8s 模型 |
getGroupVersionKindForResource
为资源提供组、版本和类型。它返回提供的资源的组 version 和 kind。如果资源没有 API 组,则返回组"core"。如果资源具有无效的 apiVersion,它将抛出错误。
参数名称 | 描述 |
---|---|
| k8s 资源 |
getGroupVersionKindForModel
为 k8s 模型提供组、版本和类型。这会返回提供的模型的组版本 kind。如果模型没有 apiGroup,则会返回组"core"。
参数名称 | 描述 |
---|---|
| k8s 模型 |
StatusPopupSection
在弹出窗口中显示状态的组件。用于构建 console.dashboards/overview/health/resource
扩展的有用组件。
Example
<StatusPopupSection firstColumn={ <> <span>{title}</span> <span className="text-secondary"> My Example Item </span> </> } secondColumn='Status' >
参数名称 | 描述 |
---|---|
| 弹出的第一列的值 |
| (可选)弹出的第二列的值 |
| (可选)弹出窗口的子项 |
StatusPopupItem
状态弹出窗口中使用的 status 元素;在 StatusPopupSection
中使用。
Example
<StatusPopupSection firstColumn='Example' secondColumn='Status' > <StatusPopupItem icon={healthStateMapping[MCGMetrics.state]?.icon}> Complete </StatusPopupItem> <StatusPopupItem icon={healthStateMapping[RGWMetrics.state]?.icon}> Pending </StatusPopupItem> </StatusPopupSection>
参数名称 | 描述 |
---|---|
| (可选)要显示的文本值 |
| (可选)要显示的图标 |
| 子元素 |
概述
为仪表板创建一个打包程序组件。
Example
<Overview> <OverviewGrid mainCards={mainCards} leftCards={leftCards} rightCards={rightCards} /> </Overview>
参数名称 | 描述 |
---|---|
| (可选) div 的风格类 |
| (可选)仪表板的元素 |
OverviewGrid
为仪表板创建卡元素的网格;在 Overview
中使用。
Example
<Overview> <OverviewGrid mainCards={mainCards} leftCards={leftCards} rightCards={rightCards} /> </Overview>
参数名称 | 描述 |
---|---|
| 网格的卡 |
| (可选)网格左侧的卡 |
| (可选)网格右侧的卡 |
InventoryItem
创建清单卡项。
Example
return ( <InventoryItem> <InventoryItemTitle>{title}</InventoryItemTitle> <InventoryItemBody error={loadError}> {loaded && <InventoryItemStatus count={workerNodes.length} icon={<MonitoringIcon />} />} </InventoryItemBody> </InventoryItem> )
参数名称 | 描述 |
---|---|
| 在项目内呈现的元素 |
InventoryItemTitle
为清单卡项目创建标题;在 InventoryItem
内使用。
Example
return ( <InventoryItem> <InventoryItemTitle>{title}</InventoryItemTitle> <InventoryItemBody error={loadError}> {loaded && <InventoryItemStatus count={workerNodes.length} icon={<MonitoringIcon />} />} </InventoryItemBody> </InventoryItem> )
参数名称 | 描述 |
---|---|
| 在标题内呈现的元素 |
InventoryItemBody
创建清单卡的正文;在 InventoryCard
中使用,并可与 InventoryTitle
一起使用。
Example
return ( <InventoryItem> <InventoryItemTitle>{title}</InventoryItemTitle> <InventoryItemBody error={loadError}> {loaded && <InventoryItemStatus count={workerNodes.length} icon={<MonitoringIcon />} />} </InventoryItemBody> </InventoryItem> )
参数名称 | 描述 |
---|---|
| 在清单卡或标题内呈现的元素 |
| div 的元素 |
InventoryItemStatus
为带有可选链接地址的清单卡创建一个计数和图标;在 InventoryItemBody
中使用
Example
return ( <InventoryItem> <InventoryItemTitle>{title}</InventoryItemTitle> <InventoryItemBody error={loadError}> {loaded && <InventoryItemStatus count={workerNodes.length} icon={<MonitoringIcon />} />} </InventoryItemBody> </InventoryItem> )
参数名称 | 描述 |
---|---|
| 显示计数 |
| 显示图标 |
| (可选)链接地址 |
InventoryItemLoading
为清单卡加载时创建框架容器;与 InventoryItem
和相关组件一起使用
Example
if (loadError) { title = <Link to={workerNodesLink}>{t('Worker Nodes')}</Link>; } else if (!loaded) { title = <><InventoryItemLoading /><Link to={workerNodesLink}>{t('Worker Nodes')}</Link></>; } return ( <InventoryItem> <InventoryItemTitle>{title}</InventoryItemTitle> </InventoryItem> )
useFlag
从 FLAGS redux 状态返回给定功能标记的 hook。它返回请求的功能标记或未定义的布尔值。
参数名称 | 描述 |
---|---|
| 要返回的功能标志 |
CodeEditor
一个基本的 lazy 加载的代码编辑器,带有悬停的帮助和完成。
Example
<React.Suspense fallback={<LoadingBox />}> <CodeEditor value={code} language="yaml" /> </React.Suspense>
参数名称 | 描述 |
---|---|
| 代表要呈现的 yaml 代码的字符串。 |
| 代表编辑器语言的字符串。 |
| Monaco 编辑器选项.如需更多详细信息,请访问 Interface IStandAloneEditorConstructionOptions。 |
| 有效 CSS 高度中的值的最小编辑器高度。 |
| 布尔值,以显示编辑器顶部的快捷方式。 |
| 编辑器顶部的工具栏链接部分上 ReactNode rendered 的数组。 |
| 代码更改事件的回调。 |
| 触发命令 CTRL / CMD + S 时调用的回调。 |
|
对 |
ResourceYAMLEditor
一个 lazy 载入的 Kubernetes 资源的 YAML 编辑器,带有悬停的帮助和完成。组件使用 YAMLEditor 并在其之上添加更多功能,如资源更新处理、警报、保存、取消和重新加载按钮、可访问性等。除非提供了 onSave
回调,否则自动处理资源更新。它应该嵌套在 React.Suspense
组件中。
Example
<React.Suspense fallback={<LoadingBox />}> <ResourceYAMLEditor initialResource={resource} header="Create resource" onSave={(content) => updateResource(content)} /> </React.Suspense>
参数名称 | 描述 |
---|---|
| 代表编辑器显示资源的 YAML/Object。这个 prop 仅在初始呈现过程中使用 |
| 在 YAML 编辑器之上添加一个标头 |
| 保存按钮的回调。传递它将覆盖编辑器对资源执行的默认更新 |
ResourceEventStream
显示与特定资源相关的事件的组件。
Example
const [resource, loaded, loadError] = useK8sWatchResource(clusterResource); return <ResourceEventStream resource={resource} />
参数名称 | 描述 |
---|---|
| 应该会显示相关事件的对象。 |
usePrometheusPoll
为单个查询设置对 Prometheus 的轮询。它返回一个包含查询响应的元组、指示响应是否已完成的布尔值标志,以及请求请求或后处理过程中遇到的任何错误。
参数名称 | 描述 |
---|---|
| PrometheusEndpoint 中的一个(label, query, range, rules, targets) |
| (可选)Prometheus 查询字符串。如果为空或未定义,则不会启动轮询。 |
| (可选)轮询延迟间隔 (ms) |
| (可选)用于 QUERY_RANGE enpoint,查询范围的末尾 |
| (可选)用于 QUERY_RANGE enpoint |
| (可选)用于 QUERY_RANGE enpoint |
| (可选)要附加的搜索参数 |
| (可选)要附加的搜索参数 |
Timestamp
呈现时间戳的组件。时间戳在 Timestamp 组件的 invidual 实例之间同步。提供的时间戳会根据用户区域设置进行格式化。
参数名称 | 描述 |
---|---|
| 呈现的时间戳。格式预期为 ISO 8601 (由 Kubernetes 使用)、epo 时间时间戳或日期的实例。 |
| 呈现组件的简单版本,省略图标和工具提示。 |
| 格式化日期消息后缀。 |
| 组件的额外类名称。 |
useModal
用于启动修改的 hook。
Example
const context: AppPage: React.FC = () => {<br/> const [launchModal] = useModal();<br/> const onClick = () => launchModal(ModalComponent);<br/> return (<br/> <Button onClick={onClick}>Launch a Modal</Button><br/> )<br/>}<br/>`
ActionServiceProvider
允许从 console.action/provider
扩展类型的其他插件接收贡献的组件。
Example
const context: ActionContext = { 'a-context-id': { dataFromDynamicPlugin } }; ... <ActionServiceProvider context={context}> {({ actions, options, loaded }) => loaded && ( <ActionMenu actions={actions} options={options} variant={ActionMenuVariant.DROPDOWN} /> ) } </ActionServiceProvider>
参数名称 | 描述 |
---|---|
| 带有 contextId 和可选插件数据的对象 |
NamespaceBar
一个组件,它呈现一个水平工具栏,其中有一个命名空间下拉菜单(在最左边)。其他组件可以作为子项传递,并呈现到命名空间下拉菜单的右侧。此组件设计为在页面的顶部使用。它应用于用户需要更改活动命名空间的页面,如 k8s 资源的页面中。
Example
const logNamespaceChange = (namespace) => console.log(`New namespace: ${namespace}`); ... <NamespaceBar onNamespaceChange={logNamespaceChange}> <NamespaceBarApplicationSelector /> </NamespaceBar> <Page> ...
参数名称 | 描述 |
---|---|
| (可选)当选择命名空间选项时执行的功能。它接受字符串形式的新命名空间作为其唯一参数。选择了选项时,活跃命名空间会自动更新,但可通过此功能应用其他逻辑。当更改命名空间时,URL 中的 namespace 参数将从以前的命名空间改为新选择的命名空间。 |
| (可选)如果设为 true,则禁用命名空间下拉菜单的布尔值标志。这个选项只适用于命名空间下拉菜单,对子组件没有影响。 |
| (可选)在命名空间下拉菜单右侧的工具栏中呈现的其他元素。 |
ErrorBoundaryFallbackPage
创建全页 ErrorBoundaryFallbackPage 组件以显示 "Oh no!Something went wrong." 消息与堆栈跟踪和其他有帮助的调试信息一起。这与组件一起使用。
Example
//in ErrorBoundary component return ( if (this.state.hasError) { return <ErrorBoundaryFallbackPage errorMessage={errorString} componentStack={componentStackString} stack={stackTraceString} title={errorString}/>; } return this.props.children; )
参数名称 | 描述 |
---|---|
| 错误消息的文本描述 |
| 异常的组件追踪 |
| 异常的堆栈追踪 |
| 将标题显示为错误边界页面的标头 |
QueryBrowser
一个组件,它呈现来自 Prometheus PromQL 查询的结果图,以及用于与图形交互的控制。
Example
<QueryBrowser defaultTimespan={15 * 60 * 1000} namespace={namespace} pollInterval={30 * 1000} queries={[ 'process_resident_memory_bytes{job="console"}', 'sum(irate(container_network_receive_bytes_total[6h:5m])) by (pod)', ]} />
参数名称 | 描述 |
---|---|
| (可选)处理 PromQL 查询的 API 端点的基本 URL。如果提供,则使用此选项而不是默认的 API 获取数据。 |
| (可选)每个数据系列绘制的默认数据样本数量。如果有多个数据系列,QueryBrowser 可能会自动选择比此处指定的数据样本的数量较低。 |
| (可选)图形的默认时间跨度(以毫秒为单位) - 默认为 1,800,000 (30 分钟)。 |
| (可选)禁用(不显示)带有这些准确标签/值对的数据系列。 |
| (可选)禁用图形缩放控制的标记。 |
| (可选)将返回的数据系列过滤到仅与这些标签/值对匹配的数据系列。 |
| (可选)为显示的时间范围设置结束时间,而不是显示到当前时间的数据。 |
| (可选)返回字符串的功能,用作单个数据系列的标题。 |
| (可选)呈现到另一个页面的链接(例如,获取有关此查询的更多信息)。 |
| (可选)用于隐藏用于更改图形 timespan 的图形控制的标记,等等。 |
| (可选) 显示堆栈图而不是行图的标记。如果设置了 showStackedControl,用户仍然可以切换到行图。 |
| (可选)如果提供,则只为这个命名空间返回数据(只有具有此命名空间标签的系列)。 |
| (可选)当图形缩放时调用的回调。 |
| (可选)如果设置,请确定图形更新的频率,以显示最新数据(以毫秒为单位)。 |
| 运行 PromQL 查询的数组,并显示图表中的结果。 |
| (可选)启用在图形下显示图下的标记。 |
| 启用显示图形模式和行图形模式切换的图形控制的标志。 |
| (可选)图形应涵盖的时间持续时间(以毫秒为单位)。 |
| (可选)要在 Y 轴和工具提示中显示的单元。 |
useAnnotationsModal
提供回调来启动用于编辑 Kubernetes 资源注解的模态的 hook。
Example
const PodAnnotationsButton = ({ pod }) => { const { t } = useTranslation(); const launchAnnotationsModal = useAnnotationsModal<PodKind>(pod); return <button onClick={launchAnnotationsModal}>{t('Edit Pod Annotations')}</button> }
参数名称 | 描述 |
---|---|
| 用于编辑 K8sResourceCommon 类型的对象的注解的资源。 |
返回
启动一个模态来编辑资源注解的功能。
useDeleteModal
提供回调用于启动删除资源的模态的 hook。
Example
const DeletePodButton = ({ pod }) => { const { t } = useTranslation(); const launchDeleteModal = useDeleteModal<PodKind>(pod); return <button onClick={launchDeleteModal}>{t('Delete Pod')}</button> }
参数名称 | 描述 |
---|---|
| 要删除的资源。 |
| (可选)在删除资源后重定向到的位置。 |
| (可选)要在界面中显示的消息。 |
| (可选)在删除按钮显示的文本。 |
| (可选)删除同一类型的所有资源的功能。 |
返回
将启动用于删除资源的模态功能。
useLabelsModel
提供回调的 hook,以启动模态来编辑 Kubernetes 资源标签。
Example
const PodLabelsButton = ({ pod }) => { const { t } = useTranslation(); const launchLabelsModal = useLabelsModal<PodKind>(pod); return <button onClick={launchLabelsModal}>{t('Edit Pod Labels')}</button> }
参数名称 | 描述 |
---|---|
| 用于编辑标签的资源,这是 K8sResourceCommon 类型的对象。 |
返回
启动一个模态来编辑资源标签的功能。
useActiveNamespace
提供当前活跃的命名空间和回调来设置活跃命名空间的 hook。
Example
const Component: React.FC = (props) => { const [activeNamespace, setActiveNamespace] = useActiveNamespace(); return <select value={activeNamespace} onChange={(e) => setActiveNamespace(e.target.value)} > { // ...namespace options } </select> }
返回
包含当前活跃命名空间和 setter 回调的元组。
PerspectiveContext
弃用: 使用提供的 usePerspectiveContext
替代。创建视角上下文。
参数名称 | 描述 |
---|---|
| 带有活跃视角和 setter 的对象 |
useAccessReviewAllowed
弃用:使用来自 @console/dynamic-plugin-sdk
的 useAccessReview
替代。hook,提供有关用户对给定资源的访问权限的允许状态。它返回 isAllowed
布尔值。
参数名称 | 描述 |
---|---|
| 访问查看的资源属性 |
| 模拟详情 |
useSafetyFirst
弃用:此 hook 与控制台功能无关。在可以卸载给定组件时,确保安全 asynchronnous 设置 React 状态的 hook。它返回一个数组,它带有一对状态值及其 set 功能。
参数名称 | 描述 |
---|---|
| 初始状态值 |
YAMLEditor
已弃用:一个基本 lazy 加载的 YAML 编辑器,带有悬停的帮助和完成。
Example
<React.Suspense fallback={<LoadingBox />}> <YAMLEditor value={code} /> </React.Suspense>
参数名称 | 描述 |
---|---|
| 代表要呈现的 yaml 代码的字符串。 |
| Monaco 编辑器选项. |
| 有效 CSS 高度中的值的最小编辑器高度。 |
| 布尔值,以显示编辑器顶部的快捷方式。 |
| 编辑器顶部的工具栏链接部分上 ReactNode rendered 的数组。 |
| 代码更改事件的回调。 |
| 触发命令 CTRL / CMD + S 时调用的回调。 |
|
对 |
4.5.3. 对动态插件进行故障排除
如果您在加载插件时遇到问题,请参阅此故障排除提示列表。
运行以下命令,在控制台 Operator 配置中启用了插件,并且您的插件名称是输出:
$ oc get console.operator.openshift.io cluster -o jsonpath='{.spec.plugins}'
- 在 Administrator 视角中的 Overview 页面的状态卡中验证已启用的插件。如果插件最近启用,您必须刷新浏览器。
通过以下方法验证您的插件服务是否健康:
- 验证您的插件 pod 状态正在运行,容器已就绪。
- 验证服务标签选择器与 pod 和目标端口匹配是否正确。
-
在控制台 pod 或集群中的另一个 pod 终端中,从服务 curl
plugin-manifest.json
。
-
验证
ConsolePlugin
资源名称 (consolePlugin.name
) 与package.json
中使用的插件名称匹配。 -
在
ConsolePlugin
资源中验证您的服务名称、命名空间、端口和路径是否已正确声明。 - 验证您的插件服务使用 HTTPS 和服务证书。
- 验证控制台 pod 日志中是否有证书或连接错误。
- 验证插件依赖的功能标志没有被禁用。
验证您的插件没有在
package.json
中不满足consolePlugin.dependencies
的问题。- 这包括控制台版本依赖项或依赖其他插件。在浏览器中为您的插件的名称过滤 JS 控制台,以查看日志记录的消息。
验证 nav 扩展视角或部分 ID 中没有拼写错误。
- 可以加载您的插件,但如果 ID 不正确,则缺少 nav 项。编辑 URL 尝试直接导航到插件页面。
验证没有网络策略阻止从控制台 Pod 到插件服务的流量。
- 如有必要,调整网络策略以允许 openshift-console 命名空间中的控制台 pod 向服务发出请求。
在开发人员工具浏览器的 Console 选项卡中,验证要在浏览器中载入的动态插件列表。
-
评估
window.SERVER_FLAGS.consolePlugins
,以查看 Console frontend 上的动态插件。
-
评估
第 5 章 Web 终端
5.1. 安装 web 终端
您可以使用 Red Hat OpenShift Service on AWS OperatorHub 中列出的 Web Terminal Operator 来安装 Web 终端。安装 Web Terminal Operator 时,会自动安装命令行配置(如 DevWorkspace
CRD)所需的自定义资源定义(CRD)。打开 web 终端时,web 控制台会创建所需的资源。
先决条件
- 登录到 Red Hat OpenShift Service on AWS Web 控制台。
- 有集群管理员权限。
流程
- 在 Web 控制台的 Administrator 视角中,导航到 Operators → OperatorHub。
- 使用 Filter by keyword 复选框在目录中搜索 Web Terminal Operator,然后点 Web Terminal 标题。
- 参阅 Web Terminal 页面中有关 Operator 的简单描述,然后点击 Install。
在 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 自动处理。
- 点 Install。
在 Installed Operators 页面中,点 View Operator 来验证 Installed Operators 页面中是否列出了 Operator。
注意Web Terminal Operator 将 DevWorkspace Operator 安装为依赖项。
- 安装 Operator 后,刷新页面以查看控制台 masthead 中的命令行终端图标( )。
5.2. 使用 web 终端
您可以在 web 控制台中启动内嵌的命令行终端实例。此终端实例预安装了与集群交互的通用 CLI 工具,如 oc
、kubectl
、odo
、kn
、tkn
、helm
和 subctl
。它还包含正在处理的项目的上下文,并自动记录您使用凭证的项目。
5.2.1. 访问 Web 终端
安装 Web Terminal Operator 后,您可以访问 Web 终端。初始化 web 终端后,您可以在 web 终端中使用预安装的 CLI 工具,如 oc
、kubectl
、odo
、kn
、tkn
、helm
和 subctl
。您可以从在终端中运行的命令列表中选择这些命令,以重新运行这些命令。这些命令可在多个终端会话中保留。Web 终端保持打开,直到您关闭浏览器窗口或标签页。
先决条件
- 您可以访问 Red Hat OpenShift Service on AWS 集群,并登录到 web 控制台。
- 在集群中安装了 Web Terminal Operator。
流程
- 要启动 web 终端,请在控制台的 masthead 中点命令行终端图标( )。在 Command line terminal 窗格中会显示 web 终端实例。此实例使用您的凭证自动登录。
如果在当前会话中没有选择项目,请从 Project 下拉列表中选择创建
DevWorkspace
CR 的项目。默认情况下会选择当前项目。注意-
只有在不存在
DevWorkspace
CR 时才会创建 DevWorkspace CR。
-
只有在不存在
- 点 Start 使用所选项目初始化 Web 终端。
- 点 + 在控制台中 web 终端中打开多个标签页。
5.3. 对 web 终端进行故障排除
5.3.1. Web 终端和网络策略
如果集群配置了网络策略,web 终端可能无法启动。要初始化 Web 终端实例,Web Terminal Operator 必须与 Web 终端的 pod 通信以验证它是否正在运行,Red Hat OpenShift Service on AWS Web 控制台需要发送信息来在终端中自动登录到集群。如果任一步骤失败,Web 终端将无法初始化,终端面板看似处于加载状态。
要避免这个问题,请确保用于终端的网络策略允许从 openshift-console
和 openshift-operators
命名空间进行入站数据。
5.4. 卸载 Web 终端
卸载 Web Terminal Operator 不会删除安装 Operator 时创建的任何自定义资源定义 (CRD) 或受管资源。为了安全起见,您必须手动卸载这些组件。通过删除这些组件,您可以保存集群资源,因为在卸载 Operator 时终端不会闲置。
卸载 web 终端需要两步:
- 卸载 Web Terminal Operator 和安装 Operator 时添加的相关自定义资源 (CR)。
- 卸载 DevWorkspace Operator 及其作为 Web Terminal Operator 依赖项添加的相关自定义资源。
5.4.1. 删除 Web Terminal Operator
您可以通过删除 Web Terminal Operator 和 Operator 使用的自定义资源来卸载 web 终端。
先决条件
- 您可以使用集群管理员权限访问 Red Hat OpenShift Service on AWS 集群。
-
已安装
oc
CLI。
流程
- 在 web 控制台的 Administrator 视角中,导航到 Operators → Installed Operators。
- 滚动过滤器列表或在 Filter by name 框中输入关键字以查找 Web Terminal Operator。
- 点击 Web Terminal Operator 的 Options 菜单 ,然后选择 Uninstall Operator。
- 在 Uninstall Operator 确认对话框中,点 Uninstall 从集群中删除 Operator、Operator 部署和 pod。Operator 会停止运行,并且不再接收更新。
5.4.2. 删除 DevWorkspace Operator
要完全卸载 web 终端,还必须删除 DevWorkspace Operator 和 Operator 使用的自定义资源。
DevWorkspace Operator 是一个独立 Operator,可能需要作为集群中安装的其他 Operator 的依赖项。只有在确保不再需要 DevWorkspace Operator 时,才按照以下步骤操作。
先决条件
- 您可以使用集群管理员权限访问 Red Hat OpenShift Service on AWS 集群。
-
已安装
oc
CLI。
流程
删除 Operator 使用的
DevWorkspace
自定义资源,以及任何相关的 Kubernetes 对象:$ oc delete devworkspaces.workspace.devfile.io --all-namespaces --all --wait
$ oc delete devworkspaceroutings.controller.devfile.io --all-namespaces --all --wait
警告如果此步骤未完成,则终结器很难完全卸载 Operator。
删除任何剩余的服务、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
卸载 DevWorkspace Operator:
- 在 web 控制台的 Administrator 视角中,导航到 Operators → Installed Operators。
- 滚动过滤器列表或在 Filter by name 框中输入关键字以查找 DevWorkspace Operator。
- 点 Operator 的 Options 菜单 ,然后选择 Uninstall Operator。
- 在 Uninstall Operator 确认对话框中,点 Uninstall 从集群中删除 Operator、Operator 部署和 pod。Operator 会停止运行,并且不再接收更新。
第 6 章 在 Red Hat OpenShift Service on AWS 中禁用 Web 控制台
您可以禁用 Red Hat OpenShift Service on AWS Web 控制台。
6.1. 先决条件
- 在 AWS 集群上部署 Red Hat OpenShift Service。
6.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控制台)。
第 7 章 关于快速启动指南
如果您要为 Red Hat OpenShift Service on AWS Web 控制台创建快速启动指南,请按照以下准则在所有快速启动中保持一致的用户体验。
7.1. 了解快速开始
快速开始是用户任务的指导教程。在 Web 控制台中,您可以在 Help 菜单下快速启动访问。它们在使用应用程序、Operator 或其他产品时特别有用。
快速开始主要由任务和步骤组成。每个任务都有多个步骤,每个快速开始都有多个任务。例如:
任务 1
- 第 1 步
- 第 2 步
- 第 3 步
任务 2
- 第 1 步
- 第 2 步
- 第 3 步
任务 3
- 第 1 步
- 第 2 步
- 第 3 步
7.2. 快速启动用户工作流
当您与现有快速启动指南交互时,这是预期的工作流体验:
- 在 Administrator 或 Developer 视角中,点击 Help 图标并选择 Quick Starts。
- 点快速启动卡。
- 在出现的面板中点 Start。
- 完成屏幕的说明,然后点 Next。
在出现 Check your work 模块时,回答问题以确认您成功完成了该任务。
- 如果您选择 Yes,点 Next 来继续到下一个任务。
- 如果您选择 No,重复任务说明并再次检查您的工作。
- 重复以上第 1 到 6 步,以便快速完成剩余的任务。
- 完成最后的任务后,点 Close 关闭快速启动。
7.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
Legal Notice
Copyright © 2024 Red Hat, Inc.
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman 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 Software Collections 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.