Skip to content

Commit 4903b97

Browse files
author
Ricardo Katz
committed
Move portRanges to GA
Signed-off-by: Ricardo Katz <[email protected]>
1 parent 6cb3b10 commit 4903b97

File tree

3 files changed

+47
-36
lines changed

3 files changed

+47
-36
lines changed

keps/prod-readiness/sig-network/2079.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ alpha:
33
approver: "@wojtek-t"
44
beta:
55
approver: "@wojtek-t"
6+
stable:
7+
approver: "@wojtek-t"

keps/sig-network/2079-network-policy-port-range/README.md

Lines changed: 41 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
- [Graduation Criteria](#graduation-criteria)
2020
- [Alpha](#alpha)
2121
- [Beta](#beta)
22-
- [GA Graduation](#ga-graduation)
22+
- [GA](#ga)
2323
- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
2424
- [Production Readiness Review Questionnaire](#production-readiness-review-questionnaire)
2525
- [Feature Enablement and Rollback](#feature-enablement-and-rollback)
@@ -203,7 +203,7 @@ validation should be done by CNIs.
203203
with generally positive feedback on its usage.
204204
- Feature Gate is enabled by Default.
205205

206-
#### GA Graduation
206+
#### GA
207207

208208
- At least **four** NetworkPolicy providers (or CNI providers) support the `EndPort` field
209209
- `EndPort` has been enabled by default for at least 1 minor release
@@ -221,16 +221,16 @@ start working incorrectly. This is a fail-closed failure, so it is acceptable.
221221
### Feature Enablement and Rollback
222222

223223

224-
* **How can this feature be enabled / disabled in a live cluster?**
224+
###### How can this feature be enabled / disabled in a live cluster?
225225
- [X] Feature gate (also fill in values in `kep.yaml`)
226226
- Feature gate name: NetworkPolicyEndPort
227227
- Components depending on the feature gate: Kubernetes API Server
228228

229-
* **Does enabling the feature change any default behavior?**
229+
###### Does enabling the feature change any default behavior?
230230
No
231231

232-
* **Can the feature be disabled once it has been enabled (i.e. can we roll back
233-
the enablement)?**
232+
###### Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?
233+
234234

235235
Yes. One caveat here is that NetworkPolicies created with EndPort field set
236236
when the feature was enabled will continue to have that field set when the
@@ -247,40 +247,45 @@ start working incorrectly. This is a fail-closed failure, so it is acceptable.
247247
port range, which may break users, which is inevitable but satisfies the
248248
fail-closed requirement.
249249

250-
* **What happens if we reenable the feature if it was previously rolled back?**
250+
###### What happens if we reenable the feature if it was previously rolled back?
251+
251252
Nothing.
252253

253-
* **Are there any tests for feature enablement/disablement?**
254+
###### Are there any tests for feature enablement/disablement?
254255

255256
Yes and they can be found [here](https://github.com/kubernetes/kubernetes/blob/release-1.21/pkg/registry/networking/networkpolicy/strategy_test.go#L284)
256257

257258
### Rollout, Upgrade and Rollback Planning
258259

259260
_This section must be completed when targeting beta graduation to a release._
260-
* **How can a rollout fail? Can it impact already running workloads?**
261+
###### How can a rollout or rollback fail? Can it impact already running workloads?
261262
Not probably, but still there's the risk of some bug that fails validation,
262263
or conversion function crashes.
263264

264-
* **What specific metrics should inform a rollback?**
265+
###### What specific metrics should inform a rollback?
265266
The increase of 5xx http error count on Network Policies Endpoint
266267

267-
* **Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?**
268+
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
269+
268270
Yes, with unit tests.
269271
There's still some need to make manual tests, that will be done in a follow up.
270272

271-
* **Is the rollout accompanied by any deprecations and/or removals of features, APIs,
273+
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
274+
272275
None
273276

274277
### Monitoring Requirements
275278

276279
_This section must be completed when targeting beta graduation to a release._
277-
* **How can an operator determine if the feature is in use by workloads?**
280+
###### How can an operator determine if the feature is in use by workloads?
281+
278282

279283
Operators can determine if NetworkPolicies are making use of EndPort creating
280284
an object specifying the range and validating if the traffic is allowed within
281285
the specified range
282286

283-
* **How can someone using this feature know that it is working for their instance?
287+
###### How can someone using this feature know that it is working for their instance?
288+
284289
- [x] Other
285290
- Details:
286291
The API Field must be present when a NetworkPolicy is created with that field.
@@ -291,13 +296,14 @@ _This section must be completed when targeting beta graduation to a release._
291296
We might need in a future to add some Status field that allows CNI providers to provide
292297
feedback about the functionality
293298

294-
* **What are the SLIs (Service Level Indicators) an operator can use to determine
295-
the health of the service?**
299+
###### What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?
300+
296301
Operators can use metrics provided by the CNI to use as SLI, like
297302
`felix_iptables_restore_errors` from Calico to verify if the errors rate
298303
has raised.
299304

300-
* **What are the reasonable SLOs (Service Level Objectives) for the above SLIs?**
305+
###### What are the reasonable SLOs (Service Level Objectives) for the enhancement?
306+
301307
- per-day percentage of API calls finishing with 5XX errors <= 1% is a reasonable SLO
302308

303309
* **Are there any missing metrics that would be useful to have to improve observability
@@ -307,52 +313,56 @@ of this feature?**
307313

308314
### Dependencies
309315

310-
* **Does this feature depend on any specific services running in the cluster?**
316+
###### Does this feature depend on any specific services running in the cluster?
317+
311318
Yes, a CNI supporting the new feature
312319

313320

314321
### Scalability
315322

316-
* **Will enabling / using this feature result in any new API calls?**
323+
###### Will enabling / using this feature result in any new API calls?
317324
No
318325

319-
* **Will enabling / using this feature result in introducing new API types?**
326+
###### Will enabling / using this feature result in introducing new API types?
327+
320328
No
321329

322-
* **Will enabling / using this feature result in any new calls to the cloud
323-
provider?**
330+
###### Will enabling / using this feature result in any new calls to the cloud provider?
331+
324332
No
325333

326-
* **Will enabling / using this feature result in increasing size or count of
327-
the existing API objects?**
334+
###### Will enabling / using this feature result in increasing size or count of the existing API objects?
335+
328336

329337
- API type(s): NetworkPolicyPorts
330338
- Estimated increase in size: 2 bytes for each new `EndPort` value specified + the field name/number in its serialized format
331339
- Estimated amount of new objects: N/A
332340

333-
* **Will enabling / using this feature result in increasing time taken by any
334-
operations covered by [existing SLIs/SLOs]?**
341+
###### Will enabling / using this feature result in increasing time taken by any operations covered by existing SLIs/SLOs?
342+
335343
N/A
336344

337-
* **Will enabling / using this feature result in non-negligible increase of
338-
resource usage (CPU, RAM, disk, IO, ...) in any components?**
345+
###### Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, ...) in any components?
339346
It might get some increase of resource usage by the CNI while parsing the
340347
new field.
341348

342349
### Troubleshooting
343350

344-
* **How does this feature react if the API server and/or etcd is unavailable?**
351+
###### How does this feature react if the API server and/or etcd is unavailable?
352+
345353
As this feature is mainly used by CNI providers, the reaction with API server
346354
and/or etcd being unavailable will be the same as before.
347355

348-
* **What are other known failure modes?**
356+
###### What are other known failure modes?
349357
N/A
350358

351-
* **What steps should be taken if SLOs are not being met to determine the problem?**
359+
###### What steps should be taken if SLOs are not being met to determine the problem?
360+
352361
Remove EndPort field and check if the number of errors reduce, although this might
353362
lead to undesired Network Policy, blocking previously working rules.
354363

355364
## Implementation History
365+
- 2022-01-31 Propose GA graduation
356366
- 2021-05-11 Propose Beta graduation and add more Performance Review data
357367
- 2020-10-08 Initial [KEP PR](https://github.com/kubernetes/enhancements/pull/2079)
358368

keps/sig-network/2079-network-policy-port-range/kep.yaml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,23 @@ approvers:
1313
- "@thockin"
1414

1515
# The target maturity stage in the current dev cycle for this KEP.
16-
stage: beta
16+
stage: stable
1717

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

2323
# The milestone at which this feature was, or is targeted to be, at each stage.
2424
milestone:
2525
alpha: "v1.21"
2626
beta: "v1.22"
27-
stable: "v1.23"
27+
stable: "v1.24"
2828

2929
# The following PRR answers are required at alpha release
3030
# List the feature gate name and the components for which it must be enabled
3131
feature-gates:
3232
- name: NetworkPolicyEndPort
3333
components:
3434
- kube-apiserver
35-
disable-supported: true
36-
35+
disable-supported: true

0 commit comments

Comments
 (0)