Skip to content

Commit 7809003

Browse files
committed
add support for TLS in CNPG
Signed-off-by: Utkarsh Srivastava <srivastavautkarsh8097@gmail.com>
1 parent 5de29d5 commit 7809003

2 files changed

Lines changed: 23 additions & 3 deletions

File tree

pkg/system/db_reconciler.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,15 @@ func (r *Reconciler) reconcileClusterSpec(dbSpec *nbv1.NooBaaDBSpec) error {
303303
Enabled: true,
304304
}
305305

306+
if r.CNPGCluster.Spec.Certificates == nil {
307+
r.CNPGCluster.Spec.Certificates = &cnpgv1.CertificatesConfiguration{}
308+
}
309+
r.CNPGCluster.Spec.Certificates.ServerAltDNSNames = []string{
310+
r.ServiceDbPg.Name,
311+
r.ServiceDbPg.Name + "." + r.Request.Namespace,
312+
r.ServiceDbPg.Name + "." + r.Request.Namespace + ".svc",
313+
}
314+
306315
r.CNPGCluster.Spec.FailoverDelay = defaultFailoverDelaySec
307316

308317
r.setPostgresConfig()
@@ -608,6 +617,17 @@ func (r *Reconciler) setPostgresConfig() {
608617
}
609618
r.cnpgLog("PGTune config: memory=%dKB, cpu=%d, endpoints=%d", totalMemoryKB, cpuNum, endpointMaxCount)
610619

620+
// propagate TLS security settings to the PostgreSQL server
621+
tlsSec := r.NooBaa.Spec.Security.APIServerSecurity
622+
if tlsSec != nil && !util.IsTLSConfigDisabled() {
623+
if tlsSec.TLSMinVersion != nil {
624+
overrideParameters["ssl_min_protocol_version"] = string(*tlsSec.TLSMinVersion)
625+
}
626+
if len(tlsSec.TLSCiphers) > 0 {
627+
overrideParameters["ssl_ciphers"] = util.MapCiphersToOpenSSL(tlsSec.TLSCiphers)
628+
}
629+
}
630+
611631
// apply any user-specified DBConf overrides on top of the calculated values
612632
if r.NooBaa.Spec.DBSpec.DBConf != nil {
613633
for k, v := range r.NooBaa.Spec.DBSpec.DBConf {
@@ -881,6 +901,7 @@ func (r *Reconciler) wasClusterSpecChanged(existingClusterSpec *cnpgv1.ClusterSp
881901
!reflect.DeepEqual(existingClusterSpec.Monitoring, r.CNPGCluster.Spec.Monitoring) ||
882902
!reflect.DeepEqual(existingClusterSpec.PostgresConfiguration.Parameters, r.CNPGCluster.Spec.PostgresConfiguration.Parameters) ||
883903
!reflect.DeepEqual(existingClusterSpec.Backup, r.CNPGCluster.Spec.Backup) ||
904+
!reflect.DeepEqual(existingClusterSpec.Certificates, r.CNPGCluster.Spec.Certificates) ||
884905
existingClusterSpec.PriorityClassName != r.CNPGCluster.Spec.PriorityClassName ||
885906
existingClusterSpec.FailoverDelay != r.CNPGCluster.Spec.FailoverDelay
886907
}

pkg/system/phase2_creating.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -577,14 +577,13 @@ func (r *Reconciler) setDesiredCoreEnv(c *corev1.Container) {
577577
c.Env[j].Value = ""
578578
c.Env[j].ValueFrom = nil
579579
case "POSTGRES_SSL_REQUIRED":
580-
if r.NooBaa.Spec.ExternalPgSSLRequired {
580+
if r.NooBaa.Spec.ExternalPgSSLRequired || r.shouldReconcileCNPGCluster() {
581581
c.Env[j].Value = "true"
582582
}
583583
case "POSTGRES_SSL_UNAUTHORIZED":
584-
if r.NooBaa.Spec.ExternalPgSSLUnauthorized {
584+
if r.NooBaa.Spec.ExternalPgSSLUnauthorized || r.shouldReconcileCNPGCluster() {
585585
c.Env[j].Value = "true"
586586
}
587-
588587
case "POSTGRES_DBNAME_PATH":
589588
c.Env[j].Value = postgresSecretMountPath + "/dbname"
590589
case "POSTGRES_PASSWORD_PATH":

0 commit comments

Comments
 (0)