Atualização de Imagem

Passos para atualização

Para descobrir o namespace da aplicação, insira o comando abaixo em seu terminal:

kubectl get ns

        Antes de seguir, é importante saber qual namespace deve atualizar: dev, hml ou prd.

Procure pelo namespace da imagem a ser atualizada, no nosso caso o core-prd:

image.png

Antes de atualizar a imagem, acesse o VS Code, encontre a pasta do core.prd.30-core-django-configmap e modifique o valor da variável MAINTENANCE_MODE para True e salve.

image.png

Insira no terminal integrado o comando abaixo, ele listará os arquivos modificados.

git status

image.png

Em seguida, digite o comando abaixo:

kubectl apply -f CORE/PRD/30-core-django-configmap.yaml -n core-prd

isso atualizará a página do sistema core.scielo.org/admin para modo de manutenção (funcionalidade disponível a partir de v2.6.0)

image.png

Isso pode levar alguns segundos, mas caso não entre em modo de manutenção, procure pelo pod do django e mate-o com os seguintes comandos:

kubectl get pods -n core-prd  //listar os pods
kubectl delete --force pod/<codigo-do-pod-do-django> -n core-prd

 

image.png

Após realizar o procedimento acima, estamos prontos para continuar a atualização da imagem.

Próximo passo é realizar o backup da base de dados para ser possível reverter caso a migração de banco de dados apresente problema

Acesse o servidor do Postgres node01-postgresql.scielo.org para realizarmos o backup:

ssh gandalf@node01-postgresql.scielo.org

image.png

A senha do usuário gandalf é encontrada no passbolt.scielo.org

Troque o usuário gandalf pelo o usuário postgres para continuar o backup.

sudo su - postgres

Acesso o diretório que contém os backups

image.png

Insira o comando abaixo para realizar o backup do banco de dados:

pg_dump -U suporte.core -d prd_core -h 192.168.2.190  -p 5433 > dump-prd-coreDIA/MES/ANO.sql

Caso necessite de senha, o usuário suporte.core tem a senha salva no passbolt.scielo.org

image.png

 

 

 

  1. Atualizar a aplicação com a versão mencionada
  2. Interromper os containers: celeryworker e redis nesta ordem
  3. Acessar o contêiner do django:
  4. Executar no shell da aplicação django:
python manage.py makemigrations
python manage.py migrate

  1. Dependendo do resultado do comando anterior, pode haver novas instruções na tela como, por exemplo, executar
python manage.py makemigrations --merge


Se sim, execute todas as instruções que aparecerem na tela.

Por exemplo:

python manage.py makemigrations --merge
python manage.py migrate

  1. Por fim, por garantia, repita:
python manage.py makemigrations
python manage.py migrate

até que a mensagem final seja 'No migrations to apply'

  1. Reiniciar redis e celeryworker nesta ordem
  2. No contêiner do django, modificar o valor da variável MAINTENANCE_MODE para False. Acessar core.scielo.org/admin e visualizar a página de login do sistema (funcionalidade disponível a partir de v2.6.3)

Revision #4
Created 5 April 2024 19:49:15 by Jonathan Soares
Updated 23 May 2024 13:05:07 by Jonathan Soares