Détection automatique
pgpilot inspecte les Services du cluster, teste la joignabilité et relève la version de chaque instance. La config sort préremplie.
app/postgres-main pg 16.2 app/postgres-events pg 15.6 billing/postgres-main pg 16.1
pgpilot détecte tes instances PostgreSQL dans Kubernetes, génère la config et déploie des CronJobs qui font pg_dump → S3. Aucun opérateur, aucun sidecar, aucune modification de pod.
Aucun opérateur à installer, aucun CRD, aucun Helm chart. pgpilot parle à l'API Kubernetes avec tes droits existants et crée des objets standards que tu peux lire, éditer ou supprimer à la main.
pgpilot lit ta kubeconfig, scanne le cluster et trouve les Services PostgreSQL joignables. Il écrit un backup.yaml prérempli — pas une ligne de YAML à la main.
Tu renseignes le schedule, le bucket et la rétention. pgpilot crée un CronJob par base dans le namespace concerné. Rien d'autre ne bouge dans le cluster.
Un backup manuel pour confirmer que le dump part bien vers S3. Ensuite le cron prend le relais, et status te dit en une ligne si tout tourne.
pgpilot lit le cluster, écrit ta config et pose des CronJobs standards. Ensuite il sort du chemin — si tu le désinstalles, tes backups continuent.
pgpilot reste petit par choix. Le comportement vit dans ton backup.yaml, versionné dans ton repo — pas dans une console web.
$pgpilot detectscan du cluster prod-eu-west-1…3 instances PostgreSQL trouvéesNAMESPACE SERVICE VERSION ÉTATapp postgres-main pg 16.2 reachableapp postgres-events pg 15.6 reachablebilling postgres-main pg 16.1 reachable→ config écrite : ~/.config/pgpilot/backup.yaml→ renseigne ton bucket S3 et tes credentials
Sauvegarder et restaurer des bases PostgreSQL dans Kubernetes. Pas de dashboard, pas de télémétrie, pas de compte à créer.
pgpilot inspecte les Services du cluster, teste la joignabilité et relève la version de chaque instance. La config sort préremplie.
app/postgres-main pg 16.2 app/postgres-events pg 15.6 billing/postgres-main pg 16.1
Schedule, rétention, bucket, credentials : un seul fichier YAML par environnement, versionnable dans ton repo.
schedule: '0 2 * * *' retention: 7d bucket: acme-backups endpoint: minio.internal
Les credentials référencent tes Secrets Kubernetes existants. pgpilot ne les lit pas et ne les écrit nulle part.
db_password: from: k8s-secret://app/env#DB_PASSWORD
Liste les archives d'une base, choisis un point de restauration, confirme. pgpilot lance un Job et suit son exécution.
▸ 20260908T030000Z.dump.gz 412 MB 20260907T030000Z.dump.gz 398 MB
AWS S3, ou n'importe quel stockage compatible via un endpoint custom. Un champ à changer, rien d'autre.
s3://acme-backups/myapp/postgres/
Pas de runtime, pas de compte, pas de plan tarifaire. Télécharge, rends exécutable, lance.
$curl -L github.com/theo-mrn/pgpilot/releases/latest/…
-o /usr/local/bin/pgpilot && chmod +x /usr/local/bin/pgpilot