Skip to content

Commit f1020b8

Browse files
authored
Merge pull request kubernetes#2830 from robscott/gateway-api-k8s-io
KEP-2829: Formalize Gateway API transition to k8s.io group
2 parents e5d73e9 + 06e1a53 commit f1020b8

File tree

3 files changed

+191
-0
lines changed

3 files changed

+191
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
kep-number: 2829
2+
alpha:
3+
approver: "@johnbelamaric"
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
# KEP-2829: Migrate Gateway API to k8s.io Group
2+
3+
<!-- toc -->
4+
- [Summary](#summary)
5+
- [Motivation](#motivation)
6+
- [Goals](#goals)
7+
- [Proposal](#proposal)
8+
- [Risks and Mitigations](#risks-and-mitigations)
9+
- [Design Details](#design-details)
10+
- [Graduation Criteria](#graduation-criteria)
11+
- [Alpha](#alpha)
12+
- [Beta](#beta)
13+
- [Production Readiness Review Questionnaire](#production-readiness-review-questionnaire)
14+
- [Feature Enablement and Rollback](#feature-enablement-and-rollback)
15+
- [Rollout, Upgrade and Rollback Planning](#rollout-upgrade-and-rollback-planning)
16+
- [Monitoring Requirements](#monitoring-requirements)
17+
- [Dependencies](#dependencies)
18+
- [Implementation History](#implementation-history)
19+
- [Drawbacks](#drawbacks)
20+
- [Alternatives](#alternatives)
21+
<!-- /toc -->
22+
23+
## Summary
24+
25+
*Note: This KEP is primarily for tracking purposes. The code for this feature is
26+
all out-of-tree, but the using the k8s.io API group requires API review. Most
27+
sections of this KEP will be marked as not applicable.*
28+
29+
This KEP aims to transition [Gateway API](https://gateway-api.sigs.k8s.io) from
30+
an experimental API (x-k8s.io) to an official one (k8s.io) as part of the
31+
v1alpha2 release. The APIs will continue to be represented as CRDs, but will be
32+
subject to the standard [Kubernetes API review
33+
process](https://github.com/kubernetes/community/blob/master/sig-architecture/api-review-process.md).
34+
35+
## Motivation
36+
37+
Although Gateway API started as an experimental API, we are preparing a v1alpha2
38+
release that we believe will be a significant step towards stabilizing the API.
39+
The number of [implementations of the
40+
API](https://gateway-api.sigs.k8s.io/references/implementations/) continues to
41+
grow, and we believe that transitioning to an official Kubernetes API will help
42+
provide greater quality and stability going forward.
43+
44+
### Goals
45+
46+
* Formalize transition of Gateway API from x-k8s.io API group to k8s.io.
47+
* Organize full Kubernetes API reviews as part of the transition.
48+
49+
## Proposal
50+
51+
This is a large API, it would not be practical to include it within this KEP.
52+
Instead, the API review process will happen through a separate PR or set of PRs
53+
on the [Gateway API repo](https://github.com/kubernetes-sigs/gateway-api).
54+
Subproject maintainers will review PRs and API-changes on a per patch basis,
55+
while upstream k8s api-reviewers will review API changes on a release by release
56+
basis. In addition to this, subproject maintainers could involve k8s
57+
api-reviewers on a case-by-case as needed.
58+
59+
### Risks and Mitigations
60+
61+
N/A
62+
63+
## Design Details
64+
65+
N/A
66+
67+
### Graduation Criteria
68+
69+
#### Alpha
70+
71+
- Approval from subproject owners + KEP reviewers
72+
73+
#### Beta
74+
75+
- v1alpha2 APIs are implemented by several implementations
76+
- Approval from subproject owners + KEP reviewers
77+
- Initial conformance tests are in place
78+
- Validating webhook for advanced validation
79+
- We know users of the API are deploying apps with this API and exercising most
80+
of the API surface
81+
82+
## Production Readiness Review Questionnaire
83+
84+
### Feature Enablement and Rollback
85+
86+
###### How can this feature be enabled / disabled in a live cluster?
87+
88+
N/A
89+
90+
###### Does enabling the feature change any default behavior?
91+
92+
No
93+
94+
###### Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?
95+
96+
N/A
97+
98+
###### What happens if we reenable the feature if it was previously rolled back?
99+
100+
N/A
101+
102+
###### Are there any tests for feature enablement/disablement?
103+
104+
N/A
105+
106+
### Rollout, Upgrade and Rollback Planning
107+
108+
###### How can a rollout or rollback fail? Can it impact already running workloads?
109+
110+
N/A
111+
112+
###### What specific metrics should inform a rollback?
113+
114+
N/A
115+
116+
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
117+
118+
N/A
119+
120+
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
121+
122+
No
123+
124+
### Monitoring Requirements
125+
126+
###### How can an operator determine if the feature is in use by workloads?
127+
128+
N/A
129+
130+
###### How can someone using this feature know that it is working for their instance?
131+
132+
N/A
133+
134+
###### What are the reasonable SLOs (Service Level Objectives) for the enhancement?
135+
136+
N/A
137+
138+
###### What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?
139+
140+
N/A
141+
142+
###### Are there any missing metrics that would be useful to have to improve observability of this feature?
143+
144+
N/A
145+
146+
### Dependencies
147+
148+
###### Does this feature depend on any specific services running in the cluster?
149+
150+
No
151+
152+
## Implementation History
153+
154+
* November 2020 - [email protected] released
155+
* February 2021 - [email protected] released
156+
* April 2021 - [email protected] released
157+
158+
## Drawbacks
159+
160+
Transitioning to a new API group will mean that resources in each group will be
161+
entirely unique. If users have both new and old APIs installed, even a simple
162+
operation like `kubectl get gateway` would only return results from one of the
163+
installed API groups. This is unfortunate, but represents a reason to make this
164+
change before the API becomes more stable and has a larger userbase.
165+
166+
## Alternatives
167+
168+
This API could stay as an experimental API indefinitely, but that would be very
169+
confusing for users.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
title: Migrate Gateway API to k8s.io Group
2+
kep-number: 2829
3+
authors:
4+
- "@robscott"
5+
owning-sig: sig-network
6+
status: implementable
7+
creation-date: 2021-07-20
8+
reviewers:
9+
- "@andrewsykim"
10+
- "@danwinship"
11+
- "@khenidak"
12+
- "@bowei"
13+
- "@hbagdi"
14+
- "@jpeach"
15+
approvers:
16+
- "@thockin"
17+
18+
# The target maturity stage in the current dev cycle for this KEP.
19+
stage: alpha

0 commit comments

Comments
 (0)