Docs
Installation Guides
Generic Kubernetes

Generic Kubernetes Installation

For AKS, GKE, OKD, Rancher, vanilla Kubernetes, and other conformant clusters.

Free-tier clusters still need a no-cost license key. Request a free key.

Prerequisites

  • Conformant Kubernetes cluster, 1.26+.
  • kubectl configured for the target cluster.
  • helm 3.

GHCR Installation

⚠️

License key required, even for free-tier usage. Request a free key for clusters under 200 vCPUs.

  • Helm chart: https://release.waveautoscale.io/helm-chart
  • Image registry: ghcr.io/stclab-inc/*
  • Pull secret: GHCR pull secret provided by the Wave team.

values-ghcr.yaml

values-ghcr.yaml
ghcr:
  enabled: true
  dockerconfigjson: "<GHCR_PULL_SECRET_DOCKERCONFIGJSON>"
 
license:
  key: "<LICENSE_KEY>"
 
spec:
  # Option A: create a new PVC and specify a StorageClass.
  storageClassName: "<STORAGE_CLASS_NAME>"
 
  # Option B: use a pre-existing PVC.
  # existingPvcName: "<EXISTING_PVC_NAME>"

Install

Replace <CHART_VERSION> with the Wave Autoscale Helm chart version you want.

CMD
helm repo add wave-autoscale-helm https://release.waveautoscale.io/helm-chart
helm repo update
 
helm install wave-autoscale-helm wave-autoscale-helm/wave-autoscale-helm \
  -f values-ghcr.yaml \
  --version <CHART_VERSION> \
  --create-namespace \
  -n wave-autoscale

Air-gapped / Private Registry

For clusters with internal-only network policies. You'll mirror Wave images from GHCR into your private registry, then point Wave at that registry.

Steps

  1. Mirror images from ghcr.io/stclab-inc/* (wave-autoscale-core, wave-autoscale-web-console, wave-autoscale-intelligence, wave-autoscale-agent, wave-autoscale-cadvisor) to your private registry.
  2. Disable GHCR in your values file by setting ghcr.enabled: false.
  3. Override image.repository per component (replace your-registry.com with your registry hostname):
values-private-registry.yaml
ghcr:
  enabled: false
 
license:
  key: "<LICENSE_KEY>"
 
spec:
  core:
    image:
      repository: your-registry.com/wave-autoscale/core
      tag: <version>
 
  webConsole:
    image:
      repository: your-registry.com/wave-autoscale/web-console
      tag: <version>
 
  intelligence:
    image:
      repository: your-registry.com/wave-autoscale/intelligence
      tag: <version>
 
  agent:
    image:
      repository: your-registry.com/wave-autoscale/agent
      tag: <version>
 
  cadvisor:
    image:
      repository: your-registry.com/wave-autoscale/cadvisor
      tag: <version>
 
  # Option A: create a new PVC and specify a StorageClass.
  storageClassName: "<STORAGE_CLASS_NAME>"
 
  # Option B: use a pre-existing PVC.
  # existingPvcName: "<EXISTING_PVC_NAME>"
  1. Provide registry credentials via Kubernetes imagePullSecrets. Use the same credentials you normally use for private workloads on this cluster.
  2. Deploy with Helm:
CMD
helm repo add wave-autoscale-helm https://release.waveautoscale.io/helm-chart
helm repo update
 
helm install wave-autoscale-helm wave-autoscale-helm/wave-autoscale-helm \
  -f values-private-registry.yaml \
  --version <CHART_VERSION> \
  --create-namespace \
  -n wave-autoscale

Verify the install

CMD
kubectl get pods -n wave-autoscale

Open the web console:

CMD
kubectl port-forward -n wave-autoscale svc/wave-autoscale-svc 3025:3025

Browse to http://localhost:3025.

Default login: username admin, password waveautoscale. Change these from the web console's user-management UI as soon as you're set up.

Update

CMD
helm repo update
 
helm upgrade wave-autoscale-helm wave-autoscale-helm/wave-autoscale-helm \
  -f values-ghcr.yaml \
  --version <CHART_VERSION> \
  -n wave-autoscale

Uninstall

CMD
helm uninstall wave-autoscale-helm -n wave-autoscale
⚠️

PVC retention: the StatefulSet retention policy keeps PVCs after uninstall. Delete the PVC manually only when stored data is no longer needed.

Next steps