service-manager
service-manager copied to clipboard
K8S Platform Specific Deployment for Core module
Background
Service Manager exists outside of all platforms, as it is consumable (reached) through it’s REST API. Anyway it need to be deployed somewhere (on some infrastructure/platform) and we tend to support at least 2 options - K8S and CF as host platforms for SM. The implementation is separated on 2 parts: Core module - that take cares for Business logic implementation including:
- Initial configuration through environment
- REST API implementation
- Domain and Data model
- Persistency handling through provided configuration to persistency provider
- Extensibility capabilities
- 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
- Persistency provider configurations
- Identity management provider configurations
- Registration of Custom URL for the deployed service
- HTTPS support
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 SM Core module in K8S environment
Some K8S apps like the Service Catalog use Helm charts for deployment