Backup automático para S3 não está ocorrendo - Backup é executado, mas não faz upload a menos que seja realizado manualmente via Interface de Administração

Olá,

Tenho o Discourse implantado em um cluster EKS e utilizo Funções IAM para Contas de Serviço (IAM Roles for Service Accounts - IRSA) para permitir o acesso a 2 buckets S3 - um para ativos e outro para backups. A flag s3_use_iam_profile está definida como true.

Minhas configurações estão organizadas de forma que o backup seja diário e deva ser enviado para o bucket de backup S3. No entanto, vejo o backup em execução nos logs, mas quando ele termina e deveria ser enviado para o S3, ele simplesmente pula essa etapa como se não tivesse sido configurado.

Encontrei esta postagem antiga - Discourse does not support service account and IAM role for S3 backup - que afirma que usar IRSA ou um perfil IAM não funciona. Agora, se eu executar o backup manualmente através da Interface de Administração, ele é concluído e enviado para o S3. Há algo mais que preciso configurar para que isso aconteça automaticamente?

Muito obrigado,

Steve

Não sei. Aqui está o que eu verificaria a seguir.

Seu EKS pode estar sendo encerrado antes que o backup seja compactado e enviado para o S3? Talvez falta de espaço ou algo assim?

Olá Jay,

Tudo parece bem. Os logs do pod mostram que o backup automático está sendo concluído com sucesso e terminando corretamente. Parece que a verificação se o remoto está habilitado está retornando false incorretamente.

Estamos executando a v3.0.1, que foi criada a partir deste commit - Commits · discourse/discourse · GitHub

Olhando o código, esta é a linha que está retornando - discourse/lib/backup_restore/backuper.rb at 4571b10ee5a3c46249271b2870d6eaf37994460f · discourse/discourse · GitHub

Encontrei 2 coisas interessantes:

1 - Quando executo o backup manualmente na interface de administração, ele é concluído com sucesso e o arquivo gzip compactado é enviado para o S3.
2 - Parece que a linha de código acima mudou desde a v3.0.1 - a linha passou de return unless @store.remote? para return unless store.remote? - meu Ruby não é ótimo, mas o Google me diz que um @variable é uma variável de instância de self, então há alguma outra configuração que preciso fazer para que isso funcione com a v3.0.1 ou devo atualizar para a v3.0.2?

Obrigado novamente.

Novamente, eu não sei, mas como regra, se você tiver algum comportamento estranho, atualizar geralmente é uma boa ideia.

Parece que deveria estar chamando isto:

Eu não sei por que pode estar falhando.

Ok, obrigado Jay.

Tentarei atualizar e ver se isso ajuda. Avisarei.

Steve

1 curtida