-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Make Tasks/TaskRuns PodSpecable #2327
Comments
Can you elaborate how you imagine this looking in a Task spec? And what using this would unlock for Tekton users/integrators? One possible wrinkle is that we've actually added fields beyond what the Also, there are PodSpec and Container fields we don't intend to support and would like to disallow (e.g., we don't let steps specify |
Extensions to the spec should be fine since everything is done via If you look at the K8s app resources this second part is sort of true there as well, but less in terms of field validation and more in terms of enum arity. Take for example The most obvious example of value this provides is environmental auth bindings, which can handle augmenting the runtime environment with authentication information. To pick a few examples just in this domain:
I could also see this being used to connect tasks to auditing systems when used in production contexts, but not when running in development contexts[1]. I'd like to see this shape how we handle Observability in general, which is typically a highly context-sensitive endeavor. If I had to tl;dr the goal of Bindings, it lets us separate (possibly context-sensitive) business logic from the context, and let Bindings re-infuse that context based on the environment it runs in. [1] - This is a corollary to the canonical service-side example of connecting to the prod database in prod, and non-prod elsewhere. |
Just to note: we've actively discussed getting away from containers / PodSpec / kubernetes-isms in several issues.
So maybe this could be something we do but we'd also like the option to not be tied to the Pod Spec (I think?). |
I don't want to launch into an "extensibility" debate here, but moving away from PodSpec-like things because you want to support non-Pod-based tasks feels like you are sorely missing an extensibility story (which is IMO a key ingredient of the incumbent's meteoric success). Please embrace extensibility over "kitchen sink" resources 🙏 |
My reading of this issue is that it's squarely aimed at changing Tekton's default Task shape to adhere more closely to PodSpec. We've specifically pushed back against this in the past and it's worth keeping that context in mind when a change like this is being discussed. It's a mis-characterization to suggest that doing so argues one way or the other on the question of extensibility. It's possible for both of these things to be true: Tekton's Task shape should not be constrained or tied to PodSpec AND we should introduce extensibility such that users who want a type that adheres closely to PodSpec are well-catered for. |
Issues go stale after 90d of inactivity. /lifecycle stale Send feedback to tektoncd/plumbing. |
Stale issues rot after 30d of inactivity. /lifecycle rotten Send feedback to tektoncd/plumbing. |
This is bound to be contentious because it's a disruptive change, but it's more tolerable with the emergence of Conversion webhooks. 🎉
In Knative, we have been exploring the idea of Bindings as a way to project information into "Pod Specable" things. We in fact adjusted our own Serving resource shapes to align with this shape in our own path to "v1".
The basic idea is that if the core resource adheres to the following shape, then we can apply a common class of applications to it.
Today, I can apply these bindings to Jobs, which I have found immensely useful, but it pains me that I can't use these with Tekton Task[Run]s. 😭
One of the really nice things about Bindings is that they decouple things in ways that allow you to ship more reusable applications (in this case Tasks) that are bound when they are installed into a particular context (e.g. cluster / namespace).
I'd be happy to discuss the benefits / pitfalls of this, but it's an area that I feel has a ton of potential, and so I wanted to seed a convo here.
The text was updated successfully, but these errors were encountered: