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


Red Hat Fuse 7.8

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

Red Hat Fuse Documentation Team

摘要

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

前言

您可以在 OpenShift Container Platform (OCP)上安装和操作 Fuse Online。当 Fuse Online 运行现场时,除了 Fuse Online 在 OpenShift Dedicated 上运行时提供的功能之外,还提供其他功能。

现场 术语表示客户管理的环境;红帽不管理 OpenShift 环境。客户管理的环境可以在内部、云中或混合云中。

详情请查看以下主题:

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

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

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

您可以以 OpenShift 开发人员用户身份(您不需要管理员特权)安装 Fuse Online。您可以安装默认的 Fuse Online 实例或自定义 Fuse Online 实例。对于自定义 Fuse Online 实例,您必须编辑默认自定义资源。

重要

Fuse Online 安装过程需要访问 registry.redhat.io,这是容器镜像的红帽目录。

以下主题提供有关在线安装 Fuse 的详情:

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

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

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

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

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

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

  • 将所有 Fuse Online 镜像镜像镜像(mirror)到您的专用网络上可用的位置。有关在受限环境中为 OpenShift Operator 安装镜像的更多信息,请参阅 OpenShift 文档中的 在受限网络中使用 Operator Lifecycle Manager 部分。
  • 使用 Fuse 存储库内容设置自定义 Maven 存储库。有关详细信息,请参阅 红帽解决方案"如何为 Fuse 7 创建离线 Maven 存储库" https://access.redhat.com/solutions/3746581
  • 编辑 Fuse Online 自定义资源资源,如在安装 Fuse Online 前编辑默认自定义资源文件 中所述:

    • 使用 mavenRepositories 设置来指定离线 Maven 存储库,以便 Fuse Online 可以在开发人员构建和运行集成时获取所需的依赖项。

      在以下示例中,将 customRepo 替换为离线 Maven 存储库的名称,并将 https://customRepo 替换为您的离线存储库的 URL:

      components:
        server:
          features:
            maven:
              repositories:
                customRepo: https://customRepo
    • 通过将 启用 的值改为 false 来禁用 todo addon。

      spec:
        addons:
          todo:
            enabled: false

在受限环境中安装 Fuse Online 后,您可以选择从 https://github.com/syndesisio/todo-example 下载 todo 应用程序,并按照 Readme 文件中的步骤将存储库 URL 更改为专用网络上可用的位置。

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

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

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

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

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

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

除了只能在安装前指定的自定义资源属性外,您还可以在安装前或安装后更改多个自定义资源属性。

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

对于 OCP 4.x:

对于 OCP 3.11:

表 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


用 PostgreSQL 数据库的主机名和端口替换 custom-postgres:5432
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


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

内存和 CPU

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

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

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

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

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

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

仅在安装前设置

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

3scale 发现

公开用于 Fuse Online API 供应商集成的 API,以便它们可以被红帽 3scale 发现。

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

安装前或安装后设置

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


指定 3scale 用户界面的 URL。

备份

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

安装前或安装后设置

spec:
backup:
schedule: interval


替换 interval interval with desired duration between backup.使用 cron 实用程序格式进行 间隔预定义的调度。不要在间隔前面指定 @ 符号。

节点关联性容限

决定 Fuse Online 基础架构组件的放置,并将 pod 集成到集群内的节点上。

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

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

另请参阅: 配置 Fuse 在线 pod

安装前或安装后设置

注: 对 Fuse Online 基础架构组件部署使用 infraScheduling。对于 Fuse Online 集成部署,请将 infraScheduling 替换为 integrationScheduling

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


spec:
infraScheduling:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
preferredIgnoredDuringExecution:
weight:
preference:
matchExpressions: Profile key: valuerhacm operator: value swig value: managing value1

集成限制

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

安装前或安装后设置

components:
server:
features:
integrationLimit: 0

数据库连接池

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

有关数据库池配置的额外信息遵循此表。

安装前或安装后设置

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

Java 选项

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

根据 Java 选项,您可以为组件指定不同的值。例如,您只能为 syndis-server 设置与 JVM 相关的参数,因为它需要比 syndesis-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"


for example:
additionalArguments:
"-Dhttp.proxy=my_proxy -DpropA=valueA"

Maven Repositories

指定 Fuse Online 环境需要访问的外部 Maven 存储库。

安装前或安装后设置

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


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

监控

另请参见:在 OCP 上监控 Fuse 在线与 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 应用
用于测试示例集成。

安装前或安装后设置

addons:
todo:
enabled: false

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

另请参阅 在 OCP 上运行的 Fuse Online 环境中添加示例应用程序

关于附加组件功能和配置设置

  • 增强的活动跟踪

    在安装 Fuse Online 时,默认启用 Jaeger 活动跟踪。Fuse Online 安装(来自 OperatorHub 或命令行脚本)检测到 OperatorHub 存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情况,Fuse Online 使用自己的安装功能来安装 Jaeger。另外,您可以在安装 Fuse Online 前自定义 Jaeger 配置,如 关于为 Jaeger 监控配置 Fuse Online 中所述。

  • 用于保留连接和集成的外部数据库

    Fuse Online 的默认安装提供了 Fuse Online 的内部 PostgreSQL 数据库,用于持久连接和集成定义。您可以选择改为使用外部 PostgreSQL 数据库,如 PostgreSQL 的 Amazon RDS

  • 内部存储容量

    1Gi 的默认设置对于大多数 Fuse Online 环境都足够。只有在红帽技术支持的建议时才会提高新 Fuse 在线安装的此设置。也就是说,您正在运行另一个 Fuse Online 环境,在其中遇到 Fuse Online 服务器错误,而红帽技术支持则决定需要安装一个新的 Fuse 在线环境(其具有大于默认卷容量)。

    要在已经运行 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 配置

basic, out-of-box 配置包含所有 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 服务器配置提供的默认仅内存存储。

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

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

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

例如:

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

混合 Jaeger 客户端和 Operator 配置

使用混合 Jaeger 客户端和 Jaeger Operator 配置,Fuse Online 安装 Jaeger Operator 和 Jaeger 客户端功能。没有安装 Jaeger 自定义资源。您必须安装自己的 Jaeger 自定义资源,该资源定义 Jaeger 服务器配置。这可让您利用 Fuse Online 提供的功能,并为您自己的环境定制 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 活动日志中显示。要在 Fuse Online 活动日志中查看这些数据,请创建以下服务:

oc create -f - <<EOF
 apiVersion: v1
 kind: Service
 metadata:
   labels:
     app: syndesis
     syndesis.io/app: syndesis
     syndesis.io/type: infrastructure
     syndesis.io/component: jaeger
   name: noauth-syndesis-jaeger-query
 spec:
   ports:
     - name: query
       port: 443
       protocol: TCP
       targetPort: 16686
   selector:
     app: jaeger
     app.kubernetes.io/name: syndesis-jaeger
 EOF

1.5. 创建用于使用外部数据库安装 Fuse 的 secret

如果要安装使用外部数据库来持久保留连接和集成定义的 Fuse 在线环境,请在安装 Fuse Online 前创建一个 OpenShift secret syndesis-global-config

先决条件

  • 对于 OCP 3.11,您编辑了 default-cr.yml 文件,以指定使用外部数据库来持久保留连接和集成定义。
  • Fuse Online 尚未安装。
  • 已安装 oc 客户端工具,并连接到您计划安装 Fuse 在线的 OCP 集群。
  • 具有集群管理权限的用户为您提供了在集群中具有访问权限的任何项目中安装 Fuse Online 的权限。

流程

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

    oc login -u developer -p developer

  2. 创建并保存资源文件,如 my-fuse-onling-secret-cr.yml,其中包含以下内容:

    apiVersion: v1
    kind: Secret
    metadata:
      name: syndesis-global-config
      namespace: my-fuse-online-project
      type: Opaque
      data:
        POSTGRESQL_PASSWORD: base64-encoded-value

    my-fuse-online-project 替换为计划为其安装 Fuse Online 环境的 OpenShift 项目的名称。

    base64 编码的值替换为 Fuse Online 将用作访问外部数据库的密码的 base64 编码值。

    如需有关 OpenShift 机密的信息,请参阅 Secret

  3. 将 secret 添加到集群中,例如:

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

结果

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

后续步骤

对于 OCP 4.x,当使用操作器安装 Fuse Online 时,编辑自定义资源以指定使用外部数据库来持久保留连接和集成定义,如从 OperatorHub 安装 Fuse Online Operator 中所述。

对于 OCP 3.11,请在安装 Fuse Online 前按照编辑默认自定义资源文件 中的说明进行操作。

1.6. 安装 Fuse 在线

Fuse Online 是一个灵活、可定制的开源平台,提供核心集成功能作为服务。您可以以 OpenShift 开发人员用户身份(您不需要管理员特权)安装 Fuse Online。

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

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

以下主题详细介绍了使用 operator 在 OCP 4.x 上安装 Fuse Online:

1.6.1. 创建 secret 以访问红帽 registry

在 OCP 4.x 上,在您可以为您要安装 Fuse Online Operator 的每个 OpenShift 项目安装 Fuse Online Operator 之前,您必须通过创建一个 secret 来配置对红帽容器 registry 进行身份验证。

先决条件

  • 您可以访问要在其上安装 Fuse Online 的 OpenShift 集群。
  • 已安装 oc 客户端工具,并连接到您要在其上安装 Fuse Online 的 OCP 集群。
  • 您知道您的红帽客户门户网站帐户或 Red Hat Developer Program 帐户的登录凭证(用户名、密码和电子邮件地址)。如果您不想使用您的红帽帐户用户名和密码来创建 docker registry secret,您可以使用 registry 服务帐户 创建身份验证令牌。

流程

  1. 在终端窗口中,以管理或开发者身份登录到 OpenShift 服务器:

    例如,以管理员身份:

    oc login -u system:admin

    例如,作为开发者:

    oc login -u developer -p developer
  2. 切换到您要安装 Operator 的 OpenShift 项目:

    oc project fuse-online
  3. 使用您的红帽客户门户网站帐户或 Red Hat Developer Program 帐户凭证创建 docker-registry secret。

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

    如果命令成功,OpenShift 会返回以下输出:

    secret/syndesis-pull-secret created

后续步骤

安装 Operator (创建订阅且 Operator 在所选命名空间中运行后),并在添加 Fuse Online 实例前,您必须将您创建的 secret 链接到 operator 服务帐户,如 第 1.6.2 节 “从 OperatorHub 安装 Fuse Online Operator” 所述。

1.6.2. 从 OperatorHub 安装 Fuse Online Operator

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

先决条件

  • 具有管理员或开发人员对 OpenShift 集群的访问权限。
  • 您已配置了 Red Hat Container Registry 身份验证,如 创建 secret 以访问 Red Hat registry 中所述。
  • 已安装 oc 客户端工具,并连接到您要在其上安装 Fuse Online 的 OCP 集群。

流程

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

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

    1. Update Channel 为 Operator 定义更新流,用于为订阅者推出更新。您提供的值取决于您的 OCP 4.x 版本:

      • 对于 OCP 4.6 (及更高版本),将频道输入为 fuse-online-7.n,其中 n 是当前的发行号。例如,对于 Fuse 7.8,键入 fuse-online-v7.8
    2. 对于 Installation mode,请从集群中的命名空间列表中选择一个命名空间(项目)。选择您在 Creating a secret 中创建 docker registry secret 时使用 的同一命名空间,以访问 Red Hat registry
    3. 对于 批准策略,选择 AutomaticManual 来配置 OpenShift 如何处理对 Fuse Online Operator 的更新。

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

    oc secrets link syndesis-operator syndesis-pull-secret --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 使用至少三个持久性卷可供 Fuse Online 使用。所有持久性卷都必须有以下配置要求:

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

流程

  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 Online 环境。

第 2 章 在 OCP 3.11 上安装 Fuse Online

在 OCP 3.11 上安装 Fuse Online 需要集群管理员注册 Fuse Online 自定义资源定义,并为适当的用户授予安装权限。安装 Fuse Online 的用户必须确定是否要安装默认的 Fuse Online 环境或自定义 Fuse 在线环境。对于自定义 Fuse Online 环境,需要编辑默认自定义资源文件。

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

重要

Fuse Online 安装过程需要访问 registry.redhat.io,这是容器镜像的红帽目录。Fuse Online 不支持或测试在断开连接的环境中使用外部容器 registry、自定义 registry 或 registry。

以下主题提供有关在线安装 Fuse 的详情:

2.1. 在 OCP 3.11 上安装 Fuse Online 所需的步骤概述

要在 OCP on-site 上安装 Fuse Online,集群管理员必须执行一些任务,然后具有在特定 OpenShift 项目中安装 Fuse Online 的用户会执行一些任务并运行安装脚本。下图显示了工作流:

在 OCP 上安装 Fuse Online 的工作流。请参阅此镜像后概述。

在 OCP 3.11 工作流镜像上安装 Fuse Online 的概述

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

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

    1. 下载安装脚本和相关文件。
    2. 使用 OpenShift oc 客户端工具命令,在集群级别上注册自定义资源定义(CRD)。
    3. 使用 OpenShift oc 客户端工具命令,为一个或多个用户授予在其项目中安装 Fuse Online 的权限。
  2. 对于您要安装 Fuse Online 的每个 OpenShift 项目,这是授予安装 Fuse Online 权限的用户:

    1. 决定是否安装默认的 Fuse Online 环境或定制的 Fuse Online 环境。自定义 Fuse 在线环境启用一个或多个附加组件功能,以及/或实施一个或多个自定义配置设置。
    2. 下载安装脚本和相关文件。
    3. 可选。如果需要自定义 Fuse Online 环境,请编辑 default-cr.yml 文件(在 Fuse Online 下载软件包中提供)。
    4. 可选。如果需要使用外部数据库来持久保留连接和集成定义,请创建一个 OpenShift secret。
    5. 调用安装脚本。
    6. 确认 Fuse Online 正在运行。

对于要安装的 Fuse Online 的每个 OpenShift 项目,集群管理员必须授予用户在该特定项目中安装 Fuse Online 的权限。

要安装默认的 Fuse Online 环境,具有安装 Fuse 在线下载并运行安装脚本的权限。不需要其他步骤。

2.2. 注册用于部署 Fuse 在线资源的自定义资源定义

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

先决条件

  • 您必须具有集群管理权限。
  • 已安装 oc 客户端工具,并连接到安装 Fuse Online 的 OCP 集群。
  • 在您的 OCP 环境中,Fuse Online 使用至少三个持久性卷可供 Fuse Online 使用。所有持久性卷都必须有以下配置要求:

    • capacity.storage: 1Gi
    • accessMode: ReadWriteOnce

流程

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

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

  2. 在文件系统的便捷位置解包下载的存档。fuse-online-install-1.11 目录包含用于安装 Fuse Online 的脚本和支持文件。
  3. 使用具有集群 admin 权限的账户登录 OpenShift。例如:

    oc login -u admin -p adminpwd

  4. 运行以下命令确认您已正确连接,这将列出已在此集群中注册的自定义资源定义。

    oc get crd

    如果没有错误消息,则代表您被正确连接。

  5. 通过切换到 fuse-online-install-1.11 目录并执行以下命令,在集群级别注册自定义资源定义:

    bash install_ocp.sh --setup

  6. 再次运行以下命令来确认注册是否成功:

    oc get crd

    注册自定义资源定义的输出列表应包含 syndesis

  7. 在您要安装 Fuse Online 的每个项目中,授予用户安装权限。对于每个项目:

    1. 切换到您希望用户能够安装 Fuse Online 的项目。例如:

      oc project fuse-online-project

    2. 授予用户在该项目中安装 Fuse Online 的权限。例如,以下命令向 developer 用户授予安装 Fuse Online 的权限。运行此命令后,开发人员 用户可以在当前项目中安装 Fuse Online,本例中为 fuse-online-project

      bash install_ocp.sh --grant developer

      对您要为其 Fuse Online 安装授予权限的每个 OpenShift 项目重复这两个命令。单个用户可以在集群中的多个项目中安装 Fuse Online。要启用此功能,请切换到另一个项目并指定同一用户,例如:

      oc project another-fuse-online-project
      bash install_ocp.sh --grant developer

