Chapter 1. Installing Fuse Online on OCP 4.x
Fuse Online is a flexible and customizable, open source platform that provides core integration capabilities as a service.
Each installation of Fuse Online is referred to as a Fuse Online instance (or environment). In a given OpenShift project, there can be exactly one Fuse Online instance. Each Fuse Online instance has its own URL. In a single OpenShift cluster, there can be multiple Fuse Online instances.
You can install Fuse Online as an OpenShift developer user if you have the proper permissions to install operators from OperatorHub. You can install a default Fuse Online instance or a customized Fuse Online instance. For a customized Fuse Online instance, you must edit the default custom resource.
The Fuse Online installation process requires access to registry.redhat.io, which is the Red Hat Ecosystem Catalog for container images.
The following topics provide details for installing Fuse Online:
- Section 1.1, “Overview of the steps required to install Fuse Online on OCP 4.x”
- Section 1.1.1, “Considerations for installing Fuse Online in a restricted environment (OCP 4.6 and later)”
- Section 1.2, “When editing the default custom resource is required before installing Fuse Online”
- Section 1.3, “Descriptions of custom resource attributes that configure Fuse Online”
- Section 1.4, “About configuring Fuse Online for Jaeger monitoring”
- Section 1.6.1, “Authenticating with registry.redhat.io for container images”
- Section 1.6, “Installing Fuse Online”
1.1. Overview of the steps required to install Fuse Online on OCP 4.x
To install Fuse Online on OCP 4.x, here are the main steps:
- Generate an OpenShift secret that configures authentication to Red Hat container images.
- Install the Fuse Online Operator from the OperatorHub to a project (namespace) on the cluster.
- Optionally, if you want to include an external database for persisting connection and integration definitions, create an OpenShift secret.
Add a Fuse Online instance to an OpenShift 4.x project.
Optionally, edit the custom resource to enable one or more add-on features and/or implement one or more custom configuration settings.
- Optionally, grant permission to other developer users so that they can access the Fuse Online web console.
1.1.1. Considerations for installing Fuse Online in a restricted environment (OCP 4.6 and later)
Before you install Fuse Online in a restricted environment, you must complete the following tasks.
Prerequisite
- You have cluster admin access on the restricted environment’s OpenShift cluster.
Procedure
- Mirror all of the Fuse Online images to a location available on your private network. For more information about installing images for OpenShift operators in a restricted environment, see the Using Operator Lifecycle Manager on restricted networks section in the OpenShift documentation.
- Set up a custom Maven repository with the Fuse repository contents. For detailed information, see the Red Hat Solution: How to create an offline Maven repository for Fuse 7.
Before you install Fuse Online, edit the Fuse Online custom resource. Use the
maven:mirror
setting to instruct Fuse Online to only look at the single specified Maven repository to access Maven artifacts when it builds integrations.In the following example, replace
https://customRepo
with your offline repository’s URL:components: server: features: maven: mirror: https://customRepo
Set the
HTTPS_PROXY
,HTTP_PROXY
, andNO_PROXY
environment variables tosyndesis-oauthproxy
. You can set these environment values when you install Fuse Online or afterwards.To set the environment values on
syndesis/app
after you install Fuse Online:Retrieve the values from proxy/cluster by using the following commands:
myhttpProxy=$(oc get proxy/cluster -ojsonpath='{.status.httpProxy}') myhttpsProxy=$(oc get proxy/cluster -ojsonpath='{.status.httpsProxy}') mynoProxy=$(oc get proxy/cluster -ojsonpath='{.status.noProxy}')
Set the values by using the following oc patch command:
oc patch syndesis/app --type=merge -p "{\"spec\": {\"components\": {\"oauth\": {\"environment\": {\"HTTPS_PROXY\": \""${myhttpsProxy}"\", \"HTTP_PROXY\": \"${myhttpProxy}\", \"NO_PROXY\": \"${mynoProxy}\"}}}}}"
This command returns the following confirmation:
syndesis.syndesis.io/app patched
Because you changed the
syndesis-oauthproxy
deployment, OpenShift recreates thesyndesis-oauthproxy-1-deploy
pod.
-
By default, the
todo
sample application is disabled (in the Fuse Online custom resource, theaddon:todo:enabled
value is set tofalse
). Optionally, after you install Fuse Online in a restricted environment, you can download thetodo
sample application from https://github.com/syndesisio/todo-example and follow the steps in the Readme file, changing the repository URL to the location available on your private network.
1.2. When editing the default custom resource is required before installing Fuse Online
The Fuse Online installation includes a default custom resource, which specifies the default settings for configurable Fuse Online environment add-on features and parameter settings.
You need to edit the default custom resource before you install Fuse Online if you want the installed Fuse Online environment to:
- Use a URL that you specify for the OpenShift route by which the Fuse Online console can be reached. The default is that the installation process calculates this route.
- Use an external database to store connection and integration definitions. The default is that the environment uses an internal database.
-
Increase the amount of internal storage that is available for persisting connection and integration definitions. The default, which is
1Gi
, is sufficient for most Fuse Online environments.
To configure a Fuse Online environment for any one of these behaviors, you MUST edit the custom resource when you install Fuse Online. In other words, you cannot change the configuration of an installed Fuse Online environment to implement any of these behaviors. Also, after you install a Fuse Online environment that is configured for any of these behaviors, you cannot change that behavior in the installed environment.
1.3. Descriptions of custom resource attributes that configure Fuse Online
In addition to the custom resource attributes that you can specify only before installation, there are a number of custom resource attributes that you can change before or after installation.
Table 1 provides a brief description of configurable custom resource settings and indicates when you can change them: before and/or after installation. To achieve the Fuse Online configuration that you want, use the information in this table to determine how you need to change the custom resource before installation or how you want to change it after installation. Then follow the appropriate procedure:
For OCP 4.x:
Feature/Setting | When you can set this | Specification |
---|---|---|
Enhanced activity tracking | Set only before installation |
Enhanced activity tracking is enabled, by default. If you want to customize the Jaeger configuration, you can set |
External database | Set only before installation |
|
Internal storage capacity for connections and integrations. | Set only before installation |
|
OpenShift route for accessing Fuse Online console | Set only before installation |
|
Memory and CPU Each component defines its own memory requirement, which means that each pod has a limit on the amount of memory it is assigned. For information about limit and request settings, see the section on Configuring cluster memory to meet container memory and risk requirements in the OpenShift documentation.
You can also specify CPU resources for the
The
The
The | Set only before installation |
|
3scale discovery | Set before or after installation |
|
Backups | Set before or after installation |
|
Node affinity and tolerations Determines the placement of Fuse Online infrastructure component and integration pods onto nodes within the cluster. Node affinity allows you to specify an affinity for Fuse Online pods towards a group of nodes to be placed on. Tolerations allows you to control which nodes the Fuse Online pods run on and to prevent other workloads from using those nodes. See also: Configuring Fuse Online pods. | Set before or after installation |
Note: Use
|
Integration limit | Set before or after installation |
|
Database connection pool You can adjust the server connection pool configuration to manage the connections to the database. Additional information about the database pool configuration follows this table. | Set before or after installation |
|
Java Options
You can specify Java options for the
Depending on the Java option, you can specify different values for the components. For example, you can set a JVM-related parameter for | Set before or after installation |
Replace
Replace
For example, to configure the HTTP proxy: components:+ server: |
Maven Arguments | Set before or after installation |
|
Maven Mirror | Set before or after installation |
|
Maven Repositories | Set before or after installation |
|
Monitoring | Set before or after installation |
|
Public REST API | Set before or after installation |
|
ToDo addon | Set before or after installation |
See also Adding sample data to a Fuse Online environment running on OCP. |
Auditing For viewing basic changes made to connectors, connections, and integrations. See also Auditing Fuse Fuse Online components. Note: This is a Technology Preview feature. | Set before or after installation |
|
About add-on features and configuration settings
Enhanced activity tracking
Activity tracking, using Jaeger, is enabled by default when you install Fuse Online. The Fuse Online installation (from the OperatorHub or the command-line script) detects the existence of the OperatorHub and installs Jaeger by using the OperatorHub’s subscription functionality. For the limited circumstances in which the OperatorHub is not available, Fuse Online uses its own installation functions to install Jaeger. Optionally, you can customize the Jaeger configuration before you install Fuse Online as described in the About configuring Fuse Online for Jaeger monitoring section.
External database for persisting connections and integrations
A default installation of Fuse Online provides an internal PostgreSQL database that Fuse Online uses to persist connection and integration definitions. You can choose to use an external PostgreSQL database instead, such as one of the PostgreSQL templates that OpenShift provides by default.
Internal storage capacity
The default setting of
1Gi
is sufficient for most Fuse Online environments. It is expected that you would increase this setting for a new Fuse Online installation only upon the recommendation of Red Hat technical support. That is, you have been running another Fuse Online environment in which you encountered Fuse Online server errors and Red Hat technical support determined that you need to install a new Fuse Online environment with a database volume capacity that is larger than the default.To increase Fuse Online internal storage capacity in an OpenShift project that is already running Fuse Online, you must first uninstall Fuse Online. See Uninstalling Fuse Online from an OCP project.
Database connection pool configuration
You can configure the following
syndesis-server
database connection pool properties:-
connectionTimeout
- The maximum number of milliseconds that thesyndesis-server
waits for a connection from the pool. The lowest acceptable connection timeout is 250 ms. The default is 30000 (30 seconds). -
idleTimeout
- The maximum amount of time (in milliseconds) that a connection is allowed to sit idle in the pool before the connection is removed. A value of 0 means that idle connections are never removed from the pool. The minimum allowed value is 10000 (10 seconds). The default is 600000 (10 minutes), -
leakDetectionThreshold
- The amount of time (in milliseconds) that a connection can be out of the pool before a message is logged indicating a possible connection leak. A value of 0 means leak detection is disabled. The lowest acceptable value for enabling leak detection is 2000 (2 seconds). The default is 0. -
maxLifetime
- The maximum lifetime (in milliseconds) of a connection in the pool. The minimum allowed value is 30000 (30 seconds). The default is 1800000 (30 minutes). -
maximumPoolSize
- The maximum size that the pool is allowed to reach, including both idle and in-use connections. The default is 10. -
minimumIdle
- The minimum number of idle connections maintained in the pool. The default is the value ofmaximumPoolSize
.
-
1.4. About configuring Fuse Online for Jaeger monitoring
Jaeger is open source software for tracing transactions between distributed services. It is especially useful for monitoring and troubleshooting complex microservices environments.
When you install Fuse Online, either from the OperatorHub or by using the command-line script, the Fuse Online installation detects the existence of the OperatorHub and installs Jaeger by using the OperatorHub’s subscription functionality. For the limited circumstances in which the OperatorHub is not available, Fuse Online uses its own installation functions to install Jaeger.
A default Fuse Online environment configures all needed Jaeger components. Optionally, you can edit the Fuse Online custom resource to specify a client-only/independent server configuration or a hybrid Jaeger client and Jaeger Operator configuration.
Default Jaeger configuration
The basic, out-of-the-box, configuration includes all Jaeger components. You can start learning about how Jaeger works by experimenting with its monitoring capabilities. The default configuration provides a memory-only, limited, backend storage capability.
Installing Fuse Online with the default Jaeger configuration has the following results:
- Fuse Online components have Jaeger communication URLs.
- Jaeger Operator is installed.
- Jaeger custom resource is configured with a default configuration for activity monitoring.
A Fuse Online installation with the default Jaeger configuration, has the following syndesis
custom resource specification:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true
When the clientOnly
and operatorOnly
are unspecified (set to false
, by default) Fuse Online uses the provided Jaeger backend as well as the default, memory-only storage provided by the Jaeger server configuration.
Client-only/independent server configuration
With a client-only/independent server configuration, only client URL connections are configured for communication between Fuse Online and an externally configured Jaeger backend. All aspects of the Jaeger backend are external and independent of the Fuse Online environment and syndesis-operator
. This includes the Jaeger Operator and the Jaeger custom resource.
To install a client-only Jaeger configuration, edit the custom resource before you install Fuse Online as follows:
-
Set
clientOnly
totrue
to add Jaeger agent capabilities. -
Set
queryUri
to the URI of the query component of the independently installed Jaeger backend. -
Set
collectorUri
to the URI of the collector component of the independently installed Jaeger backend.
For example:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true clientOnly: true queryUri: https://jaeger-query-hostname:443/api collectorUri: https://jaeger-collector-hostname:14268/api/traces
Hybrid Jaeger client and operator configuration
With a hybrid Jaeger client and Jaeger Operator configuration, Fuse Online installs the Jaeger Operator as well as the Jaeger client capabilities. A Jaeger custom resource is not installed. You must install your own Jaeger custom resource, which defines your Jaeger server configuration. This lets you take advantage of the Fuse Online-provided capability and also tailor Jaeger configuration for your own environment, for example, you can use Elasticsearch or Cassandra for data storage.
To install a hybrid Jaeger client and Jaeger Operator configuration:
Edit the custom resource before you install Fuse Online as shown in the following example:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true operatorOnly: true
Name the Jaeger custom resource
syndesis-jaeger
as shown in the following example:apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: syndesis-jaeger ... spec: ....
Note: Alternately, if you want to use a different name for the Jaeger custom resource, set the
queryUri
andcollectorUri
in the Syndesis custom resource as described in the Client-only/independent server configuration section.
When the Jaeger custom resource with syndesis-jaeger
name is created, the Jaeger instance collects data from the Fuse Online integrations. By default, you can view this data in the Fuse Online activity log.
1.5. Installing Fuse Online with an external database
If you want to install a Fuse Online environment that uses an external database to persist connection and integration definitions:
- Create a postgreSQL database with a hostname that the OpenShift cluster can locate.
-
Before you install Fuse Online, create an OpenShift secret named
syndesis-global-config
for the external database. - Install Fuse Online.
- Before you deploy Fuse Online, edit the custom resource to configure the connection to the external database.
Prerequisites
- Fuse Online is not yet installed.
-
The
oc
client tool is installed and it is connected to the OCP cluster in which you plan to install Fuse Online. - A user with cluster administration permissions gave you permission to install Fuse Online in any project that you have permission to access in the cluster.
Procedure
Log in to OpenShift with an account that has permission to install Fuse Online. For example:
oc login -u developer -p developer
Create a postgreSQL database that is available to the OpenShift cluster on which you install Fuse Online and that defines values for the following configuration options:
- Connection username
- Database name
Database password
The following example uses one of the PostgreSQL templates that OpenShift provides by default.
Note: Only use the PostgreSQL ephemeral (
postgresql-ephemeral
) template for development or testing purposes. For a production environment, use the PostgreSQL (postgresql
) template.oc new-app postgresql-ephemeral -p POSTGRESQL_USER=syndesis -p POSTGRESQL_PASSWORD=exdb-pwd -p POSTGRESQL_DATABASE=syndesisdb
This command returns information about the database that you need when you configure Fuse Online, such as the URL.
For information about creating a database see the PostgreSQL topic in the OpenShift documentation.
Create and save a resource file (for example,
my-fuse-online-secret-cr.yml
) that contains the following content:apiVersion: v1 kind: Secret metadata: name: syndesis-global-config namespace: my-fuse-online-project type: Opaque stringData: POSTGRESQL_PASSWORD: exdb-pw
Replace
my-fuse-online-project
with the name of the OpenShift project in which you plan to install the Fuse Online environment for which you are specifying an external database.Replace
exdb-pw
with the password from Step 2. Fuse Online will use it as the password for accessing the external database. Note thatstringData
converts the password value to a base64-encoded value (so that you do not have to do the conversion).For information about OpenShift secrets, see Providing sensitive data to pods.
Add the secret to the cluster, for example:
oc apply -f my-fuse-online-secret-cr.yml
On the OpenShift cluster, the
syndesis-global-config
secret is available to a Fuse Online environment that is installed with a custom resource that specifies an external database.Install Fuse Online in the
my-fuse-online-project
project that you specified in theYAML
file for the secret (in Step 4).For OCP 4.6 and later, follow the instructions in Installing the Fuse Online Operator from the OperatorHub. In Adding a Fuse Online instance to an OpenShift 4.x project, before you deploy Fuse Online, edit the custom resource to specify the use of an external database, for example:
apiVersion: syndesis.io/v1alpha1 kind: Syndesis metadata: name: app spec: components: database: externalDbURL: "postgresql://syndesis-external-db:5432" user: db-user-name name: db-name
-
Replace
syndesis-external-db:5432
with the host name and port for the external PostgreSQL database. -
Replace
db-user-name
with the Connection username. -
Replace
db-name
with the name of the database.
Result
The Fuse Online installation process uses the settings in the custom resource to determine the configuration of the installed Fuse Online environment.
When correctly installed and deployed, Fuse Online brings up all of the required pods except for syndesis-db
. Instead of syndesis-db
, the syndesis-server
connects to the database with the service name of the external database. If the external database configuration is incorrect then the syndesis-server
fails to initialize and the Fuse Online deployment ends with an error.
1.6. Installing Fuse Online
Fuse Online is a flexible and customizable, open source platform that provides core integration capabilities as a service. You can install Fuse Online as an OpenShift developer user if you have the proper permissions to install operators from OperatorHub.
Here are the general steps for installing Fuse Online by using the operator:
-
Create a secret in the OpenShift project (namespace) to configure authentication with
registry.redhat.io
so that the Fuse Online Operator can access the necessary installation templates. - Install the Fuse Online Operator to an OpenShift project (namespace). When the operator is installed, the operator is running in the selected namespace.
- Create an instance of Fuse Online from the installed operator. You can create an instance with default settings or you can customize the instance by editing the instance’s custom resource. You can then access Fuse Online from the provided URL.
The following topics provide details for installing Fuse Online on OCP 4.x by using the operator:
1.6.1. Authenticating with registry.redhat.io for container images
Configure authentication with registry.redhat.io
before you can deploy Fuse container images on OpenShift.
Prerequisites
- Cluster administrator access to an OpenShift Container Platform cluster.
-
OpenShift
oc
client tool is installed. For more details, see the OpenShift CLI documentation.
Procedure
Log into your OpenShift cluster as administrator:
oc login --user system:admin --token=my-token --server=https://my-cluster.example.com:6443
Open the project in which you want to deploy Fuse:
oc project myproject
Create a
docker-registry
secret using your Red Hat Customer Portal account, replacingPULL_SECRET_NAME
withpsi-internal-registry
to create:oc create secret docker-registry psi-internal-registry \ --docker-server=docker-registry.redhat.io \ --docker-username=CUSTOMER_PORTAL_USERNAME \ --docker-password=CUSTOMER_PORTAL_PASSWORD \ --docker-email=EMAIL_ADDRESS
You should see the following output:
secret/psi-internal-registry created
ImportantYou must create this
docker-registry
secret in every OpenShift project namespace that will authenticate toregistry.redhat.io
.Link the secret to your service account to use the secret for pulling images. The following example uses the
default
service account,builder
service account, anddeployer
service account:oc secrets link default psi-internal-registry oc secrets link default psi-internal-registry --for=pull oc secrets link builder psi-internal-registry oc secrets link builder psi-internal-registry --for=pull oc secrets link deployer psi-internal-registry oc secrets link deployer psi-internal-registry --for=pull
The service account name must match the name that the OpenShift pod uses.
NoteIf you do not want to use your Red Hat username and password to create the pull secret, you can create an authentication token using a registry service account.
Additional resources
For more details on authenticating with Red Hat for container images:
1.6.2. Installing the Fuse Online Operator from the OperatorHub
You can install the Fuse Online Operator from OperatorHub by using the OpenShift Container Platform web console. Follow these steps for each OpenShift project (namespace) in which you want to install Fuse Online.
Prerequisites
- You have administrator or developer access to the OpenShift cluster. For a developer user, you have proper permissions to install operators from OperatorHub.
-
You have configured authentication with
registry.redhat.io
as described in Authenticating withregistry.redhat.io
for container images. -
You installed the
oc
client tool and it is connected to the OCP cluster on which you plan to install Fuse Online.
Procedure
- In a web browser, navigate to the OpenShift console in your browser and then log in to the console with your administrator or developer credentials.
-
If you are logged in as an administrator, click Operators and then click OperatorHub.
If you are logged in as a developer, click Add and then click the From Catalog card. - In the Filter by keyword field, type Fuse Online.
- Click the Red Hat Integration - Fuse Online card. The Fuse Online Operator install page opens.
Click Install. The Install Operator page opens.
- The Update Channel defines a stream of updates for the operator and is used to roll out updates for subscribers. Accept the default channel, latest.
-
For Installation mode, select a namespace (project) from the list of namespaces on the cluster. Select the same namespace that you used when you created a docker registry secret in Authenticating with
registry.redhat.io
for container images. For the Update Approval, select Automatic or Manual to configure how OpenShift handles updates to the Fuse Online Operator.
- If you select Automatic updates, when a new version of the Fuse Online Operator is available, the OpenShift Operator Lifecycle Manager (OLM) automatically upgrades the running instance of the Fuse Online without human intervention.
- If you select Manual updates, when a newer version of an operator is available, the OLM creates an update request. A cluster administrator must then manually approve that update request to have the Fuse Online Operator updated to the new version.
- Click Install to make the Fuse Online Operator available in the specified namespace (project).
- To verify that Fuse Online is installed in the project, click Operators and then click Installed Operators to see Red Hat Integration - Fuse Online in the list.
In a Terminal window, type the following command to link the secret (that you created in Authenticating with
registry.redhat.io
for container images) to the Fuse Online Operator service account:oc secrets link syndesis-operator PULL_SECRET_NAME --for=pull
Next Steps
After the Fuse Online Operator is installed, you add an instance of Fuse Online to the OpenShift project.
1.6.3. Adding a Fuse Online instance to an OpenShift 4.x project
After the Fuse Online Operator is installed in an OpenShift 4.x project, you add an instance of Fuse Online to the OpenShift project. The Fuse Online instance provides the URL that a developer uses to access Fuse Online.
Prerequisites
- The Fuse Online Operator is installed into the current OpenShift project.
On your OCP environment, at least three persistent volumes are available for use by Fuse Online. All of the persistent volumes must have the following configuration requirements:
-
capacity.storage:
1Gi
-
accessMode:
ReadWriteOnce
-
capacity.storage:
- Decide if you want to install a default Fuse Online instance or customized instance. For more information about the custom resource settings that you can specify, see When editing the default custom resource is required before installation.
Procedure
Follow these steps to access the Create Syndesis page depending on your user role:
If you are logged in as an administrator:
- Click Operators and then click Installed Operators.
- In the Name column, click Red Hat Integration - Fuse Online. The Operator Details page opens.
- Under Provided APIs, click Create Instance.
If you are logged in as a developer:
- Click Add and then click the Operator Backed card.
- Click the Syndesis CRD card. The Syndesis CRD page opens.
-
Click Create.
The Create Syndesis page opens.
- Enter a name or leave app as the default.
- Select the YAML view option to view the default custom resource.
Optional. Edit the custom resource.
For details on the custom resource settings that you can specify see When editing the default custom resource is required before installation and Descriptions of custom resource attributes that configure Fuse Online.
The Fuse Online installation process uses the settings that you specify in the custom resource to determine the configuration of the installed Fuse Online environment.
- Click Create to create the Fuse Online instance. OpenShift starts the pods, services, and other components for Fuse Online.
To obtain the URL for Fuse Online:
- Click Networking > Routes.
- Make sure that the correct project is selected.
- In the syndesis row, in the Location column, click the URL for Fuse Online.
- Use your OpenShift login credentials to login to the Fuse Online environment.
To allow other developer users access to the Fuse Online web console, an administrator must grant each developer user the
view
role for the project in which Fuse Online is installed by using the following command:oc adm policy add-role-to-user view <username> -n <project-name>
For example, to grant
view
permission for themyfuseonline
project to userjdoe
:oc adm policy add-role-to-user view jdoe -n myfuseonline