-
Notifications
You must be signed in to change notification settings - Fork 814
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
Run chart releaser action from release branches only #859
Conversation
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: wongma7 The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
BTW, this is a double edged sword. because folks browsing master branch might expect the master branch chart to have been released: kubernetes-sigs/aws-efs-csi-driver#421 So I want others' input and careful consideration :D |
Pull Request Test Coverage Report for Build 1918
💛 - Coveralls |
0ac0fe7
to
0aa3715
Compare
docs/RELEASE.md
Outdated
@@ -79,15 +79,14 @@ The new tag should trigger a new Github release. Verify that it has run by going | |||
- Source code (zip) | |||
- Source code (tar.gz) | |||
|
|||
## Verify the helm chart release |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I realize this means that the helm chart release will exist for x minutes before the image to which it is referring will exist in registries.
This is a problem we had in the past that this change would reintroduce.
I think the benefits outweigh it tho.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(still thinking outloud)
Actually let me edit the release process to account for this.
Hmm I can see the confusion around not having the latest chart released. My concern is that our chart hasn't been consistent enough to carry all the changes across release branches. Maybe we should do this after @krmichel's changes? When it's more stable? |
I'm okay with that. /hold |
I also wonder if there will be confusion about chart versions since they don't generally match the versions of the actual images they use. Will the helm chart be released only from the most current release branch or any release branch? Will there be some method other than human caution and observation that will keep the chart versions straight across branches? Like what if the chart version was 0.27.0 or 1.1.0 on the branch for the 0.11 release of the image. Would it go up a minor in the release branch for 0.12? If so, what would the version of the chart be in the 0.11 release branch if a new feature was added to the chart after 0.12 was released. 0.28.0 or 1.2.0 would already be taken and setting it to either 0.27.1/1.1.1 would not accurately represent the change content, and 0.29.0/1.3.0 would falsely imply that the changes from 0.28.0/1.2.0 would be included in that chart version. It seems like since the chart is a pseudo-autonomous piece of software if you want to release it from branches it should have its own release branches independent of the image releases. Maybe chart-release-* as a convention. That would allow for bug fixes to older versions without the complications I was mentioning earlier. Thoughts? |
Only the most recent release branch, because my main motivation is to protect the helm chart from changes in master branch, not to maintain multiple parallel branches of the helm chart. This thinking goes for the driver as well, because we have never accepted PRs to any branch but master and the most recent release branch. This might change in the future after GA depending on whether we want to maintain multiple minor version tracks in order to support older kubernetes version, but so far we haven't needed to. For example, with the CSIDriver object going from v1beta1 to v1, you are introducing some logic in the chart itself to check the k8s version, so there's no need to maintain different chart tracks for v1beta1 and v1. Anyway, if we assume that we will only ever make changes to the most current release branch, then it mostly avoids the scenarios you described.
Ideally we would never backport a feature to an old version of the chart, only bugfixes in rare cases, so that would sidestep this scenario. So far, I have been bumping the chart minor version along with the app version. And sometimes we bump the chart minor version independent of the app version. Strictly speaking, as I have mentioned before, I guess we have been abusing semver & helm versioning conventions, but, I really don't know a better way to signal changes to users. At the least, to cut down on confusion, we'll need to start maintaining a chart changelog (someone is working on this in EFS repo). So users will be able to look at chart version, app version, and the changelog for each.
It might be the case that branching the chart will be the cleanest solution but IMO probably will add more confusion & maintenance burden. The chart still is tied to image releases by |
0aa3715
to
170f037
Compare
/hold cancel I want to bring this back, #995 updated the release process so that we release the kustomize template in release-* branch only after verifying images exist. Similarly, it would make sense to only release the helm chart in release-* branch only after verifying images exist. I think this model has worked OK in efs repo, it requires some additional work from maintainers to cherry-pick helm changes but it is more stable for users |
170f037
to
59d8285
Compare
@wongma7: PR needs rebase. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /close |
@k8s-triage-robot: Closed this PR. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Is this a bug fix or adding new feature? fixes #858
What is this PR about? / Why do we need it?
"What happened? This would enable us to branch helm chart releases (e.g. have a different chart for 0.10.x vs 0.9.x).
And it would reduce confusion in the release process. Currently you release the image to registries by pushing a tag on the release branch but you release a corresponding helm chart by pushing something to the master branch.
See efs fix for details: kubernetes-sigs/aws-efs-csi-driver#333"
fyi @ayberk @krmichel
What testing is done?