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

Mark v1beta1 apis as deprecated #6876

Merged
merged 1 commit into from Jul 25, 2023
Merged

Conversation

lbernick
Copy link
Member

@lbernick lbernick commented Jun 27, 2023

Now that v1 versions of Task, TaskRun, Pipeline, and PipelineRun are available and used as the storage version of these APIs, this commit marks the v1beta1 versions of these APIs as deprecated.

This commit also clarifies that "support" for these APIs during the deprecation period means that they will receive bug fixes but not new features.

/kind documentation
Part of #5541

Submitter Checklist

As the author of this PR, please check off the items in this checklist:

  • Has Docs if any changes are user facing, including updates to minimum requirements e.g. Kubernetes version bumps
  • n/a Has Tests included if any functionality added or changed
  • Follows the commit message standard
  • Meets the Tekton contributor standards (including functionality, content, code)
  • Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
  • Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings). See some examples of good release notes.
  • Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes

action required: v1beta1 Task, TaskRun, Pipeline, and PipelineRun APIs are deprecated and will be removed. Please migrate to the v1 versions of these APIs following the migration guide at https://github.com/tektoncd/pipeline/blob/main/docs/migrating-v1beta1-to-v1.md.

@tekton-robot tekton-robot added release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. kind/documentation Categorizes issue or PR as related to documentation. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Jun 27, 2023
@afrittoli afrittoli added this to the Pipelines v0.50 (LTS) milestone Jun 27, 2023
Copy link
Member

@Yongxuanzhang Yongxuanzhang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@tekton-robot tekton-robot added the lgtm Indicates that a PR is ready to be merged. label Jun 27, 2023
Copy link
Member

@QuanZhang-William QuanZhang-William left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, Lee! Changes look good to me. I'm curious about what is the impact of marking the v1beta1 crds as deprecated? Does it mean I can no longer kubectl apply a v1beta1 pipelinerun for example?

Copy link
Member

@jerop jerop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/test pull-tekton-pipeline-go-coverage

@afrittoli
Copy link
Member

Thanks, Lee! Changes look good to me. I'm curious about what is the impact of marking the v1beta1 crds as deprecated? Does it mean I can no longer kubectl apply a v1beta1 pipelinerun for example?

There is no change until the CRD is "removed" (i.e. not served anymore).
It signals users that they should migrate their resources to v1.

@tekton-robot tekton-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 28, 2023
@afrittoli
Copy link
Member

afrittoli commented Jun 28, 2023

/hold Just wanted to give @pritidesai an opportunity to review this as she commented about this topic during the last WG.

@tekton-robot tekton-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 28, 2023
Copy link
Member

@afrittoli afrittoli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!
/approve

docs/deprecations.md Outdated Show resolved Hide resolved
@tekton-robot tekton-robot removed the lgtm Indicates that a PR is ready to be merged. label Jun 29, 2023
@pritidesai
Copy link
Member

@lbernick and I talked offline, thanks @lbernick for this PR 🙏

Once the PR is updated to include the steps you shared, we can merge this.

Release 0.50 where v1beta1 is deprecated
Release v0.59 where v1beta1 is no longer served, but we still have the client libraries
Release 0.71 we remove the client libraries

/approve

@tekton-robot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: afrittoli, jerop, pritidesai

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:
  • OWNERS [afrittoli,jerop,pritidesai]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@afrittoli
Copy link
Member

/test pull-tekton-pipeline-integration-tests

@lbernick
Copy link
Member Author

@lbernick and I talked offline, thanks @lbernick for this PR 🙏

Once the PR is updated to include the steps you shared, we can merge this.

Release 0.50 where v1beta1 is deprecated
Release v0.59 where v1beta1 is no longer served, but we still have the client libraries
Release 0.71 we remove the client libraries

Done!

@lbernick lbernick removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 30, 2023
@vdemeester
Copy link
Member

vdemeester commented Jul 3, 2023

So this mean we are planning to remove v1beta1 in less than a year (9 month from now), am I right ? This will mean we are removing v1beta1 API "quicker" than we removed v1alpha1 API, which is a bit worrysome 😅 (especially seeing that few of our customers just moved from v1alpha1 to v1beta1). We gave more than a year to migrate from v1alpha1 to v1beta1, but we give less than a year to migrate from v1beta1 to v1 ?

In addition, all our "plumbing" (here in tekton or in tektoncd/plumbing) are still using v1beta1 even. I would assume we would at least have them all migrated to v1 (and have a few cycle of "uses" with them in v1) before marking v1beta1 as deprecated (and we also need to actually exercise a recent version on tektoncd/pipeline ourselves.. our cluster still runs 0.44). A discussion/debate could also take place of the catalogs on the same subject (v1beta1 API still served there).

So.. I am really worried about marking it as deprecated it as early as 0.50 (July release).

/hold

@tekton-robot tekton-robot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Jul 3, 2023
@lbernick
Copy link
Member Author

lbernick commented Jul 5, 2023

So this mean we are planning to remove v1beta1 in less than a year (9 month from now), am I right ? This will mean we are removing v1beta1 API "quicker" than we removed v1alpha1 API, which is a bit worrysome 😅 (especially seeing that few of our customers just moved from v1alpha1 to v1beta1). We gave more than a year to migrate from v1alpha1 to v1beta1, but we give less than a year to migrate from v1beta1 to v1 ?

If we want to allow more time to migrate from v1beta1 to v1, we should discuss changing our compatibility policy. If we don't follow our compatibility policy, how will we know when it's acceptable to remove support for these CRDs?

I also just want to note a few things:

  • our deprecation table describes the "earliest" date or release of removal, but we still have the option to remove the v1beta1 CRDs later
  • v1 CRDs have already been available since v0.43.0
  • If you want longer support for v1beta1 CRDs, you can stick with v0.59.0 (which is LTS) for a year rather than upgrading

In addition, all our "plumbing" (here in tekton or in tektoncd/plumbing) are still using v1beta1 even. I would assume we would at least have them all migrated to v1 (and have a few cycle of "uses" with them in v1) before marking v1beta1 as deprecated (and we also need to actually exercise a recent version on tektoncd/pipeline ourselves.. our cluster still runs 0.44). A discussion/debate could also take place of the catalogs on the same subject (v1beta1 API still served there).

That's a good point; it could definitely make sense to have some usage of v1 in plumbing before we mark v1beta1 as deprecated. We can also upgrade the 4 tasks in tektoncd-catalog but I don't think we should wait for the tasks in tektoncd/catalog to upgrade. (However, I'd hope our integration tests and upgrade tests are good enough to give us sufficient confidence in the v1 api!)

@lbernick
Copy link
Member Author

@vdemeester I've opened #6923 for discussion on the beta CRD support window.

@afrittoli
Copy link
Member

@vdemeester @lbernick shall we try and get this merged for v0.50?

@vdemeester
Copy link
Member

@afrittoli I would say yes 🙃
@lbernick I approved #6923 👼🏼

@tekton-robot tekton-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 22, 2023
@lbernick
Copy link
Member Author

/hold cancel
I've updated this PR based on the discussions resolved in #6923

@tekton-robot tekton-robot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. and removed do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. labels Jul 22, 2023
@vdemeester
Copy link
Member

@lbernick needs a rebase 🙏🏼

Now that v1 versions of Task, TaskRun, Pipeline, and PipelineRun are
available and used as the storage version of these APIs, this commit
marks the v1beta1 versions of these APIs as deprecated.

This commit also clarifies that "support" for these APIs during the
deprecation period means that they will receive bug fixes but not new features.
@tekton-robot tekton-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 24, 2023
@lbernick
Copy link
Member Author

done! just needs lgtm

@vdemeester
Copy link
Member

/lgtm

@tekton-robot tekton-robot added the lgtm Indicates that a PR is ready to be merged. label Jul 25, 2023
@tekton-robot tekton-robot merged commit 82a405a into tektoncd:main Jul 25, 2023
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. kind/documentation Categorizes issue or PR as related to documentation. lgtm Indicates that a PR is ready to be merged. release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants