@@ -41,7 +41,7 @@ CNPG-I is inspired by the Kubernetes
4141The operator communicates with registered plugins using ** gRPC** , following the
4242[ CNPG-I protocol] ( https://github.com/cloudnative-pg/cnpg-i/blob/main/docs/protocol.md ) .
4343
44- CloudNativePG discovers plugins ** at startup ** . You can register them in one of two ways:
44+ You can register plugins in one of two ways:
4545
4646- Sidecar container – run the plugin inside the operator’s Deployment
4747- Standalone Deployment – run the plugin as a separate workload in the same
@@ -51,7 +51,9 @@ In both cases, the plugin must be packaged as a container image.
5151
5252### Sidecar Container
5353
54- When running as a sidecar, the plugin must expose its gRPC server via a ** Unix
54+ Sidecar plugins are discovered once at operator startup.
55+
56+ The plugin must expose its gRPC server via a ** Unix
5557domain socket** . This socket must be placed in a directory shared with the
5658operator container, mounted at the path set in ` PLUGIN_SOCKET_DIR ` (default:
5759` /plugin ` ).
8991Running a plugin as its own Deployment decouples its lifecycle from the
9092operator’s and allows independent scaling. In this setup, the plugin exposes a
9193TCP gRPC endpoint behind a Service, with **mTLS** for secure communication.
92-
93- :::warning
94- CloudNativePG does **not** discover plugins dynamically. If you deploy a new
95- plugin, you must **restart the operator** to detect it.
96- :::
94+ Standalone plugins are discovered dynamically by watching for Services with the
95+ required labels and annotations — no operator restart is needed.
9796
9897Example Deployment:
9998
0 commit comments