Skip to content

Commit b1e03f1

Browse files
committed
Upgrade pgBackRest settings from 4.2 and earlier
The format of pgBackRest secrets changed in 4.3, and operator settings started being saved to the cluster in 4.4. Issue: [ch9063]
1 parent 6d746c9 commit b1e03f1

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

internal/operator/cluster/upgrade.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import (
3636
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3737
"k8s.io/apimachinery/pkg/fields"
3838
"k8s.io/client-go/kubernetes"
39+
"sigs.k8s.io/yaml"
3940
)
4041

4142
// Store image names as constants to use later
@@ -411,6 +412,23 @@ func recreateBackrestRepoSecret(clientset kubernetes.Interface, clustername, nam
411412
secretName := clustername + "-backrest-repo-config"
412413
secret, err := clientset.CoreV1().Secrets(namespace).Get(secretName, metav1.GetOptions{})
413414

415+
// 4.1, 4.2
416+
if err == nil {
417+
if b, ok := secret.Data["aws-s3-ca.crt"]; ok {
418+
config.BackrestS3CA = b
419+
}
420+
if b, ok := secret.Data["aws-s3-credentials.yaml"]; ok {
421+
var parsed struct {
422+
Key string `yaml:"aws-s3-key"`
423+
KeySecret string `yaml:"aws-s3-key-secret"`
424+
}
425+
if err = yaml.Unmarshal(b, &parsed); err == nil {
426+
config.BackrestS3Key = parsed.Key
427+
config.BackrestS3KeySecret = parsed.KeySecret
428+
}
429+
}
430+
}
431+
414432
// >= 4.3
415433
if err == nil {
416434
if b, ok := secret.Data["aws-s3-ca.crt"]; ok {
@@ -514,6 +532,17 @@ func preparePgclusterForUpgrade(pgcluster *crv1.Pgcluster, parameters map[string
514532
// cluster operations in this version of the Postgres Operator
515533
pgcluster.ObjectMeta.Labels[config.LABEL_BACKREST] = "true"
516534

535+
// added in 4.2 and copied from configuration in 4.4
536+
if pgcluster.Spec.BackrestS3Bucket == "" {
537+
pgcluster.Spec.BackrestS3Bucket = operator.Pgo.Cluster.BackrestS3Bucket
538+
}
539+
if pgcluster.Spec.BackrestS3Endpoint == "" {
540+
pgcluster.Spec.BackrestS3Endpoint = operator.Pgo.Cluster.BackrestS3Endpoint
541+
}
542+
if pgcluster.Spec.BackrestS3Region == "" {
543+
pgcluster.Spec.BackrestS3Region = operator.Pgo.Cluster.BackrestS3Region
544+
}
545+
517546
// added in 4.4
518547
if pgcluster.Spec.BackrestS3VerifyTLS == "" {
519548
pgcluster.Spec.BackrestS3VerifyTLS = operator.Pgo.Cluster.BackrestS3VerifyTLS

0 commit comments

Comments
 (0)