cloudnative-pg / cnpg-i

CloudNativePG Interface (CNPG-I)
Apache License 2.0
27 stars 4 forks source link

CloudNativePG Interface (CNPG-I)

Status: PROPOSAL

Why do we need CNPG-I?

The CloudNativePG code base has sensibly grown over the years, increasing the cognitive load required to work with it and creating a bottleneck in the submission of new pull requests in the open source project itself.

The risk we are currently facing is that the delivery of new features is slowed down further and further as the project grows both in code base and adoption.

As with every successful open source project indeed, everyday maintainers need to face the dilemma to reject or approve a pull request in the code base knowing that, when it gets committed, it’s forever.

We need to find a different and more pluggable way of adding new behaviors and capabilities to the operator, not necessarily in the open source space.

The proposal here is to follow a pattern that’s already been successfully implemented in Kubernetes through the Container Storage Interface (CSI), and give birth to a new open source initiative within CloudNativePG called the “CloudNativePG Interface (CNPG-I)”.

The CNPG-I standard API, based on gRPC, should enable new organizations to join EDB (original creator of CloudNativePG) and develop a plugin or a collection of them - instead of creating, maintaining, and distributing a fork of CloudNativePG.

Some of the advantages of CNPG-I can bring are:

Some examples of plugins

For example, plugins might involve:

Trademarks

Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada, and used with their permission.