<p>I am facing the issue when I delete the <code>default-token</code> secret of service account.</p>

<p>Kubernetes automatically mounts the <code>deafult-token</code> into the pod spec so that you can access its API.</p>

<pre><code>volumes:
- name: default-token-hh98h
  secret:
    defaultMode: 420
    secretName: default-token-xxx
</code></pre>

<p>Now when I delete the secret <code>default-token-xxx</code>, kubernetes automatically creates new <code>default-token-yyy</code>, but that token doesn't reflect in the pod spec. If I restart the pods then the new token takes effect.</p>

<p>Is there any way to refresh the <code>default-token</code> secret without deleting the pod?</p>

<p>It is not possible to update <code>secretName</code> field of <code>pod.spec.volume</code> because it is forbidden.
Even when you try to change, you will get an error </p>

<pre><code>* spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds` or `spec.tolerations` (only additions to existing tolerations)
</code></pre>

<p>And you are trying to update <code>spec.volumes</code> which is forbidden</p>
