Merge pull request #35220 from MrHohn/kubectl-apply-type
Automatic merge from submit-queue
Implement --prune-whitelist(-w) flag to overwrite default whitelist for --prune
From #34274.
Updates:
As suggested, the new commits implement a default whitelist for `kubectl apply --prune`, which could be overwritten by using `--prune-whitelist`or `-w` flag. The default whitelist and example as below.
Also supports `--dry-run` for `--prune` to fix #35222.
whitelist:
```
type pruneResource struct {
group string
version string
kind string
namespaced bool
}
*pruneResources = []pruneResource{
{"", "v1", "ConfigMap", true},
{"", "v1", "Endpoints", true},
{"", "v1", "Namespace", false},
{"", "v1", "PersistentVolumeClaim", true},
{"", "v1", "PersistentVolume", false},
{"", "v1", "Pod", true},
{"", "v1", "ReplicationController", true},
{"", "v1", "Secret", true},
{"", "v1", "Service", true},
{"batch", "v1", "Job", true},
{"extensions", "v1beta1", "DaemonSet", true},
{"extensions", "v1beta1", "Deployment", true},
{"extensions", "v1beta1", "HorizontalPodAutoscaler", true},
{"extensions", "v1beta1", "Ingress", true},
{"extensions", "v1beta1", "ReplicaSet", true},
{"apps", "v1beta1", "StatefulSet", true},
}
```
example:
```
$ kubectl apply -f /path/to/file --prune -l test=true \
-w core/v1/Pod \
-w core/v1/Service \
-w extensions/v1beta1/Deployment
```
@mikedanese