Where to Get the Chart

Four places serve this chart; three are current and one is frozen. This page tells you which address to point helm install at, and what each one actually carries.

Source matrix

SourceAddressCarriesUse when
Docker Hub (OCI)oci://docker.io/apache/skywalking-helmReleased skywalking-helm charts, 4.3.0 through 4.8.0Default. Any normal install.
Apache JFrog (legacy)https://apache.jfrog.io/artifactory/skywalking-helmReleased charts 4.3.0 and older only — frozen, no new releasesYou are pinned to an old chart and cannot move yet.
ghcr.io (OCI)oci://ghcr.io/apache/skywalking-helm/skywalking-helmSnapshot of every commit on master, versioned 0.0.0-<commit-sha>Testing an unreleased fix.
Source treegit clone + helm dep up chart/skywalkingYour working copy of chart/skywalkingYou are editing the chart.

Chart version and SkyWalking version are separate things. Whichever source you use, the three required values are always yours to set:

valuecurrent
oap.image.tag11.0.0
oap.storageTypeelasticsearch, banyandb, or postgresql
ui.image.taghorizon-1.0.0

Released chart, Docker Hub OCI registry (>= 4.3.0)

The chart is pushed to Docker Hub as an OCI artifact (make publish runs helm push … oci://docker.io/apache). There is no helm repo add step — an OCI reference is the chart.

export SKYWALKING_RELEASE_VERSION=5.0.0
export SKYWALKING_RELEASE_NAME=skywalking
export SKYWALKING_RELEASE_NAMESPACE=default

helm install "${SKYWALKING_RELEASE_NAME}" \
  oci://docker.io/apache/skywalking-helm \
  --version "${SKYWALKING_RELEASE_VERSION}" \
  -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  --set oap.image.tag=11.0.0 \
  --set oap.storageType=elasticsearch \
  --set ui.image.tag=horizon-1.0.0 \
  --set eck-operator.installCRDs=false

An OCI registry cannot be added with helm repo add, so helm search repo will not list the available chart versions — pick and pin --version deliberately. To inspect or vendor a version before installing:

helm show values oci://docker.io/apache/skywalking-helm --version 5.0.0
helm pull oci://docker.io/apache/skywalking-helm --version 5.0.0

The registry holds 4.3.0, 4.4.0, 4.5.0, 4.6.0, 4.7.0 and 4.8.0. 4.9.0 is a released version that never reached it, and 5.0.0 arrives when the release workflow publishes the tag — see Package and Publish a Release. A version that is not there fails with FetchReference ... not found.

With the default elasticsearch.enabled=true, the ECK CRDs must already exist in the cluster before this install runs — the release contains an Elasticsearch custom resource, so the CRD cannot be created by the same release. Install the eck-operator-crds chart as its own release first (helm install eck-crds eck-operator-crds --repo https://helm.elastic.co --version 3.3.1), then install with --set eck-operator.installCRDs=false (its default is true) so the two releases do not both own the CRDs. Both steps are in Elasticsearch.

Apache JFrog Helm repository (<= 4.3.0)

The classic (non-OCI) repository. It holds releases up to 4.3.0 and receives nothing new; it is listed here only so old runbooks resolve.

helm repo add skywalking https://apache.jfrog.io/artifactory/skywalking-helm
helm repo update
helm search repo skywalking/skywalking --versions

The chart was named skywalking back then (it was renamed to skywalking-helm after 4.3.0), so the repo-qualified name is skywalking/skywalking.

Everything from 4.3.0 on comes from the Docker Hub OCI address above, except 4.9.0 — released to dist.apache.org, never pushed to the registry.

Development snapshots, ghcr.io

Every push to master packages chart/skywalking and pushes it to oci://ghcr.io/apache/skywalking-helm/skywalking-helm from .github/workflows/publish-helm.yaml, versioned 0.0.0-<full 40-character commit SHA>. This repo publishes exactly one chart, so that reference is the only snapshot address. Replace the SHA with the revision you want to test.

helm install "${SKYWALKING_RELEASE_NAME}" \
  oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
  --version "0.0.0-3aee62ac0b0a8c9626abbd386e9728c859cd21be" \
  -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  --set oap.image.tag=11.0.0 \
  --set oap.storageType=elasticsearch \
  --set ui.image.tag=horizon-1.0.0 \
  --set eck-operator.installCRDs=false

These are snapshots of unreleased code. Use them to verify a fix, not to run production.

From source

Clone, resolve the subcharts, then install from the local path.

git clone https://github.com/apache/skywalking-helm
cd skywalking-helm
helm dep up chart/skywalking

helm install "${SKYWALKING_RELEASE_NAME}" chart/skywalking \
  -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  --set oap.image.tag=11.0.0 \
  --set oap.storageType=elasticsearch \
  --set ui.image.tag=horizon-1.0.0 \
  --set eck-operator.installCRDs=false

helm dep up is required before the first install and after any Chart.yaml change; it downloads into chart/skywalking/charts/ and writes Chart.lock. Each dependency declares its repository as a URL, so no helm repo add is needed. What it pulls (these are chart versions, not image versions — the BanyanDB server version is banyandb.image.tag, currently 0.11.0):

dependencyversionrepositorycondition
eck-operator3.3.1https://helm.elastic.co/elasticsearch.enabled
eck-elasticsearch (alias elasticsearch)0.18.1https://helm.elastic.co/elasticsearch.enabled
postgresql12.1.2https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnamipostgresql.enabled
skywalking-banyandb-helm (alias banyandb)0.7.0oci://docker.io/apachebanyandb.enabled

make package does the same helm dep up plus helm package, with LICENSE and NOTICE copied into the chart directory first, and drops skywalking-helm-5.0.0.tgz in the repo root. make clean removes the pulled subcharts, Chart.lock and the packaged tarball — on Linux only: the recipe is one rm invocation whose -rf tokens land mid-argument-list, and BSD rm (macOS) stops option parsing at the first operand, fails with rm: bin/: is a directory and leaves chart/skywalking/charts/ behind. See Package and Publish a Release.

Next