Skip to content

Commit 9719113

Browse files
authored
Fill in Private Connection Strings from PEs (#558)
1 parent 073507e commit 9719113

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

pkg/controller/atlasdatabaseuser/connectionsecrets.go

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -87,25 +87,18 @@ func createOrUpdateConnectionSecretsFromClusterSecrets(ctx *workflow.Context, k8
8787
requeue = true
8888
continue
8989
}
90-
// Cluster may be not ready yet, so no connection urls - skipping
91-
// Note, that Atlas usually returns the not-nil connection strings with empty fields in it
92-
if cs.connectionStrings == nil || cs.connectionStrings.StandardSrv == "" {
93-
ctx.Log.Debugw("Cluster is not ready yet - not creating a connection Secret", "cluster", cs.name)
94-
requeue = true
95-
continue
96-
}
9790
password, err := dbUser.ReadPassword(k8sClient)
9891
if err != nil {
9992
return workflow.Terminate(workflow.DatabaseUserConnectionSecretsNotCreated, err.Error())
10093
}
10194
data := connectionsecret.ConnectionData{
102-
DBUserName: dbUser.Spec.Username,
103-
ConnURL: cs.connectionStrings.Standard,
104-
SrvConnURL: cs.connectionStrings.StandardSrv,
105-
PvtConnURL: cs.connectionStrings.Private,
106-
PvtSrvConnURL: cs.connectionStrings.PrivateSrv,
107-
Password: password,
95+
DBUserName: dbUser.Spec.Username,
96+
Password: password,
97+
ConnURL: cs.connectionStrings.Standard,
98+
SrvConnURL: cs.connectionStrings.StandardSrv,
10899
}
100+
fillPrivateConnStrings(cs.connectionStrings, &data)
101+
109102
var secretName string
110103
if secretName, err = connectionsecret.Ensure(k8sClient, dbUser.Namespace, project.Spec.Name, project.ID(), cs.name, data); err != nil {
111104
return workflow.Terminate(workflow.DatabaseUserConnectionSecretsNotCreated, err.Error())
@@ -187,3 +180,16 @@ func removeStaleSecretsByUserName(k8sClient client.Client, projectID, userName s
187180
}
188181
return lastError
189182
}
183+
184+
func fillPrivateConnStrings(connStrings *mongodbatlas.ConnectionStrings, data *connectionsecret.ConnectionData) {
185+
if connStrings.Private != "" {
186+
data.PvtConnURL = connStrings.Private
187+
data.PvtSrvConnURL = connStrings.PrivateSrv
188+
}
189+
190+
if len(connStrings.PrivateEndpoint) == 1 {
191+
pe := connStrings.PrivateEndpoint[0]
192+
data.PvtConnURL = pe.ConnectionString
193+
data.PvtSrvConnURL = pe.SRVConnectionString
194+
}
195+
}

0 commit comments

Comments
 (0)