-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Service Binding Extension #57
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 assuming we change "Service bindings" to "Bindings" and services/
to bindings/
6614604
to
e43e310
Compare
e43e310
to
27641a7
Compare
27641a7
to
1c6f2b9
Compare
This change adds the Service Binding extension specification as proposed in RFC #12. [buildpacks/rfcs#22] Signed-off-by: Ben Hale <bhale@pivotal.io>
1c6f2b9
to
88cd5da
Compare
@hone Final change made and ready for ratification. |
I am interested to know the reasoning behind restriction of associating the binding to only one kind of service "kind", rather than multiple. In my mind today a binding credential can be matched to multiple abstract classifiers. The usecases that come to mind for multiple kinds are:
{
"hostname": "q-n3s3y1.q-g614.bosh",
"hostnames": [
"q-m1280n3s0.q-g614.bosh",
"q-m1279n3s0.q-g614.bosh"
],
"jdbcUrl": "jdbc:mysql://q-n3s3y1.q-g614.bosh:3306/service_instance_db?user=8f26bbcb0f7645cf9924d715d5a0f130&password=3151t75a7xotcgwc&useSSL=false",
"name": "service_instance_db",
"password": "3151t75a7xotcgwc",
"port": 3306,
"uri": "mysql://8f26bbcb0f7645cf9924d715d5a0f130:3151t75a7xotcgwc@q-n3s3y1.q-g614.bosh:3306/service_instance_db?reconnect=true",
"username": "8f26bbcb0f7645cf9924d715d5a0f130"
} Its connection block has information for clients to use it as a "single node mysql", "multi node mysql" or a credentials blocks with a "jdbc" connection string. I would expect the kinds for this type of a binding response to be |
|
||
In addition to the required files, the `metadata` directory MAY contain additional metadata about the binding with file names and contents matching the metadata names and contents. | ||
|
||
The collection of files within the directory MAY change between launches. The collection of files within the directory MUST NOT change during the launch phase. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nebhale does this mean during launch you can't unbind a secret?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that's the implication. Given the possibility of functionality that watches for changes to the contents of the files and then propagates those changes into the running application (e.g. watching for credential rotation), then the disappearance of files might cause a problem. For systems wanting to be "revoke" a credential, I think that's better handled on the server side (stop accepting new connections with the credential, terminate any sessions currently using the credential) because removing the credentials from the filesystem doesn't force a client to stop using the previously read content.
@tinygrasshopper I think the tying of a binding to a single abstract kind is because I view bindings as lightweight projections of a given concrete thing. Therefore I don't view multiple bindings that are all slightly different projections of the same thing as being a problem. To address your examples:
Where I think I really agree with you is that there's not obvious description of how fine or course grained the |
This change adds the Service Binding extension specification as proposed in RFC #12.