Skip to content

Commit c3ff004

Browse files
pooknullhors
andauthored
K8SPSMDB-1154: disable encryption by default for inMemory (#1912)
* K8SPSMDB-1154: disable encryption by default for inMemory https://perconadev.atlassian.net/browse/K8SPSMDB-1154 * fix * small improvement * fix manifests --------- Co-authored-by: Viacheslav Sarzhan <slava.sarzhan@percona.com>
1 parent 7ed2565 commit c3ff004

File tree

4 files changed

+30
-16
lines changed

4 files changed

+30
-16
lines changed

pkg/apis/psmdb/v1/psmdb_defaults.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,21 @@ func (cr *PerconaServerMongoDB) CheckNSetDefaults(ctx context.Context, platform
637637
return nil
638638
}
639639

640+
func (rs *ReplsetSpec) IsEncryptionEnabled() (bool, error) {
641+
enabled, err := rs.Configuration.isEncryptionEnabled()
642+
if err != nil {
643+
return false, errors.Wrap(err, "failed to parse replset configuration")
644+
}
645+
646+
if enabled == nil {
647+
if rs.Storage.Engine == StorageEngineInMemory {
648+
return false, nil // disabled for inMemory engine by default
649+
}
650+
return true, nil // true by default
651+
}
652+
return *enabled, nil
653+
}
654+
640655
// SetDefaults set default options for the replset
641656
func (rs *ReplsetSpec) SetDefaults(platform version.Platform, cr *PerconaServerMongoDB, log logr.Logger) error {
642657
if rs.VolumeSpec == nil {
@@ -738,6 +753,16 @@ func (rs *ReplsetSpec) SetDefaults(platform version.Platform, cr *PerconaServerM
738753
}
739754
}
740755

756+
if rs.Storage != nil && rs.Storage.Engine == StorageEngineInMemory {
757+
encryptionEnabled, err := rs.IsEncryptionEnabled()
758+
if err != nil {
759+
return errors.Wrap(err, "failed to parse replset configuration")
760+
}
761+
if encryptionEnabled {
762+
return errors.New("inMemory storage engine doesn't support encryption")
763+
}
764+
}
765+
741766
return nil
742767
}
743768

pkg/apis/psmdb/v1/psmdb_types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -578,8 +578,8 @@ func (conf MongoConfiguration) GetTLSMode() (string, error) {
578578
return mode, nil
579579
}
580580

581-
// IsEncryptionEnabled returns nil if "enableEncryption" field is not specified or the pointer to the value of this field
582-
func (conf MongoConfiguration) IsEncryptionEnabled() (*bool, error) {
581+
// isEncryptionEnabled returns nil if "enableEncryption" field is not specified or the pointer to the value of this field
582+
func (conf MongoConfiguration) isEncryptionEnabled() (*bool, error) {
583583
m, err := conf.GetOptions("security")
584584
if err != nil || m == nil {
585585
return nil, err

pkg/psmdb/container.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ func container(ctx context.Context, cr *api.PerconaServerMongoDB, replset *api.R
6666
}...)
6767
}
6868

69-
encryptionEnabled, err := isEncryptionEnabled(cr, replset)
69+
encryptionEnabled, err := replset.IsEncryptionEnabled()
7070
if err != nil {
7171
return corev1.Container{}, err
7272
}
@@ -214,7 +214,7 @@ func containerArgs(ctx context.Context, cr *api.PerconaServerMongoDB, replset *a
214214
args = append(args, "--shardsvr")
215215
}
216216

217-
encryptionEnabled, err := isEncryptionEnabled(cr, replset)
217+
encryptionEnabled, err := replset.IsEncryptionEnabled()
218218
if err != nil {
219219
logf.FromContext(ctx).Error(err, "failed to check if mongo encryption enabled")
220220
}

pkg/psmdb/statefulset.go

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ func StatefulSpec(ctx context.Context, cr *api.PerconaServerMongoDB, replset *ap
127127
VolumeSource: customConf.Type.VolumeSource(configName),
128128
})
129129
}
130-
encryptionEnabled, err := isEncryptionEnabled(cr, replset)
130+
encryptionEnabled, err := replset.IsEncryptionEnabled()
131131
if err != nil {
132132
return appsv1.StatefulSetSpec{}, errors.Wrap(err, "failed to check if encryption is enabled")
133133
}
@@ -583,14 +583,3 @@ func PodTopologySpreadConstraints(cr *api.PerconaServerMongoDB, tscs []corev1.To
583583
}
584584
return result
585585
}
586-
587-
func isEncryptionEnabled(cr *api.PerconaServerMongoDB, replset *api.ReplsetSpec) (bool, error) {
588-
enabled, err := replset.Configuration.IsEncryptionEnabled()
589-
if err != nil {
590-
return false, errors.Wrap(err, "failed to parse replset configuration")
591-
}
592-
if enabled == nil {
593-
return true, nil // true by default
594-
}
595-
return *enabled, nil
596-
}

0 commit comments

Comments
 (0)