Skip to content

Conversation

@pingtimeout
Copy link
Contributor

@pingtimeout pingtimeout commented Jan 23, 2026

The current release workflows force a regeneration of the Helm index after the old (unmaintained) releases are removed from the Apache dist release SVN server. This causes previous releases to be removed from the Helm index (#3500).

This commit is a tentative fix that re-generates a Helm index across downloads.apache.org as well as archive.apache.org. The logic is as follows:

  1. All Helm charts from downloads.a.o and archive.a.o are downloaded locally so that the index is fully rebuilt across all versions.
  2. The URL of any Helm chart that is located on archive.apache.org but not on downloads.apache.org is replaced by an absolute URL to archive.apache.org. That way, previous releases are always accessible.
  3. The URL of any Helm chart that is located on downloads.apache.org is replaced by a relative path ${version}/polaris-${version}.tgz.

That way, the Helm index can be rebuild before a release vote is started, as the relative path will work regardless of the location being used (dist dev during RC vote, dist release and downloads.a.o after vote).

This PR is a draft to show how a solution could be implemented and to offer a path forward to work around #3500 until a permanent fix is added to the release workflows. Most likely the current code will be split and integrated into the pre-vote release workflow.

Checklist

  • 🛡️ Don't disclose security issues! (contact security@apache.org)
  • 🔗 Clearly explained why the changes are needed, or linked related issues: Fixes #
  • 🧪 Added/updated tests with good coverage, or manually tested (and explained how)
  • 💡 Added comments for complex logic
  • 🧾 Updated CHANGELOG.md (if needed)
  • 📚 Updated documentation in site/content/in-dev/unreleased (if needed)

The current release workflows force a regeneration of the Helm index
after the old (unmaintained) releases are removed from the Apache dist
release SVN server.  This causes previous releases to be removed from
the Helm index (apache#3500).

This commit is a tentative fix that re-generates a Helm index across
`downloads.apache.org` as well as `archive.apache.org`.  The logic is as
follows:

1. All Helm charts from `downloads.a.o` and `archive.a.o` are downloaded
   locally so that the index is fully rebuilt across all versions.
2. The URL of any Helm chart that is located on `archive.apache.org` but
   not on `downloads.apache.org` is replaced by an absolute URL to
   `archive.apache.org`.  That way, previous releases are always
   accessible.
3. The URL of any Helm chart that is located on `downloads.apache.org`
   is replaced by a relative path `${version}/polaris-${version}.tgz`.

That way, the Helm index can be rebuild before a release vote is
started, as the relative path will work regardless of the location being
used (dist dev during RC vote, dist release and `downloads.a.o` after
vote).
@pingtimeout
Copy link
Contributor Author

For reference, here are snippets of the resulting index.yaml that this script generates:

apiVersion: v1
entries:
  polaris:
  - apiVersion: v2
    appVersion: 1.3.0-incubating
    # ...
    urls:
    - 1.3.0-incubating/polaris-1.3.0-incubating.tgz
    version: 1.3.0-incubating
  - apiVersion: v2
    appVersion: 1.2.0-incubating
    # ...
    urls:
    - https://archive.apache.org/dist/incubator/polaris/helm-chart/1.2.0-incubating/polaris-1.2.0-incubating.tgz
    version: 1.2.0-incubating
  - apiVersion: v2
    appVersion: 1.1.0-incubating
    # ...
    urls:
    - https://archive.apache.org/dist/incubator/polaris/helm-chart/1.1.0-incubating/polaris-1.1.0-incubating.tgz
    version: 1.1.0-incubating
  - apiVersion: v2
    appVersion: 1.0.1-incubating
    # ...
    - https://archive.apache.org/dist/incubator/polaris/helm-chart/1.0.1-incubating/polaris-1.0.1-incubating.tgz
    version: 1.0.1-incubating
  - apiVersion: v2
    appVersion: 1.0.0-incubating
    # ...
    - https://archive.apache.org/dist/incubator/polaris/helm-chart/1.0.0-incubating/polaris-1.0.0-incubating.tgz
    version: 1.0.0-incubating
generated: "2026-01-23T14:42:46.003637+01:00"

Copy link
Contributor

@dimas-b dimas-b left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a useful tool to me 👍

@github-project-automation github-project-automation bot moved this from PRs In Progress to Ready to merge in Basic Kanban Board Jan 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants