Installing from 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:
| Channel | Description |
|---|---|
stable-v0.1 | Latest stable release for the v0.1 stream — recommended for production |
candidate-v0.1 | Release 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
| Tool | Minimum version |
|---|---|
| git | v2.46 |
| kubectl | v1.31.4 |
| openssl | v3.0.13 |
cluster-adminpermissions- 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
- Clone the repository:
git clone https://github.com/konflux-ci/konflux-ci.git
cd konflux-ci
- 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:
- Navigate to Operators → OperatorHub.
- Search for Konflux.
- Select the Konflux Operator and click Install.
- Choose the desired channel (e.g.
stable-v0.1) and set the installation namespace tokonflux-operator. - 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
- Onboard a new Application — onboard an application, run builds, tests, and releases
- API Reference — full CR field reference
- Troubleshooting — solutions to common issues
- Examples — sample Konflux CR configurations