在 OpenShift Container Platform 上安装和操作 Fuse Online
为 CI/CD 管道安装、配置和升级 Fuse Online 和导出/导入集成
摘要
前言
您可以在 OpenShift Container Platform (OCP)上安装和操作 Fuse Online on-site。当 Fuse Online 运行现场时,除了由红帽管理 Fuse Online 且在 OpenShift Online 或 OpenShift Dedicated 上运行时提供的功能外,还提供其他功能。
现场 术语意味着客户管理的环境;红帽不管理 Fuse 在线环境。客户管理的环境可以是内部环境、云中或混合云。
详情请查看以下主题:
第 1 章 在 OCP 上安装 Fuse Online
安装 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 在线的详情:
1.1. 在 OCP 上安装 Fuse Online 所需的步骤概述
要在 OCP 现场安装 Fuse Online,集群管理员必须执行一些任务,然后有权在特定 OpenShift 项目中安装 Fuse Online 的用户执行一些任务并运行安装脚本。下图显示了工作流:

对于要安装 Fuse Online 的每个 OpenShift 项目,集群管理员必须授予用户在该特定项目中安装 Fuse Online 的权限。
要安装默认的 Fuse Online 环境,有权安装 Fuse 在线下载并运行安装脚本。不需要其他步骤。
1.2. 注册自定义资源定义以部署 Fuse Online 资源
要启用 Fuse Online 的安装,集群管理员会注册自定义资源定义。管理员只需要为 OpenShift 集群执行此操作一次。然后,对于管理员希望安装 Fuse Online 的每个项目,管理员授予适当的用户权限来在该项目中安装 Fuse Online。
先决条件
- 您必须具有集群管理权限。
-
已安装
oc
客户端工具,并将其连接到将安装 Fuse Online 的 OCP 集群。 - 在 OCP 环境中,Fuse Online 可以使用至少三个持久性卷。
流程
从以下位置下载包含 Fuse 在线安装脚本的软件包:
https://github.com/syndesisio/fuse-online-install/releases/tag/1.9
-
在文件系统中方便的位置解包下载的存档。
fuse-online-install-1.9
目录包含用于安装 Fuse Online 的脚本和支持文件。 使用具有集群管理员权限的帐户登录 OpenShift。例如:
oc login -u admin -p adminpwd
运行以下命令,确认您已正确连接,它会列出此集群中已经注册的自定义资源定义。
oc get crd
如果没有错误消息,代表您被正确连接。
切换到
fuse-online-install-1.9
目录并调用以下命令,在集群级别上注册自定义资源定义: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 在线环境。
1.3. 在安装 Fuse Online 之前,需要编辑默认自定义资源文件
Fuse Online 下载软件包包含 default-cr.yml
文件,该文件指定了可配置 Fuse Online 环境附加组件功能和参数设置的默认设置。Fuse Online 的安装使用 default-cr.yml
文件来创建控制 Fuse Online 环境配置的合成自定义资源。
只有在想安装 Fuse Online 环境时,才需要编辑 default-cr.yml
文件:
- 使用您为可访问 Fuse Online 控制台的 OpenShift 路由指定的 URL。默认为安装过程计算此路由。
- 运行 Camel K 运行时引擎代替用于 Camel 集成的 Spring Boot 运行时。Camel K 运行时是一个技术预览功能。
- 启用对 Knative 资源的访问。Knative 资源访问是一个技术预览功能。
- 使用外部数据库来存储连接和集成定义。默认值是环境使用内部数据库。
-
增加可用于持久连接和集成定义的内部存储量。默认值为
1Gi
,对于大多数 Fuse Online 环境来说都足够了。
要为其中任何一个行为配置 Fuse Online 环境,您必须在安装 Fuse Online 前编辑 default-cr.yml
文件。换句话说,您无法更改已安装的 Fuse 在线环境的配置,以实施其中任何一种行为。另外,在安装为任何这些行为配置的 Fuse Online 环境后,您无法更改安装环境中的该行为。
1.4. 配置 Fuse Online 的自定义资源属性的描述
除了仅在安装前可以指定的自定义资源属性外,您还可以在安装之前或安装后更改多个自定义资源属性。
下表提供了可配置的自定义资源设置的简短描述,并指示您是否只能在安装前更改它们。要实现您想要的 Fuse Online 配置,请使用此表中的信息来确定您需要在安装前更改 default-cr.yml
文件,或者如何 在安装后更改
复合自定义资源。然后按照适当的步骤操作:
Camel K 运行时、访问 Knative 资源,数据虚拟化只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/。
功能/设置 | 当可以设置它时 | 规格 |
---|---|---|
Camel K runtime (技术预览) | 仅在安装前设置 |
|
此表 介绍了与增强活动跟踪相关的更多活动跟踪信息。 | 仅在安装前设置 |
|
外部数据库 | 仅在安装前设置 |
|
连接和集成 的内部存储容量。 | 仅在安装前设置 |
|
Knative 资源访问 | 仅在安装前设置 |
|
用于访问 Fuse Online 控制台的 OpenShift 路由 | 仅在安装前设置 |
|
3scale 发现 | 在安装后设置或安装后 |
|
备份 | 在安装后设置或安装后 |
|
数据虚拟化 | 在安装后设置或安装后 |
|
集成限制 | 在安装后设置或安装后 |
|
Maven | 在安装后设置或安装后 |
|
内存 | 在安装后设置或安装后 |
|
监控 | 在安装后设置或安装后 |
|
公共 REST API | 在安装后设置或安装后 |
|
Todo 应用程序 | 在安装后设置或安装后 |
|
关于附加组件功能和配置设置
Camel K 运行时引擎(技术预览)
在 OCP 上部署并重新部署集成时,Apache Camel K 运行时可加快启动时间。例如,性能可以从 1-2 分钟提高到几秒钟。当 Camel K 作为运行时引擎安装时,它会替换用于 Camel 集成的 Spring Boot 运行时。
Apache Camel K 是一个轻量级云集成平台,基于用于企业集成模式的 Apache Camel 框架。Camel K 在 Kubernetes、OpenShift 和 Knative 上原生运行,专为无服务器和微服务架构设计和优化。Camel K 在云中运行集成时提供自动化和性能优化。Camel K 使用 Kubernetes Operator SDK 部署集成,例如,它会在 OCP 上自动创建服务和路由。
Camel K 是 Apache Camel 开源社区的子项目。如需了解更多详细信息,请参阅 https://github.com/apache/camel-k。
当使用 Fuse Online 安装 Camel K 运行时,会有以下限制:
- Camel K 运行时不支持 Fuse Online 扩展。
- 在自定义 下的 Fuse Online 用户界面中不会显示 扩展。
数据虚拟化 (技术预览)
通过数据虚拟化,Fuse Online 开发人员可从多个异构来源集成数据,以创建 OpenShift 上可部署的虚拟数据库镜像。详情请查看 Red Hat Integration data virtualization 文档。
增强的活动跟踪
如果您运行
install_ocp.sh
脚本来安装 Fuse Online,则默认行为是在 Fuse Online 环境中启用增强的活动跟踪。如果您使用 OperatorHub,则建议在安装 Fuse Online 前启用增强的活动跟踪。用户界面会引导您这样做。用于持久连接和集成的外部数据库
Fuse Online 的默认安装提供了一个内部 PostgreSQL 数据库,Fuse Online 用来持久连接和集成定义。您可以选择使用外部 PostgreSQL 数据库,如用于 PostgreSQL 的 Amazon RDS。
内部存储容量
1Gi
的默认设置足以满足大多数 Fuse 在线环境。建议您仅在推荐红帽技术支持时增加新 Fuse 在线安装的此设置。也就是说,您已运行另一个 Fuse Online 环境,在其中遇到 Fuse Online 服务器错误,红帽技术支持确定您需要安装一个大于默认数据库卷容量的新 Fuse Online 环境。要在已经运行 Fuse Online 的 OpenShift 项目中增加 Fuse Online 内部存储容量,您必须首先卸载 Fuse Online。请参阅从 OCP 项目卸载 Fuse Online。
1.5. 在安装 Fuse Online 前编辑默认自定义资源文件
要安装默认的 Fuse Online 环境,您不需要编辑默认的自定义资源文件。请参阅在 OCP 上安装 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.9
-
在文件系统中方便的位置解包下载的存档。
fuse-online-install-1.9
目录包含用于安装 Fuse Online 的脚本和支持文件。
使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:
oc login -u developer -p developer
-
在编辑器中打开
fuse-online-install-1.9/default-cr.yml
文件。 -
编辑
default-cr.yml
文件,使其启用功能并设置您想要的参数。要确定您需要指定的内容,请参阅 配置 Fuse Online 的自定义资源属性的描述。 -
保存
default-cr.yml
文件。
结果
default-cr.yml
文件包含新 Fuse 在线安装的配置规格。
后续步骤
如果您编辑了 default-cr.yml
文件来指定外部数据库,请在安装 Fuse Online 前 创建用于使用外部数据库安装 Fuse Online 的 secret。否则,您可以按照在 OCP 上安装 Fuse Online 中的说明进行操作。
1.6. 创建使用外部数据库安装 Fuse Online 的 secret
如果要安装使用外部数据库持久连接和集成定义的 Fuse Online 环境,请在安装 Fuse Online 前创建一个 OpenShift secret, syndesis-global-config
。
先决条件
-
编辑了
default-cr.yml
文件,以指定外部数据库的使用来持久保留连接和集成定义。 - Fuse Online 尚未安装。
-
已安装
oc
客户端工具,并将其连接到您要安装 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
流程
使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:
oc login -u developer -p developer
创建并保存包含以下内容的资源文件,如
my-fuse-onling-secret-cr.yml
:apiVersion: v1 kind: Secret metadata: name: syndesis-global-config namespace: my-fuse-online-project type: Opaque data: POSTGRESQL_PASSWORD: base64-encoded-value
将
my-fuse-online-project
替换为您要为其指定外部数据库的 Fuse Online 环境安装的 OpenShift 项目的名称。使用
base64 编码的值替换
base64 编码的值,Fuse Online 将用作访问外部数据库的密码。如需有关 OpenShift 机密的信息,请参阅 Secret。
将 secret 添加到集群中,例如:
oc apply -f my-fuse-online-secret-cr.yml
结果
在集群中,可通过使用指定外部数据库的自定义资源安装的 Fuse Online 环境使用 syndesis-global-config
secret。
后续步骤
按照在 OCP 上安装 Fuse Online 中的说明进行操作。
1.7. 运行在 OCP 上安装 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 的 secret。) -
您有一个 红帽开发人员帐户,供您知道您的用户名和密码。安装脚本会提示您输入这些凭证,以便可以针对
https://developers.redhat.com
进行验证。有关创建帐户的详情,请参阅 访问和配置 Red Hat Registry。
流程
如果您还没有下载包含 Fuse 在线安装脚本的软件包:
从以下位置下载:
https://github.com/syndesisio/fuse-online-install/releases/tag/1.9
-
在文件系统中方便的位置解包下载的存档。
fuse-online-install-1.9
目录包含用于安装 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 控制台后立即或之后显示。
第 2 章 更改 Fuse 在线环境的配置
在 OpenShift Container Platform (OCP)上安装 Fuse Online 后,您可以更改 Fuse Online 环境的配置。
详情请查看以下主题:
2.1. 安装后允许的 Fuse 在线配置更改
在 OpenShift Container Platform (OCP)上安装 Fuse Online 后,您可以更改其配置以启用/禁用某些功能或更改某些配置设置。下表列出了您可以更改的功能和设置、更改的影响以及在哪里查找进行更改的说明。
当对 syndesis
自定义资源的更改会导致在 整合服务器时
,OpenShift 会创建一个新的服务器部署。在新服务器就绪前,最多需要一到两分钟。在此期间,Fuse Online 控制台不可用。在部署新的服务器时,运行的集成将继续运行。当新部署就绪时,新的服务器会加载集成状态。当 syndesis-server
pod 为 Running
并刷新 Fuse Online 控制台显示集成、连接、消息和运行时间的值时,您可以再次使用 Fuse Online 控制台。
数据虚拟化只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/。
功能/设置 | 更改的影响 | 信息 |
---|---|---|
3scale 发现 |
Redploys | |
Backups |
在 | |
Data virtualization |
创建新的 | |
监控 | 安装新的 OpenShift 资源 | |
公共 Fuse 在线 REST API 端点 |
创建 | |
用于测试集成的 Todo 应用程序示例 |
创建新的 | |
外部 Maven 存储库规格 |
重新部署 | |
Fuse Online 组件可用的内存 | 使用更改的内存重新部署组件 | |
允许运行集成的数量 |
重新部署 |
2.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
-
根据需要编辑
syndesis
自定义资源。 - 保存资源。
等待两分钟,然后确认
syndesis
-operator调用以下命令以显示
syndesis
自定义资源的内容:oc describe syndesis/app
检查内容。
如果
复合
自定义资源不包含您需要的设置,请再次编辑它以指定有效的设置。
结果
对 syndesis
自定义资源触发器 syndesis-operator
进行大多数更改以重新部署 Fuse Online (联合服务器
)。这意味着 OpenShift 会创建新的服务器部署。在新服务器就绪前,最多需要一到两分钟。在此期间,Fuse Online 控制台不可用。在部署新的服务器时,运行的集成将继续运行。当新部署就绪时,新的服务器会加载集成状态。在以下情况下,您可以再次使用 Fuse Online 控制台:
-
syndesis-server
pod 的状态为Running
。 - 刷新 Fuse Online 控制台会显示集成、连接、消息和运行时间的值。
对复合自定义资源 的一些更改
会更新 Fuse Online 配置,但不需要重新部署 合成服务器
。例如:
-
当您更新复合自定义资源来指定备份时,在备份作业就位前需要几秒钟。
更新 Fuse Online 配置以启用数据虚拟化需要更新 Fuse 在线控制台用户界面和部署数据虚拟化 pod。虽然控制台更新通常需要最多 10 秒,但部署数据虚拟化 pod 所需的时间通常取决于多个变量事情。要确认 Fuse Online 环境启用了数据虚拟化,请执行以下操作:
- 在 Fuse Online 控制台中,在左侧面板中点 Data。
- 在 Data Virtualizations 页面中,您应能够添加数据视图。
2.3. 配置 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。
流程
使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:
oc login -u developer -p developer
切换到运行 Fuse Online 的 OpenShift 项目。您只能为此项目启用发现。例如:
oc project my-fuse-online-project
编辑
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.4. 配置 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 提供程序集成操作。
2.5. 在 OCP 上运行的 Fuse Online 环境中添加示例应用程序
为了帮助新用户了解如何创建与 Fuse Online 集成,您可以在 Fuse Online 环境中添加示例应用程序。ToDo 应用程序允许用户确认 AMQ 到 REST API 示例集成可以正常工作。
要在安装 Fuse Online 前将 Fuse Online 配置为具有 ToDo 应用程序,请参阅 配置 Fuse Online 的自定义资源属性的描述。
另外,除了将 ToDo 应用程序添加到 Fuse 在线环境中,任何用户都 可以请求 Fuse Online 评估环境,其中包含示例应用程序。然后,新用户可以根据 Fuse Online Sample Integration Tutorials 中的说明创建示例集成。
先决条件
- Fuse Online 在 OCP on-site 上安装并运行。
-
已安装
oc
客户端工具,并连接到安装了 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
-
您有一个 红帽开发人员帐户,供您知道您的用户名和密码。安装脚本会提示您输入这些凭证,以便可以针对
https://developers.redhat.com
进行验证。有关创建帐户的详情,请参阅 访问和配置 Red Hat Registry。
流程
使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:
oc login -u developer -p developer
切换到运行 Fuse Online 的项目。例如:
oc project my-fuse-online-project
编辑
syndesis
自定义资源:调用以下命令,这通常会在编辑器中打开资源:
oc edit syndesis
确保资源中存在以下行:根据需要编辑。
spec: addons: todo: enabled: true
保存资源。
将这个更改保存到
syndesis
自定义资源会触发syndesis-operator
来创建新的todo
pod。
后续步骤
第 3 章 在 OCP 上管理 Fuse Online
在 OpenShift Container Platform (OCP)上安装 Fuse Online 后,您可以使用 Prometheus 监控集成活动,您可以设置定期 Fuse Online 备份,您可以使用它来恢复 Fuse Online 环境。您可以根据需要升级 Fuse Online、卸载 Fuse Online 或删除包含 Fuse Online 的 OCP 项目。
详情请查看以下主题:
3.1. 监控 OCP 上的 Fuse Online 与 Prometheus 集成
您可以使用 Prometheus 监控 Fuse Online 基础架构和 Fuse Online 集成。为此,请在 syndesis
自定义资源中启用 ops
附加组件。启用 ops
会公开 Fuse Online 以由安装在一个单独的 OpenShift 项目中的 Prometheus 实例进行监控。您可以在安装 Fuse Online 之前或之后启用 ops
附加组件。
此处的步骤是更改 Fuse Online 配置以启用 Prometheus。要在安装 Fuse Online 前启用 Prometheus,请参阅 配置 Fuse Online 的自定义资源属性的描述。
先决条件
- Fuse Online 在 OCP on-site 上安装并运行。
-
已安装
oc
客户端工具,并连接到安装了 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
-
您有一个 红帽开发人员帐户,供您知道您的用户名和密码。安装脚本会提示您输入这些凭证,以便可以针对
https://developers.redhat.com
进行验证。有关创建帐户的详情,请参阅 访问和配置 Red Hat Registry。
流程
使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:
oc login -u developer -p developer
切换到运行 Fuse Online 的项目。例如:
oc project my-fuse-online-project
编辑
syndesis
自定义资源:调用以下命令,这通常会在编辑器中打开资源:
oc edit syndesis
确保资源中存在以下行:根据需要编辑。
spec: addons: ops: enabled: true
- 保存资源。
结果
将这个更改保存到 syndesis
自定义资源会触发 syndesis-operator
以安装新的 OpenShift 资源。不需要重新部署 syndesis-server
。
后续步骤
安装 Application Monitoring Operator,它将安装 Prometheus 和 Grafana。
其他资源
- 有关 Prometheus 入门的详情,请参考: https://prometheus.io/docs/prometheus/latest/getting_started/
- 有关使用 Prometheus 监控 Fuse 在线的详情,请参考 监控 Red Hat Integration。
3.2. 备份 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。
3.3. 恢复 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 dc 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 dc 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
3.4. 在 OCP 上升级 Fuse Online
要在 OCP 上升级 Fuse Online,请下载最新的 Fuse Online 版本,获得从集群管理员升级 Fuse Online 的权限,并运行更新脚本。
全新的应用程序镜像(包括补丁和安全修复)会针对 Fuse Online 发布。您会收到通过红帽的勘误更新频道通知这些更新。然后您可以升级 Fuse Online 镜像。
以下升级的升级步骤是相同的:
- 从 Fuse Online 7.5 到 Fuse Online 7.6
- 从 Fuse Online 7.6 版本到较新的 Fuse Online 7.6 版本
先决条件
您已在 OCP 现场安装并运行 Fuse Online 的 7.5 版本。或者,您安装并运行 OCP 上 Fuse Online 的 7.6 版本,您想要升级到新的应用程序镜像。
对于早期版本:
-
已安装
oc
客户端工具,并将其连接到安装了 Fuse Online 的 OCP 集群。 - 有集群管理权限,此流程中的前五个步骤需要这个权限。
流程
集群管理员下载 Fuse Online 软件包,并授予用户在特定项目中升级 Fuse Online 的权限:
从以下位置下载包含 Fuse 在线安装脚本的软件包:
https://github.com/syndesisio/fuse-online-install/releases/tag/1.9
在文件系统中方便的位置解包下载的存档。
fuse-online-install-1.9
目录包含用于升级 Fuse Online 的脚本和支持文件。更改到包含提取存档的目录。例如:
cd fuse-online-install-1.9
使用集群管理帐户登录到 OpenShift,例如:
oc login -u admin -p admin
切换到需要升级 Fuse Online 的 OpenShift 项目,例如:
oc project fuse-online-project
仅授予在这个项目中升级 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 在线依赖项。
3.5. 从 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 dc/syndesis-operator
oc delete is/syndesis-operator
3.6. 删除包含 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 Online 环境都可以公开公共 REST API 端点。外部持续集成/持续交付(CI/CD)工具可以调用这些端点,以便在 Fuse 在线环境中的资源上运行。
在每个 Fuse Online 环境中,OpenShift 管理员必须公开 Fuse Online 公共 REST API 端点,然后才能调用这些端点。调用 API 端点的命令指定 Fuse Online 环境的 URL,端点在其上运行、机密令牌和身份验证令牌。
详情请查看以下主题:
4.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 端点。
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 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 中标识的环境标签集合。
4.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 端点的命令。
4.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
。
4.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
-
测试
和暂存
规格为这些环境标记计时器到日志
的集成。
第 5 章 使用外部工具导出/导入 Fuse 在线 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。
- 在确认对话框中,单击 Yes。Fuse Online 删除环境标签,并从标记了它的任何集成中删除已删除的环境标签。
后续步骤
标记与新环境标签的集成。请参阅 标记 CI/CD 集成。
5.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
环境。端点打包 export.zip
文件中的集成并返回该文件。
如果自导出集成以来没有标记为指定环境的集成,则端点会返回 HTTP 204
响应,以指示没有返回任何操作。
用于导出所有集成的端点
您可以调用导出端点,以便在一个 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
环境标记的集成,并且自标记以来尚未导出。
5.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
。
第 6 章 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
标签。您应该忽略另外两个标签。
- 第 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. 参数
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"}}'
6.2. 获取集成环境标签列表的端点
此端点返回已应用到指定集成的环境标签(标签)。
方法和端点
GET
/public/integrations/{id}/tags
表 6.2. 参数
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}}}}
6.3. 用于标记集成并保留未指定标签的端点
此端点使用 PATCH
方法标记指定的环境的集成。如果集成已经标记为指定环境,端点会更新那个环境标签的时间戳。如果集成之前标记为没有在新请求中指定的环境,端点会保留该标签,且不会更新其时间戳。
这个 PATCH
端点是 CI/CD 工具的一个方便方法,因为它添加了标签而无需删除任何其他现有标签。这与 PUT
端点相反,它标记指定环境的集成,并删除没有在请求中指定的环境的任何标签。
方法和端点
PATCH
/public/integrations/{id}/tags
表 6.3. 参数
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}}}}
6.4. 用于标记集成和删除未指定标签的端点
此端点使用 PUT
方法为指定环境标记指定的集成。如果集成之前标记为没有在新请求中指定的环境,端点会从集成中删除该环境标签。
要在不删除未指定环境标签的情况下标记集成,请调用 PATCH
方法端点。
方法和端点
PUT
/public/integrations/{id}/tags
表 6.4. 参数
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}}
6.5. 用于发布集成的端点
此端点发布指定的集成。如果集成已在运行,则端点将停止集成并重新发布。
方法和端点
POST
/public/integrations/{id}/deployments
表 6.5. 参数
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}}
6.6. 用于停止集成的端点
此端点将停止指定的集成。
方法和端点
PUT
/public/integrations/{id}/deployments/stop
表 6.6. 参数
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要停止的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
请求示例
在以下示例中,端点会停止 计时器到日志
的集成。
/public/integrations/timer-to-log/deployments stop
生成
application/json
响应示例
没有具有 204
状态代码的内容
6.7. 用于导出集成的端点
此端点导出标记为指定环境的集成,且从未导出或者自上次标记为该环境以来尚未导出。另请参阅: 调用 Fuse Online 公共 API 导出端点。
方法和端点
GET
/public/integrations/{env}/export.zip
表 6.7. 参数
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。您在 Fuse Online 控制台中创建的环境标签。端点导出标记为此环境的集成。 |
查询参数 | ||
| 字符串 | 可选的。指定这个选项,以导出 Fuse Online 环境中的所有集成。端点导出每个集成的当前版本。如果集成还没有标记为指定环境,则端点会将指定的环境标签添加到集成。您必须已创建了 environment 标签;端点无法创建标签。 |
其他参数 | ||
| 字符串 |
如果您指定了查询参数,则需要此项。如果没有这个选项,导出的集成位于名为 |
请求示例
在本例中,端点会导出标记为 test1
环境的集成:
/public/integrations/test1/export.zip
在以下示例中,端点确保每个集成都标记为 test1
环境,并返回 export.zip
文件中的所有集成。
/public/integrations/test1/export.zip?all=true -o export.zip
生成
application/octet-stream
响应
包含导出的集成的 export.zip
文件。如果没有要导出的集成,端点会返回 204
的 HTTP 状态。
6.8. 用于导入集成的端点
此端点导入提供的文件中的集成。另请参阅: 调用 Fuse Online 公共 REST API 导入端点。
方法和端点
POST
/public/integrations
表 6.8. 参数
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}}}]}
6.9. 从特定集成中删除环境标签的端点
此端点从指定的集成中删除指定的环境标签。环境标签本身仍然存在,但它不再标记指定的集成。
方法和端点
DELETE
/public/integrations/{id}/tags/{env}
表 6.9. 参数
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
状态代码的内容
6.10. 用于创建环境标签的端点
此端点会创建一个环境标签。除非在 Fuse Online 控制台中明确标记或调用公共 API 端点,则不会标记任何集成。
方法和端点
POST
/public/environments/{env}
表 6.10. 参数
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。您要创建的环境标签。 |
生成
不生成任何内容,但会以如下方式响应:
| 成功。 |
| 您指定的环境名称已存在。 |
| 服务器无法履行请求。 |
请求示例
在以下示例中,端点创建 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. 参数
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}]
6.12. 用于更改环境标签的端点
此端点更改了环境标签。现在,标记为原始环境标签的集成标记为新的环境标签。
方法和端点
PUT
/public/environments/{env}
表 6.12. 参数
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要更改的环境标签。 |
其他参数 | ||
| 字符串 | 必需。指定环境的新标签。您必须已创建了 environment 标签;端点无法创建标签。 |
|
|
指定 |
请求示例
在以下示例中,端点将 dev1
环境标签更改为 dev2
:
/public/environments/dev1 -d ‘dev2’ --request PUT
为 dev1
环境标记的集成不再具有该标签。现在,这些集成标记为 dev2
环境。
响应示例
没有响应状态代码为 204
的内容
6.13. 从所有集成中删除环境标签的端点
此端点从应用到它的每个集成中删除指定的环境标签。
方法和端点
DELETE
/public/environments/{env}
表 6.13. 参数
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌。 |
路径参数 | ||
| 字符串 | 必需。要从具有它的集成中删除的环境标签。 |
其他参数 | ||
|
|
指定 |
请求示例
在以下示例中,端点会从具有它的任何集成中删除 dev1
标签:
/public/environments/dev1 --request DELETE
响应示例
没有响应状态代码为 204
的内容
6.14. 用于更改连接属性的端点
此端点更改指定连接的属性。当您导入具有需要配置的连接的集成后,这通常很有用。例如,您可能需要更改连接使用的凭证。
方法和端点
POST
/public/connections/{id}/properties
表 6.14. 参数
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}
第 7 章 重新品牌 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 在线重新部署也会反映您的更改。