Skip to main content
Uma atualização substitui a tag da imagem. A nova versão migra o banco de dados ao iniciar, e essas migrações precisam ser executadas uma única vez, a partir de um pod, enquanto nenhum pod mais antigo estiver em execução. No Kubernetes, isso descarta uma simples atualização gradual (rolling update) de um StatefulSet escalado.
Faça um backup consistente antes de cada atualização, com o Ayakaleaf Pro parado. Leia as notas de versão para conhecer as etapas da versão para a qual você está atualizando.
Antes de começar, em cada nó que executa o Ayakaleaf Pro, baixe com sudo docker pull qualquer imagem do TeX Live listada pela nova versão ou pela sua nova configuração.
1

Pare o Ayakaleaf Pro

2

Faça backup

O MongoDB, a partir de qualquer membro:
O volume de dados, por meio de um pod de curta duração que o monta (ele é alocado no nó do volume):
Faça o mesmo com o volume do git-bridge (data-git-bridge-0) e guarde uma cópia do Secret overleaf-secrets. Se o seu armazenamento oferecer suporte a VolumeSnapshots, um snapshot dos volumes tem o mesmo efeito.
3

Altere a versão e inicie

Defina a nova tag em 40-overleaf.yaml (e em 45-git-bridge.yaml, que precisa usar a mesma tag) e, em seguida:
O Deployment usa strategy: Recreate, então, mesmo com uma tag alterada, nunca são executadas duas versões ao mesmo tempo.

MongoDB e Redis

Atualize-os separadamente do Ayakaleaf Pro. Para o MongoDB, siga Atualizando o MongoDB (uma versão principal por vez, featureCompatibilityVersion após cada etapa); um replica set adota a nova imagem um membro por vez quando você altera a imagem em 10-mongo.yaml, porque o StatefulSet substitui mongo-2, mongo-1 e mongo-0 sucessivamente.

Revertendo

Pare o Ayakaleaf Pro como acima, restaure o MongoDB a partir do arquivo (mongorestore --drop --archive --gzip) e os volumes ou buckets a partir do backup, defina a tag antiga e inicie novamente. De outra forma, as migrações da nova versão não podem ser desfeitas.

Q&A

Resposta: Com podManagementPolicy: OrderedReady, overleaf-1 só inicia quando overleaf-0 está pronto, e uma atualização gradual não substitui um pod que nunca ficou pronto. Depois de corrigir a causa, por exemplo uma configuração incorreta no ConfigMap, exclua o pod travado para que o StatefulSet o crie novamente a partir do template atual:
Encontramos isso no nosso cluster de teste depois que uma configuração impediu overleaf-0 de ficar pronto; excluir o pod permitiu que as três réplicas iniciassem.
Última modificação em 2 de novembro de 2026