service-manager
service-manager copied to clipboard
K8S Platform Specific Deployment for Service Broker Proxy module
Background
Service Broker Proxy need to be deployed on all platforms that want to use Service Manager. We need to provide packages that allow deployment on K8S and CF as host platforms for Service Broker Proxy module. The implementation is separated on 2 parts: Service Broker Proxy Core module - that take cares for Business logic implementation including:
- Initial configuration through environment
- Generic client for controller API commands
- Registration in to host platform using the Platform controller API
- REST API implementation
- Domain and Data model
- Healthcheck endpoint Platform specific module - that take cares for packaging and platform specific configuration like:
- Platform specific deployment details - CPU, RAM, Buildpack, VM type, …
- Platform specific packaging details - archive or image preparation
- Platform specific provisioning and deployment scripts ensuring HA and Blue/Green deployment
- Platform specific health check requirements to the core module
- oAuth client for platform controller API access
- Implementation of the generic client for controller API
- Registration of Custom URL for the deployed module
Example with Go Application packaging for K8S can be seen on: https://github.com/kubernetes/examples/tree/master/guestbook-go
Easy of deployment that is good to achieve is like following: https://github.com/kubernetes/dashboard/releases
An yaml file that have all configurations needed inside: https://github.com/kubernetes/dashboard/blob/master/src/deploy/recommended/kubernetes-dashboard.yaml
Objective
Prepare K8S Platform dependent module.
Acceptance Criteria
- I can build (prepare deployable) with a script that is included in the repository
- README document with deployment process including preconditions, installation steps and configuration details is included
- Following the steps I can deploy and start the Service Broker Proxy Core module in K8S environment
Service Catalog will support namespace scoped brokers: https://github.com/kubernetes-incubator/service-catalog/pull/1826 The K8S broker proxy should support this at some point.
I thought we are not planning support for space scoped brokers in the CF scenario (meaning space scoped brokers registration is not managed by Service Manager).
Doesn't this imply that we shouldn't be concerned with namespace registered brokers in the K8S scenario ?
The K8S namespace scope is quite different from CF scoped brokers.
ok, makes sense then :)