Gerrit ID: 5665 - Deploys OSM on Kubernetes.
Run the installation script with -c k8s to deploy osm on K8s.
To Uninstall OSM deployed on Kubernetes run script with --uninstall -c k8s.
Each yaml file in osm_pods directory contains yaml definitions for pods and services.

Added license to yaml files in osm_pods.

Changed volume mounts to OSM_NAMESPACE_VOL from docker volumes.

Removes all pods and services while uninstalling.

Added namespace to deploy osm services. Deleting namespace
for uninstalling osm services.
Resolved Merge conflict with Change-7931. Changed Mongo, Kafka,
zookeeper, mysql and prometheus to statefulset.

-s <namespace> users can define namespace for k8s to deploy
osm services.

Added cluster configuration file which will be used to install k8s control plane
Addressed nodeport range issue and resolved merge conflict.

Added two yaml files to create a job for systest and robot test.

Change-Id: Iabe70fa7aed9cd638011bb92e2f300e32cff5772
Signed-off-by: vijaynag.bs <vijaynag.bs@tataelxsi.co.in>
diff --git a/installers/docker/cluster-config.yaml b/installers/docker/cluster-config.yaml
new file mode 100644
index 0000000..1d83bb6
--- /dev/null
+++ b/installers/docker/cluster-config.yaml
@@ -0,0 +1,23 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+# Author: Vijay Nag B S (vijaynag.bs@tataelxsi.co.in)
+
+apiVersion: kubeadm.k8s.io/v1beta1
+kind: ClusterConfiguration
+networking:
+  podSubnet: 10.244.0.0/16
+apiServer:
+  extraArgs:
+    service-node-port-range: "80-32767"
diff --git a/installers/docker/osm_pods/kafka.yaml b/installers/docker/osm_pods/kafka.yaml
new file mode 100644
index 0000000..7a39026
--- /dev/null
+++ b/installers/docker/osm_pods/kafka.yaml
@@ -0,0 +1,73 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+# Author: Vijay Nag B S (vijaynag.bs@tataelxsi.co.in)
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: kafka
+spec:
+  clusterIP: None
+  ports:
+  - port: 9092
+    protocol: TCP
+    targetPort: 9092
+  selector:
+    app: kafka
+  type: ClusterIP
+---
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+  name: kafka
+  labels:
+    app: kafka
+spec:
+  replicas: 1
+  serviceName: kafka
+  selector:
+    matchLabels:
+      app: kafka
+  template:
+    metadata:
+      labels:
+        app: kafka
+    spec:
+      initContainers:
+      - name: zookeeper-test
+        image: alpine:latest
+        command: ["sh", "-c", "until nc -zvw1 zookeeper 2181; do sleep3; done; exit 0"]
+      containers:
+      - name: kafka
+        image: wurstmeister/kafka:2.11-1.0.2
+        ports:
+        - containerPort: 9092
+          protocol: TCP
+        env:
+         - name: KAFKA_ADVERTISED_HOST_NAME
+           value: kafka
+         - name: KAFKA_ADVERTISED_PORT
+           value: "9092"
+         - name: KAFKA_ZOOKEEPER_CONNECT
+           value: zookeeper:2181
+         - name: KAFKA_LOG_RETENTION_HOURS
+           value: "24"
+        volumeMounts:
+        - name: socket
+          mountPath: /var/run/docker.sock
+      volumes:
+      - name: socket
+        hostPath:
+         path: /var/run/docker.sock
diff --git a/installers/docker/osm_pods/keystone.yaml b/installers/docker/osm_pods/keystone.yaml
new file mode 100644
index 0000000..8a976cf
--- /dev/null
+++ b/installers/docker/osm_pods/keystone.yaml
@@ -0,0 +1,57 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+# Author: Vijay Nag B S (vijaynag.bs@tataelxsi.co.in)
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: keystone
+spec:
+  ports:
+  - port: 5000
+    protocol: TCP
+    targetPort: 5000
+  selector:
+    app: keystone
+  type: ClusterIP
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: keystone
+  labels:
+    app: keystone
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: keystone
+  template:
+    metadata:
+      labels:
+        app: keystone
+    spec:
+      containers:
+      - name: keystone
+        image: opensourcemano/keystone:latest
+        ports:
+        - containerPort: 5000
+          protocol: TCP
+        env:
+        - name: DB_HOST
+          value: mysql
+        envFrom:
+        - secretRef:
+            name: keystone-secret
diff --git a/installers/docker/osm_pods/lcm.yaml b/installers/docker/osm_pods/lcm.yaml
new file mode 100644
index 0000000..f69fba3
--- /dev/null
+++ b/installers/docker/osm_pods/lcm.yaml
@@ -0,0 +1,56 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+# Author: Vijay Nag B S (vijaynag.bs@tataelxsi.co.in)
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: lcm
+  labels:
+    app: lcm
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: lcm
+  template:
+    metadata:
+      labels:
+        app: lcm
+    spec:
+      initContainers:
+       - name: kafka-ro-mongo-test
+         image: alpine:latest
+         command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 ro 9090 && nc -zvw1 mongo 27017 ); do sleep 3; done; exit 0"]
+      containers:
+      - name: lcm
+        image: opensourcemano/lcm:latest
+        env:
+        - name: OSMLCM_RO_HOST
+          value: ro
+        - name: OSMLCM_DATABASE_HOST
+          value: mongo
+        - name: OSMLCM_MESSAGE_HOST
+          value: kafka
+        envFrom:
+        - secretRef:
+           name: lcm-secret
+        volumeMounts:
+        - name: osm-packages
+          mountPath: /app/storage
+      volumes:
+      - name: osm-packages
+        hostPath:
+         path: /var/lib/osm/osm_osm_packages/_data
diff --git a/installers/docker/osm_pods/light-ui.yaml b/installers/docker/osm_pods/light-ui.yaml
new file mode 100644
index 0000000..20cb5af
--- /dev/null
+++ b/installers/docker/osm_pods/light-ui.yaml
@@ -0,0 +1,58 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+# Author: Vijay Nag B S (vijaynag.bs@tataelxsi.co.in)
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: light-ui
+spec:
+  ports:
+  - nodePort: 80
+    port: 80
+    protocol: TCP
+    targetPort: 80
+  selector:
+    app: light-ui
+  type: NodePort
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: light-ui
+  labels:
+    app: light-ui
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: light-ui
+  template:
+    metadata:
+      labels:
+        app: light-ui
+    spec:
+      containers:
+      - name: light-ui
+        image: opensourcemano/light-ui:latest
+        envFrom:
+        - secretRef:
+            name: lwui-secret
+        ports:
+        - containerPort: 80
+          protocol: TCP
+        env:
+        - name: OSM_SERVER
+          value: nbi
diff --git a/installers/docker/osm_pods/mon.yaml b/installers/docker/osm_pods/mon.yaml
new file mode 100644
index 0000000..541f6c3
--- /dev/null
+++ b/installers/docker/osm_pods/mon.yaml
@@ -0,0 +1,71 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+# Author: Vijay Nag B S (vijaynag.bs@tataelxsi.co.in)
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: mon
+spec:
+  clusterIP: None
+  ports:
+  - port: 8662
+    protocol: TCP
+    targetPort: 8662
+  selector:
+    app: mon
+  type: ClusterIP
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: mon
+  labels:
+    app: mon
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: mon
+  template:
+    metadata:
+      labels:
+        app: mon
+    spec:
+      initContainers:
+      - name: kafka-mongo-test
+        image: alpine:latest
+        command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 mongo 27017); do sleep 3; done; exit 0"]
+      containers:
+      - name: mon
+        image: opensourcemano/mon:latest
+        ports:
+        - containerPort: 8662
+          protocol: TCP
+        env:
+        - name: OSMMON_MESSAGE_HOST
+          value: kafka
+        - name: OSMMON_MESSAGE_PORT
+          value: "9092"
+        envFrom:
+        - secretRef:
+           name: mon-secret
+        volumeMounts:
+        - name: mon-storage
+          mountPath: /app/database
+      volumes:
+      - name: mon-storage
+        hostPath:
+         path: /var/lib/osm/osm_mon_db/_data
diff --git a/installers/docker/osm_pods/mongo.yaml b/installers/docker/osm_pods/mongo.yaml
new file mode 100644
index 0000000..5b2571d
--- /dev/null
+++ b/installers/docker/osm_pods/mongo.yaml
@@ -0,0 +1,60 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+# Author: Vijay Nag B S (vijaynag.bs@tataelxsi.co.in)
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: mongo
+spec:
+  clusterIP: None
+  ports:
+  - port: 27017
+    protocol: TCP
+    targetPort: 27017
+  selector:
+    app: mongo
+  type: ClusterIP
+---
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+  name: mongo
+  labels:
+    app: mongo
+spec:
+  replicas: 1
+  serviceName: mongo
+  selector:
+    matchLabels:
+      app: mongo
+  template:
+    metadata:
+      labels:
+        app: mongo
+    spec:
+      containers:
+      - name: mongo
+        image: mongo:latest
+        ports:
+        - containerPort: 27017
+          protocol: TCP
+        volumeMounts:
+        - name: mongo-db
+          mountPath: /data/db
+      volumes:
+      - name: mongo-db
+        hostPath:
+         path: /var/lib/osm/osm_mongo_db/_data
diff --git a/installers/docker/osm_pods/mysql.yaml b/installers/docker/osm_pods/mysql.yaml
new file mode 100644
index 0000000..bbff9c5
--- /dev/null
+++ b/installers/docker/osm_pods/mysql.yaml
@@ -0,0 +1,63 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+# Author: Vijay Nag B S (vijaynag.bs@tataelxsi.co.in)
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: mysql
+spec:
+  clusterIP: None
+  ports:
+  - port: 3306
+    protocol: TCP
+    targetPort: 3306
+  selector:
+    app: mysql
+  type: ClusterIP
+---
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+  name: mysql
+  labels:
+   app: mysql
+spec:
+  replicas: 1
+  serviceName: mysql
+  selector:
+    matchLabels:
+      app: mysql
+  template:
+    metadata:
+      labels:
+        app: mysql
+    spec:
+      containers:
+      - image: mysql:5
+        name: mysql
+        envFrom:
+        - secretRef:
+           name: ro-db-secret
+        ports:
+        - containerPort: 3306
+          name: mysql
+        volumeMounts:
+        - name: mysql-db
+          mountPath: /var/lib/mysql
+      volumes:
+      - name: mysql-db
+        hostPath:
+         path: /var/lib/osm/osm_ro_db/_data
diff --git a/installers/docker/osm_pods/nbi.yaml b/installers/docker/osm_pods/nbi.yaml
new file mode 100644
index 0000000..f842dd0
--- /dev/null
+++ b/installers/docker/osm_pods/nbi.yaml
@@ -0,0 +1,71 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+# Author: Vijay Nag B S (vijaynag.bs@tataelxsi.co.in)
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: nbi
+spec:
+  ports:
+  - nodePort: 9999
+    port: 9999
+    protocol: TCP
+    targetPort: 9999
+  selector:
+    app: nbi
+  type: NodePort
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: nbi
+  labels:
+    app: nbi
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: nbi
+  template:
+    metadata:
+      labels:
+        app: nbi
+    spec:
+      initContainers:
+      - name: kafka-mongo-test
+        image: alpine:latest
+        command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 mongo 27017); do sleep 3; done; exit 0"]
+      containers:
+      - name: nbi
+        image: opensourcemano/nbi:latest
+        ports:
+        - containerPort: 9999
+          protocol: TCP
+        env:
+         - name: OSMNBI_DATABASE_HOST
+           value: mongo
+         - name:  OSMNBI_MESSAGE_HOST
+           value: kafka
+        envFrom:
+        - secretRef:
+           name: nbi-secret
+        volumeMounts:
+         - name: osm-packages
+           mountPath: /app/storage
+      volumes:
+       - name: osm-packages
+         hostPath:
+          path: /var/lib/osm/osm_osm_packages/_data
diff --git a/installers/docker/osm_pods/pol.yaml b/installers/docker/osm_pods/pol.yaml
new file mode 100644
index 0000000..d6ca7cd
--- /dev/null
+++ b/installers/docker/osm_pods/pol.yaml
@@ -0,0 +1,54 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+# Author: Vijay Nag B S (vijaynag.bs@tataelxsi.co.in)
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: pol
+  labels:
+    app: pol
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: pol
+  template:
+    metadata:
+      labels:
+        app: pol
+    spec:
+      initContainers:
+      - name: kafka-mongo-test
+        image: alpine:latest
+        command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 mongo 27017); do sleep 3; done; exit 0"]
+      containers:
+      - name: pol
+        image: opensourcemano/pol:latest
+        env:
+         - name: OSMPOL_MESSAGE_HOST
+           value: kafka
+         - name: OSMPOL_MESSAGE_PORT
+           value: "9092"
+        envFrom:
+        - secretRef:
+             name: pol-secret
+        volumeMounts:
+        - name: db
+          mountPath: /app/database
+      volumes:
+      - name: db
+        hostPath:
+         path: /var/lib/osm/osm_pol_db/_data
diff --git a/installers/docker/osm_pods/prometheus.yaml b/installers/docker/osm_pods/prometheus.yaml
new file mode 100644
index 0000000..cdfd94d
--- /dev/null
+++ b/installers/docker/osm_pods/prometheus.yaml
@@ -0,0 +1,101 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: prometheus
+spec:
+  ports:
+  - nodePort: 9091
+    port: 9090
+    protocol: TCP
+    targetPort: 9090
+  selector:
+    app: prometheus
+  type: NodePort
+---
+apiVersion: v1
+data:
+  prometheus.yml: |
+    # Copyright 2018 The Prometheus Authors
+    # Copyright 2018 Whitestack
+    # Copyright 2018 Telefonica Investigacion y Desarrollo, S.A.U.
+    #
+    # Licensed under the Apache License, Version 2.0 (the "License");
+    # you may not use this file except in compliance with the License.
+    # You may obtain a copy of the License at
+    #
+    # http://www.apache.org/licenses/LICENSE-2.0
+    #
+    # Unless required by applicable law or agreed to in writing, software
+    # distributed under the License is distributed on an "AS IS" BASIS,
+    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    # See the License for the specific language governing permissions and
+    # limitations under the License.
+
+    # my global config
+    global:
+      scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
+      evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
+      # scrape_timeout is set to the global default (10s).
+
+    # Alertmanager configuration
+    alerting:
+      alertmanagers:
+      - static_configs:
+        - targets:
+          # - alertmanager:9093
+
+    # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
+    rule_files:
+      # - "first_rules.yml"
+      # - "second_rules.yml"
+
+    # A scrape configuration containing exactly one endpoint to scrape:
+    # Here it's Prometheus itself.
+    scrape_configs:
+      # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
+      - job_name: 'prometheus'
+
+        # metrics_path defaults to '/metrics'
+        # scheme defaults to 'http'.
+
+        static_configs:
+        - targets: ['mon:8000']
+kind: ConfigMap
+metadata:
+  name: prom
+---
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+  name: prometheus
+  labels:
+    app: prometheus
+spec:
+  replicas: 1
+  serviceName: prometheus
+  selector:
+    matchLabels:
+      app: prometheus
+  template:
+    metadata:
+      labels:
+        app: prometheus
+    spec:
+      containers:
+      - name: prometheus
+        image: prom/prometheus:v2.4.3
+        ports:
+        - containerPort: 9090
+          protocol: TCP
+        volumeMounts:
+        - name: prom-config
+          mountPath: /etc/prometheus/
+        - name: prom-db
+          mountPath: /prometheus
+      volumes:
+      - configMap:
+          defaultMode: 420
+          name: prom
+        name: prom-config
+      - emptyDir: {}
+        name: prom-db
diff --git a/installers/docker/osm_pods/ro.yaml b/installers/docker/osm_pods/ro.yaml
new file mode 100644
index 0000000..d63ed58
--- /dev/null
+++ b/installers/docker/osm_pods/ro.yaml
@@ -0,0 +1,69 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+# Author: Vijay Nag B S (vijaynag.bs@tataelxsi.co.in)
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: ro
+spec:
+  clusterIP: None
+  ports:
+  - port: 9090
+    protocol: TCP
+    targetPort: 9090
+  selector:
+    app: ro
+  type: ClusterIP
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: ro
+  labels:
+    app: ro
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: ro
+  template:
+    metadata:
+      labels:
+        app: ro
+    spec:
+      initContainers:
+      - name: ro-db-test
+        image: alpine:latest
+        command: ["sh", "-c", "until nc -zvw1 mysql 3306; do  sleep 3 ; done; exit 0"]
+      containers:
+      - name: ro
+        image: opensourcemano/ro:latest
+        ports:
+        - containerPort: 9090
+          protocol: TCP
+        env:
+         - name: RO_DB_HOST
+           value: mysql
+        envFrom:
+        - secretRef:
+           name: ro-secret
+        volumeMounts:
+         - name: ro
+           mountPath: /var/log/osm
+      volumes:
+      - name: ro
+        hostPath:
+         path: /var/lib/osm/osm_ro/_data
diff --git a/installers/docker/osm_pods/zookeeper.yaml b/installers/docker/osm_pods/zookeeper.yaml
new file mode 100644
index 0000000..0e31ed4
--- /dev/null
+++ b/installers/docker/osm_pods/zookeeper.yaml
@@ -0,0 +1,52 @@
+# Copyright 2019 TATA ELXSI
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: zookeeper
+spec:
+  clusterIP: None
+  ports:
+  - port: 2181
+    protocol: TCP
+    targetPort: 2181
+  selector:
+    app: zookeeper
+  type: ClusterIP
+---
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+  name: zookeeper
+  labels:
+    app: zookeeper
+spec:
+  replicas: 1
+  serviceName: zookeeper
+  selector:
+    matchLabels:
+      app: zookeeper
+  template:
+    metadata:
+      labels:
+        app: zookeeper
+    spec:
+      containers:
+      - name: zookeeper
+        image: wurstmeister/zookeeper:latest
+        ports:
+        - containerPort: 2181
+          protocol: TCP