在 OpenShift Container Platform 上安装和操作 Fuse Online

Red Hat Fuse 7.5

为 CI/CD 管道安装、配置和升级 Fuse Online 和导出/导入集成

Red Hat Fuse Documentation Team

摘要

在客户托管环境中、在云中或混合云中安装、管理和在 OpenShift Container Platform 上安装、管理和操作 Fuse Online 的信息和说明。

前言

您可以在 OpenShift Container Platform (OCP)上安装和操作 Fuse Online on-site。当 Fuse Online 运行现场时,除了由红帽管理 Fuse Online 且在 OpenShift Online 或 OpenShift Dedicated 上运行时提供的功能外,还提供其他功能。

现场 术语意味着客户管理的环境;红帽不管理 Fuse 在线环境。客户管理的环境可以是内部环境、云中或混合云。

Fuse Online 的每个安装都被称为 Fuse Online 环境。在给定的 OpenShift 项目中,可以只有一个 Fuse Online 环境。每个 Fuse 在线环境都有自己的 URL。在单一 OpenShift 集群中,可以有多个 Fuse Online 环境。

详情请查看以下主题:

第 1 章 在 OCP 上安装 Fuse Online

要在 OCP 现场安装 Fuse Online,主要步骤包括:

  1. 具有集群管理权限的用户:

    1. 下载安装脚本。
    2. 在集群级别注册自定义资源定义(CRD)。
    3. 授予用户在其项目中安装 Fuse Online 的权限。
  2. 被授予安装 Fuse Online 的权限的用户:

    1. 确保满足所有先决条件。
    2. 决定如何安装与 OpenShift 项目相关的 Fuse Online 以安装到 OpenShift 项目、Fuse Online 的 OpenShift 路由以及 OpenShift 日志的访问级别。
    3. 下载安装脚本。
    4. 使用实施决策的命令调用安装脚本。
    5. 确认 Fuse Online 正在运行。
注意

Fuse Online 安装过程假定容器 registry 是内部的。Fuse Online 不支持或测试在断开连接的环境中使用外部容器 registry、自定义 registry 或 registry。

以下主题提供详情:

1.1. 注册自定义资源定义以部署 Fuse Online 资源

要启用 Fuse Online 的安装,集群管理员会注册自定义资源定义。管理员只需要为 OpenShift 集群执行此操作一次。管理员还授予将 Fuse 在线安装到适当用户的权限。然后,每个用户都可以在其项目中安装 Fuse Online。

先决条件

  • 您必须具有集群管理权限。
  • 已安装 oc 客户端工具,并将其连接到将安装 Fuse Online 的 OCP 集群。

流程

  1. 从以下位置下载包含 Fuse 在线安装脚本的软件包:

    https://github.com/syndesisio/fuse-online-install/releases/tag/1.8

    在文件系统中方便的位置解包下载的存档。fuse-online-install-1.8 目录包含用于安装 Fuse Online 的脚本和支持文件。

  2. 要验证您是否已正确连接并可以列出自定义资源定义,请运行以下命令:

    $ oc get crd

  3. 要在集群级别注册自定义资源定义,请进入 fuse-online-install-1.8 目录并调用以下命令:

    $ bash install_ocp.sh --setup

  4. 为需要安装 Fuse Online 的每个用户授予安装权限。例如,假设您想向具有用户名 developer 的帐户授予权限。以下命令向开发人员授予权限,将 Fuse Online 安装到 开发人员帐户 可以访问的任何项目中:

    $ bash install_ocp.sh --grant developer --cluster

    对需要安装 Fuse Online 所需的权限的每个用户帐户重复此命令。

1.2. 在 OCP 上安装 Fuse Online 前做出的决策

要正确指定 Fuse Online 安装命令,请决定以下问题的回答:

  • 您要在其中安装 Fuse Online 的 OpenShift 项目?

    默认 :该脚本会在当前项目中安装 Fuse Online。

    选项 :在您指定的项目中安装 Fuse Online。运行安装脚本时,指定 --project 选项后跟项目名称。如果此项目尚不存在,脚本将创建该项目。如果存在此项目,安装脚本会提示您确认它是 okay 以删除项目的内容。要继续,您必须确认。然后安装脚本会删除项目并重新创建它。

  • 是否要指定 Fuse Online 的 URL?

    默认 :该脚本计算可以访问 Fuse Online 的 OpenShift 路由。

    选项 :指定 Fuse Online 的 URL。运行安装脚本时,指定 --route 选项后跟一个 URL。

  • 启用从 Fuse Online 到 OpenShift 集成运行时日志的链接?

    默认 :否。在 OpenShift 中手动访问 OpenShift 日志。

    选项 :在 Fuse Online 中提供链接。运行安装脚本时,指定 --console 选项,后跟 OpenShift 控制台的 URL。这些链接会出现在 Fuse Online 的集成 活动 选项卡中。

1.3. 在 OCP 上安装 Fuse Online

要在 OCP 现场安装 Fuse Online,请下载安装软件包,运行它,并确认是否安装了 Fuse Online。

先决条件

  • 您正在运行 OCP 现场。
  • 已安装 oc 客户端工具,并将其连接到您要安装 Fuse Online 的 OCP 集群。
  • 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
  • 您决定执行默认安装,或指定用于自定义安装的选项。
  • 您有一个 红帽开发人员帐户,供您知道您的用户名和密码。安装脚本会提示您输入这些凭证,以便可以针对 https://developers.redhat.com 进行验证。有关创建帐户的详情,请参阅 访问和配置 Red Hat Registry

流程

  1. 如果您还没有下载包含 Fuse 在线安装脚本的软件包,请立即从以下位置下载它:

    https://github.com/syndesisio/fuse-online-install/releases/tag/1.8

  2. 在文件系统中方便的位置解包下载的存档。fuse-online-install-1.8 目录包含用于安装 Fuse Online 的脚本和支持文件。
  3. 使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:

    $ oc login -u developer -p developer

  4. 确保当前项目是您要安装 Fuse Online 的项目。查看当前项目:

    $ oc project

    或者,您可以在运行安装脚本时指定安装项目。

  5. 在下载安装脚本的目录中,调用安装脚本:

    • 要执行默认安装,请调用:

      $ bash install_ocp.sh
    • 要执行默认安装并启用数据虚拟化用户界面,请调用:

      $ bash install_ocp.sh --datavirt

      仅在开发环境中启用数据虚拟化用户界面。通过数据虚拟化,Fuse Online 开发人员可从多个异构来源集成数据,以创建 OpenShift 上可部署的虚拟数据库镜像。应用程序可以在虚拟数据库上运行 SQL 查询,包括任何非SQL 源。详情请查看 Red Hat Integration data virtualization 文档

      重要

      数据虚拟化只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/

    • 要指定几个安装选项,您可以运行以下命令:

      $ bash install_ocp.sh \
          --project my-project \
          --route my-project.6a63.fuse-online.openshiftapps.com \
          --console https://console.fuse-online.openshift.com/console
          --datavirt
      • --project 指定要在其中安装 Fuse Online 的 OpenShift 项目的名称。只有在您想要将 Fuse Online 安装到当前 OpenShift 项目以外的 OpenShift 项目中时,才需要指定这个选项。
      • --route 指定 Fuse 在线环境将具有的 URL。此 URL 将是您访问 Fuse 在线环境的位置。URL 的格式是您要在其中安装 Fuse Online 的项目的名称,后跟特定于您的 OpenShift 集群的域。

        换句话说,指定项目名称,后跟与用于访问 Fuse Online 的 OpenShift 路由关联的主机名。指定主机名的 DNS 解析必须指向 OpenShift 路由器。

      • --console 指定 OpenShift 控制台的完整 URL。
      • --datavirt 启用数据虚拟化用户界面,它是一个技术预览功能,仅用于开发环境。

    要了解更多有关安装脚本选项的信息,请调用 $ bash install_ocp.sh --help 命令。

  6. 确认安装成功:

    1. 显示位于 https://openshift-route 的 OpenShift OAuth 代理登录页面。

      如果在运行安装脚本时指定了 --route 选项,请将 openshift-route 替换为您指定的路由名称。如果您选择让安装脚本计算 OpenShift 路由,则脚本会在执行结束时显示计算的路由。将 openshift-route 替换为脚本提供的值。

    2. 如果您还没有登录到 OpenShift 控制台,则会显示其登录页面。输入您的 OpenShift 用户名和密码登录。

    Fuse Online 主页会在您登录 OpenShift 控制台后立即或之后显示。

1.4. 在 OCP 上的 Fuse Online 中启用数据虚拟化

数据虚拟化是一个技术预览功能,可让 Fuse Online 开发人员集成来自多个异构源的数据,以创建 OpenShift 上可部署的虚拟数据库镜像。

重要

数据虚拟化只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的详情,请参考 https://access.redhat.com/support/offerings/techpreview/

在 OCP 上安装 Fuse Online 时,您可以启用数据虚拟化。请参阅在 OCP 上安装 Fuse Online。如果您在安装 Fuse Online 时没有启用数据虚拟化,您可以按照此处所述的步骤启用它。仅在开发环境中启用数据虚拟化用户界面。

详情请查看 Red Hat Integration data virtualization 文档

先决条件

  • Fuse Online 7.5 已安装并在 OCP on-site 上运行。
  • 已安装 oc 客户端工具,并连接到安装了 Fuse Online 的 OCP 集群。
  • 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
  • 您有一个 红帽开发人员帐户,供您知道您的用户名和密码。安装脚本会提示您输入这些凭证,以便可以针对 https://developers.redhat.com 进行验证。有关创建帐户的详情,请参阅 访问和配置 Red Hat Registry

流程

  1. 使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:

    $ oc login -u developer -p developer
  2. 确保当前项目是 Fuse Online 运行的项目。要查看当前项目,请调用以下命令:

    $ oc project
  3. 编辑 syndesis 自定义资源:

    1. 调用以下命令,这通常会在编辑器中打开资源:

      oc edit syndesis
    2. 确保资源包含以下内容:

      spec:
        addons:
          komodo:
            enabled: "true"
    3. 如有必要,更新并保存资源。
  4. 确认启用数据虚拟化成功:

    1. 显示位于 https://openshift-route 的 OpenShift OAuth 代理登录页面。

      openshift-route 替换为您的 Fuse 在线环境的 URL。

    2. 如果您还没有登录到 OpenShift 控制台,则会显示其登录页面。输入您的 OpenShift 用户名和密码登录。

      Fuse Online 主页会在您登录 OpenShift 控制台后立即或之后显示。

    3. 在左侧面板中,单击 Data
    4. Data Virtualizations 页面中,您应能够添加数据视图。

第 2 章 在 OCP 上管理 Fuse Online

在 OpenShift Container Platform (OCP)上安装 Fuse Online 后,您可以将其配置为在 Red Hat 3scale 中发现 API 供应商集成的 API,或增加 Fuse Online 内部存储容量。您还可以在 Fuse Online 环境中添加示例数据。

您可以根据需要升级 Fuse Online、卸载 Fuse Online 或删除包含 Fuse Online 的 OCP 项目。

详情请查看以下主题:

2.1. 配置 Fuse Online 以启用 API 的 3scale 发现

如果创建 API 供应商集成,您可能需要在 Red Hat 3scale 中启用该集成的 API 发现。默认行为是 API 不会公开在 3scale 中自动发现。

对于在 OCP 上安装的 Fuse Online 环境,您可以通过更新 Fuse Online syes is 自定义资源来启用 3scale 发现 API。您的更新必须提供 3scale 用户界面的 URL,它打开 3scale 服务发现。当您启用发现时,它只适用于在更新资源时连接到的 OpenShift 项目。

打开 3scale 服务发现意味着:

  • 默认行为是 3scale 发布 API 供应商集成。当 3scale 发布 API 供应商集成时:

  • API 供应商集成的创建者可以为该集成禁用 3scale 发现。换句话说,每个 API 供应商集成创建者可以选择该集成的 API 是否可以被发现。

先决条件

  • Fuse Online 安装在 OCP 现场。
  • 已安装 oc 客户端工具,并连接到安装了 Fuse Online 的 OCP 集群。
  • 您有权在要启用 API 发现的项目中安装 Fuse Online。

流程

  1. 使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:

    $ oc login -u developer -p developer
  2. 切换到运行 Fuse Online 的 OpenShift 项目。您只能为此项目启用发现。例如:

    $ oc project my-fuse-online-project
  3. syndesis 自定义资源上调用 oc patch 命令,并提供 3scale 用户界面的 URL。在以下示例中,将 3scale-url-here 替换为 3scale 用户界面的实际 URL:

    oc patch syndesis app --type='merge' -p '{"spec":{"components":{"server":{"features":{"managementUrlFor3scale":"3scale-url-here"}}}}}'
  4. 可选的。要确认为您切换到的项目打开发现,请调用以下命令:

    oc describe dc/syndesis-server

    打开发现后,此命令的输出会显示 OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 环境变量被设置为您在 oc patch 命令中指定的 URL。

结果

oc patch 命令更新复合 自定义资源。更新将 OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 环境变量设置为 3scale 用户界面的指定 URL。对 syndesis 自定义资源的更改会触发 syndesis-operator (负责安装 Fuse Online)以重新部署 syndesis-server。在您切换到的 OpenShift 项目中,新的默认行为是公开 API 用于发现 3scale。

不要编辑 syndesis-server DeploymentConfig 对象来设置 OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 环境变量。这不起作用,因为 syndesis-operator 恢复了您的更改。 syndesis -operator 确保仅部署 Fuse Online,并且始终根据复合自定义资源部署。

2.2. 配置 Fuse Online 以禁用 3scale 发现 API

如果您遵循了 配置 Fuse Online 中的步骤以启用 3scale 发现 API,每个 API 供应商集成创建者可以选择该集成的 API 是否可以被发现。在某些情况下,您可能想要重新配置默认行为,即集成 API 在 3scale 中无法发现,为此,更新 Fuse Online syes is 自定义资源,将 3scale 的管理 URL 重置为空白。然后,重新发布任何带有可发现 API 发布的 API 供应商集成。

先决条件

  • Fuse Online 安装在 OCP 现场。
  • 您有权在要禁用发现的项目中安装 Fuse Online。
  • 已安装 oc 客户端工具,并连接到安装了 Fuse Online 的 OCP 集群。
  • 在 OpenShift 项目中启用了 3scale 发现功能,如 配置 Fuse Online 以启用 API 的 3scale 发现 中所述。

流程

  1. 使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:

    $ oc login -u developer -p developer
  2. 切换到启用了 3scale 发现的 OpenShift 项目。例如:

    $ oc project my-fuse-online-project
  3. syndesis 自定义资源上调用 oc patch 命令,并将 3scale 用户界面的 URL 设置为空值:

    oc patch syndesis app --type='merge' -p '{"spec":{"components":{"server":{"features":{"managementUrlFor3scale":""}}}}}'

    此命令 更新复合 自定义资源。更新将禁用 OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 环境变量。对 syndesis 自定义资源的更改会触发 syndesis-operator (负责安装 Fuse Online)以重新部署 syndesis-server。新的默认行为是 API 不再公开在 3scale 中发现。

    不要编辑 syndesis-server DeploymentConfig 对象来设置 OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 环境变量。这不起作用,因为 syndesis-operator 恢复了您的更改。 syndesis -operator 确保仅部署 Fuse Online,并且始终根据复合自定义资源部署。

  4. 重新发布任何启用了发现的 API 供应商集成,并在您刚才禁用发现的项目中创建。

    换句话说,如果您禁用了该集成的 API 发现功能,而为创建 API 供应商集成的项目启用了发现,则不需要重新发布 API 供应商集成。

结果

在 3scale 中不再可发现相关 OpenShift 项目中创建的 API 供应商集成的 API。

当 Fuse Online 发布(或重新发布)位于相关项目中的 API 供应商集成时,Fuse Online 提供了一个外部 URL,用于调用 API 提供程序集成操作。

2.3. 在 OCP 上运行的 Fuse Online 环境中添加示例数据

为了帮助新用户了解如何与 Fuse 在线创建集成,您可以在 Fuse Online 环境中添加示例数据。示例数据包括:

  • PostgresDB 连接,提供对 SQL 数据库的访问,其中包含有关任务的记录。新用户可以创建使用此连接一次或多次用来查询、添加、修改或删除记录的集成。
  • To Do app,允许用户确认 AMQ 到 REST API 示例集成可以正常工作。

另外,除了向 Fuse Online 环境添加示例数据外,任何用户都 可以请求 Fuse 在线评估环境,其中包含示例数据。然后,新用户可以根据 Fuse Online Sample Integration Tutorials 中的说明创建示例集成。

先决条件

  • Fuse Online 7.5 已安装并在 OCP on-site 上运行。
  • 已安装 oc 客户端工具,并连接到安装了 Fuse Online 的 OCP 集群。
  • 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
  • 您有一个 红帽开发人员帐户,供您知道您的用户名和密码。安装脚本会提示您输入这些凭证,以便可以针对 https://developers.redhat.com 进行验证。有关创建帐户的详情,请参阅 访问和配置 Red Hat Registry

流程

  1. 使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:

    $ oc login -u developer -p developer

  2. 确保当前项目是 Fuse Online 运行的项目。查看当前项目:

    $ oc project

  3. 编辑 syndesis 自定义资源:

    1. 调用以下命令,这通常会在编辑器中打开资源:

      oc edit syndesis
    2. 在资源末尾添加以下行:

      spec:
        demoData: true
        addons:
          todo:
            enabled: true
    3. 保存资源。

      将这个更改保存到 syndesis 自定义资源可触发 syndesis-operator (负责安装 Fuse Online)以重新部署 syndesis-server

  4. 确认重新部署的服务器提供了示例数据:

    1. 在浏览器中显示 Fuse Online 控制台。
    2. 在左侧导航面板中,单击 Connections
    3. 确认 PostgresDB 连接显示。

2.4. 在 OCP 上升级 Fuse Online

要在 OCP 上升级 Fuse Online,请下载最新的 Fuse Online 版本并运行更新脚本。

全新的应用程序镜像(包括补丁和安全修复)会针对 Fuse Online 发布。您会收到通过红帽的勘误更新频道通知这些更新。然后您可以升级 Fuse Online 镜像。

以下升级的升级步骤是相同的:

  • 从 Fuse Online 7.4 到 Fuse Online 7.5
  • 从 Fuse Online 7.5 版本到较新的 Fuse Online 7.5 版本

先决条件

  • 您已在 OCP on-site 上安装并正在运行 Fuse Online 的版本 7.4。或者,您安装并运行 OCP 上 Fuse Online 的 7.5 Online 版本,您想要升级到新的应用程序镜像。

    如果您在 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 集群。
  • 具有集群管理权限的用户可让您在集群中具有访问的任何项目中安装或升级 Fuse Online。

流程

  1. 从以下位置下载包含 Fuse 在线安装脚本的软件包:

    https://github.com/syndesisio/fuse-online-install/releases/tag/1.8

    在文件系统中方便的位置解包下载的存档。fuse-online-install-1.8 目录包含用于升级 Fuse Online 的脚本和支持文件。

  2. 更改到包含提取存档的目录。例如:

    $ cd fuse-online-install-1.8

  3. 使用有权升级 Fuse Online 的帐户登录到 OpenShift。例如:

    $ oc login -u developer

  4. 调用以下命令,它将返回当前项目的名称,以确保当前项目是安装了 Fuse Online 的项目:

    $ oc project

    如果您需要切换到安装 Fuse Online 的项目,请使用包含 Fuse Online 的 OpenShift 项目的名称调用以下命令:

    $ oc project project-name

  5. 要检查您要升级到的版本,请使用 --version 选项运行更新脚本,如下所示:

    $ bash update_ocp.sh --version

  6. 按如下方式调用更新脚本:

    $ bash update_ocp.sh

    要了解更多有关脚本的信息,请调用 $ bash update_ocp.sh --help

    在基础架构升级过程中和之后,现有集成将继续与 旧版本的 Fuse Online 库和依赖项运行。

  7. 升级 Fuse Online 集成,如下所示:

    1. 在 Fuse Online 中,选择您要升级的集成。
    2. 选择 编辑
    3. 选择 Publish 来重新发布集成。

    重新发布集成会强制重新构建使用最新的 Fuse 在线依赖项。

2.5. 从 OCP 项目卸载 Fuse Online

您可以从 OCP 项目中卸载 Fuse Online,而不删除该项目中的项目或任何其他项目。卸载 Fuse Online 后,运行的集成将继续运行,但您无法再编辑或重新发布它们。

前提条件

  • 您有一个 OCP 项目,在其中安装了 Fuse Online。
  • 您导出了在安装了 Fuse Online 的一些其他 OpenShift 项目中可能要使用的集成。如有必要,请参阅 导出集成

流程

调用以下命令:

$ oc delete syesis app

此命令会删除 Fuse Online 基础架构。

2.6. 删除包含 Fuse Online 的 OCP 项目

删除安装了 Fuse Online 的 OpenShift 项目会删除项目中的所有内容。这包括已定义的所有集成以及运行的所有集成。

先决条件

  • 您有一个 OCP 项目,在其中安装了 Fuse Online。
  • 您导出了在安装了 Fuse Online 的一些其他 OpenShift 项目中可能要使用的集成。如有必要,请参阅 导出集成

流程

调用 oc delete project 命令。例如,要删除名称为 fuseonline 的 OpenShift 项目,请输入以下命令:

$ oc delete project fuseonline

2.7. 配置 Fuse Online 以增加存储容量

复合 自定义资源通过定义多个参数的值来配置 Fuse Online 环境。一个这样的参数是 volumeCapacity,它决定内部 PostgreSQL 数据库可用的存储量,其中 Fuse Online 存储连接器、连接、集成、活动和设置的数据。volumeCapacity 的默认设置是 1Gi。这适用于大多数 Fuse 在线环境。

当您运行 install_ocp.sh 脚本时,会出现 Fuse Online 配置,该脚本会在 OpenShift 项目中安装 Fuse Online。虽然可以增加内部数据库卷容量,但只能在没有您要保留数据的 Fuse Online 环境中执行此操作。换句话说,您无法为包含连接和集成的 Fuse Online 环境增加 volumeCapacity 设置。

先决条件

  • Fuse Online 7.5 已安装并在 OCP on-site 上运行。
  • 已安装 oc 客户端工具,并将其连接到您要安装 Fuse Online 的 OCP 集群,并增加卷容量。
  • 具有集群管理权限的用户可让您在集群中具有访问权限的任何项目中安装 Fuse Online。
  • 在您正在运行的 Fuse Online 环境中,遇到 Fuse Online 服务器错误,红帽技术支持已确定您需要安装一个大于默认数据库卷容量的新 Fuse Online 环境。
  • 如果要在已经运行 Fuse Online 的 OpenShift 项目中增加 Fuse Online 内部存储容量,您必须在开始操作过程前进行以下操作:

    1. 导出您要保留的所有 Fuse 在线集成。
    2. 删除所有 Fuse 在线集成。

流程

  1. 如果您还没有下载包含 Fuse 在线安装脚本的软件包,请立即从以下位置下载它:

    https://github.com/syndesisio/fuse-online-install/releases/tag/1.8

  2. 在文件系统中方便的位置解包下载的存档。fuse-online-install-1.8 目录包含用于安装 Fuse Online 的脚本和支持文件。
  3. 使用有权安装 Fuse Online 的帐户登录到 OpenShift。例如:

    $ oc login -u developer -p developer
  4. 确保当前项目是您要安装 Fuse Online 的项目。查看当前项目:

    $ oc project
  5. 在您下载安装脚本的目录中,运行该脚本以获取 复合 自定义资源,您要在后续步骤中进行编辑。

    $ bash install_ocp.sh
  6. 获取 合成 自定义资源作为 YAML 文件:

    oc get syndesis app -o yaml > syndesis.yaml
  7. 编辑 syndesis.yaml 以增加 volumeCapacity 参数设置。例如:

    apiVersion: "syndesis.io/v1alpha1"
    kind: "Syndesis"
    metadata:
      name: "app"
    spec:
      components:
        db:
          resources:
            volumeCapacity: 10Gi
  8. 使用新名称保存编辑的复合资源,如 custom- syndesis.yaml

    OpenShift 将新 volumeCapacity 值复制到 PersistentVolumeClaim 对象。

    警告

    不要在 Fuse Online 环境中调用下一个命令,在其中有任何数据,如连接和集成,您不想删除。下一个指令中的 命令会删除此 Fuse 在线环境中所有 Fuse Online 对象的数据。

  9. 运行以下命令来删除 Fuse Online 数据:

    oc delete syndesis app
  10. 创建新的 syndesis 自定义资源,该资源配置增加的卷容量。在命令行中,指定您更新 volumeCapacity 设置的 .yaml 文件。例如:

    oc create -f custom-syndesis.yaml

后续步骤

在 Fuse Online 环境中,您可以增加内部存储容量、导入集成、在导入的集成中配置连接并发布集成。

第 3 章 监控 OCP 上的 Fuse Online 与 Prometheus 集成

当您在 OCP 现场安装 Fuse Online 时,环境包括安装 Fuse Online 的 OpenShift 项目中的 Prometheus 实例。您可以访问 Prometheus 仪表板来监控 Fuse 在线集成。

先决条件

  • 您正在运行 OCP 现场。
  • Fuse Online 安装在 OpenShift 项目中。

流程

  1. 登录 OpenShift 控制台。
  2. 打开安装 Fuse 在线的项目。
  3. 在 OpenShift 控制台左侧窗格中,选择 Applications > Routes
  4. syndesis-prometheus Hostname URL 在新的浏览器标签页或窗口中打开 Prometheus 仪表板。

其他资源

有关如何配置现有外部 Prometheus 实例以监控 Fuse Online 的详情,请参考 监控 Red Hat Integration

第 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 的每个安装重复这个过程。对于同一集群中的 Fuse Online 环境,但您可以使用同一服务帐户公开公共 API,但建议为每个安装使用不同的服务帐户来提高安全性。

先决条件

  • 您有一个 OCP 项目,在其中安装了 Fuse Online。
  • 您可以使用外部 CI/CD 工具,您希望它将标记为集成从一个 Fuse Online 环境复制到另一个。
  • 创建 OpenShift 公共 OAuth 代理应用的用户必须具有集群管理特权。

流程

  1. 创建一个具有您指定的名称的 OpenShift 服务帐户。例如,以下命令会创建 cicd-client 服务帐户:

    $ oc create serviceaccount cicd-client
  2. 为新服务帐户授予访问 Fuse Online 公共 API 的权限。例如,如果 syesis 是安装了 Fuse Online 的 OpenShift 项目的名称,如果 cicd-client 是新服务帐户的名称,则您将调用以下命令:

    $ oc policy add-role-to-user edit system:serviceaccount:syndesis:cicd-client
  3. 调用以下命令以创建 OpenShift 模板以公开 Fuse Online 公共 REST API 端点:

    $ oc create -f https://raw.githubusercontent.com/syndesisio/syndesis/1.8.x/install/support/syndesis-public-oauth-proxy.yml
    注意

    在模板中,资源名称是 syndesis-public-oauth-proxy,而模板本身的名称则是 syndesis-public-oauthproxy。正如您所见,资源名称 hyphenates oauthproxy,但模板文件名没有。

  4. 调用以下命令以创建运行 Fuse Online 公共 OAuth 代理进程的 OpenShift 应用。

    对于 OpenShift Container Platform 4.2,还要指定 -p OAUTH_PROXY_TAG=4.2

    $ oc new-app --template=syndesis-public-oauthproxy \
        -p PUBLIC_API_ROUTE_HOSTNAME=EXTERNAL_HOSTNAME \
        -p OPENSHIFT_PROJECT=$(oc project -q) \
        -p OPENSHIFT_OAUTH_CLIENT_SECRET=$(oc sa get-token syndesis-oauth-client) \
        -p SAR_PROJECT=$(oc project -q)

    EXTERNAL_HOSTNAME 替换为 Fuse 在线环境的公共地址。例如,地址可能是类似于 public-fuse-online.127.0.0.1.nip.io 的对象。

    此命令使用您在上一步中创建的 syndesis-public-oauthproxy 模板来创建公开 Fuse Online 公共 REST API 的 OAuth 代理进程。此 OAuth 代理允许外部工具使用 OpenShift 服务帐户令牌通过新的公共网络地址访问 Fuse Online 公共 API。

结果

外部 CI/CD 工具可以使用 Fuse Online 公共 REST API 端点在 Fuse Online 环境中导出和导入 Fuse Online 集成。

后续步骤

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。

流程

  1. 获取您在公开此 Fuse Online 环境的公共 REST API 时创建的服务帐户的 secret 令牌名称。例如,如果 cicd-client 是服务帐户的名称,您将调用以下命令:

    $ oc describe serviceaccount cicd-client

    这将显示 cicd-client 服务帐户的信息列表,其中包括其两个令牌的名称,如下所示:

    Tokens:      cicd-client-token-gxb25
                 cicd-client-token-gxdnv
  2. 显示其中一个令牌的内容。例如:

    $ oc describe secret cicd-client-token-gxb25

    这将显示信息列表,包括显示 token: 的数据部分,后跟一个长的随机字符。这是服务帐户的两个机密令牌之一。

  3. 复制机密令牌,将其粘贴到文件中并保存。

结果

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>]

[options]

指定您选择的 curl 选项。

<media-type>

对于导出和导入端点,请指定 multipart/form-data。对于所有其他端点,请指定 application/json

<token>

为公开公共 REST API 时创建的 OpenShift 服务帐户指定 secret 令牌。

<base-url>

指定具有集成、连接或环境标签的 Fuse Online 环境的基本 URL,您希望端点进行操作。

<endpoint>

指定您要调用的端点。

[--request <HTTP-method>]

(可选)指定 HTTP 方法,例如 --request POST

[-d <data>]

(可选)根据被调用的端点,指定端点所需的参数。例如,要将集成的环境标签更改为 测试,您可以指定 -d 'test'

[-o <filename>]

另外,如果您需要指定包含输出的文件名称,请使用文件名指定 -o curl 选项,例如 -o export.zip

以下 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 章 使用外部工具导出/导入 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。

流程

  1. 在左侧的 Fuse Online 导航面板中,单击 Integrations
  2. 在集成列表中,在您要标记的集成右侧,点 Kebab 显示弹出菜单并点 Manage CI/CD
  3. 在出现的对话框中,执行以下操作之一或多个:

    • 如果要标记此集成的环境,请选中该环境左侧的复选框。
    • 如果要标记此集成的环境已被选择,请保留它。
    • 如果您需要为环境创建标签,请单击 Manage CI/CD,这会显示一个用于创建新环境标签的对话框。创建您需要的标签,然后返回到此流程来标记集成。

    Fuse Online 将所选环境标签应用到集成。您可以将任意数量的环境标签应用到集成。

  4. 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 管道的集成。

流程

  1. 在 Fuse Online 中,在左侧导航面板中,单击 Integrations
  2. 在右上角,单击 Manage CI/CD
  3. Manage CI/CD 页面中:

    • 创建 CI/CD 环境标签:

      1. 单击 Add New
      2. Add Tag Name 对话框中,在 Tag Name 输入字段中,输入新环境标签的名称,如 test1
      3. Save。在 Manage CI/CD 页面中,您刚刚添加的环境标签有一个新条目。
    • 更改 CI/CD 环境标签:

      1. 在 CI/CD 环境标签列表中,在您要更改的标签的条目中,点 Edit
      2. Edit Tag 对话框中,根据需要更改名称。
      3. Save 在环境标签列表中看到更新的名称。Fuse Online 将更新的名称应用到已标记为您更改的环境标签的每个集成。
    • 删除 CI/CD 环境标签:

      1. 在 CI/CD 环境标签列表中,在您要删除的标签的条目中,单击 Remove
      2. 在确认对话框中,单击 Yes。Fuse Online 删除环境标签,并从标记了它的任何集成中删除已删除的环境标签。

后续步骤

标记与新环境标签的集成。请参阅 标记 CI/CD 集成

5.4. 调用 Fuse Online 公共 API 导出端点

在使用外部工具将 Fuse 在线集成从一个 Fuse Online 环境复制到另一个 Fuse 之前,必须完成以下任务:

用于导出特定环境集成的端点

要导出标记为特定环境的集成,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/swagger.json 的 Fuse Online 环境中提供了定义公共 REST API 端点的 OpenAPI 文档。但是,本文档将 tags 对象定义为有三个标签: public-apiextensionintegration-support。对于 Fuse Online,只有使用 OpenShift 公共 OAuth 代理进程时,只能访问 public-api 标签。您应该忽略另外两个标签。

6.1. 获取集成状态的端点

此端点返回指定集成的状态。状态为 RunningStoppedPendingError

方法和端点

GET

/public/integrations/{id}/state

表 6.1. 参数

Name类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{id}

字符串

所需的 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类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{id}

字符串

所需的 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类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{id}

字符串

必需。要为指定环境标记的集成名称或内部 ID。请参阅 如何查找集成 ID

其他参数

--request PATCH

 

指定 PATCH 方法。

-d [env{,…​}]

字符串

必需。指定您要添加到指定集成的一个或多个、以逗号分隔的环境标签。您必须已创建了 environment 标签;端点无法创建标签。请参阅 CI/CD 标记集成

请求示例

在以下示例中,端点为 test2test3 环境标记 计时器到日志 的集成:

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类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{id}

字符串

必需。要标记的集成的名称或内部 ID。请参阅 如何查找集成 ID

其他参数

--request PUT

 

指定 PUT 方法。

-d [env{,…​}]

字符串

必需。指定一个或多个以逗号分隔的环境标签。端点标记这些环境的指定集成。您必须已创建了 environment 标签;端点无法创建标签。请参阅 CI/CD 标记集成

请求示例

在以下示例中,端点会标记 test2test3 环境的 计时器到日志 集成。如果集成之前标记为任何其他环境,端点会从集成中删除这些标签。

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类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{id}

字符串

必需。要发布的集成的名称或内部 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类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{id}

字符串

必需。要停止的集成的名称或内部 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类型描述

所需的标头参数

-H "Content-Type: <media-type>"

multipart/form-data

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{env}

字符串

必需。您在 Fuse Online 控制台中创建的环境标签。端点导出标记为此环境的集成。

查询参数

all=true

字符串

可选的。指定这个选项,以导出 Fuse Online 环境中的所有集成。端点导出每个集成的当前版本。如果集成还没有标记为指定环境,则端点会将指定的环境标签添加到集成。您必须已创建了 environment 标签;端点无法创建标签。

其他参数

-o export.zip

字符串

如果您指定了查询参数,则需要此项。如果没有这个选项,导出的集成位于名为 export.zip?all=true 的文件中。

请求示例

在本例中,端点会导出标记为 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类型描述

所需的标头参数

-H "Content-Type: <media-type>"

multipart/form-data

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

其他参数

data=@export.zip

字符串

必需。这是包含您要导入的集成的文件。您必须之前已调用导出端点来获取此文件。

environment={env}

字符串

必需。要添加到每个导入集成的环境标签。您必须已创建了 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类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{id}

字符串

所需的 path 参数。要标记的集成的名称或内部 ID。请参阅 如何查找集成 ID

{env}

字符串

所需的 path 参数。要从指定集成中删除的环境标签。

其他参数

--request DELETE

 

指定 DELETE 方法。

请求示例

在以下示例中,端点从 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类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{env}

字符串

必需。您要创建的环境标签。

生成

不生成任何内容,但会以如下方式响应:

204 没有内容

成功。

400 错误请求

您指定的环境名称已存在。

5XX 错误

服务器无法履行请求。

请求示例

在以下示例中,端点创建 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类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

withUses

布尔值

可选的。如果命令指定了 Uses=true,则端点会返回环境标签,以及标记为该标签的集成数量。如果没有指定,或设置为 false,端点只返回环境标签。

生成

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类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{env}

字符串

必需。要更改的环境标签。

其他参数

-d {env}

字符串

必需。指定环境的新标签。您必须已创建了 environment 标签;端点无法创建标签。

--request PUT

 

指定 PUT 方法。

请求示例

在以下示例中,端点将 dev1 环境标签更改为 dev2

/public/environments/dev1 -d ‘dev2’ --request PUT

dev1 环境标记的集成不再具有该标签。现在,这些集成标记为 dev2 环境。

响应示例

没有响应状态代码为 204的内容

6.13. 从所有集成中删除环境标签的端点

此端点从应用到它的每个集成中删除指定的环境标签。

方法和端点

DELETE

/public/environments/{env}

表 6.13. 参数

Name类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{env}

字符串

必需。要从具有它的集成中删除的环境标签。

其他参数

--request DELETE

 

指定 DELETE 方法。

请求示例

在以下示例中,端点会从具有它的任何集成中删除 dev1 标签:

/public/environments/dev1 --request DELETE

响应示例

没有响应状态代码为 204的内容

6.14. 用于更改连接属性的端点

此端点更改指定连接的属性。当您导入具有需要配置的连接的集成后,这通常很有用。例如,您可能需要更改连接使用的凭证。

方法和端点

POST

​/public​/connections​/{id}​/properties

表 6.14. 参数

Name类型描述

所需的标头参数

-H "Content-Type: <media-type>"

application/json

端点所需的介质类型。

-h "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-h 'Authorization: Bearer <token> '

Custom

公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的 secret 令牌。请参阅 获取 secret 令牌

路径参数

{id}

字符串

必需。将 {id} 替换为您要更改其属性的连接 ID。对于连接 ID,指定以下之一:

  • 连接的名称,例如: PostgresDB。如果连接名称有任何空格或特殊字符,您必须指定 HTML 转义字符。
  • 当您查看连接详情时,内部连接 ID 位于 Fuse Online 控制台 URL 中。要查看连接的详情,请在左侧导航面板中点 Connections。然后点击您要查看其详情的连接。当连接详情在浏览器中可见时,您将在 URL 的末尾看到类似如下的内容: /connections/i-LaupI8XznJ4LcuWiwaz。此连接的 ID 是 i-LaupI8XznJ4LcuWwiwaz

请求示例

以下示例更改了 PostgresDB 连接的属性。user 属性的新值为 myuserpassword 属性的新值为 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 章 启用 Apache Camel K 在 OCP 上加快 Fuse 在线部署

您可以将 Apache Camel K 技术预览安装为 Fuse Online 的可选附加组件,以便在 OCP 上加快集成部署。

重要

Camel K 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。

这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview

以下主题介绍了 Apache Camel K,并解释了如何使用 Fuse Online 安装它:

7.1. 关于 Apache Camel K