结果

syndesis 自定义资源定义在集群中注册。

后续步骤

有权安装 Fuse Online 的用户必须决定是否安装默认的 Fuse Online 环境或自定义 Fuse 在线环境。

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

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

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

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

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

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

除了只能在安装前指定的自定义资源属性外,您还可以在安装前或安装后更改多个自定义资源属性。

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

对于 OCP 4.x:

对于 OCP 3.11:

表 2.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


用 PostgreSQL 数据库的主机名和端口替换 custom-postgres:5432
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


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

内存和 CPU

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

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

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

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

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

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

仅在安装前设置

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

3scale 发现

公开用于 Fuse Online API 供应商集成的 API,以便它们可以被红帽 3scale 发现。

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

安装前或安装后设置

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


指定 3scale 用户界面的 URL。

备份

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

安装前或安装后设置

spec:
backup:
schedule: interval


替换 interval interval with desired duration between backup.使用 cron 实用程序格式进行 间隔预定义的调度。不要在间隔前面指定 @ 符号。

节点关联性容限

决定 Fuse Online 基础架构组件的放置,并将 pod 集成到集群内的节点上。

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

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

另请参阅: 配置 Fuse 在线 pod

安装前或安装后设置

注: 对 Fuse Online 基础架构组件部署使用 infraScheduling。对于 Fuse Online 集成部署,请将 infraScheduling 替换为 integrationScheduling

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


spec:
infraScheduling:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
preferredIgnoredDuringExecution:
weight:
preference:
matchExpressions: Profile key: valuerhacm operator: value swig value: managing value1

集成限制

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

安装前或安装后设置

components:
server:
features:
integrationLimit: 0

数据库连接池

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

有关数据库池配置的额外信息遵循此表。

安装前或安装后设置

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

Java 选项

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

根据 Java 选项,您可以为组件指定不同的值。例如,您只能为 syndis-server 设置与 JVM 相关的参数,因为它需要比 syndesis-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"


for example:
additionalArguments:
"-Dhttp.proxy=my_proxy -DpropA=valueA"

Maven Repositories

指定 Fuse Online 环境需要访问的外部 Maven 存储库。

安装前或安装后设置

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


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

监控

另请参见:在 OCP 上监控 Fuse 在线与 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 应用
用于测试示例集成。

安装前或安装后设置

addons:
todo:
enabled: false

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

另请参阅 在 OCP 上运行的 Fuse Online 环境中添加示例应用程序

关于附加组件功能和配置设置

  • 增强的活动跟踪

    在安装 Fuse Online 时,默认启用 Jaeger 活动跟踪。Fuse Online 安装(来自 OperatorHub 或命令行脚本)检测到 OperatorHub 存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情况,Fuse Online 使用自己的安装功能来安装 Jaeger。另外,您可以在安装 Fuse Online 前自定义 Jaeger 配置,如 关于为 Jaeger 监控配置 Fuse Online 中所述。

  • 用于保留连接和集成的外部数据库

    Fuse Online 的默认安装提供了 Fuse Online 的内部 PostgreSQL 数据库,用于持久连接和集成定义。您可以选择改为使用外部 PostgreSQL 数据库,如 PostgreSQL 的 Amazon RDS

  • 内部存储容量

    1Gi 的默认设置对于大多数 Fuse Online 环境都足够。只有在红帽技术支持的建议时才会提高新 Fuse 在线安装的此设置。也就是说,您正在运行另一个 Fuse Online 环境,在其中遇到 Fuse Online 服务器错误,而红帽技术支持则决定需要安装一个新的 Fuse 在线环境(其具有大于默认卷容量)。

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

  • 数据库连接池配置

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

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

2.5. 在安装 Fuse Online 前编辑默认自定义资源文件

要安装默认的 Fuse Online 环境,您不需要编辑默认的自定义资源文件。请参阅在 OCP 4.x 上安装 Fuse Online,或在 OCP 3.11 上安装 Fuse Online

要安装自定义 Fuse 在线环境,您必须在安装 Fuse Online 前编辑 default-cr.yml 文件。此文件位于 Fuse Online 下载软件包中。有些自定义资源设置只能在 Fuse Online 安装前指定。请参阅安装前,请参阅 编辑默认自定义资源时

您可以在 Fuse Online 安装之前或之后指定其他自定义资源设置。请参阅配置 Fuse Online 的自定义资源属性的描述

Fuse Online 安装过程使用您在 default-cr.yml 文件中指定的设置来创建 syndesis 自定义资源。syndesis 自定义资源设置决定了安装的 Fuse 在线环境的配置。

先决条件

  • 您计划在 OCP 现场安装并运行 Fuse Online。
  • 已安装 oc 客户端工具,它连接到您计划安装 Fuse Online 的 OCP 集群
  • 具有集群管理权限的用户为您提供了在集群中具有访问权限的任何项目中安装 Fuse Online 的权限。

流程

  1. 如果您还没有下载包含 Fuse Online 安装脚本的软件包:

    1. 现在从以下位置下载它:

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

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

    oc login -u developer -p developer

  3. 在编辑器中打开 fuse-online-install-1.11/default-cr.yml 文件。
  4. 编辑 default-cr.yml 文件,以便启用功能并设置您想要的参数。要确定您需要指定的内容,请参阅配置 Fuse Online 的自定义资源属性的描述
  5. 保存 default-cr.yml 文件。

结果

default-cr.yml 文件包含新 Fuse 在线安装的配置规格。

后续步骤

如果您编辑了 default-cr.yml 文件来指定外部数据库,请在安装 Fuse Online 前创建 secret 来使用外部数据库安装 Fuse Online 中的说明。否则,您可以按照在 OCP 3.11 上安装 Fuse Online 中的说明进行操作。

2.6. 关于为 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 配置

basic, out-of-box 配置包含所有 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 服务器配置提供的默认仅内存存储。

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

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

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

例如:

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

混合 Jaeger 客户端和 Operator 配置

使用混合 Jaeger 客户端和 Jaeger Operator 配置,Fuse Online 安装 Jaeger Operator 和 Jaeger 客户端功能。没有安装 Jaeger 自定义资源。您必须安装自己的 Jaeger 自定义资源,该资源定义 Jaeger 服务器配置。这可让您利用 Fuse Online 提供的功能,并为您自己的环境定制 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 活动日志中显示。要在 Fuse Online 活动日志中查看这些数据,请创建以下服务:

oc create -f - <<EOF
 apiVersion: v1
 kind: Service
 metadata:
   labels:
     app: syndesis
     syndesis.io/app: syndesis
     syndesis.io/type: infrastructure
     syndesis.io/component: jaeger
   name: noauth-syndesis-jaeger-query
 spec:
   ports:
     - name: query
       port: 443
       protocol: TCP
       targetPort: 16686
   selector:
     app: jaeger
     app.kubernetes.io/name: syndesis-jaeger
 EOF

2.7. 创建用于使用外部数据库安装 Fuse 的 secret

如果要安装使用外部数据库来持久保留连接和集成定义的 Fuse 在线环境,请在安装 Fuse Online 前创建一个 OpenShift secret syndesis-global-config

