This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Installation

Install Krkn Operator using Helm

Krkn Operator documentation v1.0.0; captured October 9, 2026 from website commit 7c35229ddbec37d65ef6a9c53945443b6fa8bf6e.

    Installation Admin

    Deploy Krkn Operator on Kubernetes or OpenShift using Helm.

    This walkthrough is retained with v1.0.0 documentation and may show an earlier interface.


    Prerequisites

    • Kubernetes 1.19+ or OpenShift 4.x
    • Helm 3.0+

    Quick Start

    Helm chart version for this release: 1.0.0

    helm install krkn-operator oci://quay.io/krkn-chaos/charts/krkn-operator \
      --version 1.0.0 \
      --namespace krkn-operator-system \
      --create-namespace
    

    Verify:

    kubectl get pods -n krkn-operator-system -l app.kubernetes.io/name=krkn-operator
    

    Access the console (local):

    kubectl port-forward -n krkn-operator-system svc/krkn-operator-console 3000:3000
    

    Production Installation

    Choose the method that matches your environment:

    MethodExternal Access
    KubernetesGateway API (recommended) or Ingress
    OpenShiftRoutes (native)

    Install with a custom values.yaml:

    helm install krkn-operator oci://quay.io/krkn-chaos/charts/krkn-operator \
      --version 1.0.0 \
      --namespace krkn-operator-system \
      --create-namespace \
      -f values.yaml
    

    Kubernetes with Gateway API

    console:
      enabled: true
      gateway:
        enabled: true
        gatewayName: krkn-gateway
        hostname: krkn.example.com
        path: /
        pathType: PathPrefix
    

    Kubernetes with Ingress

    console:
      enabled: true
      ingress:
        enabled: true
        className: nginx
        hostname: krkn.example.com
        tls:
          - secretName: krkn-tls
            hosts:
              - krkn.example.com
    

    OpenShift with Routes

    console:
      enabled: true
      route:
        enabled: true
        hostname: krkn.apps.cluster.example.com
        tls:
          enabled: true
          termination: edge
          insecureEdgeTerminationPolicy: Redirect
    

    OCM/ACM Integration

    Enable automatic cluster discovery through Open Cluster Management (OCM) or Red Hat Advanced Cluster Management (ACM):

    See the OCM/ACM Compatibility page for tested versions.

    helm install krkn-operator oci://quay.io/krkn-chaos/charts/krkn-operator \
      --version 1.0.0 \
      --namespace krkn-operator-system \
      --create-namespace \
      --set acm.enabled=true
    

    Upgrade

    helm upgrade krkn-operator oci://quay.io/krkn-chaos/charts/krkn-operator \
      --version 1.0.0 \
      --namespace krkn-operator-system \
      -f values.yaml
    

    Uninstall

    helm uninstall krkn-operator --namespace krkn-operator-system
    

    Complete values.yaml Reference

    Click to expand the full values.yaml reference
    namespaceOverride: ""
    
    operator:
      image: quay.io/krkn-chaos/krkn-operator:latest
      pullPolicy: IfNotPresent
      enabled: true
      replicaCount: 1
      resources:
        requests:
          cpu: 100m
          memory: 128Mi
        limits:
          cpu: 500m
          memory: 512Mi
      dataProvider:
        resources:
          requests:
            cpu: 50m
            memory: 64Mi
          limits:
            cpu: 200m
            memory: 256Mi
      service:
        type: ClusterIP
        port: 8080
        grpcPort: 50051
      logging:
        level: info
        format: json
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      nodeSelector: {}
      tolerations: []
      affinity: {}
      extraEnv: []
    
    dataProvider:
      image: quay.io/krkn-chaos/data-provider:latest
    
    acm:
      enabled: false
      image: quay.io/krkn-chaos/krkn-operator-acm:latest
      replicaCount: 1
      config:
        secretName: "application-manager"
      service:
        port: 8080
        grpcPort: 50051
      logging:
        level: info
        format: json
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      resources:
        requests:
          cpu: 100m
          memory: 128Mi
        limits:
          cpu: 200m
          memory: 256Mi
      nodeSelector: {}
      tolerations: []
      affinity: {}
    
    console:
      enabled: true
      image: quay.io/krkn-chaos/console:latest
      replicaCount: 1
      service:
        type: ClusterIP
        port: 3000
        nodePort: null
      ingress:
        enabled: false
        className: nginx
        hostname: krkn.example.com
        annotations: {}
        tls: []
      gateway:
        enabled: false
        gatewayName: krkn-gateway
        gatewayNamespace: ""
        sectionName: ""
        hostname: krkn.example.com
        path: /
        pathType: PathPrefix
        annotations: {}
      route:
        enabled: false
        hostname: ""
        tls:
          termination: edge
      resources:
        requests:
          cpu: 50m
          memory: 64Mi
        limits:
          cpu: 200m
          memory: 256Mi
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
      nodeSelector: {}
      tolerations: []
      affinity: {}
    
    pullSecrets: []
    
    auth:
      jwtSecret: ""
      jwtExpiryHours: 24
    
    rbac:
      create: true
    
    serviceAccount:
      create: true
      name: ""
      annotations: {}
    
    crds:
      keep: true
    
    monitoring:
      enabled: false
      service:
        port: 8443
      serviceMonitor:
        enabled: false
        interval: 30s
    
    networkPolicy:
      enabled: false
      ingress: []
      egress: []
    
    updateStrategy:
      type: RollingUpdate
    
    podDisruptionBudget:
      enabled: false
      minAvailable: 1
    
    commonLabels: {}
    commonAnnotations: {}
    nameOverride: ""
    fullnameOverride: ""