Skip to content

Commit c051b89

Browse files
HELP-48316: Fixed missing private endpoint connection string for sharded clusters (#1062)
Fixed missing private endpoint connection string for sharded clusters
1 parent ce4a97d commit c051b89

File tree

3 files changed

+24
-16
lines changed

3 files changed

+24
-16
lines changed

pkg/controller/connectionsecret/connectionsecrets.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,9 @@ func FillPrivateConnStrings(connStrings *mongodbatlas.ConnectionStrings, data *C
188188

189189
for _, pe := range connStrings.PrivateEndpoint {
190190
data.PrivateConnURLs = append(data.PrivateConnURLs, PrivateLinkConnURLs{
191-
PvtConnURL: pe.ConnectionString,
192-
PvtSrvConnURL: pe.SRVConnectionString,
191+
PvtConnURL: pe.ConnectionString,
192+
PvtSrvConnURL: pe.SRVConnectionString,
193+
PvtShardConnURL: pe.SRVShardOptimizedConnectionString,
193194
})
194195
}
195196
}

pkg/controller/connectionsecret/ensuresecret.go

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@ const (
1919
TypeLabelKey = "atlas.mongodb.com/type"
2020
CredLabelVal = "credentials"
2121

22-
standardKey string = "connectionStringStandard"
23-
standardKeySrv string = "connectionStringStandardSrv"
24-
privateKey string = "connectionStringPrivate"
25-
privateKeySrv string = "connectionStringPrivateSrv"
26-
userNameKey string = "username"
27-
passwordKey string = "password"
22+
standardKey string = "connectionStringStandard"
23+
standardKeySrv string = "connectionStringStandardSrv"
24+
privateKey string = "connectionStringPrivate"
25+
privateKeySrv string = "connectionStringPrivateSrv"
26+
privateShardKey string = "connectionStringPrivateShard"
27+
userNameKey string = "username"
28+
passwordKey string = "password"
2829
)
2930

3031
type ConnectionData struct {
@@ -36,8 +37,9 @@ type ConnectionData struct {
3637
}
3738

3839
type PrivateLinkConnURLs struct {
39-
PvtConnURL string
40-
PvtSrvConnURL string
40+
PvtConnURL string
41+
PvtSrvConnURL string
42+
PvtShardConnURL string
4143
}
4244

4345
// Ensure creates or updates the connection Secret for the specific cluster and db user. Returns the name of the Secret
@@ -77,6 +79,9 @@ func fillSecret(secret *corev1.Secret, projectID string, clusterName string, dat
7779
if data.PrivateConnURLs[idx].PvtSrvConnURL, err = AddCredentialsToConnectionURL(privateConn.PvtSrvConnURL, data.DBUserName, data.Password); err != nil {
7880
return err
7981
}
82+
if data.PrivateConnURLs[idx].PvtShardConnURL, err = AddCredentialsToConnectionURL(privateConn.PvtShardConnURL, data.DBUserName, data.Password); err != nil {
83+
return err
84+
}
8085
}
8186

8287
secret.Labels = map[string]string{
@@ -98,6 +103,7 @@ func fillSecret(secret *corev1.Secret, projectID string, clusterName string, dat
98103
suffix := getSuffix(idx)
99104
secret.Data[privateKey+suffix] = []byte(privateConn.PvtConnURL)
100105
secret.Data[privateKeySrv+suffix] = []byte(privateConn.PvtSrvConnURL)
106+
secret.Data[privateShardKey+suffix] = []byte(privateConn.PvtShardConnURL)
101107
}
102108

103109
return nil

pkg/controller/connectionsecret/ensuresecret_test.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,13 @@ func validateSecret(t *testing.T, fakeClient client.Client, namespace, projectNa
8484
assert.NoError(t, err)
8585

8686
expectedData := map[string][]byte{
87-
"connectionStringStandard": []byte(buildConnectionURL(data.ConnURL, data.DBUserName, data.Password)),
88-
"connectionStringStandardSrv": []byte(buildConnectionURL(data.SrvConnURL, data.DBUserName, data.Password)),
89-
"connectionStringPrivate": []byte(buildConnectionURL(data.PrivateConnURLs[0].PvtConnURL, data.DBUserName, data.Password)),
90-
"connectionStringPrivateSrv": []byte(buildConnectionURL(data.PrivateConnURLs[0].PvtSrvConnURL, data.DBUserName, data.Password)),
91-
"username": []byte(data.DBUserName),
92-
"password": []byte(data.Password),
87+
"connectionStringStandard": []byte(buildConnectionURL(data.ConnURL, data.DBUserName, data.Password)),
88+
"connectionStringStandardSrv": []byte(buildConnectionURL(data.SrvConnURL, data.DBUserName, data.Password)),
89+
"connectionStringPrivate": []byte(buildConnectionURL(data.PrivateConnURLs[0].PvtConnURL, data.DBUserName, data.Password)),
90+
"connectionStringPrivateSrv": []byte(buildConnectionURL(data.PrivateConnURLs[0].PvtSrvConnURL, data.DBUserName, data.Password)),
91+
"username": []byte(data.DBUserName),
92+
"password": []byte(data.Password),
93+
"connectionStringPrivateShard": []byte(data.PrivateConnURLs[0].PvtShardConnURL),
9394
}
9495
expectedLabels := map[string]string{
9596
"atlas.mongodb.com/project-id": projectID,

0 commit comments

Comments
 (0)