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

Better support for downgrades/rollbacks #6841

Open
lbernick opened this issue Jun 16, 2023 · 2 comments
Open

Better support for downgrades/rollbacks #6841

lbernick opened this issue Jun 16, 2023 · 2 comments

Comments

@lbernick
Copy link
Member

lbernick commented Jun 16, 2023

Pipelines currently tries to ensure backwards compatibility where possible, and our upgrade tests ensure that users can upgrade to a new version of Pipelines without breaking existing resources defined on their cluster.

However, we haven't put as much effort into smooth rollbacks. We don't explicitly support rollbacks (and I don't think we're at a point where it makes sense to make guarantees or policies-- see this comment from @vdemeester), but I'm creating this issue to gauge interest and start discussion about ways we could better support rollbacks.

Two ideas:

  1. Change our feature flag logic: Right now we only allow certain fields if the feature flags gating those fields are turned on when a CRD is created/updated. In order to support safe rollbacks, we should allow a field if either the feature flag is enabled, or the object is being updated and already has the field present. This is what k8s does: see discussion here. This could be done as part of work on per feature flags (Per Feature Feature Flags #5632).
  2. Introduce some kind of "downgrade testing" that tests that objects don't fail validation when downgrading tekton versions. Ex: On a kind cluster that has the latest tekton version and some pipelines/tasks, downgrade to the previous tekton version, check that existing pipelines/tasks don't fail validation (maybe via some trivial updates), and run previous release's integration tests.
@tekton-robot
Copy link
Collaborator

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale with a justification.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close with a justification.
If this issue should be exempted, mark the issue as frozen with /lifecycle frozen with a justification.

/lifecycle stale

Send feedback to tektoncd/plumbing.

@tekton-robot tekton-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 14, 2023
@vdemeester
Copy link
Member

/remove-lifecycle stale

@tekton-robot tekton-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 20, 2023
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

No branches or pull requests

3 participants