Recreate the parallel WAL-restore coverage in the plugin repo: a 2-instance
cluster archiving to minio with wal.maxParallel=3, forged WAL segments on the
object store, and assertions on the plugin's prefetch/spool/end-of-wal-stream
state machine driven through `/controller/manager wal-restore` on the standby.
Part of cloudnative-pg/cloudnative-pg#10954.
Signed-off-by: Armando Ruocco <armando.ruocco@enterprisedb.com>
When an ObjectStore's credentials change (e.g., secret rename), the
RBAC Role granting the Cluster's ServiceAccount access to those
secrets was not updated because nothing triggered a Cluster
reconciliation.
Implement the ObjectStore controller's Reconcile to detect affected
Roles and update their rules directly, without needing access to
Cluster objects. The controller lists Roles by a label set by the
Pre hook, inspects their rules to find which ObjectStores they
reference, fetches those ObjectStores, and patches the rules to
match the current specs.
Replace the custom setOwnerReference helper with
controllerutil.SetControllerReference. Add dynamic CNPG scheme
registration (internal/scheme) to the operator, instance, and
restore managers.
Signed-off-by: Armando Ruocco <armando.ruocco@enterprisedb.com>
Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Signed-off-by: Gabriele Quaresima <gabriele.quaresima@enterprisedb.com>
Co-authored-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Co-authored-by: Gabriele Quaresima <gabriele.quaresima@enterprisedb.com>
The e2e kustomize overlay tried to match
`docker.io/library/plugin-barman-cloud` but the base kustomization at
`kubernetes/kustomization.yaml` already transforms the bare
`plugin-barman-cloud` image to the GHCR name. The overlay must match
the base's output (`ghcr.io/cloudnative-pg/plugin-barman-cloud-testing`)
to override it.
Broken since b7daaac (#89) changed the base kustomization's newName
from `docker.io/library/plugin-barman-cloud` to the GHCR image without
updating the e2e overlay.
Closes#840
Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Rework the e2e test to expect a working connection to a cluster when
they start. Developers can create their own clusters and run the tests.
Removed the code used to start kind clusters within the e2e tests.
Reworked the Taskfile to define two environments where the tests can run:
1. An ephemeral one running within Dagger, using the k3s module, to be
used by the CI.
2. A persistent one created with Kind, requiring the kind binary, to be
used for development and debugging when the ephemeral cluster is not
enough.
Signed-off-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
Signed-off-by: Leonardo Cecchi <leonardo.cecchi@enterprisedb.com>
Co-authored-by: Leonardo Cecchi <leonardo.cecchi@enterprisedb.com>
Run basic backup and restore tests for the plugin. Use MinIO for S3,
Azurite for ACS and fake-gcs-server for GCS.
Signed-off-by: Francesco Canovai <francesco.canovai@enterprisedb.com>
Create the CI and testing infrastructure for e2e testing. Running the ci
task now will push the plugin and sidecar images to a local registry,
start kind, install the CloudNativePG and cert-manager operators, and
then install the plugin-barman-cloud one.
No actual test is implemented.
Signed-off-by: Francesco Canovai <francesco.canovai@enterprisedb.com>