You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by wu...@apache.org on 2026/08/31 11:59:35 UTC
(skywalking-helm) branch master updated: Use docker.io everywhere, and restore two commits lost from #199 (#201)
This is an automated email from the ASF dual-hosted git repository.
wu-sheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking-helm.git
The following commit(s) were added to refs/heads/master by this push:
new 74f9c6a Use docker.io everywhere, and restore two commits lost from #199 (#201)
74f9c6a is described below
commit 74f9c6a777c187cf07c88618d6dfed9b09bd0017
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Mon Aug 31 19:59:30 2026 +0800
Use docker.io everywhere, and restore two commits lost from #199 (#201)
* Put the whole changelog in the GitHub release, not a link to it
The release body was one line: "See .../docs/changes/changes.md". Nobody follows
a link to find out what changed in the release they are already looking at, and
every release before this one carried its notes inline -- 4.7.0 through 4.9.0 all
have the generated "What's Changed" list on the page.
github_release now assembles the body before publishing anything: the curated
"## $VERSION" section from the changelog, followed by GitHub's own generated list
of merged PRs and new contributors. Assembled here rather than passed as
--generate-notes so the exact text is known before it is published.
Two details that only show up by looking at the result. The changelog's links are
relative -- ../upgrade/upgrading.md resolves inside docs/ and 404s on a release
page -- so they are rewritten to the hosted docs for the tag, and all six were
checked to return 200. And the section is read from changes-$VERSION.md when the
next-version PR has already merged, falling back to changes.md when it has not,
because release-passed.sh can run either side of that merge.
A version with no matching section logs a warning and falls back to the old link
rather than failing: this runs after the artifacts are already promoted, so it is
the wrong place to abort.
Verified by running the function itself, not a copy: for 5.0.0 it reproduces the
notes now published on the release page, and for a version with no section it
takes the fallback.
* Authenticate to Docker Hub the way apache/skywalking does
apache/skywalking's publish-docker sets DOCKER_REGISTRY=docker.io and pushes the
bare reference $(HUB)/$(NAME):$(TAG) -- apache/skywalking-oap-server -- and that
repository publishes to Docker Hub from CI without trouble. This one used the
explicit endpoint form on both halves: login to registry-1.docker.io, push to
oci://registry-1.docker.io/apache.
Both hosts serve the same registry, and `helm show chart` reads our own published
4.8.0 through either. What differs is where the credential lands: `docker login
docker.io` stores it under Docker Hub's canonical key, "https://index.docker.io/v1/",
while logging into registry-1.docker.io stores it under that literal host. Only
the first is the key every other apache repository authenticates with.
This is not proven to be the cause of the 401 -- an anonymous token request for
repository:apache/skywalking-helm:pull,push returns 200, so a credential the
client failed to find would have produced an anonymous token rather than a
rejection, which points at authorization on the Docker Hub side. But it is a real
difference from a known-good setup, it costs nothing to remove, and leaving the
org on two different forms is worse than picking the one that is known to work.
* Use docker.io everywhere, never registry-1.docker.io
This is what broke the 5.0.0 chart publish, and the swck repository hit the same
bug independently.
`docker login <host>` stores the credential under the host you name. `helm push`
then normalises back to Docker Hub's canonical host and looks there, finding
nothing. Both hostnames PULL anonymously without complaint -- the chart's own
BanyanDB dependency resolves through either, verified, same digest -- so the
mismatch stays invisible until a push with credentials. That is the one operation
this repository had never exercised: every release through 4.8.0 was pushed by
hand, and CI's Docker Hub path only existed from 5.0.0.
apache/skywalking's publish-docker has always used docker.io with a bare
apache/<name> push target, and publishes without trouble.
Swept all 46 occurrences across 25 files, not just the workflow, so the hostname
a user copies out of the docs is the one we publish to: the Makefile's `publish`
target, the chart's own dependency repository, README, chart README, and every
install and upgrade example.
Verified after the change: `helm dep up` pulls skywalking-banyandb-helm 0.7.0
through oci://docker.io/apache at the identical digest, `make package` succeeds,
the packaged chart renders 33 resources and bundles the subchart, and the docs
links and menu still resolve.
An earlier comment in this workflow justified registry-1.docker.io on the grounds
that it was simply the explicit endpoint form. That was not a verified claim, and
it read as deliberate when it was not.
---
.github/workflows/publish-helm.yaml | 12 +++++--
Makefile | 2 +-
README.md | 2 +-
chart/skywalking/Chart.yaml | 2 +-
chart/skywalking/README.md | 2 +-
docs/README.md | 2 +-
docs/contributing/release.md | 14 ++++----
docs/evaluate/requirements.md | 2 +-
docs/evaluate/version-compatibility.md | 2 +-
docs/evaluate/what-this-chart-deploys.md | 4 +--
docs/expose/oap-endpoints.md | 2 +-
docs/expose/tls.md | 2 +-
docs/install/chart-sources.md | 12 +++----
docs/install/quick-start.md | 2 +-
docs/operate/oap-init-job.md | 4 +--
docs/operate/satellite.md | 2 +-
docs/operate/scaling.md | 2 +-
docs/reference/skywalking-chart-values.md | 2 +-
docs/storage/banyandb.md | 6 ++--
docs/storage/choose-a-backend.md | 6 ++--
docs/storage/elasticsearch.md | 2 +-
docs/storage/postgresql.md | 4 +--
docs/troubleshooting/install-and-startup.md | 2 +-
docs/ui/logins.md | 4 +--
docs/upgrade/upgrading.md | 4 +--
tools/releasing/release-passed.sh | 51 +++++++++++++++++++++++++++--
26 files changed, 103 insertions(+), 48 deletions(-)
diff --git a/.github/workflows/publish-helm.yaml b/.github/workflows/publish-helm.yaml
index efa5ae1..2357a29 100644
--- a/.github/workflows/publish-helm.yaml
+++ b/.github/workflows/publish-helm.yaml
@@ -95,8 +95,16 @@ jobs:
echo "VERSION=0.0.0-${{ github.sha }}" >> $GITHUB_ENV
else
echo "PUBLISH_MODE=release" >> $GITHUB_ENV
- echo "HUB=registry-1.docker.io/apache" >> $GITHUB_ENV
- echo "DOCKER_REGISTRY=registry-1.docker.io" >> $GITHUB_ENV
+ # docker.io, never registry-1.docker.io, matching apache/skywalking's publish-docker.
+ #
+ # This is what broke the 5.0.0 publish. `docker login <host>` stores the credential
+ # under the host you name, and `helm push` then normalises back to Docker Hub's
+ # canonical host and looks there, finding nothing. Both hostnames PULL anonymously
+ # without complaint -- the chart's own dependency resolves through either -- so the
+ # mismatch stays invisible until a push with credentials, the one operation nothing
+ # had ever exercised.
+ echo "HUB=docker.io/apache" >> $GITHUB_ENV
+ echo "DOCKER_REGISTRY=docker.io" >> $GITHUB_ENV
echo "DOCKER_USERNAME=${{ secrets.DOCKERHUB_USER }}" >> $GITHUB_ENV
echo "DOCKER_PASSWORD=${{ secrets.DOCKERHUB_TOKEN }}" >> $GITHUB_ENV
echo "VERSION=${VERSION}" >> $GITHUB_ENV
diff --git a/Makefile b/Makefile
index 699cd89..a5a7159 100644
--- a/Makefile
+++ b/Makefile
@@ -71,4 +71,4 @@ release: release-src package
shasum -a 512 $(CHART_NAME)-$(VERSION).tgz > $(CHART_NAME)-$(VERSION).tgz.sha512
publish: package
- helm push ${CHART_NAME}-${VERSION}.tgz oci://registry-1.docker.io/apache
+ helm push ${CHART_NAME}-${VERSION}.tgz oci://docker.io/apache
diff --git a/README.md b/README.md
index 30cd897..1011c2b 100644
--- a/README.md
+++ b/README.md
@@ -39,7 +39,7 @@ Set them on the command line, or put them in a values file and pass `-f my-value
# Install
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking --create-namespace \
--set oap.image.tag=11.0.0 \
--set oap.storageType=banyandb \
diff --git a/chart/skywalking/Chart.yaml b/chart/skywalking/Chart.yaml
index 4f02da7..3558bac 100644
--- a/chart/skywalking/Chart.yaml
+++ b/chart/skywalking/Chart.yaml
@@ -46,5 +46,5 @@ dependencies:
- name: skywalking-banyandb-helm
alias: banyandb
version: 0.7.0
- repository: oci://registry-1.docker.io/apache
+ repository: oci://docker.io/apache
condition: banyandb.enabled
diff --git a/chart/skywalking/README.md b/chart/skywalking/README.md
index 4462e02..07de158 100644
--- a/chart/skywalking/README.md
+++ b/chart/skywalking/README.md
@@ -33,7 +33,7 @@ independently.
(`banyandb.enabled=true`).
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking --create-namespace \
--set oap.image.tag=11.0.0 \
--set oap.storageType=banyandb \
diff --git a/docs/README.md b/docs/README.md
index a8925ce..c20e96a 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -11,7 +11,7 @@ CRDs and its image are developed and released.
## Start here
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking --create-namespace \
--set oap.image.tag=11.0.0 \
--set oap.storageType=banyandb \
diff --git a/docs/contributing/release.md b/docs/contributing/release.md
index c14e79d..ec8d35d 100644
--- a/docs/contributing/release.md
+++ b/docs/contributing/release.md
@@ -23,7 +23,7 @@ carries six files.
| --- | --- | --- |
| dist.apache.org | source tarball, `.asc`, `.sha512` | `skywalking-helm-5.0.0-src.tgz` |
| dist.apache.org | packaged chart, `.asc`, `.sha512` | `skywalking-helm-5.0.0.tgz` |
-| Docker Hub (OCI) | the chart users install — a convenience binary, pushed **after** the vote | `oci://registry-1.docker.io/apache/skywalking-helm:5.0.0` |
+| Docker Hub (OCI) | the chart users install — a convenience binary, pushed **after** the vote | `oci://docker.io/apache/skywalking-helm:5.0.0` |
| ghcr.io (OCI) | `0.0.0-<sha>` snapshot of every `master` commit — **not** a release | `oci://ghcr.io/apache/skywalking-helm/skywalking-helm:0.0.0-<sha>` |
The dist path for this project is `skywalking/helm/`. The `skywalking/kubernetes/` directory on dist
@@ -95,7 +95,7 @@ Every dependency version has to resolve before you can build. BanyanDB Helm is r
to the same Docker Hub OCI namespace, so ask the registry:
```shell
-helm show chart oci://registry-1.docker.io/apache/skywalking-banyandb-helm --version 0.7.0
+helm show chart oci://docker.io/apache/skywalking-banyandb-helm --version 0.7.0
```
An `Error: ... not found` means it is not published there. Cross-check the source release exists too:
@@ -454,7 +454,7 @@ Before it pushes anything the workflow runs three hard guards, under a repositor
It packages with `make package` (not bare `helm package`, so `NOTICE` and `LICENSE` are in the
chart), re-checks that both files are inside the tarball, and pushes to
-`oci://registry-1.docker.io/apache`, where `helm push` appends the chart name — landing at
+`oci://docker.io/apache`, where `helm push` appends the chart name — landing at
`apache/skywalking-helm:$VERSION`.
Watch it and verify the result — this is not ceremony. Docker Hub currently holds
@@ -463,7 +463,7 @@ the registry**, which is the gap this workflow exists to close. Confirm yours la
```shell
gh run list --workflow publish-helm.yaml --repo apache/skywalking-helm --limit 3
-helm show chart oci://registry-1.docker.io/apache/skywalking-helm --version "$VERSION"
+helm show chart oci://docker.io/apache/skywalking-helm --version "$VERSION"
```
A `FetchReference ... not found` means the chart is not there, whatever the workflow's exit status
@@ -497,7 +497,7 @@ It prints this list at the end; the detail is here.
```makefile
publish: package
- helm push ${CHART_NAME}-${VERSION}.tgz oci://registry-1.docker.io/apache
+ helm push ${CHART_NAME}-${VERSION}.tgz oci://docker.io/apache
```
It re-packages from your **working tree** and pushes to Docker Hub. Reach for it only when Actions is
@@ -511,10 +511,10 @@ It has **none** of the workflow's guards:
- It builds from your working copy, not from the tag — uncommitted local edits get published, and
nothing ties the pushed chart to the voted artifact.
-If you must use it: `helm registry login registry-1.docker.io` first (write access to the `apache`
+If you must use it: `helm registry login docker.io` first (write access to the `apache`
Docker Hub organization is required), run it from a pristine checkout of `v$VERSION`, and only after
the vote has passed and the artifacts have moved to `dist/release`. Verify with
-`helm show chart oci://registry-1.docker.io/apache/skywalking-helm --version $VERSION`.
+`helm show chart oci://docker.io/apache/skywalking-helm --version $VERSION`.
---
diff --git a/docs/evaluate/requirements.md b/docs/evaluate/requirements.md
index bfe4f86..323707b 100644
--- a/docs/evaluate/requirements.md
+++ b/docs/evaluate/requirements.md
@@ -8,7 +8,7 @@ default (Elasticsearch) path requires.
| Requirement | Version | Where it comes from |
|---|---|---|
| Kubernetes | 1.21+ | `eck-operator` 3.3.1 and `eck-elasticsearch` 0.18.1 both declare a `kubeVersion` floor of `1.21.0-0`; `chart/skywalking` itself declares none. Helm does **not** enforce a *subchart's* `kubeVersion`, so an older cluster still installs — it just runs an unsupported ECK. |
-| Helm | 3.8+ (4.x also works) | The chart is `apiVersion: v2`, and `helm dep up` pulls the BanyanDB dependency from an OCI registry (`oci://registry-1.docker.io/apache`), which needs Helm's non-experimental OCI support (3.8.0). |
+| Helm | 3.8+ (4.x also works) | The chart is `apiVersion: v2`, and `helm dep up` pulls the BanyanDB dependency from an OCI registry (`oci://docker.io/apache`), which needs Helm's non-experimental OCI support (3.8.0). |
| `kubectl` | matching your cluster | Used to watch the install (`kubectl get pods -w`) and for all troubleshooting. |
CI exercises the chart on a four-node [kind](https://kind.sigs.k8s.io/) cluster running
diff --git a/docs/evaluate/version-compatibility.md b/docs/evaluate/version-compatibility.md
index e59b3a5..123a5e6 100644
--- a/docs/evaluate/version-compatibility.md
+++ b/docs/evaluate/version-compatibility.md
@@ -19,7 +19,7 @@ This is the combination every cell in `test/e2e/` installs on each CI run, so it
| Kubernetes | `v1.28.15` — every e2e cell runs `test/e2e/kind28.yaml` (`kindest/node:v1.28.15`) | your cluster |
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
--set oap.image.tag=11.0.0 \
--set oap.storageType=banyandb \
diff --git a/docs/evaluate/what-this-chart-deploys.md b/docs/evaluate/what-this-chart-deploys.md
index 4370bc9..4b98b94 100644
--- a/docs/evaluate/what-this-chart-deploys.md
+++ b/docs/evaluate/what-this-chart-deploys.md
@@ -13,7 +13,7 @@ Three values have no defaults and must be supplied every time: `oap.image.tag`,
`oap.storageType`, `ui.image.tag`.
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking --create-namespace \
--set oap.image.tag=11.0.0 \
--set oap.storageType=elasticsearch \
@@ -107,7 +107,7 @@ or `metrics` entries and they are opened on both the container and the Service.
A gateway that fronts OAP for agent traffic. Off by default; it needs its own image tag.
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking \
--set oap.image.tag=11.0.0 \
--set oap.storageType=elasticsearch \
diff --git a/docs/expose/oap-endpoints.md b/docs/expose/oap-endpoints.md
index bf16c79..a5697ba 100644
--- a/docs/expose/oap-endpoints.md
+++ b/docs/expose/oap-endpoints.md
@@ -54,7 +54,7 @@ helm template skywalking chart/skywalking \
Uncomment the lines already present in `values.yaml`, or pass them on the command line:
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
--set oap.image.tag=11.0.0 \
--set oap.storageType=banyandb \
diff --git a/docs/expose/tls.md b/docs/expose/tls.md
index ca53d89..7d93c93 100644
--- a/docs/expose/tls.md
+++ b/docs/expose/tls.md
@@ -224,7 +224,7 @@ ui:
```shell
helm upgrade --install "${SKYWALKING_RELEASE_NAME}" \
- oci://registry-1.docker.io/apache/skywalking-helm \
+ oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
-n "${SKYWALKING_RELEASE_NAMESPACE}" \
--set oap.image.tag=11.0.0 \
diff --git a/docs/install/chart-sources.md b/docs/install/chart-sources.md
index d74582b..ed25310 100644
--- a/docs/install/chart-sources.md
+++ b/docs/install/chart-sources.md
@@ -7,7 +7,7 @@ address to point `helm install` at, and what each one actually carries.
| Source | Address | Carries | Use when |
| --- | --- | --- | --- |
-| Docker Hub (OCI) | `oci://registry-1.docker.io/apache/skywalking-helm` | Released `skywalking-helm` charts, `4.3.0` through `4.8.0` | Default. Any normal install. |
+| 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. |
@@ -24,7 +24,7 @@ required values are always yours to set:
## 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://registry-1.docker.io/apache`). There is no `helm repo add` step — an OCI
+`helm push … oci://docker.io/apache`). There is no `helm repo add` step — an OCI
reference is the chart.
```shell
@@ -33,7 +33,7 @@ export SKYWALKING_RELEASE_NAME=skywalking
export SKYWALKING_RELEASE_NAMESPACE=default
helm install "${SKYWALKING_RELEASE_NAME}" \
- oci://registry-1.docker.io/apache/skywalking-helm \
+ oci://docker.io/apache/skywalking-helm \
--version "${SKYWALKING_RELEASE_VERSION}" \
-n "${SKYWALKING_RELEASE_NAMESPACE}" \
--set oap.image.tag=11.0.0 \
@@ -47,8 +47,8 @@ available chart versions — pick and pin `--version` deliberately. To inspect o
before installing:
```shell
-helm show values oci://registry-1.docker.io/apache/skywalking-helm --version 5.0.0
-helm pull oci://registry-1.docker.io/apache/skywalking-helm --version 5.0.0
+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
@@ -128,7 +128,7 @@ versions — the BanyanDB server version is `banyandb.image.tag`, currently `0.1
| `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://registry-1.docker.io/apache` | `banyandb.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`
diff --git a/docs/install/quick-start.md b/docs/install/quick-start.md
index 166b079..1456eed 100644
--- a/docs/install/quick-start.md
+++ b/docs/install/quick-start.md
@@ -43,7 +43,7 @@ not both own the CRDs.
```shell
helm install "${SKYWALKING_RELEASE_NAME}" \
- oci://registry-1.docker.io/apache/skywalking-helm \
+ oci://docker.io/apache/skywalking-helm \
--version "${SKYWALKING_RELEASE_VERSION}" \
-n "${SKYWALKING_RELEASE_NAMESPACE}" --create-namespace \
--set oap.image.tag=11.0.0 \
diff --git a/docs/operate/oap-init-job.md b/docs/operate/oap-init-job.md
index 7dd6a12..3e24019 100644
--- a/docs/operate/oap-init-job.md
+++ b/docs/operate/oap-init-job.md
@@ -42,7 +42,7 @@ To have Helm surface init-Job failures directly — instead of only reporting th
Ready — add `--wait-for-jobs` alongside `--wait`:
```shell
-helm upgrade --install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm upgrade --install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking --create-namespace \
--set oap.image.tag=11.0.0 \
--set oap.storageType=banyandb \
@@ -181,7 +181,7 @@ value, delete the Job and upgrade — Helm recreates the now-missing resource:
```shell
kubectl delete job -n skywalking -l release=skywalking
-helm upgrade skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm upgrade skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking --reuse-values
```
diff --git a/docs/operate/satellite.md b/docs/operate/satellite.md
index b24bd5d..2b824df 100644
--- a/docs/operate/satellite.md
+++ b/docs/operate/satellite.md
@@ -11,7 +11,7 @@ Satellite is off by default (`satellite.enabled: false`) and its image tag has n
```shell
helm upgrade --install "${SKYWALKING_RELEASE_NAME}" \
- oci://registry-1.docker.io/apache/skywalking-helm \
+ oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
-n "${SKYWALKING_RELEASE_NAMESPACE}" \
--set oap.image.tag=11.0.0 \
diff --git a/docs/operate/scaling.md b/docs/operate/scaling.md
index 3b5c8a9..c236bb4 100644
--- a/docs/operate/scaling.md
+++ b/docs/operate/scaling.md
@@ -63,7 +63,7 @@ namespaced `pods` read permission yourself, or OAP starts and never discovers a
```shell
helm install skywalking \
- oci://registry-1.docker.io/apache/skywalking-helm \
+ oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
-n skywalking --create-namespace \
--set oap.image.tag=11.0.0 \
diff --git a/docs/reference/skywalking-chart-values.md b/docs/reference/skywalking-chart-values.md
index fbcc0f8..9b69164 100644
--- a/docs/reference/skywalking-chart-values.md
+++ b/docs/reference/skywalking-chart-values.md
@@ -279,7 +279,7 @@ helm install my-release chart/skywalking -f my-values.yaml
```
Released versions install from the OCI reference instead —
-`oci://registry-1.docker.io/apache/skywalking-helm --version <x.y.z>`. See
+`oci://docker.io/apache/skywalking-helm --version <x.y.z>`. See
[Chart sources](../install/chart-sources.md).
> **Tip**: You can use the default [values.yaml](../../chart/skywalking/values.yaml)
diff --git a/docs/storage/banyandb.md b/docs/storage/banyandb.md
index 588cd71..f3de121 100644
--- a/docs/storage/banyandb.md
+++ b/docs/storage/banyandb.md
@@ -12,7 +12,7 @@ when `banyandb.enabled=true`.
## Install
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking --create-namespace \
--set oap.image.tag=11.0.0 \
--set oap.storageType=banyandb \
@@ -72,7 +72,7 @@ installs.
Cluster mode:
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking --create-namespace \
--set oap.image.tag=11.0.0 \
--set oap.storageType=banyandb \
@@ -162,7 +162,7 @@ To point OAP at a BanyanDB cluster the chart does not manage, leave the subchart
addresses directly:
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking --create-namespace \
--set oap.image.tag=11.0.0 \
--set oap.storageType=banyandb \
diff --git a/docs/storage/choose-a-backend.md b/docs/storage/choose-a-backend.md
index 3937e2a..4746e87 100644
--- a/docs/storage/choose-a-backend.md
+++ b/docs/storage/choose-a-backend.md
@@ -57,7 +57,7 @@ carry `valueFrom`) or `oap.envFromSecret`.
BanyanDB (standalone is the chart's default BanyanDB mode):
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
--set oap.image.tag=11.0.0 \
--set ui.image.tag=horizon-1.0.0 \
@@ -74,7 +74,7 @@ See [Version Compatibility](../evaluate/version-compatibility.md).
Elasticsearch (the default):
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
--set oap.image.tag=11.0.0 \
--set ui.image.tag=horizon-1.0.0 \
@@ -89,7 +89,7 @@ helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
PostgreSQL, demo only:
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
--set oap.image.tag=11.0.0 \
--set ui.image.tag=horizon-1.0.0 \
diff --git a/docs/storage/elasticsearch.md b/docs/storage/elasticsearch.md
index 3f9136e..1a056b7 100644
--- a/docs/storage/elasticsearch.md
+++ b/docs/storage/elasticsearch.md
@@ -45,7 +45,7 @@ Then install SkyWalking with `--set eck-operator.installCRDs=false` so the bundl
try to create the same CRDs a second time:
```shell
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm install skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
-n "${SKYWALKING_RELEASE_NAMESPACE}" \
--set oap.image.tag=11.0.0 \
diff --git a/docs/storage/postgresql.md b/docs/storage/postgresql.md
index cca1a9b..6c08f8a 100644
--- a/docs/storage/postgresql.md
+++ b/docs/storage/postgresql.md
@@ -42,7 +42,7 @@ Any other key under `postgresql.` is passed straight through to the Bitnami subc
```shell
helm install skywalking \
- oci://registry-1.docker.io/apache/skywalking-helm \
+ oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
-n default \
--set oap.image.tag=11.0.0 \
@@ -80,7 +80,7 @@ postgresql:
```shell
helm install skywalking \
- oci://registry-1.docker.io/apache/skywalking-helm \
+ oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
-n default \
--set oap.image.tag=11.0.0 \
diff --git a/docs/troubleshooting/install-and-startup.md b/docs/troubleshooting/install-and-startup.md
index f06a04d..7cbf5ce 100644
--- a/docs/troubleshooting/install-and-startup.md
+++ b/docs/troubleshooting/install-and-startup.md
@@ -66,7 +66,7 @@ helm install eck-crds eck-operator-crds \
--repo https://helm.elastic.co --version 3.3.1 \
-n skywalking --create-namespace
-helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm --version 5.0.0 \
+helm install skywalking oci://docker.io/apache/skywalking-helm --version 5.0.0 \
-n skywalking \
--set oap.image.tag=11.0.0 \
--set oap.storageType=elasticsearch \
diff --git a/docs/ui/logins.md b/docs/ui/logins.md
index 0369c59..9d84a6b 100644
--- a/docs/ui/logins.md
+++ b/docs/ui/logins.md
@@ -60,7 +60,7 @@ ui:
```shell
helm install "${SKYWALKING_RELEASE_NAME}" \
- oci://registry-1.docker.io/apache/skywalking-helm \
+ oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
-n "${SKYWALKING_RELEASE_NAMESPACE}" \
--set oap.image.tag=11.0.0 \
@@ -125,7 +125,7 @@ ui:
```shell
helm install "${SKYWALKING_RELEASE_NAME}" \
- oci://registry-1.docker.io/apache/skywalking-helm \
+ oci://docker.io/apache/skywalking-helm \
--version 5.0.0 \
-n "${SKYWALKING_RELEASE_NAMESPACE}" \
--set oap.image.tag=11.0.0 \
diff --git a/docs/upgrade/upgrading.md b/docs/upgrade/upgrading.md
index 087240f..d98a605 100644
--- a/docs/upgrade/upgrading.md
+++ b/docs/upgrade/upgrading.md
@@ -6,7 +6,7 @@ UI removal, the OAP 11 dashboard-template changes, and the new `ui.config` defau
## Run the upgrade
```shell
-helm upgrade skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm upgrade skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking \
--set oap.image.tag=11.0.0 \
--set oap.storageType=banyandb \
@@ -199,7 +199,7 @@ To force a rerun without changing a value, delete the Job and upgrade again:
```shell
kubectl delete job -n skywalking -l release=skywalking
-helm upgrade skywalking oci://registry-1.docker.io/apache/skywalking-helm \
+helm upgrade skywalking oci://docker.io/apache/skywalking-helm \
--version 5.0.0 -n skywalking --reuse-values
```
diff --git a/tools/releasing/release-passed.sh b/tools/releasing/release-passed.sh
index 7ebe17a..f132ba0 100755
--- a/tools/releasing/release-passed.sh
+++ b/tools/releasing/release-passed.sh
@@ -48,6 +48,12 @@ log() { echo " $*"; }
step() { echo; echo "=== $* ==="; }
die() { echo "ERROR: $*" >&2; exit 1; }
+# Script scope, over a script-scope variable: an EXIT trap runs after the function has returned and
+# cannot see a `local`, and under `set -u` the unbound name would make the trap itself fail.
+NOTES_FILE=""
+cleanup() { [[ -n "${NOTES_FILE}" ]] && rm -f "${NOTES_FILE}"; return 0; }
+trap cleanup EXIT
+
ask() {
# `read` exits 1 at EOF, which under set -e would kill the run with no message.
local reply
@@ -173,6 +179,45 @@ remove_previous() {
fi
}
+# The release page used to carry a single line pointing at the changelog. Nobody follows a link to
+# find out what changed in a release they are already looking at, and every release before 5.0.0
+# carried its full notes inline. This rebuilds that: the curated changelog section for this version,
+# then GitHub's own generated list of merged PRs and new contributors.
+build_release_notes() {
+ NOTES_FILE=$(mktemp)
+
+ # After release.sh's next-version PR merges the section lives in its own file; before that it is
+ # still the current changelog. Try both.
+ local src=""
+ for candidate in "docs/changes/changes-${VERSION}.md" "docs/changes/changes.md"; do
+ if [[ -f "${candidate}" ]] && grep -qx "## ${VERSION}" "${candidate}"; then src="${candidate}"; break; fi
+ done
+
+ if [[ -n "${src}" ]]; then
+ # The section runs from its own heading to the next one. Relative links resolve inside docs/
+ # but not on a release page, so point them at the hosted docs for this tag.
+ awk -v want="## ${VERSION}" '$0 == want {f=1; next} f && /^## / {exit} f' "${src}" \
+ | sed -E "s#\]\(\.\./([^)]+)\.md\)#](https://skywalking.apache.org/docs/skywalking-helm/${TAG}/\1/)#g" \
+ | sed '/./,$!d' \
+ > "${NOTES_FILE}"
+ log "notes: ${VERSION} section of ${src}"
+ else
+ echo "See https://github.com/apache/skywalking-helm/blob/${TAG}/docs/changes/changes.md" > "${NOTES_FILE}"
+ log "WARNING: no '## ${VERSION}' section found in docs/changes/ -- falling back to a link"
+ fi
+
+ # Appended rather than passed as --generate-notes, so the body is assembled here and the exact
+ # text is known before anything is published.
+ local generated
+ generated=$(gh api -X POST repos/apache/skywalking-helm/releases/generate-notes \
+ -f tag_name="${TAG}" -q .body 2>/dev/null || true)
+ if [[ -n "${generated}" ]]; then
+ printf '\n---\n\n%s\n' "${generated}" >> "${NOTES_FILE}"
+ else
+ log "WARNING: could not generate the merged-PR list; notes carry the changelog only"
+ fi
+}
+
github_release() {
step "Create the GitHub release"
@@ -186,6 +231,8 @@ github_release() {
return
fi
+ build_release_notes
+
if confirm "gh release create ${TAG} (this publishes the chart to Docker Hub)"; then
# --verify-tag: without it gh CREATES a missing tag from the default branch
# head, which is not necessarily the commit the PMC voted on.
@@ -193,7 +240,7 @@ github_release() {
--repo apache/skywalking-helm \
--verify-tag \
--title "${VERSION}" \
- --notes "See https://github.com/apache/skywalking-helm/blob/${TAG}/docs/changes/changes.md"
+ --notes-file "${NOTES_FILE}"
log "created -- watch the publish-helm workflow"
gh run list --repo apache/skywalking-helm --workflow=publish-helm.yaml --limit 1 2>/dev/null || true
fi
@@ -219,7 +266,7 @@ storage backend -- on Kubernetes with Helm 3.
Install:
- helm install skywalking oci://registry-1.docker.io/apache/skywalking-helm --version ${VERSION} \\
+ helm install skywalking oci://docker.io/apache/skywalking-helm --version ${VERSION} \\
--set oap.image.tag=<oap-version> \\
--set ui.image.tag=<horizon-version> \\
--set oap.storageType=elasticsearch