Skip to content

Commit c1066bc

Browse files
authored
Fixed bug in database secret resolution (#837)
1 parent 0dd482f commit c1066bc

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

controllers/cloud.redhat.com/providers/database/appinterface.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func GetDbConfig(
149149

150150
if len(matches) == 0 {
151151

152-
dbConfigs, err := genDbConfigs(secrets.Items)
152+
dbConfigs, err := genDbConfigs(secrets.Items, false)
153153

154154
if err != nil {
155155
return nil, err
@@ -201,7 +201,7 @@ func resolveDb(spec crd.DatabaseSpec, c []config.DatabaseConfigContainer) config
201201
return config.DatabaseConfigContainer{}
202202
}
203203

204-
func genDbConfigs(secrets []core.Secret) ([]config.DatabaseConfigContainer, error) {
204+
func genDbConfigs(secrets []core.Secret, verify bool) ([]config.DatabaseConfigContainer, error) {
205205
configs := []config.DatabaseConfigContainer{}
206206

207207
var err error
@@ -235,7 +235,7 @@ func genDbConfigs(secrets []core.Secret) ([]config.DatabaseConfigContainer, erro
235235
keys := []string{"db.host", "db.port", "db.user", "db.password", "db.name"}
236236
providers.ExtractSecretData(secrets, extractFn, keys...)
237237

238-
if err != nil {
238+
if verify && err != nil {
239239
return nil, err
240240
}
241241

@@ -246,7 +246,7 @@ func searchAnnotationSecret(appName string, secrets []core.Secret) ([]config.Dat
246246
for _, secret := range secrets {
247247
anno := secret.GetAnnotations()
248248
if v, ok := anno["clowder/database"]; ok && v == appName {
249-
configs, err := genDbConfigs([]core.Secret{secret})
249+
configs, err := genDbConfigs([]core.Secret{secret}, true)
250250
return configs, err
251251
}
252252
}

controllers/cloud.redhat.com/providers/database/appinterface_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func TestAppInterfaceDb(t *testing.T) {
2121
},
2222
}}
2323

24-
configs, err := genDbConfigs(secrets)
24+
configs, err := genDbConfigs(secrets, false)
2525

2626
assert.NoError(t, err, "failed to gen db config")
2727
assert.Equal(t, len(configs), 1, "wrong number of configs")

tests/kuttl/test-multi-app-interface-db/01-pods.yaml

+13
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,19 @@ data:
120120
db.user: dXNlcmJhZAo= # userbad
121121
db.password: cGFzc3dvcmQxMjM= # password123
122122
---
123+
apiVersion: v1
124+
kind: Secret
125+
metadata:
126+
name: app-single
127+
namespace: test-multi-app-interface-db
128+
type: Opaque
129+
data:
130+
db.host: YXBwLXNpbmdsZS1zdGFnZS5yZHMuZXhhbXBsZS5jb20= # app-single-stage.rds.example.com
131+
db.name: ZGJuYW1l # dbname
132+
db.port: cGw= # pl This is to check that a bad port doesn't mess with the rest of them
133+
db.user: dXNlcmJhZAo= # userbad
134+
db.password: cGFzc3dvcmQxMjM= # password123
135+
---
123136
apiVersion: cloud.redhat.com/v1alpha1
124137
kind: ClowdApp
125138
metadata:

0 commit comments

Comments
 (0)