Skip to content

Commit 77b5840

Browse files
authored
KEP-1435: Moving to GA (kubernetes#3587)
* KEP-1435: preparing for GA * Fix based on review commens * Fix based on review comments - add e2e test for kube-proxy * Add kube-state-metrics reference to the SLI part * Fix toc
1 parent c9c80fd commit 77b5840

File tree

3 files changed

+39
-16
lines changed

3 files changed

+39
-16
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
kep-number: 1435
22
beta:
33
approver: "ehashman"
4+
stable:
5+
approver: "deads2k"

keps/sig-network/1435-mixed-protocol-lb/README.md

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030
- [The selected solution for the option control](#the-selected-solution-for-the-option-control)
3131
- [Kube-proxy](#kube-proxy)
3232
- [Test Plan](#test-plan)
33+
- [Prerequisite testing updates](#prerequisite-testing-updates)
34+
- [Unit tests](#unit-tests)
35+
- [Integration tests](#integration-tests)
36+
- [e2e tests](#e2e-tests)
3337
- [Graduation Criteria](#graduation-criteria)
3438
- [Alpha Graduation](#alpha-graduation)
3539
- [Alpha -> Beta Graduation](#alpha---beta-graduation)
@@ -476,11 +480,29 @@ Kube-proxy will not block traffic based on the port status information from `Ser
476480

477481
### Test Plan
478482

479-
There must be e2e cases that test whether CPI implementations handle Service definitions with mixed protocol configuration on a consistent way. I.e. either the cloud LB is set up properly or the Service is rejected by the CPI implementation.
480-
The e2e tests shall check that
481-
- a multi-protocol Service triggers the creation of a multi-protocol cloud load balancer
482-
Optionally, if the CPI supports that:
483-
- the CPI sets the new Conditions and or Port Status in the Load Balancer Service after creating the cloud load balancer
483+
[x] I/we understand the owners of the involved components may require updates to
484+
existing tests to make this code solid enough prior to committing the changes necessary
485+
to implement this enhancement.
486+
487+
##### Prerequisite testing updates
488+
489+
##### Unit tests
490+
491+
Proper unit tests are in place for the affected code parts.
492+
493+
See:
494+
https://github.com/kubernetes/kubernetes/blob/867b5cc31b376c9f5d04cf9278112368b0337104/pkg/registry/core/service/strategy_test.go#L315
495+
https://github.com/kubernetes/kubernetes/blob/ea0764452222146c47ec826977f49d7001b0ea8c/pkg/apis/core/validation/conditional_validation_test.go#L29
496+
497+
##### Integration tests
498+
499+
There shall be integration tests that verify that the API server accepts Services with mixed protocols.
500+
501+
502+
##### e2e tests
503+
504+
The change described in this KEP affects provider specific implementations (CPIs) when considering the e2e aspect.
505+
Within the k8s e2e test set we shall check whether the kube-proxy works well with a Service that has type=LoadBalancer and has different protocols defined.
484506

485507
### Graduation Criteria
486508

@@ -500,7 +522,7 @@ Graduating to GA means, that the feature flag checking is removed from the code.
500522

501523
#### Beta -> GA Graduation
502524

503-
TBD
525+
- All major cloud providers support this or indicate non-support properly
504526

505527
#### Removing a Deprecated Flag
506528

@@ -583,12 +605,11 @@ Optionally, if the CPI supports that:
583605

584606
* **What are the SLIs (Service Level Indicators) an operator can use to determine
585607
the health of the service?**
586-
- [ ] Metrics
587-
- Metric name:
588-
- [Optional] Aggregation method:
589-
- Components exposing the metric:
590-
- [ ] Other (treat as last resort)
591-
- Details:
608+
- [x] Metrics
609+
- Metric name: kube-state-metrics/kube_service_status_load_balancer_ingress
610+
- Reference: https://github.com/kubernetes/kube-state-metrics/blob/12402a564cbf4557763079ab8e6e995d9afb4db9/docs/service-metrics.md
611+
- Components exposing the metric: Service via the kube-state-metrics add-on
612+
- If the LoadBalancer Service has neither IP address nor Hostname the Service is not healthy
592613

593614
* **What are the reasonable SLOs (Service Level Objectives) for the above SLIs?**
594615

@@ -598,7 +619,7 @@ Before this KEP, expectations of performance for this specific feature were cons
598619
* **Are there any missing metrics that would be useful to have to improve observability
599620
of this feature?**
600621

601-
N/A
622+
Once this feature becomes stable kuber-state-metrics could be enhanced to support the new Service.Status.Condition "LoadBalancerPortsError". If that condition is true for the Service the load balancer ports of the Service could not be allocated successfully.
602623

603624
### Dependencies
604625

keps/sig-network/1435-mixed-protocol-lb/kep.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,18 @@ replaces:
1919
- "/keps/sig-network/ 20200103-mixed-protocol-lb"
2020

2121
# The target maturity stage in the current dev cycle for this KEP.
22-
stage: beta
22+
stage: stable
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.24"
27+
latest-milestone: "v1.26"
2828

2929
# The milestone at which this feature was, or is targeted to be, at each stage.
3030
milestone:
3131
alpha: "v1.20"
3232
beta: "v1.24"
33-
stable: "TBD"
33+
stable: "v1.26"
3434

3535
# The following PRR answers are required at alpha release
3636
# List the feature gate name and the components for which it must be enabled

0 commit comments

Comments
 (0)