cloudnative-pg / cloudnative-pg/cnpg-i
[Feature]: Implementing a CNPG-I Plugin for Logical Backups
- Dominant language
- Go
- Stars
- 94
- Forks
- 15
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 2
Description
### Description
CloudNativePG offers a standard plugin interface called **CNPG-I**, which enables the extension of the operator with custom functionality.
The objective of this project is to design and implement an open-source CNPG-I plugin that performs **logical backups** of PostgreSQL databases within a `Cluster` using **`pg_dump`**. The resulting backup artifacts will be stored in a tier-1 persistent volume.
The plugin should support both **on-demand** and **scheduled** logical backups. Additional key features to be addressed include:
- Compression and optional encryption of backups.
- Asynchronous offload of logical backups to an external object store (e.g., S3).
- Retention policies for both tier-1 and object storage.
- Restore support via `pg_restore` on an existing cluster.
The design must rigorously account for the architecture of CNPG, Kubernetes best practices, and operator lifecycle management. The outcome must align with CloudNativePG’s standards for production readiness, observability, and automation.
### Expected Outcome
-A detailed design discussion documented in an upstream GitHub issue in the CloudNativePG repository, involving mentors, maintainers, and community contributors.
- A new GitHub project under the `cloudnative-pg` organization dedicated to this plugin.
- A fully functional CNPG-I plugin for logical backups, including:
- Kubernetes **Custom Resource Definitions (CRDs)** for user interaction and control.
- Comprehensive documentation, including usage and integration guidance.
- Automated tests integrated into the CloudNativePG CI/CD pipelines.
### Recommended Skills
- Go programming (operator development)
- Kubernetes and CRDs (Custom Resource Definitions)
- Git and GitHub workflows
- CloudNativePG
- Familiarity with PostgreSQL, SQL syntax, and `pg_dump`/`pg_restore`
Contributor guide
Assessment
This issue has not been assessed yet.