Skip to content

Conversation

aaron-prindle
Copy link

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

@k8s-ci-robot k8s-ci-robot requested a review from jpbetz June 25, 2025 02:32
@k8s-ci-robot k8s-ci-robot added sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. sig/cli Categorizes an issue or PR as relevant to SIG CLI. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Jun 25, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: aaron-prindle
Once this PR has been reviewed and has the lgtm label, please assign jberkus for approval. For more information see the Code Review Process.

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Jun 25, 2025
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 25, 2025
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 25, 2025
@aaron-prindle aaron-prindle force-pushed the wg-api-expression branch 2 times, most recently from d2690f9 to 57bcdc5 Compare June 25, 2025 17:01
@soltysh
Copy link
Contributor

soltysh commented Jul 28, 2025

/committee steering

@k8s-ci-robot k8s-ci-robot added committee/steering Denotes an issue or PR intended to be handled by the steering committee. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Jul 28, 2025
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 29, 2025
contact:
slack: wg-api-expression
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression
liaison:
Copy link
Member

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

Copy link
Member

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]

Copy link
Contributor

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.

Copy link
Member

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

Copy link
Author

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.

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 5, 2025
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 6, 2025
Copy link
Member

@BenTheElder BenTheElder left a 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

@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Aug 12, 2025
@aaron-prindle
Copy link
Author

aaron-prindle commented Aug 12, 2025

Missing charter.md to outline scope and exit criteria.

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

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 13, 2025
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 13, 2025
#### 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
Copy link
Member

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?

Copy link
Contributor

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
Copy link
Member

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)
Copy link
Contributor

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.

Copy link
Contributor

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
Copy link
Contributor

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.

Copy link
Contributor

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
Copy link
Contributor

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?

- **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
Copy link
Contributor

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?

Copy link
Author

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 of PodSpec'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
Copy link
Contributor

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: >
Copy link
Contributor

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.

@@ -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)
Copy link
Contributor

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).
Copy link
Contributor

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.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still holds.

Copy link
Contributor

@soltysh soltysh left a 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).
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor

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?

@aaron-prindle
Copy link
Author

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.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. committee/steering Denotes an issue or PR intended to be handled by the steering committee. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. sig/cli Categorizes an issue or PR as relevant to SIG CLI. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants