Skip to content

Commit b3a3507

Browse files
committed
* allow disabling backups without pgbackrest image
* fall back to internal PKI when cert-manager is not ready
1 parent 3b9f570 commit b3a3507

5 files changed

Lines changed: 9 additions & 4 deletions

File tree

e2e-tests/tests/backup-enable-disable/01-create-cluster.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ commands:
88
source ../../functions
99
1010
get_cr "some-name" ${RANDOM} \
11-
| yq '.spec.backups.enabled=false' \
11+
| yq '.spec.backups.enabled=false | del(.spec.backups.pgbackrest)' \
1212
| kubectl -n "${NAMESPACE}" apply -f -

internal/config/config.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,9 @@ func VerifyImageValues(cluster *v1beta1.PostgresCluster) error {
136136
var images []string
137137

138138
backupsEnabled := cluster.Spec.Backups.Enabled == nil || *cluster.Spec.Backups.Enabled
139+
dataSourceRestore := cluster.Spec.DataSource != nil && cluster.Spec.DataSource.PostgresCluster != nil
139140
// K8SPG-710: Image check will fail without a backup section in PostgresCluster
140-
if cluster.BackupSpecFound() && backupsEnabled && PGBackRestContainerImage(cluster) == "" {
141+
if (cluster.BackupSpecFound() && backupsEnabled || dataSourceRestore) && PGBackRestContainerImage(cluster) == "" {
141142
images = append(images, "crunchy-pgbackrest")
142143
}
143144
if PGAdminContainerImage(cluster) == "" &&

internal/controller/postgrescluster/pki.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,8 @@ func (r *Reconciler) isCertManagerInstalled(ctx context.Context, ns string) (boo
372372
case errors.Is(err, certmanager.ErrCertManagerNotFound):
373373
return false, nil
374374
case errors.Is(err, certmanager.ErrCertManagerNotReady):
375-
return true, nil
375+
logging.FromContext(ctx).Info("cert-manager is not ready, falling back to internal PKI")
376+
return false, nil
376377
}
377378
return false, err
378379
}

percona/certmanager/certmanager.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func (c *controller) Check(ctx context.Context, config *rest.Config, ns string)
8383
case errors.Is(err, cmapichecker.ErrCertManagerCRDsNotFound):
8484
return ErrCertManagerNotFound
8585
case errors.Is(err, cmapichecker.ErrWebhookCertificateFailure), errors.Is(err, cmapichecker.ErrWebhookServiceFailure), errors.Is(err, cmapichecker.ErrWebhookDeploymentFailure):
86-
log.Error(cmapichecker.TranslateToSimpleError(err), "cert-manager is not ready")
86+
log.Info("cert-manager is not ready", "reason", cmapichecker.TranslateToSimpleError(err))
8787
return ErrCertManagerNotReady
8888
}
8989
return err

pkg/apis/pgv2.percona.com/v2/perconapgcluster_types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,9 @@ func (b Backups) ToCrunchy(version string) crunchyv1beta1.Backups {
703703
if b.Enabled != nil && !*b.Enabled {
704704
return crunchyv1beta1.Backups{
705705
Enabled: ptr.To(false),
706+
PGBackRest: crunchyv1beta1.PGBackRestArchive{
707+
Image: b.PGBackRest.Image,
708+
},
706709
}
707710
}
708711

0 commit comments

Comments
 (0)