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

Deprecate Conditions CRD #3377

Closed
jerop opened this issue Oct 13, 2020 · 10 comments · Fixed by #4942
Closed

Deprecate Conditions CRD #3377

jerop opened this issue Oct 13, 2020 · 10 comments · Fixed by #4942
Assignees
Labels
area/roadmap Issues that are part of the project (or organization) roadmap (usually an epic) kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.

Comments

@jerop
Copy link
Member

jerop commented Oct 13, 2020

With the implementation of Conditions Beta, specifically WhenExpressions, we want to deprecate the Conditions CRD because:

  • Efficiency: Conditions have to spin up new Pods for every check, even simple ones. WhenExpressions enable guarding Tasks with simple checks without spinning up new Pods. Read more.
  • Simplicity: Conditions actually manifested themselves as Tasks. In more complex use cases, we can use Tasks themselves to produce Results that can be used to specify WhenExpressions in subsequent Tasks. Read more.
  • Flexibility: When Conditions evaluated to False and the associated Task was skipped, the subsequent Tasks were skipped as well. Tasks guarded by WhenExpressions support passing in a field -continueAfterSkip - that enables ordering-dependent Tasks to execute when it is set to True. Read more.
  • Status: It is difficult to distinguish Conditions causing a Task to be skipped or the Task failing for other reasons. When WhenExpressions evaluate to false, the associated Task is listed in a Skipped Tasks section of the status alongside the resolved WhenExpressions. If they evaluate to True, the resolved WhenExpressions are listed alongside the TaskRun status. Read more.

Conditions CRD has been listed in the deprecations table since the release of v0.16.0.

This is a milestone for release of Pipelines v1beta2.

cc @bobcatfish

@jerop
Copy link
Member Author

jerop commented Oct 13, 2020

/kind cleanup

@tekton-robot tekton-robot added the kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. label Oct 13, 2020
@ghost ghost added this to the Pipeline v1beta2 milestone Oct 13, 2020
@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 Jan 11, 2021
@vdemeester
Copy link
Member

/remove-lifecycle stale
/lifecycle frozen
/area roadmap

@tekton-robot tekton-robot added area/roadmap Issues that are part of the project (or organization) roadmap (usually an epic) lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jan 12, 2021
@jerop jerop moved this to In Progress in Tekton Pipelines Roadmap Feb 3, 2022
@jerop jerop moved this from In Progress to Done in Tekton Pipelines Roadmap Feb 3, 2022
@afrittoli
Copy link
Member

@jerop @vdemeester @bobcatfish Do we need a v1beta2 to remove Conditions?
They have been deprecated since v0.16.0 and we Nov 2020 was the first time we could have removed them according to the policy.

@jerop
Copy link
Member Author

jerop commented Feb 16, 2022

I don't think it's worth the effort to create v1beta2 just to remove Conditions, especially given that we're already working towards v1 which won't have Conditions - TEP-0096

@jerop jerop self-assigned this Feb 17, 2022
@afrittoli
Copy link
Member

We could stop simply stop serving Conditions in v1alpha1 - the problem is however that Conditions can be included in v1beta1/Pipeline. Once we release the v1 version of Pipeline, even if we deprecate v1beta1 right away, we will need to serve v1beta1 for 9 months, which includes support for references of Conditions.

I think there are three possible ways forward:

  1. we stop serving Conditions even if we still serve CRDs that may refer to them
  2. we deprecate v1beta1 as soon as possible, and make a v1beta2 which does not allow for references to Conditions. In nine months from now, we can drop v1beta1 and remove Conditions
  3. we deprecate v1beta when we release v1 and nine months later we can drop v1beta1 and remove Conditions

Option (1) feels a bit ugly, and option (2) feels like a lot of work for a v1beta2 which no-one will ever use. Option (3) seems like a long time we'll need to keep Conditions around, but perhaps it's still the best way forward.

As a side note, all of the above applies to PipelineResources too.

@tektoncd/core-maintainers @lbernick

@vdemeester
Copy link
Member

I think we don't really have any other decent choice than (2) or (3), and I would lean more on (3)

@lbernick
Copy link
Member

lbernick commented Mar 3, 2022

I agree with Vincent that option 3 is best. Option 2 would follow the letter of our compatibility policy but as you said, not provide much benefit to users in exchange for a large amount of work on our part.

@lbernick
Copy link
Member

Discussed in API WG this week and on slack: we plan to remove Conditions from v1beta1 CRDs in v0.37.0.

@abayer
Copy link
Contributor

abayer commented Jun 6, 2022

/assign

abayer added a commit to abayer/tektoncd-pipeline that referenced this issue Jun 6, 2022
Closes tektoncd#3377

This was deprecated in v0.16.0, and is scheduled to be fully removed in v0.37.0, releasing late in June.

Signed-off-by: Andrew Bayer <[email protected]>
abayer added a commit to abayer/tektoncd-pipeline that referenced this issue Jun 7, 2022
Closes tektoncd#3377

This was deprecated in v0.16.0, and is scheduled to be fully removed in v0.37.0, releasing late in June.

Signed-off-by: Andrew Bayer <[email protected]>
abayer added a commit to abayer/tektoncd-pipeline that referenced this issue Jun 7, 2022
Closes tektoncd#3377

This was deprecated in v0.16.0, and is scheduled to be fully removed in v0.37.0, releasing late in June.

Signed-off-by: Andrew Bayer <[email protected]>
tekton-robot pushed a commit that referenced this issue Jun 7, 2022
Closes #3377

This was deprecated in v0.16.0, and is scheduled to be fully removed in v0.37.0, releasing late in June.

Signed-off-by: Andrew Bayer <[email protected]>
jerop added a commit to jerop/pipeline that referenced this issue Jun 8, 2022
`Conditions` were removed in tektoncd#4942.
In this change, we remove the deprecation and removal notice for `Conditions`
from the deprecations table. We also remaining references to `Conditions`.

Related issue: tektoncd#3377.
tekton-robot pushed a commit that referenced this issue Jun 8, 2022
`Conditions` were removed in #4942.
In this change, we remove the deprecation and removal notice for `Conditions`
from the deprecations table. We also remaining references to `Conditions`.

Related issue: #3377.
jerop added a commit to jerop/pipeline that referenced this issue Jun 23, 2022
In tektoncd#4942, we removed
`Conditions`. However, there was some logic that was left over.
In this change, we clean up the remaining logic for `Conditions`.

Issue: tektoncd#3377
jerop added a commit to jerop/pipeline that referenced this issue Jun 23, 2022
In tektoncd#4942, we removed
`Conditions`. However, there was some logic that was left over.
In this change, we clean up the remaining logic for `Conditions`.

Issue: tektoncd#3377
tekton-robot pushed a commit that referenced this issue Jun 23, 2022
In #4942, we removed
`Conditions`. However, there was some logic that was left over.
In this change, we clean up the remaining logic for `Conditions`.

Issue: #3377
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/roadmap Issues that are part of the project (or organization) roadmap (usually an epic) kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

7 participants