Chapter 2. Fuse Online
Fuse Online provides a web browser interface that lets a business expert integrate two or more different applications or services without writing code. It also provides features that allow the addition of code if it is needed for complex use cases.
Fuse Online runs an integration on OpenShift as a Spring Boot application that uses Apache Camel.
2.1. About Fuse Online distributions
Fuse Online is Red Hat’s web-based integration platform. Syndesis is the open source project for Fuse Online. Fuse Online runs in these OpenShift environments:
| Host Environment | Installation |
| OpenShift Dedicated | Red Hat installs and provisions Fuse Online on Red Hat infrastructure. |
| OpenShift Container Platform | Customer installs and manages. |
2.2. Upgrading from Fuse Online 7.11.x to 7.12.x requires manual upgrade steps
If you installed Fuse Online 7.11.x and want to upgrade to Fuse Online 7.12.x.x, you must manually upgrade to Fuse Online 7.12.x.0.
- In the Administrator perspective of the OpenShift Container Platform web console, navigate to Operators > Installed Operators.
- Click the Red Hat Integration Fuse Online 7.11.2 Operator.
- Click the Subscription tab.
Verify that Update approval is set to Manual:
- If Update approval is set to Manual, skip to the next step.
If Update approval is set to Automatic:
- Click Automatic.
- In the Change Update Approval Strategy dialog, select Manual and click Save.
- Under Update channel, click 7.11.2.
For the Change subscription update channel, select 7.12.x.
Note: The
latest,candidate, andstablechannels are Technology Preview features.- Under Upgrade status, click Upgrade available.
- Click Preview InstallPlan and then Approve.
Verify that the operator has fully completed the upgrade to Fuse Online 7.12.0:
- Navigate to the Operators > Installed Operators page and click Red Hat Integration Fuse Online. The Operator Details page opens.
-
Select the Syndesis tab. The status for the Fuse Online instance (the default name is app) initially shows
Installed(to indicate that Fuse Online 7.12.0 is installed). It then progresses through several phases (Installing,Starting, andInstalled). When it reaches theInstalledphase again, the upgrade to 7.12.0 is complete.
- Navigate back to the Operators > Installed Operators page, and then click Upgrade available for the Red Hat Integration Fuse Online operator.
- Click Preview InstallPlan and then Approve.
Verify that the operator has fully completed the upgrade to Fuse Online 7.12.x:
-
Navigate to Networking > Routes and click on the location link for
syndesisto open the Fuse Online web console. - In the upper right corner of the Fuse Online console, click the ? icon and then select About.
-
Verify that the About page includes
7_12_xin the version number.
-
Navigate to Networking > Routes and click on the location link for
2.3. Upgrading Fuse Online integrations
To upgrade a Fuse Online environment that is running on OCP on-site, you must update Fuse Online by using the operator and then republish any running integrations as described in Upgrading Fuse Online.
On OCP 4.9 or later, when you upgrade to 7.11 by using the operator, the following warning is displayed during the Fuse Online Operator upgrade process:
W1219 18:38:58.064578 1 warnings.go:70] extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
This warning appears because clients (that Fuse Online uses for the Kubernetes/OpenShift API initialization code) access a deprecated Ingress version. This warning is not an indicator of complete use of deprecated APIs and there is no issue with upgrading to Fuse Online 7.11.
2.4. Important notes for Fuse Online
Important notes for the Fuse 7.12 release of the Fuse Online distribution:
- Support for Fuse Online is now deprecated as Fuse 7 is now in the maintenance support. There will not be any future development for Fuse Online when Fuse 7 moves out of support.
- Installation of Fuse Online is no longer supported on OCP 3.11.
- Fuse Online no longer supports Camel K runtime or the KNative connector.
- When Fuse Online is installed and provisioned on Red Hat infrastructure, the account is limited to a specific number of integrations that can be running at one time. For details, see the pricing plan.
- An OpenAPI schema that you upload to Fuse Online might not define input/output types. When Fuse Online creates a custom API client from an OpenAPI schema that does not specify input/output types then it is not possible to create an integration that maps integration data to fields that the API client can process or from fields that the API client processed. If an integration requires data mapping to or from a custom API, then when you upload the OpenAPI schema, click Review/Edit to open API Designer, which is an API editing tool, and add input/output type specifications.
- Since Fuse 7.8, an OpenAPI document that you use for a custom API client connector or for an API provider integration cannot have cyclic schema references. For example, a JSON schema that specifies a request or response body cannot reference itself as a whole nor reference any part of itself through any number of intermediate schemas.
On OCP 4.9 (or later), the
application-monitoringproject no longer works. It is a prerequisite for monitoring Fuse Online integrations and infrastructure components with Prometheus and Grafana.To work around this issue, you can use the built-in monitoring stack (in the
openshift-monitoringnamespace) to use theopenshift-user-workload-monitoringfeature and thegrafana-operatorto use theops addonas described in the following Adding Fuse Online monitoring resources (Prometheus and Grafana) on OCP 4.9 (or later) procedure.
2.4.1. Adding Fuse Online monitoring resources (Prometheus and Grafana) on OCP 4.9 (or later)
Prerequisites
- Fuse Online is installed and running on OCP 4.9 (or later) on-site.
-
The
occlient tool is installed and it is connected to the OCP cluster in which Fuse Online is installed. -
You have
adminaccess to the OCP cluster. Your Fuse Online installation is configured with the
ops addonenabled. If required, you can enable it with this command:oc patch syndesis/app --type=merge -p '{"spec": {"addons": {"ops": {"enabled": true}}}}'
Procedure
If there is an existing
openshift-monitoringconfiguration, skip to Step 2.Otherwise, create an
openshift-monitoringconfiguration, that sets the user workload monitoring option totrueand then skip to Step 3:oc apply -f - <<EOF apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: enableUserWorkload: true EOF
If there is an existing
openshift-monitoringconfiguration:Check the existing
openshift-monitoringconfiguration to determine whether the user workload monitoring option is set to true:oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'If the result is
enableUserWorkload: true, the user workload monitoring option is set to true. Skip to Step 3.If the result shows any other configurations, continue to the next step to enable the monitoring of user workloads by editing the ConfigMap.
Open the ConfigMap file in an editor, for example:
oc -n openshift-monitoring edit cm/cluster-monitoring-config
Set enableUserWorkload to true. For example:
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: enableUserWorkload: true
- Save the ConfigMap file.
Use the following command to watch the status of the pods in the
openshift-user-workload-monitoringnamespace:oc -n openshift-user-workload-monitoring get pods -w
Wait until the status of the pods is Running, for example:
prometheus-operator-5d989f48fd-2qbzd 2/2 Running prometheus-user-workload-0 5/5 Running prometheus-user-workload-1 5/5 Running thanos-ruler-user-workload-0 3/3 Running thanos-ruler-user-workload-1 3/3 Running
Verify that the Fuse Online alert rules are enabled in Prometheus:
Access the internal prometheus instance
oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
-
Open your browser to
localhost:9090 -
Select Status> Targets. You should see three
syndesisendpoints. -
Press CTRL-C to terminate the
port-forwardprocess.
-
From the OperatorHub, install the Grafana Operator 4.1.0 to a namespace of your choosing, for example, to the
grafana-middlewarenamespace. Add a cluster role and a cluster role binding to allow the
grafana-operatorto list nodes and namespaces:Download the cluster role YAML file from the
grafana-operatorwebsite:curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/master/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
Add cluster permission for the
grafana-operatorto read other namespaces and nodes:cat <<EOF >> tmp_role.yaml - apiGroups: - "" resources: - namespaces - nodes verbs: - get - list - watch EOFoc apply -f tmp_role.yaml
oc apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: grafana-operator roleRef: name: grafana-operator kind: ClusterRole apiGroup: "" subjects: - kind: ServiceAccount name: grafana-operator-controller-manager namespace: grafana-middleware EOF
Enable the
grafana-operatorto read Grafana dashboards from other namespaces by using theDASHBOARD_NAMESPACES_ALLenvironment variable to limit the namespaces:oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'Check that the
grafanapods are recreated:oc -n grafana-middleware get pods -w
Optionally, view the
grafana-operatorlogs:oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
Add a Grafana custom resource to start a Grafana server pod, for example:
oc apply -f - <<EOF apiVersion: integreatly.org/v1alpha1 kind: Grafana metadata: name: grafana-middleware namespace: grafana-middleware spec: config: auth: disable_signout_menu: true auth.anonymous: enabled: true log: level: warn mode: console security: admin_password: secret admin_user: root dashboardLabelSelector: - matchExpressions: - key: app operator: In values: - grafana - syndesis ingress: enabled: true EOFAllow the
grafana-operatorto read monitoring information:oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
Add a
GrafanaDatasourceto querythanos-querier:oc apply -f - <<EOF apiVersion: integreatly.org/v1alpha1 kind: GrafanaDataSource metadata: name: prometheus-grafanadatasource namespace: grafana-middleware spec: datasources: - access: proxy editable: true isDefault: true jsonData: httpHeaderName1: 'Authorization' timeInterval: 5s tlsSkipVerify: true name: Prometheus secureJsonData: httpHeaderValue1: "Bearer $(oc -n grafana-middleware serviceaccounts get-token grafana-serviceaccount)" type: prometheus url: "https://$(oc get route thanos-querier -n openshift-monitoring -ojsonpath='{.spec.host}')" name: prometheus-grafanadatasource.yaml EOFView the grafana server log:
oc logs -f `oc get pods -l app=grafana -oname`
Access the grafana URL and view the Fuse Online dashboards:
echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')
2.5. Obtaining technical support for Fuse Online
To obtain technical support, in the Fuse Online console, in the left navigation panel, click Support. Use the Support page to download diagnostic information for all integrations or for one or more integrations that you choose. The page also provides a link for opening a support ticket and providing the diagnostic information that you downloaded.
2.6. Technology Preview features in Fuse Online
This release includes the Technology Preview features that are listed below.
Technology Preview features are not supported with Red Hat production service level agreements (SLAs), might not be functionally complete, and Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. For more information, see Red Hat Technology Preview features support scope.
Fuse Online auditing
Fuse Online supports basic auditing for changes made by any user to the following Fuse Online components:
-
Connections - The
Nameand any other fields shown on the connector’s Details page in the Fuse Online web console. -
Connectors - The
Namefield. -
Integrations - The
Namefield.
-
Connections - The
Conditional expressions for mapping data fields
In the data mapper, you can specify a conditional expression and apply it to a data mapping. For example, a conditional expression can specify evaluation of a source field and how to populate the target field if the source field is empty. The limited set of expressions that you can specify are similar to Microsoft Excel expressions.
Document scope for user-defined properties in data mapper
In the data mapper, you can specify a scope for properties that you define for source and target mappings. In the Mapping Details panel, click Add (+) next to Properties. In the Create Property dialog. for the new Scope option, you can select the current message header, a message header from a previous step, or Camel Exchange Property for Camel-specific properties.
For a REST API client that uses OAuth, when you create an API client connector, you can change the default OAuth2 behavior of connections that you create from that connector. Fuse Online vendor extensions to the OpenAPI specification support the following:
- Providing client credentials as parameters.
- Obtaining a new access token based on HTTP response status codes.