先决条件

  • 对于 OCP 3.11,您编辑了 default-cr.yml 文件,以指定使用外部数据库来持久保留连接和集成定义。
  • Fuse Online 尚未安装。
  • 已安装 oc 客户端工具,并连接到您计划安装 Fuse 在线的 OCP 集群。
  • 具有集群管理权限的用户为您提供了在集群中具有访问权限的任何项目中安装 Fuse Online 的权限。

流程

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

    oc login -u developer -p developer

  2. 创建并保存资源文件,如 my-fuse-onling-secret-cr.yml,其中包含以下内容:

    apiVersion: v1
    kind: Secret
    metadata:
      name: syndesis-global-config
      namespace: my-fuse-online-project
      type: Opaque
      data:
        POSTGRESQL_PASSWORD: base64-encoded-value

    my-fuse-online-project 替换为计划为其安装 Fuse Online 环境的 OpenShift 项目的名称。

    base64 编码的值替换为 Fuse Online 将用作访问外部数据库的密码的 base64 编码值。

    如需有关 OpenShift 机密的信息,请参阅 Secret

  3. 将 secret 添加到集群中,例如:

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

结果

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

后续步骤

对于 OCP 4.x,当使用操作器安装 Fuse Online 时,编辑自定义资源以指定使用外部数据库来持久保留连接和集成定义,如从 OperatorHub 安装 Fuse Online Operator 中所述。

对于 OCP 3.11,请在安装 Fuse Online 前按照编辑默认自定义资源文件 中的说明进行操作。

2.8. 运行在 OCP 3.11 上安装 Fuse Online 的脚本

Fuse Online 安装脚本根据 default-cr.yml 文件中的规格安装 Fuse 在线环境,该文件位于 Fuse Online 下载软件包中。要安装默认环境,不需要编辑该文件。要安装自定义环境,您必须在运行安装脚本前编辑 default-cr.yml 文件。

先决条件

流程

  1. 如果您还没有下载包含 Fuse Online 安装脚本的软件包:

    1. 从以下位置下载它:

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

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

    oc login -u developer -p developer

  3. 切换到您要安装 Fuse Online 的 OpenShift 项目,例如:

    oc project my-fuse-online-project

    或者,当运行安装脚本时,您可以指定-- project my-fuse-online-project

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

    bash install_ocp.sh

    要了解安装脚本选项,请调用 bash install_ocp.sh --help 命令。

  5. 确认用于安装 Fuse Online 的 syndesis -operator 的 syndesis 自定义资源准确包含您想要的内容:

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

      oc describe syndesis/app

    2. 检查自定义资源的内容。

      如果它不包含所有更新,则自定义资源中可能存在语法错误。您必须卸载 Fuse Online 并再次尝试定义有效的自定义资源。请参阅从 OCP 项目卸载 Fuse Online

  6. 确认安装成功:

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

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

      如果您编辑了 default-cr.yml 文件,为 Fuse Online 指定 routeHostname,请将 openshift-route 替换为您指定的路由。

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

    Fuse Online 主页将立即或登录 OpenShift 控制台后出现。

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

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

详情请查看以下主题:

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

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

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

表 3.1. 可以更改的功能和设置
功能/设置更改的影响信息

3scale 发现

Redploys syndesis-server

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

Backups

syndesis-operator中添加备份作业

备份 Fuse 在线环境

监控

安装新的 OpenShift 资源

在 OCP 和 Prometheus 上监控 Fuse Online 集成

公共 Fuse Online REST API 端点

创建 syndesis-public-oauthproxy pod

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

用于测试集成的 Todo 应用程序示例

创建新的 todo pod

将示例应用程序添加到 OCP 上运行的 Fuse Online 环境中

Java 选项

重新部署 syndesis-server

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

配置 HTTP 代理

Maven 配置

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

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

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

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

配置 Fuse 在线 pod

Fuse 在线组件可用的内存

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

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

允许运行的集成数

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

数据库连接池

Redploys syndesis-server

3.2. 更改 Fuse 在线配置的一般流程

对于在 OCP 上安装的 Fuse Online 环境,您可以通过更新其合成自定义资源来更改其配置。保存更改后,如果它们语法正确,OpenShift 会用您的更新更新 syndesis-operator。语法错误会阻止更新。

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

先决条件

  • Fuse Online 安装在 OCP 现场。
  • 已安装 oc 客户端工具,并连接到安装 Fuse Online 的 OCP 集群。
  • 您有在要更改 Fuse 在线配置的项目中安装 Fuse Online 的权限。
  • 您查询 了配置 Fuse Online 的自定义资源属性的描述,以了解安装后允许哪些配置更改,以及如何为您要进行配置更改更新合成自定义资源。

流程

  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. 如果您更改了自定义资源的 components.server.features 部分中的 maven:additionalArgumentsMavenRepositoriesintegrationLimit 属性,则必须通过删除 syndesis-server pod 来触发重新部署。使用这个命令:

    oc delete 'oc get -o name pod -l syndesis.io/component=syndesis-server'

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

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

      oc describe syndesis/app

    2. 检查内容。

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

结果

syndesis 自定义资源的大多数更改都会触发 syndesis-operator 以重新部署 Fuse Online syndesis-server 组件。这意味着 OpenShift 会创建一个新的服务器 Pod。有些更改需要您删除 syndesis-server 容器集,以便 OpenShift 创建新的服务器 Pod。

在新服务器就绪前,最多需要一到两分钟。在这段时间中,Fuse Online 控制台不可用。在部署新服务器时,运行的集成会继续运行。新部署准备就绪后,新服务器将加载集成状态。您可以在以下情况下再次使用 Fuse Online 控制台:

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

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

  • 当您更新 syndesis 自定义资源来指定备份时,在备份作业发生前需要几秒钟。

每个配置更改的效果是在安装后 Fuse 在线配置更改允许 的效果。

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

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

如果启用 3scale 发现,您可以稍后选择性地禁用它。

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

如果创建 API 供应商集成,您可能需要为 Red Hat 3scale 中的该集成启用 API 发现。默认行为是 API 不会公开进行 3scale 中的自动发现。启用发现时,您必须提供 3scale 用户界面的 URL。

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

安装后,您可以通过更新 syndesis 自定义资源来启用发现功能。执行此操作的说明包括在此文档中。启用发现功能时,它仅适用于更新资源时您连接到的 OpenShift 项目。

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

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

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

先决条件

  • Fuse Online 安装在 OCP 现场。
  • 已安装 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 Online 集成的权限:

    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,并始终根据合成自定义资源进行部署。

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

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

先决条件

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

流程

  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. 保存资源。

      这会更新 syndesis 自定义资源。此更新移除了 OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 环境变量。对 syndesis 自定义资源的更改会触发 syndesis-operator (负责安装 Fuse Online)以重新部署 syndesis-server。新的默认行为是 API 不再在 3scale 中发现。

    不要编辑 syndesis-server DeploymentConfig 对象,以删除 OPENSHIFT_MANAGEMENT_URL_FOR3SCALE 环境变量的设置。这不起作用,因为 syndesis-operator 会还原您的更改。 syndesis -operator 确保仅部署 Fuse Online,并始终根据合成自定义资源进行部署。

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

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

结果

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

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

3.4. 配置 Fuse 在线 pod

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

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

您可以为基础架构组件部署指定节点关联性或容限设置,独立于集成部署:

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

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

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

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

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

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

先决条件

  • Fuse Online 安装在 OCP 现场。
  • 已安装 oc 客户端工具,并连接到安装 Fuse Online 的 OCP 集群。

流程

  1. 使用以下语法使用 oc patch 命令配置 容限 设置。为 Fuse Online 基础架构组件部署指定 infraScheduling,或为 Fuse Online 集成部署指定 integrationScheduling

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

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

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

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

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

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

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

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

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

其他资源

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

3.5. 配置 HTTP 代理

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

前提条件

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

流程

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

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

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

  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 integrations,设置 Maven 参数(additionalArguments)参数。例如:

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

    如果已安装 Fuse Online,则会重新部署 syndesis-server pod 以响应第 2 步中的 javaOptions 更新。(请注意,如果您只更改 Maven additionalArguments 参数,您必须删除 syndesis-server pod 以触发重新部署。)

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

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

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

3.6. 将示例应用程序添加到 OCP 上运行的 Fuse Online 环境中

为了帮助新用户了解如何创建与 Fuse Online 的集成,您可以在 Fuse Online 环境中添加示例应用程序。ToDo app 允许用户确认 AMQ 到 REST API 示例集成可以正常工作。

要在安装 Fuse Online 前将 Fuse Online 配置为具有 ToDo 应用程序,请参阅配置 Fuse Online 的自定义资源属性描述

先决条件

  • Fuse Online 已安装并在 OCP 现场运行。
  • 已安装 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 my-fuse-online-project

  3. 编辑 syndesis 自定义资源:

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

      oc edit syndesis

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

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

      保存对 syndesis 自定义资源的更改会触发 syndesis-operator 来创建新的 todo pod。

第 4 章 在 OCP 上管理 Fuse Online

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

详情请查看以下主题:

4.1. 监控 Fuse 在线集成和基础架构组件与 Prometheus

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

重要

红帽对 Prometheus 的支持仅限于红帽产品文档中提供的设置和配置建议。

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

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

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

先决条件

  • Fuse Online 已安装并在 OCP 现场运行。
  • 已安装 oc 客户端工具,并连接到安装 Fuse Online 的 OCP 集群。
  • 有对 Fuse Online 命名空间的 admin 访问权限。
  • 您有一个 红帽开发人员帐户,您知道您的用户名和密码。安装脚本提示您输入这些凭证,以便它能够针对 https://developers.redhat.com 进行身份验证。有关创建帐户的详情,请参考 访问和配置 Red Hat Registry
  • 具有集群管理员访问权限的个人已 按照以下 安装说明 部署了 Prometheus 和带有 Application Monitoring operator (特别是标签 v1.1.6)的 Grafana。

流程

  1. 在 Fuse Online 命名空间中,使用以下命令设置 monitoring-key=middleware 标签:

    oc label namespace <fuse-online-namespace> monitoring-key=middleware
  2. 验证 Fuse Online 安装是否将应用程序监控配置资源添加到 OpenShift 集群中:

    1. 在 OpenShift Web 控制台中,前往 application-monitoring 项目,然后打开 prometheus-route URL。
    2. 在 Prometheus 控制台中,进入 StatusTargets 页面。

      如果列出了 Syndesis 目标,则 Fuse Online 被配置为监控,您可以跳至第 4 步。

      如果没有列出 Syndesis 目标,请继续步骤 3。

  3. 要公开 Fuse Online 以供在一个单独的 OpenShift 项目中安装的 Prometheus 实例进行监控,请在 syndesis 自定义资源中启用 ops 附加组件:

    1. 进入 Fuse Online 命名空间:

      OpenShift 4.xOpenShift 3.11
      1. 在 OpenShift Web 控制台中,前往 Fuse Online (syndesis)项目。
      2. 选择 Catalog > Installed Operators,然后点 Fuse Online Operator
      3. Syndesis CRD,然后点 app
      4. Yaml 在编辑器中打开 yaml 文件。
      1. 选择 Resources > Other Resources
      2. 从下拉菜单中,选择 Syndesis 资源类型。
      3. 对于 app 资源,点 Actions,然后选择 Edit YAML 以在编辑器中打开 yaml 文件。
    2. 编辑 yaml 文件,通过添加以下几行将 Syndesis.Spec.Addons.Ops.Enable 值设置为 true

      spec:
        addons:
          ops:
            enabled: true
    3. 保存该文件。
    4. 等待 pod 重启。

      注意

      运行安装命令后,Fuse Online 基础架构资源就无法立即可用。您可能需要等待,然后才能在 Prometheus Targets 页面中看到 Fuse Online (Syndesis)目标。

  4. 访问 Prometheus:

    1. 在 OpenShift 控制台中,为安装应用监控 Operator 的项目打开路由列表。
    2. prometheus-route 条目旁边,点主机名 URL 打开 Prometheus 控制台。
    3. 要查看为 Fuse Online infrastructure 组件配置的警报规则的列表,请单击 Alerts 菜单项。
  5. 访问 Grafana 仪表板:

    1. 在 OpenShift 控制台中,为安装应用监控 Operator 的项目打开路由列表。
    2. grafana-route 条目旁边,点主机名 URL 打开 Grafana 控制台。
    3. 在 Grafana 控制台的顶部,点仪表板选择器。

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

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

    1. 在 OpenShift 控制台中,为安装应用监控 Operator 的项目打开路由列表。
    2. alertmanager-route 条目旁边,点主机名 URL 打开 Alertmanager 控制台。

      如果 Fuse Online 基础架构处于健康状态,则默认视图为空。

      如果任何基础架构组件不健康,则会列出任何触发的警报,以及静默它们的选项。

其他资源

有关 Prometheus 入门的详情,请访问: https://prometheus.io/docs/prometheus/latest/getting_started/

4.2. Fuse Online Metering 标签

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

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

表 4.1. Fuse Online 的 metering 标签
标签可能的值

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

基础架构 (在 rht.subcomp = syndesis suit

Application (在 rht.subcomp = i situation

例子

  • 基础架构示例(基础架构组件是 syndesis-db

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

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

4.3. 备份 Fuse 在线环境

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

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

在安装 Fuse Online 之前,您可以为 Fuse Online 环境配置备份,或者您可以更改 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. 切换到正在运行您要为其配置备份的 Fuse Online 环境的 OpenShift 项目。例如:

    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 前编辑 syndesis 自定义资源。安装 Fuse Online 后,将根据您在自定义资源中指定的时间表备份作业。

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

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

      oc edit syndesis

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

      backup:
        schedule: my-backup-interval

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

      • Cron 预定义的调度
      • Cron interval

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

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

    这会向 syndesis-operator 添加一个备份作业。

结果

如果 Fuse Online 已在运行,则现在会根据您定义的时间表有一个 Fuse Online 备份作业。

后续步骤

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

4.4. 恢复 Fuse 在线环境

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

先决条件

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

流程

  1. 从 Amazon S3 下载所需的备份文件。有关执行此操作的详细信息,请参阅 AWS 文档中的 从 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 Online 环境使用外部数据库,则假设您了解如何获取该数据库的 pod 的名称。

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

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

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

      oc scale dc syndesis-operator --replicas 0

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

      oc scale dc syndesis-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 部署配置中找到密码。如果恢复的 Fuse Online 环境使用外部数据库,则假定您知道密码。

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

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

    exit

  10. 扩展 Fuse 在线组件:

    oc scale dc syndesis-operator --replicas 1

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

    oc scale dc syndesis-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 在线环境的正确密码。以下步骤演示了如何为提供的 PostgresDB 连接执行此操作。

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

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

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

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

4.5. 升级 Fuse 在线

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

在升级到 Fuse Online 7.8 之前,您应该为 Fuse Online 备份和恢复数据库设置 Docker 镜像访问权限,如 升级前访问 Docker 镜像 中所述。

升级 Fuse Online 的步骤取决于您如何安装 Fuse Online:

4.5.1. 在升级前访问 Docker 镜像

默认情况下,Fuse Online 升级过程从 docker.io registry 中拉取 Fuse Online 备份和恢复数据库的 Docker 镜像,而不是从 registry.redhat.io 中拉取(如已知问题 https://issues.redhat.com/browse/ENTESB-15364中所述)。因为 docker.io 对免费下载造成服务限制,所以 Fuse 在线升级过程在尝试下载备份和恢复数据库镜像时可能会遇到以下错误:

error: code = Unknown desc = toomanyrequests: You have reached your pull rate limit

有关 Docker Hub 拉取速率限制的更多信息,请参阅 Docker 文档(https://www.docker.com/increase-rate-limits)。

为了避免遇到 Docker 限制错误,请在启动 Fuse Online 升级过程前,请确保您可以访问 Docker 镜像。如何访问 Docker 镜像取决于您的 OpenShift Container Platform (OCP)版本:

  • 对于 OCP 4.6,将 Docker Hub 凭证添加到现有的 syndesis pull secret 中,如 在 OCP 4.6 上访问 Docker 镜像 中所述。当您将 Docker 凭证添加到 syndesis pull secret 时,会引发 API 上的 Docker Hub 限制,具体取决于 Docker Hub 帐户类型。
  • 对于 OCP 3.11,拉取 Fuse Online 备份和恢复数据库镜像,从 docker.io 恢复到本地缓存,如 在 OCP 3.11 上访问 Docker 镜像 中所述。
4.5.1.1. 访问 OCP4 上的 Docker 镜像

为了避免在启动 Fuse Online 升级过程前遇到可能的 Docker 限制错误,请将 docker 凭证添加到 syndesis pull secret 中。

前提条件

有 OpenShift 集群管理员访问权限。

流程

将 Docker Hub 凭证添加到现有 syndesis pull secret 中:

  1. 使用您的管理员凭证登录到 OpenShift:

    oc login -u system:admin
  2. 运行以下命令检索您的 syndesis pull secret:

     oc get secrets syndesis-pull-secret -o=custom-columns=SECRET:.data.* --no-headers | base64 -d | jq

    这个命令返回类似如下的输出,其中 <AUTH> 是您在 base64 中编码的用户名和密码:

     {
       "auths":{
          "registry.redhat.io":{
             "username":"<AUTH>",
             "password":"<AUTH>",
             "auth":"<AUTH>"
          },
          <You can have more auths elements here>
       }
      }
  3. 要添加 Docker Hub registry 凭证,请编辑 pull secret,并将其保存到 PULL_SECRET 变量中:

     PULL_SECRET=$(base64 -w 0 <<EOF
    {
       "auths":{
          "registry.redhat.io":{
             "username":"<AUTH>",
             "password":"<AUTH>",
             "auth":"<AUTH>"
          },
          <You can have more auths elements here>
          },
          "https://index.docker.io/v1/": {
             "auth": "<AUTH>"
          }
       }
    }
    EOF
    )
  4. 要修补您的 syndesis pull secret,请运行以下命令:

    oc apply -f - <<EOF
    apiVersion: v1
    kind: Secret
    metadata:
      name: syndesis-pull-secret
    data:
      .dockerconfigjson: $PULL_SECRET
    type: kubernetes.io/dockerconfigjson
    EOF

后续步骤

4.5.1.2. 访问 OCP 3.11 上的 Docker 镜像

为了避免在 OCP 3.11 上启动 Fuse Online 升级过程前遇到可能的 Docker 限制错误,您应该将所需的镜像从 docker.io 拉取到本地缓存。

前提条件

有 OpenShift 集群管理员访问权限。

流程

  1. 使用您的 OpenShift 用户名和 OpenShift 集群 URL 登录 OpenShift 节点:

    ssh login <user>@node1.<clusterUrl>
  2. 使用您的用户名和密码登录到 docker :

    sudo docker login -u <username> -p <password> docker.io
  3. 运行以下命令拉取 PostgreSQL 镜像:

    sudo docker pull crunchydata/crunchy-pgdump:centos7-10.11-4.2.1
    sudo docker pull crunchydata/crunchy-pgrestore:centos7-10.11-4.2.1
    sudo docker pull centos:7

    PostgresQL 镜像拉取到 OpenShift 节点的内部 Docker 注册表。

  4. 为每个 OpenShift 节点重复前面的三个步骤。

后续步骤

按照使用安装脚本 升级 Fuse Online 中的步骤,升级 Fuse 在线。

4.5.2. 使用 OperatorHub 升级 Fuse 在线

从 OCP 4.6 开始,OperatorHub 中提供了 Fuse Online 7.8。如果使用 OCP 4.5,如果要安装 Fuse Online 7.8,则必须升级到 OCP 4.6。

注: 如果您使用安装脚本安装 Fuse Online 7.7,您应该使用安装脚本升级到 Fuse Online 7.8,如使用 安装脚本升级 Fuse Online 中所述。

安装 Fuse Online 时,您可以使用 fuse-online-v7.n 格式指定一个频道,其中 n 是当前的发行号。例如,对于 Fuse Online 7.8,频道为 fuse-online-v7.8

从 Fuse Online 7.8 版本升级到较新的 Fuse Online 7.8 版本取决于您在安装 Fuse Online 时选择 的批准策略

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

在基础架构升级过程中和之后,现有集成将继续与 Fuse Online 库和依赖项 旧版本 运行。要让它们使用更新版本运行,您必须重新发布它们。

对于 OCP 4.6 及更新的版本,要从 Fuse Online 7.7 升级到 7.8,请使用以下步骤。

流程

  1. 为了避免遇到 Docker 限制错误,请在启动 Fuse Online 升级过程前,将 docker 凭证添加到 syndesis pull secret 中,如 在升级前访问 Docker 镜像 中所述。
  2. 升级 Fuse Online 操作器:

    1. 在 OpenShift Web 控制台中,点 Operators > Installed Operators
    2. 单击 Fuse Online 操作器,然后单击 Subscription
    3. 频道旁边 点击 Edit 图标。
    4. 选择 fuse-online-v7.8 频道,然后单击 Save

如果在安装 Fuse Online 时指定了 Manual 更新,请按照 OpenShift 文档中的 手动批准待处理的 Operator 升级部分中的说明批准 Operator 更新请求。

4.5.3. 使用安装脚本升级 Fuse Online

如果您使用安装脚本(而不是 OperatorHub)安装 Fuse Online,以下是升级 Fuse 在线的一般步骤:

  • 集群管理员为 Fuse Online 备份和恢复数据库设置对 Docker 镜像的访问权限:

    • 对于 OCP 3.11,拉取 Fuse Online 备份和恢复数据库镜像,从 docker.io 恢复到本地缓存。
    • 对于 OCP 4.6,将 Docker Hub 凭证添加到现有的 syndesis pull secret 中。
  • 下载最新的 Fuse Online 版本。
  • 获取从集群管理员升级 Fuse Online 的权限。
  • 运行更新脚本。

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

  • 从 Fuse Online 7.7 到 Fuse Online 7.8
  • 从 Fuse Online 7.8 版本到较新的 Fuse Online 7.8 版本

先决条件

  • 您已在 OCP 现场安装并正在运行 Fuse Online 版本 7.7。或者,您在 OCP 3.11 上安装并正在运行 7.8 of Fuse Online 版本,并希望升级到新的应用程序镜像。

    对于早期版本:

    • 如果您在 OCP 上运行 Fuse Online 版本 7.6,则必须 升级到 7.7,然后升级到 7.8。
    • 如果您在 OCP 上运行 Fuse Online 版本 7.5,则必须 升级到 7.6,然后升级到 7.7。
    • 如果您在 OCP 上运行 Fuse Online 版本 7.4,则必须 升级到 7.5,然后升级到 7.6。
    • 如果您在 OCP 上运行 Fuse Online 版本 7.3,则必须 升级到 7.4,然后您可以升级到 7.5。
    • 如果您在 OCP 上运行 Fuse Online 版本 7.2,则必须 升级到 7.3
    • 如果您在 OCP 上运行 Fuse Online 版本 7.1,则必须 升级到 7.2
  • 已安装 oc 客户端工具,并连接到安装 Fuse Online 的 OCP 集群。
  • 您有集群管理权限,这是此流程中前两个步骤所需的。

流程

  1. 为避免遇到可能的 Docker 限制错误,集群管理员会设置对 Docker 镜像的访问权限,如 在升级前访问 Docker 镜像 中所述。
  2. 集群管理员下载 Fuse Online 软件包,并授予用户在特定项目中升级 Fuse Online 的权限:

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

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

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

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

      cd fuse-online-install-1.11

    3. 使用集群管理帐户登录到 OpenShift,例如:

      oc login -u admin -p admin

    4. 切换到需要升级 Fuse Online 的 OpenShift 项目,例如:

      oc project fuse-online-project

    5. 更新 Fuse Online 自定义资源定义:

      bash install_ocp.sh --setup

    6. 仅授予在此项目中升级 Fuse Online 的权限。例如,以下命令向 developer 用户授予将 Fuse Online 升级权限。集群管理员运行此命令后,开发人员用户可以在此项目中升级 Fuse Online,本例中为 fuse-online-project

      bash install_ocp.sh --grant developer

  3. 授予升级 Fuse Online 的权限的用户执行升级:

    1. 登录到 OpenShift,例如:

      oc login -u developer

    2. 切换到要升级 Fuse Online 的项目,例如:

      oc project fuse-online-project

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

      bash update_ocp.sh --version

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

      bash update_ocp.sh

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

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

  4. 升级运行的 Fuse Online 集成,如下所示:

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

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

4.6. 从 OCP 项目卸载 Fuse Online

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

前提条件

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

流程

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

    oc login -u developer -p developer

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

    oc project my-fuse-online-project

  3. 删除 Fuse 在线基础架构:

    oc delete syndesis app

  4. 删除 syndesis-operator DeploymentConfigImageStream 资源:

    oc delete dc/syndesis-operator
    oc delete is/syndesis-operator

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

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

先决条件

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

流程

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

oc delete project fuse-online-project

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

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

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

详情请查看以下主题:

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

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

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

先决条件

  • 您有一个安装了 Fuse Online 的 OCP 项目。
  • 已安装 oc 客户端工具,并连接到安装 Fuse Online 的 OCP 集群。
  • 您可以使用外部 CI/CD 工具,并希望将其从一个 Fuse Online 环境复制到另一个环境。
  • 执行 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 serviceaccount cicd-client

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

    2. 授予客户端服务帐户访问 Fuse Online 公共 API 的权限。如果 fuse-online-north 是安装 Fuse Online 的 OpenShift 项目的名称,如果 cicd-client 是您为访问 API 服务创建的服务帐户的名称,则您将执行以下命令:

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

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

      oc edit syndesis

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

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

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

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

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

结果

在 OpenShift 中,您现在可以看到:

  • syndesis-public-oauthproxy 部署配置的 pod。
  • 一个 syndesis-public-oauthproxy 服务。
  • 一个 syndesis-public-api 路由。

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

后续步骤

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

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

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

对于每个 Fuse Online 环境,基本 URL 的第一个部分有所不同。当您创建运行 Fuse Online 公共 OAuth 代理的 OpenShift 应用程序时,允许访问公共 REST API 端点,您可以指定 Fuse 在线环境的公共地址。此地址是基础 URL 的第一个部分,用于调用在该 Fuse 在线环境中运行的端点。例如:

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

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

/api/v1/public

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

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

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

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

先决条件

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

流程

  1. 获取公开此 Fuse 在线环境的公共 REST API 时创建的服务帐户的机密令牌名称。例如,如果 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: 后跟较长的随机字符的 Data 部分。这是服务帐户的两个 secret 令牌之一。

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

结果

curl 命令中,secret 令牌规格类似如下:

-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA'

后续步骤

将保存中的令牌复制到在给定 Fuse Online 环境中调用公共 REST API 端点的命令中。

5.4. 如何查找集成 ID

在调用一个只在特定集成中运行的 Fuse Online public REST API 端点的命令中,您必须指定您希望端点操作的集成的 ID。指定以下之一:

  • 集成名称

    您必须像 Fuse Online 控制台中显示一样指定它,例如 timer-to-log。如果集成名称有任何空格或特殊字符,则必须指定 HTML 转义字符。

  • 内部集成 ID

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

    在浏览器中看到集成摘要后,您会看到类似 URL 的末尾的内容: /integrations/i-Lauq5ShznJ4LcuWwiwcz。此集成的 ID 是 i-Lauq5ShznJ4LcuWwiwcz

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

调用 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>]
表 5.1. curl 命令选项
选项描述

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

(可选)根据被调用的端点,指定端点所需的参数。例如,要更改集成的环境标签以测试,您需要指定 ' 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 Online 环境。
  • timer-to-log 表示您要为指定环境标记 timer-to-log 集成。
  • 测试和临时 规格标记这些环境的 timer-to-log 集成。

第 6 章 使用外部工具为 CI/CD 导出/导入 Fuse 在线集成

当您在 OCP 现场运行 Fuse Online 时,您可能要对某些集成进行持续集成/持续部署(CI/CD)管道。实现这需要完成这些任务:

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

详情请查看以下主题:

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

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

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

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

要再次标记集成(即,要刷新已分配给集成的环境标签的时间戳),启动 Marking integrations for CI/CD 的步骤。在 CI/CD 对话框中,应已选中所需环境的 保存

6.2. 标记 CI/CD 的集成

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

前提条件

您有一个安装了 Fuse Online 的 OCP 项目。

流程

  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 供外部工具使用

6.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. 单击 添加新
      2. Add Tag Name 对话框中,在 Tag Name 输入新 environment 标签的名称,如 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 删除 environment 标签,并从标记了任何集成中删除已删除的环境标签。

后续步骤

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

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

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

  • 在 Fuse Online 中,您要导出 CI/CD 管道的集成必须标记为特定环境。请参阅 为 CI/CD 标记集成

    此要求例外情况。当您希望在一个导出操作中导出 Fuse Online 环境的所有集成时,无论集成是否已为特定环境标记无关。

  • 您公开 Fuse Online 公共 API。请参阅 公开外部工具的 Fuse Online 公共 API 端点

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

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

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

{env} 替换为您创建的 CI/CD 环境标签。当集成标记为特定环境时,Fuse Online 会维护一个指示何时标记的时间戳。默认行为是,只有在标签尚未导出时端点才会导出集成。例如,要导出已标记为 test1 环境的集成,端点为:

/public/integrations/test1/export.zip

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

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

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

如果没有为指定环境标记的集成,自上次导出集成后,端点会返回 HTTP 204 响应,以指示没有返回任何内容。

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

您可以调用导出端点,以便在使用您指定的环境标签标记的 Fuse Online 环境中导出所有集成。端点导出集成自上次导出集成以来,是否标记为指定环境。这样便可轻松复制在另一个 Fuse 在线环境中具有特定标签的所有集成。要做到这一点:

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

例如:

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

用于导出所有集成的端点

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

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

例如:

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

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

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

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

此调用端点:

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

    如果没有指定 the -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 Online 环境,以便从中导出集成。
  • dev1 环境标签的规格表示您要导出已标记为 dev1 环境的集成,并且自标记后尚未导出。

6.5. 调用 Fuse Online public API 导入端点

您可以通过调用 Fuse Online public API 导出端点来获取一个或多个集成。要将导出的集成复制到另一个 Fuse Online 环境,可调用 Fuse Online public 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 Online 环境,以将集成导入到其中。
  • export.zip 文件包含要导入的集成。
  • environment= testing 的规格会导致端点标记每个导入的测试环境集成。
  • 此命令生成 multipart/form-data

第 7 章 Fuse Online public REST API 端点参考

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

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

7.1. 用于获取集成状态的端点

此端点返回指定集成的状态。状态为 Running,Stopped,Pending, 或 Error

方法和端点

GET

/public/integrations/{id}/state

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{id}

string

所需的 path 参数。要获取状态的集成名称或内部 ID。请参阅 如何查找集成 ID

请求示例

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

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

生成

application/json

响应示例

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

7.2. 用于获取集成环境标签列表的端点

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

方法和端点

GET

/public/integrations/{id}/tags

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{id}

string

所需的 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":"releaseTag":"i-Lc5WI16UFtBJfRy_zgfgfTag}}E88047271},"staging":"

