@@ -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