Skip to content

Commit d98e790

Browse files
Preserve "aws-s3-ca.crt" When Recreating Cluster
Ensures the "aws-s3-ca.crt" file in the pgBackRest Secret is preserved when recreating a cluster after deleting with "--keep-backups". [sc-12984]
1 parent 3959b31 commit d98e790

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

internal/apiserver/clusterservice/clusterimpl.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -976,13 +976,12 @@ func CreateCluster(request *msgs.CreateClusterRequest, ns, pgouser string) msgs.
976976
// save the S3 credentials in a single map so it can be used to either create a new
977977
// secret or update an existing one
978978
s3Credentials := map[string][]byte{
979-
util.BackRestRepoSecretKeyAWSS3KeyAWSS3CACert: backrestS3CACert,
980979
util.BackRestRepoSecretKeyAWSS3KeyAWSS3Key: []byte(request.BackrestS3Key),
981980
util.BackRestRepoSecretKeyAWSS3KeyAWSS3KeySecret: []byte(request.BackrestS3KeySecret),
982981
util.BackRestRepoSecretKeyAWSS3KeyGCSKey: backrestGCSKey,
983982
}
984983

985-
_, err = apiserver.Clientset.CoreV1().Secrets(request.Namespace).
984+
backrestSecret, err := apiserver.Clientset.CoreV1().Secrets(request.Namespace).
986985
Get(ctx, secretName, metav1.GetOptions{})
987986

988987
switch {
@@ -1019,6 +1018,15 @@ func CreateCluster(request *msgs.CreateClusterRequest, ns, pgouser string) msgs.
10191018
resp.Status.Msg = fmt.Sprintf("could not query if backrest repo secret exits: %s", err)
10201019
return resp
10211020
default:
1021+
// if an "aws-s3-ca.crt" file is already in the Secret and "backrestS3CACert" is empty
1022+
// (indicating that a custom CA wasn't provided), then ensure it is included when
1023+
// updating the Secret
1024+
if _, ok :=
1025+
backrestSecret.Data[util.BackRestRepoSecretKeyAWSS3KeyAWSS3CACert]; ok &&
1026+
len(backrestS3CACert) == 0 {
1027+
s3Credentials[util.BackRestRepoSecretKeyAWSS3KeyAWSS3CACert] =
1028+
backrestSecret.Data[util.BackRestRepoSecretKeyAWSS3KeyAWSS3CACert]
1029+
}
10221030
// the pgBackRest repo config secret already exists, update any provided
10231031
// S3 credential information
10241032
err = updateRepoSecret(apiserver.Clientset, secretName, request.Namespace, s3Credentials)

0 commit comments

Comments
 (0)