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

Remove v1alpha1 Pipeline, PipelineRun, Task, TaskRun, and ClusterTask #5005

Merged
merged 1 commit into from
Jun 30, 2022

Conversation

abayer
Copy link
Contributor

@abayer abayer commented Jun 20, 2022

Changes

Closes #4982

This removes the long deprecated pipeline v1alpha1 APIs for everything that's replicated in v1beta1.

/kind cleanup

Submitter Checklist

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

  • Docs included if any changes are user facing
  • Tests included if any functionality added or changed
  • Follows the commit message standard
  • Meets the Tekton contributor standards (including
    functionality, content, code)
  • Release notes block below has been filled in
    (if there are no user facing changes, use release note "NONE")

Release Notes

action required: `v1alpha1` `Pipeline`, `PipelineRun`, `Task`, `TaskRun` removed. Please switch to `v1beta1` for those types.

@tekton-robot tekton-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Jun 20, 2022
@tekton-robot tekton-robot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Jun 20, 2022
@tekton-robot
Copy link
Collaborator

The following is the coverage report on the affected files.
Say /test pull-tekton-pipeline-go-coverage to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/reconciler/pipelinerun/resources/pipelineref.go 87.5% 85.7% -1.8
pkg/reconciler/taskrun/resources/taskref.go 78.6% 74.5% -4.1

@abayer
Copy link
Contributor Author

abayer commented Jun 20, 2022

/retest

1 similar comment
@abayer
Copy link
Contributor Author

abayer commented Jun 20, 2022

/retest

@abayer abayer force-pushed the remove-pipeline-v1alpha1 branch from e01e3ac to a047fb5 Compare June 20, 2022 15:28
@tekton-robot
Copy link
Collaborator

The following is the coverage report on the affected files.
Say /test pull-tekton-pipeline-go-coverage to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/reconciler/pipelinerun/resources/pipelineref.go 87.5% 85.7% -1.8
pkg/reconciler/taskrun/resources/taskref.go 78.6% 74.5% -4.1

@abayer abayer force-pushed the remove-pipeline-v1alpha1 branch from a047fb5 to 7052a25 Compare June 20, 2022 16:11
@tekton-robot
Copy link
Collaborator

The following is the coverage report on the affected files.
Say /test pull-tekton-pipeline-go-coverage to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/reconciler/pipelinerun/resources/pipelineref.go 87.5% 85.7% -1.8
pkg/reconciler/taskrun/resources/taskref.go 78.6% 83.0% 4.4

@abayer
Copy link
Contributor Author

abayer commented Jun 20, 2022

I...honestly did not expect everything to pass so soon. =)

@abayer abayer force-pushed the remove-pipeline-v1alpha1 branch from 7052a25 to 0f665ac Compare June 21, 2022 20:44
@tekton-robot
Copy link
Collaborator

The following is the coverage report on the affected files.
Say /test pull-tekton-pipeline-go-coverage to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/reconciler/pipelinerun/resources/pipelineref.go 87.5% 85.7% -1.8
pkg/reconciler/taskrun/resources/taskref.go 78.6% 83.0% 4.4

@abayer abayer force-pushed the remove-pipeline-v1alpha1 branch from 0f665ac to d23b576 Compare June 22, 2022 12:59
@tekton-robot tekton-robot added release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. and removed do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Jun 22, 2022
@abayer abayer marked this pull request as ready for review June 22, 2022 13:01
@tekton-robot tekton-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jun 22, 2022
@tekton-robot
Copy link
Collaborator

The following is the coverage report on the affected files.
Say /test pull-tekton-pipeline-go-coverage to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/reconciler/pipelinerun/resources/pipelineref.go 87.5% 85.7% -1.8
pkg/reconciler/taskrun/resources/taskref.go 78.6% 83.0% 4.4

Copy link
Member

@vdemeester vdemeester left a comment

Choose a reason for hiding this comment

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

