Skip to content

Commit 18475e9

Browse files
committed
klog flag deprecation: clarify scope and timeline
Deprecating the flags only in some binaries is not going far enough because the full feature set would still have to be supported for the remaining ones. The goal was to remove them everywhere and the KEP gets updated to reflect that. Because of the deprecation period for command line flags we want to announce the intent to deprecate as soon as possible. The proposal is to do it already at the alpha stage in Kubernetes 1.23. Most of the work is done or can be completed. Depending on the interpretation of "must function for 2 releases after their announced deprecation" (does that include the release for which the announcement was made?) we might be able to remove in 1.25. But to be safe and also to ensure the "for 12 months" rule, we aim for removal in 1.26.
1 parent 11a976c commit 18475e9

File tree

1 file changed

+18
-8
lines changed
  • keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components

1 file changed

+18
-8
lines changed

keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components/README.md

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,11 @@ best practices.
124124

125125
## Proposal
126126

127-
I propose to remove klog specific feature flags in Kubernetes core components
128-
(kube-apiserver, kube-scheduler, kube-controller-manager, kubelet) and leave
129-
them with defaults. From klog flags we would remove all flags besides "-v"
130-
and "-vmodule".
127+
We propose to remove klog specific feature flags in Kubernetes components
128+
(including, but not limited to, kube-apiserver, kube-scheduler,
129+
kube-controller-manager, kubelet) and leave them with defaults. From klog flags
130+
we would remove all flags besides "-v" and "-vmodule". The component-base
131+
"-log-flush-frequency" flag is also kept.
131132

132133
### Removed klog flags
133134

@@ -269,17 +270,20 @@ all existing klog features.
269270

270271
#### Alpha
271272

272-
- Klog can be configured without registering flags
273-
- Kubernetes logging configuration drops global state
273+
- The remaining supported klog options (`-v`, `--vmodule`) and
274+
`--log-flush-frequency` can be configured without registering flags.
275+
- Kubernetes logging configuration is completely stored in one struct
276+
(`LoggingConfiguration`) before being applied to the process.
274277
- Go-runner is feature complementary to klog flags planned for deprecation
275278
- Projects in Kubernetes Org are migrated to go-runner
276279
- JSON logs format splits stdout and stderr logs
280+
- The klog flags which will be removed are marked as deprecated in command line
281+
help output and the deprecation is announced in the Kubernetes release notes.
277282

278283
#### Beta
279284

280285
- Go-runner project is well maintained and documented
281286
- Documentation on migrating off klog flags is publicly available
282-
- Kubernetes klog flags are marked as deprecated
283287

284288
#### GA
285289

@@ -290,6 +294,12 @@ all existing klog features.
290294
- 20/06/2021 - Original proposal created in https://github.com/kubernetes/kubernetes/issues/99270
291295
- 30/07/2021 - KEP draft was created
292296
- 26/08/2021 - Merged in provisional state
297+
- 09/09/2021 - Merged as implementable
298+
- Kubernetes 1.23 (tenatative): alpha, [deprecation
299+
period](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-flag-or-cli)
300+
starts
301+
- Kubernetes 1.24 (tentative): beta
302+
- Kubernetes 1.26 (tentative): GA, deprecated flags get removed
293303

294304
## Drawbacks
295305

@@ -474,4 +484,4 @@ No
474484

475485
###### What steps should be taken if SLOs are not being met to determine the problem?
476486

477-
N/A
487+
N/A

0 commit comments

Comments
 (0)