Skip to content

Commit 55721cf

Browse files
authored
Merge pull request #2698 from XudongLiuHarold/promote-loadbalancerclass-to-beta
KEP-1959: promote loadbalancerclass feature to beta in v1.22.
2 parents 4b51418 + 27475a2 commit 55721cf

File tree

3 files changed

+30
-26
lines changed

3 files changed

+30
-26
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
kep-number: 1959
22
alpha:
33
approver: "@johnbelamaric"
4+
beta:
5+
approver: "@johnbelamaric"

keps/sig-cloud-provider/1959-service-lb-class-field/README.md

+25-24
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
- [Design Details](#design-details)
1515
- [Test Plan](#test-plan)
1616
- [Graduation Criteria](#graduation-criteria)
17+
- [Alpha:](#alpha)
18+
- [Beta:](#beta)
1719
- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
1820
- [Version Skew Strategy](#version-skew-strategy)
1921
- [Production Readiness Review Questionnaire](#production-readiness-review-questionnaire)
@@ -42,9 +44,9 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
4244
- [X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
4345
- [X] (R) Graduation criteria is in place
4446
- [X] (R) Production readiness review completed
45-
- [ ] Production readiness review approved
47+
- [X] (R) Production readiness review approved
4648
- [ ] "Implementation History" section is up-to-date for milestone
47-
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
49+
- [X] (R) User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
4850
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
4951

5052
[kubernetes.io]: https://kubernetes.io/
@@ -172,12 +174,18 @@ E2E tests:
172174

173175
### Graduation Criteria
174176

175-
Alpha:
177+
#### Alpha:
178+
176179
* the `loadBalancerClass` field is added to Service with an alpha feature gate.
177180
* when enabled, service controller will ignore Service LBs with a non-empty class name.
178181
* unit tests for service controller.
179182
* unit tests for API strategy (drop disabled fields).
180183

184+
#### Beta:
185+
186+
* Feature gate is on by default.
187+
* E2E tests checking that default load balancer implementation ignores LoadBalancer type of Services when `loadBalancerClass` set.
188+
181189
### Upgrade / Downgrade Strategy
182190

183191
* Usage of `loadBalancerClass` will be off by default during the alpha stage but can handle existing Services that
@@ -232,58 +240,51 @@ _This section must be completed when targeting beta graduation to a release._
232240

233241
* **How can a rollout fail? Can it impact already running workloads?**
234242

235-
TBD for beta
243+
* By default this should not impact any existing Services since we are not changing any default behaviors.
244+
* Enabling this feature on new clusters can impact workloads only if the user wants to use a custom load balancer implementation and sets `service.spec.loadBalancerClass`.
236245

237-
* **What specific metrics should inform a rollback?**
238246

239-
TBD for beta
247+
* **What specific metrics should inform a rollback?**
248+
* None, if the user doesn't want to use a custom load balancer implementation, user can simply ignore this field.
240249

241250
* **Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?**
242251

243-
TBD for beta
252+
* No, upgrade->downgrade->upgrade has not been tested yet. Like any new API field, on downgrade any existing Services using the field will continue to have the field set. For these LoadBalancer type of Services, any default load balancer implementation (e.g. cloud providers) would ignore them. New Services cannot use the new field unless the feature gate is enabled in the old version when the feature was alpha.
244253

245254
* **Is the rollout accompanied by any deprecations and/or removals of features, APIs,
246255
fields of API types, flags, etc.?**
247256

248-
TBD for beta
257+
* No.
249258

250259
### Monitoring Requirements
251260

252261
_This section must be completed when targeting beta graduation to a release._
253262

254263
* **How can an operator determine if the feature is in use by workloads?**
255264

256-
TBD for beta
265+
* Service should have `spec.loadBalancerClass` set.
257266

258267
* **What are the SLIs (Service Level Indicators) an operator can use to determine
259268
the health of the service?**
260269

261-
TBD for beta
262-
263-
- [ ] Metrics
264-
- Metric name:
265-
- [Optional] Aggregation method:
266-
- Components exposing the metric:
267-
- [ ] Other (treat as last resort)
268-
- Details:
270+
* N/A
269271

270272
* **What are the reasonable SLOs (Service Level Objectives) for the above SLIs?**
271273

272-
TBD for beta
274+
* N/A
273275

274276
* **Are there any missing metrics that would be useful to have to improve observability
275277
of this feature?**
276278

277-
TBD for beta
279+
* N/A
278280

279281
### Dependencies
280282

281283
_This section must be completed when targeting beta graduation to a release._
282284

283285
* **Does this feature depend on any specific services running in the cluster?**
284286

285-
TBD for beta
286-
287+
* This feature is dependent on the Service LoadBalancer implementation of a cluster. This feature should only be used if the user doesn't want to use default load balancer implementation.
287288

288289
### Scalability
289290

@@ -336,15 +337,15 @@ _This section must be completed when targeting beta graduation to a release._
336337

337338
* **How does this feature react if the API server and/or etcd is unavailable?**
338339

339-
TBD for beta.
340+
* N/A
340341

341342
* **What are other known failure modes?**
342343

343-
TBD for beta.
344+
* If `service.spec.loadBalancerClass` set, but there is no load balancer implementation watches the set value.
344345

345346
* **What steps should be taken if SLOs are not being met to determine the problem?**
346347

347-
TBD for beta.
348+
* N/A
348349

349350
[supported limits]: https://git.k8s.io/community//sig-scalability/configs-and-limits/thresholds.md
350351
[existing SLIs/SLOs]: https://git.k8s.io/community/sig-scalability/slos/slos.md#kubernetes-slisslos

keps/sig-cloud-provider/1959-service-lb-class-field/kep.yaml

+3-2
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,17 @@ prr-approvers:
1919
- "@johnbelamaric"
2020

2121
# The target maturity stage in the current dev cycle for this KEP.
22-
stage: alpha
22+
stage: beta
2323

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

2929
# The milestone at which this feature was, or is targeted to be, at each stage.
3030
milestone:
3131
alpha: "v1.21"
32+
beta: "v1.22"
3233

3334
feature-gates:
3435
- name: ServiceLoadBalancerClass

0 commit comments

Comments
 (0)