Ok. You get 2 MRs for the price of one :

In docker-compose tree: https://git.lavasoftware.org/lava/pkg/docker-compose/-/merge_requests/37

In LAVA documentation: https://git.lavasoftware.org/lava/lava/-/merge_requests/1479

 

May I ask an update about our other pending MRs? ;-)

 

Thanks a lot in advance,

 

Philippe

 

 

From: Lava-users <lava-users-bounces@lists.lavasoftware.org> On Behalf Of Remi Duraffort
Sent: Wednesday, April 14, 2021 9:20 AM
To: Philippe Mazet (OSS) <philippe.mazet@oss.nxp.com>
Cc: lava-users@lists.lavasoftware.org <lava-users@lavasoftware.org>
Subject: Re: [Lava-users] LAVA master backup/restore

 

Hello,

 

if you have some time, a patch to update the documentation would be greatly appreciated !!

 

 

Thanks a lot.

 

Le ven. 2 avr. 2021 à 11:34, Philippe Mazet (OSS) <philippe.mazet@oss.nxp.com> a écrit :

Hi Rémi,

 

I finally found this to work:

For creating the backup, run backup command as postgres user, eg:

docker exec --user postgres docker-compose_db_1 bash -c "pg_dump --username=lavaserver lavaserver > /var/lib/postgresql/data/lavaserver.sql"

 

Then for restoring backup, place the sql file in a folder that will be mounted as a volume in postgres container, on /docker-entrypoint-initdb.d/.

On way to do this is to create a dedicated docker-compose file (docker-compose-restore-backup.yaml) that will be appended to docker-compose.yaml:

version: "3.4"

services:

  db:

    volumes:

    - ./initdb.d:/docker-entrypoint-initdb.d

 

 

Then:

docker-compose stop

docker container rm docker-compose_db_1; docker volume rm lava-server-pgdata

docker-compose -f docker-compose.yaml -f docker-compose-restore-backup.yaml up -d

 

I hope that helps.

 

Philippe

 

 

From: Lava-users <lava-users-bounces@lists.lavasoftware.org> On Behalf Of Remi Duraffort
Sent: Friday, March 26, 2021 4:56 PM
To: Philippe Mazet (OSS) <philippe.mazet@oss.nxp.com>
Cc: lava-users@lists.lavasoftware.org <lava-users@lavasoftware.org>
Subject: Re: [Lava-users] LAVA master backup/restore

 

Hello Philippe,

 

I haven't tried so I don't have the detailed procedure. When you find out, could you share the procedure ?

 

 

Thanks

 

Le mar. 23 mars 2021 à 11:28, Philippe Mazet (OSS) <philippe.mazet@oss.nxp.com> a écrit :

Thanks Rémi, but result is the same when I start only the db container, even after a full cleanup (docker container rm docker-compose_db_1 && docker volume rm lava-server-pgdata):
ERROR:  database "lavaserver" already exists

Seems to be related somehow to "POSTGRES_USER: lavaserver" in docker-compose.yaml.
Reading the entrypoint script for postgres (https://github.com/docker-library/postgres/blob/master/docker-entrypoint.sh), I thought using PGUSER could help, but I didn't manage yet to get that working.
I will continue digging into this... but if you have a detailed procedure somewhere, please share 😊

Thanks a lot!

Philippe



From: Lava-users <lava-users-bounces@lists.lavasoftware.org> On Behalf Of Remi Duraffort
Sent: Monday, March 22, 2021 9:25 AM
To: Philippe Mazet (OSS) <philippe.mazet@oss.nxp.com>
Cc: lava-users@lists.lavasoftware.org <lava-users@lavasoftware.org>
Subject: Re: [Lava-users] LAVA master backup/restore



Le jeu. 18 mars 2021 à 16:22, Philippe Mazet (OSS) <philippe.mazet@oss.nxp.com> a écrit :
Hi all,

I am using the docker-compose solution to run a master: https://git.lavasoftware.org/lava/pkg/docker-compose
I was wondering how to extract a backup of the DB, and re-inject it in a different instance.

I found that postgres image has its own "restore" mechanism, based on initdb.d folder, as mentioned in the documentation:
https://registry.hub.docker.com/_/postgres/

The entrypoint.sh script (https://github.com/docker-library/postgres/blob/master/docker-entrypoint.sh) handles the restore whenever the folder is /docker-entrypoint-initdb.d/ contains a .sql file.

But when we store a backup in the container's  /docker-entrypoint-initdb.d/ folder, and remove both the postgres image and its db-data volume, we get this error on next start:
ERROR:  database "lavaserver" already exists
Full startup log attached.

Questions:
- Does Linaro's docker-compose solution modify postgres restore mechanism in any way?
 
I guess that's only because lava will automatically create an empty lavaserver database. So in your use case, you should only start the db service and not any lava-* services. When the restoration has been done, you can restart every lava services.
 
- How do you handle backup/restore at linaro?

Thanks a lot in advance,


Philippe Mazet
NXP Semiconductors - Edge Processing
Email: philippe.mazet@nxp.com



_______________________________________________
Lava-users mailing list
Lava-users@lists.lavasoftware.org
https://lists.lavasoftware.org/mailman/listinfo/lava-users



--
Rémi Duraffort
LAVA Architect
Linaro


 

--

Rémi Duraffort

LAVA Architect

Linaro


 

--

Rémi Duraffort

TuxArchitect

Linaro