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

Towards v1 API #3548

Closed
3 of 17 tasks
vdemeester opened this issue Nov 20, 2020 · 33 comments
Closed
3 of 17 tasks

Towards v1 API #3548

vdemeester opened this issue Nov 20, 2020 · 33 comments
Assignees
Labels
area/epic Issues that should be considered as Epics (aka multiple sub-tasks, …) area/roadmap Issues that are part of the project (or organization) roadmap (usually an epic) kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.

Comments

@vdemeester
Copy link
Member

vdemeester commented Nov 20, 2020

This issue is here to track work towards the v1 API of tektoncd/pipeline. It is loosely based on the initial doc around this, and will be update as we go.

Motivation

In order to declare Pipeline stable and ready to use in production
to our users and customer, we need to give them some
guarantees. Although v1beta1 has some guarantees, most users are
waiting for a v1 API set that they can rely on for the long term.

If we can, in addition, come with a set of rules that would help us
decide when a feature request should be considered as required or not
for a v1 API, this would be nice 🙃.

Identified work

Nice to have

To triage

Use stories (to cover)

We should come with a bunch of user stories (from actual users) to highlight the requirements.

  • A standard go project pipeline (lint, build, test)
  • A standard Java project pipeline (lint, package, test, publis, …) — maven and gradle versions
  • A source-to-image project pipeline (build image, test, deployment)
  • A source-to-image in knative project pipeline (build image, deployment, test, deployment)
  • Tekton pipeline project pipeline (lint, build, test, e2e test against a cluster, …)
  • A canary deployment pipeline
  • A “matrix” build pipeline (build, test, … with some different env’ variables — using CustomResource)
  • A Kubernetes pipeline execution engine for Kubeflow pipeline to leverage ML pipeline use cases (Python DSL to Tekton pipelineRuns, Data Transformation/processing, test, deploy and monitor k8s model training CR, model examination)
  • Add yours here

See also here 😅

/area epic
/area roadmap
/kind feature
/assign

/cc @tektoncd/core-maintainers

@tekton-robot tekton-robot added area/epic Issues that should be considered as Epics (aka multiple sub-tasks, …) area/roadmap Issues that are part of the project (or organization) roadmap (usually an epic) kind/feature Categorizes issue or PR as related to a new feature. labels Nov 20, 2020
@vdemeester vdemeester added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. labels Nov 20, 2020
@jlpettersson
Copy link
Member

jlpettersson commented Nov 20, 2020

I would like to see #3440 in v1 - and deprecate the current place were volumeClaimTemplate is implemented. That would be a more intuitive API - easier to understand and easier to work with. I really regret the current design.

I also think #3551 would be nice to do / try out before v1.

Replace the Affinity Assistant with a Custom Scheduler #3052 would also be nice - even though not strictly an API-thing, but before 1.0. Personally I would prefer the current constraints since I, as default expect 1) that declared parallel tasks can execute in parallel - with PVC, 2) that pipelineruns can not deadlock depending on how I use PVCs

@bobcatfish
Copy link
Collaborator

I think that making some changes to the constraints the affinity assistant imposes before v1 would make a lot of sense - for example I really don't like it that (unless im understanding incorrectly) trying to use 2 PVCs with 1 Task right now will not be allowed (unless you disable the affinity assistant). Even if we keep that, I think it shouldn't be the default.

@jlpettersson
Copy link
Member

@bobcatfish I opened #3563 for discussion

@bobcatfish
Copy link
Collaborator

@vdemeester maybe we can triage #3163 and potentially have it as part of our v1 roadmap?

@vdemeester
Copy link
Member Author

@vdemeester maybe we can triage #3163 and potentially have it as part of our v1 roadmap?

Except in " Migration path from v1beta1 to v1 " I don't see how it affects the v1 API 🤔.

@bobcatfish
Copy link
Collaborator

I think it's part of the migration path @vdemeester - when we add v1, we'll have another API type to worry about having end to end tests for

@bobcatfish
Copy link
Collaborator

@vdemeester possible item to triage: have we discussed at all revisiting the structure of the status sections of TaskRun and PipelineRun? I don't think these were designed as carefully as the spec sections and there is some odd stuff in there. Or we can say it's good enough and go to v1 - but I think if we wanted to change it at all, we'd want to try to do it pre-v1

@vdemeester
Copy link
Member Author

@vdemeester possible item to triage: have we discussed at all revisiting the structure of the status sections of TaskRun and PipelineRun? I don't think these were designed as carefully as the spec sections and there is some odd stuff in there. Or we can say it's good enough and go to v1 - but I think if we wanted to change it at all, we'd want to try to do it pre-v1

We can definitely discuss that :)

@bobcatfish
Copy link
Collaborator

Another item to add to our list (from our governing board meeting):

@jerop
Copy link
Member

jerop commented Feb 25, 2021

@vdemeester we missed you in the API meeting on Monday where we discussed adding #3792 to the V1 work here, what do you think?

