-
Notifications
You must be signed in to change notification settings - Fork 16.8k
Conversation
There is another problem with the volumeClaimTemplate described in #7803, could you update this as well and bump minor version instead of patch version? cc @kocolosk Thanks! |
@desaintmartin Thanks for reviewing this. I believe that removing the version from Surprisingly we haven't experienced the #7803 in our case, but IMHO it makes sense to remove the version there as well and I have done so in this PR. I have bumped the minor version and added not about update to the description of the PR. |
/ok-to-test |
I've quite tested and documented the three different upgrading problems we have at: Can you sign your commits? |
This fixes CouchDB updates by removing Version part from StatefulSet lables, as Kubernetes don't allow updates to any other fields but 'replicas', 'template', and 'updateStrategy', and therefore updating CouchDB service would be impossible. - metadata.labels - spec.VolumeClaimTemplate.metadata.labels Signed-off-by: Stepan Stipl <[email protected]>
Signed-off-by: Stepan Stipl <[email protected]>
a44398a
to
d4ac2b2
Compare
@desaintmartin thanks, so the problem we've experienced and that I'm trying to solve is the first one - version in We haven't experienced the 3rd one - version in I believe the 2nd one - version in Sorry for confusion :) and thanks for your time reviewing this. Commits signed. |
The first one is about v1beta1 without explicit selector, so it doesnt match. I'm interested, could you give me the commands used and errors encountered? It may be yet another issue. |
It's a bit more complicated - were using our fork of this chart with some added bits, you can see it at https://github.com/gpii-ops/gpii-infra/blob/master/shared/charts/couchdb. Also we're not installing the chart directly, but rather via exekube (https://github.com/exekube/exekube), which uses Terraform provider (https://github.com/terraform-providers/terraform-provider-helm/). With the version in we would receive update error, and after removing it we don't have that problem - see commit gpii-ops/gpii-infra@28efcc1. I'll try to find out the exact error and also reproduce directly with this chart and helm. |
I am really interested into a failing use case with the existing configuration and error log to be sure that we do not miss anything. But @unguiculus seems to agree with me. :) |
Signed-off-by: Stepan Stipl <[email protected]>
@desaintmartin @unguiculus thanks for review and comments. I've updated the labels as suggested -> the result is only removing the mutable label I've tested the upgrade process by changing the chart version and it seems to do the job. |
After some testing, this changes is in itself a breaking change (impossible to update from the existing broken state to your new version fixing this) and I did not realize it before with the other fixes of #7803. You should bump a MAJOR version and document it like in https://github.com/helm/charts/pull/7686/files#diff-b290a06961a11374d72f584e5925762cR48 (with only the update about volumeClaimTemplate and expliaing how to delete without cascade the statefulset). This will allow to finally close #7803. |
Signed-off-by: Stepan Stipl <[email protected]>
0296431
to
1803cc3
Compare
@desaintmartin thanks for the review, I have bumped the major version to 1.0.0 and added README section about upgrading. I have tested upgrading via the proposed strategy (non-cascading delete of StatefulSet) and it worked well. |
Thanks! This lgtm now, ping @unguiculus |
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.
Thanks for doing this. @unguiculus requests were already changed. lgtm too 👍
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: scottrigby, stepanstipl 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 |
Change requests were addressed
* CouchDB - Allow statefulSet updates This fixes CouchDB updates by removing Version part from StatefulSet lables, as Kubernetes don't allow updates to any other fields but 'replicas', 'template', and 'updateStrategy', and therefore updating CouchDB service would be impossible. - metadata.labels - spec.VolumeClaimTemplate.metadata.labels Signed-off-by: Stepan Stipl <[email protected]> * CouchDB - bump chart version to 0.3.0 Signed-off-by: Stepan Stipl <[email protected]> * CouchDB - Update StatefulSet labels Signed-off-by: Stepan Stipl <[email protected]> * Bump major version and describe upgrade process Signed-off-by: Stepan Stipl <[email protected]>
* CouchDB - Allow statefulSet updates This fixes CouchDB updates by removing Version part from StatefulSet lables, as Kubernetes don't allow updates to any other fields but 'replicas', 'template', and 'updateStrategy', and therefore updating CouchDB service would be impossible. - metadata.labels - spec.VolumeClaimTemplate.metadata.labels Signed-off-by: Stepan Stipl <[email protected]> * CouchDB - bump chart version to 0.3.0 Signed-off-by: Stepan Stipl <[email protected]> * CouchDB - Update StatefulSet labels Signed-off-by: Stepan Stipl <[email protected]> * Bump major version and describe upgrade process Signed-off-by: Stepan Stipl <[email protected]> Signed-off-by: Chaoran Yu <[email protected]>
* CouchDB - Allow statefulSet updates This fixes CouchDB updates by removing Version part from StatefulSet lables, as Kubernetes don't allow updates to any other fields but 'replicas', 'template', and 'updateStrategy', and therefore updating CouchDB service would be impossible. - metadata.labels - spec.VolumeClaimTemplate.metadata.labels Signed-off-by: Stepan Stipl <[email protected]> * CouchDB - bump chart version to 0.3.0 Signed-off-by: Stepan Stipl <[email protected]> * CouchDB - Update StatefulSet labels Signed-off-by: Stepan Stipl <[email protected]> * Bump major version and describe upgrade process Signed-off-by: Stepan Stipl <[email protected]>
This fixes CouchDB updates by removing
Version part from StatefulSet label, as Kubernetes don't allow updates to any other fields but 'replicas', 'template', and 'updateStrategy',thechart
andheritage
labels from thevolumeClaimTemplates
which is immutable and therefore updating CouchDB service would be impossible.Update: To update from current state
usedelete the CouchDB StatefulSet before upgrading:--force
flag (see https://docs.helm.sh/helm/helm_upgrade/ for details). This will causeStatefulSet
recreation, therefore downtime, but as long as you use persistent storage, the data will be preserved.