在 OpenShift Container Platform 上安装和操作 Fuse Online
安装、配置和升级 Fuse Online,以及为 CI/CD 管道导出/导入集成
摘要
前言
您可以在 OpenShift Container Platform(OCP)上安装并运行 Fuse Online on-site。当 Fuse Online 运行现场时,除在 OpenShift Dedicated 上运行 Fuse Online 的功能之外,还会提供其他功能。
现场 这一术语意味着客户管理的环境;红帽不管理 OpenShift 环境。客户管理的环境可在内部、云端或混合云中。
详情请查看以下主题:
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看我们的 CTO Chris Wright 信息。
第 1 章 在 OCP 4.x 上安装 Fuse Online
Fuse Online 是一个灵活定制的开源平台,可提供核心集成功能作为服务。
Fuse Online 的每个安装都称为 Fuse 在线实例(或环境)。在给定的 OpenShift 项目中,只能有一个 Fuse Online 实例。每个 Fuse 在线实例都有自己的 URL。在单个 OpenShift 集群中,可以有多个 Fuse Online 实例。
如果您有适当的权限,可从 OperatorHub 安装 operator,请以 OpenShift developer 用户身份安装 Fuse Online。您可以安装默认的 Fuse Online 实例或自定义的 Fuse Online 实例。对于自定义的 Fuse Online 实例,您必须编辑默认自定义资源。
Fuse Online 安装过程需要访问 registry.redhat.io,这是适用于容器镜像的红帽生态系统目录。
以下主题提供了安装 Fuse Online 的详细信息:
1.1. 在 OCP 4.x 上安装 Fuse 所需的步骤概述
要在 OCP 4.x 上安装 Fuse Online,以下主要步骤:
- 生成用于配置红帽容器镜像身份验证的 OpenShift secret。
- 将 Fuse Online Operator 从 OperatorHub 安装到集群中的项目(命名空间)。
- 另外,如果您想要包含外部数据库来持久保留连接和集成定义,则创建一个 OpenShift secret。
将 Fuse Online 实例添加到 OpenShift 4.x 项目。
(可选)编辑自定义资源以启用一个或多个附加功能,并/或实现一个或多个自定义配置设置。
- 另外,还可向其他开发人员用户授予权限,以便他们能够访问 Fuse Online Web 控制台。
1.1.1. 在受限环境中安装 Fuse Online 的注意事项(OCP 4.6 及更新的版本)
在受限环境中安装 Fuse Online 之前,您必须完成以下任务:
前提条件
- 在受限环境的 OpenShift 集群上具有集群管理员访问权限。
流程
- 将所有 Fuse Online 镜像镜像到您的专用网络中的可用位置。有关在受限网络中为 OpenShift Operator 安装镜像的更多信息,请参阅 OpenShift 文档中的 在受限网络中使用 Operator Lifecycle Manager 部分。
- 使用 Fuse 存储库内容设置自定义 Maven 存储库。有关详细信息,请参阅 红帽解决方案: 如何为 Fuse 7 创建离线 Maven 存储库。
在安装 Fuse Online 之前,请编辑 Fuse Online 自定义资源。使用
maven:mirror
设置来指示 Fuse Online 仅查看单个指定的 Maven 存储库,以便在构建集成时访问 Maven 工件。在以下示例中,将
https://customRepo
替换为您的离线仓库的 URL:components: server: features: maven: mirror: https://customRepo
将
HTTPS_PROXY
、HTTP_PROXY
和NO_PROXY
环境变量设置为syndesis-oauthproxy
。安装 Fuse Online 或之后,您可以设置这些环境值。在安装 Fuse Online 后,要在
syndesis/app
中设置环境值:使用以下命令从 proxy/cluster 检索值:
myhttpProxy=$(oc get proxy/cluster -ojsonpath='{.status.httpProxy}') myhttpsProxy=$(oc get proxy/cluster -ojsonpath='{.status.httpsProxy}') mynoProxy=$(oc get proxy/cluster -ojsonpath='{.status.noProxy}')
使用以下 oc patch 命令设置值:
oc patch syndesis/app --type=merge -p "{\"spec\": {\"components\": {\"oauth\": {\"environment\": {\"HTTPS_PROXY\": \""${myhttpsProxy}"\", \"HTTP_PROXY\": \"${myhttpProxy}\", \"NO_PROXY\": \"${mynoProxy}\"}}}}}"
这个命令会返回以下确认:
syndesis.syndesis.io/app patched
由于您更改了
syndesis-oauthproxy
部署,所以 OpenShift 会重新创建syndesis-oauthproxy-1-deploy
Pod。
-
默认情况下,
todo
示例应用程序被禁用(在 Fuse Online 自定义资源中,addon:todo:enabled
值设为false
)。(可选)在受限环境中安装 Fuse Online 后,您可以从 https://github.com/syndesisio/todo-example 下载todo
示例应用程序,并按照 Readme 文件中的步骤,将存储库 URL 更改为专用网络上可用的位置。
1.2. 在安装 Fuse Online 前,需要编辑默认自定义资源
Fuse Online 安装包括一个默认的自定义资源,用于指定可配置 Fuse Online 环境附加组件功能和参数设置的默认设置。
如果您希望安装 Fuse Online 环境,则需要编辑默认自定义资源:
- 使用您指定的 URL 用于可以访问 Fuse Online 控制台的 OpenShift 路由。默认值是安装过程计算此路由。
- 使用外部数据库来存储连接和集成定义。默认值是环境使用内部数据库。
-
增加可用于持久保留连接和集成定义的内部存储量。默认值为
1Gi
,足以满足大多数 Fuse 在线环境。
要为其中任一个这样的行为配置 Fuse Online 环境,在安装 Fuse Online 时,MUST 编辑自定义资源。换句话说,您无法更改安装的 Fuse Online 环境的配置来实现任何这些行为。另外,在安装为任何这些行为配置的 Fuse Online 环境后,您无法更改安装环境中的行为。
1.3. 配置 Fuse Online 的自定义资源属性的描述
除了安装前可以指定的自定义资源属性外,还有一些自定义资源属性,您可以在安装后或安装后更改。
表 1 提供了可配置的自定义资源设置的简单描述,并指示何时更改它们: before 和/或安装后。要实现您想要的 Fuse Online 配置,请使用此表中的信息确定在安装前需要如何更改自定义资源,或您希望在安装后更改自定义资源。然后执行适当的步骤:
对于 OCP 4.x:
表 1.1. 可配置自定义资源设置
功能/设置 | 当可以将其设置为时 | 规格 |
---|---|---|
此表 介绍了与增强活动跟踪相关的更多活动跟踪信息。 | 仅在安装前设置 |
启用了增强的活动跟踪功能。如果要自定义 Jaeger 配置,您可以将 |
外部数据库 | 仅在安装前设置 |
|
连接和集成 的内部存储容量。 | 仅在安装前设置 |
|
用于访问 Fuse Online 控制台的 OpenShift 路由 | 仅在安装前设置 |
|
内存和 CPU 每个组件定义自己的内存要求,这意味着每个 pod 对它所分配的内存量有限制。如需有关限制和请求设置的信息,请参阅 配置集群内存以满足 OpenShift 文档中的容器内存和风险要求 部分。
您还可以为服务器组件指定 CPU 资源。
| 仅在安装前设置 |
|
3scale 发现 | 在安装前或之后设置 |
|
备份 | 在安装前或之后设置 |
|
节点关联性 和 容限 确定 Fuse Online 基础架构组件和集成 pod 放置到集群内的节点上。 节点关联性允许您为 Fuse Online pod 指定关联性,到一组要放置的节点。 借助容限(toleration),您可以控制在哪些节点上运行 Fuse Online pod,并防止其他工作负载使用这些节点。 另请参阅: 配置 Fuse Online pod。 | 在安装前或之后设置 |
注: 将
|
集成限制 | 在安装前或之后设置 |
|
数据库连接池 您可以调整服务器连接池配置来管理与数据库的连接。 有关数据库池配置的其他信息,请参考此表。 | 在安装前或之后设置 |
|
Java 选项
您可以为
根据 Java 选项,您可以为组件指定不同的值。例如,您只能为 | 在安装前或之后设置 |
使用 Java 选项名称替换
使用选项的值替换
例如,配置 HTTP 代理: components:+ server: |
Maven 参数 | 在安装前或之后设置 |
|
Maven Mirror | 在安装前或之后设置 |
|
Maven Repositories | 在安装前或之后设置 |
|
监控 | 在安装前或之后设置 |
|
公共 REST API | 在安装前或之后设置 |
|
Todo addon | 在安装前或之后设置 |
|
Auditing 查看对连接器、连接和集成的基本更改。 另请参阅 审计 Fuse 在线组件。 注:这是一个技术预览功能。 | 在安装前或之后设置 |
|
关于附加功能和配置设置
增强的活动跟踪
在安装 Fuse Online 时,默认启用使用 Jaeger 的活动跟踪。Fuse Online 安装(来自 OperatorHub 或命令行脚本)检测到 OperatorHub 是否存在并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情形,Fuse Online 使用自己的安装功能来安装 Jaeger。另外,您可以在安装 Fuse Online 前自定义 Jaeger 配置,如 About Configuring Fuse Online for Jaeger monitoring 部分所述。
用于持久连接和集成的外部数据库
Fuse Online 的默认安装提供一个内部 PostgreSQL 数据库,Fuse Online 用于持久连接和集成定义。您可以选择使用外部 PostgreSQL 数据库,如 OpenShift 默认提供的 PostgreSQL 模板之一。
内部存储容量
1Gi
的默认设置足以满足大多数 Fuse 在线环境。预计只有在推荐红帽技术支持时,才会为新的 Fuse Online 安装增加此设置。也就是说,您已运行另一个 Fuse Online 环境,您可能会遇到 Fuse Online 服务器错误,红帽技术支持确定您需要安装一个新的 Fuse Online 环境,且数据库卷容量大于默认值。要在已运行 Fuse Online 的 OpenShift 项目中增加 Fuse Online 内部存储容量,您必须首先卸载 Fuse Online。请参阅从 OCP 项目卸载 Fuse Online。
数据库连接池配置
您可以配置以下
syndesis-server
数据库连接池属性:-
connectionTimeout
-syndesis-server
等待池的连接的最大毫秒数。最低可接受的连接超时时间为 250 ms。默认值为 30000(30 秒)。 -
idletimeout
- 在连接被删除前,连接允许闲置的最大时间(以毫秒为单位)。值 0 表示闲置连接永远不会从池中删除。允许的最小值为 10000(10 秒)。默认值为 600000(10 分钟), -
leakDetectionThreshold
- 在记录一个可能的连接泄漏前,连接可能会超出池的时间(以毫秒为单位)。值 0 表示禁用泄漏检测。启用泄漏检测的最低可接受值为 2000(2 秒)。默认值为 0。 -
maxLifetime
- 池中连接的最大生命周期(以毫秒为单位)。允许的最小值为 30000(30 秒)。默认值为 1800000(30 分钟)。 -
maximumPoolSize
- 池允许达到的最大大小,包括空闲和正在使用的连接。默认值为 10。 -
minimumIdle
- 池中维护的最小闲置连接数。默认值是maximumPoolSize
的值。
-
1.4. 关于为 Jaeger 监控配置 Fuse Online
Jaeger 是用于在分布式服务之间追踪事务的开源软件。它对于对复杂微服务环境进行监控和故障排除特别有用。
安装 Fuse Online(从 OperatorHub 或使用命令行脚本)时,Fuse Online 安装会检测到 OperatorHub 是否存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情形,Fuse Online 使用自己的安装功能来安装 Jaeger。
默认的 Fuse Online 环境配置所有必需的 Jaeger 组件。另外,您可以编辑 Fuse Online 自定义资源,以指定只使用客户端/独立的服务器配置或混合 Jaeger 客户端和 Jaeger Operator 配置。
默认 Jaeger 配置
基本开箱即用的配置包含所有 Jaeger 组件。您可以通过实验其监控功能来开始了解 Jaeger 的工作原理。默认配置提供仅限内存、有限的后端存储功能。
使用默认 Jaeger 配置安装 Fuse Online 有以下结果:
- Fuse 在线组件具有 Jaeger 通信 URL。
- 已安装 Jaeger Operator。
- Jaeger 自定义资源被配置为带有活动监控的默认配置。
使用默认 Jaeger 配置进行 Fuse Online 安装,具有以下整合自定义资源规格:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true
当 clientOnly
和 operatorOnly
未指定(默认设置为 false
时,默认情况下,Fuse Online 使用提供的 Jaeger 后端,以及 Jaeger 服务器配置提供的默认内存存储。
仅客户端/独立服务器配置
使用独立于客户端/独立的服务器配置,只为 Fuse Online 和外部配置的 Jaeger 后端配置客户端 URL 连接。Jaeger 后端的所有方面都是外部的,独立于 Fuse Online 环境和 Con ndesis-operator
。这包括 Jaeger Operator 和 Jaeger 自定义资源。
要安装仅限客户端的 Jaeger 配置,请在安装 Fuse Online 前编辑自定义资源,如下所示:
-
将
clientOnly
设置为true
以添加 Jaeger 代理功能。 -
将
queryUri
设置为独立安装的 Jaeger 后端的 查询组件的 URI。 -
将
collectorUri
设置为独立安装的 Jaeger 后端的 收集器组件的 URI。
例如:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true clientOnly: true queryUri: https://jaeger-query-hostname:443/api collectorUri: https://jaeger-collector-hostname:14268/api/traces
混合 Jaeger 客户端和 Operator 配置
使用混合 Jaeger 客户端和 Jaeger Operator 配置,Fuse Online 安装 Jaeger Operator 以及 Jaeger 客户端功能。未安装 Jaeger 自定义资源。您必须安装自己的 Jaeger 自定义资源,以定义 Jaeger 服务器配置。这可让您利用 Fuse 在线提供的功能,并为您自己的环境定制 Jaeger 配置,例如,您可以将 Elasticsearch 或 Cassandra 用于数据存储。
安装混合 Jaeger 客户端和 Jaeger Operator 配置:
在安装 Fuse Online 之前编辑自定义资源,如下例所示:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true operatorOnly: true
将 Jaeger 自定义资源命名为
syndesis-jaeger
,如下例所示:apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: syndesis-jaeger ... spec: ....
注: 或者,如果要为 Jaeger 自定义资源使用不同的名称,请在 Syndesis 自定义资源中设置
queryUri
和collectorUri
,如 Client-only/independent server configuration 部分所述。
当创建带有 syndesis-jaeger
名称的 Jaeger 自定义资源时,Jaeger 实例会从 Fuse Online 集成收集数据。默认情况下,您可以在 Fuse Online 活动日志中查看这些数据。
1.5. 使用外部数据库安装 Fuse Online
如果要安装使用外部数据库的 Fuse Online 环境来持久连接和集成定义:
- 使用 OpenShift 集群可以找到的主机名创建 postgreSQL 数据库。
-
在安装 Fuse Online 之前,为外部数据库创建一个名为
syndesis-global-config
的 OpenShift secret。 - 安装 Fuse Online。
- 在部署 Fuse Online 之前,请编辑自定义资源来配置与外部数据库的连接。
先决条件
- Fuse Online 尚未安装。
-
已安装
oc
客户端工具,并连接到您要在其中安装 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户为您提供了在集群中有访问权限的任何项目中安装 Fuse Online 的权限。
流程
使用有权安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
创建一个可供您在其上安装 Fuse Online 的 OpenShift 集群使用的 postgreSQL 数据库,并为以下配置选项定义值:
- 连接用户名
- 数据库名称
数据库密码
以下示例使用了 OpenShift 默认提供的其中一个 PostgreSQL 模板。
注: 仅将 PostgreSQL 临时(
postgresql-ephemeral
)模板用于开发或测试目的。对于生产环境,请使用 PostgreSQL(postgresql
)模板。oc new-app postgresql-ephemeral -p POSTGRESQL_USER=syndesis -p POSTGRESQL_PASSWORD=exdb-pwd -p POSTGRESQL_DATABASE=syndesisdb
此命令返回配置 Fuse Online(如 URL)时所需的数据库的信息。
有关创建数据库的信息,请参阅 OpenShift 文档中的 PostgreSQL 主题。
创建并保存资源文件(例如,
my-fuse-online-secret-cr.yml
),其中包含以下内容:apiVersion: v1 kind: Secret metadata: name: syndesis-global-config namespace: my-fuse-online-project type: Opaque stringData: POSTGRESQL_PASSWORD: exdb-pw
将
my-fuse-online-project
替换为您要为其指定外部数据库的 OpenShift 项目的名称。将
exdb-pw
替换为第 2 步的密码。Fuse Online 将使用它作为访问外部数据库的密码。请注意,stringData
将密码值转换为 base64 编码值(因此您不必进行转换)。如需有关 OpenShift 机密的信息,请参阅 向容器集提供敏感数据。
在集群中添加 secret,例如:
oc apply -f my-fuse-online-secret-cr.yml
在 OpenShift 集群中,
syndesis-global-config
secret 可用于使用指定外部数据库的自定义资源安装的 Fuse Online 环境。在
my-fuse-online-project
项目中安装 Fuse Online,您在 secret 的YAML
文件中指定(第 4 步)。对于 OCP 4.6 及更新的版本,请按照 从 OperatorHub 安装 Fuse Online Operator 中的说明进行操作。在部署 Fuse Online 项目之前,在 OpenShift 4.x 项目中添加 Fuse Online 实例,请编辑自定义资源以指定外部数据库的使用,例如:
apiVersion: syndesis.io/v1alpha1 kind: Syndesis metadata: name: app spec: components: database: externalDbURL: "postgresql://syndesis-external-db:5432" user: db-user-name name: db-name
-
将
syndesis-external-db:5432
替换为外部 PostgreSQL 数据库的主机名和端口。 -
将
db-user-name
替换为连接用户名。 -
将
db-name
替换为数据库的名称。
结果
Fuse Online 安装过程使用自定义资源中的设置来确定安装的 Fuse 在线环境的配置。
正确安装和部署后,Fuse Online 会显示除 syndesis-db
之外所需的所有 pod。syndesis-db
不使用 syndesis-
db,而是通过外部数据库的服务名称连接到数据库。如果外部数据库配置不正确,则 syndesis-server
无法初始化,Fuse Online 部署最终会出错。
1.6. 安装 Fuse Online
Fuse Online 是一个灵活定制的开源平台,可提供核心集成功能作为服务。如果您有适当的权限,可从 OperatorHub 安装 operator,请以 OpenShift developer 用户身份安装 Fuse Online。
以下是使用 operator 安装 Fuse Online 的一般步骤:
-
在 OpenShift 项目(命名空间)中创建 secret,以使用
registry.redhat.io
配置身份验证,以便 Fuse Online Operator 可以访问所需的安装模板。 - 将 Fuse Online Operator 安装到 OpenShift 项目(命名空间)。安装 Operator 后,Operator 会在所选命名空间中运行。
- 从安装的 operator 创建 Fuse Online 实例。您可以使用默认设置创建实例,或者您可以通过编辑实例的自定义资源来自定义实例。然后您可以从提供的 URL 访问 Fuse Online。
以下介绍了使用 operator 在 OCP 4.x 上安装 Fuse 的详细信息:
1.6.1. 使用 registry.redhat.io 身份验证。
在使用 registry.redhat.io
配置身份验证,然后才能在 OpenShift 上部署 Fuse 容器镜像。
先决条件
- 集群管理员对 OpenShift Container Platform 集群的访问权限。
-
已安装 OpenShift
oc
客户端工具。如需了解更多详细信息,请参阅 OpenShift CLI 文档。
流程
以管理员身份登录您的 OpenShift 集群:
oc login --user system:admin --token=my-token --server=https://my-cluster.example.com:6443
打开您要在其中部署 Fuse 的项目:
oc project myproject
使用您的红帽客户门户网站帐户创建一个
docker-registry
secret,将PULL_SECRET_NAME
替换为psi-internal-registry
来创建:oc create secret docker-registry psi-internal-registry \ --docker-server=docker-registry.redhat.io \ --docker-username=CUSTOMER_PORTAL_USERNAME \ --docker-password=CUSTOMER_PORTAL_PASSWORD \ --docker-email=EMAIL_ADDRESS
您应该看到以下输出:
secret/psi-internal-registry created
重要您必须在要向
registry.redhat.io
进行身份验证的每个 OpenShift 项目命名空间中创建此docker-registry
secret。将机密链接到您的服务帐户,以使用机密拉取镜像。以下示例使用
default
服务帐户、builder
服务帐户和deployer
服务帐户:oc secrets link default psi-internal-registry oc secrets link default psi-internal-registry --for=pull oc secrets link builder psi-internal-registry oc secrets link builder psi-internal-registry --for=pull oc secrets link deployer psi-internal-registry oc secrets link deployer psi-internal-registry --for=pull
服务帐户名称必须与 OpenShift 容器集使用的名称匹配。
注意如果您不想使用红帽用户名和密码来创建 pull secret,您可以使用 registry 服务帐户创建身份验证令牌。
其他资源
有关向容器镜像进行身份验证的更多详情:
1.6.2. 从 OperatorHub 安装 Fuse Online Operator
您可以使用 OpenShift Container Platform Web 控制台从 OperatorHub 安装 Fuse Online Operator。对于您要在其中安装 Fuse Online 的每个 OpenShift 项目(命名空间),请按照以下步骤操作。
先决条件
- 具有对 OpenShift 集群的管理员或开发人员访问权限。对于开发者用户,具有从 OperatorHub 安装 Operator 的适当权限。
-
您已使用
registry.redhat.io
配置身份验证,如 为容器镜像 使用registry.redhat.io
验证 中所述。 -
已安装
oc
客户端工具,并连接到您要在其上安装 Fuse Online 的 OCP 集群。
流程
- 在 Web 浏览器中,导航到 OpenShift 控制台,然后使用您的管理员或开发人员凭据登录控制台。
-
如果您以管理员身份登录,点 Operators,然后点 OperatorHub。
如果您以开发者身份登录,点 Add,然后点 From Catalog 卡。 - 在 Filter by keyword 字段中,键入 Fuse Online。
- 点 Red Hat Integration - Fuse 在线 卡。Fuse Online Operator 安装页面将打开。
点 Install。此时会打开 Install Operator 页面。
- Update Channel 为 Operator 定义更新流,用于为订阅者推出更新。接受默认频道( latest )。
-
对于 Installation 模式,从集群上的命名空间列表中选择命名空间(项目)。在为容器镜像验证
registry.redhat.io
中,选择创建 docker registry secret 时使用的相同命名空间。 对于 Update Approval,请选择 Automatic 或 Manual 来配置 OpenShift 如何处理 Fuse Online Operator 的更新。
- 如果选择自动 更新,则当有 Fuse Online Operator 的新版本时,OpenShift Operator Lifecycle Manager(OLM)会自动升级运行 Fuse Online 的运行实例,而无需人为干预。
- 如果选择手动 更新,则当有新版 Operator 可用时,OLM 会创建更新请求。然后,集群管理员必须手动批准该更新请求才能将 Fuse Online Operator 更新至新版本。
- 点击 Install 使 Fuse Online Operator 在指定的命名空间(project)中提供。
- 要验证项目中是否安装了 Fuse Online,请点击 Operators,然后点 Installed Operators 查看列表中的 Red Hat Integration - Fuse Online。
在终端窗口中,输入以下命令将 secret ( 您使用
registry.redhat.io
为容器镜像验证创建)链接到Fuse Online Operator 服务帐户:oc secrets link syndesis-operator PULL_SECRET_NAME --for=pull
后续步骤
安装 Fuse Online Operator 后,您可以将 Fuse Online 实例添加到 OpenShift 项目。
1.6.3. 将 Fuse Online 实例添加到 OpenShift 4.x 项目
在 OpenShift 4.x 项目中安装了 Fuse Online Operator 后,您可以将 Fuse Online 实例添加到 OpenShift 项目。Fuse Online 实例提供开发人员用来访问 Fuse Online 的 URL。
先决条件
- Fuse Online Operator 已安装到当前的 OpenShift 项目。
在 OCP 环境中,至少有三个持久性卷可供 Fuse Online 使用。所有持久性卷都必须具有以下配置要求:
-
capacity.storage:
1Gi
-
AccessMode:
ReadWriteOnce
-
capacity.storage:
- 决定您要安装默认 Fuse 在线实例或自定义实例。有关您可以指定的自定义资源设置的更多信息,请参阅安装前需要编辑默认自定义资源。
流程
按照以下步骤根据您的用户角色访问 Create Syndesis 页面:
如果您以管理员身份登录:
- 点 Operators,然后点 Installed Operators。
- 在 Name 列中,单击 Red Hat Integration - Fuse Online。Operator Details 页将打开。
- 在 Provided APIs 下,点 Create Instance。
如果您以开发者身份登录:
- 点 Add,然后点 Operator Backed 卡。
- 点 Syndesis CRD 卡。Syndesis CRD 页将打开。
-
点 Create。
Create Syndesis 页面将打开。
- 输入名称或将 app 保留为默认值。
- 选择 YAML view 选项来查看默认自定义资源。
可选。编辑自定义资源。
有关您可以指定的自定义资源设置的详情,请参阅 安装前需要编辑默认自定义资源 设置 以及配置 Fuse Online 的自定义资源属性描述。
Fuse Online 安装过程使用您在自定义资源中指定的设置来确定已安装的 Fuse 在线环境配置。
- 单击 Create 以创建 Fuse Online 实例。OpenShift 启动 Fuse Online 的 Pod、服务和其他组件。
获取 Fuse Online 的 URL:
- 点 Networking > Routes。
- 确保已选中正确的项目。
- 在 syndesis 行中的 Location 列中,单击 Fuse Online 的 URL。
- 使用您的 OpenShift 登录凭据,登录 Fuse 在线环境。
要允许其他开发人员用户访问 Fuse Online Web 控制台,管理员必须使用以下命令为每一开发人员用户授予安装 Fuse Online 的项目
view
角色:oc adm policy add-role-to-user view <username> -n <project-name>
例如,要将
myfuseonline
项目的查看
权限授予用户jdoe
:oc adm policy add-role-to-user view jdoe -n myfuseonline
第 2 章 更改 Fuse 在线环境的配置
在 OpenShift Container Platform(OCP)上安装了 Fuse Online 后,您可以更改 Fuse 在线环境的配置。
详情请查看以下主题:
- 第 2.1 节 “安装后允许 Fuse 在线配置更改”
- 第 2.2 节 “更改 Fuse Online 配置的一般步骤”。
配置(prodname} 和 3scale API 发现):
- 第 2.5 节 “配置 HTTP 代理”
- 第 2.6 节 “在 OCP 上运行的 Fuse Online 环境中添加示例数据”
2.1. 安装后允许 Fuse 在线配置更改
在 OpenShift Container Platform(OCP)上安装 Fuse Online 后,您可以更改其配置以启用/禁用某些功能或更改一些配置设置。下表列出了您可以更改的功能和设置,以及更改的影响,以及查找进行更改的说明的位置。
当更改 syndesis
自定义资源时,会导致重新部署 syndesis-server
,OpenShift 会创建一个新的服务器 Pod。它最多需要一到两分钟,直到新服务器就绪为止。在此期间,Fuse Online 控制台不可用。部署新服务器时,运行一直运行的集成。新部署就绪后,新服务器将加载集成状态。当 syndesis-server
pod 状态为 Running
并刷新 Fuse Online 控制台时,您可以再次使用 Fuse Online 控制台,显示集成、连接、消息和运行的值。
表 2.1. 您可以更改的功能和设置
功能/设置 | 更改的影响 | 信息 |
---|---|---|
3scale 发现 |
Redploys | |
Backup |
在 | |
Auditing 注:这是一个技术预览功能。 |
更新正在运行的 | |
监控 | 安装新的 OpenShift 资源 | |
公共 Fuse Online REST API 端点 |
创建 | |
Todo app、AMQ Broker、示例 PostresSQL 数据库和连接器示例 |
请注意,更改 | |
Java 选项 |
重新部署 | |
Maven 配置 |
您必须删除 | |
将 Fuse Online pod 分配给 OpenShift 集群节点 | 重新部署 Fuse Online 基础架构组件和集成 pod | |
Fuse Online 组件可用的内存 | 使用更改的内存重新部署组件 | |
允许运行的集成数 |
您必须删除 | |
数据库连接池 |
Redploys |
2.2. 更改 Fuse Online 配置的一般步骤
对于在 OCP 上安装的 Fuse Online 环境,您可以通过更新其 概要
自定义资源来更改其配置。保存更改后,如果 OpenShift 合起来正确,
OpenShift 会根据您的更新更新同步。语法错误可防止更新。
在编辑 syndesis
自定义资源时,请确保不指定语法错误的无效设置。syndesis-operator
将使用更新的 syndesis
自定义资源,即使合起来正确的设置无效。如果指定了无效的设置,则仅在 OpenShift 完成更新后了解它。在更新过程中,OpenShift 会删除无效的设置。
先决条件
- Fuse Online 已安装在 OCP on-site.
-
已安装
oc
客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。 - 您需要在要更改 Fuse Online 配置的项目中安装 Fuse Online 的权限。
-
您参考 了配置 Fuse Online 的自定义资源 属性的 Descriptions,以了解在安装后允许哪些配置更改,以及如何为您要进行配置更改更新复合自定义资源。
流程
使用有权安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到运行 Fuse Online 环境(您要更改的配置)的 OpenShift 项目。例如:
oc project my-fuse-online-project
可选。在
syndesis
自定义资源中创建当前设置的备份副本,只需更新并保存不正确的内容。例如,调用以下命令会在syndesis_app_backup.yml
文件中保存备份:oc get syndesis app -o yaml > syndesis_app_backup.yml
调用以下命令以在编辑器中打开 syndesis 自定义资源:
oc edit syndesis/app
注: 此流程描述了如何在编辑器中打开自定义资源文件来设置配置。另外,您可以使用
oc patch
命令来编辑自定义资源。-
根据需要编辑
syndesis
自定义资源。 保存资源。
根据您编辑适用的对象类型,您的更新会触发
syndesis-operator
在保存资源时重新部署一些 Fuse Online 组件。等待两个或三分钟,然后确认
syndesis
自定义资源已正确更新:调用以下命令以显示联合自定义资源的内容:
oc describe syndesis/app
检查内容。
如果
syndesis
自定义资源不包含您需要的设置,请再次编辑它来指定有效的设置。
结果
对 syndesis
自定义资源的大多数更改都触发 syndesis-operator
来重新部署 Fuse Online syndesis-server
组件。这意味着 OpenShift 会创建新的服务器 pod。
它最多需要一到两分钟,直到新服务器就绪为止。在此期间,Fuse Online 控制台不可用。部署新服务器时,运行一直运行的集成。新部署就绪后,新服务器将加载集成状态。您可以在以下情况下再次使用 Fuse Online 控制台:
-
syndesis-server
容器集状态为Running
。 - 刷新 Fuse Online 控制台显示集成、连接、消息和运行的值。
对 syndesis
自定义资源的一些更改会更新 Fuse Online 配置,但不需要重新部署 syndesis-server
。例如:
-
当您更新
同步自定义资源
来指定备份时,需要几秒钟后备份作业。
2.3. 配置 Fuse Online 和 3scale API 发现
如果创建 API 供应商集成,则可能需要在红帽 3scale 中为该集成的 API 进行发现。默认行为是 API 在 3scale 中没有公开供自动发现。
如果启用了 3scale 发现功能,您可以稍后禁用它。
2.3.1. 配置 Fuse Online 以启用 3scale API 发现
如果创建 API 供应商集成,则可能需要在红帽 3scale 中为该集成的 API 进行发现。默认行为是 API 在 3scale 中没有公开供自动发现。启用发现时,必须为 3scale 用户界面提供 URL。
要在安装 Fuse Online 前配置 Fuse Online 以启用 3scale 发现 API,请参阅 配置 Fuse Online 的自定义资源属性的描述。
安装后,您可以通过更新概要自定义资源来启用发现。具体操作步骤位于本主题中。当您启用发现时,它只适用于更新资源时连接到的 OpenShift 项目。
打开 3scale 服务发现意味着:
默认行为是 3scale 发布 API 供应商集成。当 3scale 发布 API 供应商集成时:
- Fuse Online 不会为运行的 API 供应商集成提供一个外部 URL。
- API 只能通过 3scale 访问。3scale 中的配置需要公开端点。详情请参阅 Red Hat 3scale API Management, Service Discovery。
- API 供应商集成的创建者可禁用 3scale 发现该集成。换句话说,每个 API 供应商集成创建者都可以选择集成 API 是否可以被发现。
先决条件
- Fuse Online 已安装在 OCP on-site.
-
已安装
oc
客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。 - 您需要在要启用 API 发现的项目中安装 Fuse Online 的权限。
- 您知道 OpenShift 集群上的 3scale 项目的名称。
流程
使用有权安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到运行 Fuse Online 的 OpenShift 项目。您只为此项目启用发现。例如:
oc project my-fuse-online-project
添加允许 3scale 项目查看 Fuse 在线集成的权限:
oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:amp
例如,如果 OpenShift 上的 3scale 项目命名为
my3scale
:oc adm policy add-cluster-role-to-user view system:serviceaccount:my3scale:amp
编辑
syndesis
自定义资源:调用以下命令,这通常会在编辑器中打开资源:
oc edit syndesis
通过将
managementUrlFor3scale
设置为 3scale 用户界面的 URL 来编辑资源。结果如下:spec: components: server: features: managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
- 保存资源。
可选。要确认已为您切换到的项目打开了发现,请调用以下命令:
oc describe dc/syndesis-server
启用发现后,此命令的输出显示
OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量被设置为您在自定义资源中指定的 URL。
结果
对 syndesis
自定义资源的改变会触发 syndesis-operator
(负责安装 Fuse Online)重新部署 syndesis-server
。在您切换到的 OpenShift 项目中,新的默认行为是,API 在 3scale 中被公开以进行发现。
不要编辑 syndesis-server DeploymentConfig
对象,以设置 OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量。这不起作用,因为 syndesis-operator
会恢复您的更改。
确保仅部署 Fuse Online,并根据合合自定义资源始终部署。
syndesis
-operator
2.3.2. 配置 Fuse Online 以禁用 API 的 3scale 发现
如果您遵循了 配置 Fuse Online 中的步骤以启用 3scale 发现 API,每个 API 供应商集成创建者可以选择该集成的 API 是否可以被发现。在某些情况下,您可能想要重新配置默认行为,即集成 API 在 3scale 中不可发现,例如:您可能希望在 Fuse Online 中编辑和测试 API 供应商集成。为此,请更新 Fuse Online syndesis
自定义资源,以便指定 managementUrlFor3scale
键和值被注释掉的行。这禁用由 3scale 进行发现。然后重新发布任何带有可发现 API 的 API 供应商集成。
先决条件
- Fuse Online 已安装在 OCP on-site.
- 您需要在要禁用发现的项目中安装 Fuse Online 的权限。
-
已安装
oc
客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。 - 在 OpenShift 项目中启用了 3scale 发现功能,如 配置 Fuse Online 以启用 API 的 3scale 发现 中所述。
流程
使用有权安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到启用了 3scale 发现的 OpenShift 项目。例如:
oc project my-fuse-online-project
编辑
syndesis
自定义资源:调用以下命令,这通常会在编辑器中打开资源:
oc edit syndesis
编辑资源,方法是在指定
managementUrlFor3scale
键和值的行中插入 hash 符号(#
)。这使得行是禁用发现的注释。结果应类似如下:spec: components: server: features: # managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
保存资源。
这会
更新同步
自定义资源。该更新会删除OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量。对syndesis
自定义资源的改变会触发syndesis-operator
(负责安装 Fuse Online)重新部署syndesis-server
。新的默认行为是,API 不再公开用于 3scale 中的发现。
不要编辑
syndesis-server DeploymentConfig
对象,以删除OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量的设置。这不起作用,因为syndesis-operator
会恢复您的更改。syndesis
-operator重新发布启用了发现的所有 API 供应商集成,并在您刚刚禁用发现的项目中创建的 API 供应商集成。
换句话说,如果您禁用了该集成的 API 发现功能,且为创建 API 供应商集成的项目启用了发现,则不需要重新发布 API 供应商集成。
结果
在相关 OpenShift 项目中创建的 API 供应商集成的 API 在 3scale 中不再可以被发现。
当 Fuse Online 发布(或重新发布)一个位于相关项目中的 API 供应商集成时,Fuse Online 提供了一个外部 URL,用于调用 API 供应商集成操作。
2.4. 配置 Fuse Online pod
您可以通过在 Fuse Online 自定义资源中设置节点关联性和容限选项,配置 Fuse Online 基础架构组件和集成 pod 放置到 OpenShift 集群的节点上。nodeAffinity
选项允许您指定 Fuse Online pod 的关联性和要放置的一组节点。tolerations
选项允许您控制在哪些节点上运行 Fuse Online pod 的节点,并防止其他工作负载使用这些节点。
您可以通过在安装 Fuse Online 之前或安装后编辑 Fuse Online 自定义资源来设置这些选项。
您可以指定与集成部署分开的基础架构组件部署配置节点关联性或容限设置:
infraScheduling
- 指定infraScheduling
选项,为这些 Fuse 在线基础架构部署配置节点关联性和容限设置:-
syndesis-db
-
syndesis-meta
-
syndesis-prometheus
syndesis-ui
注 :
syndsis-operator
部署不受节点关联性或容限更改的影响,因为它是 Fuse 在线管理组件。
-
integrationScheduling
- 指定integrationScheduling
选项,为所有 Fuse 在线集成部署配置节点关联性和容限设置。注意 :如果要知道 Fuse Online 部署是否为集成部署,请检查部署名称。您可以使用
oc get pods
命令来查看正在运行的部署列表。如果部署名称包含-i
前缀,它是一个集成部署,例如i-my-integration
。
以下流程描述了如何使用 oc patch
命令编辑自定义资源。另外,您可以按照这些主题中所述编辑自定义资源:
- 如果您已经安装了 Fuse Online,请按照"更改 Fuse Online 配置" 中的步骤打开自定义资源。
如果您尚未安装 Fuse Online,按照这些主题中的步骤打开自定义资源,具体取决于您的 OCP 版本。
- 对于 OCP 4.x: 将 Fuse Online 实例添加到 OpenShift 4.x 项目
先决条件
- Fuse Online 已安装在 OCP on-site.
-
已安装
oc
客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。
流程
使用
oc patch
命令,并使用以下语法配置 容限 设置。为 Fuse Online infrastructure 组件部署指定infra
部署指定 IntegrationScheduling:Scheduling
,或为 Fuse Online 集成oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling"|"infraScheduling":{"tolerations":[{"key":"_value1_","operator":"_value2_","effect":"_value3_"},{"key":"_value4_","operator":"_value5_","effect":"_value6_"}]}}}'
例如,以下命令为 Fuse 在线基础架构组件添加了容限:
oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling":{"tolerations":[{"key":"tol_1","operator":"Equal","effect":"NoSchedule"},{"key":"tol_2","operator":"Equal","value":"value2","effect":"NoSchedule"}]}}}'
使用带有以下语法的
oc patch
命令配置 节点关联性 设置。为 Fuse Online infrastructure 组件部署指定infra
部署指定 IntegrationScheduling:Scheduling
,或为 Fuse Online 集成oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling"|"infraScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":_value1_,"preference":{"matchExpressions":[{"key":"_value1_","operator":"_value2_","values":["_value3_","_value4_"]}]}}]}}}'
例如,以下命令将 nodeAffinity 设置为 Fuse Online 基础架构组件和集成:
oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":11,"preference":{"matchExpressions":[{"key":"_affinity","operator":"In","values":["foo","bar"]}]}}]}}},"integrationScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":22,"preference":{"matchExpressions":[{"key":"my_affinity2","operator":"In","values":["foo","bar"]}]}}]}}}}}'
要删除配置设置,请在
oc patch
命令中使用remove
选项,如下例所示:以下示例命令从 Fuse 在线集成中的 nodeAffinity 中删除
preferredDuringSchedulingIgnoredDuringExecution
设置:oc patch syndesis/app --type=json -p '[{"op": "remove", "path": "/spec/integrationScheduling/affinity/nodeAffinity/preferredDuringSchedulingIgnoredDuringExecution" }]'
以下示例从 Fuse Online 基础架构组件中删除容限:
oc patch syndesis/app --type=json -p '[{"op": "remove", "path": "/spec/infraScheduling/tolerations" }]'
其他资源
如需有关容限和节点关联性的信息,请参阅了解节点关联性以及使用 OpenShift 文档中的 节点污点部分控制 pod 放置。
2.5. 配置 HTTP 代理
很多服务都使用 HTTP 代理来过滤和安全与其他服务或组件的通信。要在 Fuse Online 组件和集成上配置 HTTP 代理,请在安装 Fuse Online 之前或之后编辑 Fuse Online 自定义资源。
前提条件
- 您知道 HTTP 代理的主机和端口值。
流程
在编辑器中打开自定义资源:
如果您已经安装了 Fuse Online,请按照"更改 Fuse Online 配置" 中的步骤打开自定义资源。
如果您尚未安装 Fuse Online,按照这些主题中的步骤打开自定义资源,具体取决于您的 OCP 版本。
对于 OCP 4.x: 将 Fuse Online 实例添加到 OpenShift 4.x 项目
对于
syndesis-server
和syndesis-meta
组件,设置 Java Options(javaOptions
)参数,并为 HTTP 代理主机和端口指定值。为syndesis-server
和syndesis-meta
使用相同的 HTTP 代理服务器值。例如:
spec: components: server: javaOptions: -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800 meta: javaOptions: -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800
对于 Fuse Online 集成,请设置 Maven 参数(附加参数)参数。例如:
spec: components: server: features: maven: additionalArguments: "-Dhttp.proxy=10.0.0.100 -Dhttp.proxyPort=8800"
保存自定义资源。
如果已安装 Fuse Online,则
syndesis-server
pod 会重新部署,以响应第 2 步的 javaOptions 更新。重新发布任何使用 HTTP 代理的正在运行的集成。
- 在 Fuse Online 中,选择您要更新的集成。
- 选择 编辑。
- 选择 Publish。
Fuse Online 在重建集成时使用 HTTP 代理设置。
2.6. 在 OCP 上运行的 Fuse Online 环境中添加示例数据
为了帮助新用户了解如何与 Fuse Online 创建集成,您可以在 Fuse 在线环境中添加示例数据。
- ToDo 应用
- PostgresDB 数据库和 PostgresDB 连接示例
- AMQ Broker
Salesforce to Database、AMQ 到 REST API,API Provider Quickstart 示例集成需要这个示例数据。
默认情况下,AMQ Broker、PostgresDB 数据库和连接示例并且禁用 ToDo 应用(未安装)。
要在安装 Fuse Online 前将 Fuse Online 配置为包含示例数据,请参阅 配置 Fuse Online 的自定义资源属性的描述。
先决条件
- Fuse Online 已安装并在 OCP 现场运行。
-
已安装
oc
客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。 - 有编辑 Fuse Online 自定义资源的权限。
流程
使用有权编辑 Fuse Online 自定义资源的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到运行 Fuse Online 的项目。例如:
oc project my-fuse-online-project
编辑
syndesis
自定义资源:调用以下命令,这通常会在编辑器中打开资源:
oc edit syndesis
通过将
addons:todo:enabled
字段改为 true 来编辑自定义资源:spec: addons: todo: enabled: true
保存资源。
将这个更改保存到
syndesis
自定义资源中会触发syndesis-operator
来创建新的todo
pod,并触发syndesis-server
和syndesis-db
pod 的重新部署。
第 3 章 在 OCP 上管理 Fuse Online
在 OpenShift Container Platform(OCP)上安装 Fuse Online 后,您可以使用 Prometheus 监控集成活动,并可设置定期 Fuse 在线备份,您可以使用它来恢复 Fuse 在线环境。在需要时,您可以升级 Fuse Online、卸载 Fuse Online 或删除包含 Fuse Online 的 OCP 项目。
详情请查看以下主题:
3.1. 审计 Fuse 在线组件
Fuse 在线审计只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些功能可让您早期访问即将发布的产品功能,使客户能够在开发过程中测试功能并提供反馈信息。如需了解红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview/
Fuse Online 支持对以下 Fuse Online 组件所做的更改进行的基本审计:* Connections - Name
和在 Fuse Online Web 控制台的连接器 Details 页面中显示的任何其他字段。* 连接器 - Name
字段。* 集成 - Name
字段。
当开发人员对其中一个组件字段进行更新时(例如,更改集成名称),Fuse Online 将 AUDIT 消息发送到标准输出,包括 ID、用户、时间戳、组件(连接
、连接器
或集成 ),以及更改类型(创建
、
)。修改或删除
请注意,审计消息中的字段值被截断为 30 个字符。
默认情况下,Fuse 在线审计被禁用。您可以通过编辑 Fuse Online 自定义资源来启用它。要在安装 Fuse Online 前启用审核,请参阅配置 Fuse Online 的自定义资源属性的描述。
先决条件
-
已安装
oc
客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。 - 有编辑 Fuse Online 自定义资源的权限。
流程
使用赋予您编辑 Fuse Online 自定义资源的权限登录到 OpenShift。例如:
oc login -u admin -p admin-password
切换到正在运行 Fuse Online 环境的项目。例如:
oc project my-fuse-online-project
编辑 syndesis 自定义资源:
调用以下命令,这通常会在编辑器中打开资源:
oc edit syndesis
确保资源中有以下行:根据需要编辑:
components: server: features: auditing: true
保存资源。
当您在联合自定义资源中启用审计功能时,运行概要
服务器配置重新加载,
Fuse Online 启动与 Fuse Online 组件相关的日志记录。- 要查看 Fuse Online 审计日志信息,请输入以下命令:
oc logs -l syndesis.io/component=syndesis-server
3.2. 使用 Prometheus 监控 Fuse 在线集成和基础架构组件
您可以使用 Prometheus 监控 Fuse 在线基础架构组件和 Fuse 在线集成。您还可以使用 Grafana 仪表板来视觉化 Prometheus 收集的指标。
Red Hat support for Prometheus 仅限于 Red Hat 产品文档中提供的设置和配置建议。
Grafana 是社区支持的功能。部署 Grafana 来监控 Red Hat Fuse 产品不受 Red Hat production 服务级别协议(SLA)的支持。
除了监控 Fuse Online 集成外,您还可以使用 Prometheus 监控以下 Fuse Online 基础架构组件公开的指标:
- Syndesis Server
-
syndesis-server
组件使用 Micrometer 提供,并默认自动公开所有 JVM Micrometer 指标。另外,syndesis-server
会公开有关 REST API 端点的指标,如请求率、错误率和延迟。 - Syndesis Meta
-
syndesis-meta
组件使用 Micrometer 提供,并默认自动公开所有 JVM Micrometer 指标。它还会公开有关其 REST API 端点的指标。 - Syndesis DB
- Fuse Online Postgres 数据库的指标通过 第三方 Prometheus 导出器 导出。
- 集成
-
集成
指标在创建了集成后可见,并通过使用官方 JMX exporter 导出,默认情况下会公开几个 JVM 指标。另外,集成指标会公开特定于 Apache Camel 的指标,如消息速率和错误率。
先决条件
- Fuse Online 已安装并在 OCP 4.9(或更新版本)上运行。
-
已安装
oc
客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。 -
具有对 OCP 集群的
admin
访问权限。 您的 Fuse Online 安装配置了启用了
ops addon
。如果需要,您可以使用以下命令启用它:oc patch syndesis/app --type=merge -p '{"spec": {"addons": {"ops": {"enabled": true}}}}'
流程
如果存在
openshift-monitoring
配置,请跳至第 2 步。否则,创建一个
openshift-monitoring
配置,将用户工作负载监控选项设置为true
,然后跳至第 3 步:oc apply -f - <<EOF apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | enableUserWorkload: true EOF
如果存在
openshift-monitoring
配置:检查现有的
openshift-monitoring
配置,以确定 用户工作负载监控 选项是否被设置为 true :oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'
如果结果为
enableUserWorkload: true
,则 用户工作负载监控 选项被设置为 true。跳至步骤 3。如果结果显示任何其他配置,请继续下一步,通过编辑 ConfigMap 来启用用户工作负载的监控。
在编辑器中打开 ConfigMap 文件,例如:
oc -n openshift-monitoring edit cm/cluster-monitoring-config
将 enableUserWorkload 设置为 true。例如:
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | enableUserWorkload: true
- 保存 ConfigMap 文件。
使用以下命令,观察
openshift-user-workload-monitoring
命名空间中的 pod 状态:oc -n openshift-user-workload-monitoring get pods -w
等待 pod 的状态是 Running,例如:
prometheus-operator-5d989f48fd-2qbzd 2/2 Running prometheus-user-workload-0 5/5 Running prometheus-user-workload-1 5/5 Running thanos-ruler-user-workload-0 3/3 Running thanos-ruler-user-workload-1 3/3 Running
验证 Prometheus 中是否启用了 Fuse Online 警报规则:
访问内部 prometheus 实例
oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
-
打开浏览器,到
localhost:9090
-
选择 Status> Targets。您应看到
三个整合
端点。 -
按 CTRL-C 终止
端口转发
进程。
-
在 OperatorHub 中,将 Grafana Operator 版本 4 安装到您选择的命名空间,例如
grafana-middleware
命名空间。使用更新频道v4
添加集群角色和集群角色绑定,以允许
grafana-operator
列出节点和命名空间:从
grafana-operator
网站下载集群角色 YAML 文件:curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/v4/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
为
grafana-operator
添加集群权限以读取其他命名空间和节点:cat <<EOF >> tmp_role.yaml - apiGroups: - "" resources: - namespaces - nodes verbs: - get - list - watch EOF
oc apply -f tmp_role.yaml
oc apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: grafana-operator roleRef: name: grafana-operator kind: ClusterRole apiGroup: "" subjects: - kind: ServiceAccount name: grafana-operator-controller-manager namespace: grafana-middleware EOF
启用
grafana-operator
,使用DASHBOARD_NAMESPACES_ALL
环境变量从其他命名空间中读取 Grafana 仪表板,以限制命名空间:oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'
检查
grafana
pod 是否已重新创建:oc -n grafana-middleware get pods -w
另外,还可查看
grafana-operator
日志:oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
添加 Grafana 自定义资源 以启动 Grafana 服务器 pod,例如:
oc apply -f - <<EOF apiVersion: grafana.integreatly.org/v1beta1 kind: Grafana metadata: name: grafana-middleware namespace: grafana-middleware spec: config: auth: disable_signout_menu: true auth.anonymous: enabled: true log: level: warn mode: console security: admin_password: secret admin_user: root dashboardLabelSelector: - matchExpressions: - key: app operator: In values: - grafana - syndesis ingress: enabled: true EOF
允许
grafana-operator
读取监控信息:oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
添加
GrafanaDatasource
以查询thanos-querier
:oc apply -f - <<EOF apiVersion: grafana.integreatly.org/v1beta1 kind: GrafanaDataSource metadata: name: prometheus-grafanadatasource namespace: grafana-middleware spec: datasources: - access: proxy editable: true isDefault: true jsonData: httpHeaderName1: 'Authorization' timeInterval: 5s tlsSkipVerify: true name: Prometheus secureJsonData: httpHeaderValue1: "Bearer $(oc get secret $(oc get secret | grep grafana-serviceaccount-token | awk '{print$1}') -o=jsonpath="{.data.token}" | base64 -d)" type: prometheus url: "https://$(oc get route thanos-querier -n openshift-monitoring -ojsonpath='{.spec.host}')" name: prometheus-grafanadatasource.yaml EOF
查看 grafana 服务器日志:
oc logs -f `oc get pods -l app=grafana -oname`
访问 grafana URL 并查看 Fuse Online 仪表板:
echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')
在 Grafana 控制台左侧面板中点击搜索按钮。此时会显示一个文件夹(OCP 命名空间名称),其中包含每个 Syndesis 实例的仪表板。
- 对于 Fuse Online 集成,请选择 Integration - Camel。此仪表板显示由 Apache Camel 集成应用程序公开的标准指标。
对于 Fuse Online infrastructure 组件,请选择以下基础架构仪表板之一:
- 基础架构 - DB
- 显示与 Fuse Online Postgres 实例相关的指标。
- 基础架构 - JVM
-
显示为
syndesis-meta
或syndesis-server
应用程序运行 JVM 的指标。从仪表板顶部的 Application 下拉列表中选择您要监控的应用程序。 - 基础架构 - REST API
-
显示与 Fuse Online 基础架构 API 端点相关的指标,如
请求
。从仪表板顶部的 Application 下拉列表中,选择要监控的应用程序。吞吐量和延迟
其他资源
有关使用 Prometheus 入门的信息,请访问: https://prometheus.io/docs/prometheus/latest/getting_started/
3.3. Fuse Online Metering 标签
您可以使用 OpenShift Metering operator 来分析已安装的 Fuse Online operator 和组件,以确定您是否遵守红帽订阅。如需有关 Metering 的更多信息,请参阅 OpenShift 文档。
下表列出了 Fuse 在线基础架构组件和集成的 metering 标签。
表 3.1. Fuse Online 的计量标签
标签 | 可能的值 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
例子
基础架构示例(其中的基础架构组件 是联合db)
com.company: Red_Hat rht.prod_name: Red_Hat_Integration rht.prod_ver: 7.8 rht.comp: Fuse rht.comp_ver: 7.8 rht.subcomp: syndesis-db rht.subcomp_t: infrastructure
应用程序示例(集成部署名为 mytestapp)
com.company: Red_Hat rht.prod_name: Red_Hat_Integration rht.prod_ver: 7.8 rht.comp: Fuse rht.comp_ver: 7.8 rht.subcomp: i-mytestapp rht.subcomp_t: application
3.4. 备份 Fuse 在线环境
您可以将 Fuse Online 配置为定期备份:
- Fuse Online 存储连接和集成的内部 PostgreSQL 数据库。
-
syndesis-operator
会创建的 OpenShift 资源,以及运行 Fuse Online 所需的资源。这包括,但不仅限于、配置映射、部署配置和服务帐户。
在安装 Fuse Online 之前,您可以为 Fuse 在线环境配置备份,或者更改 Fuse 在线环境的配置以启用备份。
当将 Fuse Online 配置为执行备份时,Fuse Online zips 数据到一个文件中,并将该文件上传到您指定的 Amazon S3 存储桶中。您可以将备份应用到新的 Fuse 在线环境(没有定义的连接或集成)来恢复备份的 Fuse Online 环境。
先决条件
- OCP 正在现场运行。
-
oc
客户端工具已安装并连接到运行 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户为您提供了在集群中有访问权限的任何项目中安装 Fuse Online 的权限。
- 您有一个 AWS 访问密钥和 AWS secret 密钥。有关获取这些凭证的详情,请参考 AWS 文档 管理 IAM 用户的访问密钥。
- 您知道要上传到它的 S3 存储桶的 AWS 区域。
- 您知道要将备份上传到的 S3 存储桶的名称。
流程
使用有权安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到正在运行的 OpenShift 项目,或者将运行您要为其配置备份的 Fuse 在线环境。例如:
oc project my-fuse-online-project
创建 OpenShift 机密。在命令行中:
-
指定
syndesis-backup-s3
,如以下命令格式所示。 将 AWS 变量替换为 AWS 访问密钥、AWS secret 密钥、存储桶所在 AWS 区域以及存储桶的名称。
使用以下命令格式创建 secret:
oc create secret generic syndesis-backup-s3 \ --from-literal=secret-key-id="my-aws-access-key" \ --from-literal=secret-access-key="my-aws-secret-key" \ --from-literal=region="aws-region" \ --from-literal=bucket-name="aws-bucket-name"
备份任务运行时必须存在此 secret。
-
指定
如果 Fuse Online 尚未安装,您必须编辑
default-cr.yml
文件以启用备份。在安装 FuseOnline 前,
请参阅编辑复合自定义资源。安装 Fuse Online 后,将根据您在自定义资源中指定的计划备份作业。如果 Fuse Online 正在运行,您必须编辑
syndesis
自定义资源:调用以下命令,它会在编辑器中打开
syndesis
自定义资源:oc edit syndesis
在
spec:
下添加以下内容:backup: schedule: my-backup-interval
将
my-backup-interval
替换为备份之间的所需持续时间。要确定如何指定备份间的间隔,请查阅以下资源:- Cron 预定义的调度
不要在间隔的前面指定
@
符号。例如,要配置每日备份,自定义资源将包含类似如下的内容:apiVersion: syndesis.io/v1beta1 kind: Syndesis metadata: name: app spec: backup: schedule: daily
保存该文件。
这会在
syndesis-operator
中添加备份作业。
结果
如果 Fuse Online 已经运行,现在有一个 Fuse 在线备份作业,具体取决于您定义的计划。
后续步骤
如果需要安装 Fuse Online,请编辑 default-cr.yml
文件,以启用其他所需的功能或设置任何其他参数。当 default-cr.yml
文件具有您想要的所有设置时,请在您创建 OpenShift secret 时指定的项目中安装 Fuse Online。
3.5. 恢复 Fuse 在线环境
在一个新的 Fuse Online 环境中,您尚未创建任何连接或集成,您可以恢复 Fuse 在线环境的备份。恢复 Fuse 在线环境后,您必须编辑恢复的连接以更新其密码。然后,您应该能够发布恢复的集成。
先决条件
- OCP 正在现场运行。
-
oc
客户端工具已安装并连接到要恢复 Fuse 在线环境的 OCP 集群。 - 具有集群管理权限的用户为您提供了在集群中有访问权限的任何项目中安装 Fuse Online 的权限。
- 有一个 Fuse 在线环境,配置为定期备份数据并将数据上传到 Amazon S3。
- 例如,F 7.6 等 Fuse Online 发行号是备份的 Fuse 在线环境以及您要恢复备份的 Fuse 在线环境。
- 有访问包含 Fuse Online 备份的 AWS 存储桶的权限。
- 要恢复备份的 Fuse 在线环境是一个新的 Fuse Online 安装。换句话说,没有您定义的连接或集成。如果要在具有连接和集成 Fuse Online 环境的项目中恢复 Fuse Online,则必须卸载 Fuse Online 环境并安装新的 Fuse Online 环境。
流程
- 从 Amazon S3 下载所需的备份文件。有关这样做的详情,请参阅 AWS 文档中的 Do I from a S3 Bucket 下载对象?
提取 zip 文件的内容。例如,以下命令可解压缩
7.6-2020-03-15-23:30:00.zip
文件,并将内容复制到/tmp/fuse-online-backup
文件夹中:unzip 7.6-2020-03-15-23:30:00.zip -d /tmp/fuse-online-backup
对 Fuse Online 数据库进行解码,例如:
base64 -d /tmp/fuse-online-backup/syndesis-db.dump > /tmp/fuse-online-backup/syndesis-db
切换到运行新 Fuse Online 环境的 OpenShift 项目。例如,如果新 Fuse Online 环境位于
my-fuse-online-project
中,则您需要调用以下命令:oc project my-fuse-online-project
此流程的其余部分假定您已切换到包含新 Fuse Online 环境的项目。
获取数据库 Pod 的名称。
如果恢复的 Fuse Online 环境使用提供的内部 PostgreSQL 数据库,请调用以下命令来获取数据库 pod 的名称:
oc get pods -l deploymentconfig=syndesis-db -o jsonpath='{.items[*].metadata.name}'
如果恢复的 Fuse 在线环境使用外部数据库,则假设您了解如何获取该数据库的 pod 名称。
在剩余的命令中,在这里看到
DATABASE_POD_NAME
,请为恢复的 Fuse 在线环境插入数据库 pod 的名称。以任何方式缩减访问数据库的组件。
缩减
syndesis-operator
以便可以缩减其他组件:oc scale deployment syndesis-operator --replicas 0
缩减
syndesis-server
和syndesis-meta
组件:oc scale dc syesis-server --replicas 0
oc scale dc syndesis-meta --replicas 0
将数据库备份文件发送到 Fuse Online 数据库 pod:
oc cp /tmp/fuse-online-backup/syndesis-db DATABASE_POD_NAME:/tmp/syndesis-db
在 Fuse Online 数据库 pod 中打开一个远程 shell 会话:
oc rsh DATABASE_POD_NAME
调用下列命令以恢复 Fuse Online 数据库。
如果
psql
命令提示输入数据库密码,并且恢复的 Fuse Online 环境使用提供的内部 PostgreSQL 数据库,您可以在syndesis-db
部署配置的POSTGRESQL_PASSWORD
环境变量中找到密码。如果恢复的 Fuse 在线环境使用外部数据库,则系统会假定您知道密码。cd /tmp psql -c 'DROP database if exists syndesis_restore' psql -c 'CREATE database syndesis_restore' pg_restore -v -d syndesis_restore /tmp/syndesis-db psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'syndesis'" psql -c 'DROP database if exists syndesis' psql -c 'ALTER database syndesis_restore rename to syndesis'
现在,Fuse Online 可以被恢复。您可以结束 RSH 会话:
退出
扩展 Fuse Online 组件:
oc scale deployment syndesis-operator --replicas 1
将
syndesis-operator
扩展为1
,应该可以启动缩减的其他 pod。但是,如果没有发生这种情况,您可以手动扩展它们:oc scale dc syesis-server --replicas 1
oc scale dc syndesis-meta --replicas 1
服务器尝试启动每个恢复的集成,但您需要首先更新连接。因此,确保恢复的集成没有运行:
获取 Fuse Online 控制台路由:
echo "https://$(oc get route/syndesis -o jsonpath='{.spec.host}' )"
- 使用有权限安装 Fuse Online 的 OpenShift 用户帐户登录 Fuse Online 控制台。
- 显示集成列表并确保所有集成都已停止。如果集成正在运行,请将其停止。
对于具有密码的每个连接,您需要将连接更新为拥有此 Fuse Online 环境的正确密码。以下步骤演示了如何为提供的 PostgresDB 连接进行此操作。
-
在运行了 Fuse Online 环境的项目 OpenShift 控制台中,检索 PostgresDB 连接的密码。在
syndesis-db
部署中,密码位于环境变量中。 - 在 Fuse Online 控制台中显示连接。
- 编辑 PostgresDB 连接。
- 在 PostgresDB 连接的连接详情中,将检索到的密码粘贴到 Password 字段中。
-
在运行了 Fuse Online 环境的项目 OpenShift 控制台中,检索 PostgresDB 连接的密码。在
对于每个集成,确认没有 配置所需 指示符。如果存在,请编辑集成以解决问题。当集成中的所有步骤都正确时,发布集成。
如果 Fuse Online 在构建步骤后保持回滚至停止状态,请删除部署,确保不需要配置,然后再次尝试发布集成。
如果您在日志中看到以下信息,则可以安全地忽略以下信息:
Error performing GET request to https://syndesis-my-fuse-online-project.my-cluster-url/api/v1/metrics/integrations
3.6. Online 升级 Fuse
为 Fuse Online 发布补丁和安全修复的时间、全新应用程序镜像。通过红帽的勘误更新频道,通知您这些更新信息。然后您可以升级 Fuse Online 镜像。
对于 OCP 4.x,按照使用 OperatorHub 升级 Fuse Online 中的步骤,从 Fuse Online 升级到 7.11。
您应该确定是否升级到 Fuse Online 7.11,您需要对现有集成进行更改。即使不需要任何更改,在升级 Fuse Online 时必须重新发布所有正在运行的集成。
3.6.1. 使用 OperatorHub(OCP 4.x)升级 Fuse Online
使用 OpenShift OperatorHub 从 Fuse Online 7.10 升级到 7.11。
- Fuse Online 7.11 需要 OpenShift Container Platform(OCP)4.6 或更高版本。如果使用 OCP 4.5 或更早版本,如果要升级到 Fuse Online 7.11,则必须升级到 OCP 4.6 或更高版本。
在 OCP 4.9 上,当您升级到 7.11 时,在 Fuse Online Operator 升级过程中会显示以下警告:
W1219 18:38:58.064578 1 warnings.go:70] extensions/v1beta1 Ingress 在 v1.14+ 中被弃用,在 v1.22+ 中不可用,使用 networking.k8s.io/v1 Ingress
这个警告会出现的原因是客户端( Fuse Online 用于 Kubernetes/OpenShift API 初始化代码)访问已弃用的 Ingress 版本。这个警告 不是 完全使用已弃用 API 的指示,没有升级到 Fuse Online 7.11 的问题。
从 Fuse Online 7.10 或更早的 7.11 版本升级到较新的 Fuse Online 7.11 版本的升级过程取决于您安装 Fuse Online 时选择的 批准策略 :
- 对于自动更新,当有新版本的 Fuse Online 操作器时,OpenShift Operator Lifecycle Manager(OLM)会自动升级运行 Fuse Online 的运行实例,而无需人为干预。
- 对于 手动更新,则当有新版 Operator 可用时,OLM 会创建更新请求。作为集群管理员,您必须手动批准该更新请求,才能将 Fuse Online operator 更新至新版本,如 OpenShift 文档中的 手动批准待处理的 Operator 升级 部分中所述。
在基础架构升级期间和之后,现有集成将继续使用较 老版本的 Fuse 在线库和依赖项运行。
要使用更新的 Fuse 在线版本运行现有集成,您必须重新发布集成。
3.6.2. 升级 Fuse 在线集成
当您升级到 Fuse Online 7.11 时,您应该确定是否需要更改现有集成。
查看 Camel 迁移注意事项 中介绍的 Apache Camel 更新。
即使您的集成不需要更改,您也必须重新发布所有正在运行的集成,因为基础架构升级期间和之后,现有集成仍会使用旧版本的 Fuse Online 库和依赖项运行。要使用更新版本运行它们,您必须重新发布它们。
流程
在您的 Fuse 在线环境中重新发布您的集成:
- 在 Fuse Online 左侧导航面板中,单击 Integrations。
对于每个集成:
- 在集成条目右侧,点 并选择 Edit。
- 当 Fuse Online 显示用于编辑的集成时,请单击右上角的 Publish。
发布强制强制使用最新 Fuse 在线依赖项的重新构建。
Fuse Online 用户界面会显示一个警告,如果集成的所有元素都有您更新所需的更新依赖项。
3.7. 从 OCP 项目卸载 Fuse Online
您可以从 OCP 项目卸载 Fuse Online,而无需删除该项目以及该项目中的任何其他内容。卸载 Fuse Online 后,运行将继续运行的集成,但无法再编辑或重新发布它们。
前提条件
- 您有一个 OCP 项目,在其中安装了 Fuse Online。
- 您导出了在安装了 Fuse Online 的一些其他 OpenShift 项目中可能要使用的集成。如有必要,请参阅 导出集成。
流程
使用有权安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到运行您要卸载的 Fuse 在线环境的 OpenShift 项目。例如:
oc project my-fuse-online-project
删除 Fuse Online 基础架构:
oc delete syndesis 应用程序
删除
syndesis-operator DeploymentConfig
和ImageStream
资源:oc delete deployment/syndesis-operator
oc delete is/syndesis-operator
3.8. 删除包含 Fuse Online 的 OCP 项目
删除安装 Fuse Online 的 OpenShift 项目将删除该项目中的所有内容。这包括已定义的所有集成以及所有正在运行的集成。
先决条件
- 您有一个 OCP 项目,在其中安装了 Fuse Online。
- 您导出了在安装了 Fuse Online 的一些其他 OpenShift 项目中可能要使用的集成。如有必要,请参阅 导出集成。
流程
调用 oc delete project
命令。例如,要删除名称为 fuse-online-project
的 OpenShift 项目,请输入以下命令:
oc delete project fuse-online-project
第 4 章 如何调用 Fuse Online 公共 REST API 端点
当您在 OCP 上运行 Fuse Online 时,每个 Fuse 在线环境都可以公开公共 REST API 端点。外部持续集成/持续交付(CI/CD)工具可调用这些端点,以便操作位于 Fuse 在线环境中的资源。
在每个 Fuse Online 环境中,OpenShift 管理员必须先公开 Fuse Online 公共 REST API 端点,然后才能调用这些端点。调用 API 端点的命令指定端点运行的 Fuse Online 环境的 URL、secret 令牌和身份验证令牌。
详情请查看以下主题:
4.1. 公开 Fuse Online 公共 REST API,供外部工具使用
当您在 OCP 在线上运行 Fuse Online 时,您可能希望使用外部工具将 Fuse Online 集成从一个 Fuse Online 环境复制到另一个 Fuse 在线环境。外部 CI/CD 工具可能是 Jenkins 作业、Ansible playbook、基于 cron
的 shell 脚本或其他内容。例如,Ansible playbook 可以从 Fuse 在线开发环境导出集成,并将它导入到 Fuse 在线测试环境。
要启用此功能,您必须为每个 Fuse 在线环境公开 Fuse Online 公共 REST API 端点。换句话说,您必须在安装 Fuse Online 的每个 OpenShift 项目中重复这个过程。
先决条件
- 您有一个 OCP 项目,在其中安装了 Fuse Online。
-
已安装
oc
客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。 - 您可以使用外部 CI/CD 工具,并希望将标记的集成从一个 Fuse 在线环境复制到另一个。
-
执行
syndesis-operator grant
命令需要集群管理特权。拥有 OpenShift 项目的管理特权但没有集群管理特权的用户可以执行其他命令。
流程
使用具有集群管理特权的帐户登录到 OpenShift。例如:
oc login -u admin -p admin
虽然只有
syndesis-operator grant
命令需要集群管理员特权,但这个过程假设集群管理员执行所有步骤。切换到运行 Fuse Online 的 OpenShift 项目。您只在此项目公开公共 API。例如:
oc project fuse-online-north
将角色授予
syndesis-public-oauthproxy
服务帐户。您的 OpenShift 项目使用此服务帐户运行 OAuth 代理服务。指定具有集群管理特权的用户帐户。例如:syndesis-operator 授予 --user developer
此命令创建并分配一个集群角色和集群角色绑定到
syndesis-public-oauthproxy
服务帐户。ClusterRoleBinding 指定您在其中公开 API 的 OpenShift 项目的名称,本例中为fuse-online-north
:-
ClusterRole:
syndesis-auth-delegator
-
ClusterRoleBinding:
syndesis-fuse-online-north-auth-delegator
-
ClusterRole:
创建客户端服务帐户,并授予它访问 Fuse Online 公共 API 的权限:
使用您选择的名称创建 OpenShift 服务帐户。例如,以下命令创建
cicd-client
服务帐户:oc create serviceaccountcd-client
调用公共 API 端点的命令使用该帐户访问公共 API。另外,您需要此服务帐户获取 secret 令牌,该令牌必须在对 API 端点的调用中指定。这在 获取用于调用 REST API 端点 的 secret 令牌 中进行了描述。
授予客户端服务帐户访问 Fuse 在线公共 API 的权限。如果
fuse-online-north
是安装 Fuse Online 的 OpenShift 项目的名称,并且 ifcd-client
是您用于访问 API 服务的服务帐户的名称,则您可以调用以下命令:oc policy add-role-to-user edit system:serviceaccount:fuse-online-north:cicd-client`
编辑
syndesis
自定义资源:调用以下命令,这通常会在编辑器中打开资源:
oc edit syndesis
编辑资源,使它启用公共 API,并指定 Fuse Online 环境的公共地址来调用端点,作为
routeHostname
的设置。(如果编辑到default-cr.yml
文件,用于安装 Fuse Online,启用公共 API 并指定端点的路由主机名,则不需要编辑资源。)集群设置决定了您需要指定的公共地址。详情请参阅 OpenShift 文档中有关路由的内容。在以下示例中,路由主机名对于 minishift 集群有效。
spec: addons: publicApi: enabled: true routeHostname: public-syndesis.192.168.64.63.nip.io
保存(或关闭)资源。
保存概要自定义资源会触发
syndesis
-operator如果您不需要编辑
syndesis
自定义资源,则代表公共 API OAuth 代理服务已被部署。这可能是因为publicApi
已启用,其路由在default-cr.yml
文件中指定,用于安装 Fuse Online。
结果
在 OpenShift 中,您可以看到:
-
用于概要的
、public-oauthproxy 部署配置的
Pod。 -
syndesis-public-oauthproxy
服务。 -
A
syndesis-public-api
route.
在执行此流程的 OpenShift 项目中,外部 CI/CD 工具可以使用 Fuse Online 公共 REST API 端点导出或导入 Fuse Online 集成。
后续步骤
- 标记导出到其他 Fuse 在线环境的集成。您可以在 Fuse Online 控制台中标记集成, 或 调用标记集成的 Fuse Online 公共 REST API 端点。
-
要确认公共 API 端点可用,调用
curl
命令返回环境名称。如需获取环境标签列表,请参阅 Endpoint。 - 配置外部工具来调用 Fuse Online 公共 REST API 端点。
4.2. Fuse Online 公共 REST API 端点的基本 URL 描述
Fuse Online 公共 REST API 端点的基本 URL 如下:
https://public-syndesis.192.168.64.42.nip.io/api/v1/public
基本 URL 的第一个部分因每个 Fuse 在线环境而异。当您创建运行 Fuse Online 公共 OAuth 代理的 OpenShift 应用程序时,它可以访问公共 REST API 端点,您可以指定 Fuse Online 环境的公共地址。此地址是调用该 Fuse Online 环境中操作的端点的基本 URL 的第一个部分。例如:
https://public-syndesis.192.168.64.42.nip.io
基本 URL 的第二部分与所有 Fuse 在线环境相同:
/api/v1/public
Fuse Online 公共 REST API 提供在三个资源上运行的端点:
-
/integrations
是 Fuse Online 环境中在基本 URL 中标识的集成。 -
/connections
是 Fuse Online 环境中在基本 URL 中标识的连接。 -
/environments
是 Fuse Online 环境中标识在基本 URL 中标识的环境标签集。
4.3. 获取用于调用公共 REST API 端点的 secret 令牌
调用 Fuse Online 公共 REST API 端点的命令必须指定一个机密令牌。此令牌适用于您在给定的 Fuse Online 环境中公开 Fuse Online 公共 REST API 时创建的服务帐户。
先决条件
- 您在 OCP 现场运行 Fuse Online。
- 您公开了由您要调用端点的 Fuse Online 环境提供的公共 REST API。
流程
获取您在公开此 Fuse Online 环境的公共 REST API 时所创建的服务帐户的 secret 令牌名称。例如,如果
cicd-client
是服务帐户的名称,您将调用以下命令:oc describe serviceaccountcd-client
这会显示有关您cd
-client
服务帐户的信息列表,其中包括其两个令牌的名称,如下所示:Tokens: cicd-client-token-gxb25 cicd-client-token-gxdnv
显示其中一个令牌的内容。例如:
oc describe secretcd-client-token-gxb25
这将显示信息列表,包括显示
token:
以及长系列随机字符的Data
部分。这是服务帐户的两个 secret 令牌中的一个。- 复制机密令牌,将其粘贴到文件中并保存。
结果
在 curl
命令中,指定 secret 令牌如下所示:
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA'
后续步骤
将已保存的文件中的令牌复制到调用给定 Fuse Online 环境中的公共 REST API 端点的命令。
4.4. 如何找到集成 ID
在一个命令中调用仅在特定集成上运行的 Fuse Online 公共 REST API 端点,您必须指定需要端点操作的集成的 ID。指定以下之一:
集成名称
您必须像在 Fuse Online 控制台中一样指定它,例如
计时器到log
。如果集成名称有空格或特殊字符,您必须指定 HTML 转义字符。内部集成 ID
当您查看集成概述时,此 ID 处于 Fuse Online 控制台 URL 中。要查看集成的摘要,请在左侧导航面板中点 Integrations。在集成列表中,点击所需 ID 的集成条目。
通过在浏览器中看到集成摘要,您会看到如下内容:
/integrations/i-Lauq5ShznJ4LcuWwiwcz
。这个集成的 ID 是i-Lauq5ShznJ4LcuWwiwcz
。
4.5. 指定调用 Fuse Online 公共端点的 curl
命令的格式
调用 Fuse Online public REST API 端点的 curl
命令具有以下格式:
curl [options] \ -H "Content-Type: <media-type>" \ -H "SYNDESIS-XSRF-TOKEN: awesome" \ -H `Authorization: Bearer <token>` \ <base-url><endpoint> \ [--request <HTTP-method>] \ [-d <data>] \ [-o <filename>]
表 4.1. curl
命令选项
选项 | 描述 |
---|---|
|
指定您选择的 |
|
对于导出和导入端点,请指定 |
| 为公开公共 REST API 时创建的 OpenShift 服务帐户指定机密令牌。 |
| 指定具有您希望端点操作的集成、连接或环境标签的 Fuse Online 环境的基本 URL。 |
| 指定您要调用的端点。 |
|
(可选)指定 HTTP 方法,例如 |
|
另外,根据要调用的端点,还可指定端点所需的参数。例如,要将集成的环境标签更改为 |
|
另外,如果您需要指定包含输出的文件的名称,请使用文件名指定 |
以下 curl
命令调用 Fuse Online 公共 API 端点,用于标记您指定的一个或多个环境集成:
curl -v -k -L -H "Content-Type: application/json" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA' https://public-syndesis.192.168.64.42.nip.io/api/v1/public/integrations/timer-to-log/tags -d '["test","staging"]' --request PUT
在示例 curl
命令中:
- 命令末尾的 URL 标识您正调用的 Fuse 在线环境。
-
timer-to-log
-
测试和
暂存
对这些环境的定时器集成
标记。
第 5 章 使用外部工具导出/导入 Fuse Online 集成,以便 CI/CD
当您在 OCP 上运行 Fuse Online 时,可能会具有您要进行特定集成的持续集成/持续部署(CI/CD)管道。实现这一点需要完成这些任务:
- 在 Fuse Online 控制台中,为 CI/CD 管道标记集成。
- 在 OpenShift 中,公开 Fuse Online 公共 API。
- 使用外部工具调用 Fuse Online 公共 API 端点来导出和导入集成。
详情请查看以下主题:
5.1. 关于为 CI/CD 标记集成
当您在 OCP 在线上运行 Fuse Online 时,若要识别管道的集成,请为您指定的 CI/CD 环境标记集成。这会对集成应用时间戳的标签。后端 CI/CD Fuse Online 公共 API 使用标签及其时间戳来过滤集成,以查找管道需要处理的集成。
例如,假设您在 Fuse Online 中标记了 test1
环境的集成。然后,您可以调用 Fuse Online 公共 API 导出端点来导出具有 test1
环境标签的集成。端点软件包 test1
集成至导出文件中,并返回该文件。要将 test1
集成复制到 Fuse Online 测试环境,您需要调用公共 API 导入端点,并提供包含导出的 test1
集成的文件。
现在假设您反复更新并发布您之前标记为 test1
环境的集成。您现在有新版本的集成,并将更新的版本导出到 test1
环境。您必须再次标记集成,即使它已标记为 test1
环境。标记集成会再次更新 test1
环境标签的时间戳。这代表外部工具已经更新,并准备好导出。
要再次标记集成,即要在已分配给集成的环境标签上刷新时间戳,请开始标记为 CI/CD 集成的步骤。在 CI/CD 对话框中,单击 Save,因为已选中所需环境的复选框。
5.2. 为 CI/CD 标记集成
当您在 OCP 在线上运行 Fuse Online 时,若要识别管道的集成,请为您指定的 CI/CD 环境标记集成。这会对集成应用标签。
前提条件
您有一个 OCP 项目,在其中安装了 Fuse Online。
流程
- 在左侧的 Fuse Online 导航面板中,单击 Integrations。
- 在集成列表中,在您要标记的集成右侧,点 显示弹出菜单并点 Manage CI/CD。
在出现的对话框中,进行一个或多个操作:
- 如果已存在您要标记此集成的环境,请选择该环境左侧的复选框。
- 如果已选择要标记此集成的环境,请将其选中。
- 如果需要为环境创建一个标签,请单击 Manage CI/CD,它会显示创建新环境标签的对话框。创建您需要的标签,然后返回到此流程来标记集成。
Fuse Online 将所选环境标签应用到集成。您可以将任意数量的环境标签应用到集成。
- 点击 Save。
结果
Fuse Online 为所选环境中的发行版本的集成标签。后端 API 可以过滤集成,以查找具有 test1 标签的集成。
后续步骤
您必须公开 Fuse Online 公共 API 端点,然后才能在为某个特定环境执行标记的集成。请参阅 公开 Fuse Online 公共 REST API,以供外部工具 使用。
5.3. 为 CI/CD 管理环境标签
在 Fuse Online 控制台中,您可以创建、更改或删除 CI/CD 环境标签。CI/CD 环境标签是您可以应用到集成的标签,以为 CI/CD 管道标识它们。
先决条件
- Fuse Online 正在 OCP 现场运行。
- 外部工具使用 Fuse Online 环境标签来识别 CI/CD 管道的集成。
流程
- 在 Fuse Online 中,在左侧导航面板中,单击 Integrations。
- 在右上角,单击 Manage CI/CD。
在 Manage CI/CD 页面中:
创建 CI/CD 环境标签:
- 单击 Add New。
- 在 Add Tag Name 对话框中,在 Tag Name 输入新环境标签的名称,如 test1。
- 点击 Save。在 Manage CI/CD 页面中,您刚刚添加的环境标签有一个新条目。
要更改 CI/CD 环境标签:
- 在 CI/CD 环境标签列表中,在您要更改的标签的条目中,点 Edit。
- 在 Edit Tag 对话框中,根据需要更改名称。
- 点 Save 以查看环境标签列表中更新的名称。Fuse Online 将更新的名称应用到每个已标记为您更改的环境标签的集成。
删除 CI/CD 环境标签:
- 在 CI/CD 环境标签列表中,在您要删除的标签的条目中,点 Remove。
- 在确认对话框中,单击 是。Fuse Online 删除环境标签,同时从已标记的任何集成中删除已删除的环境标签。
后续步骤
标记与新环境标签集成。请参阅 标记 CI/CD 集成。
5.4. 调用 Fuse Online 公共 API 导出端点
在使用外部工具将 Fuse Online 集成从一个 Fuse 在线环境复制到另一个版本之前,必须完成以下任务:
在 Fuse Online 中,需要为 CI/CD 管道导出的集成必须标记为特定环境。请参阅 标记 CI/CD 集成。
此要求有一个例外。当您希望在一个导出操作中导出 Fuse Online 环境中的所有集成时,无论是否将集成标记为特定环境。
- 您公开了 Fuse Online 公共 API。请参阅为外部工具公开 Fuse Online 公共 API 端点。
用于导出特定环境的集成端点
要导出已标记为特定环境的集成,Fuse Online 提供以下 GET
方法端点:
/public/integrations/{env}/export.zip
使用您创建的 CI/CD 环境标签替换 {env}
。当某个集成标记为特定环境时,Fuse Online 维护一个时间戳,表示它何时被标记。默认行为是端点仅在未导出自标记以来才导出集成。例如,要导出已标记为 test1
环境的集成,端点为:
/public/integrations/test1/export.zip
此端点导出具有 test1
环境标签且满足以下任一条件的每个集成:
-
自上次导出后,该集成已标记为
test1
环境。 -
该集成已标记为
test1
环境,它从未导出。
端点打包了 export.zip
文件中的集成并返回该文件。
如果自上次导出集成以来,未标记标记指定环境的集成,则端点会返回 HTTP 204
响应,以指示没有返回任何操作。
用于导出指定环境标记的所有集成的端点
您可以调用导出端点,以便它将所有集成到 Fuse Online 环境中,并带有您指定的环境标签。端点将导出集成,无论它是否标记了指定环境,自上次导出集成的时间。这样便可轻松地重复在另一个 Fuse Online 环境中带有特定标签的所有集成。要做到这一点:
- 您必须已创建了 environment 标签。请参阅 标记 CI/CD 集成。
-
在调用导出端点时,添加
ignoreTimestamp=true
选项。
例如:
/public/integrations/test1/export.zip?ignoreTimestamp=true -o export.zip
用于导出所有集成的端点
您可以调用导出端点,以便它在一个 Fuse 在线环境中导出所有集成。这样便可轻松地在另一个 Fuse 在线环境中重复所有集成。要做到这一点:
- 您必须已创建了 environment 标签。请参阅 标记 CI/CD 集成。
-
将
all=true
选项添加到导出端点的调用。
例如:
/public/integrations/{env}/export.zip?all=true
使用 CI/CD 环境标签替换 {env}
。端点将指定的环境标签分配给尚未为该环境标记的每个集成。
添加 all=true
选项时,还必须明确指定要打包在 export.zip
文件中导出的集成。例如:
/public/integrations/test1/export.zip?all=true -o export.zip
此调用端点:
-
标记
test1
环境的每个集成。 返回
export.zip
文件中的所有集成。如果您没有指定
-o export.zip
选项,则端点会返回其名称为export.zip?all=true
的文件。
导出端点所需的自定义标头
调用导出端点的命令必须完全指定这些自定义标头:
-
-H "Content-Type: multipart/form-data"
-H "SYNDESIS-XSRF-TOKEN: awesome"
Fuse 在线公共 API 需要此标头来验证请求。
-H 'Authorization: Bearer <token>'
将
<
;token> 替换为您在创建用来公开 Fuse Online 公共 API 的 OpenShift 服务账户时复制到文件中的机密令牌。
导出集成的 curl
命令示例
以下是一个 curl
命令示例,它调用 Fuse Online API 端点来导出集成:
curl -v -k -L -H "Content-Type: multipart/form-data" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA' https://public-syndesis.192.168.64.42.nip.io/api/v1/public/integrations/dev1/export.zip
在命令中:
- 命令末尾的 URL 识别 Fuse 在线环境,从其中导出集成。
-
dev1
环境标签的规格表示您要导出已标记为dev1
环境的集成,并且尚未在标记后导出它们。
5.5. 调用 Fuse Online 公共 API 导入端点
您可以通过调用 Fuse Online 公共 API 导出端点来获取一个或多个集成。要将导出的集成复制到另一个 Fuse 在线环境,可调用 Fuse Online 公共 API 导入端点。
导入集成的端点
要导入集成,Fuse Online 提供了以下 POST
方法端点:
/public/integrations
在以下示例中,端点导入位于 export.zip
文件中的集成,并为 测试环境标记它们
:
/public/integrations -F data=@export.zip -F environment=testing --request POST
导入端点始终导入提供的集成。也就是说,即使集成自导入时没有改变,端点仍会导入它。
导入端点所需的自定义标头
调用导入端点的命令必须正确指定这些自定义标头:
-
-H "Content-Type: multipart/form-data"
-H "SYNDESIS-XSRF-TOKEN: awesome"
Fuse 在线公共 API 需要此标头来验证请求。
-H 'Authorization: Bearer <token>'
将
<
;token> 替换为您在创建用来公开 Fuse Online 公共 API 的 OpenShift 服务账户时复制到文件中的机密令牌。
导入集成的 curl
命令示例
以下是一个 curl
命令示例,它调用了导入集成的 Fuse Online API 端点:
curl -v -k -L -H "Content-Type: multipart/form-data" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA' https://public-syndesis.192.168.64.45.nip.io/api/v1/public/integrations -F data=@export.zip -F environment=testing --request POST
在这个命令中:
- 命令末尾的 URL 标识将集成导入到的 Fuse 在线环境。
-
export.zip
文件包含要导入的集成。 -
environment=
的规格会导致端点标记每个导入的开发环境集成。testing
-
该命令会产生
多部分/信息数据
。
第 6 章 Fuse Online 公共 REST API 端点参考
本节为每个 Fuse Online 公共 REST API 端点提供参考信息。如需更多信息,请参阅如何调用 Fuse Online 公共 REST API 端点。
在 https://<fuse-online-host>/api/v1/openapi.json
的 Fuse Online 环境中提供了用于定义公共 REST API 端点的 OpenAPI 文档。但是,此文档将 标签对象定义
为带有三个标签: public-api
、extensions
和 integration-support
。在将 OpenShift 公共 OAuth 代理进程用于 Fuse Online 时,只有 public-api
标签才能被访问。您应该会忽略另外两个标签。
- 第 6.1 节 “获取集成状态的端点”
- 第 6.2 节 “获取集成环境标签列表的端点”
- 第 6.3 节 “标记集成并保持未指定标签的端点”
- 第 6.4 节 “标记集成并删除未指定标签的端点”
- 第 6.5 节 “发布集成的端点”
- 第 6.6 节 “停止集成的端点”
- 第 6.7 节 “用于导出集成的端点”
- 第 6.8 节 “导入集成的端点”
- 第 6.9 节 “从特定集成中删除环境标签的端点”
- 第 6.10 节 “创建环境标签的端点”
- 第 6.11 节 “获取环境标签列表的端点”
- 第 6.12 节 “更改环境标签的端点”
- 第 6.13 节 “用于从所有集成中删除环境标签的端点”
- 第 6.14 节 “更改连接属性的端点”
6.1. 获取集成状态的端点
此端点返回指定集成的状态。状态为 Running、Stopped、Pending 或 Error。
方法和端点
GET
/public/integrations/{id}/state
表 6.1. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 所需的路径参数。您要获取的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
请求示例
在以下示例中,端点返回 timer-to-log
集成的状态:
/public/integrations/timer-to-log/state
produces
application/json
响应示例
{"currentState":"Unpublished","stateDetails":{"id":"i-Lc0JLrsUFtBJfR_ylfEz:5","integrationId":"i-Lc0JLrsUFtBJfR_ylfEz","deploymentVersion":5,"detailedState":{"value":"BUILDING","S tep":2,"totalSteps":4},"namespace":"syndesis","podName":"i-timer-to-log-5-build","linkType":"LOGS"}}'
6.2. 获取集成环境标签列表的端点
此端点返回已应用于指定集成的环境标签(标签)。
方法和端点
GET
/public/integrations/{id}/tags
表 6.2. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 所需的路径参数。您要获取的环境标签的名称或内部 ID。如何查找集成 ID。 |
请求示例
在以下示例中,端点返回 timer-to-log
集成的环境标签:
/public/integrations/timer-to-log/tags
produces
application/json
响应示例
{"test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159,"lastExportedAt":1554887330152,"lastImportedAt":1554888047271},"staging":{"name ":"staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159}}
6.3. 标记集成并保持未指定标签的端点
此端点使用 PATCH
方法为指定环境标记指定的集成。如果集成已标记为指定的环境,端点会更新该环境标签的时间戳。如果集成之前标记为没有在新请求中指定的环境,端点将保留该标签,且不会更新其时间戳。
此 PATCH
端点是 CI/CD 工具的一个方便的方法,因为它在不需要删除任何其他现有标签的情况下添加标签。这与 PUT
端点不同,它会标记指定环境的集成,并为请求中指定的环境删除所有标签。
方法和端点
PATCH
/public/integrations/{id}/tags
表 6.3. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要为指定环境标记的集成名称或内部 ID。请参阅 如何查找集成 ID。 |
其他参数 | ||
|
|
指定 |
| 字符串 | 必需。指定您要添加到指定集成中的一个或多个以逗号分隔的环境标签。您必须已创建了 environment 标签,端点无法创建标签。请参阅 CI/CD 标记集成。 |
请求示例
在以下示例中,端点标记 test2
和 test3
环境的 计时器到日志
集成:
public/integrations/timer-to-log/tags --request PATCH -d '["test2","test3"]'
produces
application/json
响应示例
{"test2":{"name":"test2","releaseTag":"i-LcXydouUFtBJfR_ylgrz","lastTaggedAt":1555365010746},"test3":{"name":"test3","releaseTag":"i-LcXydouUFtBJfR_yl_yl gsz","lastTaggedAt":1555365010746},"test":{"name":"test":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159"lastExportedAt":1554887330152"lastImport edAt":1554888047271},"staging":{"name":"staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159}}
6.4. 标记集成并删除未指定标签的端点
此端点使用 PUT
方法为指定环境标记指定的集成。如果集成之前为新请求中指定的环境标记,端点会从集成中移除该环境。
要在不删除未指定环境标签的情况下标记集成,请调用 PATCH
方法端点。
方法和端点
PUT
/public/integrations/{id}/tags
表 6.4. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要标记的集成的名称或内部 ID。请参阅 如何找到集成 ID。 |
其他参数 | ||
|
|
指定 |
| 字符串 | 必需。指定一个或多个以逗号分开的环境标签。端点标记这些环境指定的集成。您必须已创建了 environment 标签,端点无法创建标签。请参阅标记 CI/CD 的集成。 |
请求示例
在以下示例中,端点标记 test2
和 test3
环境的 计时器到日志
集成。如果集成之前标记为任何其他环境,端点会从集成中删除这些标签。
public/integrations/timer-to-log/tags --request PUT -d '["test2","test3"]'
produces
application/json
响应示例
{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt":15553655713},"test3":{"name":"test3","releaseTag":"i-LcXyw7GUFtBJfR_ylguz","lastTagAt":15155713}
6.5. 发布集成的端点
此端点发布指定的集成。如果集成已在运行,则端点将停止集成并重新发布。
方法和端点
POST
/public/integrations/{id}/deployments
表 6.5. 参数
名称 | 类型 | 描述 |
---|---|---|
required Header Parameter | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要发布的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
请求示例
在以下示例中,端点发布 timer-to-log
集成。
/public/integrations/timer-to-log/deployments
produces
application/json
响应示例
在本例中,ellipsis 指示某些响应的省略。
{"ID":"i-Lc0JLrsUFtBJfR_ylfEz:8","version":8,"createdAt":1555365135324,"updatedAt":1555365135324,"userId":"system:serviceaccount:syndesis:syndesis-cd-client","current State":"Pending","targetState":"Published","integrationId":"i-Lc0JLrsUFtBJfR_ylfEz", ..2c+PC9zdmc+","description":"Trigger 事件基于间隔或 cron 表达式","isDerived":false},"stepKind":"endpoint"},{"id":"-Lc0I7wqEVfKCDDHC8Jv","configuredProties":{"bodyLoggingEnabled":" true","contextLoggingEnabled":"true"},"metadata":{"configured":"true"},"stepKind":"log","name":"Log"}]}],"continuousDeliveState":{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt15 55365085713},"test3":{"name":"test3","releaseTag":"i-LcXyw7GUFtBJfR_ylguz","lastTaggedAt":1555365085713}}}}
6.6. 停止集成的端点
此端点将停止指定的集成。
方法和端点
PUT
/public/integrations/{id}/deployments/stop
表 6.6. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要停止的集成的名称和内部 ID。请参阅 如何查找集成 ID。 |
请求示例
在以下示例中,端点将停止 timer-to-log
集成。
/public/integrations/timer-to-log/deployments stop
produces
application/json
响应示例
没有 204
状态代码的内容
6.7. 用于导出集成的端点
此端点将导出集成。默认行为是端点导出已标记为指定环境的集成,并且从未导出或者自上次标记了该环境后未导出。您可以在要执行以下任一操作时指定选项:
- 导出 Fuse Online 环境中的所有集成,并使用指定的环境标签标记它们。
- 导出所有带有指定环境标签的集成,无论是否自上次导出时间被更新并标记了集成。
另请参阅: 调用 Fuse Online 公共 API 导出端点。
方法和端点
GET
/public/integrations/{env}/export.zip
表 6.7. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。在 Fuse 在线控制台中创建的环境标签。端点会导出标记为此环境的集成。 |
查询参数 | ||
| 字符串 | 可选。指定此选项,以导出位于 Fuse Online 环境中的所有集成。端点会导出每个集成的当前版本。如果集成还没有标记为指定环境,则端点会将指定的环境标签添加到集成中。您必须已创建了 environment 标签,端点无法创建标签。 |
| 字符串 | 导出带有指定环境标签标记的所有集成。无论在上次导出集成之后,是否编辑并标记集成。 |
附加参数 | ||
| 字符串 |
指定查询参数时需要。如果没有这个选项,导出的集成位于名为 |
请求示例
在第一个示例中,端点将导出已标记为 test1
环境的集成,并且从未导出或者自上次标记了该环境后未导出的集成。
/public/integrations/test1/export.zip
在下一个示例中,端点将导出已标记为 test1
环境的所有集成。从上次导出后,集成是否已经更新。
/public/integrations/test1/export.zip?ignoreTimestamp=true -o export.zip
在最后一个示例中,端点确保每个集成都标记为 test1
环境,并返回 export.zip
文件中的所有集成。
/public/integrations/test1/export.zip?all=true -o export.zip
produces
application/octet-stream
响应
export.zip
文件,其中包含导出的集成。如果没有要导出的集成,端点会返回 HTTP 状态 204
。
6.8. 导入集成的端点
此端点将导入在提供的文件中。另请参阅: 调用 Fuse Online 公共 REST API 导入端点。
方法和端点
POST
/public/integrations
表 6.8. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
其他参数 | ||
| 字符串 | 必需。这是包含您要导入的集成的文件。您必须之前调用导出端点来获取此文件。 |
| 字符串 | 必需。要添加到每个导入的集成中的环境标签。您必须已创建了 environment 标签,端点无法创建标签。 |
请求示例
在以下示例中,端点导入位于 export.zip
文件中的集成,并为 测试环境标记它们
。
/public/integrations -F data=@export.zip -F environment=testing --request POST
produces
multipart/form-data
响应示例
响应是导入的资源列表,其中包括集成和连接。在以下示例中,ellipsis 表示此省略了部分响应。
{"lastImportedAt":1554888047271,"results":[{"id":"i-Lc0JLrsUFtBJfR_ylfEz","version":5," createdAt":1554800274935,"updatedAt":0,"tags":["timer"]"name":"timer- to-log","flows":[{"id":"-Lc0I5AZEVfKCDDHC8Jv","steps":[{"id":"-Lc0I5jnEVfKCDDHC8Jv","configuredProperties":{"period":"900000"}"metadata":…"description":" 根据间隔或 cron 表达式","isDerived":false} 触发事件,"stepKind":"endpoint"}, {"ID":"-Lc0I7wqEVfKCDDHC8Jv","configuredProperties":{"bodyLoggingEnabled":"true"},"metadata":{"configured":"true"},"stepKind":"log","name":"Log"}]}],"continuousDeliveryState":{"staging":{"name":"staging":{"name":" staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159}"test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAtgz","lastTaggedAt ":1554887553159"lastExportedAt":1554887330152"lastImportedAt":1554887859824}}}
6.9. 从特定集成中删除环境标签的端点
此端点从指定的集成中删除指定的环境标签。环境标签本身仍然存在,但它不再标记指定的集成。
方法和端点
删除
/public/integrations/{id}/tags/{env}
表 6.9. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 所需的路径参数。要取消标记的集成名称或内部 ID。请参阅 如何查找集成 ID。 |
| 字符串 | 所需的路径参数。要从指定集成中删除的环境标签。 |
附加参数 | ||
|
|
指定 |
请求示例
在以下示例中,端点从 timer-to-log
集成中删除了 dev1
环境标签。
/public/integrations/timer-to-log/tags/dev1 --request DELETE
响应示例
没有 204
状态代码的内容
6.10. 创建环境标签的端点
此端点会创建一个环境标签。除非您在 Fuse Online 控制台中明确标记或调用公共 API 端点,不会使用这个标签进行集成。
方法和端点
POST
/public/environments/{env}
表 6.10. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要创建的环境标签。 |
produces
不生成任何内容,但按如下方式进行响应:
响应 | 描述 |
---|---|
| 成功. |
| 您指定的环境名称已存在。 |
| 服务器无法履行请求。 |
请求示例
在以下示例中,端点创建 dev1
环境标签:
/public/environments/dev1 --request POST
dev1
环境标签现在存在于您调用此端点的 Fuse Online 环境中。还没有标记有此标签的任何集成。
响应示例
没有响应状态代码 204
的内容
6.11. 获取环境标签列表的端点
此端点返回 Fuse Online 环境中存在的环境标签列表。您可以在 Fuse Online 控制台中创建环境标签。请参阅为 CI/CD 管理环境标签。
方法和端点
GET
/public/environments[?withUses=true]
表 6.11. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 布尔值 |
可选。如果命令 |
produces
application/json
请求示例
/public/environments
响应示例:
["env-label-1", "env-label-2"]
/public/environments/?withUses=true
Response example
[{"name":"env-label-1","uses":1},
{"name":"env-label-2","uses":0}]
6.12. 更改环境标签的端点
此端点会更改环境标签。标记为原始环境标签的集成现在标记为新的环境标签。
方法和端点
PUT
/public/environments/{env}
表 6.12. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要更改的环境标签。 |
其他参数 | ||
| 字符串 | 必需。指定环境的新标签。您必须已创建了 environment 标签,端点无法创建标签。 |
|
|
指定 |
请求示例
在以下示例中,端点将 dev1
环境标签更改为 dev2
:
/public/environments/dev1 -d ‘dev2’ --request PUT
为 dev1
环境标记的集成不再具有该标签。现在,这些集成被标记为 dev2
环境。
响应示例
没有响应状态代码 204
的内容
6.13. 用于从所有集成中删除环境标签的端点
此端点从应用的每个集成中删除指定的环境标签。
方法和端点
删除
/public/environments/{env}
表 6.13. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。您要从具有它的集成中删除的环境标签。 |
附加参数 | ||
|
|
指定 |
请求示例
在以下示例中,端点从具有它的任何集成中删除 dev1
标签:
/public/environments/dev1 --request DELETE
响应示例
没有响应状态代码 204
的内容
6.14. 更改连接属性的端点
此端点会更改指定连接的属性。当您导入具有需要配置的连接的集成后,这通常很有用。例如,可能需要更改连接使用的凭据。
方法和端点
POST
/public/connections/{id}/properties
表 6.14. 参数
名称 | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online public REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 |
必需。将
|
请求示例
以下示例更改了 PostgresDB
连接的属性。user
属性的新值为 myuser
,密码
属性的新值为 mypassword
:
/public/connections/PostgresDB/properties --request POST -d '{ "user": "myuser", "password": "mypassword" }'
produces
application/json
响应示例
在本例中,有一个 ellipsis 表示大量响应中的省略。
{"uses":0,"id":"i-LaOziUGpQE45nua4pfCz","name":"TODO app","configuredProperties":{"password":"»ENC:c2cb731046372a275b76beabc92aefa061f79b43fb791fb599d9e85ec0235a7e","Path":"base":"/api","host":"specifichttp://todo-syndesis.my-minishift.syndesis.io/","specification":userIdd","last629,9657"," "createdDate":1553066813379,"board":{"id":"i-Lbj4-vqUFtBJfR_ylfCz","metadata":{"connector-id":"i-LaOzcPZpQE45nua4pfBz","connector-version-latest":"1","connector-version-connection":"1"}, "messages":[{"level":"WARN","code":"SYNDESIS007"}],"createdAt":1554494263030,"updatedAt":1554494263727,"targetResourceId":"i-LaOziUGpQE45nua4pfCz","notices":0,"warnings":1, "errors":0},"isDerived":false}
第 7 章 重新浏览 Fuse Online 用户界面
您可以通过替换 Fuse Online 应用程序名称、徽标、图标和其他用户界面详情来重新浏览 Fuse Online。您可以通过在 syndesis-ui
部署文件中将自定义资源挂载为 ConfigMap
对象来完成此操作。
先决条件
- Fuse Online 已安装并在 OpenShift Container Platform 现场在客户管理的环境中运行。
-
oc
客户端工具连接到安装 Fuse Online 的 OCP 集群。 - 有安装 Fuse Online 的权限。
流程
通过调用以下命令,获取安装 Fuse Online 的
syndesis-ui
pod 的名称:oc get pods
通过调用以下命令并将 SYNDESIS_UI_POD_NAME 替换为运行
syndesis-ui
的 pod 的实际名称,获取可自定义的徽标、图标、字体和背景信息:oc rsync SYNDESIS_UI_POD_NAME:/opt/app-root/src/static/media ~/
这会将用户界面资源放在
~/media/
文件夹中。-
编辑并保存包含标头徽标的文件,该文件为
~/media/syndesis_logo_full_darkbkg.9c467d96.svg
。 通过创建一个包含更新的徽标文件的
ConfigMap
对象,将修改后的文件上传到集群:cd ~/ oc create configmap syndesis-ui-custom-logo --from-file=media/syndesis_logo_full_darkbkg.9c467d96.svg
修改
syndesis-ui
部署文件,以挂载syndesis-ui-custom-logo
ConfigMap
对象。通过调用oc edit dc/syndesis-ui
或使用 OpenShift web 控制台,选择 Applications > Deployments > syndesis-ui > Actions > Edit YAML 来完成此操作。在
spec.template.containers.volumeMounts
下添加以下内容:-name: syndesis-ui-custom-logo-volume mountPath: /opt/app-root/src/static/media/syndesis_logo_full_darkbkg.9c467d96.svg subPath: syndesis_logo_full_darkbkg.9c467d96.svg
在
spec.template.volumes
下,添加以下内容:-name: syndesis-ui-custom-logo-volume configMap: name: syndesis-ui-custom-logo
-
保存
syndesis-ui
部署文件。
-
对位于
'~/media
文件夹和您要自定义的每个文件重复第 3 到 5 步。 编辑并保存包含应用程序标题的文件:
创建用于更新文件的目录:
mkdir ~/syndesis-custom/src
通过调用下面的命令来获取应用程序标题文件,并将 SYNDESIS_UI_POD_NAME 替换为运行
syndesis-ui
的 pod 的实际名称:oc rsync SYNDESIS_UI_POD_NAME:/opt/app-root/src/index.html ~/syndesis-custom/src
替换应用程序标题。例如:
sed -i 's/<title>.*<\/title>/<title>NEW_TITLE<\/title>/g' ~/syndesis-custom/src/index.html
通过创建一个包含更新文件的
ConfigMap
对象,将修改的应用程序标题文件上传到集群:cd ~/syndesis-custom/src oc create configmap syndesis-ui-custom-index --from-file=index.html
通过挂载
syndesis-ui
-index ConfigMap 对象来修改syndesis-ui-ui-index
ConfigMap
对象:在
spec.template.containers.volumeMounts
下添加以下内容:-name: syndesis-ui-custom-vindex-olume mountPath: /opt/app-root/src/index.html subPath: index.html
在
spec.template.volumes
下,添加以下内容:-name: syndesis-ui-custom-index-volume configMap: name: syndesis-ui-custom-index
-
保存
syndesis-ui
部署文件。
结果
保存 syndesis-ui
部署文件,带有反映您更改的用户界面自动重新部署 Fuse Online。Fuse Online 的后续重新部署也反映了您的更改。