Skip to content

Commit 6cf3a43

Browse files
committed
chore: update sigs.yaml to have entry for wg-api-expression
1 parent fb2f95f commit 6cf3a43

File tree

9 files changed

+163
-0
lines changed

9 files changed

+163
-0
lines changed

OWNERS_ALIASES

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,9 @@ aliases:
134134
- ardaguclu
135135
- rushmash91
136136
- zvonkok
137+
wg-api-expression-leads:
138+
- JoelSpeed
139+
- aaron-prindle
137140
wg-batch-leads:
138141
- kannon92
139142
- mwielgus

liaisons.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ members will assume one of the departing members groups.
5656
| [SIG Windows](sig-windows/README.md) | Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**) |
5757
| [WG AI Conformance](wg-ai-conformance/README.md) | Patrick Ohly (**[@pohly](https://github.com/pohly)**) |
5858
| [WG AI Integration](wg-ai-integration/README.md) | Paco Xu 徐俊杰 (**[@pacoxu](https://github.com/pacoxu)**) |
59+
| [WG API Expression](wg-api-expression/README.md) | Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**) |
5960
| [WG Batch](wg-batch/README.md) | Antonio Ojea (**[@aojea](https://github.com/aojea)**) |
6061
| [WG Data Protection](wg-data-protection/README.md) | Patrick Ohly (**[@pohly](https://github.com/pohly)**) |
6162
| [WG Device Management](wg-device-management/README.md) | Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**) |

sig-api-machinery/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ subprojects, and resolve cross-subproject technical issues and decisions.
5555

5656
The following [working groups][working-group-definition] are sponsored by sig-api-machinery:
5757
* [WG AI Integration](/wg-ai-integration)
58+
* [WG API Expression](/wg-api-expression)
5859
* [WG Structured Logging](/wg-structured-logging)
5960

6061

sig-architecture/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ The Chairs of the SIG run operations and processes governing the SIG.
5858
The following [working groups][working-group-definition] are sponsored by sig-architecture:
5959
* [WG AI Conformance](/wg-ai-conformance)
6060
* [WG AI Integration](/wg-ai-integration)
61+
* [WG API Expression](/wg-api-expression)
6162
* [WG Device Management](/wg-device-management)
6263
* [WG LTS](/wg-lts)
6364
* [WG Serving](/wg-serving)

sig-cli/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ subprojects, and resolve cross-subproject technical issues and decisions.
6464

6565
The following [working groups][working-group-definition] are sponsored by sig-cli:
6666
* [WG AI Integration](/wg-ai-integration)
67+
* [WG API Expression](/wg-api-expression)
6768
* [WG Node Lifecycle](/wg-node-lifecycle)
6869

6970

sig-list.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ When the need arises, a [new SIG can be created](sig-wg-lifecycle.md)
6363
|------|-------|------------------|-----------|---------|----------|
6464
|[AI Conformance](wg-ai-conformance/README.md)|[ai-conformance](https://github.com/kubernetes/kubernetes/labels/wg%2Fai-conformance)|* Architecture<br>* Testing<br>|* [Janet Kuo](https://github.com/janetkuo), Google<br>* [Mario Fahlandt](https://github.com/mfahlandt), Kubermatic GmbH<br>* [Rita Zhang](https://github.com/ritazh), Microsoft<br>* [Yuan Tang](https://github.com/terrytangyuan), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/wg-ai-conformance)<br>* [Mailing List](https://groups.google.com/a/kubernetes.io/g/wg-ai-conformance)|* Regular WG Meeting: [Thursdays at 10:00 PT (Pacific Time) (weekly)]()<br>
6565
|[AI Integration](wg-ai-integration/README.md)|[ai-integration](https://github.com/kubernetes/kubernetes/labels/wg%2Fai-integration)|* API Machinery<br>* Apps<br>* Architecture<br>* Auth<br>* CLI<br>|* [Arda Guclu](https://github.com/ardaguclu), Red Hat<br>* [Arush Sharma](https://github.com/rushmash91), Amazon<br>* [Zvonko Kaiser](https://github.com/zvonkok), NVIDIA<br>|* [Slack](https://kubernetes.slack.com/messages/wg-ai-integration)<br>* [Mailing List](https://groups.google.com/a/kubernetes.io/g/wg-ai-integration)|* WG AI Integration Weekly Meeting: [Wednesdays at 10:00 PT (Pacific Time) (weekly)]()<br>
66+
|[API Expression](wg-api-expression/README.md)|[api-expression](https://github.com/kubernetes/kubernetes/labels/wg%2Fapi-expression)|* API Machinery<br>* Architecture<br>* CLI<br>|* [Joel Speed](https://github.com/JoelSpeed), Red Hat<br>* [Aaron Prindle](https://github.com/aaron-prindle), Google<br>|* [Slack](https://kubernetes.slack.com/messages/wg-api-expression)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression)|* Regular WG Meeting: [Tuesdays at 9:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/94238112084)<br>
6667
|[Batch](wg-batch/README.md)|[batch](https://github.com/kubernetes/kubernetes/labels/wg%2Fbatch)|* Apps<br>* Autoscaling<br>* Node<br>* Scheduling<br>|* [Kevin Hannon](https://github.com/kannon92), Red Hat<br>* [Marcin Wielgus](https://github.com/mwielgus), Google<br>* [Maciej Szulik](https://github.com/soltysh), Defense Unicorns<br>* [Swati Sehgal](https://github.com/swatisehgal), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/wg-batch)<br>* [Mailing List](https://groups.google.com/a/kubernetes.io/g/wg-batch)|* Regular Meeting ([calendar](https://calendar.google.com/calendar/embed?src=8ulop9k0jfpuo0t7kp8d9ubtj4%40group.calendar.google.com)): [Thursdays (starting February 15th 2024)s at 3PM CET (Central European Time) (monthly)](https://zoom.us/j/98329676612?pwd=c0N2bVV1aTh2VzltckdXSitaZXBKQT09)<br>
6768
|[Data Protection](wg-data-protection/README.md)|[data-protection](https://github.com/kubernetes/kubernetes/labels/wg%2Fdata-protection)|* Apps<br>* Storage<br>|* [Xing Yang](https://github.com/xing-yang), VMware<br>* [Xiangqian Yu](https://github.com/yuxiangqian), Google<br>|* [Slack](https://kubernetes.slack.com/messages/wg-data-protection)<br>* [Mailing List](https://groups.google.com/a/kubernetes.io/g/wg-data-protection)|* Regular WG Meeting: [Wednesdays at 9:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/6933410772)<br>
6869
|[Device Management](wg-device-management/README.md)|[device-management](https://github.com/kubernetes/kubernetes/labels/wg%2Fdevice-management)|* Architecture<br>* Autoscaling<br>* Network<br>* Node<br>* Scheduling<br>|* [John Belamaric](https://github.com/johnbelamaric), Google<br>* [Kevin Klues](https://github.com/klueska), NVIDIA<br>* [Patrick Ohly](https://github.com/pohly), Intel<br>|* [Slack](https://kubernetes.slack.com/messages/wg-device-management)<br>* [Mailing List](https://groups.google.com/a/kubernetes.io/g/wg-device-management)|* Regular WG Meeting (Asia/Europe): [Wednesdays at 9:00 CET (Central European Time) (biweekly)](https://zoom.us/j/97238699195?pwd=cy9IMm1ZeERtRlJ3VS8yWUxHUWIrQT09)<br>* Regular WG Meeting (Europe/America): [Tuesdays at 8:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/97238699195?pwd=cy9IMm1ZeERtRlJ3VS8yWUxHUWIrQT09)<br>

sigs.yaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3602,6 +3602,43 @@ workinggroups:
36023602
liaison:
36033603
github: pacoxu
36043604
name: Paco Xu 徐俊杰
3605+
- dir: wg-api-expression
3606+
name: API Expression
3607+
mission_statement: >
3608+
Enable API authors to better serve API consumers, by improving and documenting
3609+
all aspects of Kubernetes API development. Mission is for Kubernetes APIs to
3610+
be more declarative. [See full Mission Statement in Proposal](https://docs.google.com/document/d/1RxeKII-3ZESSGMKt09meSGhpDW6CyufM2v1SYgAh_uQ).
3611+
3612+
stakeholder_sigs:
3613+
- API Machinery
3614+
- Architecture
3615+
- CLI
3616+
label: api-expression
3617+
leadership:
3618+
chairs:
3619+
- github: JoelSpeed
3620+
name: Joel Speed
3621+
company: Red Hat
3622+
3623+
- github: aaron-prindle
3624+
name: Aaron Prindle
3625+
company: Google
3626+
3627+
meetings:
3628+
- description: Regular WG Meeting
3629+
day: Tuesday
3630+
time: "9:30"
3631+
tz: PT (Pacific Time)
3632+
frequency: biweekly
3633+
url: https://zoom.us/j/94238112084
3634+
archive_url: https://docs.google.com/document/d/1CSpNaicbEqKJoW306qaQEBIkwC1mGIcKl3yiB_C0HZk
3635+
recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP0CU9g6-yb1NgZXGAhMxfFE&jct=9Leh8O_yrRTB0Kcv3rMKZHncZq8POg
3636+
contact:
3637+
slack: wg-api-expression
3638+
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression
3639+
liaison:
3640+
github: BenTheElder
3641+
name: Benjamin Elder
36053642
- dir: wg-batch
36063643
name: Batch
36073644
mission_statement: >

wg-api-expression/README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<!---
2+
This is an autogenerated file!
3+
4+
Please do not edit this file directly, but instead make changes to the
5+
sigs.yaml file in the project root.
6+
7+
To understand how this file is generated, see https://git.k8s.io/community/generator/README.md
8+
--->
9+
# API Expression Working Group
10+
11+
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).
12+
13+
## Stakeholder SIGs
14+
* [SIG API Machinery](/sig-api-machinery)
15+
* [SIG Architecture](/sig-architecture)
16+
* [SIG CLI](/sig-cli)
17+
18+
## Meetings
19+
*Joining the [mailing list](https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression) for the group will typically add invites for the following meetings to your calendar.*
20+
* Regular WG Meeting: [Tuesdays at 9:30 PT (Pacific Time)](https://zoom.us/j/94238112084) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=9%3A30&tz=PT%20%28Pacific%20Time%29).
21+
* [Meeting notes and Agenda](https://docs.google.com/document/d/1CSpNaicbEqKJoW306qaQEBIkwC1mGIcKl3yiB_C0HZk).
22+
* [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP0CU9g6-yb1NgZXGAhMxfFE&jct=9Leh8O_yrRTB0Kcv3rMKZHncZq8POg).
23+
24+
## Organizers
25+
26+
* Joel Speed (**[@JoelSpeed](https://github.com/JoelSpeed)**), Red Hat
27+
* Aaron Prindle (**[@aaron-prindle](https://github.com/aaron-prindle)**), Google
28+
29+
## Contact
30+
- Slack: [#wg-api-expression](https://kubernetes.slack.com/messages/wg-api-expression)
31+
- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression)
32+
- [Open Community Issues/PRs](https://github.com/kubernetes/community/labels/wg%2Fapi-expression)
33+
- Steering Committee Liaison: Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**)
34+
<!-- BEGIN CUSTOM CONTENT -->
35+
36+
<!-- END CUSTOM CONTENT -->

wg-api-expression/charter.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# WG API Expression Charter
2+
3+
This charter adheres to the conventions described in the [Kubernetes Charter README] and uses
4+
the Roles and Organization Management outlined in [sig-governance].
5+
6+
## Scope
7+
8+
Enable declarative expression of Kubernetes APIs (metadata, validation rules, etc.) to replace imperative, handwritten logic. This working group focuses on developing frameworks and tools that allow API authors to express API rules declaratively as part of the schema itself, improving development velocity, consistency, and maintainability across both native Kubernetes types and CRDs.
9+
10+
### In scope
11+
12+
#### Code, Binaries and Services
13+
14+
- Declarative validation code generator (validation-gen) that generates Go validation code from declarative tags in API type definitions
15+
- Kube API Linter (KAL) for checking API types against Kubernetes API Conventions and best practices
16+
- Integration frameworks between declarative tools (validation-gen, kubebuilder, KAL, and other API tools)
17+
- Libraries and components for type discovery and declarative API expression that can be reused across code generators
18+
- Tools and processes for generating CEL or OpenAPI validation rules from declarative tags
19+
- Documentation generation tools that create API documentation from declarative expressions
20+
21+
#### Cross-cutting and Externally Facing Processes
22+
23+
- Development and maintenance of KEPs for declarative API expression features (eg: KEP-5073 Declarative Validation)
24+
- Migration strategies and guides for SIGs to adopt the declarative framework
25+
- Establishing patterns for ratcheting, validation, defaulting, and immutability expressed declaratively
26+
- Ensuring consistency between Kubernetes native types and CRD validation experiences
27+
- Automated API quality checks and linting processes integrated into the standard API review workflow
28+
29+
### Out of scope
30+
31+
- General API design decisions unrelated to declarative expression
32+
- Runtime validation logic that cannot be expressed declaratively
33+
34+
## Deliverables
35+
36+
The working group will deliver:
37+
38+
- **validation-gen code generator**: Core tool for generating Go validation code from declarative tags
39+
- **Kube API Linter (KAL)**: Automated API convention checker integrated into the review process
40+
- **Integration strategy**: Cohesive approach for integrating validation-gen, kubebuilder, KAL, and other tools
41+
- **KEPs**: Series of enhancement proposals introducing and evolving the framework
42+
- **CRD equivalence strategy**: Plan to bridge the gap between native types and CRDs
43+
- **Documentation generation strategy**: Automated documentation from declarative API expressions
44+
- **Migration guides**: Documentation for SIGs to adopt the framework and migrate existing APIs
45+
46+
## Stakeholders
47+
48+
- **SIG API Machinery**: Owner of API server, gengo, kube-openapi, and validation-gen tool
49+
- **SIG Architecture**: Owner of Kubernetes API conventions and architectural decisions
50+
- **SIG CLI**: Consumer of more expressive APIs, providing feedback on kubectl interaction and user experience
51+
52+
## Roles and Organization Management
53+
54+
This sig adheres to the Roles and Organization Management outlined in [sig-governance]
55+
and opts-in to updates and modifications to [sig-governance].
56+
57+
### Meeting Mechanics
58+
59+
- **Frequency**: Bi-weekly (every 2 weeks)
60+
- **Duration**: 60 minutes
61+
- **Communication**:
62+
- Slack: #wg-api-expression
63+
- Mailing List: [email protected]
64+
65+
### Chairs
66+
67+
- Aaron Prindle (@aaron-prindle)
68+
- Joel Speed (@JoelSpeed)
69+
70+
## Exit Criteria
71+
72+
The working group will have fulfilled its charter and can be disbanded when:
73+
74+
1. The core framework, including validation-gen and associated libraries, is stable and integrated into the main Kubernetes development workflow
75+
2. Foundational KEPs (e.g., Declarative Validation) are implemented and graduated to GA
76+
3. Kube API Linter (KAL) is mature, widely adopted, and integrated into the standard API development and review process
77+
4. A clear, documented process exists for SIGs to migrate existing types and use the framework, with successful migrations of key types (eg: PodSpec) demonstrating the process
78+
5. Ongoing maintenance of the framework has been successfully transitioned to owner SIGs, primarily SIG API Machinery
79+
80+
[sig-governance]: https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md
81+
[sig-subprojects]: https://github.com/kubernetes/community/blob/master/sig-YOURSIG/README.md#subprojects
82+
[Kubernetes Charter README]: https://github.com/kubernetes/community/blob/master/committee-steering/governance/README.md

0 commit comments

Comments
 (0)