title: How can I remove a deprecated version of a specific API resource from a Kubernetes cluster?
body: <p>When the storage version of a Kubernetes API resource changes, is it still necessary to manually read and write back resources as describe <a href="https://kubernetes.io/docs/tasks/administer-cluster/cluster-management/#upgrading-to-a-different-api-version" rel="nofollow noreferrer">here</a> or does the apiserver now deal with this automatically?</p>
  
  <p>For example, if I wanted to remove the <a href="https://kubernetes.io/blog/2017/12/kubernetes-19-workloads-expanded-ecosystem/" rel="nofollow noreferrer">deprecated</a> <code>extensions/v1beta1</code> version of deployments from my cluster and migrate to <code>apps/v1</code> would it be enough to specify <code>--storage-versions=extensions=apps/v1</code> on the apiserver and then ‘wait for a bit’ before setting something like <code>---runtime-config=api/all=true,extensions/v1beta1/deployments=false</code>? Or would I have to use the <a href="https://github.com/kubernetes/kubernetes/blob/master/cluster/update-storage-objects.sh" rel="nofollow noreferrer">update-storage-objects.sh</a> script after setting <code>--storage-versions=extensions=apps/v1</code>?</p>
  
  <p>Additionally, would specifying <code>--storage-versions=extensions=apps/v1</code> cause any issues for ingress resources that still use API version <code>extensions/v1beta1</code> but have no conversion to <code>apps/v1</code>?</p>