Skip to content

Commit c005741

Browse files
authored
Merge pull request #5561 from adrianmoisey/kep-5311-beta
KEP-5311: Promote RelaxedServiceNameValidation to beta
2 parents ff0ab1f + eaffb3a commit c005741

File tree

3 files changed

+36
-62
lines changed

3 files changed

+36
-62
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
kep-number: 5311
22
alpha:
33
approver: "@soltysh"
4+
beta:
5+
approver: "@soltysh"

keps/sig-network/5311-relaxed-validation-for-service-names/README.md

Lines changed: 30 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
105105
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
106106
- [X] (R) Graduation criteria is in place
107107
- [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
108-
- [ ] (R) Production readiness review completed
108+
- [X] (R) Production readiness review completed
109109
- [ ] (R) Production readiness review approved
110110
- [X] "Implementation History" section is up-to-date for milestone
111111
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
@@ -192,51 +192,26 @@ Tests which validate Service creation/update and Ingress creation/update to be u
192192

193193
##### Integration tests
194194

195-
<!--
196-
Integration tests are contained in https://git.k8s.io/kubernetes/test/integration.
197-
Integration tests allow control of the configuration parameters used to start the binaries under test.
198-
This is different from e2e tests which do not allow configuration of parameters.
199-
Doing this allows testing non-default options and multiple different and potentially conflicting command line options.
200-
For more details, see https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/testing-strategy.md
201-
202-
If integration tests are not necessary or useful, explain why.
203-
-->
204-
205-
<!--
206-
This question should be filled when targeting a release.
207-
For Alpha, describe what tests will be added to ensure proper quality of the enhancement.
208-
209-
For Beta and GA, document that tests have been written,
210-
have been executed regularly, and have been stable.
211-
This can be done with:
212-
- permalinks to the GitHub source code
213-
- links to the periodic job (typically https://testgrid.k8s.io/sig-release-master-blocking#integration-master), filtered by the test name
214-
- a search in the Kubernetes bug triage tool (https://storage.googleapis.com/k8s-triage/index.html)
215-
-->
195+
**Alpha:**
216196

217197
1. With the feature gate enabled, test that Services can be created with both new and previous validation
218198
1. With the feature gate disabled, test that Services can be created with the previous validation, and fail when using the new validation
219199
1. Disable the feature gate and ensure that the Service can be edited without a validation error being returned
220200

201+
**Beta:**
202+
203+
Tests have been written: https://github.com/kubernetes/kubernetes/blob/v1.34.0/test/integration/service/service_test.go#L1219-L1309
204+
221205
##### e2e tests
222206

223-
<!--
224-
This question should be filled when targeting a release.
225-
For Alpha, describe what tests will be added to ensure proper quality of the enhancement.
226-
227-
For Beta and GA, document that tests have been written,
228-
have been executed regularly, and have been stable.
229-
This can be done with:
230-
- permalinks to the GitHub source code
231-
- links to the periodic job (typically a job owned by the SIG responsible for the feature), filtered by the test name
232-
- a search in the Kubernetes bug triage tool (https://storage.googleapis.com/k8s-triage/index.html)
233-
234-
We expect no non-infra related flakes in the last month as a GA graduation criteria.
235-
If e2e tests are not necessary or useful, explain why.
236-
-->
207+
**Alpha:**
237208

238209
- Create a Service that requires the new validation and test if a DNS lookup works for it
239210

211+
**Beta:**
212+
213+
An e2e exists: https://github.com/kubernetes/kubernetes/blob/v1.34.0/test/e2e/network/dns.go#L659-L686
214+
240215
### Graduation Criteria
241216

242217
#### Alpha
@@ -255,18 +230,6 @@ If e2e tests are not necessary or useful, explain why.
255230

256231
### Upgrade / Downgrade Strategy
257232

258-
<!--
259-
If applicable, how will the component be upgraded and downgraded? Make sure
260-
this is in the test plan.
261-
262-
Consider the following in developing an upgrade/downgrade strategy for this
263-
enhancement:
264-
- What changes (in invocations, configurations, API use, etc.) is an existing
265-
cluster required to make on upgrade, in order to maintain previous behavior?
266-
- What changes (in invocations, configurations, API use, etc.) is an existing
267-
cluster required to make on upgrade, in order to make use of the enhancement?
268-
-->
269-
270233
### Version Skew Strategy
271234

272235
Not applicable - only a single component is being changed.
@@ -318,18 +281,21 @@ probably need to delete them and recreate them with new names.
318281

319282
###### What specific metrics should inform a rollback?
320283

321-
There are no metrics that would inform anyone that the feature was
322-
failing, symptoms may include an increased level of failed Service creation.
323-
Since the feature is opt-in, individual users can simply
324-
stop using the feature if it is not working for them.
284+
The following metrics could indicate that this feature is failing:
285+
286+
1. `apiserver_request_total{code=500, version=v1, resource=service, verb=POST}`
287+
1. `apiserver_request_total{code=500, version=v1, resource=service, verb=PATCH}`
325288

326289
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
327290

328-
<!--
329-
Describe manual testing that was done and the outcomes.
330-
Longer term, we may want to require automated upgrade/rollback tests, but we
331-
are missing a bunch of machinery and tooling and can't do that now.
332-
-->
291+
Yes, using the following steps:
292+
293+
1. Installed a 1.34 Kubernetes cluster with the `RelaxedServiceNameValidation` feature gate disabled
294+
1. Attempted to create a service with a name starting in a digit - it failed as expected
295+
1. Upgraded to a custom built 1.35 Kubernetes cluster with the `RelaxedServiceNameValidation` feature gate enabled
296+
1. Attempted to create a service with a name starting in a digit - it succeeded as expected
297+
1. Downgraded back to 1.34 with the `RelaxedServiceNameValidation` feature gate disabled
298+
1. Edited that same service, and it succeeded as expected
333299

334300
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
335301

@@ -414,9 +380,14 @@ N/A
414380
- [x] Alpha
415381
- [x] KEP (`k/enhancements`) update PR(s):
416382
- https://github.com/kubernetes/enhancements/pull/5315
417-
- [ ] Code (`k/k`) update PR(s):
418-
-
383+
- [x] Code (`k/k`) update PR(s):
384+
- https://github.com/kubernetes/kubernetes/pull/132339
419385
- [ ] Docs (`k/website`) update PR(s):
386+
- [x] Beta
387+
- [ ] KEP (`k/enhancements`) update PR(s):
388+
- ...
389+
- [ ] Code (`k/k`) update PR(s):
390+
- ...
420391

421392
## Drawbacks
422393

keps/sig-network/5311-relaxed-validation-for-service-names/kep.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ replaces: []
2020
# The target maturity stage in the current dev cycle for this KEP.
2121
# If the purpose of this KEP is to deprecate a user-visible feature
2222
# and a Deprecated feature gates are added, they should be deprecated|disabled|removed.
23-
stage: alpha #|beta|stable
23+
stage: beta #|stable
2424

2525
# The most recent milestone for which work toward delivery of this KEP has been
2626
# done. This can be the current (upcoming) milestone, if it is being actively
2727
# worked on.
28-
latest-milestone: "v1.34"
28+
latest-milestone: "v1.35"
2929

3030
# The milestone at which this feature was, or is targeted to be, at each stage.
3131
milestone:
@@ -42,4 +42,5 @@ feature-gates:
4242
disable-supported: true
4343

4444
# The following PRR answers are required at beta release
45-
metrics: []
45+
metrics:
46+
- apiserver_request_total

0 commit comments

Comments
 (0)