diff --git a/controllers/cloud.redhat.com/providers/database/appinterface.go b/controllers/cloud.redhat.com/providers/database/appinterface.go index f602e7a12..e4839a58c 100644 --- a/controllers/cloud.redhat.com/providers/database/appinterface.go +++ b/controllers/cloud.redhat.com/providers/database/appinterface.go @@ -149,7 +149,7 @@ func GetDbConfig( if len(matches) == 0 { - dbConfigs, err := genDbConfigs(secrets.Items) + dbConfigs, err := genDbConfigs(secrets.Items, false) if err != nil { return nil, err @@ -201,7 +201,7 @@ func resolveDb(spec crd.DatabaseSpec, c []config.DatabaseConfigContainer) config return config.DatabaseConfigContainer{} } -func genDbConfigs(secrets []core.Secret) ([]config.DatabaseConfigContainer, error) { +func genDbConfigs(secrets []core.Secret, verify bool) ([]config.DatabaseConfigContainer, error) { configs := []config.DatabaseConfigContainer{} var err error @@ -235,7 +235,7 @@ func genDbConfigs(secrets []core.Secret) ([]config.DatabaseConfigContainer, erro keys := []string{"db.host", "db.port", "db.user", "db.password", "db.name"} providers.ExtractSecretData(secrets, extractFn, keys...) - if err != nil { + if verify && err != nil { return nil, err } @@ -246,7 +246,7 @@ func searchAnnotationSecret(appName string, secrets []core.Secret) ([]config.Dat for _, secret := range secrets { anno := secret.GetAnnotations() if v, ok := anno["clowder/database"]; ok && v == appName { - configs, err := genDbConfigs([]core.Secret{secret}) + configs, err := genDbConfigs([]core.Secret{secret}, true) return configs, err } } diff --git a/controllers/cloud.redhat.com/providers/database/appinterface_test.go b/controllers/cloud.redhat.com/providers/database/appinterface_test.go index 15483cb56..902e6e033 100644 --- a/controllers/cloud.redhat.com/providers/database/appinterface_test.go +++ b/controllers/cloud.redhat.com/providers/database/appinterface_test.go @@ -21,7 +21,7 @@ func TestAppInterfaceDb(t *testing.T) { }, }} - configs, err := genDbConfigs(secrets) + configs, err := genDbConfigs(secrets, false) assert.NoError(t, err, "failed to gen db config") assert.Equal(t, len(configs), 1, "wrong number of configs") diff --git a/tests/kuttl/test-multi-app-interface-db/01-pods.yaml b/tests/kuttl/test-multi-app-interface-db/01-pods.yaml index fdc5936a4..f9a847e73 100644 --- a/tests/kuttl/test-multi-app-interface-db/01-pods.yaml +++ b/tests/kuttl/test-multi-app-interface-db/01-pods.yaml @@ -120,6 +120,19 @@ data: db.user: dXNlcmJhZAo= # userbad db.password: cGFzc3dvcmQxMjM= # password123 --- +apiVersion: v1 +kind: Secret +metadata: + name: app-single + namespace: test-multi-app-interface-db +type: Opaque +data: + db.host: YXBwLXNpbmdsZS1zdGFnZS5yZHMuZXhhbXBsZS5jb20= # app-single-stage.rds.example.com + db.name: ZGJuYW1l # dbname + db.port: cGw= # pl This is to check that a bad port doesn't mess with the rest of them + db.user: dXNlcmJhZAo= # userbad + db.password: cGFzc3dvcmQxMjM= # password123 +--- apiVersion: cloud.redhat.com/v1alpha1 kind: ClowdApp metadata: