Installing on OpenShift

Deploying Konflux on an existing OpenShift cluster using the automated deployment script.

This guide covers deploying Konflux on an existing OpenShift cluster using the deploy-konflux-on-ocp.sh script. The script uses OpenShift-native components (OpenShift Pipelines, Red Hat cert-manager) instead of their upstream alternatives.

Prerequisites

ToolMinimum version
OpenShiftv4.20
oc or kubectlv1.31.4
gitv2.46
make
Gov1.25.0
opensslv3.0.13
  • cluster-admin permissions

Setup

  1. Clone the repository:
git clone https://github.com/konflux-ci/konflux-ci.git
cd konflux-ci
  1. Run the deployment script:
./deploy-konflux-on-ocp.sh

To customise the operator image or Konflux CR before running, see Script configuration.

The script performs all of the following automatically:

  • Deploys Konflux dependencies using OpenShift-native operators
  • Installs the Konflux CRDs
  • Deploys the Konflux Operator into the konflux-operator namespace
  • Waits for the Operator to be ready
  • Applies the default Konflux CR and waits for all components to reach Ready

What gets deployed

Dependencies

ComponentDetails
OpenShift PipelinesInstalled via OLM (Red Hat’s productized Tekton)
cert-managerInstalled via the Red Hat cert-manager OLM operator
trust-managerDeployed into the cert-manager namespace
KyvernoPolicy engine for namespace and RBAC automation
Pipelines-as-CodeGitHub-triggered pipeline automation
Tekton Chains RBACRBAC for supply-chain signing using OpenShift namespaces

The following components are not deployed by deploy-deps.sh in this configuration:

SkippedReason
DexManaged by the Konflux Operator as part of the Konflux CR reconciliation
Internal OCI registryOpenShift has its own integrated registry
Smee webhook proxyNot needed when the cluster is internet-reachable

Operator and Konflux

ComponentDetails
Konflux CRDsKonflux custom resource definition
Konflux OperatorDeployed in the konflux-operator namespace
Konflux instanceAll Konflux components managed by the default sample CR

Script configuration

Operator image

By default, the script uses quay.io/konflux-ci/konflux-operator:latest. To use a different image, set OPERATOR_IMAGE before running:

OPERATOR_IMAGE=<your-registry>/konflux-operator:<tag> ./deploy-konflux-on-ocp.sh

To build and use a custom operator image from source:

cd operator
make docker-build docker-push IMG=<your-registry>/konflux-operator:<tag>
cd ..
OPERATOR_IMAGE=<your-registry>/konflux-operator:<tag> ./deploy-konflux-on-ocp.sh

Konflux Custom Resource

The script applies operator/config/samples/konflux_v1alpha1_konflux.yaml by default.

To use a different CR, apply it after the script completes:

kubectl delete konflux konflux
kubectl apply -f <your-konflux-cr>.yaml
kubectl wait --for=condition=Ready=True konflux konflux --timeout=15m

Verify the Konflux CR is ready

See Applying the Konflux Custom Resource for instructions on verifying the Konflux CR status and accessing the UI URL.

Create GitHub integration secrets

After the script completes, follow the GitHub Application Secrets guide to create a GitHub App and deploy its credentials into the cluster.

Uninstall

Remove the Konflux CR and all managed components:

kubectl delete konflux konflux

Remove the operator and CRDs from the operator/ directory:

cd operator
make undeploy
make uninstall

What’s next