Skip to content

Install

This section walks you through connecting RunWhen to your Kubernetes clusters. Pick the path that matches your situation.

Choose Your Path

PathBest ForTimeLink
Quick StartFirst-time evaluation, single cluster, want to see value fast~30 minQuick Start
SaaS + Private RunnerProduction deployments: managed platform, tasks execute inside your network~1 hourSaaS Installation
Self-HostedAir-gapped or fully on-premise requirements4-8 hoursSelf-Hosted Requirements

What Gets Deployed

Every installation deploys two lightweight components into your Kubernetes cluster via a single Helm chart (runwhen-local):

ComponentWhat It Does
workspace-builderScans your cluster, discovers resources (namespaces, deployments, services, etc.), and matches them with relevant troubleshooting tasks from the task registry. Runs periodically to keep your workspace up to date.
runnerThe control plane for task execution. Coordinates work from the platform, manages worker lifecycle, and reports results back. Stays inside your cluster — your credentials and raw data never leave your network.
workersThe pods that actually execute tasks. The runner deploys workers by combining a CodeCollection (a repository of task definitions) with the task runtime. Each CodeCollection gets its own pool of workers. Workers are the primary scaling lever — increase workerReplicas as the number of resources under management grows.

All components run in a dedicated runwhen-local namespace. For multi-cluster setups, deploy one instance of the Helm chart per cluster, all pointing to the same workspace.

Scaling

As your environment grows, background tasks (health checks, baseline monitoring) scale with the number of discovered resources. Workers handle this load. Increase workers per CodeCollection in values.yaml:

runner:
codeCollections:
- repoURL: https://github.com/runwhen-contrib/rw-cli-codecollection
branch: main
workerReplicas: 4 # increase for larger environments

A single worker can handle many tasks concurrently. Start with the default (4 replicas) and scale up if you notice task queue delays in larger clusters.

Prerequisites (All Paths)

  • Kubernetes cluster (v1.23+)
  • kubectl configured with cluster access
  • Helm 3.x installed
  • Cluster admin permissions (temporary, for initial RBAC setup)
  • Outbound HTTPS (port 443) to the endpoints listed below

Network & Registry Requirements

All RunWhen Local components communicate outbound only — no inbound ports need to be opened. The following URLs must be reachable from the cluster over HTTPS (port 443).

Platform & Service Endpoints

URLPurposeUsed By
papi.beta.runwhen.comPlatform API callsRunner, worker pods
runner.beta.runwhen.comRunner control signalsRunner
runner-cortex-tenant.beta.runwhen.comMetrics from workers and health-check podsOpenTelemetry collector
vault.beta.runwhen.comSecure secret storage and retrievalRunner, worker pods
storage.googleapis.comExecution log storage (via signed URL)Worker pods

Container Registries

RegistryImagesUsed By
us-docker.pkg.devRunner, robot-runtime base image (Google Artifact Registry)Runner, worker pods
us-west1-docker.pkg.devCodeCollection images (built per-collection, per-branch)Worker pods
ghcr.ioWorkspace builder image (runwhen-local)Workspace builder
docker.ioOpenTelemetry Collector imageOTel collector pod

CodeCollections & Discovery

EndpointPurposeUsed By
github.comCodeCollection repositories (discovery and automatic configuration)Workspace builder
api.cloudquery.ioDiscovery plugin installationWorkspace builder
runwhen-contrib.github.ioHelm chart repository (only from the install machine)Helm client

Additional access

If you are discovering cloud resources, the workspace builder and workers also need network access to the relevant Kubernetes, AWS, Azure, or GCP management APIs for any infrastructure included in discovery.

Proxy & private registries

If your cluster is behind a corporate proxy, the Helm chart supports proxy.httpProxy, proxy.httpsProxy, and proxy.noProxy settings. A custom proxy CA can be injected via proxyCA. Container image registries can be overridden with registryOverride for environments using private mirrors. See the values.yaml reference for details.

Helm Chart Reference

The runwhen-local Helm chart is maintained at github.com/runwhen-contrib/helm-charts.

Terminal window
helm repo add runwhen https://runwhen-contrib.github.io/helm-charts
helm repo update

Key configuration areas in values.yaml:

SectionPurpose
workspaceNameMust match the workspace name you created in the platform
workspaceBuilder.workspaceInfoDiscovery scope: namespaces, level of detail, cloud providers, CodeCollections
workspaceBuilder.autoRunDiscovery interval and upload behavior
runner.codeCollectionsWhich task libraries the runner should pull, and how many worker replicas to deploy per collection (default: rw-cli-codecollection with 4 workers)
runner.runEnvironment.secretsProvidedHow secrets (kubeconfigs, cloud credentials) are mounted into task pods

See the full values.yaml for all options.