-
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
Owning our *Container* spec #4737
Comments
I have a limited understanding of the downside here (because of a limited knowledge of Anyways, I like the idea of having our own |
/cc @lbernick pinging Lee here since we had a similar discussion two weeks back to introduce our own custom |
I like the idea of owning our own container spec since it could help with issues like #4080. I think we could make this change without breaking existing working yamls but it would break the go client libraries. Priti pointed out that there is precedence for breaking go libraries w/out breaking yamls in #2826. I don't think we should remove the container fields that can't be implemented in buildkit since users may be depending on them, and our API spec doc states that those fields aren't required for tekton conformance. I know what duck typing is but I don't quite understand what you're saying about it here, could you elaborate? |
I swear there was an issue for this, related to changes we wanted to make before v1, but I can't find it. In any case, strong +1 from me. Fully owning the
If this is a concern, we might want to recommend that Knative limits and owns its own |
This is however why I tend to want to own our Container spec, to shrink it to remove all the things that are not useful for a Task container. The fact that
I was thinking specifically about : https://github.com/knative/pkg/blob/main/apis/duck/v1/podspec_types.go, but it turns out, today's |
It looks like we haven't defined a compatibility policy for our go libs (#2748) but if we decide we're ok with a breaking change to the libraries we could probably just swap to our own struct without waiting for v1 (removing the fields you're mentioning would ofc be a breaking change to the API though). I would agree that fields like LivenessProbe probably aren't relevant to tekton. |
Right, we can either do this for |
I vote for implementing this in |
/assign @lbernick |
I was thinking we could leave it open to track marking the unnecessary fields as deprecated? |
sounds good 👍🏼 |
@pierretasci mentioned that some tools like maven behave differently depending on whether or not there is a tty attached to the container. I still would like to understand this a bit better but should we consider bringing TTY back into the step definition? |
Feature request
As of today, the
TaskSpec
Step is embedding the k8s "upstream"Container
spec. The "possible" idea here would be to migrate to owning / defining our ownContainer
spec instead. This would allow to control some of the "leaks* that comes from k8s in our types. For example, in thebuildkit-tekton
experimentation, there is a few fields of theContainer
struct we silently ignore because they don't make sense in a "CI" workflow type.In addition it would make it "cleaner" on openapi schema generation (because we don't get all the fields).
One possible downside might be "duck typing" as, now, the
Task
spec might not be as "PodSpecable" that it could.If we want to go that way, we should do it before
v1
, otherwise, we can ignore that issue 😛./cc @tektoncd/core-maintainers @mattmoor
Use case
N/A, it's more a "technical" feature request / open question/discussion
The text was updated successfully, but these errors were encountered: