Skip to content

Commit 4201854

Browse files
1gtmtamalsaha
andauthored
[cherry-pick] Switch to tls secret from pem in AppBinding (#255) (#300)
/cherry-pick Signed-off-by: Tamal Saha <tamal@appscode.com> Co-authored-by: Tamal Saha <tamal@appscode.com>
1 parent a106836 commit 4201854

File tree

3 files changed

+31
-6
lines changed

3 files changed

+31
-6
lines changed

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ require (
1212
github.com/pkg/errors v0.9.1
1313
github.com/spf13/cobra v1.0.0
1414
github.com/yudai/gojsondiff v1.0.0
15+
k8s.io/api v0.18.5
1516
k8s.io/apiextensions-apiserver v0.18.5
1617
k8s.io/apimachinery v0.18.5
1718
k8s.io/client-go v12.0.0+incompatible

pkg/backup.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import (
4242
"github.com/codeskyblue/go-sh"
4343
"github.com/pkg/errors"
4444
"github.com/spf13/cobra"
45+
core "k8s.io/api/core/v1"
4546
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
4647
"k8s.io/apimachinery/pkg/util/sets"
4748
"k8s.io/client-go/kubernetes"
@@ -303,11 +304,22 @@ func (opt *mongoOptions) backupMongoDB(targetRef api_v1beta1.TargetRef) (*restic
303304
}
304305

305306
// get certificate secret to get client certificate
306-
data, ok := appBindingSecret.Data[MongoClientPemFileName]
307+
var pemBytes []byte
308+
var ok bool
309+
pemBytes, ok = appBindingSecret.Data[MongoClientPemFileName]
307310
if !ok {
308-
return nil, errors.Wrap(err, "unable to get client certificate from secret.")
311+
crt, ok := appBindingSecret.Data[core.TLSCertKey]
312+
if !ok {
313+
return nil, errors.Wrap(err, "unable to retrieve tls.crt from secret.")
314+
}
315+
key, ok := appBindingSecret.Data[core.TLSPrivateKeyKey]
316+
if !ok {
317+
return nil, errors.Wrap(err, "unable to retrieve tls.key from secret.")
318+
}
319+
pemBytes = append(crt[:], []byte("\n")...)
320+
pemBytes = append(pemBytes, key...)
309321
}
310-
if err := ioutil.WriteFile(filepath.Join(opt.setupOptions.ScratchDir, MongoClientPemFileName), data, os.ModePerm); err != nil {
322+
if err := ioutil.WriteFile(filepath.Join(opt.setupOptions.ScratchDir, MongoClientPemFileName), pemBytes, os.ModePerm); err != nil {
311323
return nil, errors.Wrap(err, "failed to write client certificate")
312324
}
313325
user, err := getSSLUser(filepath.Join(opt.setupOptions.ScratchDir, MongoClientPemFileName))

pkg/restore.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import (
3535
"github.com/appscode/go/types"
3636
"github.com/pkg/errors"
3737
"github.com/spf13/cobra"
38+
core "k8s.io/api/core/v1"
3839
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3940
"k8s.io/apimachinery/pkg/util/sets"
4041
"k8s.io/client-go/kubernetes"
@@ -233,11 +234,22 @@ func (opt *mongoOptions) restoreMongoDB(targetRef api_v1beta1.TargetRef) (*resti
233234
}
234235

235236
// get certificate secret to get client certificate
236-
data, ok := appBindingSecret.Data[MongoClientPemFileName]
237+
var pemBytes []byte
238+
var ok bool
239+
pemBytes, ok = appBindingSecret.Data[MongoClientPemFileName]
237240
if !ok {
238-
return nil, errors.Wrap(err, "unable to get client certificate from secret.")
241+
crt, ok := appBindingSecret.Data[core.TLSCertKey]
242+
if !ok {
243+
return nil, errors.Wrap(err, "unable to retrieve tls.crt from secret.")
244+
}
245+
key, ok := appBindingSecret.Data[core.TLSPrivateKeyKey]
246+
if !ok {
247+
return nil, errors.Wrap(err, "unable to retrieve tls.key from secret.")
248+
}
249+
pemBytes = append(crt[:], []byte("\n")...)
250+
pemBytes = append(pemBytes, key...)
239251
}
240-
if err := ioutil.WriteFile(filepath.Join(opt.setupOptions.ScratchDir, MongoClientPemFileName), data, os.ModePerm); err != nil {
252+
if err := ioutil.WriteFile(filepath.Join(opt.setupOptions.ScratchDir, MongoClientPemFileName), pemBytes, os.ModePerm); err != nil {
241253
return nil, errors.Wrap(err, "failed to write client certificate")
242254
}
243255
user, err := getSSLUser(filepath.Join(opt.setupOptions.ScratchDir, MongoClientPemFileName))

0 commit comments

Comments
 (0)