Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Helm chart release process #30

Open
3 tasks
oraNod opened this issue Dec 13, 2024 · 6 comments · May be fixed by #35
Open
3 tasks

Helm chart release process #30

oraNod opened this issue Dec 13, 2024 · 6 comments · May be fixed by #35
Assignees

Comments

@oraNod
Copy link
Contributor

oraNod commented Dec 13, 2024

We now have the Helm chart version separated from the AWX operator version (appVersion) in Chart.yaml. We also have some enhancements to the chart itself. It's a good time to do a release.

Let's use this issue to identify the steps and process then cut a release.

Tasks

Preview Give feedback
@oraNod
Copy link
Contributor Author

oraNod commented Dec 13, 2024

My understanding is the release process involves two main steps. Digging into the details a little, the helm release workflow runs the helm-release playbook that calls into the Makefile here:

.PHONY: helm-index

Since this is a new repo and there will only be one tag (i.e. the new release tag) it seems like this is going to break the index.yaml so that older versions of the chart will no longer be available.

@oraNod
Copy link
Contributor Author

oraNod commented Dec 13, 2024

@schen1 / @miles-w-3 Please have a look. I think we need to figure out how to handle the old tags to avoid breaking things with a new release.

My first thought here is to add awx-operator as a remote and fetch those tags and merge them with the tags in this repo.

git remote add awx-operator https://github.com/ansible/awx-operator.git
git fetch awx-operator --tags

TAGS := $(shell (git ls-remote --tags --sort=version:refname --refs -q origin; git ls-remote --tags --sort=version:refname --refs -q awx-operator) | cut -d/ -f3 | sort -u)

An alternative, which might be better suited and a good option since we've got a standalone repo is to generate a new index.yaml, merge the versions, and put that in this repo. I feel like we should go that route and move towards adopting https://github.com/helm/chart-releaser

However that's a bigger chunk of work and I'd be in favour of something more expedient in the short term. What do you think?

@oraNod
Copy link
Contributor Author

oraNod commented Dec 13, 2024

We might also want to reconsider switching to CalVer. Probably should have noted this during the discussion on the forum but here we are: https://helm.sh/docs/topics/charts/#charts-and-versioning

"Every chart must have a version number. A version must follow the SemVer 2 standard."

If helm enforces SemVer then we should probably be compliant with that.

@miles-w-3
Copy link
Collaborator

We might want to look into fully using the chart-releaser workflow. As I remember, this was used partially in the original repo but suplemented with ansible tasks because of limitations with chart-releaser when dealing with versioning outside of the helm chart. One blocker here is we would need to keep all of our old releases around: https://github.com/helm/chart-releaser-action

@oraNod
Copy link
Contributor Author

oraNod commented Dec 19, 2024

Thanks @miles-w-3 +1 to moving to that workflow.

To get around that blocker, I think what we need to do is something like this:

  • Create the /charts directory in this repo that has a subdirectory for each version.
  • Copy over all the templates and values files into each subdirectory.

There are likely some other specific things we'd need to do for the Charts.yaml file but I haven't looked that deeply into it. Just trying to think through how to go about it.

It looks like someone has published the charts to this registry: https://artifacthub.io/packages/helm/awx-operator/awx-operator

I've gone through and compared the versions there with the releases in ansible/awx-operator and it seems like the versions line up. So maybe we can use helm pull to grab all the old chart packages and extract them to construct that /charts directory? Does that sound sensible?

It seems like we can either do that or build the old versions of the charts by hand from the awx-operator repo. Maybe I'm overlooking something here and would welcome other opinions. Cheers.

@miles-w-3 miles-w-3 linked a pull request Jan 4, 2025 that will close this issue
@miles-w-3
Copy link
Collaborator

@oraNod please see #35

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 a pull request may close this issue.

3 participants