-
Notifications
You must be signed in to change notification settings - Fork 5.3k
WG API Expression Proposal #8503
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
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: aaron-prindle The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
1dac944
to
6005bf5
Compare
6005bf5
to
5a1417a
Compare
d2690f9
to
57bcdc5
Compare
/committee steering |
57bcdc5
to
5fb01df
Compare
5fb01df
to
10a3afe
Compare
contact: | ||
slack: wg-api-expression | ||
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression | ||
liaison: |
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.
TODO: steering will loadbalance a liason
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.
[still todo, raised this again with steering-private]
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.
I can be the liaison for this WG.
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.
I believe this will be @pohly
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.
Great, thanks @pohly! I have updated the liaison information here now.
10a3afe
to
8ce24be
Compare
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.
Missing charter.md to outline scope and exit criteria.
Also curious, is this a permanent problem space like Code Organization Subproject of SIG Arch, or a scoped effort that will conclude? If it's the former a SIG API Machinery Subproject + subproject meeting might be a better fit. If the latter, we need a charter to clarify it.
Pushing charter.md should auto-assign steering for review and label the PR etc.
e.g. https://github.com/kubernetes/community/blob/master/wg-device-management/charter.md
8ce24be
to
8504677
Compare
Oof, my mistake thanks for pointing this out. I've updated the PR here to have the completed charter.md file now for WG API Expression |
8504677
to
6cf3a43
Compare
#### Code, Binaries and Services | ||
|
||
- Declarative validation code generator (validation-gen) that generates Go validation code from declarative tags in API type definitions | ||
- Kube API Linter (KAL) for checking API types against Kubernetes API Conventions and best practices |
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.
This is an ongoing subproject, not a workgroup deliverable?
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.
IIUC the declarative validation code generator is also ongoing work right?
The working group will deliver: | ||
|
||
- **validation-gen code generator**: Core tool for generating Go validation code from declarative tags | ||
- **Kube API Linter (KAL)**: Automated API convention checker integrated into the review process |
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.
These first two don't seem like workgroup deliverables, they're existing subprojects, and there's no specific targeted improvements to them.
@@ -64,6 +64,7 @@ subprojects, and resolve cross-subproject technical issues and decisions. | |||
|
|||
The following [working groups][working-group-definition] are sponsored by sig-cli: | |||
* [WG AI Integration](/wg-ai-integration) | |||
* [WG API Expression](/wg-api-expression) |
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.
Speaking on behalf of SIG-CLI, I haven't seen anywhere (slack, mailing list, meeting) any information about this particular WG and us being asked to sponsor 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.
Looking at https://github.com/kubernetes/community/blob/master/committee-steering/governance/wg-governance.md it's not explicitly stated that a WG must have more than one sponsoring SIG. Would it be okay to drop SIG CLI here if there's no clear connection?
That then still leave apimachinery and architecture, plus potentially participants from non-Kubernetes projects.
recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP0CU9g6-yb1NgZXGAhMxfFE&jct=9Leh8O_yrRTB0Kcv3rMKZHncZq8POg | ||
contact: | ||
slack: wg-api-expression | ||
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression |
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.
I know you're reviving this group, but since then we've move to managed google groups. I think it'd be beneficial to start using the new ML address, rather the old one.
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.
This too.
#### Code, Binaries and Services | ||
|
||
- Declarative validation code generator (validation-gen) that generates Go validation code from declarative tags in API type definitions | ||
- Kube API Linter (KAL) for checking API types against Kubernetes API Conventions and best practices |
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.
IIUC the declarative validation code generator is also ongoing work right?
wg-api-expression/charter.md
Outdated
- **Kube API Linter (KAL)**: Automated API convention checker integrated into the review process | ||
- **Integration strategy**: Cohesive approach for integrating validation-gen, kubebuilder, KAL, and other tools | ||
- **KEPs**: Series of enhancement proposals introducing and evolving the framework | ||
- **CRD equivalence strategy**: Plan to bridge the gap between native types and CRDs |
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.
What is the gap that you're planning to bridge?
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.
I've updated the text here to explain the gap we are hoping to bridge:
- Native Type and CRD Validation Parity: Bridge the gap between how validation is implemented for native Kubernetes types and CRDs to unify the developer experience and improve APIs. This strategy includes:
- Establishing a declarative source of truth (eg: Go struct tags) for validation rules that can generate the validation methods needed for native types and the OpenAPI/CEL rules used by CRDs.
- Enable easier inheritance of validation logic when a CRD embeds a native type. For example, a CRD that includes a
corev1.PodSpec
should allow reuse ofPodSpec
's validation.
|
||
- **SIG API Machinery**: Owner of API server, gengo, kube-openapi, and validation-gen tool | ||
- **SIG Architecture**: Owner of Kubernetes API conventions and architectural decisions | ||
- **SIG CLI**: Consumer of more expressive APIs, providing feedback on kubectl interaction and user experience |
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.
Again, speaking for SIG-CLI, that part is not fully clear. Would you have time to show up on one of our meetings and explain to us better the idea behind it?
@@ -3602,6 +3602,43 @@ workinggroups: | |||
liaison: | |||
github: pacoxu | |||
name: Paco Xu 徐俊杰 | |||
- dir: wg-api-expression | |||
name: API Expression | |||
mission_statement: > |
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.
I'm inclined to suggest to move certain elements from the attached mission statement into the WG charter.
Co-authored-by: Maciej Szulik <[email protected]>
Co-authored-by: Maciej Szulik <[email protected]>
Co-authored-by: Maciej Szulik <[email protected]>
4f58902
to
bb8d470
Compare
bb8d470
to
7443dd5
Compare
@@ -64,6 +64,7 @@ subprojects, and resolve cross-subproject technical issues and decisions. | |||
|
|||
The following [working groups][working-group-definition] are sponsored by sig-cli: | |||
* [WG AI Integration](/wg-ai-integration) | |||
* [WG API Expression](/wg-api-expression) |
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.
Looking at https://github.com/kubernetes/community/blob/master/committee-steering/governance/wg-governance.md it's not explicitly stated that a WG must have more than one sponsoring SIG. Would it be okay to drop SIG CLI here if there's no clear connection?
That then still leave apimachinery and architecture, plus potentially participants from non-Kubernetes projects.
mission_statement: > | ||
Enable API authors to better serve API consumers, by improving and documenting | ||
all aspects of Kubernetes API development. Mission is for Kubernetes APIs to | ||
be more declarative. [See full Mission Statement in Proposal](https://docs.google.com/document/d/1RxeKII-3ZESSGMKt09meSGhpDW6CyufM2v1SYgAh_uQ). |
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.
Links to Google Docs are problematic (access permissions, content could change).
I agree with @soltysh, if there's content in that doc that is relevant for the WG, then it should be copied into this repo.
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.
This still holds.
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.
The remaining bits are:
- several unresolved/unanswered questions
- SIG sponsorship
mission_statement: > | ||
Enable API authors to better serve API consumers, by improving and documenting | ||
all aspects of Kubernetes API development. Mission is for Kubernetes APIs to | ||
be more declarative. [See full Mission Statement in Proposal](https://docs.google.com/document/d/1RxeKII-3ZESSGMKt09meSGhpDW6CyufM2v1SYgAh_uQ). |
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.
This still holds.
recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP0CU9g6-yb1NgZXGAhMxfFE&jct=9Leh8O_yrRTB0Kcv3rMKZHncZq8POg | ||
contact: | ||
slack: wg-api-expression | ||
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression |
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.
This too.
|
||
- **validation-gen code generator**: Core tool for generating Go validation code from declarative tags | ||
- **Kube API Linter (KAL)**: Automated API convention checker integrated into the review process | ||
- **Integration strategy**: Cohesive approach for integrating validation-gen, kubebuilder, KAL, and other tools |
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.
So this is just re-using existing sig-apimachnery sub-project, expanding its functionality with this single feature, do I understand that correctly?
From the conversations here I believe that SIG API Machinery Subproject + subproject meeting would be a better fit. I will close this proposal for now and work on setting up the SIG API Machinery Subproject + subproject meeting. Thanks for your time. |
Which issue(s) this PR fixes:
See the thread for context: https://groups.google.com/a/kubernetes.io/g/dev/c/VYRaUdf0Arc
/sig api-machinery
/sig architecture
/sig cli
/cc @jpbetz