Apache Camel K 是一个轻量级云集成平台,基于用于企业集成模式的 Apache Camel 框架。Camel K 在 Kubernetes、OpenShift 和 Knative 上原生运行,专为无服务器和微服务架构设计和优化。

Camel K 在云中运行集成时提供自动化和性能优化。它使用 Kubernetes Operator SDK 来部署集成(例如,在 OCP 上自动创建服务和路由)。

Camel K 是 Apache Camel 开源社区的子项目。如需了解更多详细信息,请参阅 https://github.com/apache/camel-k

7.2. 使用 OCP 上的 Fuse Online 安装 Apache Camel K

Camel K operator 在 Fuse Online 中可用,以便在 OCP 上部署并重新部署集成时(例如,从 1-2 分钟到几秒钟)加快上转时间。本节解释了如何使用 Syndesis 开源项目中的 Fuse Online 安装 Camel K。

重要

技术预览中的 Camel K 运行时不支持 Fuse 在线扩展。

先决条件

  • 您必须连接到您要安装 Fuse Online 的 OCP 集群,或连接到为开发创建的本地集群。
  • 您必须具有集群管理特权。

流程

  1. 下载并解压缩最新的 Fuse Online 1.8.x 版本: https://github.com/syndesisio/fuse-online-install/releases/tag/1.8
  2. 设置 Fuse Online 以使用 Camel K:

    $ bash install_ocp.sh --setup --camel-k

    这会在集群中安装 Fuse Online 和 Camel K operator。

  3. 在您的集群中安装 Fuse Online 和 Camel K:

    $ bash install_ocp.sh --camel-k

    默认情况下,这会在当前的 OCP 项目中安装 Fuse Online 和 Camel K 运行时引擎,脚本则计算访问 Fuse Online 的路由。如果已安装 Fuse Online,则仅安装 Camel K。

    注意

    当将 camel-k 作为运行时引擎安装时,这将替换 spring-boot 的经典 Camel 集成运行时。

更多信息

如需了解更多详细信息,请参阅在 OCP 上安装 Fuse Online

第 8 章 重新品牌 Fuse 在线用户界面

您可以通过替换 Fuse Online 应用程序名称、徽标、图标和其他用户界面详情来重新品牌 Fuse Online。您可以通过在 syndesis-ui 部署文件中将自定义资源挂载为 ConfigMap 对象。

先决条件

  • 在客户管理的环境中,在 OpenShift Container Platform on-site 上安装并运行 Fuse Online。
  • oc 客户端工具连接到安装了 Fuse Online 的 OCP 集群。
  • 您有安装 Fuse 在线的权限。

流程

  1. 通过调用以下命令,获取安装 Fuse Online 的 syndesis-ui pod 的名称:

    oc get pods
  2. 通过运行以下命令来获取可自定义的徽标、图标、字体和背景,并将 SYNDESIS_UI_POD_NAME 替换为运行 syndesis-ui 的 pod 的实际名称:

    oc rsync SYNDESIS_UI_POD_NAME:/opt/app-root/src/static/media ~/

    这会将用户界面资源放在 ~/media/ 文件夹中。

  3. 编辑 并保存包含标头徽标的文件,即 '~/media/syndesis_logo_full_darkbkg.9c467d96.svg
  4. 通过创建一个包含更新的徽标文件的 ConfigMap 对象,将修改的文件上传到集群:

    cd ~/
    oc create configmap syndesis-ui-custom-logo --from-file=media/syndesis_logo_full_darkbkg.9c467d96.svg
  5. 修改 syndesis-ui 部署文件,以挂载 syndesis-ui-custom-logo ConfigMap 对象。通过调用 oc edit dc/syndesis-ui 或使用 OpenShift Web 控制台,选择 Applications > Deployments > syndesis-ui > Actions > Edit YAML 来完成此操作。

    1. 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
    2. spec.template.volumes 下,添加以下内容:

      -name: syndesis-ui-custom-logo-volume
       configMap:
        name: syndesis-ui-custom-logo
    3. 保存 syndesis-ui 部署文件。
  6. 对位于 '~/media 文件夹中的每个文件以及您要自定义的每个文件重复步骤 3 到 5。
  7. 编辑并保存包含应用程序标题的文件:

    1. 创建一个目录来更新该文件:

      mkdir ~/syndesis-custom/src
    2. 调用以下命令并将 SYNDESIS_UI_POD_NAME 替换为运行 syndesis-ui 的 pod 的实际名称来获取应用程序标题文件:

      oc rsync SYNDESIS_UI_POD_NAME:/opt/app-root/src/index.html ~/syndesis-custom/src
    3. 替换应用标题。例如:

      sed -i 's/<title>.*<\/title>/<title>NEW_TITLE<\/title>/g' ~/syndesis-custom/src/index.html
  8. 通过创建一个包含更新文件的 ConfigMap 对象,将修改后的应用程序标题文件上传到集群:

    cd ~/syndesis-custom/src
    oc create configmap syndesis-ui-custom-index --from-file=index.html
  9. 通过挂载 syndesis-ui - custom-index ConfigMap 对象来修改 syndesis-ui 部署:

    1. spec.template.containers.volumeMounts 下,添加以下内容:

      -name: syndesis-ui-custom-vindex-olume
       mountPath: /opt/app-root/src/index.html
       subPath: index.html
    2. spec.template.volumes 下,添加以下内容:

      -name: syndesis-ui-custom-index-volume
       configMap:
        name: syndesis-ui-custom-index
    3. 保存 syndesis-ui 部署文件。

结果

保存 syndesis-ui 部署文件会自动重新部署 Fuse Online,该用户界面反映了您的更改。后续的 Fuse 在线重新部署也会反映您的更改。

法律通告

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