@vdemeester
Copy link
Member Author

@vdemeester we missed you in the API meeting on Monday where we discussed adding #3792 to the V1 work here, what do you think?

We should definitely add it to the list of things to discuss and work on yes 😉

@ghost
Copy link

ghost commented Mar 9, 2021

We might want to add the "phasing out HOME / workingDir" things as part of v1 work too:

#2013
#1836

@bobcatfish
Copy link
Collaborator

Another item to add to our list - I think @sbwsg 's comment touches on this - but we have a bunch of feature flags we can probably remove (i.e. set the behavior they guard as the default): https:/tektoncd/pipeline/blob/master/docs/install.md#customizing-the-pipelines-controller-behavior (maybe these are just the creds related flags?)

@kobaji
Copy link

kobaji commented Jun 16, 2021

The following comment is written in another issue #4048 because I thought this should be published as a new issue.

Hello @vdemeester and all thank you very much for publishing this issue.
Regarding this issue, I would like to know something.

Could you please tell me how I could reach the exact months or quarter of the Tekton pipeline's v1 API release?

I have checked the following documents but I could not have found the information.

- https:/tektoncd/pipeline/blob/main/roadmap.md
- https:/tektoncd/community/blob/main/roadmap.md

That information must be helpful for our team would contribute to Tekton.
Thank you.

@bobcatfish
Copy link
Collaborator

another thing to think about adding ... or removing that is XD: volumes + volume mounts (do these provide anything we need in addition to workspaces?) #2058

@bobcatfish
Copy link
Collaborator

@kobaji I don't think we have any firm dates but are hoping for early 2022 (lemme know if you have different thoughts @vdemeester @afrittoli )

@vdemeester
Copy link
Member Author

another thing to think about adding ... or removing that is XD: volumes + volume mounts (do these provide anything we need in addition to workspaces?) #2058

Right, so on this, I am going to open an issue that is slightly related, on volume, workspace, configmap and secrets.

@kobaji I don't think we have any firm dates but are hoping for early 2022 (lemme know if you have different thoughts @vdemeester @afrittoli )

Yeah that's more or less what I have in mind. And again, this is for a v1 API, not necessarly a 1.0 release of tekton (that could happen before, or after).

@vdemeester
Copy link
Member Author

#4055 ^^

@kobaji
Copy link

kobaji commented Jul 1, 2021

@kobaji I don't think we have any firm dates but are hoping for early 2022 (lemme know if you have different thoughts @vdemeester @afrittoli )

Yeah that's more or less what I have in mind. And again, this is for a v1 API, not necessarly a 1.0 release of tekton (that could happen before, or after).

Thank you @bobcatfish , @vdemeester for your kindness.
I will keep having a look regarding Tekton release.
Thank you again for your kind help.

jerop added a commit to jerop/community that referenced this issue Jul 20, 2021
This change is a clarification and update to the migration and upgrade
plan for skipping strategies.

The implementable proposal is to change the scope of `when` expressions
to guard the `Task`. This is a backwards-incompatible change. To make the
transition smooth, we plan to:
- provide a feature flag, `scope-when-expressions-to-task`, which:
  - will default to `scope-when-expressions-to-task` : "false" to guard
  a `Task` and its dependent `Tasks`
  - can be set to `scope-when-expressions-to-task` : "true" to guard a
  `Task` only
