Chart Versioning Proposal
Revisiting the conversation we started in https://gitlab.com/charts/gitlab/issues/232
What we have already done is, setup tagged builds in the CNG images repo, for when the upstream gitlab-rails repo is tagged.
In order to release this charts we need to:
- Update the image tags in all the charts to the tagged CNG images (https://gitlab.com/charts/gitlab/issues/479 , https://gitlab.com/charts/gitlab/issues/482)
- Update the pull policy in all the charts to
IfNotPresent
(https://gitlab.com/charts/gitlab/issues/480) - Update the app version in each chart to the matching gitlab version (https://gitlab.com/charts/gitlab/issues/481)
- Bump the version field of each chart (https://gitlab.com/charts/gitlab/issues/481)
- Package and upload the chart to charts.gitlab.io (https://gitlab.com/charts/gitlab/issues/483)
Feedback
Looking for feedback on all these items of course, but I'm specifically looking for direction and opinions on two discussion points: semver versioning
and our branching strategy
.
Branching strategy has it's own discussion issue here: https://gitlab.com/charts/gitlab/issues/474 Please take a look and share your ideas over there.
And sevmver versioning has one here: https://gitlab.com/charts/gitlab/issues/475 Please take a look and share your ideas over there.
Update the image tags in all the charts to the tagged CNG images
@WarheadsSE suggested in https://gitlab.com/charts/gitlab/issues/232#note_63230838 we use a global to indicate the GitLab version, and use that version in our image tags, and I agree. We would continue to let you override the image.tag, but by default it would use the global.
We should:
- Add a global gitlab-version setting that is used by default as the tag for the rails images. (https://gitlab.com/charts/gitlab/issues/479)
- Update the field manually for now (proposed automation in https://gitlab.com/charts/gitlab/issues/482)
IfNotPresent
Update the pull policy in all the charts to Let's do pull policy, and (pull secrets while we are at it) as defaulting to a global, and do it along with the global image tag above. https://gitlab.com/charts/gitlab/issues/480
Update the app version in each chart to the matching gitlab version
- Let's write a script for updating these (https://gitlab.com/charts/gitlab/issues/481)
- Update the field manually for now (proposed automation in https://gitlab.com/charts/gitlab/issues/482)
Bump the version field of each chart
- Write a script for bumping the chart version (https://gitlab.com/charts/gitlab/issues/481)
- Update the field manually for now (proposed automation in https://gitlab.com/charts/gitlab/issues/482)
Package and upload the chart to charts.gitlab.io
- Build a release task that bumps the chart versions, runs the changelog handling, commits, and creates a tag. (https://gitlab.com/charts/gitlab/issues/482)
- Trigger charts.gitlab.io package on tag (https://gitlab.com/charts/gitlab/issues/483)
- Build manual CI job for running the release task (https://gitlab.com/charts/gitlab/issues/484)
- Also build a trigger from the CNG repo to the release task, so when it has been triggered by a gitlab tag, it will build, then trigger the release of a new package automatically. (https://gitlab.com/charts/gitlab/issues/484)
SemVer versioning scheme for the charts.
Split out into its own discussion issue here: https://gitlab.com/charts/gitlab/issues/475 Please take a look and share your ideas over there.
Branching Strategy
Split out into its own discussion issue here: https://gitlab.com/charts/gitlab/issues/474 Please take a look and share your ideas over there.