-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
prow: core: one CRD Spec field fulfilled by many controllers makes Status muddy #6852
Comments
xref: #6853 ? |
Yeah that PR just made it worse :| |
You would have to sync with @kubernetes/sig-api-machinery-misc on whether this is a sane thing to do. In the meantime, I would prefer to see us extending status via annotations (status updates that include annotations updates are acceptable; see kubernetes/kubernetes#20978). |
I talked with David, his thoughts were, as I remember them:
If we have to parse out data/json from annotations we're in a worse spot than |
I don't think we will need to put JSON in an annotation. This definitely depends on the target agent API but at least in the case of Jenkins, all we need is an extra string. Do we expect something different in the case of CircleCI? If we can get away with a couple of annotations, it is going to be much simpler than requiring separate CRDs per agent or doing raw extensions. Also, on the separate CRD comment, I think it's unlike we will ever have a separate top-level CRD in prow, because then you would have to make every prow component pluggable, whereas today you only need to provide an agent operator and stuff like hook or horologium work ootb. Maybe we can have children CRDs that use owner references to link back to ProwJobs but again at least in the Jenkins case, we don't really need them. |
Agreed -- the simplest solution by far is still to have one |
That's why I prefer annotations over disjoint fields. It's a cleaner solution and it promotes a pattern for building controllers out of tree, even though I think it's nice to keep all implementations in test-infra for discoverability. We rarely break fields and I am not worried about compatibility with annotations. That being said, I am not crazy about it, the current approach works. |
Yeah, just feels bad to stringly type by indexing into an annotations map. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle stale |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle stale |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
@fejta-bot: Closing this issue. In response to this:
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. |
/reopen |
@stevekuznetsov: Reopened this issue. In response to this:
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. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
@fejta-bot: Closing this issue. In response to this:
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. |
Right now we have been kind of shoving k8s Pod concepts into the Jenkins operator and it's showing in the
ProwJob.Status
fields. TheProwJob.Satus.PodName
is just a nonsense field for ProwJobs fulfilled by Jenkins job builds; theProwJob.Status.BuildID
for pods is prescriptive from Prow (throughtot
) whereas the same field for Jenkins builds is observational (from Jenkins). We could use someRawExtension
magic to keep some part of theProwJob.Status
extensible for whatever controller is fulfilling the specific ProwJob, or we need to think about some other structure. The current status is not going to look nice when we work on implementing the CircleCI controller./cc @Kargakis @cjwagner @BenTheElder @fejta @spxtr
/area prow
/kind bug
/kind question
The text was updated successfully, but these errors were encountered: