1 # Database as a service repository
3 This repository containes all the needed elements to deploy database as a service to kubernetes
7 Redis is the chosen database technology and the final product will deploy autonomous
8 redis cluster. Supported deployment options are standalone Redis server and HA
9 (Sentinel) Redis deployment. Either deployment option won't provide data persistency.
11 ## Subsystem structure
13 **docker** Contains dockerfiles to produce dbaas / testapplication container images
14 **charts** Contais helm charts to deploy dbaas service / testapplication
15 **testapplication** Contains dbaas test applications with various languages such as go, ..
17 ## Container image creation
19 The images must be built at subsystem root level
21 To produce dbaas service image:
23 docker build --file docker/Dockerfile.redis --tag redis-standalone .
26 To produce testapplication image:
28 docker build --file docker/Dockerfile.testapp --tag dbaas-test .
35 Dbaas service is realized either with single container running redis database
36 or with HA deployment implemented by a redis sentinel solution.
37 Standalone dbaas database is configured to be non-persistent and
38 non-redundant. HA dbaas provides redundancy but it is also configured to be
41 After dbaas service is installed, environment variables **DBAAS_SERVICE_HOST**
42 and **DBAAS_SERVICE_PORT** are exposed to application containers. In the case
43 of HA dbaas deployment environment variables **DBAAS_MASTER_NAME** and
44 **DBAAS_SERVICE_SENTINEL_PORT** are also exposed to application containers.
45 SDL library will automatically use these environment variables.
47 The service is installed via helm by using dbaas-service chart. Modify the
48 values accordingly before installation (repository location, image name, ..)
51 helm install ./dbaas-service
54 ### DBaaS test application
56 Test application is installed via helm by using dbaas-test chart. Modify the
57 values accordingly before installation (repository location, image name, ..)
60 helm install ./dbaas-test
65 Make sure that dbaas-service and dbaas-test application are deployed:
68 NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
69 angry-greyhound 1 Thu Mar 21 11:36:23 2019 DEPLOYED dbaas-test-0.1.0 1.0 default
70 loitering-toad 1 Thu Mar 21 11:35:21 2019 DEPLOYED dbaas-0.1.0 1.0 default
73 Check the deployed pods
76 NAME READY STATUS RESTARTS AGE
77 dbaas-test-app-7695dbb9ff-qn8c2 1/1 Running 0 5s
78 redis-standalone-78978f4c6f-54b2s 1/1 Running 0 66s
81 Connect to the test application container:
83 kubectl exec -it dbaas-test-app-7695dbb9ff-qn8c2 -- /bin/bash
86 In test application container:
88 The environment variables for database backend should be set:
91 DBAAS_SERVICE_HOST=10.108.103.51
92 DBAAS_SERVICE_PORT=6379
95 Go test application using preliminary go SDL-API should be able to perform reads and writes:
119 Redis server can be pinged with redis-cli:
121 >>redis-cli -h $DBAAS_SERVICE_HOST -p $DBAAS_SERVICE_PORT ping
126 This project is licensed under the Apache License 2.0 - see the [LICENSE.md](LICENSE.md) file for details