mirror of
https://github.com/kubernetes/kubectl.git
synced 2026-04-09 10:56:25 -04:00
Before https://github.com/kubernetes/kubernetes/pull/83084, `kubectl apply --prune` can prune resources in all namespaces specified in config files. After that PR got merged, only a single namespace is considered for pruning. It is OK if namespace is explicitly specified by --namespace option, but what the PR does is use the default namespace (or from kubeconfig) if not overridden by command line flag. That breaks the existing usage of `kubectl apply --prune` without --namespace option. If --namespace is not used, there is no error, and no one notices this issue unless they actually check that pruning happens. This issue also prevents resources in multiple namespaces in config file from being pruned. kubectl 1.16 does not have this bug. Let's see the difference between kubectl 1.16 and kubectl 1.17. Suppose the following config file: ```yaml apiVersion: v1 kind: ConfigMap metadata: creationTimestamp: null name: foo namespace: a labels: pl: foo data: foo: bar Kubernetes-commit: 4e644d0b4842c851b18d846d1ce56ef5c73204a1 |
||
|---|---|---|
| .. | ||
| apply.go | ||
| apply_edit_last_applied.go | ||
| apply_set_last_applied.go | ||
| apply_test.go | ||
| apply_view_last_applied.go | ||
| patcher.go | ||
| prune.go | ||