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

Red Hat Fuse 7.11

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

Red Hat Fuse Documentation Team

摘要

在 OpenShift Container Platform 上安装、管理和操作 Fuse Online 的信息及在客户管理的环境现场、云端或混合云上安装、管理和操作 Fuse Online。

前言

您可以在 OpenShift Container Platform(OCP)上安装并运行 Fuse Online on-site。当 Fuse Online 运行现场时,除在 OpenShift Dedicated 上运行 Fuse Online 的功能之外,还会提供其他功能。

现场 这一术语意味着客户管理的环境;红帽不管理 OpenShift 环境。客户管理的环境可在内部、云端或混合云中。

详情请查看以下主题:

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看我们的 CTO Chris Wright 信息

第 1 章 在 OCP 4.x 上安装 Fuse Online

Fuse Online 是一个灵活定制的开源平台,可提供核心集成功能作为服务。

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

如果您有适当的权限,可从 OperatorHub 安装 operator,请以 OpenShift developer 用户身份安装 Fuse Online。您可以安装默认的 Fuse Online 实例或自定义的 Fuse Online 实例。对于自定义的 Fuse Online 实例,您必须编辑默认自定义资源。

重要

Fuse Online 安装过程需要访问 registry.redhat.io,这是适用于容器镜像的红帽生态系统目录。

以下主题提供了安装 Fuse Online 的详细信息:

1.1. 在 OCP 4.x 上安装 Fuse 所需的步骤概述

要在 OCP 4.x 上安装 Fuse Online,以下主要步骤:

  1. 生成用于配置红帽容器镜像身份验证的 OpenShift secret。
  2. 将 Fuse Online Operator 从 OperatorHub 安装到集群中的项目(命名空间)。
  3. 另外,如果您想要包含外部数据库来持久保留连接和集成定义,则创建一个 OpenShift secret。
  4. 将 Fuse Online 实例添加到 OpenShift 4.x 项目。

    (可选)编辑自定义资源以启用一个或多个附加功能,并/或实现一个或多个自定义配置设置。

  5. 另外,还可向其他开发人员用户授予权限,以便他们能够访问 Fuse Online Web 控制台。

1.1.1. 在受限环境中安装 Fuse Online 的注意事项(OCP 4.6 及更新的版本)

在受限环境中安装 Fuse Online 之前,您必须完成以下任务:

前提条件

  • 在受限环境的 OpenShift 集群上具有集群管理员访问权限。

流程

  • 将所有 Fuse Online 镜像镜像到您的专用网络中的可用位置。有关在受限网络中为 OpenShift Operator 安装镜像的更多信息,请参阅 OpenShift 文档中的 在受限网络中使用 Operator Lifecycle Manager 部分。
  • 使用 Fuse 存储库内容设置自定义 Maven 存储库。有关详细信息,请参阅 红帽解决方案: 如何为 Fuse 7 创建离线 Maven 存储库
  • 在安装 Fuse Online 之前,请编辑 Fuse Online 自定义资源。使用 maven:mirror 设置来指示 Fuse Online 仅查看单个指定的 Maven 存储库,以便在构建集成时访问 Maven 工件。

    在以下示例中,将 https://customRepo 替换为您的离线仓库的 URL:

    components:
      server:
        features:
          maven:
            mirror: https://customRepo
  • HTTPS_PROXYHTTP_PROXYNO_PROXY 环境变量设置为 syndesis-oauthproxy。安装 Fuse Online 或之后,您可以设置这些环境值。

    在安装 Fuse Online 后,要在 syndesis/app 中设置环境值:

    1. 使用以下命令从 proxy/cluster 检索值:

      myhttpProxy=$(oc get proxy/cluster -ojsonpath='{.status.httpProxy}')
      
      myhttpsProxy=$(oc get proxy/cluster -ojsonpath='{.status.httpsProxy}')
      
      mynoProxy=$(oc get proxy/cluster -ojsonpath='{.status.noProxy}')
    2. 使用以下 oc patch 命令设置值:

      oc patch syndesis/app --type=merge -p "{\"spec\": {\"components\": {\"oauth\": {\"environment\": {\"HTTPS_PROXY\": \""${myhttpsProxy}"\", \"HTTP_PROXY\": \"${myhttpProxy}\", \"NO_PROXY\": \"${mynoProxy}\"}}}}}"

      这个命令会返回以下确认:

      syndesis.syndesis.io/app patched

      由于您更改了 syndesis-oauthproxy 部署,所以 OpenShift 会重新创建 syndesis-oauthproxy-1-deploy Pod。

  • 默认情况下,todo 示例应用程序被禁用(在 Fuse Online 自定义资源中,addon:todo:enabled 值设为 false)。(可选)在受限环境中安装 Fuse Online 后,您可以从 https://github.com/syndesisio/todo-example 下载 todo 示例应用程序,并按照 Readme 文件中的步骤,将存储库 URL 更改为专用网络上可用的位置。

1.2. 在安装 Fuse Online 前,需要编辑默认自定义资源

Fuse Online 安装包括一个默认的自定义资源,用于指定可配置 Fuse Online 环境附加组件功能和参数设置的默认设置。

如果您希望安装 Fuse Online 环境,则需要编辑默认自定义资源:

  • 使用您指定的 URL 用于可以访问 Fuse Online 控制台的 OpenShift 路由。默认值是安装过程计算此路由。
  • 使用外部数据库来存储连接和集成定义。默认值是环境使用内部数据库。
  • 增加可用于持久保留连接和集成定义的内部存储量。默认值为 1Gi,足以满足大多数 Fuse 在线环境。

要为其中任一个这样的行为配置 Fuse Online 环境,在安装 Fuse Online 时,MUST 编辑自定义资源。换句话说,您无法更改安装的 Fuse Online 环境的配置来实现任何这些行为。另外,在安装为任何这些行为配置的 Fuse Online 环境后,您无法更改安装环境中的行为。

1.3. 配置 Fuse Online 的自定义资源属性的描述

除了安装前可以指定的自定义资源属性外,还有一些自定义资源属性,您可以在安装后或安装后更改。

表 1 提供了可配置的自定义资源设置的简单描述,并指示何时更改它们: before 和/或安装后。要实现您想要的 Fuse Online 配置,请使用此表中的信息确定在安装前需要如何更改自定义资源,或您希望在安装后更改自定义资源。然后执行适当的步骤:

对于 OCP 4.x:

表 1.1. 可配置自定义资源设置

功能/设置当可以将其设置为时规格

此表 介绍了与增强活动跟踪相关的更多活动跟踪信息。

仅在安装前设置

addons:
jaeger:
enabled: true
clientOnly: false
operatorOnly: false

启用了增强的活动跟踪功能。如果要自定义 Jaeger 配置,您可以将 clientOnlyoperatorOnly 设置为 true

外部数据库

有关使用外部数据库的额外信息,请参考此表。

仅在安装前设置

spec:
components:
database:
externalDbURL: postgresql://custom-postgres:5432
user: db-user-name
name: db-name


replace custom-postgres:5432 替换为 PostgreSQL 数据库的主机名和端口。
db-user-name 替换为可访问该数据库的用户帐户的名称。
db-name 替换为数据库的名称。

连接和集成 的内部存储容量

如果您也指定了外部数据库,则忽略。

有关增加内部存储的附加信息,请参考此表。

仅在安装前设置

spec:
components:
database:
resources:
volumeCapacity: 1Gi
volumeName: my-volume


使用您需要的存储量替换 1Gi。默认值为 1Gi

my-volume 替换为要用于内部存储的卷名称。这个参数是可选的。

用于访问 Fuse Online 控制台的 OpenShift 路由

仅在安装前设置

spec:
routeHostname: project.route.com


project.route.com 替换为可以访问 Fuse Online 控制台的 OpenShift 路由。
例如: north-project.6a63.fuse-online.openshiftapps.com

内存和 CPU

增加可用于一个或多个组件的默认内存量。

每个组件定义自己的内存要求,这意味着每个 pod 对它所分配的内存量有限制。如需有关限制和请求设置的信息,请参阅 配置集群内存以满足 OpenShift 文档中的容器内存和风险要求 部分。

您还可以为服务器组件指定 CPU 资源。

数据库 组件是存储连接和集成定义的内部数据库。

组件提供业务逻辑,如服务器负载的连接器。

prometheus 组件监控 Fuse 在线基础架构组件和 Fuse 在线集成。

仅在安装前设置

components:
server:
resources:
limit:
memory: "1024Mi"
cpu: "800m"
request:
memory: "512Mi"
cpu: "500m"
meta:
resources:
limit:
memory: "750Mi"
request:
memory: "300Mi"
database:
resources:
limit:
memory: "300Mi"
request:
memory: "300Mi"
prometheus:
resources:
limit:
memory: "750Mi"
request:
memory: "750Mi"

3scale 发现

公开 Fuse Online API 供应商集成的 API,以便它们可以通过 Red Hat 3scale 发现。

如需更多信息: 配置 Fuse Online 以启用 API 的 3scale 发现功能

在安装前或之后设置

components:
server:
features:
managementUrlFor3scale: https://url-for-3scale


指定 3scale 用户界面的 URL。

备份

其他设置步骤请参考 备份 Fuse 在线环境

在安装前或之后设置

spec:
backup:
schedule: interval


使用备份之间所需持续时间替换 间隔。将 cron 实用程序格式用于 间隔预定义的调度。不要在间隔的前面指定 @ 符号。

节点关联性容限

确定 Fuse Online 基础架构组件和集成 pod 放置到集群内的节点上。

节点关联性允许您为 Fuse Online pod 指定关联性,到一组要放置的节点。

借助容限(toleration),您可以控制在哪些节点上运行 Fuse Online pod,并防止其他工作负载使用这些节点。

另请参阅: 配置 Fuse Online pod

在安装前或之后设置

注:infraScheduling 用于 Fuse Online infrastructure 组件部署。对于 Fuse Online 集成部署,请将 infraScheduling 替换为 IntegrationScheduling

spec:
infraScheduling:
tolerations:
key: value
operator: value
effect: value


spec:
infraScheduling:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
weight:
preference:
matchExpressions:
key: value netobserv operator: values: iwl value1,{0} value2





集成限制

指定运行集成的最大数量。默认 0 不限制运行集成的数量。

在安装前或之后设置

components:
server:
功能:
integrationLimit: 0

数据库连接池

您可以调整服务器连接池配置来管理与数据库的连接。

有关数据库池配置的其他信息,请参考此表。

在安装前或之后设置

components:
server:
connectionPool:
connectionTimeout: 30000
idleTimeout: 600000
leakDetectionThreshold: 0
maxLifetime: 1800000
maximumPoolSize: 10
minimumIdle: 10

Java 选项

您可以为 syndesis-serversyndesis-meta 组件指定 Java 选项。

根据 Java 选项,您可以为组件指定不同的值。例如,您只能为 syndesis-server 设置 JVM 相关的参数,因为它需要更多的计算机资源而不是 synd-meta

在安装前或之后设置

components:+ server:
javaOptions:
-option_name=my_value meta:
javaOptions:
-option_name=my_value

使用 Java 选项名称替换 -option_name。您可以指定任何 Java 选项前缀(-D-X-XX)。

使用选项的值替换 my_value

例如,配置 HTTP 代理: components:+ server:
javaOptions:
-Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800 meta:
javaOptions:
-Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800'

Maven 参数

指定构建 Fuse 在线集成时要使用的其他 Maven 选项。

在安装前或之后设置

components:
server:
features:
maven:
additionalArguments:
"typeA=stringA typeB=stringB"


例如:
additionalArguments:
"-Dhttp.proxy=my_proxy -DpropA=valueA"

Maven Mirror

指定您希望 Fuse Online 在构建集成时访问 Maven 工件的单一存储库。忽略 Fuse Online 默认访问的 Maven 存储库。当您在受限环境中安装 Fuse Online 时,通常使用这个选项。

在安装前或之后设置

components:
server:
features:
maven:
mirror: https://customRepo

使用存储库的 URL 替换 'https://customRepo

Maven Repositories

指定 Fuse Online 环境需要访问的外部 Maven 存储库,除了 Fuse 在线访问的 Maven 存储库外。

在安装前或之后设置

components:
server:
features:
mavenRepositories:
customRepo1: https://customRepo1
customRepo2:https://customRepo2


customRepo 替换为存储库的名称。
对于每个存储库,指定其 URL。

监控

了解更多: 监控 OCP 上的 Fuse Online 与 Prometheus 集成

在安装前或之后设置

addons:
ops:
enabled: true

公共 REST API

额外设置步骤请参考 公开 Fuse Online 公共 REST API 端点供外部工具使用

在安装前或之后设置

addons:
publicApi:
enabled: true
routeHostname: public-syndesis.192.168.64.63.nip.io


Set routeHostname 到调用 Fuse Online REST API 端点的公共地址。集群设置决定了您需要指定的公共地址。在上例中,路由主机名对于 minishift 集群有效。

Todo addon
为测试目的、AMQ Broker 以及示例 PostgreSQL 数据库和示例数据库连接器提供示例集成应用程序。

在安装前或之后设置

spec:
addons:
todo:
enabled: false

用于受限环境中安装 Fuse Online,您必须确保在安装前将 todo addon 设置为 false (默认)。安装 Fuse Online 后,您可以从 https://github.com/syndesisio/todo-example 下载 todo 应用,并按照 Readme 文件中的步骤更改存储库 URL,将存储库 URL 更改为您的专用网络上可用的位置。

另请参阅 在 OCP 上运行的 Fuse Online 环境中添加示例数据

Auditing

查看对连接器、连接和集成的基本更改。

另请参阅 审计 Fuse 在线组件

注:这是一个技术预览功能。

在安装前或之后设置

components:
server:
功能:
审计:true

关于附加功能和配置设置

  • 增强的活动跟踪

    在安装 Fuse Online 时,默认启用使用 Jaeger 的活动跟踪。Fuse Online 安装(来自 OperatorHub 或命令行脚本)检测到 OperatorHub 是否存在并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情形,Fuse Online 使用自己的安装功能来安装 Jaeger。另外,您可以在安装 Fuse Online 前自定义 Jaeger 配置,如 About Configuring Fuse Online for Jaeger monitoring 部分所述。

  • 用于持久连接和集成的外部数据库

    Fuse Online 的默认安装提供一个内部 PostgreSQL 数据库,Fuse Online 用于持久连接和集成定义。您可以选择使用外部 PostgreSQL 数据库,如 OpenShift 默认提供的 PostgreSQL 模板之一。

  • 内部存储容量

    1Gi 的默认设置足以满足大多数 Fuse 在线环境。预计只有在推荐红帽技术支持时,才会为新的 Fuse Online 安装增加此设置。也就是说,您已运行另一个 Fuse Online 环境,您可能会遇到 Fuse Online 服务器错误,红帽技术支持确定您需要安装一个新的 Fuse Online 环境,且数据库卷容量大于默认值。

    要在已运行 Fuse Online 的 OpenShift 项目中增加 Fuse Online 内部存储容量,您必须首先卸载 Fuse Online。请参阅从 OCP 项目卸载 Fuse Online

  • 数据库连接池配置

    您可以配置以下 syndesis-server 数据库连接池属性:

    • connectionTimeout - syndesis-server 等待池的连接的最大毫秒数。最低可接受的连接超时时间为 250 ms。默认值为 30000(30 秒)。
    • idletimeout - 在连接被删除前,连接允许闲置的最大时间(以毫秒为单位)。值 0 表示闲置连接永远不会从池中删除。允许的最小值为 10000(10 秒)。默认值为 600000(10 分钟),
    • leakDetectionThreshold - 在记录一个可能的连接泄漏前,连接可能会超出池的时间(以毫秒为单位)。值 0 表示禁用泄漏检测。启用泄漏检测的最低可接受值为 2000(2 秒)。默认值为 0。
    • maxLifetime - 池中连接的最大生命周期(以毫秒为单位)。允许的最小值为 30000(30 秒)。默认值为 1800000(30 分钟)。
    • maximumPoolSize - 池允许达到的最大大小,包括空闲和正在使用的连接。默认值为 10。
    • minimumIdle - 池中维护的最小闲置连接数。默认值是 maximumPoolSize 的值。

1.4. 关于为 Jaeger 监控配置 Fuse Online

Jaeger 是用于在分布式服务之间追踪事务的开源软件。它对于对复杂微服务环境进行监控和故障排除特别有用。

安装 Fuse Online(从 OperatorHub 或使用命令行脚本)时,Fuse Online 安装会检测到 OperatorHub 是否存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情形,Fuse Online 使用自己的安装功能来安装 Jaeger。

默认的 Fuse Online 环境配置所有必需的 Jaeger 组件。另外,您可以编辑 Fuse Online 自定义资源,以指定只使用客户端/独立的服务器配置或混合 Jaeger 客户端和 Jaeger Operator 配置。

默认 Jaeger 配置

基本开箱即用的配置包含所有 Jaeger 组件。您可以通过实验其监控功能来开始了解 Jaeger 的工作原理。默认配置提供仅限内存、有限的后端存储功能。

使用默认 Jaeger 配置安装 Fuse Online 有以下结果:

  • Fuse 在线组件具有 Jaeger 通信 URL。
  • 已安装 Jaeger Operator。
  • Jaeger 自定义资源被配置为带有活动监控的默认配置。

使用默认 Jaeger 配置进行 Fuse Online 安装,具有以下整合自定义资源规格:

apiVersion: syndesis.io/v1beta2
kind: Syndesis
metadata:
  name: app
spec:
  addons:
    jaeger:
      enabled: true

clientOnlyoperatorOnly 未指定(默认设置为 false 时,默认情况下,Fuse Online 使用提供的 Jaeger 后端,以及 Jaeger 服务器配置提供的默认内存存储。

仅客户端/独立服务器配置

使用独立于客户端/独立的服务器配置,只为 Fuse Online 和外部配置的 Jaeger 后端配置客户端 URL 连接。Jaeger 后端的所有方面都是外部的,独立于 Fuse Online 环境和 Con ndesis-operator。这包括 Jaeger Operator 和 Jaeger 自定义资源。

要安装仅限客户端的 Jaeger 配置,请在安装 Fuse Online 前编辑自定义资源,如下所示:

例如:

apiVersion: syndesis.io/v1beta2
kind: Syndesis
metadata:
  name: app
spec:
  addons:
    jaeger:
      enabled: true
      clientOnly: true
      queryUri: https://jaeger-query-hostname:443/api
      collectorUri: https://jaeger-collector-hostname:14268/api/traces

混合 Jaeger 客户端和 Operator 配置

使用混合 Jaeger 客户端和 Jaeger Operator 配置,Fuse Online 安装 Jaeger Operator 以及 Jaeger 客户端功能。未安装 Jaeger 自定义资源。您必须安装自己的 Jaeger 自定义资源,以定义 Jaeger 服务器配置。这可让您利用 Fuse 在线提供的功能,并为您自己的环境定制 Jaeger 配置,例如,您可以将 Elasticsearch 或 Cassandra 用于数据存储。

安装混合 Jaeger 客户端和 Jaeger Operator 配置:

  • 在安装 Fuse Online 之前编辑自定义资源,如下例所示:

    apiVersion: syndesis.io/v1beta2
    kind: Syndesis
    metadata:
      name: app
    spec:
      addons:
        jaeger:
          enabled: true
          operatorOnly: true
  • 将 Jaeger 自定义资源命名为 syndesis-jaeger,如下例所示:

    apiVersion: jaegertracing.io/v1
    kind: Jaeger
    metadata:
      name: syndesis-jaeger
      ...
    spec:
       ....

    注: 或者,如果要为 Jaeger 自定义资源使用不同的名称,请在 Syndesis 自定义资源中设置 queryUricollectorUri,如 Client-only/independent server configuration 部分所述。

当创建带有 syndesis-jaeger 名称的 Jaeger 自定义资源时,Jaeger 实例会从 Fuse Online 集成收集数据。默认情况下,您可以在 Fuse Online 活动日志中查看这些数据。

1.5. 使用外部数据库安装 Fuse Online

如果要安装使用外部数据库的 Fuse Online 环境来持久连接和集成定义:

  • 使用 OpenShift 集群可以找到的主机名创建 postgreSQL 数据库。
  • 在安装 Fuse Online 之前,为外部数据库创建一个名为 syndesis-global-config 的 OpenShift secret。
  • 安装 Fuse Online。
  • 在部署 Fuse Online 之前,请编辑自定义资源来配置与外部数据库的连接。

先决条件

  • Fuse Online 尚未安装。
  • 已安装 oc 客户端工具,并连接到您要在其中安装 Fuse Online 的 OCP 集群。
  • 具有集群管理权限的用户为您提供了在集群中有访问权限的任何项目中安装 Fuse Online 的权限。

流程

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

    oc login -u developer -p developer
  2. 创建一个可供您在其上安装 Fuse Online 的 OpenShift 集群使用的 postgreSQL 数据库,并为以下配置选项定义值:

    • 连接用户名
    • 数据库名称
    • 数据库密码

      以下示例使用了 OpenShift 默认提供的其中一个 PostgreSQL 模板。

      注: 仅将 PostgreSQL 临时(postgresql-ephemeral)模板用于开发或测试目的。对于生产环境,请使用 PostgreSQL(postgresql)模板。

      oc new-app postgresql-ephemeral -p POSTGRESQL_USER=syndesis -p POSTGRESQL_PASSWORD=exdb-pwd -p POSTGRESQL_DATABASE=syndesisdb

      此命令返回配置 Fuse Online(如 URL)时所需的数据库的信息。

      有关创建数据库的信息,请参阅 OpenShift 文档中的 PostgreSQL 主题

  3. 创建并保存资源文件(例如,my-fuse-online-secret-cr.yml),其中包含以下内容:

    apiVersion: v1
    kind: Secret
    metadata:
      name: syndesis-global-config
      namespace: my-fuse-online-project
    type: Opaque
    stringData:
      POSTGRESQL_PASSWORD: exdb-pw

    my-fuse-online-project 替换为您要为其指定外部数据库的 OpenShift 项目的名称。

    exdb-pw 替换为第 2 步的密码。Fuse Online 将使用它作为访问外部数据库的密码。请注意,stringData 将密码值转换为 base64 编码值(因此您不必进行转换)。

    如需有关 OpenShift 机密的信息,请参阅 向容器集提供敏感数据

  4. 在集群中添加 secret,例如:

    oc apply -f my-fuse-online-secret-cr.yml

    在 OpenShift 集群中,syndesis-global-config secret 可用于使用指定外部数据库的自定义资源安装的 Fuse Online 环境。

  5. my-fuse-online-project 项目中安装 Fuse Online,您在 secret 的 YAML 文件中指定(第 4 步)。

    • 对于 OCP 4.6 及更新的版本,请按照 从 OperatorHub 安装 Fuse Online Operator 中的说明进行操作。在部署 Fuse Online 项目之前,在 OpenShift 4.x 项目中添加 Fuse Online 实例,请编辑自定义资源以指定外部数据库的使用,例如:

      apiVersion: syndesis.io/v1alpha1
      kind: Syndesis
      metadata:
        name: app
      spec:
        components:
          database:
            externalDbURL: "postgresql://syndesis-external-db:5432"
            user: db-user-name
            name: db-name
    • syndesis-external-db:5432 替换为外部 PostgreSQL 数据库的主机名和端口。
    • db-user-name 替换为连接用户名。
    • db-name 替换为数据库的名称。

结果

Fuse Online 安装过程使用自定义资源中的设置来确定安装的 Fuse 在线环境的配置。

正确安装和部署后,Fuse Online 会显示除 syndesis-db 之外所需的所有 pod。syndesis-db 不使用 syndesis- db,而是通过外部数据库的服务名称连接到数据库。如果外部数据库配置不正确,则 syndesis-server 无法初始化,Fuse Online 部署最终会出错。

1.6. 安装 Fuse Online

Fuse Online 是一个灵活定制的开源平台,可提供核心集成功能作为服务。如果您有适当的权限,可从 OperatorHub 安装 operator,请以 OpenShift developer 用户身份安装 Fuse Online。

以下是使用 operator 安装 Fuse Online 的一般步骤:

  1. 在 OpenShift 项目(命名空间)中创建 secret,以使用 registry.redhat.io 配置身份验证,以便 Fuse Online Operator 可以访问所需的安装模板。
  2. 将 Fuse Online Operator 安装到 OpenShift 项目(命名空间)。安装 Operator 后,Operator 会在所选命名空间中运行。
  3. 从安装的 operator 创建 Fuse Online 实例。您可以使用默认设置创建实例,或者您可以通过编辑实例的自定义资源来自定义实例。然后您可以从提供的 URL 访问 Fuse Online。

以下介绍了使用 operator 在 OCP 4.x 上安装 Fuse 的详细信息:

1.6.1. 使用 registry.redhat.io 身份验证。

在使用 registry.redhat.io 配置身份验证,然后才能在 OpenShift 上部署 Fuse 容器镜像。

先决条件

  • 集群管理员对 OpenShift Container Platform 集群的访问权限。
  • 已安装 OpenShift oc 客户端工具。如需了解更多详细信息,请参阅 OpenShift CLI 文档

流程

  1. 以管理员身份登录您的 OpenShift 集群:

    oc login --user system:admin --token=my-token --server=https://my-cluster.example.com:6443
  2. 打开您要在其中部署 Fuse 的项目:

    oc project myproject
  3. 使用您的红帽客户门户网站帐户创建一个 docker-registry secret,将 PULL_SECRET_NAME 替换为 psi-internal-registry 来创建:

    oc create secret docker-registry psi-internal-registry \
      --docker-server=docker-registry.redhat.io \
      --docker-username=CUSTOMER_PORTAL_USERNAME \
      --docker-password=CUSTOMER_PORTAL_PASSWORD \
      --docker-email=EMAIL_ADDRESS

    您应该看到以下输出:

    secret/psi-internal-registry created
    重要

    您必须在要向 registry.redhat.io 进行身份验证的每个 OpenShift 项目命名空间中创建此 docker-registry secret。

  4. 将机密链接到您的服务帐户,以使用机密拉取镜像。以下示例使用 default 服务帐户、builder 服务帐户和 deployer 服务帐户:

    oc secrets link default psi-internal-registry
    oc secrets link default psi-internal-registry --for=pull
    oc secrets link builder psi-internal-registry
    oc secrets link builder psi-internal-registry --for=pull
    oc secrets link deployer psi-internal-registry
    oc secrets link deployer psi-internal-registry --for=pull

    服务帐户名称必须与 OpenShift 容器集使用的名称匹配。

    注意

    如果您不想使用红帽用户名和密码来创建 pull secret,您可以使用 registry 服务帐户创建身份验证令牌。

其他资源

有关向容器镜像进行身份验证的更多详情:

1.6.2. 从 OperatorHub 安装 Fuse Online Operator

您可以使用 OpenShift Container Platform Web 控制台从 OperatorHub 安装 Fuse Online Operator。对于您要在其中安装 Fuse Online 的每个 OpenShift 项目(命名空间),请按照以下步骤操作。

先决条件

  • 具有对 OpenShift 集群的管理员或开发人员访问权限。对于开发者用户,具有从 OperatorHub 安装 Operator 的适当权限。
  • 您已使用 registry.redhat.io 配置身份验证,如 为容器镜像 使用 registry.redhat.io 验证 中所述。
  • 已安装 oc 客户端工具,并连接到您要在其上安装 Fuse Online 的 OCP 集群。

流程

  1. 在 Web 浏览器中,导航到 OpenShift 控制台,然后使用您的管理员或开发人员凭据登录控制台。
  2. 如果您以管理员身份登录,点 Operators,然后点 OperatorHub

    如果您以开发者身份登录,点 Add,然后点 From Catalog 卡。
  3. Filter by keyword 字段中,键入 Fuse Online
  4. Red Hat Integration - Fuse 在线 卡。Fuse Online Operator 安装页面将打开。
  5. Install。此时会打开 Install Operator 页面。

    1. Update Channel 为 Operator 定义更新流,用于为订阅者推出更新。接受默认频道( latest )。
    2. 对于 Installation 模式,从集群上的命名空间列表中选择命名空间(项目)。在为容器镜像验证 registry.redhat.io 中,选择创建 docker registry secret 时使用的相同命名空间。
    3. 对于 Update Approval,请选择 AutomaticManual 来配置 OpenShift 如何处理 Fuse Online Operator 的更新。

      • 如果选择自动 更新,则当有 Fuse Online Operator 的新版本时,OpenShift Operator Lifecycle Manager(OLM)会自动升级运行 Fuse Online 的运行实例,而无需人为干预。
      • 如果选择手动 更新,则当有新版 Operator 可用时,OLM 会创建更新请求。然后,集群管理员必须手动批准该更新请求才能将 Fuse Online Operator 更新至新版本。
  6. 点击 Install 使 Fuse Online Operator 在指定的命名空间(project)中提供。
  7. 要验证项目中是否安装了 Fuse Online,请点击 Operators,然后点 Installed Operators 查看列表中的 Red Hat Integration - Fuse Online
  8. 在终端窗口中,输入以下命令将 secret ( 您使用 registry.redhat.io 为容器镜像验证创建)链接到Fuse Online Operator 服务帐户:

    oc secrets link syndesis-operator PULL_SECRET_NAME --for=pull

后续步骤

安装 Fuse Online Operator 后,您可以将 Fuse Online 实例添加到 OpenShift 项目。

1.6.3. 将 Fuse Online 实例添加到 OpenShift 4.x 项目

在 OpenShift 4.x 项目中安装了 Fuse Online Operator 后,您可以将 Fuse Online 实例添加到 OpenShift 项目。Fuse Online 实例提供开发人员用来访问 Fuse Online 的 URL。

先决条件

  • Fuse Online Operator 已安装到当前的 OpenShift 项目。
  • 在 OCP 环境中,至少有三个持久性卷可供 Fuse Online 使用。所有持久性卷都必须具有以下配置要求:

    • capacity.storage: 1Gi
    • AccessMode: ReadWriteOnce
  • 决定您要安装默认 Fuse 在线实例或自定义实例。有关您可以指定的自定义资源设置的更多信息,请参阅安装前需要编辑默认自定义资源。

流程

  1. 按照以下步骤根据您的用户角色访问 Create Syndesis 页面:

    • 如果您以管理员身份登录:

      1. Operators,然后点 Installed Operators
      2. Name 列中,单击 Red Hat Integration - Fuse OnlineOperator Details 页将打开。
      3. Provided APIs 下,点 Create Instance
    • 如果您以开发者身份登录:

      1. Add,然后点 Operator Backed 卡。
      2. Syndesis CRD 卡。Syndesis CRD 页将打开。
      3. Create

        Create Syndesis 页面将打开。
  2. 输入名称或将 app 保留为默认值。
  3. 选择 YAML view 选项来查看默认自定义资源。
  4. 可选。编辑自定义资源。

    有关您可以指定的自定义资源设置的详情,请参阅 安装前需要编辑默认自定义资源 设置 以及配置 Fuse Online 的自定义资源属性描述

    Fuse Online 安装过程使用您在自定义资源中指定的设置来确定已安装的 Fuse 在线环境配置。

  5. 单击 Create 以创建 Fuse Online 实例。OpenShift 启动 Fuse Online 的 Pod、服务和其他组件。
  6. 获取 Fuse Online 的 URL:

    1. Networking > Routes
    2. 确保已选中正确的项目。
    3. syndesis 行中的 Location 列中,单击 Fuse Online 的 URL。
    4. 使用您的 OpenShift 登录凭据,登录 Fuse 在线环境。
  7. 要允许其他开发人员用户访问 Fuse Online Web 控制台,管理员必须使用以下命令为每一开发人员用户授予安装 Fuse Online 的项目 view 角色:

    oc adm policy add-role-to-user view <username> -n <project-name>

    例如,要将 myfuseonline 项目的 查看 权限授予用户 jdoe

    oc adm policy add-role-to-user view jdoe -n myfuseonline

第 2 章 更改 Fuse 在线环境的配置

在 OpenShift Container Platform(OCP)上安装了 Fuse Online 后,您可以更改 Fuse 在线环境的配置。

详情请查看以下主题:

2.1. 安装后允许 Fuse 在线配置更改

在 OpenShift Container Platform(OCP)上安装 Fuse Online 后,您可以更改其配置以启用/禁用某些功能或更改一些配置设置。下表列出了您可以更改的功能和设置,以及更改的影响,以及查找进行更改的说明的位置。

当更改 syndesis 自定义资源时,会导致重新部署 syndesis-server,OpenShift 会创建一个新的服务器 Pod。它最多需要一到两分钟,直到新服务器就绪为止。在此期间,Fuse Online 控制台不可用。部署新服务器时,运行一直运行的集成。新部署就绪后,新服务器将加载集成状态。当 syndesis-server pod 状态为 Running 并刷新 Fuse Online 控制台时,您可以再次使用 Fuse Online 控制台,显示集成、连接、消息和运行的值。

表 2.1. 您可以更改的功能和设置

功能/设置更改的影响信息

3scale 发现

Redploys syndesis-server

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

Backup

syndesis-operator中添加备份作业

备份 Fuse Online 环境

Auditing

注:这是一个技术预览功能。

更新正在运行的 syndesis-server 的配置。不需要重新部署。

审计 Fuse Online 组件

监控

安装新的 OpenShift 资源

监控 OCP 上的 Fuse Online 与 Prometheus 集成

公共 Fuse Online REST API 端点

创建 syndesis-public-oauthproxy pod

公开 Fuse Online 公共 REST API,供外部工具使用

Todo app、AMQ Broker、示例 PostresSQL 数据库和连接器示例

todo addon 为测试集成的示例 Todo 应用创建一个新的 todo pod。它还提供了一个 AMQ Broker 以及示例数据库和示例数据库连接器。它创建一个名为 sampledb 的 PostgreSQL 数据库,并将 PostgresDB 连接添加到 Fuse Online 环境中的 SampleDB 连接器中。

请注意,更改 todo addon 选项会触发重新部署 syndesis-serversydnesis-db pod。

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

配置 Fuse Online 的自定义资源属性的描述

Java 选项

重新部署 syndesis-server

配置 Fuse Online 的自定义资源属性的描述

配置 HTTP 代理

Maven 配置

您必须删除 syndesis-server pod 以触发其重新部署。

将 Fuse Online pod 分配给 OpenShift 集群节点

重新部署 Fuse Online 基础架构组件和集成 pod

配置 Fuse Online 的自定义资源属性的描述

配置 Fuse 在线 pod

Fuse Online 组件可用的内存

使用更改的内存重新部署组件

配置 Fuse Online 的自定义资源属性的描述

允许运行的集成数

您必须删除 syndesis-server pod 以触发其重新部署。

数据库连接池

Redploys syndesis-server

2.2. 更改 Fuse Online 配置的一般步骤

对于在 OCP 上安装的 Fuse Online 环境,您可以通过更新其 概要 自定义资源来更改其配置。保存更改后,如果 OpenShift 合起来正确, OpenShift 会根据您的更新更新同步。语法错误可防止更新。

在编辑 syndesis 自定义资源时,请确保不指定语法错误的无效设置。syndesis-operator 将使用更新的 syndesis 自定义资源,即使合起来正确的设置无效。如果指定了无效的设置,则仅在 OpenShift 完成更新后了解它。在更新过程中,OpenShift 会删除无效的设置。

先决条件

  • Fuse Online 已安装在 OCP on-site.
  • 已安装 oc 客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。
  • 您需要在要更改 Fuse Online 配置的项目中安装 Fuse Online 的权限。
  • 您参考 了配置 Fuse Online 的自定义资源 属性的 Descriptions,以了解在安装后允许哪些配置更改,以及如何为您要进行配置更改更新复合自定义资源。

流程

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

    oc login -u developer -p developer

  2. 切换到运行 Fuse Online 环境(您要更改的配置)的 OpenShift 项目。例如:

    oc project my-fuse-online-project

  3. 可选。在 syndesis 自定义资源中创建当前设置的备份副本,只需更新并保存不正确的内容。例如,调用以下命令会在 syndesis_app_backup.yml 文件中保存备份:

    oc get syndesis app -o yaml > syndesis_app_backup.yml

  4. 调用以下命令以在编辑器中打开 syndesis 自定义资源:

    oc edit syndesis/app

    注: 此流程描述了如何在编辑器中打开自定义资源文件来设置配置。另外,您可以使用 oc patch 命令来编辑自定义资源。

  5. 根据需要编辑 syndesis 自定义资源。
  6. 保存资源。

    根据您编辑适用的对象类型,您的更新会触发 syndesis-operator 在保存资源时重新部署一些 Fuse Online 组件。

  7. 等待两个或三分钟,然后确认 syndesis 自定义资源已正确更新:

    1. 调用以下命令以显示联合自定义资源的内容:

      oc describe syndesis/app

    2. 检查内容。

      如果 syndesis 自定义资源不包含您需要的设置,请再次编辑它来指定有效的设置。

结果

syndesis 自定义资源的大多数更改都触发 syndesis-operator 来重新部署 Fuse Online syndesis-server 组件。这意味着 OpenShift 会创建新的服务器 pod。

它最多需要一到两分钟,直到新服务器就绪为止。在此期间,Fuse Online 控制台不可用。部署新服务器时,运行一直运行的集成。新部署就绪后,新服务器将加载集成状态。您可以在以下情况下再次使用 Fuse Online 控制台:

  • syndesis-server 容器集状态为 Running
  • 刷新 Fuse Online 控制台显示集成、连接、消息和运行的值。

syndesis 自定义资源的一些更改会更新 Fuse Online 配置,但不需要重新部署 syndesis-server。例如:

  • 当您更新 同步自定义资源 来指定备份时,需要几秒钟后备份作业。

安装之后,Fuse Online 配置更改中描述了每个配置 更改的影响。

2.3. 配置 Fuse Online 和 3scale API 发现

如果创建 API 供应商集成,则可能需要在红帽 3scale 中为该集成的 API 进行发现。默认行为是 API 在 3scale 中没有公开供自动发现。

如果启用了 3scale 发现功能,您可以稍后禁用它。

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

如果创建 API 供应商集成,则可能需要在红帽 3scale 中为该集成的 API 进行发现。默认行为是 API 在 3scale 中没有公开供自动发现。启用发现时,必须为 3scale 用户界面提供 URL。

要在安装 Fuse Online 前配置 Fuse Online 以启用 3scale 发现 API,请参阅 配置 Fuse Online 的自定义资源属性的描述

安装后,您可以通过更新概要自定义资源来启用发现。具体操作步骤位于本主题中。当您启用发现时,它只适用于更新资源时连接到的 OpenShift 项目。

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

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

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

先决条件

  • Fuse Online 已安装在 OCP on-site.
  • 已安装 oc 客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。
  • 您需要在要启用 API 发现的项目中安装 Fuse Online 的权限。
  • 您知道 OpenShift 集群上的 3scale 项目的名称。

流程

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

    oc login -u developer -p developer

  2. 切换到运行 Fuse Online 的 OpenShift 项目。您只为此项目启用发现。例如:

    oc project my-fuse-online-project

  3. 添加允许 3scale 项目查看 Fuse 在线集成的权限:

    oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:amp

    例如,如果 OpenShift 上的 3scale 项目命名为 my3scale

    oc adm policy add-cluster-role-to-user view system:serviceaccount:my3scale:amp

  4. 编辑 syndesis 自定义资源:

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

      oc edit syndesis

    2. 通过将 managementUrlFor3scale 设置为 3scale 用户界面的 URL 来编辑资源。结果如下:

      spec:
        components:
          server:
            features:
              managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
    3. 保存资源。
  5. 可选。要确认已为您切换到的项目打开了发现,请调用以下命令:

    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 会恢复您的更改。 syndesis -operator 确保仅部署 Fuse Online,并根据合合自定义资源始终部署。

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

如果您遵循了 配置 Fuse Online 中的步骤以启用 3scale 发现 API,每个 API 供应商集成创建者可以选择该集成的 API 是否可以被发现。在某些情况下,您可能想要重新配置默认行为,即集成 API 在 3scale 中不可发现,例如:您可能希望在 Fuse Online 中编辑和测试 API 供应商集成。为此,请更新 Fuse Online syndesis 自定义资源,以便指定 managementUrlFor3scale 键和值被注释掉的行。这禁用由 3scale 进行发现。然后重新发布任何带有可发现 API 的 API 供应商集成。

先决条件

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

流程

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

    oc login -u developer -p developer

  2. 切换到启用了 3scale 发现的 OpenShift 项目。例如:

    oc project my-fuse-online-project

  3. 编辑 syndesis 自定义资源:

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

      oc edit syndesis

    2. 编辑资源,方法是在指定 managementUrlFor3scale 键和值的行中插入 hash 符号(#)。这使得行是禁用发现的注释。结果应类似如下:

      spec:
        components:
          server:
            features:
            #  managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
    3. 保存资源。

      这会 更新同步 自定义资源。该更新会删除 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 供应商集成的项目启用了发现,则不需要重新发布 API 供应商集成。

结果

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

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

2.4. 配置 Fuse Online pod

您可以通过在 Fuse Online 自定义资源中设置节点关联性和容限选项,配置 Fuse Online 基础架构组件和集成 pod 放置到 OpenShift 集群的节点上。nodeAffinity 选项允许您指定 Fuse Online pod 的关联性和要放置的一组节点。tolerations 选项允许您控制在哪些节点上运行 Fuse Online pod 的节点,并防止其他工作负载使用这些节点。

您可以通过在安装 Fuse Online 之前或安装后编辑 Fuse Online 自定义资源来设置这些选项。

您可以指定与集成部署分开的基础架构组件部署配置节点关联性或容限设置:

  • infraScheduling - 指定 infraScheduling 选项,为这些 Fuse 在线基础架构部署配置节点关联性和容限设置:

    • syndesis-db
    • syndesis-meta
    • syndesis-prometheus
    • syndesis-ui

      syndsis-operator 部署不受节点关联性或容限更改的影响,因为它是 Fuse 在线管理组件。

  • integrationScheduling - 指定 integrationScheduling 选项,为所有 Fuse 在线集成部署配置节点关联性和容限设置。

    注意 :如果要知道 Fuse Online 部署是否为集成部署,请检查部署名称。您可以使用 oc get pods 命令来查看正在运行的部署列表。如果部署名称包含 -i 前缀,它是一个集成部署,例如 i-my-integration

以下流程描述了如何使用 oc patch 命令编辑自定义资源。另外,您可以按照这些主题中所述编辑自定义资源:

先决条件

  • Fuse Online 已安装在 OCP on-site.
  • 已安装 oc 客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。

流程

  1. 使用 oc patch 命令,并使用以下语法配置 容限 设置。为 Fuse Online infrastructure 组件部署指定 infra Scheduling,或为 Fuse Online 集成 部署指定 IntegrationScheduling:

    oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling"|"infraScheduling":{"tolerations":[{"key":"_value1_","operator":"_value2_","effect":"_value3_"},{"key":"_value4_","operator":"_value5_","effect":"_value6_"}]}}}'

    例如,以下命令为 Fuse 在线基础架构组件添加了容限:

    oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling":{"tolerations":[{"key":"tol_1","operator":"Equal","effect":"NoSchedule"},{"key":"tol_2","operator":"Equal","value":"value2","effect":"NoSchedule"}]}}}'
  2. 使用带有以下语法的 oc patch 命令配置 节点关联性 设置。为 Fuse Online infrastructure 组件部署指定 infra Scheduling,或为 Fuse Online 集成 部署指定 IntegrationScheduling:

     oc patch syndesis/app --type=merge  -p '{"spec":{"infraScheduling"|"infraScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":_value1_,"preference":{"matchExpressions":[{"key":"_value1_","operator":"_value2_","values":["_value3_","_value4_"]}]}}]}}}'

    例如,以下命令将 nodeAffinity 设置为 Fuse Online 基础架构组件和集成:

     oc patch syndesis/app --type=merge  -p '{"spec":{"infraScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":11,"preference":{"matchExpressions":[{"key":"_affinity","operator":"In","values":["foo","bar"]}]}}]}}},"integrationScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":22,"preference":{"matchExpressions":[{"key":"my_affinity2","operator":"In","values":["foo","bar"]}]}}]}}}}}'
  3. 要删除配置设置,请在 oc patch 命令中使用 remove 选项,如下例所示:

    • 以下示例命令从 Fuse 在线集成中的 nodeAffinity 中删除 preferredDuringSchedulingIgnoredDuringExecution 设置:

      oc patch syndesis/app --type=json -p '[{"op": "remove", "path": "/spec/integrationScheduling/affinity/nodeAffinity/preferredDuringSchedulingIgnoredDuringExecution" }]'
    • 以下示例从 Fuse Online 基础架构组件中删除容限:

      oc patch syndesis/app --type=json -p '[{"op": "remove", "path": "/spec/infraScheduling/tolerations" }]'

其他资源

如需有关容限和节点关联性的信息,请参阅了解节点关联性以及使用 OpenShift 文档中的 节点污点部分控制 pod 放置

2.5. 配置 HTTP 代理

很多服务都使用 HTTP 代理来过滤和安全与其他服务或组件的通信。要在 Fuse Online 组件和集成上配置 HTTP 代理,请在安装 Fuse Online 之前或之后编辑 Fuse Online 自定义资源。

前提条件

  • 您知道 HTTP 代理的主机和端口值。

流程

  1. 在编辑器中打开自定义资源:

    如果您已经安装了 Fuse Online,请按照"更改 Fuse Online 配置" 中的步骤打开自定义资源。

    如果您尚未安装 Fuse Online,按照这些主题中的步骤打开自定义资源,具体取决于您的 OCP 版本。

    对于 OCP 4.x: 将 Fuse Online 实例添加到 OpenShift 4.x 项目

  2. 对于 syndesis-serversyndesis-meta 组件,设置 Java Options(javaOptions)参数,并为 HTTP 代理主机和端口指定值。为 syndesis-serversyndesis-meta 使用相同的 HTTP 代理服务器值。

    例如:

    spec:
      components:
        server:
          javaOptions:
    -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800
    
        meta:
          javaOptions:
    -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800
  3. 对于 Fuse Online 集成,请设置 Maven 参数(附加参数)参数。例如:

    spec:
      components:
        server:
          features:
            maven:
              additionalArguments: "-Dhttp.proxy=10.0.0.100 -Dhttp.proxyPort=8800"
  4. 保存自定义资源。

    如果已安装 Fuse Online,则 syndesis-server pod 会重新部署,以响应第 2 步的 javaOptions 更新。

  5. 重新发布任何使用 HTTP 代理的正在运行的集成。

    1. 在 Fuse Online 中,选择您要更新的集成。
    2. 选择 编辑
    3. 选择 Publish

Fuse Online 在重建集成时使用 HTTP 代理设置。

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

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

  • ToDo 应用
  • PostgresDB 数据库和 PostgresDB 连接示例
  • AMQ Broker

Salesforce to Database、AMQ 到 REST API,API Provider Quickstart 示例集成需要这个示例数据。

默认情况下,AMQ Broker、PostgresDB 数据库和连接示例并且禁用 ToDo 应用(未安装)。

要在安装 Fuse Online 前将 Fuse Online 配置为包含示例数据,请参阅 配置 Fuse Online 的自定义资源属性的描述

先决条件

  • Fuse Online 已安装并在 OCP 现场运行。
  • 已安装 oc 客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。
  • 有编辑 Fuse Online 自定义资源的权限。

流程

  1. 使用有权编辑 Fuse Online 自定义资源的帐户登录 OpenShift。例如:

    oc login -u developer -p developer

  2. 切换到运行 Fuse Online 的项目。例如:

    oc project my-fuse-online-project

  3. 编辑 syndesis 自定义资源:

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

      oc edit syndesis

    2. 通过将 addons:todo:enabled 字段改为 true 来编辑自定义资源:

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

      将这个更改保存到 syndesis 自定义资源中会触发 syndesis-operator 来创建新的 todo pod,并触发 syndesis-serversyndesis-db pod 的重新部署。

第 3 章 在 OCP 上管理 Fuse Online

在 OpenShift Container Platform(OCP)上安装 Fuse Online 后,您可以使用 Prometheus 监控集成活动,并可设置定期 Fuse 在线备份,您可以使用它来恢复 Fuse 在线环境。在需要时,您可以升级 Fuse Online、卸载 Fuse Online 或删除包含 Fuse Online 的 OCP 项目。

详情请查看以下主题:

3.1. 审计 Fuse 在线组件

重要

Fuse 在线审计只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些功能可让您早期访问即将发布的产品功能,使客户能够在开发过程中测试功能并提供反馈信息。如需了解红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview/

Fuse Online 支持对以下 Fuse Online 组件所做的更改进行的基本审计:* Connections - Name 和在 Fuse Online Web 控制台的连接器 Details 页面中显示的任何其他字段。* 连接器 - Name 字段。* 集成 - Name 字段。

当开发人员对其中一个组件字段进行更新时(例如,更改集成名称),Fuse Online 将 AUDIT 消息发送到标准输出,包括 ID、用户、时间戳、组件(连接连接器 或集成 ),以及更改类型(创建修改或删除 )。请注意,审计消息中的字段值被截断为 30 个字符。

默认情况下,Fuse 在线审计被禁用。您可以通过编辑 Fuse Online 自定义资源来启用它。要在安装 Fuse Online 前启用审核,请参阅配置 Fuse Online 的自定义资源属性的描述。

先决条件

  • 已安装 oc 客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。
  • 有编辑 Fuse Online 自定义资源的权限。

流程

  1. 使用赋予您编辑 Fuse Online 自定义资源的权限登录到 OpenShift。例如:

    oc login -u admin -p admin-password

  2. 切换到正在运行 Fuse Online 环境的项目。例如:

    oc project my-fuse-online-project

  3. 编辑 syndesis 自定义资源:

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

      oc edit syndesis

    2. 确保资源中有以下行:根据需要编辑:

      components:
        server:
          features:
            auditing: true
  4. 保存资源。

    当您在联合自定义资源中启用审计功能时,运行概要 服务器配置重新加载, Fuse Online 启动与 Fuse Online 组件相关的日志记录。

  5. 要查看 Fuse Online 审计日志信息,请输入以下命令:

oc logs -l syndesis.io/component=syndesis-server

3.2. 使用 Prometheus 监控 Fuse 在线集成和基础架构组件

您可以使用 Prometheus 监控 Fuse 在线基础架构组件和 Fuse 在线集成。您还可以使用 Grafana 仪表板来视觉化 Prometheus 收集的指标。

重要

Red Hat support for Prometheus 仅限于 Red Hat 产品文档中提供的设置和配置建议。

Grafana 是社区支持的功能。部署 Grafana 来监控 Red Hat Fuse 产品不受 Red Hat production 服务级别协议(SLA)的支持。

除了监控 Fuse Online 集成外,您还可以使用 Prometheus 监控以下 Fuse Online 基础架构组件公开的指标:

Syndesis Server
syndesis-server 组件使用 Micrometer 提供,并默认自动公开所有 JVM Micrometer 指标。另外,syndesis-server 会公开有关 REST API 端点的指标,如请求率、错误率和延迟。
Syndesis Meta
syndesis-meta 组件使用 Micrometer 提供,并默认自动公开所有 JVM Micrometer 指标。它还会公开有关其 REST API 端点的指标。
Syndesis DB
Fuse Online Postgres 数据库的指标通过 第三方 Prometheus 导出器 导出。
集成
集成 指标在创建了集成后可见,并通过使用官方 JMX exporter 导出,默认情况下会公开几个 JVM 指标。另外,集成指标会公开特定于 Apache Camel 的指标,如消息速率和错误率。

先决条件

  • Fuse Online 已安装并在 OCP 4.9(或更新版本)上运行。
  • 已安装 oc 客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。
  • 具有对 OCP 集群的 admin 访问权限。
  • 您的 Fuse Online 安装配置了启用了 ops addon。如果需要,您可以使用以下命令启用它:

    oc patch syndesis/app --type=merge -p '{"spec": {"addons": {"ops": {"enabled": true}}}}'

流程

  1. 如果存在 openshift-monitoring 配置,请跳至第 2 步。

    否则,创建一个 openshift-monitoring 配置,将用户工作负载监控选项设置为 true,然后跳至第 3 步:

    oc apply -f - <<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml: |
       enableUserWorkload: true
    EOF
  2. 如果存在 openshift-monitoring 配置:

    1. 检查现有的 openshift-monitoring 配置,以确定 用户工作负载监控 选项是否被设置为 true

      oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'

      如果结果为 enableUserWorkload: true,则 用户工作负载监控 选项被设置为 true。跳至步骤 3。

      如果结果显示任何其他配置,请继续下一步,通过编辑 ConfigMap 来启用用户工作负载的监控。

    2. 在编辑器中打开 ConfigMap 文件,例如:

      oc -n openshift-monitoring edit cm/cluster-monitoring-config
    3. enableUserWorkload 设置为 true。例如:

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cluster-monitoring-config
        namespace: openshift-monitoring
      data:
        config.yaml: |
         enableUserWorkload: true
    4. 保存 ConfigMap 文件。
  3. 使用以下命令,观察 openshift-user-workload-monitoring 命名空间中的 pod 状态:

    oc -n openshift-user-workload-monitoring get pods -w

    等待 pod 的状态是 Running,例如:

    prometheus-operator-5d989f48fd-2qbzd   2/2     Running
    prometheus-user-workload-0             5/5     Running   prometheus-user-workload-1             5/5     Running
    thanos-ruler-user-workload-0           3/3     Running
    thanos-ruler-user-workload-1           3/3     Running
  4. 验证 Prometheus 中是否启用了 Fuse Online 警报规则:

    1. 访问内部 prometheus 实例

      oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
    2. 打开浏览器,到 localhost:9090
    3. 选择 Status> Targets。您应看到 三个整合 端点。
    4. CTRL-C 终止 端口转发 进程。
  5. 在 OperatorHub 中,将 Grafana Operator 版本 4 安装到您选择的命名空间,例如 grafana-middleware 命名空间。使用更新频道 v4
  6. 添加集群角色和集群角色绑定,以允许 grafana-operator 列出节点和命名空间:

    1. grafana-operator 网站下载集群角色 YAML 文件:

      curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/v4/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
    2. grafana-operator 添加集群权限以读取其他命名空间和节点:

      cat <<EOF >> tmp_role.yaml
        - apiGroups:
            - ""
          resources:
            - namespaces
            - nodes
          verbs:
            - get
            - list
            - watch
      EOF
      oc apply -f tmp_role.yaml
      oc apply -f - <<EOF
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: grafana-operator
      roleRef:
        name: grafana-operator
        kind: ClusterRole
        apiGroup: ""
      subjects:
        - kind: ServiceAccount
          name: grafana-operator-controller-manager
          namespace: grafana-middleware
      EOF
  7. 启用 grafana-operator,使用 DASHBOARD_NAMESPACES_ALL 环境变量从其他命名空间中读取 Grafana 仪表板,以限制命名空间:

    oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'
  8. 检查 grafana pod 是否已重新创建:

    oc -n grafana-middleware get pods -w
  9. 另外,还可查看 grafana-operator 日志:

    oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
  10. 添加 Grafana 自定义资源 以启动 Grafana 服务器 pod,例如:

    oc apply -f - <<EOF
    apiVersion: grafana.integreatly.org/v1beta1
    kind: Grafana
    metadata:
      name: grafana-middleware
      namespace: grafana-middleware
    spec:
      config:
        auth:
          disable_signout_menu: true
        auth.anonymous:
          enabled: true
        log:
          level: warn
          mode: console
        security:
          admin_password: secret
          admin_user: root
      dashboardLabelSelector:
      - matchExpressions:
        - key: app
          operator: In
          values:
          - grafana
          - syndesis
      ingress:
        enabled: true
    EOF
  11. 允许 grafana-operator 读取监控信息:

    oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
  12. 添加 GrafanaDatasource 以查询 thanos-querier

    oc apply -f - <<EOF
    apiVersion: grafana.integreatly.org/v1beta1
    kind: GrafanaDataSource
    metadata:
      name: prometheus-grafanadatasource
      namespace: grafana-middleware
    spec:
      datasources:
        - access: proxy
          editable: true
          isDefault: true
          jsonData:
            httpHeaderName1: 'Authorization'
            timeInterval: 5s
            tlsSkipVerify: true
          name: Prometheus
          secureJsonData:
            httpHeaderValue1: "Bearer $(oc get secret $(oc get secret | grep grafana-serviceaccount-token | awk '{print$1}') -o=jsonpath="{.data.token}" | base64 -d)"
          type: prometheus
          url: "https://$(oc get route thanos-querier -n openshift-monitoring -ojsonpath='{.spec.host}')"
      name: prometheus-grafanadatasource.yaml
    EOF
  13. 查看 grafana 服务器日志:

    oc logs -f `oc get pods -l app=grafana -oname`
  14. 访问 grafana URL 并查看 Fuse Online 仪表板:

    echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')

    在 Grafana 控制台左侧面板中点击搜索按钮。此时会显示一个文件夹(OCP 命名空间名称),其中包含每个 Syndesis 实例的仪表板。

    • 对于 Fuse Online 集成,请选择 Integration - Camel。此仪表板显示由 Apache Camel 集成应用程序公开的标准指标。
    • 对于 Fuse Online infrastructure 组件,请选择以下基础架构仪表板之一:

      基础架构 - DB
      显示与 Fuse Online Postgres 实例相关的指标。
      基础架构 - JVM
      显示为 syndesis-metasyndesis-server 应用程序运行 JVM 的指标。从仪表板顶部的 Application 下拉列表中选择您要监控的应用程序。
      基础架构 - REST API
      显示与 Fuse Online 基础架构 API 端点相关的指标,如 请求 吞吐量和延迟 。从仪表板顶部的 Application 下拉列表中,选择要监控的应用程序。

其他资源

有关使用 Prometheus 入门的信息,请访问: https://prometheus.io/docs/prometheus/latest/getting_started/

3.3. Fuse Online Metering 标签

您可以使用 OpenShift Metering operator 来分析已安装的 Fuse Online operator 和组件,以确定您是否遵守红帽订阅。如需有关 Metering 的更多信息,请参阅 OpenShift 文档

下表列出了 Fuse 在线基础架构组件和集成的 metering 标签。

表 3.1. Fuse Online 的计量标签

标签可能的值

com.company

Red_Hat

rht.prod_name

Red_Hat_Integration

rht.prod_ver

7.8

rht.comp

Fuse

rht.comp_ver

7.8

rht.subcomp

syndesis-db

syndesis-server

syndesis-meta

syndesis-ui

syndesis-prometheus

syndesis-operator

I-<integration name>

rht.subcomp_t

infrastructure (when rht.subcomp = syndesis-*)

application (when rht.subcomp = i-*)

例子

  • 基础架构示例(其中的基础架构组件 是联合db

    com.company: Red_Hat
    rht.prod_name: Red_Hat_Integration
    rht.prod_ver: 7.8
    rht.comp: Fuse
    rht.comp_ver: 7.8
    rht.subcomp: syndesis-db
    rht.subcomp_t: infrastructure
  • 应用程序示例(集成部署名为 mytestapp

    com.company: Red_Hat
    rht.prod_name: Red_Hat_Integration
    rht.prod_ver: 7.8
    rht.comp: Fuse
    rht.comp_ver: 7.8
    rht.subcomp: i-mytestapp
    rht.subcomp_t: application

3.4. 备份 Fuse 在线环境

您可以将 Fuse Online 配置为定期备份:

  • Fuse Online 存储连接和集成的内部 PostgreSQL 数据库。
  • syndesis-operator 会创建的 OpenShift 资源,以及运行 Fuse Online 所需的资源。这包括,但不仅限于、配置映射、部署配置和服务帐户。

在安装 Fuse Online 之前,您可以为 Fuse 在线环境配置备份,或者更改 Fuse 在线环境的配置以启用备份。

当将 Fuse Online 配置为执行备份时,Fuse Online zips 数据到一个文件中,并将该文件上传到您指定的 Amazon S3 存储桶中。您可以将备份应用到新的 Fuse 在线环境(没有定义的连接或集成)来恢复备份的 Fuse Online 环境。

先决条件

  • OCP 正在现场运行。
  • oc 客户端工具已安装并连接到运行 Fuse Online 的 OCP 集群。
  • 具有集群管理权限的用户为您提供了在集群中有访问权限的任何项目中安装 Fuse Online 的权限。
  • 您有一个 AWS 访问密钥和 AWS secret 密钥。有关获取这些凭证的详情,请参考 AWS 文档 管理 IAM 用户的访问密钥
  • 您知道要上传到它的 S3 存储桶的 AWS 区域。
  • 您知道要将备份上传到的 S3 存储桶的名称。

流程

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

    oc login -u developer -p developer

  2. 切换到正在运行的 OpenShift 项目,或者将运行您要为其配置备份的 Fuse 在线环境。例如:

    oc project my-fuse-online-project

  3. 创建 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。

  4. 如果 Fuse Online 尚未安装,您必须编辑 default-cr.yml 文件以启用备份。在安装 Fuse Online 前, 请参阅编辑复合自定义资源。安装 Fuse Online 后,将根据您在自定义资源中指定的计划备份作业。

    如果 Fuse Online 正在运行,您必须编辑 syndesis 自定义资源:

    1. 调用以下命令,它会在编辑器中打开 syndesis 自定义资源:

      oc edit syndesis

    2. spec: 下添加以下内容:

      backup:
        schedule: my-backup-interval

      my-backup-interval 替换为备份之间的所需持续时间。要确定如何指定备份间的间隔,请查阅以下资源:

      • Cron 预定义的调度
      • Cron intervals

        不要在间隔的前面指定 @ 符号。例如,要配置每日备份,自定义资源将包含类似如下的内容:

        apiVersion: syndesis.io/v1beta1
        kind: Syndesis
        metadata:
          name: app
        spec:
          backup:
            schedule: daily
  5. 保存该文件。

    这会在 syndesis-operator 中添加备份作业。

结果

如果 Fuse Online 已经运行,现在有一个 Fuse 在线备份作业,具体取决于您定义的计划。

后续步骤

如果需要安装 Fuse Online,请编辑 default-cr.yml 文件,以启用其他所需的功能或设置任何其他参数。当 default-cr.yml 文件具有您想要的所有设置时,请在您创建 OpenShift secret 时指定的项目中安装 Fuse Online。

3.5. 恢复 Fuse 在线环境

在一个新的 Fuse Online 环境中,您尚未创建任何连接或集成,您可以恢复 Fuse 在线环境的备份。恢复 Fuse 在线环境后,您必须编辑恢复的连接以更新其密码。然后,您应该能够发布恢复的集成。

先决条件

  • OCP 正在现场运行。
  • oc 客户端工具已安装并连接到要恢复 Fuse 在线环境的 OCP 集群。
  • 具有集群管理权限的用户为您提供了在集群中有访问权限的任何项目中安装 Fuse Online 的权限。
  • 有一个 Fuse 在线环境,配置为定期备份数据并将数据上传到 Amazon S3。
  • 例如,F 7.6 等 Fuse Online 发行号是备份的 Fuse 在线环境以及您要恢复备份的 Fuse 在线环境。
  • 有访问包含 Fuse Online 备份的 AWS 存储桶的权限。
  • 要恢复备份的 Fuse 在线环境是一个新的 Fuse Online 安装。换句话说,没有您定义的连接或集成。如果要在具有连接和集成 Fuse Online 环境的项目中恢复 Fuse Online,则必须卸载 Fuse Online 环境并安装新的 Fuse Online 环境。

流程

  1. 从 Amazon S3 下载所需的备份文件。有关这样做的详情,请参阅 AWS 文档中的 Do I from a S3 Bucket 下载对象?
  2. 提取 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

  3. 对 Fuse Online 数据库进行解码,例如:

    base64 -d /tmp/fuse-online-backup/syndesis-db.dump > /tmp/fuse-online-backup/syndesis-db
  4. 切换到运行新 Fuse Online 环境的 OpenShift 项目。例如,如果新 Fuse Online 环境位于 my-fuse-online-project 中,则您需要调用以下命令:

    oc project my-fuse-online-project

    此流程的其余部分假定您已切换到包含新 Fuse Online 环境的项目。

  5. 获取数据库 Pod 的名称。

    如果恢复的 Fuse Online 环境使用提供的内部 PostgreSQL 数据库,请调用以下命令来获取数据库 pod 的名称:

    oc get pods -l deploymentconfig=syndesis-db -o jsonpath='{.items[*].metadata.name}'

    如果恢复的 Fuse 在线环境使用外部数据库,则假设您了解如何获取该数据库的 pod 名称。

    在剩余的命令中,在这里看到 DATABASE_POD_NAME,请为恢复的 Fuse 在线环境插入数据库 pod 的名称。

  6. 以任何方式缩减访问数据库的组件。

    1. 缩减 syndesis-operator 以便可以缩减其他组件:

      oc scale deployment syndesis-operator --replicas 0

    2. 缩减 syndesis-serversyndesis-meta 组件:

      oc scale dc syesis-server --replicas 0
      oc scale dc syndesis-meta --replicas 0

  7. 将数据库备份文件发送到 Fuse Online 数据库 pod:

    oc cp /tmp/fuse-online-backup/syndesis-db DATABASE_POD_NAME:/tmp/syndesis-db
  8. 在 Fuse Online 数据库 pod 中打开一个远程 shell 会话:

    oc rsh DATABASE_POD_NAME

  9. 调用下列命令以恢复 Fuse Online 数据库。

    如果 psql 命令提示输入数据库密码,并且恢复的 Fuse Online 环境使用提供的内部 PostgreSQL 数据库,您可以在 syndesis-db 部署配置的 POSTGRESQL_PASSWORD 环境变量中找到密码。如果恢复的 Fuse 在线环境使用外部数据库,则系统会假定您知道密码。

    cd /tmp
    psql -c 'DROP database if exists syndesis_restore'
    psql -c 'CREATE database syndesis_restore'
    pg_restore -v -d syndesis_restore /tmp/syndesis-db
    psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'syndesis'"
    psql -c 'DROP database if exists syndesis'
    psql -c 'ALTER database syndesis_restore rename to syndesis'

    现在,Fuse Online 可以被恢复。您可以结束 RSH 会话:

    退出

  10. 扩展 Fuse Online 组件:

    oc scale deployment syndesis-operator --replicas 1

    syndesis-operator 扩展为 1,应该可以启动缩减的其他 pod。但是,如果没有发生这种情况,您可以手动扩展它们:

    oc scale dc syesis-server --replicas 1
    oc scale dc syndesis-meta --replicas 1

  11. 服务器尝试启动每个恢复的集成,但您需要首先更新连接。因此,确保恢复的集成没有运行:

    1. 获取 Fuse Online 控制台路由:

      echo "https://$(oc get route/syndesis -o jsonpath='{.spec.host}' )"
    2. 使用有权限安装 Fuse Online 的 OpenShift 用户帐户登录 Fuse Online 控制台。
    3. 显示集成列表并确保所有集成都已停止。如果集成正在运行,请将其停止。
  12. 对于具有密码的每个连接,您需要将连接更新为拥有此 Fuse Online 环境的正确密码。以下步骤演示了如何为提供的 PostgresDB 连接进行此操作。

    1. 在运行了 Fuse Online 环境的项目 OpenShift 控制台中,检索 PostgresDB 连接的密码。在 syndesis-db 部署中,密码位于环境变量中。
    2. 在 Fuse Online 控制台中显示连接。
    3. 编辑 PostgresDB 连接。
    4. PostgresDB 连接的连接详情中,将检索到的密码粘贴到 Password 字段中。
  13. 对于每个集成,确认没有 配置所需 指示符。如果存在,请编辑集成以解决问题。当集成中的所有步骤都正确时,发布集成。

    如果 Fuse Online 在构建步骤后保持回滚至停止状态,请删除部署,确保不需要配置,然后再次尝试发布集成。

    如果您在日志中看到以下信息,则可以安全地忽略以下信息:

    Error performing GET request to https://syndesis-my-fuse-online-project.my-cluster-url/api/v1/metrics/integrations

3.6. Online 升级 Fuse

为 Fuse Online 发布补丁和安全修复的时间、全新应用程序镜像。通过红帽的勘误更新频道,通知您这些更新信息。然后您可以升级 Fuse Online 镜像。

对于 OCP 4.x,按照使用 OperatorHub 升级 Fuse Online 中的步骤,从 Fuse Online 升级到 7.11。

您应该确定是否升级到 Fuse Online 7.11,您需要对现有集成进行更改。即使不需要任何更改,在升级 Fuse Online 时必须重新发布所有正在运行的集成。

3.6.1. 使用 OperatorHub(OCP 4.x)升级 Fuse Online

使用 OpenShift OperatorHub 从 Fuse Online 7.10 升级到 7.11。

注意
  • Fuse Online 7.11 需要 OpenShift Container Platform(OCP)4.6 或更高版本。如果使用 OCP 4.5 或更早版本,如果要升级到 Fuse Online 7.11,则必须升级到 OCP 4.6 或更高版本。
  • 在 OCP 4.9 上,当您升级到 7.11 时,在 Fuse Online Operator 升级过程中会显示以下警告:

    W1219 18:38:58.064578 1 warnings.go:70] extensions/v1beta1 Ingress 在 v1.14+ 中被弃用,在 v1.22+ 中不可用,使用 networking.k8s.io/v1 Ingress

    这个警告会出现的原因是客户端( Fuse Online 用于 Kubernetes/OpenShift API 初始化代码)访问已弃用的 Ingress 版本。这个警告 不是 完全使用已弃用 API 的指示,没有升级到 Fuse Online 7.11 的问题。

从 Fuse Online 7.10 或更早的 7.11 版本升级到较新的 Fuse Online 7.11 版本的升级过程取决于您安装 Fuse Online 时选择的 批准策略

  • 对于自动更新,当有新版本的 Fuse Online 操作器时,OpenShift Operator Lifecycle Manager(OLM)会自动升级运行 Fuse Online 的运行实例,而无需人为干预。
  • 对于 手动更新,则当有新版 Operator 可用时,OLM 会创建更新请求。作为集群管理员,您必须手动批准该更新请求,才能将 Fuse Online operator 更新至新版本,如 OpenShift 文档中的 手动批准待处理的 Operator 升级 部分中所述。

在基础架构升级期间和之后,现有集成将继续使用较 老版本的 Fuse 在线库和依赖项运行。

要使用更新的 Fuse 在线版本运行现有集成,您必须重新发布集成。

3.6.2. 升级 Fuse 在线集成

当您升级到 Fuse Online 7.11 时,您应该确定是否需要更改现有集成。

查看 Camel 迁移注意事项 中介绍的 Apache Camel 更新

即使您的集成不需要更改,您也必须重新发布所有正在运行的集成,因为基础架构升级期间和之后,现有集成仍会使用旧版本的 Fuse Online 库和依赖项运行。要使用更新版本运行它们,您必须重新发布它们。

流程

在您的 Fuse 在线环境中重新发布您的集成:

  1. 在 Fuse Online 左侧导航面板中,单击 Integrations
  2. 对于每个集成:

    1. 在集成条目右侧,点 three vertical dots 并选择 Edit
    2. 当 Fuse Online 显示用于编辑的集成时,请单击右上角的 Publish

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

注意

Fuse Online 用户界面会显示一个警告,如果集成的所有元素都有您更新所需的更新依赖项。

3.7. 从 OCP 项目卸载 Fuse Online

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

前提条件

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

流程

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

    oc login -u developer -p developer

  2. 切换到运行您要卸载的 Fuse 在线环境的 OpenShift 项目。例如:

    oc project my-fuse-online-project

  3. 删除 Fuse Online 基础架构:

    oc delete syndesis 应用程序

  4. 删除 syndesis-operator DeploymentConfigImageStream 资源:

    oc delete deployment/syndesis-operator
    oc delete is/syndesis-operator

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

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

先决条件

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

流程

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

oc delete project fuse-online-project

第 4 章 如何调用 Fuse Online 公共 REST API 端点

当您在 OCP 上运行 Fuse Online 时,每个 Fuse 在线环境都可以公开公共 REST API 端点。外部持续集成/持续交付(CI/CD)工具可调用这些端点,以便操作位于 Fuse 在线环境中的资源。

在每个 Fuse Online 环境中,OpenShift 管理员必须先公开 Fuse Online 公共 REST API 端点,然后才能调用这些端点。调用 API 端点的命令指定端点运行的 Fuse Online 环境的 URL、secret 令牌和身份验证令牌。

详情请查看以下主题:

4.1. 公开 Fuse Online 公共 REST API,供外部工具使用

当您在 OCP 在线上运行 Fuse Online 时,您可能希望使用外部工具将 Fuse Online 集成从一个 Fuse Online 环境复制到另一个 Fuse 在线环境。外部 CI/CD 工具可能是 Jenkins 作业、Ansible playbook、基于 cron的 shell 脚本或其他内容。例如,Ansible playbook 可以从 Fuse 在线开发环境导出集成,并将它导入到 Fuse 在线测试环境。

要启用此功能,您必须为每个 Fuse 在线环境公开 Fuse Online 公共 REST API 端点。换句话说,您必须在安装 Fuse Online 的每个 OpenShift 项目中重复这个过程。

先决条件

  • 您有一个 OCP 项目,在其中安装了 Fuse Online。
  • 已安装 oc 客户端工具,它连接到安装了 Fuse Online 的 OCP 集群。
  • 您可以使用外部 CI/CD 工具,并希望将标记的集成从一个 Fuse 在线环境复制到另一个。
  • 执行 syndesis-operator grant 命令需要集群管理特权。拥有 OpenShift 项目的管理特权但没有集群管理特权的用户可以执行其他命令。

流程

  1. 使用具有集群管理特权的帐户登录到 OpenShift。例如:

    oc login -u admin -p admin

    虽然只有 syndesis-operator grant 命令需要集群管理员特权,但这个过程假设集群管理员执行所有步骤。

  2. 切换到运行 Fuse Online 的 OpenShift 项目。您只在此项目公开公共 API。例如:

    oc project fuse-online-north

  3. 将角色授予 syndesis-public-oauthproxy 服务帐户。您的 OpenShift 项目使用此服务帐户运行 OAuth 代理服务。指定具有集群管理特权的用户帐户。例如:

    syndesis-operator 授予 --user developer

    此命令创建并分配一个集群角色和集群角色绑定到 syndesis-public-oauthproxy 服务帐户。ClusterRoleBinding 指定您在其中公开 API 的 OpenShift 项目的名称,本例中为 fuse-online-north

    • ClusterRole:syndesis-auth-delegator
    • ClusterRoleBinding:syndesis-fuse-online-north-auth-delegator
  4. 创建客户端服务帐户,并授予它访问 Fuse Online 公共 API 的权限:

    1. 使用您选择的名称创建 OpenShift 服务帐户。例如,以下命令创建 cicd-client 服务帐户:

      oc create serviceaccountcd-client

      调用公共 API 端点的命令使用该帐户访问公共 API。另外,您需要此服务帐户获取 secret 令牌,该令牌必须在对 API 端点的调用中指定。这在 获取用于调用 REST API 端点 的 secret 令牌 中进行了描述。

    2. 授予客户端服务帐户访问 Fuse 在线公共 API 的权限。如果 fuse-online-north 是安装 Fuse Online 的 OpenShift 项目的名称,并且 ifcd -client 是您用于访问 API 服务的服务帐户的名称,则您可以调用以下命令:

      oc policy add-role-to-user edit system:serviceaccount:fuse-online-north:cicd-client`
  5. 编辑 syndesis 自定义资源:

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

      oc edit syndesis

    2. 编辑资源,使它启用公共 API,并指定 Fuse Online 环境的公共地址来调用端点,作为 routeHostname 的设置。(如果编辑到 default-cr.yml 文件,用于安装 Fuse Online,启用公共 API 并指定端点的路由主机名,则不需要编辑资源。)

      集群设置决定了您需要指定的公共地址。详情请参阅 OpenShift 文档中有关路由的内容。在以下示例中,路由主机名对于 minishift 集群有效。

      spec:
        addons:
          publicApi:
            enabled: true
            routeHostname: public-syndesis.192.168.64.63.nip.io
    3. 保存(或关闭)资源。

      保存概要自定义资源会触发 syndesis -operator (负责安装 Fuse Online)来部署公共 API OAuth 代理服务。

      如果您不需要编辑 syndesis 自定义资源,则代表公共 API OAuth 代理服务已被部署。这可能是因为 publicApi 已启用,其路由在 default-cr.yml 文件中指定,用于安装 Fuse Online。

结果

在 OpenShift 中,您可以看到:

  • 用于概要的 、public-oauthproxy 部署配置的 Pod。
  • syndesis-public-oauthproxy 服务。
  • A syndesis-public-api route.

在执行此流程的 OpenShift 项目中,外部 CI/CD 工具可以使用 Fuse Online 公共 REST API 端点导出或导入 Fuse Online 集成。

后续步骤

4.2. Fuse Online 公共 REST API 端点的基本 URL 描述

Fuse Online 公共 REST API 端点的基本 URL 如下:

https://public-syndesis.192.168.64.42.nip.io/api/v1/public

基本 URL 的第一个部分因每个 Fuse 在线环境而异。当您创建运行 Fuse Online 公共 OAuth 代理的 OpenShift 应用程序时,它可以访问公共 REST API 端点,您可以指定 Fuse Online 环境的公共地址。此地址是调用该 Fuse Online 环境中操作的端点的基本 URL 的第一个部分。例如:

https://public-syndesis.192.168.64.42.nip.io

基本 URL 的第二部分与所有 Fuse 在线环境相同:

/api/v1/public

Fuse Online 公共 REST API 提供在三个资源上运行的端点:

  • /integrations 是 Fuse Online 环境中在基本 URL 中标识的集成。
  • /connections 是 Fuse Online 环境中在基本 URL 中标识的连接。
  • /environments 是 Fuse Online 环境中标识在基本 URL 中标识的环境标签集。

4.3. 获取用于调用公共 REST API 端点的 secret 令牌

调用 Fuse Online 公共 REST API 端点的命令必须指定一个机密令牌。此令牌适用于您在给定的 Fuse Online 环境中公开 Fuse Online 公共 REST API 时创建的服务帐户。

先决条件

  • 您在 OCP 现场运行 Fuse Online。
  • 您公开了由您要调用端点的 Fuse Online 环境提供的公共 REST API。

流程

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

    oc describe serviceaccountcd-client

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

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

    oc describe secretcd-client-token-gxb25

    这将显示信息列表,包括显示 token: 以及长系列随机字符的 Data 部分。这是服务帐户的两个 secret 令牌中的一个。

  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 控制台中一样指定它,例如 计时器到log。如果集成名称有空格或特殊字符,您必须指定 HTML 转义字符。

  • 内部集成 ID

    当您查看集成概述时,此 ID 处于 Fuse Online 控制台 URL 中。要查看集成的摘要,请在左侧导航面板中点 Integrations。在集成列表中,点击所需 ID 的集成条目。

    通过在浏览器中看到集成摘要,您会看到如下内容: /integrations/i-Lauq5ShznJ4LcuWwiwcz。这个集成的 ID 是 i-Lauq5ShznJ4LcuWwiwcz

4.5. 指定调用 Fuse Online 公共端点的 curl 命令的格式

调用 Fuse Online public REST API 端点的 curl 命令具有以下格式:

curl [options] \
     -H "Content-Type: <media-type>" \
     -H "SYNDESIS-XSRF-TOKEN: awesome" \
     -H `Authorization: Bearer <token>` \
     <base-url><endpoint> \
     [--request <HTTP-method>] \
     [-d <data>] \
     [-o <filename>]

表 4.1. curl 命令选项

选项描述

[options]

指定您选择的 curl 选项。

<media-type>

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

<token>

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

<base-url>

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

<endpoint>

指定您要调用的端点。

[--request <HTTP-method>]

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

[-d <data>]

另外,根据要调用的端点,还可指定端点所需的参数。例如,要将集成的环境标签更改为 test,您可以指定 -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 章 使用外部工具导出/导入 Fuse Online 集成,以便 CI/CD

当您在 OCP 上运行 Fuse Online 时,可能会具有您要进行特定集成的持续集成/持续部署(CI/CD)管道。实现这一点需要完成这些任务:

  • 在 Fuse Online 控制台中,为 CI/CD 管道标记集成。
  • 在 OpenShift 中,公开 Fuse Online 公共 API
  • 使用外部工具调用 Fuse Online 公共 API 端点来导出和导入集成。

详情请查看以下主题:

5.1. 关于为 CI/CD 标记集成

当您在 OCP 在线上运行 Fuse Online 时,若要识别管道的集成,请为您指定的 CI/CD 环境标记集成。这会对集成应用时间戳的标签。后端 CI/CD Fuse Online 公共 API 使用标签及其时间戳来过滤集成,以查找管道需要处理的集成。

例如,假设您在 Fuse Online 中标记了 test1 环境的集成。然后,您可以调用 Fuse Online 公共 API 导出端点来导出具有 test1 环境标签的集成。端点软件包 test1 集成至导出文件中,并返回该文件。要将 test1 集成复制到 Fuse Online 测试环境,您需要调用公共 API 导入端点,并提供包含导出的 test1 集成的文件。

现在假设您反复更新并发布您之前标记为 test1 环境的集成。您现在有新版本的集成,并将更新的版本导出到 test1 环境。您必须再次标记集成,即使它已标记为 test1 环境。标记集成会再次更新 test1 环境标签的时间戳。这代表外部工具已经更新,并准备好导出。

要再次标记集成,即要在已分配给集成的环境标签上刷新时间戳,请开始标记为 CI/CD 集成的步骤。在 CI/CD 对话框中,单击 Save,因为已选中所需环境的复选框。

5.2. 为 CI/CD 标记集成

当您在 OCP 在线上运行 Fuse Online 时,若要识别管道的集成,请为您指定的 CI/CD 环境标记集成。这会对集成应用标签。

前提条件

您有一个 OCP 项目,在其中安装了 Fuse Online。

流程

  1. 在左侧的 Fuse Online 导航面板中,单击 Integrations
  2. 在集成列表中,在您要标记的集成右侧,点 More Options 显示弹出菜单并点 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. 在确认对话框中,单击 。Fuse Online 删除环境标签,同时从已标记的任何集成中删除已删除的环境标签。

后续步骤

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

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

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

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

要导出已标记为特定环境的集成,Fuse Online 提供以下 GET 方法端点:

/public​/integrations​/{env}​/export.zip

使用您创建的 CI/CD 环境标签替换 {env}。当某个集成标记为特定环境时,Fuse Online 维护一个时间戳,表示它何时被标记。默认行为是端点仅在未导出自标记以来才导出集成。例如,要导出已标记为 test1 环境的集成,端点为:

/public/integrations/test1/export.zip

此端点导出具有 test1 环境标签且满足以下任一条件的每个集成:

  • 自上次导出后,该集成已标记为 test1 环境。
  • 该集成已标记为 test1 环境,它从未导出。

端点打包了 export.zip 文件中的集成并返回该文件。

如果自上次导出集成以来,未标记标记指定环境的集成,则端点会返回 HTTP 204 响应,以指示没有返回任何操作。

用于导出指定环境标记的所有集成的端点

您可以调用导出端点,以便它将所有集成到 Fuse Online 环境中,并带有您指定的环境标签。端点将导出集成,无论它是否标记了指定环境,自上次导出集成的时间。这样便可轻松地重复在另一个 Fuse Online 环境中带有特定标签的所有集成。要做到这一点:

  • 您必须已创建了 environment 标签。请参阅 标记 CI/CD 集成
  • 在调用导出端点时,添加 ignoreTimestamp=true 选项。

例如:

/public/integrations/test1/export.zip?ignoreTimestamp=true -o export.zip

用于导出所有集成的端点

您可以调用导出端点,以便它在一个 Fuse 在线环境中导出所有集成。这样便可轻松地在另一个 Fuse 在线环境中重复所有集成。要做到这一点:

  • 您必须已创建了 environment 标签。请参阅 标记 CI/CD 集成
  • all=true 选项添加到导出端点的调用。

例如:

/public/integrations/{env}/export.zip?all=true

使用 CI/CD 环境标签替换 {env}。端点将指定的环境标签分配给尚未为该环境标记的每个集成。

添加 all=true 选项时,还必须明确指定要打包在 export.zip 文件中导出的集成。例如:

/public/integrations/test1/export.zip?all=true -o export.zip

此调用端点:

  • 标记 test1 环境的每个集成。
  • 返回 export.zip 文件中的所有集成。

    如果您没有指定 -o export.zip 选项,则端点会返回其名称为 export.zip?all=true 的文件。

导出端点所需的自定义标头

调用导出端点的命令必须完全指定这些自定义标头:

  • -H "Content-Type: multipart/form-data"
  • -H "SYNDESIS-XSRF-TOKEN: awesome"

    Fuse 在线公共 API 需要此标头来验证请求。

  • -H 'Authorization: Bearer <token>'

    &lt;token> 替换为您在创建用来公开 Fuse Online 公共 API 的 OpenShift 服务账户时复制到文件中的机密令牌。

导出集成的 curl 命令示例

以下是一个 curl 命令示例,它调用 Fuse Online API 端点来导出集成:

curl -v -k -L -H "Content-Type: multipart/form-data" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA'
https://public-syndesis.192.168.64.42.nip.io/api/v1/public/integrations/dev1/export.zip

在命令中:

  • 命令末尾的 URL 识别 Fuse 在线环境,从其中导出集成。
  • dev1 环境标签的规格表示您要导出已标记为 dev1 环境的集成,并且尚未在标记后导出它们。

5.5. 调用 Fuse Online 公共 API 导入端点

您可以通过调用 Fuse Online 公共 API 导出端点来获取一个或多个集成。要将导出的集成复制到另一个 Fuse 在线环境,可调用 Fuse Online 公共 API 导入端点。

导入集成的端点

要导入集成,Fuse Online 提供了以下 POST 方法端点:

​/public​/integrations

在以下示例中,端点导入位于 export.zip 文件中的集成,并为 测试环境标记它们

/public/integrations -F data=@export.zip -F environment=testing --request POST

导入端点始终导入提供的集成。也就是说,即使集成自导入时没有改变,端点仍会导入它。

导入端点所需的自定义标头

调用导入端点的命令必须正确指定这些自定义标头:

  • -H "Content-Type: multipart/form-data"
  • -H "SYNDESIS-XSRF-TOKEN: awesome"

    Fuse 在线公共 API 需要此标头来验证请求。

  • -H 'Authorization: Bearer <token>'

    &lt;token> 替换为您在创建用来公开 Fuse Online 公共 API 的 OpenShift 服务账户时复制到文件中的机密令牌。

导入集成的 curl 命令示例

以下是一个 curl 命令示例,它调用了导入集成的 Fuse Online API 端点:

curl -v -k -L -H "Content-Type: multipart/form-data" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA'
https://public-syndesis.192.168.64.45.nip.io/api/v1/public/integrations -F data=@export.zip -F environment=testing --request POST

在这个命令中:

  • 命令末尾的 URL 标识将集成导入到的 Fuse 在线环境。
  • export.zip 文件包含要导入的集成。
  • environment= testing 的规格会导致端点标记每个导入的开发环境集成。
  • 该命令会产生 多部分/信息数据

第 6 章 Fuse Online 公共 REST API 端点参考

本节为每个 Fuse Online 公共 REST API 端点提供参考信息。如需更多信息,请参阅如何调用 Fuse Online 公共 REST API 端点

https://<fuse-online-host>/api/v1/openapi.json 的 Fuse Online 环境中提供了用于定义公共 REST API 端点的 OpenAPI 文档。但是,此文档将 标签对象定义 为带有三个标签: public-apiextensionsintegration-support。在将 OpenShift 公共 OAuth 代理进程用于 Fuse Online 时,只有 public-api 标签才能被访问。您应该会忽略另外两个标签。

6.1. 获取集成状态的端点

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

方法和端点

GET

/public/integrations/{id}/state

表 6.1. 参数

名称类型描述

所需的标头参数

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

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

路径参数

{id}

字符串

所需的路径参数。您要获取的集成的名称或内部 ID。请参阅 如何查找集成 ID

请求示例

在以下示例中,端点返回 timer-to-log 集成的状态:

/public/integrations/timer-to-log/state

produces

application/json

响应示例

{"currentState":"Unpublished","stateDetails":{"id":"i-Lc0JLrsUFtBJfR_ylfEz:5","integrationId":"i-Lc0JLrsUFtBJfR_ylfEz","deploymentVersion":5,"detailedState":{"value":"BUILDING","S tep":2,"totalSteps":4},"namespace":"syndesis","podName":"i-timer-to-log-5-build","linkType":"LOGS"}}'

6.2. 获取集成环境标签列表的端点

此端点返回已应用于指定集成的环境标签(标签)。

方法和端点

GET

/public/integrations/{id}/tags

表 6.2. 参数

名称类型描述

所需的标头参数

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

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

路径参数

{id}

字符串

所需的路径参数。您要获取的环境标签的名称或内部 ID。如何查找集成 ID

请求示例

在以下示例中,端点返回 timer-to-log 集成的环境标签:

/public/integrations/timer-to-log/tags

produces

application/json

响应示例

{"test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159,"lastExportedAt":1554887330152,"lastImportedAt":1554888047271},"staging":{"name ":"staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159}}

6.3. 标记集成并保持未指定标签的端点

此端点使用 PATCH 方法为指定环境标记指定的集成。如果集成已标记为指定的环境,端点会更新该环境标签的时间戳。如果集成之前标记为没有在新请求中指定的环境,端点将保留该标签,且不会更新其时间戳。

PATCH 端点是 CI/CD 工具的一个方便的方法,因为它在不需要删除任何其他现有标签的情况下添加标签。这与 PUT 端点不同,它会标记指定环境的集成,并为请求中指定的环境删除所有标签。

方法和端点

PATCH

/public/integrations/{id}/tags

表 6.3. 参数

名称类型描述

所需的标头参数

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

公开 Fuse Online public 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"]'

produces

application/json

响应示例

{"test2":{"name":"test2","releaseTag":"i-LcXydouUFtBJfR_ylgrz","lastTaggedAt":1555365010746},"test3":{"name":"test3","releaseTag":"i-LcXydouUFtBJfR_yl_yl gsz","lastTaggedAt":1555365010746},"test":{"name":"test":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159"lastExportedAt":1554887330152"lastImport edAt":1554888047271},"staging":{"name":"staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159}}

6.4. 标记集成并删除未指定标签的端点

此端点使用 PUT 方法为指定环境标记指定的集成。如果集成之前为新请求中指定的环境标记,端点会从集成中移除该环境。

要在不删除未指定环境标签的情况下标记集成,请调用 PATCH 方法端点

方法和端点

PUT

/public/integrations/{id}/tags

表 6.4. 参数

名称类型描述

所需的标头参数

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

公开 Fuse Online public 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"]'

produces

application/json

响应示例

{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt":15553655713},"test3":{"name":"test3","releaseTag":"i-LcXyw7GUFtBJfR_ylguz","lastTagAt":15155713}

6.5. 发布集成的端点

此端点发布指定的集成。如果集成已在运行,则端点将停止集成并重新发布。

方法和端点

POST

/public/integrations/{id}/deployments

表 6.5. 参数

名称类型描述

required Header Parameter

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

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

路径参数

{id}

字符串

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

请求示例

在以下示例中,端点发布 timer-to-log 集成。

/public/integrations/timer-to-log/deployments

produces

application/json

响应示例

在本例中,ellipsis 指示某些响应的省略。

{"ID":"i-Lc0JLrsUFtBJfR_ylfEz:8","version":8,"createdAt":1555365135324,"updatedAt":1555365135324,"userId":"system:serviceaccount:syndesis:syndesis-cd-client","current State":"Pending","targetState":"Published","integrationId":"i-Lc0JLrsUFtBJfR_ylfEz", ..2c+PC9zdmc+","description":"Trigger 事件基于间隔或 cron 表达式","isDerived":false},"stepKind":"endpoint"},{"id":"-Lc0I7wqEVfKCDDHC8Jv","configuredProties":{"bodyLoggingEnabled":" true","contextLoggingEnabled":"true"},"metadata":{"configured":"true"},"stepKind":"log","name":"Log"}]}],"continuousDeliveState":{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt15 55365085713},"test3":{"name":"test3","releaseTag":"i-LcXyw7GUFtBJfR_ylguz","lastTaggedAt":1555365085713}}}}

6.6. 停止集成的端点

此端点将停止指定的集成。

方法和端点

PUT

/public/integrations/{id}/deployments/stop

表 6.6. 参数

名称类型描述

所需的标头参数

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

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

路径参数

{id}

字符串

必需。要停止的集成的名称和内部 ID。请参阅 如何查找集成 ID

请求示例

在以下示例中,端点将停止 timer-to-log 集成。

/public/integrations/timer-to-log/deployments stop

produces

application/json

响应示例

没有 204 状态代码的内容

6.7. 用于导出集成的端点

此端点将导出集成。默认行为是端点导出已标记为指定环境的集成,并且从未导出或者自上次标记了该环境后未导出。您可以在要执行以下任一操作时指定选项:

  • 导出 Fuse Online 环境中的所有集成,并使用指定的环境标签标记它们。
  • 导出所有带有指定环境标签的集成,无论是否自上次导出时间被更新并标记了集成。

另请参阅: 调用 Fuse Online 公共 API 导出端点

方法和端点

GET

/public/integrations/{env}/export.zip

表 6.7. 参数

名称类型描述

所需的标头参数

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

multipart/form-data

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

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

路径参数

{env}

字符串

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

查询参数

all=true

字符串

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

ignoreTimestamp=true

字符串

导出带有指定环境标签标记的所有集成。无论在上次导出集成之后,是否编辑并标记集成。

附加参数

-O export.zip

字符串

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

请求示例

在第一个示例中,端点将导出已标记为 test1 环境的集成,并且从未导出或者自上次标记了该环境后未导出的集成。

/public/integrations/test1/export.zip

在下一个示例中,端点将导出已标记为 test1 环境的所有集成。从上次导出后,集成是否已经更新。

/public/integrations/test1/export.zip?ignoreTimestamp=true -o export.zip

在最后一个示例中,端点确保每个集成都标记为 test1 环境,并返回 export.zip 文件中的所有集成。

/public/integrations/test1/export.zip?all=true -o export.zip

produces

application/octet-stream

响应

export.zip 文件,其中包含导出的集成。如果没有要导出的集成,端点会返回 HTTP 状态 204

6.8. 导入集成的端点

此端点将导入在提供的文件中。另请参阅: 调用 Fuse Online 公共 REST API 导入端点

方法和端点

POST

/public/integrations

表 6.8. 参数

名称类型描述

所需的标头参数

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

multipart/form-data

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

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

其他参数

data=@export.zip

字符串

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

environment={env}

字符串

必需。要添加到每个导入的集成中的环境标签。您必须已创建了 environment 标签,端点无法创建标签。

请求示例

在以下示例中,端点导入位于 export.zip 文件中的集成,并为 测试环境标记它们

/public/integrations -F data=@export.zip -F environment=testing --request POST

produces

multipart/form-data

响应示例

响应是导入的资源列表,其中包括集成和连接。在以下示例中,ellipsis 表示此省略了部分响应。

{"lastImportedAt":1554888047271,"results":[{"id":"i-Lc0JLrsUFtBJfR_ylfEz","version":5," createdAt":1554800274935,"updatedAt":0,"tags":["timer"]"name":"timer- to-log","flows":[{"id":"-Lc0I5AZEVfKCDDHC8Jv","steps":[{"id":"-Lc0I5jnEVfKCDDHC8Jv","configuredProperties":{"period":"900000"}"metadata":…​"description":" 根据间隔或 cron 表达式","isDerived":false} 触发事件,"stepKind":"endpoint"}, {"ID":"-Lc0I7wqEVfKCDDHC8Jv","configuredProperties":{"bodyLoggingEnabled":"true"},"metadata":{"configured":"true"},"stepKind":"log","name":"Log"}]}],"continuousDeliveryState":{"staging":{"name":"staging":{"name":" staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159}"test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAtgz","lastTaggedAt ":1554887553159"lastExportedAt":1554887330152"lastImportedAt":1554887859824}}}

6.9. 从特定集成中删除环境标签的端点

此端点从指定的集成中删除指定的环境标签。环境标签本身仍然存在,但它不再标记指定的集成。

方法和端点

删除

/public/integrations/{id}/tags/{env}

表 6.9. 参数

名称类型描述

所需的标头参数

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

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

路径参数

{id}

字符串

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

{env}

字符串

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

附加参数

--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. 参数

名称类型描述

所需的标头参数

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

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

路径参数

{env}

字符串

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

produces

不生成任何内容,但按如下方式进行响应:

响应描述

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. 参数

名称类型描述

所需的标头参数

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

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

路径参数

使用

布尔值

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

produces

application/json

请求示例

  • /public/environments

    响应示例:
    ["env-label-1", "env-label-2"]

  • /public/environments/?withUses=true

    Response example
    [{"name":"env-label-1","uses":1},
    {"name":"env-label-2","uses":0}]

6.12. 更改环境标签的端点

此端点会更改环境标签。标记为原始环境标签的集成现在标记为新的环境标签。

方法和端点

PUT

/public/environments/{env}

表 6.12. 参数

名称类型描述

所需的标头参数

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

公开 Fuse Online public 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. 用于从所有集成中删除环境标签的端点

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

方法和端点

删除

/public/environments/{env}

表 6.13. 参数

名称类型描述

所需的标头参数

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

公开 Fuse Online public 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. 参数

名称类型描述

所需的标头参数

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

application/json

端点所需的介质类型。

-H "SYNDESIS-XSRF-TOKEN: awesome"

Custom

身份验证需要。

-H 'Authorization: Bearer <token> '

Custom

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

路径参数

{id}

字符串

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

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

请求示例

以下示例更改了 PostgresDB 连接的属性。user 属性的新值为 myuser密码 属性的新值为 mypassword

/public/connections/PostgresDB/properties --request POST -d '{ "user": "myuser", "password": "mypassword" }'

produces

application/json

响应示例

在本例中,有一个 ellipsis 表示大量响应中的省略。

{"uses":0,"id":"i-LaOziUGpQE45nua4pfCz","name":"TODO app","configuredProperties":{"password":"»ENC:c2cb731046372a275b76beabc92aefa061f79b43fb791fb599d9e85ec0235a7e","Path":"base":"/api","host":"specifichttp://todo-syndesis.my-minishift.syndesis.io/","specification":userIdd","last629,9657"," "createdDate":1553066813379,"board":{"id":"i-Lbj4-vqUFtBJfR_ylfCz","metadata":{"connector-id":"i-LaOzcPZpQE45nua4pfBz","connector-version-latest":"1","connector-version-connection":"1"}, "messages":[{"level":"WARN","code":"SYNDESIS007"}],"createdAt":1554494263030,"updatedAt":1554494263727,"targetResourceId":"i-LaOziUGpQE45nua4pfCz","notices":0,"warnings":1, "errors":0},"isDerived":false}

第 7 章 重新浏览 Fuse Online 用户界面

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

先决条件

  • Fuse Online 已安装并在 OpenShift Container Platform 现场在客户管理的环境中运行。
  • oc 客户端工具连接到安装 Fuse Online 的 OCP 集群。
  • 有安装 Fuse Online 的权限。

流程

  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 -index ConfigMap 对象来修改 syndesis-ui-ui-index ConfigMap 对象:

    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 Online 的后续重新部署也反映了您的更改。

法律通告

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.