-
Notifications
You must be signed in to change notification settings - Fork 222
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
TEP-0071: Custom Task SDK. #461
Conversation
/assign |
/assign @afrittoli |
date example. | ||
3. Presently, `tektoncd` does not manage the life cycle of a custom task at all. | ||
A SDK can open up newer possibilities in this regard. | ||
4. SDK available as a project template, can perform some of common tasks, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
3. Presently, `tektoncd` does not manage the life cycle of a custom task at all. | ||
A SDK can open up newer possibilities in this regard. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed - we do create nightly builds, but that's about it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for opening this @ScrapCodes (and apologies for my slow time to review 😬 ). I added a couple of comments, mostly just brainstorming some stuff to flesh out the proposal but generally very in favor!!
/approve
teps/0071-custom-task-sdk.md
Outdated
## Motivation | ||
|
||
1. Currently, a custom task author has limited ways to know what is a standard way | ||
of building his custom task. His best bet is to explore one of the existing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: possible to use gender neutral "they/them/their" instead of "he/him/his"? (same applies in other parts of this doc as well)
(im planning to put some recommendations around this into our standards docs eventually :))
teps/0071-custom-task-sdk.md
Outdated
|
||
### Non-Goals | ||
|
||
TBD. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ideas:
- providing SDKs in languages other than Go
- providing a generic CRD controller lib
Question: would this project involve us creating an maintaining any libraries for this, or would the intention at this point be just boiler plate that folks copy and paste? (either makes sense to me - im thinking it would be simplest to start with boilerplate and think about adding libs later, since libs will require their own maintenance?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I agree. Starting with the boiler plate and then moving towards libs. Disadvantage with boiler plate is, every time we update it, the end users may not get the update. Or the update can be at times non trivial change.
Describe constraints on the solution that must be met. Examples might include | ||
performance characteristics that must be met, specific edge cases that must | ||
be handled, or user scenarios that will be affected and must be accomodated. | ||
--> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ideas:
- A user should be able to fork the SDK and and run it with no modifications required (e.g. it provides a working sample out of the box)
- We version the SDK (i think? or maybe not?)
- We could list everything the sample should include, e.g.: working controller, example configuration (built with ko?), docs, tests (unit and integration maybe? maybe system tests too)
It also might be worth describing in detail what the behavior of the example custom task would be (but np if we want to add that as we go)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bobcatfish these are great ideas, I was thinking, maybe I can add them in the proposal step.
Thank you very much for taking a look.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this @ScrapCodes
/approve
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: afrittoli, bobcatfish, 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:
Approvers can indicate their approval by writing |
adding lgtm during the API WG, thank you everyone! 🥳 /lgtm |
Thank you @afrittoli and @jerop 😃 |
Summary
A Custom Task SDK will make the work of custom task author easier and will offer standard way to implement custom task controllers. While adhering to current separation of concern between a custom task controller's role and tektoncd owned controller's role, it should make custom tasks easier to manage and reason by tektoncd.
/kind tep
Please vote: #459