Copia de seguridad automática a S3 no se realiza - La copia de seguridad se ejecuta pero no se carga a menos que se realice manualmente a través de la interfaz de administración

Hola,

Tengo Discourse desplegado en un clúster EKS y utilizo Roles de IAM para Cuentas de Servicio para permitir el acceso a 2 buckets S3: uno para activos y otro para copias de seguridad. El indicador s3_use_iam_profile está configurado como verdadero.

Mi configuración está hecha para que la copia de seguridad sea diaria y se suba al bucket de copias de seguridad S3. Sin embargo, veo que la copia de seguridad se ejecuta en los registros, pero cuando termina y debería subirse a S3, simplemente omite ese paso como si no se hubiera configurado.

Encontré esta publicación antigua: Discourse does not support service account and IAM role for S3 backup que dice que usar IRSA o un perfil IAM no funciona. Ahora, si ejecuto la copia de seguridad manualmente a través de la UI de Administración, se completa y se sube a S3, así que, ¿hay algo más que necesite configurar para que esto suceda automáticamente?

Muchas gracias,

Steve

No lo sé. Aquí tienes lo que comprobaría a continuación.

¿Podría tu EKS estar siendo eliminado antes de que la copia de seguridad se comprima y se envíe a S3? ¿Quizás se quedó sin espacio o algo así?

Hola Jay,

Todo parece estar bien. Los registros del pod muestran que la copia de seguridad automática se completa correctamente y finaliza sin problemas. Parece que la verificación de si el acceso remoto está habilitado está devolviendo false incorrectamente.

Estamos ejecutando la versión v3.0.1, que se compiló a partir de este commit: Commits · discourse/discourse · GitHub

Mirando el código, esta es la línea que está devolviendo: discourse/lib/backup_restore/backuper.rb at 4571b10ee5a3c46249271b2870d6eaf37994460f · discourse/discourse · GitHub

He encontrado 2 cosas interesantes:

1 - Cuando ejecuto la copia de seguridad manualmente en la interfaz de administración, se completa correctamente y el archivo gzip comprimido se carga en S3.
2 - Parece que la línea de código anterior ha cambiado desde la v3.0.1: la línea ha pasado de return unless @store.remote? a return unless store.remote?. Mi Ruby no es muy bueno, pero Google me dice que @variable es una variable de instancia de self, así que ¿hay alguna otra configuración que deba hacer para que esto funcione con la v3.0.1 o debería actualizar a la v3.0.2?

Gracias de nuevo.

De nuevo, no lo sé, pero como regla general, si tienes un comportamiento extraño, actualizar suele ser una buena idea.

Parece que debería estar llamando a esto:

No sé por qué podría estar fallando.

Ok, gracias Jay.

Intentaré actualizar y ver si eso ayuda. Te avisaré.

Steve

1 me gusta