- after 9 months, per the [Tekton API compatibility policy](https:/tektoncd/pipeline/blob/main/api_compatibility_policy.md#alpha-beta-and-ga),
  we'll flip the feature flag and default to `
  scope-when-expressions-to-task` : "true" [February 2022]
- in the next release, we'll remove the feature flag and `when` expressions
 will be scoped to guard a `Task` only going forward [March 2022]
- when we do [v1 release](tektoncd/pipeline#3548)
(projected for early 2022), we will have `when` expressions guarding a
`Task` only both in _beta_ and _v1_

We also plan to over-communicate during the migration in Slack, email
and working group meetings.
jerop added a commit to jerop/community that referenced this issue Jul 28, 2021
This change is a clarification and update to the migration and upgrade
plan for skipping strategies.

The implementable proposal is to change the scope of `when` expressions
to guard the `Task`. This is a backwards-incompatible change. To make the
transition smooth, we plan to:
- provide a feature flag, `scope-when-expressions-to-task`, which:
  - will default to `scope-when-expressions-to-task` : "false" to guard
  a `Task` and its dependent `Tasks`
  - can be set to `scope-when-expressions-to-task` : "true" to guard a
  `Task` only
- after 9 months, per the [Tekton API compatibility policy](https:/tektoncd/pipeline/blob/main/api_compatibility_policy.md#alpha-beta-and-ga),
  we'll flip the feature flag and default to `
  scope-when-expressions-to-task` : "true" [February 2022]
- in the next release, we'll remove the feature flag and `when` expressions
 will be scoped to guard a `Task` only going forward [March 2022]
- when we do [v1 release](tektoncd/pipeline#3548)
(projected for early 2022), we will have `when` expressions guarding a
`Task` only both in _beta_ and _v1_

We also plan to over-communicate during the migration in Slack, email
and working group meetings.
tekton-robot pushed a commit to tektoncd/community that referenced this issue Aug 11, 2021
This change is a clarification and update to the migration and upgrade
plan for skipping strategies.

The implementable proposal is to change the scope of `when` expressions
to guard the `Task`. This is a backwards-incompatible change. To make the
transition smooth, we plan to:
- provide a feature flag, `scope-when-expressions-to-task`, which:
  - will default to `scope-when-expressions-to-task` : "false" to guard
  a `Task` and its dependent `Tasks`
  - can be set to `scope-when-expressions-to-task` : "true" to guard a
  `Task` only
- after 9 months, per the [Tekton API compatibility policy](https:/tektoncd/pipeline/blob/main/api_compatibility_policy.md#alpha-beta-and-ga),
  we'll flip the feature flag and default to `
  scope-when-expressions-to-task` : "true" [February 2022]
- in the next release, we'll remove the feature flag and `when` expressions
 will be scoped to guard a `Task` only going forward [March 2022]
- when we do [v1 release](tektoncd/pipeline#3548)
(projected for early 2022), we will have `when` expressions guarding a
`Task` only both in _beta_ and _v1_

We also plan to over-communicate during the migration in Slack, email
and working group meetings.
@gabemontero
Copy link
Contributor

Hey folks - I seem to recall a while back in API WG discussion around possibly deprecating ClusterTasks (with possibly bundles as a replacement).

Is my memory totally faulty here? I'm not seeing any reference to it here, nor am I know finding it in the design doc bookmarks I still have, nor seeing any open/closed issues with ClusterTask in the title, so perhaps my memory is faulty :-/

If not though, is that deprecation still being considered, or has it been dismissed?

thanks !

@vdemeester
Copy link
Member Author

Is my memory totally faulty here? I'm not seeing any reference to it here, nor am I know finding it in the design doc bookmarks I still have, nor seeing any open/closed issues with ClusterTask in the title, so perhaps my memory is faulty :-/

If not though, is that deprecation still being considered, or has it been dismissed?

Your memory is not faulty, and indeed even though we discussed it, we never created an issue around it (and we probably should indeed 😛 )

@bobcatfish
Copy link
Collaborator

Another one i think we should add to our v1 list is to tackle #3497 - decide if we're okay with the current functionality going forward or not.

@jerop
Copy link
Member

jerop commented Nov 29, 2021

consider if we need to tackle #4399 before v1

@ghost
Copy link

ghost commented Jan 12, 2022

Created #4476 for discussion around CluserTask

@vdemeester
Copy link
Member Author

@jerop how do we want to maintain this compared/with https:/orgs/tektoncd/projects/10 and the V1 TEP ?

@lbernick
Copy link
Member

lbernick commented Apr 6, 2022

I'd prefer using the project board since it makes it easier to add/remove issues, track their status, and add commentary about each one

@vdemeester
Copy link
Member Author

@lbernick I tend to agree 😇

@jerop
Copy link
Member

jerop commented Apr 6, 2022

@jerop how do we want to maintain this compared/with https:/orgs/tektoncd/projects/10 and the V1 TEP ?

@vdemeester @lbernick agree with both of you that the project board is great for tracking items, and I'd add that the V1 TEP is useful for reaching alignment on what items are in scope before they are added to the board -- thank you @vdemeester for scoping the items in this issue, it's been so useful and strongly influenced both the TEP and project board 🙏

@StevenACoffman
Copy link

BTW, I just thought to mention here that the various Tekton Roadmaps are all still listed as "2021 Roadmaps" such as https:/tektoncd/pipeline/blob/main/roadmap.md and https:/tektoncd/community/blob/main/roadmap.md#2021-roadmap (there are more).

@lbernick
Copy link
Member

/close

using project board for tracking

@tekton-robot
Copy link
Collaborator

@lbernick: Closing this issue.

In response to this:

/close

using project board for tracking

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.

@vdemeester
Copy link
Member Author

BTW, I just thought to mention here that the various Tekton Roadmaps are all still listed as "2021 Roadmaps" such as https:/tektoncd/pipeline/blob/main/roadmap.md and https:/tektoncd/community/blob/main/roadmap.md#2021-roadmap (there are more).

Yeah we need to refine those.

@jerop
Copy link
Member

jerop commented Aug 23, 2022

@StevenACoffman @vdemeester moved those roadmap items into a project view so that it's live: https:/orgs/tektoncd/projects/16/views/15

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/epic Issues that should be considered as Epics (aka multiple sub-tasks, …) area/roadmap Issues that are part of the project (or organization) roadmap (usually an epic) kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Projects
Status: Done
Development

No branches or pull requests

9 participants