Como Forcar um Deploy com Kubernetes
Quando você começa a usar mais Kubernetes você nota que o comando kubectl apply
não faz um novo deploy se o seu arquivo YAML não muda. Mesmo se você mudar o configmap OU se você atualiza a imagem.
Usando Variável de Ambiente (Fora do configmap)
No começo eu tinha uma variável de ambiente no YAML do deploy e fazia um incremento dessa variável a cada deploy, algo como:
env:
- name: DEPLOY
value: "21"
Mas desse jeito é chato.
kubectl rollout
Se você tiver acesso fácil ao YAML pode usar esse comando:
$ kubectl rollout restart -f puma-deploy.yml
deployment.apps/puma-deploy restarted
Aplicando um Patch no deployment
Ou se você não tiver accesso ao YAML (por exemplo, num CI) você pode aplicar um patch no deployment:
$ kubectl patch deployment puma-deploy -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"$(date +'%s')\"}}}}}"
deployment.apps/puma-deploy patched