/cc @tektoncd/cli-maintainers as this will have an impact on the CLI (a good one, we'll have to clean our v1alpha1 support as well)

@tekton-robot tekton-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 22, 2022
@abayer
Copy link
Contributor Author

abayer commented Jun 22, 2022

And yes, there'll be an email to tekton-dev@ once this merges.

@abayer
Copy link
Contributor Author

abayer commented Jun 22, 2022

/retest

@abayer
Copy link
Contributor Author

abayer commented Jun 22, 2022

cc @tektoncd/core-maintainers

@abayer
Copy link
Contributor Author

abayer commented Jun 22, 2022

/hold

I'm holding this until I get feedback from enough people. =)

@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 22, 2022
@vdemeester
Copy link
Member

I tend to agree with @afrittoli. Custom Tasks are only available if we set the api feature flag to alpha, so we consider those features alpha (with an alpha timeline). This means if next release we want to remove it (or here rename it), we could (it would be better to do it in a "as little breakage as possible" way but still…).

Custom Tasks are even more "weird" in that, from the user perspective (aka the yaml provide) we never "refer" to the Run type. It almost make Run an implementation detail that is not visible to the end-user. It is however visible for tools integrating with pipeline.

I feel like we discussed about this already, but I cannot remember for sure.
I'm not sure I see enough value in changing the name to justify it, but also I'm not opposed to it.
@imjasonh @vdemeester wdyt?

I don't have a strong opinion on this, but if we want to change the name, it would be better to do it earlier than later. Changing it today, would mean all the custom task in experimental need to be changed, same with external ones (automatiko manual approval, …).

We could introduce a v1alpha2 which would only be a thin shim i.e. identical to v1beta1 with alpha feature enabled. That v1alpha2 API would allow getting access to alpha features without changing the config. Do you think that would be useful?

That could be a possibility. I wonder what are the cons for this approach, what problems it could "pose".

@lbernick
Copy link
Member

@wlynch

I'm curious because one of the things I was hoping could happen eventually was renaming Run -> CustomRun while the feature is still alpha

Let's keep "Run" naming out of scope for this PR.

Mixing different stability policies in the same API makes it a bit confusing what is / isn't in scope

I agree this can be confusing although this is covered in tep 33

  • e.g. if we make a breaking change to how CustomRuns are referred to in v1beta1 APIs, does that need to follow beta compatibility deprecation?

Yes, but I don't think that's in scope for this PR.

While I'm all for simplifying the maintenance burden of v1alpha1, part of me wonders if there's value in keeping a thin layer so we can quickly iterate on experimental features without needing to impact higher stability APIs. 🤔

I'm not sure I understand what you're suggesting here. Is the suggestion to retain the concept of a "v1alpha1 API" which has v1alpha1 versions of all the CRDs you would need to run Tekton? v1alpha1 Run will still exist, at alpha stability, so we can iterate on it. Or is the concern that the v1beta1 Pipeline implicitly declares the spec of Run (currently runtime.RawExtension), so there's a beta CRD that depends on Run spec? If the latter, I think this is also out of scope.

@wlynch
Copy link
Member

wlynch commented Jun 29, 2022

I'm not sure I understand what you're suggesting here. Is the suggestion to retain the concept of a "v1alpha1 API" which has v1alpha1 versions of all the CRDs you would need to run Tekton?

Yup! (though probably more in line with what @afrittoli was saying with v1alpha2).

Or is the concern that the v1beta1 Pipeline implicitly declares the spec of Run (currently runtime.RawExtension), so there's a beta CRD that depends on Run spec? If the latter, I think this is also out of scope.

The situation I'm worried about is if a change to an alpha field causes a breaking change in beta API clients - it's not immediately obvious in client code whether a beta client is running in "alpha mode", since that's a server-side setting. We kinda get around this today by having alpha checks during validation, though I don't think we have any way to verify what fields are alpha beyond doc comments (and we're not always consistent about labelling these) and whether they are actually enforced as alpha. For me having strict separation of alpha fields only be in alpha APIs makes this distinction clearer for both client and server, then promote fields to beta once we're happy. If we do stick with the alpha fields in beta APIs though, maybe we can do something to improve this like add custom struct tags to label and enforce alpha behavior. 🤔

That said, agreed that this is out of scope for this PR so...

/lgtm

@tekton-robot tekton-robot added the lgtm Indicates that a PR is ready to be merged. label Jun 29, 2022
@abayer
Copy link
Contributor Author

abayer commented Jun 29, 2022

@wlynch fwiw, v1alpha1 didn't have alpha features, it was just the first version of the API. All the alpha features are in v1beta1.

@tekton-robot tekton-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 30, 2022
Closes tektoncd#4982

This removes the long deprecated pipeline v1alpha1 APIs for everything that's replicated in v1beta1.

Signed-off-by: Andrew Bayer <[email protected]>
@abayer abayer force-pushed the remove-pipeline-v1alpha1 branch from 75c0d8d to b31ece3 Compare June 30, 2022 12:20
@tekton-robot tekton-robot removed the lgtm Indicates that a PR is ready to be merged. label Jun 30, 2022
@tekton-robot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: afrittoli, vdemeester

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,vdemeester]

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

@tekton-robot tekton-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 30, 2022
@tekton-robot
Copy link
Collaborator

The following is the coverage report on the affected files.
Say /test pull-tekton-pipeline-go-coverage to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/reconciler/pipelinerun/resources/pipelineref.go 87.5% 85.7% -1.8
pkg/reconciler/taskrun/resources/taskref.go 78.6% 83.0% 4.4

Copy link
Member

@lbernick lbernick 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 30, 2022
@abayer
Copy link
Contributor Author

abayer commented Jun 30, 2022

/retest

@abayer
Copy link
Contributor Author

abayer commented Jun 30, 2022

/hold cancel

@tekton-robot tekton-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 30, 2022
@abayer
Copy link
Contributor Author

abayer commented Jun 30, 2022

/retest

@abayer
Copy link
Contributor Author

abayer commented Jun 30, 2022

/test pull-tekton-pipeline-integration-tests

@abayer
Copy link
Contributor Author

abayer commented Jun 30, 2022

/retest

@abayer
Copy link
Contributor Author

abayer commented Jun 30, 2022

/test pull-tekton-pipeline-integration-tests

@tekton-robot
Copy link
Collaborator

@abayer: The specified target(s) for /test were not found.
The following commands are available to trigger required jobs:

  • /test stage-tekton-pipeline-unit-tests

In response to this:

/test pull-tekton-pipeline-integration-tests

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.

@abayer
Copy link
Contributor Author

abayer commented Jun 30, 2022

/test pull-tekton-pipeline-integration-tests

@tekton-robot tekton-robot merged commit 1b080e3 into tektoncd:main Jun 30, 2022
jerop added a commit to jerop/community that referenced this pull request Mar 21, 2023
TEP-0105 was implemented in tektoncd/pipeline#5005.
This change updates the TEP state from `implementable` to `implemented`.
tekton-robot pushed a commit to tektoncd/community that referenced this pull request Mar 21, 2023
TEP-0105 was implemented in tektoncd/pipeline#5005.
This change updates the TEP state from `implementable` to `implemented`.
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/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. 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/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Removal of v1alpha1 Task, TaskRun, Pipeline, and PipelineRun
7 participants