|
14 | 14 | - [Design Details](#design-details)
|
15 | 15 | - [Test Plan](#test-plan)
|
16 | 16 | - [Graduation Criteria](#graduation-criteria)
|
| 17 | + - [Alpha:](#alpha) |
| 18 | + - [Beta:](#beta) |
17 | 19 | - [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
|
18 | 20 | - [Version Skew Strategy](#version-skew-strategy)
|
19 | 21 | - [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*
|
42 | 44 | - [X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
|
43 | 45 | - [X] (R) Graduation criteria is in place
|
44 | 46 | - [X] (R) Production readiness review completed
|
45 |
| -- [ ] Production readiness review approved |
| 47 | +- [X] (R) Production readiness review approved |
46 | 48 | - [ ] "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] |
48 | 50 | - [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
|
49 | 51 |
|
50 | 52 | [kubernetes.io]: https://kubernetes.io/
|
@@ -172,12 +174,18 @@ E2E tests:
|
172 | 174 |
|
173 | 175 | ### Graduation Criteria
|
174 | 176 |
|
175 |
| -Alpha: |
| 177 | +#### Alpha: |
| 178 | + |
176 | 179 | * the `loadBalancerClass` field is added to Service with an alpha feature gate.
|
177 | 180 | * when enabled, service controller will ignore Service LBs with a non-empty class name.
|
178 | 181 | * unit tests for service controller.
|
179 | 182 | * unit tests for API strategy (drop disabled fields).
|
180 | 183 |
|
| 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 | + |
181 | 189 | ### Upgrade / Downgrade Strategy
|
182 | 190 |
|
183 | 191 | * 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._
|
232 | 240 |
|
233 | 241 | * **How can a rollout fail? Can it impact already running workloads?**
|
234 | 242 |
|
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`. |
236 | 245 |
|
237 |
| -* **What specific metrics should inform a rollback?** |
238 | 246 |
|
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. |
240 | 249 |
|
241 | 250 | * **Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?**
|
242 | 251 |
|
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. |
244 | 253 |
|
245 | 254 | * **Is the rollout accompanied by any deprecations and/or removals of features, APIs,
|
246 | 255 | fields of API types, flags, etc.?**
|
247 | 256 |
|
248 |
| - TBD for beta |
| 257 | + * No. |
249 | 258 |
|
250 | 259 | ### Monitoring Requirements
|
251 | 260 |
|
252 | 261 | _This section must be completed when targeting beta graduation to a release._
|
253 | 262 |
|
254 | 263 | * **How can an operator determine if the feature is in use by workloads?**
|
255 | 264 |
|
256 |
| - TBD for beta |
| 265 | + * Service should have `spec.loadBalancerClass` set. |
257 | 266 |
|
258 | 267 | * **What are the SLIs (Service Level Indicators) an operator can use to determine
|
259 | 268 | the health of the service?**
|
260 | 269 |
|
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 |
269 | 271 |
|
270 | 272 | * **What are the reasonable SLOs (Service Level Objectives) for the above SLIs?**
|
271 | 273 |
|
272 |
| - TBD for beta |
| 274 | + * N/A |
273 | 275 |
|
274 | 276 | * **Are there any missing metrics that would be useful to have to improve observability
|
275 | 277 | of this feature?**
|
276 | 278 |
|
277 |
| - TBD for beta |
| 279 | + * N/A |
278 | 280 |
|
279 | 281 | ### Dependencies
|
280 | 282 |
|
281 | 283 | _This section must be completed when targeting beta graduation to a release._
|
282 | 284 |
|
283 | 285 | * **Does this feature depend on any specific services running in the cluster?**
|
284 | 286 |
|
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. |
287 | 288 |
|
288 | 289 | ### Scalability
|
289 | 290 |
|
@@ -336,15 +337,15 @@ _This section must be completed when targeting beta graduation to a release._
|
336 | 337 |
|
337 | 338 | * **How does this feature react if the API server and/or etcd is unavailable?**
|
338 | 339 |
|
339 |
| -TBD for beta. |
| 340 | + * N/A |
340 | 341 |
|
341 | 342 | * **What are other known failure modes?**
|
342 | 343 |
|
343 |
| -TBD for beta. |
| 344 | + * If `service.spec.loadBalancerClass` set, but there is no load balancer implementation watches the set value. |
344 | 345 |
|
345 | 346 | * **What steps should be taken if SLOs are not being met to determine the problem?**
|
346 | 347 |
|
347 |
| -TBD for beta. |
| 348 | + * N/A |
348 | 349 |
|
349 | 350 | [supported limits]: https://git.k8s.io/community//sig-scalability/configs-and-limits/thresholds.md
|
350 | 351 | [existing SLIs/SLOs]: https://git.k8s.io/community/sig-scalability/slos/slos.md#kubernetes-slisslos
|
|
0 commit comments