-
Notifications
You must be signed in to change notification settings - Fork 71
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 Bindings #22
Service Bindings #22
Conversation
Summoning @markfisher and @scothis for their insights into Kubernetes idioms. |
Kubernetes secrets can be mounted as a single directory, with each key in the secret representing a file in that directory. Having the metadata for a single service be split between directories will make it harder to mange. Likewise, structuring the service binding based on an attribute of the binding, other than name, will make it harder to manage as the tool creating the file system would need deep knowledge of the service. I'd favor a form that puts all of the content for a single service into a single directory, and devolves the service.toml into individual files in that directory:
|
@scothis The problem I see with that design (versus the |
cfbd750
to
f060330
Compare
@scothis Based on discussion in the WG meeting today, there was a preference for the metadata in files, but in a separate directory next to the secrets. Does this compromise work for you? |
Another concern was raised privately via the Heroku team
The kind/provider division was inspired by Crossplane and serves as a mechanism for describing an abstract service type (e.g. MySQL, Redis) and a concrete implementation (e.g. CloudDB, Redis To Go). I believe that all services, even the more esoteric ones, can be represented with the kind/provider division. To take a couple of examples from the Heroku Add-ons catalog (kind/provider):
Now those are the easy ones, multiple providers for an obvious single service kind. But you could imagine something where there is a more 1:1 mapping like APMs. In that case, most of the time you might want only a single kind/provider pair, but you might also want (as in the CF case) for a user to be able to manually create a service binding
Finally, it'd be totally OK to have a
In short, I think it's totally OK to have a single kind/provider pair (with identical values for both) for some services as it leaves us the flexibility to have multiple providers per kind in other places. |
This change is the first pass at a proposal for concretely defining how Service Binding information is exposed to buildpacks and applications. Signed-off-by: Ben Hale <bhale@pivotal.io>
This change updates the RFC to focus on a metadata directory instead of the previous options. Signed-off-by: Ben Hale <bhale@pivotal.io>
This change updates the directory structure to fully encapsulate both the metadata and secret associated with a given service rather than have them as peers to one another. Signed-off-by: Ben Hale <bhale@pivotal.io>
f060330
to
9f470a6
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>
This change adds the Service Binding extension specification as proposed in RFC #12. [buildpacks/rfcs#22] Signed-off-by: Ben Hale <bhale@pivotal.io>
This change adds the Service Binding extension specification as proposed in RFC #12. [buildpacks/rfcs#22] Signed-off-by: Ben Hale <bhale@pivotal.io>
This change adds the Service Binding extension specification as proposed in RFC #12. [buildpacks/rfcs#22] Signed-off-by: Ben Hale <bhale@pivotal.io>
This change adds the Service Binding extension specification as proposed in RFC #12. [buildpacks/rfcs#22] Signed-off-by: Ben Hale <bhale@pivotal.io>
This change adds the Binding extension specification as proposed in RFC #12. [resolves #12][buildpacks/rfcs#22] Signed-off-by: Ben Hale <bhale@pivotal.io>
A proposal for concretely defining how Service Binding information is exposed to buildpacks and applications.