@@ -42,6 +42,7 @@ import (
42
42
"github.com/codeskyblue/go-sh"
43
43
"github.com/pkg/errors"
44
44
"github.com/spf13/cobra"
45
+ core "k8s.io/api/core/v1"
45
46
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
46
47
"k8s.io/apimachinery/pkg/util/sets"
47
48
"k8s.io/client-go/kubernetes"
@@ -296,11 +297,22 @@ func (opt *mongoOptions) backupMongoDB(targetRef api_v1beta1.TargetRef) (*restic
296
297
}
297
298
298
299
// get certificate secret to get client certificate
299
- data , ok := appBindingSecret .Data [MongoClientPemFileName ]
300
+ var pemBytes []byte
301
+ var ok bool
302
+ pemBytes , ok = appBindingSecret .Data [MongoClientPemFileName ]
300
303
if ! ok {
301
- return nil , errors .Wrap (err , "unable to get client certificate from secret." )
304
+ crt , ok := appBindingSecret .Data [core .TLSCertKey ]
305
+ if ! ok {
306
+ return nil , errors .Wrap (err , "unable to retrieve tls.crt from secret." )
307
+ }
308
+ key , ok := appBindingSecret .Data [core .TLSPrivateKeyKey ]
309
+ if ! ok {
310
+ return nil , errors .Wrap (err , "unable to retrieve tls.key from secret." )
311
+ }
312
+ pemBytes = append (crt [:], []byte ("\n " )... )
313
+ pemBytes = append (pemBytes , key ... )
302
314
}
303
- if err := ioutil .WriteFile (filepath .Join (opt .setupOptions .ScratchDir , MongoClientPemFileName ), data , os .ModePerm ); err != nil {
315
+ if err := ioutil .WriteFile (filepath .Join (opt .setupOptions .ScratchDir , MongoClientPemFileName ), pemBytes , os .ModePerm ); err != nil {
304
316
return nil , errors .Wrap (err , "failed to write client certificate" )
305
317
}
306
318
user , err := getSSLUser (filepath .Join (opt .setupOptions .ScratchDir , MongoClientPemFileName ))
@@ -313,7 +325,6 @@ func (opt *mongoOptions) backupMongoDB(targetRef api_v1beta1.TargetRef) (*restic
313
325
"--authenticationMechanism" , "MONGODB-X509" ,
314
326
"--authenticationDatabase" , "$external" ,
315
327
}... )
316
-
317
328
} else {
318
329
adminCreds = []interface {}{
319
330
"--username" , string (appBindingSecret .Data [MongoUserKey ]),
0 commit comments