在 OpenShift Container Platform 上安装和操作 Fuse Online
为 CI/CD 管道安装、配置和升级 Fuse Online 和导出/导入集成
摘要
前言
您可以在 OpenShift Container Platform (OCP)上安装和操作 Fuse Online on-site。当 Fuse Online 运行现场时,其他功能超出了 Fuse Online 在 OpenShift Dedicated 上运行时提供的功能。
现场 术语意味着客户管理的环境;红帽不管理 OpenShift 环境。客户管理的环境可以是内部环境、云中或混合云。
详情请查看以下主题:
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看我们的 CTO Chris Wright 信息。
第 1 章 在 OCP 4.x 上安装 Fuse Online
Fuse Online 是一个灵活、可自定义的开源平台,提供核心集成功能作为服务。
Fuse Online 的每个安装都被称为 Fuse Online 实例(或环境)。在给定的 OpenShift 项目中,可以只有一个 Fuse Online 实例。每个 Fuse Online 实例都有自己的 URL。在单一 OpenShift 集群中,可以有多个 Fuse Online 实例。
如果您有从 OperatorHub 安装操作器的适当权限,您可以作为 OpenShift 开发人员用户安装 Fuse Online。您可以安装默认的 Fuse Online 实例或自定义 Fuse Online 实例。对于自定义的 Fuse Online 实例,您必须编辑默认自定义资源。
Fuse Online 安装过程需要访问 registry.redhat.io,这是适用于容器镜像的红帽生态系统目录。
以下主题提供了安装 Fuse 在线的详情:
1.1. 在 OCP 4.x 上安装 Fuse Online 所需的步骤概述
要在 OCP 4.x 上安装 Fuse Online,以下是主要步骤:
- 生成 OpenShift secret,以配置红帽容器镜像的身份验证。
- 将 Fuse Online Operator 从 OperatorHub 安装到集群上的项目(命名空间)。
- 另外,如果要包含用于持久连接和集成定义的外部数据库,请创建一个 OpenShift secret。
将 Fuse Online 实例添加到 OpenShift 4.x 项目。
(可选)编辑自定义资源,以启用一个或多个附加组件功能和/或实现一个或多个自定义配置设置。
- (可选)向其他开发人员用户授予权限,以便他们能够访问 Fuse 在线 Web 控制台。
1.1.1. 在受限环境中安装 Fuse Online 的注意事项(OCP 4.6 及更新的版本)
在受限环境中安装 Fuse Online 之前,您必须完成以下任务:
- 将所有 Fuse Online 镜像镜像(mirror)到专用网络上可用的位置。有关在受限网络中为 OpenShift Operator 安装镜像的更多信息,请参阅 OpenShift 文档中的 在受限网络中使用 Operator Lifecycle Manager 部分。
- 使用 Fuse 存储库内容设置自定义 Maven 存储库。有关详细信息,请参阅红帽解决方案"如何为 Fuse 7 创建离线 Maven 存储库" https://access.redhat.com/solutions/3746581。
编辑 Fuse Online 自定义资源,如 在安装 Fuse Online 前编辑默认自定义资源文件 中所述:
使用
mavenRepositories
设置来指定离线 Maven 存储库,以便 Fuse Online 在开发人员构建并运行集成时能够获取所需的依赖项。在以下示例中,将
customRepo
替换为离线 Maven 存储库的名称,并将https://customRepo
替换为离线仓库的 URL:components: server: features: maven: repositories: customRepo: https://customRepo
通过将
enabled
的值改为 false 来禁用todo
addon。spec: addons: todo: enabled: false
在受限环境中安装 Fuse Online 后,您可以选择从 https://github.com/syndesisio/todo-example 下载 todo
应用程序,并按照 Readme 文件中的步骤操作,将存储库 URL 更改为私有网络上可用的位置。
1.2. 在安装 Fuse Online 之前,需要编辑默认自定义资源
Fuse Online 安装包含一个默认自定义资源,用于指定可配置 Fuse Online 环境附加组件的功能和参数设置的默认设置。
如果您希望安装的 Fuse Online 环境,在安装 Fuse Online 之前,您需要编辑默认自定义资源:
- 使用您为可访问 Fuse Online 控制台的 OpenShift 路由指定的 URL。默认为安装过程计算此路由。
- 使用外部数据库来存储连接和集成定义。默认值是环境使用内部数据库。
-
增加可用于持久连接和集成定义的内部存储量。默认值为
1Gi
,对于大多数 Fuse Online 环境来说都足够了。
要为其中任何一种行为配置 Fuse Online 环境,您必须在安装 Fuse Online 时编辑自定义资源。换句话说,您无法更改已安装的 Fuse 在线环境的配置,以实施其中任何一种行为。另外,在安装为任何这些行为配置的 Fuse Online 环境后,您无法更改安装环境中的该行为。
1.3. 配置 Fuse Online 的自定义资源属性的描述
除了仅在安装前可以指定的自定义资源属性外,您还可以在安装之前或安装后更改多个自定义资源属性。
表 1 提供了可配置的自定义资源设置的简短描述,并指示何时可以更改它们: before 和/或安装后。要实现您想要的 Fuse Online 配置,请使用此表中的信息来确定如何在安装前更改自定义资源,或者如何在安装后更改自定义资源。然后按照适当的步骤操作:
对于 OCP 4.x:
对于 OCP 3.11:
功能/设置 | 当可以设置它时 | 规格 |
---|---|---|
此表 介绍了与增强活动跟踪相关的更多活动跟踪信息。 | 仅在安装前设置 |
增强的活动跟踪功能会被默认启用。如果要自定义 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 存储库 | 在安装后设置或安装后 |
|
监控 | 在安装后设置或安装后 |
|
公共 REST API | 在安装后设置或安装后 |
|
demoData | 在安装后设置或安装后 |
如果将 |
Todo 应用程序 | 在安装后设置或安装后 |
|
Auditing 查看对连接器、连接和集成的基本更改。 另请参阅 审计 Fuse 在线组件。 注意:这是一个技术预览功能。 | 在安装后设置或安装后 |
|
关于附加组件功能和配置设置
增强的活动跟踪
在安装 Fuse Online 时,默认启用活动跟踪。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 在线安装的此设置。也就是说,您已运行另一个 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 是用于在分布式服务间追踪事务的开源软件。它对监控复杂微服务环境并进行故障排除特别有用。
当您从 OperatorHub 或使用命令行脚本安装 Fuse Online 时,Fuse Online 安装会检测到 OperatorHub 的存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情况,Fuse Online 使用自己的安装功能来安装 Jaeger。
默认 Fuse Online 环境配置所有所需的 Jaeger 组件。另外,您可以编辑 Fuse Online 自定义资源,以指定客户端/独立服务器配置或混合 Jaeger 客户端和 Jaeger Operator 配置。
默认 Jaeger 配置
基本的开箱即用配置包含所有 Jaeger 组件。您可以通过实验其监控功能来开始了解 Jaeger 的工作原理。默认配置提供仅内存、有限的后端存储功能。
使用默认 Jaeger 配置安装 Fuse Online 有以下结果:
- Fuse Online 组件具有 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 )use Online 使用提供的 Jaeger 后端以及 Jaeger 服务器提供的默认仅内存存储。
仅客户端/独立于客户端的服务器配置
使用客户端/独立服务器配置时,只会为 Fuse Online 和外部配置的 Jaeger 后端之间的通信配置客户端 URL 连接。Jaeger 后端的所有方面都是外部的,独立于 Fuse Online 环境和 syndesis-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
,如 客户端/独立于服务器配置部分所述。
当创建 Jaeger 自定义资源与 syndesis-jaeger
名称时,Jaeger 实例会从 Fuse Online 集成收集数据。默认情况下,您可以在 Fuse 在线活动日志中查看此数据。
1.5. 使用外部数据库安装 Fuse Online
如果要安装使用外部数据库来持久连接和集成定义的 Fuse Online 环境:
- 使用 OpenShift 集群可以找到的主机名创建一个 postgreSQL 数据库。
-
在安装 Fuse Online 之前,为外部数据库创建一个名为
syndesis-global-config
的 OpenShift secret。 - 在线安装 Fuse.
- 在部署 Fuse Online 之前,请编辑自定义资源以配置外部数据库的连接。
先决条件
-
对于 OCP 3.11,您编辑了
default-cr.yml
文件,以指定外部数据库的使用来持久连接和集成定义。 - Fuse Online 尚未安装。
-
已安装
oc
客户端工具,并将其连接到您要安装 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
流程
使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:
oc login -u developer -p developer
创建一个 postgreSQL 数据库,供您在其上安装 Fuse Online 的 OpenShift 集群,并定义以下配置选项的值:
- 连接用户名
- 数据库名称
数据库密码
以下示例使用了 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
替换为您要为其指定外部数据库的 Fuse Online 环境安装的 OpenShift 项目的名称。将
exdb-pw
替换为第 2 步中的密码。Fuse Online 将将其用作访问外部数据库的密码。请注意,stringData
会将 password 值转换为 base64 编码的值(因此您不必进行转换)。如需有关 OpenShift 机密的信息,请参阅 Secret。
将 secret 添加到集群中,例如:
oc apply -f my-fuse-online-secret-cr.yml
在 OpenShift 集群中,可通过使用指定外部数据库的自定义资源安装的 Fuse Online 环境使用
syndesis-global-config
secret。在您在 secret 的
YAML
文件中指定的my-fuse-online-project
项目中安装 Fuse Online (在第 4 步中)。- 对于 OCP 3.11,在安装 Fuse Online 前,按照编辑默认 自定义资源文件中的说明进行操作。
对于 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 会调出所有所需的 pod,但 syndesis-db
除外。syndesis-db
不是 syndesis-
db,使用外部数据库的服务名称连接到数据库。如果外部数据库配置不正确,则 syndesis-server
无法初始化,Fuse Online 部署会出错。
1.6. 在线安装 Fuse
Fuse Online 是一个灵活、可自定义的开源平台,提供核心集成功能作为服务。如果您有从 OperatorHub 安装操作器的适当权限,您可以作为 OpenShift 开发人员用户安装 Fuse Online。
以下是使用操作器安装 Fuse Online 的一般步骤:
-
在 OpenShift 项目(命名空间)中创建 secret,以使用
registry.redhat.io
配置身份验证,以便 Fuse Online Operator 可以访问所需的安装模板。 - 将 Fuse Online Operator 安装到 OpenShift 项目(命名空间)。安装 Operator 后,Operator 会在所选命名空间中运行。
- 从已安装的操作器创建 Fuse Online 实例。您可以使用默认设置创建实例,或通过编辑实例的自定义资源来自定义实例。然后,您可以从提供的 URL 访问 Fuse Online。
以下主题提供了使用操作器在 OCP 4.x 上安装 Fuse Online 的详情:
1.6.1. 使用 registry.redhat.io 身份验证。
在 OpenShift 上部署 Fuse 容器镜像之前,使用 registry.redhat.io
配置身份验证。
先决条件
- 集群管理员对 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
替换为要创建的 secret:oc create secret docker-registry PULL_SECRET_NAME \ --docker-server=registry.redhat.io \ --docker-username=CUSTOMER_PORTAL_USERNAME \ --docker-password=CUSTOMER_PORTAL_PASSWORD \ --docker-email=EMAIL_ADDRESS
您应该看到以下输出:
secret/PULL_SECRET_NAME created
重要您必须在要向
registry.redhat.io
进行身份验证的每个 OpenShift 项目命名空间中创建此docker-registry
secret。将机密链接到您的服务帐户,以使用机密拉取镜像。以下示例使用
default
服务帐户:oc secrets link default PULL_SECRET_NAME --for=pull
服务帐户名称必须与 OpenShift 容器集使用的名称匹配。
将 secret 链接到
builder
服务帐户,以使用 secret 推送和拉取构建镜像:oc secrets link builder PULL_SECRET_NAME
注意如果您不想使用红帽用户名和密码来创建 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 Online 卡。Fuse Online Operator 安装页面将打开。
点 Install。此时会打开 Install Operator 页面。
- Update Channel 为 Operator 定义更新流,用于为订阅者推出更新。接受默认频道 7.n,其中 n 是当前的 Fuse Online 发行号。
-
对于 Installation 模式,请从集群中的命名空间列表中选择命名空间(项目)。在为容器镜像验证
registry.redhat.io
中,选择创建 docker registry secret 时使用的相同命名空间。 对于 Approval Strategy,选择 Automatic 或 Manual 来配置 OpenShift 如何处理 Fuse Online Operator 的更新。
- 如果您选择 Automatic 更新,当有新版本的 Fuse Online Operator 可用时,OpenShift Operator Lifecycle Manager (OLM)会自动升级 Fuse Online 的运行实例,而无需人为干预。
- 如果选择手动 更新,则当有新版 Operator 可用时,OLM 会创建更新请求。然后,集群管理员必须手动批准该更新请求,以便将 Fuse Online Operator 更新至新版本。
- 点 Install 使 Fuse Online Operator 在指定命名空间(项目)中可用。
- 要验证 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 Online 实例或自定义实例。有关您可以指定的自定义资源设置的更多信息,请参阅安装前需要编辑默认自定义资源。
流程
按照以下步骤,根据您的用户角色访问 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 Online 环境的配置。
- 单击 Create 以创建 Fuse Online 实例。OpenShift 为 Fuse Online 启动 pod、服务和其他组件。
要获得 Fuse Online 的 URL:
- 点 Networking > Routes。
- 确保选择了正确的项目。
- 在 复合 行中的 Location 列中,单击 Fuse Online 的 URL。
- 使用您的 OpenShift 登录凭证登录到 Fuse Online 环境。
要允许其他开发人员用户访问 Fuse Online Web 控制台,管理员必须为每位开发人员用户授予安装了 Fuse Online 的项目的
view
角色:oc adm policy add-role-to-user view <username> -n <project-name>
例如,要为用户
jdoe
授予myfuseonline
项目的查看权限
:oc adm policy add-role-to-user view jdoe -n myfuseonline
第 2 章 在 OCP 3.11 上安装 Fuse Online
在 OCP 3.11 上安装 Fuse Online 需要集群管理员注册 Fuse Online 自定义资源定义,并为适当的用户授予安装权限。安装 Fuse Online 的用户必须确定是否要安装默认的 Fuse 在线环境还是自定义的 Fuse 在线环境。对于自定义的 Fuse Online 环境,需要编辑默认自定义资源文件。
Fuse Online 的每个安装都被称为 Fuse Online 环境。在给定的 OpenShift 项目中,可以只有一个 Fuse Online 环境。每个 Fuse 在线环境都有自己的 URL。在单一 OpenShift 集群中,可以有多个 Fuse Online 环境。
Fuse Online 安装过程需要访问 registry.redhat.io,这是适用于容器镜像的红帽生态系统目录。Fuse Online 不支持或测试在断开连接的环境中使用外部容器 registry、自定义 registry 或 registry。
以下主题提供了安装 Fuse 在线的详情:
- 第 2.1 节 “在 OCP 3.11 上安装 Fuse Online 所需的步骤概述”
- 第 2.2 节 “注册自定义资源定义以部署 Fuse Online 资源”
- 第 2.3 节 “在安装 Fuse Online 之前,需要编辑默认自定义资源”
- 第 2.4 节 “配置 Fuse Online 的自定义资源属性的描述”
- 第 2.5 节 “在安装 Fuse Online 前编辑默认自定义资源文件”
- 第 2.6 节 “关于为 Jaeger 监控配置 Fuse Online”
- 第 2.7 节 “使用外部数据库安装 Fuse Online”
- 第 2.8 节 “运行在 OCP 3.11 上安装 Fuse Online 的脚本”
2.1. 在 OCP 3.11 上安装 Fuse Online 所需的步骤概述
要在 OCP 现场安装 Fuse Online,集群管理员必须执行一些任务,然后有权在特定 OpenShift 项目中安装 Fuse Online 的用户执行一些任务并运行安装脚本。下图显示了工作流:
在 OCP 3.11 工作流镜像上安装 Fuse Online 的概述
要在 OCP 上安装 Fuse Online,主要步骤包括:
具有集群管理权限的用户:
- 下载安装脚本和相关文件。
-
使用 OpenShift
oc
客户端工具 命令在集群级别注册自定义资源定义(CRD)。 -
使用 OpenShift
oc
client 工具命令,为一个或多个用户授予权限,以便在其项目中安装 Fuse Online。
对于您要在其中安装 Fuse Online 的每个 OpenShift 项目,被授予安装 Fuse Online 权限的用户:
- 决定是否安装默认的 Fuse 在线环境或定制的 Fuse 在线环境。定制的 Fuse Online 环境启用一个或多个附加组件功能和/或实施一个或多个自定义配置设置。
- 下载安装脚本和相关文件。
- 可选的。如果需要自定义 Fuse Online 环境,请编辑 default-cr.yml 文件(在 Fuse Online 下载软件包中提供)。
- 可选的。如果需要保留连接和集成定义,请创建一个 OpenShift secret。
- 调用安装脚本。
- 确认 Fuse Online 正在运行。
对于要安装 Fuse Online 的每个 OpenShift 项目,集群管理员必须授予用户在该特定项目中安装 Fuse Online 的权限。
要安装默认的 Fuse Online 环境,有权安装 Fuse 在线下载并运行安装脚本。不需要其他步骤。
2.2. 注册自定义资源定义以部署 Fuse Online 资源
要启用 Fuse Online 的安装,集群管理员会注册自定义资源定义。管理员只需要为 OpenShift 集群执行此操作一次。然后,对于管理员希望安装 Fuse Online 的每个项目,管理员授予适当的用户权限来在该项目中安装 Fuse Online。
先决条件
- 您必须具有集群管理权限。
-
已安装
oc
客户端工具,并将其连接到将安装 Fuse Online 的 OCP 集群。 在 OCP 环境中,Fuse Online 可以使用至少三个持久性卷。所有持久性卷都必须具有以下配置要求:
-
capacity.storage:
1Gi
-
accessMode:
ReadWriteOnce
-
capacity.storage:
流程
从以下位置下载包含 Fuse 在线安装脚本的软件包:
https://github.com/syndesisio/fuse-online-install/releases/tag/1.12
-
在文件系统中方便的位置解包下载的存档。
fuse-online-install-1.12
目录包含用于安装 Fuse 在线的脚本和支持文件。 使用具有集群管理员权限的帐户登录 OpenShift。例如:
oc login -u admin -p adminpwd
运行以下命令,确认您已正确连接,它会列出此集群中已经注册的自定义资源定义。
oc get crd
如果没有错误消息,代表您被正确连接。
切换到
fuse-online-install-1.12
目录并调用以下命令,在集群级别上注册自定义资源定义:bash install_ocp.sh --setup
运行以下命令确认注册是否成功:
oc get crd
注册的自定义资源定义的输出列表应包含
syndesis
。在您希望 Fuse 在线安装的每个项目中,授予用户安装权限。对于每个项目:
切换到您要在其中安装 Fuse Online 的项目。例如:
oc project fuse-online-project
授予在该项目中安装 Fuse Online 的用户权限。例如,以下命令授予开发人员用户安装 Fuse Online
的权限
。运行此命令后,开发人员可以在当前项目中
安装 Fuse Online,本例中为fuse-online-project
:bash install_ocp.sh --grant developer
对您要为其授予 Fuse Online 安装权限的每个 OpenShift 项目重复这两个命令。单个用户可在集群中的多个项目中安装 Fuse Online。要启用此功能,请切换到另一个项目并指定同一用户,例如:
oc project another-fuse-online-project
bash install_ocp.sh --grant developer
结果
复合
自定义资源定义在集群中注册。
后续步骤
有权安装 Fuse Online 的用户,必须决定是否安装默认的 Fuse 在线环境或定制的 Fuse 在线环境。
2.3. 在安装 Fuse Online 之前,需要编辑默认自定义资源
Fuse Online 安装包含一个默认自定义资源,用于指定可配置 Fuse Online 环境附加组件的功能和参数设置的默认设置。
如果您希望安装的 Fuse Online 环境,在安装 Fuse Online 之前,您需要编辑默认自定义资源:
- 使用您为可访问 Fuse Online 控制台的 OpenShift 路由指定的 URL。默认为安装过程计算此路由。
- 使用外部数据库来存储连接和集成定义。默认值是环境使用内部数据库。
-
增加可用于持久连接和集成定义的内部存储量。默认值为
1Gi
,对于大多数 Fuse Online 环境来说都足够了。
要为其中任何一种行为配置 Fuse Online 环境,您必须在安装 Fuse Online 时编辑自定义资源。换句话说,您无法更改已安装的 Fuse 在线环境的配置,以实施其中任何一种行为。另外,在安装为任何这些行为配置的 Fuse Online 环境后,您无法更改安装环境中的该行为。
2.4. 配置 Fuse Online 的自定义资源属性的描述
除了仅在安装前可以指定的自定义资源属性外,您还可以在安装之前或安装后更改多个自定义资源属性。
表 1 提供了可配置的自定义资源设置的简短描述,并指示何时可以更改它们: before 和/或安装后。要实现您想要的 Fuse Online 配置,请使用此表中的信息来确定如何在安装前更改自定义资源,或者如何在安装后更改自定义资源。然后按照适当的步骤操作:
对于 OCP 4.x:
对于 OCP 3.11:
功能/设置 | 当可以设置它时 | 规格 |
---|---|---|
此表 介绍了与增强活动跟踪相关的更多活动跟踪信息。 | 仅在安装前设置 |
增强的活动跟踪功能会被默认启用。如果要自定义 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 存储库 | 在安装后设置或安装后 |
|
监控 | 在安装后设置或安装后 |
|
公共 REST API | 在安装后设置或安装后 |
|
demoData | 在安装后设置或安装后 |
如果将 |
Todo 应用程序 | 在安装后设置或安装后 |
|
Auditing 查看对连接器、连接和集成的基本更改。 另请参阅 审计 Fuse 在线组件。 注意:这是一个技术预览功能。 | 在安装后设置或安装后 |
|
关于附加组件功能和配置设置
增强的活动跟踪
在安装 Fuse Online 时,默认启用活动跟踪。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 在线安装的此设置。也就是说,您已运行另一个 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
。
-
2.5. 在安装 Fuse Online 前编辑默认自定义资源文件
要安装默认的 Fuse Online 环境,您不需要编辑默认的自定义资源文件。请参阅在 OCP 4.x 上安装 Fuse Online 或 在 OCP 3.11 上安装 Fuse Online。
要安装自定义 Fuse Online 环境,您必须在安装 Fuse Online 前编辑 default-cr.yml
文件。此文件位于 Fuse Online 下载软件包中。有些自定义资源设置只能在 Fuse Online 安装之前指定。安装前,请参阅当编辑默认自定义资源时。
还有其他自定义资源设置,您可以在 Fuse Online 安装之前或之后指定。请参阅配置 Fuse Online 的自定义资源属性描述。
Fuse Online 安装过程使用您在 default-cr.yml
文件中指定的设置来创建 syndesis
自定义资源。复合
自定义资源设置决定了已安装的 Fuse 在线环境的配置。
先决条件
- 您计划在 OCP 现场安装和运行 Fuse Online。
-
已安装
oc
客户端工具,并将其连接到您要安装 Fuse Online 的 OCP 集群 - 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
流程
如果您还没有下载包含 Fuse 在线安装脚本的软件包:
现在从以下位置下载:
https://github.com/syndesisio/fuse-online-install/releases/tag/1.12
-
在文件系统中方便的位置解包下载的存档。
fuse-online-install-1.12
目录包含用于安装 Fuse Online 的脚本和支持文件。
使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:
oc login -u developer -p developer
-
在编辑器中打开
fuse-online-install-1.12/default-cr.yml
文件。 -
编辑
default-cr.yml
文件,使其启用功能并设置您想要的参数。要确定您需要指定的内容,请参阅 配置 Fuse Online 的自定义资源属性的描述。 -
保存
default-cr.yml
文件。
结果
default-cr.yml
文件包含新 Fuse 在线安装的配置规格。
后续步骤
如果您编辑了 default-cr.yml
文件来指定外部数据库,请在安装 Fuse Online 前使用外部数据库安装 Fuse Online 中的说明。否则,您可以按照在 OCP 3.11 上安装 Fuse Online 中的说明进行操作。
2.6. 关于为 Jaeger 监控配置 Fuse Online
Jaeger 是用于在分布式服务间追踪事务的开源软件。它对监控复杂微服务环境并进行故障排除特别有用。
当您从 OperatorHub 或使用命令行脚本安装 Fuse Online 时,Fuse Online 安装会检测到 OperatorHub 的存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情况,Fuse Online 使用自己的安装功能来安装 Jaeger。
默认 Fuse Online 环境配置所有所需的 Jaeger 组件。另外,您可以编辑 Fuse Online 自定义资源,以指定客户端/独立服务器配置或混合 Jaeger 客户端和 Jaeger Operator 配置。
默认 Jaeger 配置
基本的开箱即用配置包含所有 Jaeger 组件。您可以通过实验其监控功能来开始了解 Jaeger 的工作原理。默认配置提供仅内存、有限的后端存储功能。
使用默认 Jaeger 配置安装 Fuse Online 有以下结果:
- Fuse Online 组件具有 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 )use Online 使用提供的 Jaeger 后端以及 Jaeger 服务器提供的默认仅内存存储。
仅客户端/独立于客户端的服务器配置
使用客户端/独立服务器配置时,只会为 Fuse Online 和外部配置的 Jaeger 后端之间的通信配置客户端 URL 连接。Jaeger 后端的所有方面都是外部的,独立于 Fuse Online 环境和 syndesis-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
,如 客户端/独立于服务器配置部分所述。
当创建 Jaeger 自定义资源与 syndesis-jaeger
名称时,Jaeger 实例会从 Fuse Online 集成收集数据。默认情况下,您可以在 Fuse 在线活动日志中查看此数据。
2.7. 使用外部数据库安装 Fuse Online
如果要安装使用外部数据库来持久连接和集成定义的 Fuse Online 环境:
- 使用 OpenShift 集群可以找到的主机名创建一个 postgreSQL 数据库。
-
在安装 Fuse Online 之前,为外部数据库创建一个名为
syndesis-global-config
的 OpenShift secret。 - 在线安装 Fuse.
- 在部署 Fuse Online 之前,请编辑自定义资源以配置外部数据库的连接。
先决条件
-
对于 OCP 3.11,您编辑了
default-cr.yml
文件,以指定外部数据库的使用来持久连接和集成定义。 - Fuse Online 尚未安装。
-
已安装
oc
客户端工具,并将其连接到您要安装 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
流程
使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:
oc login -u developer -p developer
创建一个 postgreSQL 数据库,供您在其上安装 Fuse Online 的 OpenShift 集群,并定义以下配置选项的值:
- 连接用户名
- 数据库名称
数据库密码
以下示例使用了 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
替换为您要为其指定外部数据库的 Fuse Online 环境安装的 OpenShift 项目的名称。将
exdb-pw
替换为第 2 步中的密码。Fuse Online 将将其用作访问外部数据库的密码。请注意,stringData
会将 password 值转换为 base64 编码的值(因此您不必进行转换)。如需有关 OpenShift 机密的信息,请参阅 Secret。
将 secret 添加到集群中,例如:
oc apply -f my-fuse-online-secret-cr.yml
在 OpenShift 集群中,可通过使用指定外部数据库的自定义资源安装的 Fuse Online 环境使用
syndesis-global-config
secret。在您在 secret 的
YAML
文件中指定的my-fuse-online-project
项目中安装 Fuse Online (在第 4 步中)。- 对于 OCP 3.11,在安装 Fuse Online 前,按照编辑默认 自定义资源文件中的说明进行操作。
对于 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 会调出所有所需的 pod,但 syndesis-db
除外。syndesis-db
不是 syndesis-
db,使用外部数据库的服务名称连接到数据库。如果外部数据库配置不正确,则 syndesis-server
无法初始化,Fuse Online 部署会出错。
2.8. 运行在 OCP 3.11 上安装 Fuse Online 的脚本
Fuse Online 安装脚本根据 default-cr.yml
文件中的规格安装 Fuse Online 环境,该文件位于 Fuse Online 下载软件包中。要安装默认环境,不需要编辑该文件。要安装自定义环境,您必须在运行安装脚本前编辑 default-cr.yml
文件。
先决条件
- OCP 在现场运行。
-
oc
客户端工具已安装并连接到您要在其中安装 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户可让您在计划安装 Fuse Online 的项目中安装 Fuse Online。
-
如果您确定需要在安装前编辑
default-cr.yml
文件,请完成这些编辑。(在安装 Fuse Online 之前,需要编辑默认自定义资源文件时) -
如果编辑过的
default-cr.ym
文件指定了用于持久连接和集成定义的外部数据库,则您创建了用于访问外部数据库的 Openshift secret。(使用外部数据库安装 Fuse Online) -
您有一个 红帽开发人员帐户,供您知道您的用户名和密码。安装脚本会提示您输入这些凭证,以便可以针对
https://developers.redhat.com
进行验证。有关创建帐户的详情,请参阅 访问和配置 Red Hat Registry。
流程
如果您还没有下载包含 Fuse 在线安装脚本的软件包:
从以下位置下载:
https://github.com/syndesisio/fuse-online-install/releases/tag/1.12
-
在文件系统中方便的位置解包下载的存档。
fuse-online-install-1.12
目录包含用于安装 Fuse Online 的脚本和支持文件。
使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:
oc login -u developer -p developer
切换到安装 Fuse Online 的 OpenShift 项目,例如:
oc project my-fuse-online-project
或者,在运行安装脚本时,您可以指定
--project my-fuse-online-project
。在下载安装脚本的目录中,调用安装脚本:
bash install_ocp.sh
要了解安装脚本选项,请调用
bash install_ocp.sh --help
命令。确认用于安装 Fuse Online 的
syndesis
调用以下命令以显示
syndesis
自定义资源内容:oc describe syndesis/app
检查自定义资源的内容。
如果它不包含您的所有更新,则自定义资源中可能存在语法错误。您必须卸载 Fuse Online,并再次尝试定义有效的自定义资源。请参阅从 OCP 项目卸载 Fuse Online。
确认安装成功:
显示位于
https://openshift-route
的 OpenShift OAuth 代理登录页面。如果您选择让安装脚本计算 OpenShift 路由,则脚本会在执行结束时显示计算的路由。将
openshift-route
替换为脚本提供的值。如果您编辑了
default-cr.yml
文件,以指定 Fuse Online 的routeHostname
,请将openshift-route
替换为您指定的路由。- 如果您还没有登录到 OpenShift 控制台,则会显示其登录页面。输入您的 OpenShift 用户名和密码登录。
Fuse Online 主页会在您登录 OpenShift 控制台后立即或之后显示。
第 3 章 更改 Fuse 在线环境的配置
在 OpenShift Container Platform (OCP)上安装 Fuse Online 后,您可以更改 Fuse Online 环境的配置。
详情请查看以下主题:
- 第 3.1 节 “安装后允许的 Fuse 在线配置更改”
- 第 3.2 节 “更改 Fuse 在线配置的一般步骤”.
配置(prodname} 和 3scale 发现 API:
- 第 3.5 节 “配置 HTTP 代理”
- 第 3.6 节 “在 OCP 上运行的 Fuse Online 环境中添加示例数据”
3.1. 安装后允许的 Fuse 在线配置更改
在 OpenShift Container Platform (OCP)上安装 Fuse Online 后,您可以更改其配置以启用/禁用某些功能或更改某些配置设置。下表列出了您可以更改的功能和设置、更改的影响以及在哪里查找进行更改的说明。
当对 syndesis
自定义资源进行更改时,会导致重新部署 复合-服务器
,OpenShift 会创建一个新的服务器 Pod。在新服务器就绪前,最多需要一到两分钟。在此期间,Fuse Online 控制台不可用。在部署新的服务器时,运行的集成将继续运行。当新部署就绪时,新的服务器会加载集成状态。当 syndesis-server
pod 为 Running
并刷新 Fuse Online 控制台显示集成、连接、消息和运行时间的值时,您可以再次使用 Fuse Online 控制台。
功能/设置 | 更改的影响 | 信息 |
---|---|---|
3scale 发现 |
Redploys | |
Backups |
在 | |
Auditing 注意:这是一个技术预览功能。 |
更新正在运行的 | |
监控 | 安装新的 OpenShift 资源 | |
公共 Fuse 在线 REST API 端点 |
创建 | |
用于测试集成的 Todo 应用程序示例 |
创建新的 | |
demoData |
提供示例数据库和示例数据库连接器。您必须删除 创建名为 sampledb 的 PostgreSQL 数据库,并将 PostgresDB Connection 添加到 Fuse Online 环境中的 SampleDB 连接器。 | |
Java 选项 |
重新部署 | |
Maven 配置 |
您必须删除 | |
将 Fuse Online pod 分配给 OpenShift 集群节点 | 重新部署 Fuse Online 基础架构组件和集成 pod | |
Fuse Online 组件可用的内存 | 使用更改的内存重新部署组件 | |
允许运行集成的数量 |
您必须删除 | |
数据库连接池 |
Redploys |
3.2. 更改 Fuse 在线配置的一般步骤
对于在 OCP 上安装的 Fuse Online 环境,您可以通过更新其复合自定义资源来更改其配置。保存更改后,如果 OpenShift 会同步同步,OpenShift 会将
syndesis-operator
更新为您的更新。语法错误可防止更新。
在编辑 合成
自定义资源时,请确保不要指定语法上正确的无效设置。
将使用更新的复合自定义资源,即使语法正确的设置无效。如果指定了无效的设置,则仅在 OpenShift 完成更新后了解它。在更新过程中,OpenShift 会删除无效的设置。
syndesis
-operator
先决条件
- Fuse Online 安装在 OCP 现场。
-
已安装
oc
客户端工具,并连接到安装了 Fuse Online 的 OCP 集群。 - 您有权在要更改 Fuse 在线配置的项目中安装 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 组件。如果您在自定义资源中更改了
demoData
选项,您必须使用以下命令删除syndesis-server
和syndesis-db
pod 来触发重新部署:oc delete $(oc get -o name pod -l syndesis.io/component=syndesis-server) oc delete $(oc get -o name pod -l syndesis.io/component=syndesis-db)
等待两分钟,然后确认正确更新复合自定义资源:
调用以下命令以显示
syndesis
自定义资源的内容:oc describe syndesis/app
检查内容。
如果
复合
自定义资源不包含您需要的设置,请再次编辑它以指定有效的设置。
结果
对 syndesis
自定义资源触发器 syndesis-operator
的大部分更改,以重新部署 Fuse Online syesis-server
组件。这意味着 OpenShift 会创建一个新的服务器 pod。
在新服务器就绪前,最多需要一到两分钟。在此期间,Fuse Online 控制台不可用。在部署新的服务器时,运行的集成将继续运行。当新部署就绪时,新的服务器会加载集成状态。在以下情况下,您可以再次使用 Fuse Online 控制台:
-
syndesis-server
pod 的状态为Running
。 - 刷新 Fuse Online 控制台会显示集成、连接、消息和运行时间的值。
对复合自定义资源 的一些更改
会更新 Fuse Online 配置,但不需要重新部署 合成服务器
。例如:
-
当您更新复合自定义资源来指定备份时,在备份作业就位前需要几秒钟。
3.3. 配置 Fuse Online 和 3scale 发现 API
如果创建 API 供应商集成,您可能需要在 Red Hat 3scale 中启用该集成的 API 发现。默认行为是 API 不会公开在 3scale 中自动发现。
如果启用 3scale 发现,您可以稍后禁用它。
3.3.1. 配置 Fuse Online 以启用 API 的 3scale 发现
如果创建 API 供应商集成,您可能需要在 Red Hat 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, 服务发现。
- API 供应商集成的创建者可以为该集成禁用 3scale 发现。换句话说,每个 API 供应商集成创建者可以选择该集成的 API 是否可以被发现。
先决条件
- Fuse Online 安装在 OCP 现场。
-
已安装
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
3.3.2. 配置 Fuse Online 以禁用 3scale 发现 API
如果您遵循了 配置 Fuse Online 中的步骤以启用 3scale 发现 API,每个 API 供应商集成创建者可以选择该集成的 API 是否可以被发现。在某些情况下,您可能想要重新配置默认行为,即集成 API 在 3scale 中无法发现,例如,您可能想要在 Fuse Online 中编辑和测试 API 供应商集成。为此,更新 Fuse Online syndesis
自定义资源,以便注释掉指定 managementUrlFor3scale
键和值的行。这通过 3scale 禁用发现。然后,重新发布任何带有可发现 API 发布的 API 供应商集成。
先决条件
- Fuse Online 安装在 OCP 现场。
- 您有权在要禁用发现的项目中安装 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
保存资源。
这会更新
syndesis
自定义资源。更新会删除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 供应商集成。
结果
在 3scale 中不再可发现相关 OpenShift 项目中创建的 API 供应商集成的 API。
当 Fuse Online 发布(或重新发布)位于相关项目中的 API 供应商集成时,Fuse Online 提供了一个外部 URL,用于调用 API 提供程序集成操作。
3.4. 配置 Fuse 在线 pod
您可以通过在 Fuse Online 自定义资源中设置节点关联性和容限选项,将 Fuse Online 基础架构组件和 pod 放置到 OpenShift 集群内的节点上。nodeAffinity
选项允许您为要放置一组节点的 Fuse Online pod 指定关联性。tolerations
选项允许您控制 Fuse Online pod 在哪些节点上运行,并防止其他工作负载使用这些节点。
您可以在安装 Fuse Online 之前或之后编辑 Fuse Online 自定义资源来设置这些选项。
您可以为与集成部署分开的基础架构组件部署配置节点关联性或容限设置:
infraScheduling
- 指定infraScheduling
选项,来为这些 Fuse Online 基础架构部署配置节点关联性和容限设置:-
syndesis-db
-
syndesis-meta
-
syndesis-prometheus
syndesis-ui
注 :
syndesis-operator
部署不受节点关联性或容限的变化的影响,因为它是 Fuse Online 管理组件。
-
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 项目
- 对于 OCP 3.11: 安装 Fuse Online 前编辑默认自定义资源文件
先决条件
- Fuse Online 安装在 OCP 现场。
-
已安装
oc
客户端工具,并连接到安装了 Fuse Online 的 OCP 集群。
流程
使用
oc patch
命令语法配置 容限 设置。为 Fuse Online 基础架构组件部署指定infraScheduling
,或为 Fuse Online 集成部署指定integrationScheduling
:oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling"|"infraScheduling":{"tolerations":[{"key":"_value1_","operator":"_value2_","effect":"_value3_"},{"key":"_value4_","operator":"_value5_","effect":"_value6_"}]}}}'
例如,以下命令为 Fuse Online 基础架构组件添加容限:
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 基础架构组件部署指定infraScheduling
,或为 Fuse Online 集成部署指定integrationScheduling
: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 Online 集成的 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 放置 部分。
3.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 项目
- 对于 OCP 3.11: 安装 Fuse Online 前编辑默认自定义资源文件
对于
syndesis-server
和syndesis-meta
组件,设置 Java Options (javaOptions
)参数,并指定 HTTP 代理主机和端口的值。将相同的 HTTP 代理值用于syndesis-server
和syndesis-meta
。例如:
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 代理设置。
3.6. 在 OCP 上运行的 Fuse Online 环境中添加示例数据
为了帮助新用户了解如何与 Fuse 在线创建集成,您可以在 Fuse Online 环境中添加示例数据。
- ToDo 应用程序
- PostgresDB 数据库和 PostgresDB 连接示例
Salesforce to Database, AMQ to REST API, 和 API Provider quickstart 示例集成需要这个示例数据。
默认情况下,示例 PostgresDB 数据库和连接和 ToDo 应用被禁用(未安装)。
要在安装 Fuse Online 前将 Fuse Online 配置为包含示例数据,请参阅 配置 Fuse Online 的自定义资源属性的描述。
先决条件
- Fuse Online 在 OCP on-site 上安装并运行。
-
已安装
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
通过添加
demoData
字段并将它设置为 true 来编辑自定义资源,然后将addons:unmarshal:enabled
字段更改为 true :spec: demoData: true addons: todo: enabled: true
保存资源。
将这个更改保存到
syndesis
自定义资源会触发syndesis-operator
来创建新的todo
pod。
要更新与自定义资源中的
demoData
选项相关的更改,您必须使用以下命令删除syndesis-server
和syndesis-db
pod 来触发重新部署:oc delete $(oc get -o name pod -l syndesis.io/component=syndesis-server) oc delete $(oc get -o name pod -l syndesis.io/component=syndesis-db)
第 4 章 在 OCP 上管理 Fuse Online
在 OpenShift Container Platform (OCP)上安装 Fuse Online 后,您可以使用 Prometheus 监控集成活动,您可以设置定期 Fuse Online 备份,您可以使用它来恢复 Fuse Online 环境。您可以根据需要升级 Fuse Online、卸载 Fuse Online 或删除包含 Fuse Online 的 OCP 项目。
详情请查看以下主题:
4.1. 审计 Fuse 在线组件
Fuse 在线审计只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些功能可提供早期访问将来的产品功能,使客户在开发过程中测试并提供反馈。有关红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview/
Fuse Online 支持由任何用户对以下 Fuse 在线组件所做的更改进行的基本审计:* 连接 - 在 Fuse 在线 Web 控制台的连接器详情页面中显示的名称和其他字段。 * 连接器 -
Name
字段。* integrations - Name
字段。
当开发人员对这些组件字段之一进行更新(例如,更改集成名称),Fuse Online 将 AUDIT 消息发送到标准输出,其中包括 ID、用户、时间戳、组件(连接
、连接器
或集成)以及更改类型(创建
、
)。修改或删除
请注意,审计消息中的字段值被截断为 30 个字符。
默认情况下禁用 Fuse Online 审计。您可以通过编辑 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
4.2. 监控 Fuse 在线集成和与 Prometheus 的基础架构组件
您可以使用 Prometheus 监控 Fuse Online 基础架构组件和 Fuse Online 集成。您还可以使用 Grafana 仪表板来视觉化 Prometheus 收集的指标。
红帽对 Prometheus 的支持仅限于红帽产品文档中提供的设置和配置建议。
Grafana 是社区支持的功能。红帽生产服务级别协议(SLA)不支持部署 Grafana 来监控 Red Hat Fuse 产品。
除了监控 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 导出器导出,该导出默认公开几个 JVM 指标。另外,集成指标会公开特定于 Apache Camel 的指标,如消息率和错误率。
先决条件
- Fuse Online 在 OCP on-site 上安装并运行。
-
已安装
oc
客户端工具,并连接到安装了 Fuse Online 的 OCP 集群。 -
有对 Fuse Online 命名空间的
admin
访问权限。 -
您有一个 红帽开发人员帐户,供您知道您的用户名和密码。安装脚本会提示您输入这些凭证,以便可以针对
https://developers.redhat.com
进行验证。有关创建帐户的详情,请参阅 访问和配置 Red Hat Registry。 -
具有集群管理员访问权限的个人
已按照
这些安装说明 部署了带有 Application Monitoring operator (特别是标签v1.1.6)
的 Prometheus 和 Grafana。
流程
在 Fuse Online 命名空间中,使用以下命令设置
monitoring-key=middleware
标签:oc label namespace <fuse-online-namespace> monitoring-key=middleware
验证您的 Fuse Online 安装是否已将应用程序监控配置资源添加到 OpenShift 集群中:
-
在 OpenShift Web 控制台中,前往
application-monitoring
项目,然后打开prometheus-route
URL。 在 Prometheus 控制台中,进入 Status → Targets 页面。
如果列出了
Syndesis
目标,则将配置 Fuse Online 以进行监控,您可以跳至第 4 步。如果没有列出
Syndesis
目标,请继续步骤 3。
-
在 OpenShift Web 控制台中,前往
要通过安装在独立 OpenShift 项目中的 Prometheus 实例公开 Fuse Online 来监控,请在
syndesis
自定义资源中启用ops
附加组件:进入 Fuse Online 命名空间:
OpenShift 4.x OpenShift 3.11 -
在 OpenShift Web 控制台中,前往 Fuse Online (
syndesis
)项目。 - 选择 Catalog > Installed Operators,然后点 Fuse Online Operator。
- 点 Syndesis CRD,然后点 app。
-
点 Yaml 在编辑器中打开
yaml
文件。
- 选择 Resources > Other Resources。
- 从下拉菜单中,选择 Syndesis 资源类型。
-
对于 app 资源,点 Actions,然后选择 Edit YAML 以打开编辑器中的
yaml
文件。
-
在 OpenShift Web 控制台中,前往 Fuse Online (
通过添加后续行来编辑
yaml
文件,将Syndesis.Spec.Addons.Ops.Enable
值设置为 true :spec: addons: ops: enabled: true
- 保存该文件。
等待 pod 重启。
注意运行 install 命令后,Fuse Online infrastructure 资源将不能立即使用。您可能需要等待,然后才能在 Prometheus Targets 页面中看到 Fuse Online (Syndesis)目标。
访问 Prometheus:
- 在安装应用程序监控 Operator 的项目的 OpenShift 控制台中,打开路由列表。
- 在 prometheus-route 条目旁边,单击 hostname URL 以打开 Prometheus 控制台。
- 要查看为 Fuse Online 基础架构组件配置的警报规则列表,请点 Alerts 菜单项。
访问 Grafana 仪表板:
- 在安装应用程序监控 Operator 的项目的 OpenShift 控制台中,打开路由列表。
- 在 grafana-route 条目旁边,点主机名 URL 打开 Grafana 控制台。
在 Grafana 控制台的顶部,点仪表板选择器。
- 对于 Fuse Online 集成,请选择 Integration - Camel。此仪表板显示 Apache Camel 集成应用程序公开的标准指标。
对于 Fuse Online 基础架构组件,请选择以下基础架构仪表板之一:
- Infrastructure - DB
- 显示与 Fuse Online Postgres 实例相关的指标。
- 基础架构 - JVM
-
显示关于为
syndesis-meta
或syndesis-server
应用运行 JVM 的指标。从仪表板顶部的 应用程序 下拉列表中,选择您要监控的应用程序。 - 基础架构 - REST API
-
显示与 Fuse Online 基础架构 API 端点相关的指标,如
请求
。从仪表板顶部的 Application 下拉列表中选择要监控的应用程序。吞吐量和延迟
访问 Prometheus Alertmanager:
- 在安装应用程序监控 Operator 的项目的 OpenShift 控制台中,打开路由列表。
在 alertmanager-route 条目旁边,单击 hostname URL 以打开 Alertmanager 控制台。
如果 Fuse Online 基础架构健康,则默认视图为空。
如果有任何基础架构组件不健康,则会列出触发的任何活跃警报,以及静默它们的选项。
其他资源
有关 Prometheus 入门的详情,请参考: https://prometheus.io/docs/prometheus/latest/getting_started/
4.3. Fuse Online Metering 标签
您可以使用 OpenShift Metering operator 分析已安装的 Fuse Online 操作器和组件,以确定您是否符合红帽订阅。如需有关 Metering 的更多信息,请参阅 OpenShift 文档。
下表列出了 Fuse Online 基础架构组件和集成的 metering 标签。
标签 | 可能的值 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
例子
基础架构示例(其中基础架构组件是 syndesis-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
4.4. 备份 Fuse Online 环境
您可以将 Fuse Online 配置为定期备份:
- Fuse Online 存储连接和集成的内部 PostgreSQL 数据库。
-
syndesis-operator
创建以及运行 Fuse Online 所需的 OpenShift 资源。这包括但不限于配置映射、部署配置和服务帐户。
在安装 Fuse Online 之前,您可以为 Fuse Online 环境配置备份,或者您可以更改 Fuse Online 环境的配置以启用备份。
当 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
切换到您要配置备份的 Fuse Online 环境的 OpenShift 项目。例如:
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
自定义资源: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。
4.5. 恢复 Fuse Online 环境
在尚未创建任何连接或集成的新的 Fuse Online 环境中,您可以恢复 Fuse Online 环境的备份。恢复 Fuse Online 环境后,您必须编辑恢复的连接以更新其密码。然后,您应该可以发布恢复的集成。
先决条件
- OCP 在现场运行。
-
oc
客户端工具已安装并连接到您要恢复 Fuse Online 环境的 OCP 集群。 - 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
- 有一个 Fuse Online 环境,已配置为定期备份数据并将数据上传到 Amazon S3。
- Fuse Online 版本号(如 7.6)与备份的 Fuse Online 环境以及您要恢复备份的 Fuse Online 环境相同。
- 有访问包含 Fuse 在线备份的 AWS 存储桶的权限。
- 要恢复备份的 Fuse 在线环境是新的 Fuse 在线安装。换句话说,您没有您定义的连接或集成。如果要在带有连接和集成的 Fuse 在线环境中恢复 Fuse Online Online,则必须卸载 Fuse Online 环境并安装新的 Fuse Online 环境。
流程
- 从 Amazon S3 下载所需的备份文件。有关执行此操作的详情,请参阅 AWS 文档中的 如何从 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 Online 环境使用外部数据库,假设您知道如何获取该数据库的 pod 的名称。
在剩余的命令中,您会看到
DATABASE_POD_NAME
,为恢复的 Fuse Online 环境插入数据库 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 Online 环境使用外部数据库,则假设您知道密码。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 会话:
exit
扩展 Fuse 在线组件:
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 连接的密码。在
对于每个集成,确认没有 Configuration Required 指示符。如果存在,请编辑集成来解决这个问题。集成中的所有步骤都正确后,发布集成。
如果 Fuse Online 在构建步骤后将集成回滚到 Stopped 状态,请删除部署,请确保不需要配置,并尝试再次发布集成。
如果在日志中看到以下信息,您可以安全地忽略以下信息:
Error performing GET request to https://syndesis-my-fuse-online-project.my-cluster-url/api/v1/metrics/integrations
4.6. 升级 Fuse Online
全新的应用程序镜像(包括补丁和安全修复)会针对 Fuse Online 发布。您会收到通过红帽的勘误更新频道通知这些更新。然后您可以升级 Fuse Online 镜像。
对于 OCP 4.x,按照使用 OperatorHub 升级 Fuse Online 中的步骤,从 Fuse Online 升级到 7.9。使用 OpenShift OperatorHub 从 Fuse Online 7.8 升级到 7.9,无论您如何安装 Fuse Online 7.8 (使用安装脚本或 OperatorHub)。
对于 OCP 3.11,使用安装脚本从 Fuse Online 7.8 升级到 7.9,如 使用安装脚本升级 Fuse Online 所述。
您应该决定升级到 Fuse Online 7.9 是否需要更改现有集成。即使不需要更改,在升级 Fuse Online 时,您必须重新发布任何正在运行的集成。
4.6.1. 使用 OperatorHub (OCP 4.x)升级 Fuse Online
使用 OpenShift OperatorHub 从 Fuse Online 7.8 升级到 7.9,无论您如何安装 Fuse Online 7.8 (使用安装脚本或 OperatorHub)。
升级到 Fuse Online 7.9 的步骤取决于您如何安装现有的 Fuse 在线:
- 使用 OperatorHub 安装 Fuse Online 7.8 或更早的 7.9 版本
- 您可以使用安装脚本安装 Fuse Online 7.8。
注: Fuse Online 7.9 需要 OpenShift Container Platform (OCP) 4.6 或更高版本。如果使用 OCP 4.5 或更早版本,则必须升级到 OCP 4.6 或更高版本,如果要升级到 Fuse Online 7.9。
从以前的 Fuse Online OperatorHub 安装升级
从 Fuse Online 7.8 或一个较早的 7.9 版本的升级过程取决于您安装 Fuse Online 7.9 时选择 的批准策略 :
- 对于自动更新,当有新版本的 Fuse Online 操作器可用时,OpenShift Operator Lifecycle Manager (OLM)会自动升级 Fuse Online 的运行实例,而无需人为干预。
- 对于 手动更新,当有新版 Operator 可用时,OLM 会创建更新请求。作为集群管理员,您必须手动批准该更新请求,将 Fuse Online operator 更新至新版本,如 手动批准 OpenShift 文档的待处理 Operator 升级 部分所述。
在基础架构升级过程中和之后,现有集成将继续与 旧版本的 Fuse Online 库和依赖项运行。
要让现有集成与更新的 Fuse Online 版本运行,您必须重新发布集成。
从 Fuse Online 7.8 安装脚本安装升级
如果您使用安装脚本安装 Fuse Online 7.8,请按照以下步骤使用 OperatorHub 升级到 Fuse Online 7.9。
前提条件
- 现有 Fuse Online 7.8 安装脚本安装包括 operator、operands 和 syndesis 自定义资源。
流程
使用 Fuse Online 操作器升级:
- 在 OpenShift Web 控制台中,点 Operators > OperatorHub。
- 选择 Fuse Online 7.9 操作器,然后单击 Install。
- 选择包含 Fuse Online 7.8 安装的命名空间,然后点 Install。
- 升级成功后,您必须重新发布所有现有集成。
4.6.2. 使用安装脚本(OCP 3.11)升级 Fuse Online
对于 OCP 4.x,如果您使用安装脚本安装 Fuse Online 7.8,请使用 OperatorHub 升级到 7.9 版本,如使用 OperatorHub 升级 Fuse Online 所述。
对于 OCP 3.11,以下升级的安装脚本步骤相同:
- 从 Fuse Online 7.8 升级到 Fuse Online 7.9
- 从 Fuse Online 7.9 版本到较新的 Fuse Online 7.9 版本
先决条件
您在 OCP 3.11 现场安装并运行 Fuse Online 版本 7.8,或 已安装并在 OCP 3.11 上运行 Fuse Online 的 7.9 版本,您希望升级到新的应用程序镜像。
对于早期版本:
- 如果您在 OCP 上运行 Fuse Online 版本 7.7,则必须 升级到 7.8,然后您可以升级到 7.9。
- 如果您在 OCP 上运行 Fuse Online 版本 7.6,则必须 升级到 7.7,然后您可以升级到 7.8。
- 如果您在 OCP 上运行 Fuse Online 版本 7.5,则必须 升级到 7.6,然后您可以升级到 7.7。
- 如果您在 OCP 上运行 Fuse Online 版本 7.4,则必须 升级到 7.5,然后您可以升级到 7.6。
- 如果您在 OCP 上运行 Fuse Online 版本 7.3,则必须 升级到 7.4,然后您可以升级到 7.5。
- 如果您在 OCP 上运行 Fuse Online 版本 7.2,则必须 升级到 7.3。
- 如果您在 OCP 上运行 Fuse Online 版本 7.1,则必须 升级到 7.2。
-
已安装
oc
客户端工具,并将其连接到安装了 Fuse Online 的 OCP 集群。 - 有集群管理权限,此流程中的前两个步骤需要这个权限。
流程
- 为了避免遇到可能的 Docker 限制错误,集群管理员会设置对 Docker 镜像的访问权限,如 升级前访问 Docker 镜像 中所述。
集群管理员下载 Fuse Online 软件包,并授予用户在特定项目中升级 Fuse Online 的权限:
从以下位置下载包含 Fuse 在线安装脚本的软件包:
https://github.com/syndesisio/fuse-online-install/releases/tag/1.12
在文件系统中方便的位置解包下载的存档。
fuse-online-install-1.12
目录包含用于升级 Fuse Online 的脚本和支持文件。更改到包含提取存档的目录。例如:
cd fuse-online-install-1.12
使用集群管理帐户登录到 OpenShift,例如:
oc login -u admin -p admin
切换到需要升级 Fuse Online 的 OpenShift 项目,例如:
oc project fuse-online-project
更新 Fuse Online 自定义资源定义:
bash install_ocp.sh --setup
仅授予在这个项目中升级 Fuse Online 的权限。例如,以下命令向
developer
用户授予将 Fuse Online 升级权限。在集群管理员运行此命令后,开发人员
用户只能在这个项目中升级 Fuse Online,本例中为fuse-online-project
:bash install_ocp.sh --grant developer
被授予升级 Fuse Online 的权限的用户执行升级:
登录到 OpenShift,例如:
oc login -u developer
切换到要升级 Fuse Online 的项目,例如:
oc project fuse-online-project
要检查您要升级到的版本,请使用
--version
选项运行更新脚本,如下所示:bash update_ocp.sh --version
按如下方式调用更新脚本:
bash update_ocp.sh
要了解更多有关脚本的信息,请调用
bash update_ocp.sh --help
。在基础架构升级过程中和之后,现有集成将继续与 旧版本的 Fuse Online 库和依赖项运行。
升级 Fuse Online 集成,如下所示:
- 在 Fuse Online 中,选择您要升级的集成。
- 选择 编辑。
- 选择 Publish 来重新发布集成。
重新发布集成会强制重新构建使用最新的 Fuse 在线依赖项。
4.6.3. 升级 Fuse 在线集成
升级到 Fuse Online 7.9 时,您应该确定是否需要对现有集成进行更改。
查看 Camel 迁移注意事项中描述的 Apache Camel 更新。
即使集成不需要更改,您必须重新发布任何正在运行的集成,因为基础架构升级期间和之后,现有集成仍会使用旧版本的 Fuse 在线库和依赖项运行。要使用更新的版本运行,您必须重新发布它们。
流程
要重新发布您的集成,在您的 Fuse 在线环境中:
- 在 Fuse Online左侧导航面板中,单击 Integrations。
对于每个集成:
- 在集成条目右侧,点 并选择 Edit。
- 当 Fuse Online 显示用于编辑的集成时,单击右上角的 Publish。
发布会强制重新构建使用最新的 Fuse 在线依赖项。
如果集成的任何元素都有较新的依赖项,则 Fuse Online 用户界面会显示一个警告。
4.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 Online 环境的 OpenShift 项目。例如:
oc project my-fuse-online-project
删除 Fuse Online 基础架构:
oc delete syesis app
删除
syndesis-operator DeploymentConfig
和ImageStream
资源:oc delete deployment/syndesis-operator
oc delete is/syndesis-operator
4.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
第 5 章 如何调用 Fuse Online 公共 REST API 端点
当您在 OCP 上运行 Fuse Online 时,每个 Fuse Online 环境都可以公开公共 REST API 端点。外部持续集成/持续交付(CI/CD)工具可以调用这些端点,以便在 Fuse 在线环境中的资源上运行。
在每个 Fuse Online 环境中,OpenShift 管理员必须公开 Fuse Online 公共 REST API 端点,然后才能调用这些端点。调用 API 端点的命令指定 Fuse Online 环境的 URL,端点在其上运行、机密令牌和身份验证令牌。
详情请查看以下主题:
5.1. 公开 Fuse Online 公共 REST API,供外部工具使用
当您在 OCP 现场运行 Fuse Online 时,您可能希望使用外部工具将 Fuse Online 环境从一个 Fuse Online 环境复制到另一个 Fuse Online 环境。外部 CI/CD 工具可能是 Jenkins 任务、Ansible playbook、基于 cron
的 shell 脚本或其他内容。例如,Ansible playbook 可以从 Fuse 在线开发环境导出集成,并将它导入到 Fuse 在线测试环境中。
要启用此功能,您必须为每个 Fuse Online 环境公开 Fuse Online 公共 REST API 端点。换句话说,您必须在安装 Fuse Online 的每个 OpenShift 项目中重复这个过程。
先决条件
- 您有一个 OCP 项目,在其中安装了 Fuse Online。
-
已安装
oc
客户端工具,并连接到安装了 Fuse Online 的 OCP 集群。 - 您可以使用外部 CI/CD 工具,您希望它将标记为集成从一个 Fuse Online 环境复制到另一个。
-
执行
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 grant --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 serviceaccount cicd-client
调用公共 API 端点的命令使用此帐户访问公共 API。另外,您需要此服务帐户获取 secret 令牌,该令牌必须在 API 端点调用中指定。这在 获取用于调用 REST API 端点 的 secret 令牌 中进行了描述。
授予客户端服务帐户权限,以访问 Fuse Online 公共 API。如果
fuse-online-north
是安装 Fuse Online 的 OpenShift 项目的名称,如果cicd-client
是您为访问 API 服务的服务帐户的名称,则您将调用以下命令:oc policy add-role-to-user edit system:serviceaccount:fuse-online-north:cicd-client`
编辑
syndesis
自定义资源:调用以下命令,这通常会在编辑器中打开资源:
oc edit syndesis
编辑资源,使其启用公共 API,并指定 Fuse Online 环境的公共地址,作为
routeHostname
的设置来调用端点。(如果编辑了用于安装 Fuse Online 的default-cr.yml
文件,则启用公共 API 并指定端点的路由主机名,则不需要编辑资源。)集群设置决定了您需要指定的公共地址。详情请参阅 OpenShift 文档的路由。在以下示例中,路由主机名对 minishift 集群有效。
spec: addons: publicApi: enabled: true routeHostname: public-syndesis.192.168.64.63.nip.io
保存(或关闭)资源。
保存复合自定义资源会触发
syndesis
-operator如果您不需要编辑复合自定义资源
,
则公共 API OAuth 代理服务已经部署。这可能是因为启用了publicApi
以及用于安装 Fuse Online 的default-cr.yml
文件中指定的路由。
结果
在 OpenShift 中,您现在可以看到:
-
用于
syndesis-public-oauthproxy
部署配置的 pod。 -
一个
syndesis-public-oauthproxy
服务。 -
一个
syndesis-public-api
路由。
在您执行此流程的 OpenShift 项目中,外部 CI/CD 工具可以使用 Fuse Online 公共 REST API 端点来导出或导入 Fuse Online 集成。
后续步骤
- 标记集成,以导出到其他 Fuse 在线环境。您可以在 Fuse Online 控制台中标记集成, 或 调用标记集成的 Fuse Online 公共 REST API 端点。
-
要确认公共 API 端点可用,请调用返回环境名称的
curl
命令。如需获取环境标签列表,请参阅 Endpoint。 - 配置外部工具来调用 Fuse Online 公共 REST API 端点。
5.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 Online 环境而异。当您创建运行 Fuse Online 公共 OAuth 代理的 OpenShift 应用程序时,您可以指定 Fuse Online 环境的公共地址。此地址是调用 Fuse Online 环境中操作的端点的基础 URL 的第一个部分。例如:
https://public-syndesis.192.168.64.42.nip.io
所有 Fuse 在线环境的基本 URL 的第二部分都相同:
/api/v1/public
Fuse Online 公共 REST API 提供了在三个资源上运行的端点:
-
/integrations
是 Fuse Online 环境中在基本 URL 中标识的集成。 -
/connections
是 Fuse Online 环境中在基本 URL 中标识的连接。 -
/environments
是 Fuse Online 环境中标识在基本 URL 中标识的环境标签集合。
5.3. 获取用于调用公共 REST API 端点的 secret 令牌
调用 Fuse Online 公共 REST API 端点的命令必须指定 secret 令牌。此令牌适用于您在给定 Fuse Online 环境中公开 Fuse Online 公共 REST API 时创建的服务帐户。
先决条件
- 您在 OCP 现场运行 Fuse Online。
- 您公开了由要调用端点的 Fuse Online 环境提供的公共 REST API。
流程
获取您在公开此 Fuse Online 环境的公共 REST API 时创建的服务帐户的 secret 令牌名称。例如,如果
cicd-client
是服务帐户的名称,您将调用以下命令:oc describe serviceaccount cicd-client
这将显示
cicd-client
服务帐户的信息列表,其中包括其两个令牌的名称,如下所示:Tokens: cicd-client-token-gxb25 cicd-client-token-gxdnv
显示其中一个令牌的内容。例如:
oc describe secret cicd-client-token-gxb25
这将显示信息列表,包括显示
token:
的数据部分,后跟一个长的随机字符。这是服务帐户的两个机密令牌之一。
- 复制机密令牌,将其粘贴到文件中并保存。
结果
在 curl
命令中,secret 令牌的规格如下:
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA'
后续步骤
将保存文件中的令牌复制到调用给定 Fuse Online 环境中的公共 REST API 端点的命令。
5.4. 如何查找集成 ID
在调用仅针对特定集成的 Fuse Online 公共 REST API 端点的命令中,您必须指定您希望端点操作的集成的 ID。指定以下之一:
集成的名称
您必须像 Fuse Online 控制台中一样指定它,例如
timer-to-log
。如果集成名称具有任何空格或特殊字符,您必须指定 HTML 转义字符。内部集成 ID
当您查看集成概述时,此 ID 位于 Fuse Online 控制台 URL 中。要查看集成概述,请在左侧导航面板中点 Integrations。在集成列表中,单击您需要的集成条目。
随着浏览器中可见的集成摘要,您将在 URL 末尾看到类似如下的内容:
/integrations/i-Lauq5ShznJ4LcuWiwcz
。这个集成的 ID 是i-Lauq5ShznJ4LcuWwiwcz
。
5.5. 指定调用 Fuse 在线公共端点的 curl
命令的格式
调用 Fuse Online 公共 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>]
选项 | 描述 |
---|---|
|
指定您选择的 |
|
对于导出和导入端点,请指定 |
| 为公开公共 REST API 时创建的 OpenShift 服务帐户指定 secret 令牌。 |
| 指定具有集成、连接或环境标签的 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
-
测试
和暂存
规格为这些环境标记计时器到日志
的集成。
第 6 章 使用外部工具导出/导入 Fuse 在线 CI/CD 集成
当您在 OCP 现场运行 Fuse Online 时,您可能具有要参与某些集成的持续集成/持续部署(CI/CD)管道。实现这需要完成这些任务:
- 在 Fuse Online 控制台中,标记 CI/CD 管道的集成。
- 在 OpenShift 中,公开 Fuse Online 公共 API。
- 使用外部工具调用 Fuse Online 公共 API 端点,用于导出和导入集成。
详情请查看以下主题:
6.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,因为应已选中所需环境的复选框。
6.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,以供外部工具 使用。
6.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。
- 在确认对话框中,单击 Yes。Fuse Online 删除环境标签,并从标记了它的任何集成中删除已删除的环境标签。
后续步骤
标记与新环境标签的集成。请参阅 标记 CI/CD 集成。
6.4. 调用 Fuse Online 公共 API 导出端点
在使用外部工具将 Fuse 在线集成从一个 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
将 {env}
替换为您创建的 CI/CD 环境标签。当为特定环境标记集成时,Fuse Online 维护一个指示何时标记的时间戳。默认行为是,端点仅在尚未导出自标记以来尚未导出时才导出集成。例如,要导出标记为 test1
环境的集成,端点为:
/public/integrations/test1/export.zip
此端点导出具有 test1
环境标签的每个集成,并满足以下条件:
-
自上次导出以来,该集成已标记为
test1
环境。 -
该集成已标记为
test1
环境,它从未导出。
端点打包 export.zip
文件中的集成并返回该文件。
如果自导出集成以来没有标记为指定环境的集成,则端点会返回 HTTP 204
响应,以指示没有返回任何操作。
用于导出标记为指定环境的所有集成的端点
您可以调用导出端点,以便它导出使用您指定的环境标签标记的 Fuse Online 环境中的所有集成。端点会导出集成,无论是自上次导出集成的时间以来,是否为指定环境标记。这样可轻松复制在另一个 Fuse 在线环境中具有特定标签的所有集成。要做到这一点:
- 您必须已创建了 environment 标签。请参阅 标记 CI/CD 集成。
-
在导出端点的调用中添加
ignoreTimestamp=true
选项。
例如:
/public/integrations/test1/export.zip?ignoreTimestamp=true -o export.zip
用于导出所有集成的端点
您可以调用导出端点,以便在一个 Fuse Online 环境中导出所有集成。这样可轻松复制其他 Fuse Online 环境中的所有集成。要做到这一点:
- 您必须已创建了 environment 标签。请参阅 标记 CI/CD 集成。
-
将
all=true
选项添加到导出端点的调用中。
例如:
/public/integrations/{env}/export.zip?all=true
将 {env}
替换为 CI/CD 环境标签。端点将指定的环境标签分配给尚未为该环境标记的每个集成。
添加 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 Online 公共 API 需要此标头来验证请求。
-h 'Authorization: Bearer <token>'
在创建用于公开 Fuse Online 公共 API 的 OpenShift 服务帐户时,将 <token> 替换为您复制到文件中的 secret 令牌。
导出集成的 curl
命令示例
以下是调用导出集成的 Fuse Online API 端点的 curl
命令示例:
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
环境标记的集成,并且自标记以来尚未导出。
6.5. 调用 Fuse Online 公共 API 导入端点
您可以通过调用 Fuse Online 公共 API 导出端点来获取一个或多个集成。要将导出的集成复制到另一个 Fuse Online 环境,请调用 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 Online 公共 API 需要此标头来验证请求。
-h 'Authorization: Bearer <token>'
在创建用于公开 Fuse Online 公共 API 的 OpenShift 服务帐户时,将 <token> 替换为您复制到文件中的 secret 令牌。
导入集成的 curl
命令示例
以下是调用导入集成的 Fuse Online API 端点的 curl
命令示例:
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
文件包含要导入的集成。 -
specification
=
会导致端点标记测试环境的每个导入的集成。testing
-
此命令生成
multipart/form-data
。
第 7 章 Fuse Online 公共 REST API 端点参考
本节提供了每个 Fuse 在线公共 REST API 端点的参考信息。如需更多信息,请参阅如何调用 Fuse Online 公共 REST API 端点。
在 https://<fuse-online-host>/api/v1/openapi.json
的 Fuse Online 环境中提供了定义公共 REST API 端点的 OpenAPI 文档。但是,本文档将 tags
对象定义为有三个标签: public-api
、extension
和 integration-support
。对于 Fuse Online,只有使用 OpenShift 公共 OAuth 代理进程时,只能访问 public-api
标签。您应该忽略另外两个标签。
- 第 7.1 节 “获取集成状态的端点”
- 第 7.2 节 “获取集成环境标签列表的端点”
- 第 7.3 节 “用于标记集成并保留未指定标签的端点”
- 第 7.4 节 “用于标记集成和删除未指定标签的端点”
- 第 7.5 节 “用于发布集成的端点”
- 第 7.6 节 “用于停止集成的端点”
- 第 7.7 节 “用于导出集成的端点”
- 第 7.8 节 “用于导入集成的端点”
- 第 7.9 节 “从特定集成中删除环境标签的端点”
- 第 7.10 节 “用于创建环境标签的端点”
- 第 7.11 节 “获取环境标签列表的端点”
- 第 7.12 节 “用于更改环境标签的端点”
- 第 7.13 节 “从所有集成中删除环境标签的端点”
- 第 7.14 节 “用于更改连接属性的端点”
7.1. 获取集成状态的端点
此端点返回指定集成的状态。状态为 Running、Stopped、Pending 或 Error。
方法和端点
GET
/public/integrations/{id}/state
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 所需的 path 参数。要获取集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
请求示例
在以下示例中,端点返回 timer-to-log
集成的状态:
/public/integrations/timer-to-log/state
生成
application/json
响应示例
{"CurrentState":"Unpublished","stateDetails":{"id":"i-Lc0JLrsUFtBJfR_ylfEz:5","integrationId":"i-Lc0JLrsUFtBJfR_ylfEz","deploymentVersion":5,"detailedState":{"value":"BUILDING","currentStep":2, "totalSteps":4},"namespace":"syndesis","podName":"i-timer-to-log-5-build","linkType":"LOGS"}}'
7.2. 获取集成环境标签列表的端点
此端点返回已应用到指定集成的环境标签(标签)。
方法和端点
GET
/public/integrations/{id}/tags
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 所需的 path 参数。您要获取其环境标签的集成名称或内部 ID。如何查找集成 ID。 |
请求示例
在以下示例中,端点返回 timer-to-log
集成的环境标签:
/public/integrations/timer-to-log/tags
生成
application/json
响应示例
{"test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159,"lastExportedAt":1554887330152,"lastImportedAt":1554888047271},"staging rendername":"staging","releaseTag":"i-Lc5WI16UFtJRyfRyf4Fyg","lastTag}}}}
7.3. 用于标记集成并保留未指定标签的端点
此端点使用 PATCH
方法标记指定的环境的集成。如果集成已经标记为指定环境,端点会更新那个环境标签的时间戳。如果集成之前标记为没有在新请求中指定的环境,端点会保留该标签,且不会更新其时间戳。
这个 PATCH
端点是 CI/CD 工具的一个方便方法,因为它添加了标签而无需删除任何其他现有标签。这与 PUT
端点相反,它标记指定环境的集成,并删除没有在请求中指定的环境的任何标签。
方法和端点
PATCH
/public/integrations/{id}/tags
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要为指定环境标记的集成名称或内部 ID。请参阅 如何查找集成 ID。 |
其他参数 | ||
|
|
指定 |
| 字符串 | 必需。指定您要添加到指定集成的一个或多个、以逗号分隔的环境标签。您必须已创建了 environment 标签;端点无法创建标签。请参阅 CI/CD 标记集成。 |
请求示例
在以下示例中,端点为 test2
和 test3
环境标记 计时器到日志
的集成:
public/integrations/timer-to-log/tags --request PATCH -d '["test2","test3"]'
生成
application/json
响应示例
{"test2 rendername":"test2","releaseTag":"i-LcXydouUFtBJfR_ylgrz","lastTaggedAt":1555365010746},"test3","releaseTag":"i-LcXydouUFtBJfR_ylgsz","lastTaggedAt":1555365010746}, "test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159,"lastExportedAt":1554887330152,"lastImportedAt":1554888047271},"staging rendername":"staging","releaseTag":"i-Lc5WI16UFtJRyfRyf4Fyg","lastTag}}}}
7.4. 用于标记集成和删除未指定标签的端点
此端点使用 PUT
方法为指定环境标记指定的集成。如果集成之前标记为没有在新请求中指定的环境,端点会从集成中删除该环境标签。
要在不删除未指定环境标签的情况下标记集成,请调用 PATCH
方法端点。
方法和端点
PUT
/public/integrations/{id}/tags
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要标记的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
其他参数 | ||
|
|
指定 |
| 字符串 | 必需。指定一个或多个以逗号分隔的环境标签。端点标记这些环境的指定集成。您必须已创建了 environment 标签;端点无法创建标签。请参阅 CI/CD 标记集成。 |
请求示例
在以下示例中,端点会标记 test2
和 test3
环境的 计时器到日志
集成。如果集成之前标记为任何其他环境,端点会从集成中删除这些标签。
public/integrations/timer-to-log/tags --request PUT -d '["test2","test3"]'
生成
application/json
响应示例
{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt":1555365085713},"test3","releaseTag":"i-LcXyw7GUFtBJfR_ylguz","lastTaggedAt":1555365713}}
7.5. 用于发布集成的端点
此端点发布指定的集成。如果集成已在运行,则端点将停止集成并重新发布。
方法和端点
POST
/public/integrations/{id}/deployments
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要发布的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
请求示例
在以下示例中,端点会发布 timer-to-log
集成。
/public/integrations/timer-to-log/deployments
生成
application/json
响应示例
在本例中,ellipsis 表示某些响应的省略。
{"ID":"i-Lc0JLrsUFtBJfR_ylfEz:8","version":8,"createdAt":1555365135324,"updatedAt":1555365135324,"userId":"system:serviceaccount:syndesis:syndesis-cd-client","currentState":"Pending","targetState":"Published","integrationId":"iLcLcLcLrs: . .2c+PC9zdmc+","description":"description":"Trigger 事件基于间隔或 cron expression","isDerived":false},"stepKind":"endpoint"},{"id":"-Lc0I7wqEVfKCDDHC8Jv","configuredProperties":{"bodyLoggingEnabled":"true","contextLoggingEnabled":"true"}, "metadata":{"configured":"true"},"stepKind":"log","name":"Log"}]}],"continuousDeliveryState":{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt":1555365713},"test3","releaseTag":"i-LcXyw7GUFtw7UFtw7_ylgtz","lastTag}}
7.6. 用于停止集成的端点
此端点将停止指定的集成。
方法和端点
PUT
/public/integrations/{id}/deployments/stop
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要停止的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
请求示例
在以下示例中,端点会停止 计时器到日志
的集成。
/public/integrations/timer-to-log/deployments stop
生成
application/json
响应示例
没有具有 204
状态代码的内容
7.7. 用于导出集成的端点
此端点导出集成。默认行为是,端点导出标记为指定环境的集成,并且从未导出或者自上次标记为该环境以来尚未导出。您可以在需要执行以下操作之一时指定选项:
- 导出 Fuse Online 环境中的所有集成,并使用指定的环境标签标记它们。
- 导出所有使用指定环境标签标记的集成,无论是否在上次导出后更新集成并标记。
另请参阅: 调用 Fuse Online 公共 API 导出端点。
方法和端点
GET
/public/integrations/{env}/export.zip
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。您在 Fuse Online 控制台中创建的环境标签。端点导出标记为此环境的集成。 |
查询参数 | ||
| 字符串 | 可选的。指定这个选项,以导出 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
生成
application/octet-stream
响应
包含导出的集成的 export.zip
文件。如果没有要导出的集成,端点会返回 204
的 HTTP 状态。
7.8. 用于导入集成的端点
此端点导入提供的文件中的集成。另请参阅: 调用 Fuse Online 公共 REST API 导入端点。
方法和端点
POST
/public/integrations
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
其他参数 | ||
| 字符串 | 必需。这是包含您要导入的集成的文件。您必须之前已调用导出端点来获取此文件。 |
| 字符串 | 必需。要添加到每个导入集成的环境标签。您必须已创建了 environment 标签;端点无法创建标签。 |
请求示例
在以下示例中,端点导入 export.zip
文件中的集成,并将其标记为 测试环境
。
/public/integrations -F data=@export.zip -F environment=testing --request POST
生成
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":"-Lc0I5AZVEFFKFcGFClient" "metadata":…"description":"Trigger 事件基于间隔或 cron expression","isDerived":false},"stepKind":"endpoint"},{"id":"-Lc0I7wqEVfKCDDHC8Jv","configuredProperties":{"bodyLoggingEnabled":"trueLogging":"true"},"metadata":{"configured":"true"},"metadata":{"configured":"true"}, "stepKind":"log","name":"Log"}]}],"continuousDeliveryState":{"stagingPROFILEname":"staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159},"test rendername":"test","releaseTag":"i-Lc5WI16UFtBJfRygz,"lastTag" "lastExportedAt":1554887330152,"lastImportedAt":1554887859824}}}]}
7.9. 从特定集成中删除环境标签的端点
此端点从指定的集成中删除指定的环境标签。环境标签本身仍然存在,但它不再标记指定的集成。
方法和端点
DELETE
/public/integrations/{id}/tags/{env}
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 所需的 path 参数。要标记的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
| 字符串 | 所需的 path 参数。要从指定集成中删除的环境标签。 |
其他参数 | ||
|
|
指定 |
请求示例
在以下示例中,端点从 timer-to-log
集成中删除 dev1
环境标签。
/public/integrations/timer-to-log/tags/dev1 --request DELETE
响应示例
没有具有 204
状态代码的内容
7.10. 用于创建环境标签的端点
此端点会创建一个环境标签。除非在 Fuse Online 控制台中明确标记或调用公共 API 端点,则不会标记任何集成。
方法和端点
POST
/public/environments/{env}
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。您要创建的环境标签。 |
生成
不生成任何内容,但会以如下方式响应:
响应 | 描述 |
---|---|
| 成功。 |
| 您指定的环境名称已存在。 |
| 服务器无法履行请求。 |
请求示例
在以下示例中,端点创建 dev1
环境标签:
/public/environments/dev1 --request POST
dev1
环境标签现在存在于您调用此端点的 Fuse Online 环境中。还没有标记此标签的任何集成。
响应示例
没有响应状态代码为 204
的内容
7.11. 获取环境标签列表的端点
此端点返回 Fuse Online 环境中存在的环境标签列表。您可以在 Fuse Online 控制台中创建环境标签。请参阅为 CI/CD 管理环境标签。
方法和端点
GET
/public/environments[?withUses=true]
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 布尔值 |
可选的。如果命令指定了 |
生成
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}]
7.12. 用于更改环境标签的端点
此端点更改了环境标签。现在,标记为原始环境标签的集成标记为新的环境标签。
方法和端点
PUT
/public/environments/{env}
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要更改的环境标签。 |
其他参数 | ||
| 字符串 | 必需。指定环境的新标签。您必须已创建了 environment 标签;端点无法创建标签。 |
|
|
指定 |
请求示例
在以下示例中,端点将 dev1
环境标签更改为 dev2
:
/public/environments/dev1 -d ‘dev2’ --request PUT
为 dev1
环境标记的集成不再具有该标签。现在,这些集成标记为 dev2
环境。
响应示例
没有响应状态代码为 204
的内容
7.13. 从所有集成中删除环境标签的端点
此端点从应用到它的每个集成中删除指定的环境标签。
方法和端点
DELETE
/public/environments/{env}
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要从具有它的集成中删除的环境标签。 |
其他参数 | ||
|
|
指定 |
请求示例
在以下示例中,端点会从具有它的任何集成中删除 dev1
标签:
/public/environments/dev1 --request DELETE
响应示例
没有响应状态代码为 204
的内容
7.14. 用于更改连接属性的端点
此端点更改指定连接的属性。当您导入具有需要配置的连接的集成后,这通常很有用。例如,您可能需要更改连接使用的凭证。
方法和端点
POST
/public/connections/{id}/properties
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 |
必需。将
|
请求示例
以下示例更改了 PostgresDB
连接的属性。user
属性的新值为 myuser
,password
属性的新值为 mypassword
:
/public/connections/PostgresDB/properties --request POST -d '{ "user": "myuser", "password": "mypassword" }'
生成
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}
第 8 章 重新品牌 Fuse 在线用户界面
您可以通过替换 Fuse Online 应用程序名称、徽标、图标和其他用户界面详情来重新品牌 Fuse Online。您可以通过在 syndesis-ui
部署文件中将自定义资源挂载为 ConfigMap
对象。
先决条件
- 在客户管理的环境中,在 OpenShift Container Platform on-site 上安装并运行 Fuse Online。
-
oc
客户端工具连接到安装了 Fuse Online 的 OCP 集群。 - 您有安装 Fuse 在线的权限。
流程
通过调用以下命令,获取安装 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
-custom-index
部署:ConfigMap
对象来修改 syndesis-ui在
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 在线重新部署也会反映您的更改。