Skip to main content

Installation

Install prod-ready version​

This plugin can be installed and used by Kubernetes and CloudNativePG users via the manifest located at the root of the repository.

note

Currently this plugin depends on:

  • CloudNativePG (version 1.27 or later).
  • cert-manager to manage TLS certificates and secure authentication between the Plugin controller and the CloudNativePG controller.
kubectl apply -f \
https://raw.githubusercontent.com/dalibo/cnpg-plugin-pgbackrest/main/manifest.yaml

This will install the plugin in the same Namespace as the operator.

Verifications​

The installation can be verified by checking the presence and status of the pgbackrest-controller deployment in the namespace used by the CloudNativePG operator (e.g., cnpg-system).

kubectl get pod -n cnpg-system
NAME READY STATUS RESTARTS AGE
cnpg-controller-manager-65bfdb64c9-hwvpd 1/1 Running 0 9m4s
pgbackrest-controller-fc9f4d5f4-5w6wt 1/1 Running 0 15s

And also by confirming that the Custom Resource Definition stanza.pgbackrest.dalibo.com is installed.

kubectl api-resources --api-group pgbackrest.dalibo.com
NAME SHORTNAMES APIVERSION NAMESPACED KIND
stanzas pgbackrest.dalibo.com/v1 true Stanza

Testing versions​

To use the latest testing or unstable version of this plugin, apply the test kustomize overlay. It is configured to pull the latest alpha/beta images from Docker Hub. You can simply run :

kubectl apply -k kubernetes/test

Dev version​

  1. Build locally the Docker images and load them to a registry that is accessible by your Kubernetes cluster.

    You can build them locally with the command :

    make build-images

    It will execute the appropriate docker build commands.

  2. Install the plugin by applying the manifest located in the kubernetes directory :

    kubectl apply -k ./kubernetes/dev
note

Kustomize layers and overlays are available in the kubernetes directory. You can add your own customisation to patch the resources provided by default.

Customisation​

The image used by the CloudNativePG instance sidecar containers can be customised by adding the SIDECAR_IMAGE SIDECAR_EXPORTER_IMAGE (when configured) environment variables to the pgbackrest plugin controller container.

For example, this patch can be used to add the SIDECAR_IMAGE and SIDECAR_EXPORTER_IMAGE variable :

apiVersion: apps/v1
kind: Deployment
metadata:
name: pgbackrest-controller
namespace: cnpg-system
spec:
template:
spec:
containers:
- name: pgbackrest-controller
env:
- name: SIDECAR_IMAGE
value: <my_own_image>
- name: SIDECAR_EXPORTER_IMAGE
value: <my_own_image>

By default, the plugin installation creates a Secret containing the image references used by the sidecar containers (and the exporter sidecar, when enabled). The controller reads these values through the SIDECAR_IMAGE and SIDECAR_EXPORTER_IMAGEenvironment variables.

This mechanism allows image references to be managed declaratively by the installation manifests while still providing a simple way to override them. Users can customize the images either by updating the Secret or by explicitly setting the corresponding environment variables on the plugin controller Deployment.