7.3. 用于标记集成并保留未指定标签的端点

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

PATCH 端点是 CI/CD 工具的方便方法,因为它添加了标签,而无需删除任何其他现有标签。这与 PUT 端点相反,用于标记指定环境的集成,并删除请求中没有指定的环境的任何标签。

方法和端点

PATCH

/public/integrations/{id}/tags

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{id}

string

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

其他参数

--request PATCH

 

指定 PATCH 方法。

-d [env{,…​}]

string

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

请求示例

在以下示例中,端点为 test2test3 环境标记 timer-to-log 集成:

public/integrations/timer-to-log/tags --request PATCH -d '["test2","test3"]'

生成

application/json

响应示例

{"test2":{"name":"test2","releaseTag":"i-LcXydouUFtBJfR_ylgrz","lastTaggedAt":1555365010746},"test3":{"name":"test3","releaseTag":"test3","releaseTag":"i-LcXydouUFtBJfR_ylgsz","lastTaggedAt":1555365010746}, "test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159,"lastExportedAt":1554887330152,"lastImportedAt":1554888047271},"staging":{"name":"staging","releaseTag":"i-Lc5WI16UFtBJfRyfzgfg}}}

7.4. 用于标记集成并删除未指定标签的端点

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

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

方法和端点

PUT

