Installing from OLM

Installing the Konflux Operator through the Operator Lifecycle Manager (OLM).

The Konflux Operator is published to the community operators catalog and can be installed through OLM on any cluster that has OLM installed.

Channels

Channels are scoped to a release stream (the vMAJOR.MINOR version). For example, for the v0.1 stream:

ChannelDescription
stable-v0.1Latest stable release for the v0.1 stream — recommended for production
candidate-v0.1Release candidates for the v0.1 stream — for early testing of upcoming versions

Substitute the appropriate stream (e.g. v0.2) when a newer stream is available.

Prerequisites

ToolMinimum version
gitv2.46
kubectlv1.31.4
opensslv3.0.13
  • cluster-admin permissions
  • A Kubernetes cluster with OLM installed and the following dependencies (see Setup):
    • Tekton (or OpenShift Pipelines when using OpenShift)
    • cert-manager
    • trust-manager
    • Kyverno
    • Pipelines-as-Code

Setup

  1. Clone the repository:
git clone https://github.com/konflux-ci/konflux-ci.git
cd konflux-ci
  1. Deploy the cluster dependencies:
# Generic Kubernetes
SKIP_DEX=true SKIP_INTERNAL_REGISTRY=true SKIP_SMEE=true ./deploy-deps.sh

# OpenShift - use native operators instead of upstream ones
USE_OPENSHIFT_PIPELINES=true USE_OPENSHIFT_CERTMANAGER=true \
SKIP_DEX=true SKIP_INTERNAL_REGISTRY=true SKIP_SMEE=true \
./deploy-deps.sh

Alternatively, apply the individual kustomizations under dependencies/ manually.

Install via kubectl

Step 1: Create the namespace

kubectl create namespace konflux-operator

Step 2: Create an OperatorGroup

The Konflux Operator requires a cluster-wide OperatorGroup (targetNamespaces: []):

apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
  name: konflux-operator
  namespace: konflux-operator
spec:
  upgradeStrategy: Default
  targetNamespaces: []
kubectl apply -f operatorgroup.yaml

Step 3: Create a Subscription

apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: konflux-operator
  namespace: konflux-operator
spec:
  name: konflux-operator
  # channel: stable-v0.1  # omit to use the default channel
  installPlanApproval: Automatic
  source: community-operators
  sourceNamespace: <catalog-namespace>  # openshift-marketplace on OpenShift, olm on vanilla Kubernetes
kubectl apply -f subscription.yaml

Step 4: Verify the installation

Wait for the operator to be ready:

kubectl wait --for=condition=Available deployment/konflux-operator-controller-manager \
  -n konflux-operator --timeout=300s

Check the subscription and install plan status:

kubectl get subscription konflux-operator -n konflux-operator
kubectl get installplan -n konflux-operator

Install via the OpenShift Web Console

On OpenShift, you can also install through the OperatorHub UI:

  1. Navigate to Operators → OperatorHub.
  2. Search for Konflux.
  3. Select the Konflux Operator and click Install.
  4. Choose the desired channel (e.g. stable-v0.1) and set the installation namespace to konflux-operator.
  5. Click Install and wait for the operator to become ready.

Create and verify the Konflux Custom Resource

See Applying the Konflux Custom Resource for instructions on creating a Konflux CR and verifying that all components are ready.

What’s next