Skip to content

Commit 076f989

Browse files
authored
Merge pull request kubernetes#4850 from SergeyKanzhelev/sidecar-updates
clarifications for sidecar container feature
2 parents 24897dd + a0d25ca commit 076f989

File tree

2 files changed

+18
-92
lines changed

2 files changed

+18
-92
lines changed

keps/sig-node/753-sidecar-containers/README.md

Lines changed: 15 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -181,10 +181,10 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
181181
- [X] (R) Design details are appropriately documented
182182
- [X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
183183
- [X] e2e Tests for all Beta API Operations (endpoints)
184-
- [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
185-
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
186-
- [ ] (R) Graduation criteria is in place
187-
- [ ] (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)
184+
- [X] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
185+
- [X] (R) Minimum Two Week Window for GA e2e tests to prove flake free
186+
- [X] (R) Graduation criteria is in place
187+
- [X] (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)
188188
- [ ] (R) Production readiness review completed
189189
- [ ] (R) Production readiness review approved
190190
- [ ] "Implementation History" section is up-to-date for milestone
@@ -401,8 +401,10 @@ startup will NOT be restarted and the whole Pod will fail. If Pod
401401

402402
Once sidecar container is started (`postStart` completed and startup probe
403403
succeeded), this containers will be restarted even when the Pod `restartPolicy`
404-
is `Never` or `OnFailure`. Furthermore, sidecar containers will be restarted
405-
even during Pod termination.
404+
is `Never` or `OnFailure`.
405+
406+
Note, a separate KEP https://github.com/kubernetes/enhancements/issues/4438 will enable
407+
sidecar containers to be restarted even during Pod termination.
406408

407409
In order to minimize OOM kills of sidecar containers, the OOM adjustment for
408410
these containers will match or exceed the OOM score adjustment of regular
@@ -1281,68 +1283,6 @@ to know in early stages of the KEP IMHO.
12811283

12821284
### Graduation Criteria
12831285

1284-
<!--
1285-
**Note:** *Not required until targeted at a release.*
1286-
1287-
Define graduation milestones.
1288-
1289-
These may be defined in terms of API maturity, [feature gate] graduations, or as
1290-
something else. The KEP should keep this high-level with a focus on what
1291-
signals will be looked at to determine graduation.
1292-
1293-
Consider the following in developing the graduation criteria for this enhancement:
1294-
- [Maturity levels (`alpha`, `beta`, `stable`)][maturity-levels]
1295-
- [Feature gate][feature gate] lifecycle
1296-
- [Deprecation policy][deprecation-policy]
1297-
1298-
Clearly define what graduation means by either linking to the [API doc
1299-
definition](https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-versioning)
1300-
or by redefining what graduation means.
1301-
1302-
In general we try to use the same stages (alpha, beta, GA), regardless of how the
1303-
functionality is accessed.
1304-
1305-
[feature gate]: https://git.k8s.io/community/contributors/devel/sig-architecture/feature-gates.md
1306-
[maturity-levels]: https://git.k8s.io/community/contributors/devel/sig-architecture/api_changes.md#alpha-beta-and-stable-versions
1307-
[deprecation-policy]: https://kubernetes.io/docs/reference/using-api/deprecation-policy/
1308-
1309-
Below are some examples to consider, in addition to the aforementioned [maturity levels][maturity-levels].
1310-
1311-
#### Alpha
1312-
1313-
- Feature implemented behind a feature flag
1314-
- Initial e2e tests completed and enabled
1315-
1316-
#### Beta
1317-
1318-
- Gather feedback from developers and surveys
1319-
- Complete features A, B, C
1320-
- Additional tests are in Testgrid and linked in KEP
1321-
1322-
#### GA
1323-
1324-
- N examples of real-world usage
1325-
- N installs
1326-
- More rigorous forms of testing—e.g., downgrade tests and scalability tests
1327-
- Allowing time for feedback
1328-
1329-
**Note:** Generally we also wait at least two releases between beta and
1330-
GA/stable, because there's no opportunity for user feedback, or even bug reports,
1331-
in back-to-back releases.
1332-
1333-
**For non-optional features moving to GA, the graduation criteria must include
1334-
[conformance tests].**
1335-
1336-
[conformance tests]: https://git.k8s.io/community/contributors/devel/sig-architecture/conformance-tests.md
1337-
1338-
#### Deprecation
1339-
1340-
- Announce deprecation and support policy of the existing flag
1341-
- Two versions passed since introducing the functionality that deprecates the flag (to address version skew)
1342-
- Address feedback on usage/changed behavior, provided on GitHub issues
1343-
- Deprecate the flag
1344-
-->
1345-
13461286
#### Alpha
13471287

13481288
- Feature implemented behind a feature flag
@@ -1357,24 +1297,11 @@ in back-to-back releases.
13571297

13581298
#### GA
13591299

1360-
- Allow to apply security policies on all containers in `initContainers`
1361-
collection. Example may be disabling `kubectl exec` on containers in
1362-
`initContainers` collection.
1300+
- All known issues are fixed
1301+
- Production use feedback addressed
13631302

13641303
### Upgrade / Downgrade Strategy
13651304

1366-
<!--
1367-
If applicable, how will the component be upgraded and downgraded? Make sure
1368-
this is in the test plan.
1369-
1370-
Consider the following in developing an upgrade/downgrade strategy for this
1371-
enhancement:
1372-
- What changes (in invocations, configurations, API use, etc.) is an existing
1373-
cluster required to make on upgrade, in order to maintain previous behavior?
1374-
- What changes (in invocations, configurations, API use, etc.) is an existing
1375-
cluster required to make on upgrade, in order to make use of the enhancement?
1376-
-->
1377-
13781305
#### Upgrade strategy
13791306

13801307
Existing sidecars (implemented as regular containers) will still work as
@@ -1612,9 +1539,10 @@ that might indicate a serious problem?
16121539
- Labels:code, container_type (should be `init_container`)
16131540
- Components exposing the metric: `kubelet-metrics`
16141541
- Symptoms: high number of errors indicates that the kubelet is unable to start the sidecar containers
1615-
- [X] Events
1616-
- Event name: TBD
1617-
- Symptoms: high number of events indicates that the TGPS has been exceeded and sidecars have been terminated not gracefully
1542+
- [X] API objects
1543+
- Pods stuck in Pending state of Init container running.
1544+
- Type: API objects
1545+
- Symptoms: when the new field `restartPolicy:Always` was mistakenly stripped out by a webhook, Pod will get stuck.
16181546

16191547
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
16201548

@@ -1742,9 +1670,6 @@ Pick one more of these and delete the rest.
17421670
- Type: Counter
17431671
- Labels:code, container_type (should be `init_container`)
17441672
- Components exposing the metric: `kubelet-metrics`
1745-
- [X] Events
1746-
- Event name: TBD
1747-
- should not appear, unless TGPS is exceeded and sidecars are terminated
17481673

17491674
###### Are there any missing metrics that would be useful to have to improve observability of this feature?
17501675

@@ -1955,7 +1880,7 @@ Major milestones might include:
19551880
- 2018-05-14: First proposal.
19561881
- 2023-06-09: Target 1.28 for Alpha.
19571882
- 2023-07-08: Alpha implementation merged.
1958-
- TODO: PRR completed and graduation to beta proposed.
1883+
- 1.29: feature is in Beta
19591884

19601885
## Drawbacks
19611886

keps/sig-node/753-sidecar-containers/kep.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ authors:
44
- "@SergeyKanzhelev"
55
- "@matthyx"
66
- "@jpbetz"
7+
- "@gjkim42"
78
owning-sig: sig-node
89
participating-sigs:
910
- sig-scheduler
1011
- sig-apps
1112
status: implementable
1213
creation-date: 2018-05-14
13-
last-updated: 2024-01-25
14+
last-updated: 2024-09-12
1415
reviewers:
1516
- "@mrunalp" # overall
1617
- "@ffromani" # resource management
@@ -37,7 +38,7 @@ latest-milestone: "v1.29"
3738
milestone:
3839
alpha: "v1.28"
3940
beta: "v1.29"
40-
stable: "v1.32"
41+
stable: "v1.33"
4142

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

0 commit comments

Comments
 (0)