-
Notifications
You must be signed in to change notification settings - Fork 36
Description
Hello folks!
May I propose that we allow the ServiceBinding resource to have multiple service objects, which would be projected into an application as a single logical service "account-database" ?
apiVersion: service.binding/v1alpha2
kind: ServiceBinding
metadata:
name: account-database
spec:
type: postgresdb
name: account-database
type: database
provider:
application:
apiVersion: apps/v1
kind: Deployment
name: online-banking
services:
- apiVersion: com.example/v1alpha1
kind: DatabaseInstance
name: dbInstanceRef # provides uri
prefix: ..
- apiVersion: com.example/v1alpha1
kind: DatabaseCredentials
name: dbCredentials # provides username and password
prefix: ...
status:
conditions:
- type: Ready
status: 'True'
The injection could still happen under one logical service given that the intent of the list of services isn't to have multiple distinct logical services, rather the intent is to construct a single binding secret from multiple service objects.
$SERVICE_BINDING_ROOT
├── account-database
│ ├── type
│ ├── provider
│ ├── uri
│ ├── username
│ └── password
As already proposed in this specification, if the user wishes to add another backing service, the user may create a new ServiceBinding for a "different-service" and that would provide the following projection:
$SERVICE_BINDING_ROOT
├── account-database
│ ├── type
│ ├── provider
│ ├── uri
│ ├── username
│ └── password
├── a-different-service
│ ├── type
│ ├── provider
│ ├── uri
│ ├── username
│ └── password
The above proposal would enable one to use ServiceBinding without forcing the backing service ( or the application ?) to undergo changes.