apache / apache/polaris

Releasey: Make Helm index generation safe against concurrent RCs

Open
#3,747 1 comment 0 reactions 0 assignees View on GitHub
enhancement stale
Dominant language
Java
Stars
2.1k
Forks
522
Avg merge
1d 22h
Merged PRs (30d)
137

Description

### Is your feature request related to a problem? Please describe.

The approach implemented by #3515 is a good and for the user experience necessary improvement.

The added approach is however not suitable when there are multiple releases happening concurrently (e.g. a new release candidate from `main` plus another from `release/1.4.x`), as the last released version would "remove" the concurrent "open" releases from the Helm index.

A safer approach is to _not_ overwrite the Helm index in the 4th workflow but rather update the existing one. In (pseudo) code it looks like this:
```bash
# Download and unpack the released helm package
# Download the current Helm index.yaml
helm repo index . --merge index.yaml --url https://github.com/apache/polaris/releases/download/
# Upload the updated Helm index.yaml
```

The above approach prevents downloading all old Helm packages, which will eventually be a lot, and an always growing number of releases.

Although the eventually merged Helm index cannot be voted on, because it is created after the vote, it is probably not an issue, because the Helm index is a _convenience_ generated release artifact and not part of the source.

### Describe the solution you'd like

_No response_

### Describe alternatives you've considered

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

Review the approach introduced by #3515 and locate the fourth release workflow that generates the Helm index. Trace how the current index and released Helm package are handled, then verify that concurrent release candidates remain represented without downloading all historical packages.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, helm
Domain
ci-cd, release
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.