diff options
| author | Paul Morie <pmorie@redhat.com> | 2016-12-14 12:45:13 -0500 |
|---|---|---|
| committer | Jess Frazelle <acidburn@google.com> | 2017-02-01 12:17:07 -0800 |
| commit | 4a6ec3c1cd5b95653e5e65fc4d99852bcd9baa5b (patch) | |
| tree | 44e5c5392dd5025e8946a4ee7d4a9ec9425e567e | |
| parent | 7b62275da345397eedb635fcb93b20a70769c810 (diff) | |
WIP: Service Injection Policy
| -rw-r--r-- | contributors/design-proposals/service_injection_policy.md | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/contributors/design-proposals/service_injection_policy.md b/contributors/design-proposals/service_injection_policy.md new file mode 100644 index 00000000..3b2bbed8 --- /dev/null +++ b/contributors/design-proposals/service_injection_policy.md @@ -0,0 +1,65 @@ +# Service Injection Policy + +## Abstract + +Describes a policy resource that allows loose coupling from services to the pods +that consume them. + +## Motivation + +Consuming a service involves more than just connectivity. In addition to +coordinates to reach the service, credentials and non-secret configuration +parameters are typically needed to use the service. The primitives for this +already exist, but a gap exists where loose coupling is desired: it should be +possible to inject pods with the information they need to use a service on a +service-by-service basis, without the pod authors having to incorporate the +information into every pod spec where it is needed. + +## Constraints and Assumptions + +1. New mechanisms must be made to work with controllers such as deployments and + replicasets that create pods + +## Use Cases + +1. As a user, I want to be able to describe a way that pods should be injected + with the information to consume a particular service in a loosely-coupled + way, so that I can concisely model the information about how the service + should be consumed without altering every consuming pod spec + +<!-- +2. As a user, I want a controller that manage pods to create a new generation + of pods when the pods that controller's pods should be injected with + information about a new set of services +--> + +### Loose coupling between services and their consumers + + + +## Proposed Changes + +### ServiceInjectionPolicy API object + +```go +type ServiceInjectionPolicy struct { + unversioned.TypeMeta + ObjectMeta + + Spec ServiceInjectionPolicySpec +} + +type ServiceInjectionPolicySpec struct { + LabelSelector *unversioned.LabelSelector + Env []EnvVar + EnvFrom []EnvVarFrom + Volumes []Volume + VolumeMounts []VolumeMount +} +``` + +## Examples + +```yaml + +```
\ No newline at end of file |
