blob: ed25310c27ea2fa69198f9e20695985f660b3d9e [file] [view]
# 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
| Source | Address | Carries | Use when |
| --- | --- | --- | --- |
| Docker Hub (OCI) | `oci://docker.io/apache/skywalking-helm` | Released `skywalking-helm` charts, `4.3.0` through `4.8.0` | Default. Any normal install. |
| Apache JFrog (legacy) | `https://apache.jfrog.io/artifactory/skywalking-helm` | Released charts `4.3.0` and older only frozen, no new releases | You are pinned to an old chart and cannot move yet. |
| ghcr.io (OCI) | `oci://ghcr.io/apache/skywalking-helm/skywalking-helm` | Snapshot of every commit on `master`, versioned `0.0.0-<commit-sha>` | Testing an unreleased fix. |
| Source tree | `git clone` + `helm dep up chart/skywalking` | Your working copy of `chart/skywalking` | You 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:
| value | current |
| --- | --- |
| `oap.image.tag` | `11.0.0` |
| `oap.storageType` | `elasticsearch`, `banyandb`, or `postgresql` |
| `ui.image.tag` | `horizon-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.
```shell
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:
```shell
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](../contributing/release.md). 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](../storage/elasticsearch.md).
## 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.
```shell
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.
```shell
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.
```shell
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`):
| dependency | version | repository | condition |
| --- | --- | --- | --- |
| `eck-operator` | 3.3.1 | `https://helm.elastic.co/` | `elasticsearch.enabled` |
| `eck-elasticsearch` (alias `elasticsearch`) | 0.18.1 | `https://helm.elastic.co/` | `elasticsearch.enabled` |
| `postgresql` | 12.1.2 | `https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami` | `postgresql.enabled` |
| `skywalking-banyandb-helm` (alias `banyandb`) | 0.7.0 | `oci://docker.io/apache` | `banyandb.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](../contributing/release.md).
## Next
- [Quick Start](quick-start.md) a working install, end to end.
- [Version Compatibility](../evaluate/version-compatibility.md) which OAP, UI and BanyanDB versions go together.