Prefect Flows - PostgreSQL Backup

Flows Prefect pour la sauvegarde automatisée de bases PostgreSQL vers S3 (Garage).

Structure

prefect-flows-pg-backup/
├── flows/
│   └── backup.py          # Flow principal de backup
├── deploy.py              # Script de déploiement
├── setup_blocks.py        # Création des Prefect Blocks
├── requirements.txt
└── README.md

Déploiement automatique (CI/CD)

Le workflow Gitea Actions crée les Blocks et déploie les flows automatiquement sur push vers main.

Secrets requis dans Gitea

Dans Settings → Secrets, ajouter :

Secret Description
PREFECT_API_URL https://prefect.taila5ad8.ts.net/api
S3_ACCESS_KEY Access key Garage
S3_SECRET_KEY Secret key Garage
S3_ENDPOINT_URL https://s3.taila5ad8.ts.net
PG_PASSWORD Mot de passe PostgreSQL (netbox)

Déploiement manuel

export PREFECT_API_URL=https://prefect.taila5ad8.ts.net/api
export AWS_ACCESS_KEY_ID=xxx
export AWS_SECRET_ACCESS_KEY=xxx
export AWS_ENDPOINT_URL=https://s3.taila5ad8.ts.net
export PG_PASSWORD=xxx

python setup_blocks.py
python deploy.py

Blocks créés

Block Type Usage
garage-credentials AwsCredentials Credentials S3 pour Garage
netbox-db-password Secret Mot de passe PostgreSQL

Flows déployés

Flow Schedule Description
pg-backup-daily 0 2 * * * Backup quotidien à 2h

Lancement manuel

Dans l'UI Prefect : Deploymentspg-backup-dailyRunQuick Run

Ou via CLI :

prefect deployment run 'pg-backup/pg-backup-daily'
Description
Prefect flows for PostgreSQL backup to S3 (Garage)
Readme 50 KiB
Languages
Python 100%