Take kubectl apply out of Alpha and into Beta #34274

mikedanese opened this Issue Oct 6, 2016 · 9 comments



mikedanese commented Oct 6, 2016 edited

  • Fully document behavior
  • Prune all restmappings, not just those provided

cc @pwittrock


MrHohn commented Oct 19, 2016 edited

Sorry to bother, I want to know what is the plan for "Prune all restmappings"? I think addon-manager will need this feature (at least need to also prune given additional restmappings?).

@mikedanese mikedanese added priority/P1 and removed priority/P2 labels Oct 19, 2016


mikedanese commented Oct 19, 2016

I have not started working on it. I can take a look or you can if you want.

mikedanese self-assigned this Oct 19, 2016


MrHohn commented Oct 19, 2016

Sure, I can take a look at this if it is not complicated.

I wanna follow the plan you proposed before: add a --type flag to modified the visitedRESTMappings

@k8s-merge-robot k8s-merge-robot added a commit that referenced this issue Nov 4, 2016

@k8s-merge-robot k8s-merge-robot 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.


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.


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},


$ kubectl apply -f /path/to/file --prune -l test=true \
      -w core/v1/Pod \
      -w core/v1/Service \
      -w extensions/v1beta1/Deployment 


bgrant0607 commented Nov 17, 2016

cc @ymqytw @pwittrock


pwittrock commented Nov 17, 2016

@MrHohn Can we close this issue?


MrHohn commented Nov 17, 2016

@pwittrock Sure. --prune is not well documented yet, but I think #35234 is also tracking this.

pwittrock referenced this issue Nov 17, 2016


kubectl apply umbrella issue tracker #35234

12 of 32 tasks complete

MrHohn commented Nov 23, 2016

Actually I think we might want to keep this issue open. There is an Alpha Disclaimer comment in the code, which has a pointer to this issue.
Plus this --prune feature indeed needs to be refined, see comments here and here.

Could we update the contents on top and keep it open?

@pwittrock @mikedanese

pwittrock changed the title from Polish outstanding issues with kubeclt apply --prune to Take kubectl apply out of Alpha and into Beta Nov 23, 2016


pwittrock commented Nov 23, 2016



xiangpengzhao commented Jun 24, 2017

/sig cli

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment