<a id="install-cmf-openshift"></a>

# Install Confluent Platform for Apache Flink on OpenShift

Confluent Platform for Apache Flink® is available as a Red Hat certified operator. You can install
Confluent Platform for Apache Flink on OpenShift clusters using the following components:

* The Flink Kubernetes Operator, available through OperatorHub as
  **Confluent Distribution of the Apache Flink® Kubernetes Operator**.
* Confluent Manager for Apache Flink (CMF), available as a Helm chart through the OpenShift
  Developer Catalog.

Confluent Platform for Apache Flink on OpenShift supports x86 (AMD64), ARM64, and s390x architectures.

## Prerequisites

* An OpenShift cluster (version 4.12 or later)
* Cluster administrator access
* The OpenShift CLI (`oc`) installed and configured
* cert-manager installed on the cluster. For installation steps, see [Step 1](#install-openshift-cert-manager).

<a id="install-openshift-cert-manager"></a>

## Step 1: Install cert-manager

The Flink Kubernetes Operator requires cert-manager. Install it before
proceeding:

```bash
oc create -f https://github.com/jetstack/cert-manager/releases/download/v1.18.2/cert-manager.yaml
```

Verify that cert-manager pods are running:

```bash
oc get pods -n cert-manager
```

## Step 2: Install the Flink Kubernetes Operator from OperatorHub

1. In the OpenShift web console, navigate to **Operators** > **OperatorHub**.
2. Search for **Confluent Distribution of the Apache Flink® Kubernetes Operator**.
3. Select the operator and click **Install**.
4. Choose the installation mode and target namespace, then click **Install**.
5. Verify that the operator is installed and running:
   ```bash
   oc get csv -n <namespace>
   ```

For more details, see [Adding Operators to a cluster](https://docs.openshift.com/container-platform/4.14/operators/admin/olm-adding-operators-to-cluster.html#olm-installing-from-operatorhub-using-web-console_olm-adding-operators-to-a-cluster)
in the OpenShift documentation.

## Step 3: Install Confluent Manager for Apache Flink from the Developer Catalog

CMF is available as a Helm chart through the OpenShift Developer Catalog.

1. In the OpenShift web console, switch to the **Developer** perspective.
2. Navigate to **+Add** > **Helm Chart**.
3. Search for **Confluent Manager for Apache Flink**.
4. Select the Helm chart and click **Install Helm Chart**.
5. Configure the chart values as needed. For details on available configuration
   options, see [Install Confluent Manager for Apache Flink with Helm](helm.md#install-cmf-helm).

   #### NOTE
   If you do not specify a license, CMF generates a trial license.
6. Click **Install** to deploy CMF.
7. Verify the deployment:
   ```bash
   oc get pods -n <namespace>
   ```

For Helm chart configuration details, including encryption, storage, and
security options, see the [Helm installation guide](helm.md#install-cmf-helm).

## Configuration notes

When installing the Flink Kubernetes Operator through OperatorHub, the
following limitations apply:

* Some deployment settings can be permanently overridden through the
  [Subscription](https://github.com/operator-framework/operator-lifecycle-manager/blob/master/doc/design/subscription-config.md)
  object.
* Most operator properties can be modified by editing the `ClusterServiceVersion`
  (CSV), but these changes are temporary. They are overwritten when the
  Operator Lifecycle Manager updates to a newer version.

For full control over operator configuration, consider using the
[Helm-based installation](helm.md#install-cmf-helm) instead.

For information on modifying operator resources managed by OLM, see
[Managing resources under OLM](https://sdk.operatorframework.io/docs/best-practices/managing-resources/#how-to-change-the-operatormanager-resources-values-when-under-olm-management).

## Related content

- [Install Confluent Manager for Apache Flink with Helm](helm.md#install-cmf-helm)
- [Versions and Interoperability for Confluent Manager for Apache Flink](versions-interoperability.md#cmf-interop)
- [Install and Upgrade Confluent Manager for Apache Flink](overview.md#cpf-install)