/public/integrations/{id}/tags

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{id}

string

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

其他参数

--request PUT

 

指定 PUT 方法。

-d [env{,…​}]

string

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

请求示例

在以下示例中,端点标记 test2test3 环境的 timer-to-log 集成。如果集成之前标记为任何其他环境,端点会从集成中删除这些标签。

public/integrations/timer-to-log/tags --request PUT -d '["test2","test3"]'

生成

application/json

响应示例

{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt":1555085713},"test3":{"name":"test3","releaseTag":"i-LcXyw7GUFtBJfR_ylguz","lastTaggedAt":1555365085713}

7.5. 发布集成的端点

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

方法和端点

POST

/public/integrations/{id}/deployments

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{id}

string

必需。要发布的集成的名称或内部 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":"[Lc0-JLc0 . .2c+PC9zdmc+","description":"Trigger 事件基于间隔或 cron 表达式","isDerived":false},"stepKind":"endpoint"},{"id":"-Lc0I7wqEVfKCDDHC8Jv","configuredProperties":{"bodyLoggingEnabled":"true"}, "metadata":{"configured":"true"},"stepKind":"log","name":"Log"}]}],"continuousDeliveryState":{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt":1555085713},"test3":{"name":"test3","releaseTag":"test3GUFtBJfR_ylgtz","lastinuousDeliveryState"

7.6. 用于停止集成的端点

此端点停止指定的集成。

方法和端点

PUT

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

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{id}

string

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

请求示例

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

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

生成

application/json

响应示例

没有 204 状态代码的内容

7.7. 用于导出集成的端点

此端点导出集成。默认行为是端点导出标记为指定环境的集成,并且从上次为那个环境标记为该环境时没有导出这些集成。您可以在要执行以下操作之一时指定选项:

  • 导出 Fuse 在线环境中的所有集成,并使用指定的 environment 标签标记它们。
  • 导出带有指定 environment 标签的所有集成,无论集成在最后一次导出后是否被更新和标记。

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

方法和端点

GET

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

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{env}

string

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

查询参数

all=true

string

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

ignoreTimestamp=true

string

导出带有指定 environment 标签的所有集成。无论在最后一次导出集成后,是否编辑了集成并标记了集成。

其他参数

-o export.zip

string

指定查询参数时需要。如果没有这个选项,导出的集成位于名为 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

生成

application/octet-stream

响应

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

7.8. 用于导入集成的端点

此端点导入提供的文件中的集成。另请参阅: 调用 Fuse Online public REST API 导入端点

方法和端点

POST

/public/integrations

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

其他参数

data=@export.zip

string

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

environment={env}

string

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

请求示例

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

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

生成

multipart/form-data

响应示例

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

{"lastImportedAt":1554888047271,"results":[{"id":"i-Lc0JLc0JLrsUFtBJfR_ylfEz","version":5," createdAt":4800274935,"updatedAt":0,0,"tags":["timer"],"name":"timer-to-log","flows":[{"id":"-Lc0I5AZEVfHIHIHIGIw "metadata":…​"description":"Trigger 事件基于一个间隔或 cron 表达式","isDerived":false},"stepKind":"endpoint"},{"id":"-Lc0I7wqEVfKCDDHC8Jv","configuredProperties":{"bodyLoggingEnabled":"true"},"metadata":{"configured":"true"},"metadata":{"configured":"true"}, "stepKind":"log","name":"Log"}]}],"continuousDeliveryState":{"staging":{"name":"staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159},"test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJFtBfz","lastTaggedAtTag5359},"test":{" "lastExportedAt":1554887330152,"lastImportedAt":1554887859824}}}]}

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

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

方法和端点

DELETE

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

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{id}

string

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

{env}

string

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

其他参数

--request DELETE

 

指定 DELETE 方法。

请求示例

在以下示例中,端点会从 timer-to-log 集成中删除 dev1 环境标签。

/public/integrations/timer-to-log/tags/dev1 --request DELETE

响应示例

没有 204 状态代码的内容

7.10. 用于创建环境标签的端点

此端点会创建一个环境标签。在 Fuse Online 控制台中或通过调用公共 API 端点,不会使用这个标签标记集成。

方法和端点

POST

/public/environments/{env}

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{env}

string

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

生成

不生成任何内容,但响应如下:

响应描述

204 无内容

成功。

400 错误请求

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

5XX 错误

服务器无法履行请求。

请求示例

在以下示例中,端点创建 dev1 环境标签:

/public/environments/dev1 --request POST

dev1 环境标签现在存在于您调用此端点的 Fuse Online 环境中。还没有标记此标签的任何集成。

响应示例

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

7.11. 用于获取环境标签列表的端点

此端点返回 Fuse Online 环境中存在的环境标签列表。您可以在 Fuse Online 控制台中创建环境标签。请参阅为 CI/CD 管理环境标签

方法和端点

GET

/public/environments[?withUses=true]

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

withUses

布尔值

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

生成

application/json

请求示例

  • /public/environments

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

  • /public/environments/?withUses=true

    响应示例
    [{"name":"env-label-1","uses":1},
    {"name":"env-label-2","uses":0}]

7.12. 用于更改环境标签的端点

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

方法和端点

PUT

/public/environments/{env}

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{env}

string

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

其他参数

-d {env}

string

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

--request PUT

 

指定 PUT 方法。

请求示例

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

/public/environments/dev1 -d 'dev2' --request PUT

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

响应示例

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

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

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

方法和端点

DELETE

/public/environments/{env}

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{env}

string

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

其他参数

--request DELETE

 

指定 DELETE 方法。

请求示例

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

/public/environments/dev1 --request DELETE

响应示例

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

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

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

方法和端点

POST

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

表 7.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 服务帐户的机密令牌。请参阅 获取机密令牌

路径参数

{id}

string

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

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

请求示例

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

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

生成

application/json

响应示例

在本例中,有一个指示大量响应部分的省略。

{"uses":0,"id":"i-LaOziUGpQE45nua4pfCz","name":"TODO app","configuredProperties":{"password":"»ENC:c2cb731046372a275b76beab92aefa061f79b43fb791fb599d9e85ec0235a7e","basePath":"/api","host":"http://todo-syndesis.my-minishift.syndesis.io/","specification":IdId]":"Update9662" "createdDate":1553066813379,"board":{"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":15544263727,"targetResourceId":"i-LaOziUGpQE45nua4pfCz","notices":0,"warnings":1, "errors":0},"isDerived":false}

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

您可以通过替换 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,选择 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 部署:

    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 © 2024 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.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.