Add standardized helm chart for multicloud

-mk: updating umbrella requirements.yaml

Issue-ID: OOM-744

Change-Id: Iae202a60ff5fd8d4fa98bd29184df1444b616186
Signed-off-by: kj <keren.joseph@amdocs.com>
Signed-off-by: Mandeep Khinda <mandeep.khinda@amdocs.com>
diff --git a/kubernetes/multicloud/templates/all-services.yaml b/kubernetes/multicloud/templates/all-services.yaml
deleted file mode 100644
index c58cd74..0000000
--- a/kubernetes/multicloud/templates/all-services.yaml
+++ /dev/null
@@ -1,132 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# 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.
-
-#{{ if not .Values.disableMulticloudFramework }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: framework
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    name: framework
-  annotations:
-    msb.onap.org/service-info: '[
-    {
-      "serviceName": "multicloud",
-      "version": "v0",
-      "url": "/api/multicloud/v0",
-      "protocol": "REST",
-      "port": "9001",
-      "visualRange": "1"
-    }
-    ]'
-spec:
-  ports:
-  - name: "framework-port"
-    port: 9001
-    nodePort: {{ .Values.nodePortPrefix }}91
-  selector:
-    app: framework
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableMulticloudMulticloudVio }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: multicloud-vio
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    name: multicloud-vio
-  annotations:
-    msb.onap.org/service-info: '[
-    {
-      "serviceName": "multicloud-vio",
-      "version": "v0",
-      "url": "/api/multicloud-vio/v0",
-      "protocol": "REST",
-      "port": "9004",
-      "visualRange": "1"
-    }
-    ]'
-
-spec:
-  ports:
-  - name: "multicloud-port"
-    port: 9004
-    nodePort: {{ .Values.nodePortPrefix }}92
-  selector:
-    app: multicloud-vio
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableMulticloudMulticloudOcata }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: multicloud-ocata
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    name: multicloud-ocata
-  annotations:
-    msb.onap.org/service-info: '[
-    {
-      "serviceName": "multicloud-ocata",
-      "version": "v0",
-      "url": "/api/multicloud-ocata/v0",
-      "protocol": "REST",
-      "port": "9006",
-      "visualRange": "1"
-    }
-    ]'
-
-spec:
-  ports:
-  - name: "multicloud-port"
-    port: 9006
-    nodePort: {{ .Values.nodePortPrefix }}93
-  selector:
-    app: multicloud-ocata
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableMulticloudMulticloudWindriver }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: multicloud-windriver
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    name: multicloud-windriver
-  annotations:
-    msb.onap.org/service-info: '[
-    {
-      "serviceName": "multicloud-titanium_cloud",
-      "version": "v0",
-      "url": "/api/multicloud-titanium_cloud/v0",
-      "protocol": "REST",
-      "port": "9005",
-      "visualRange": "1"
-    }
-    ]'
-
-spec:
-  ports:
-  - name: "multicloud-port"
-    port: 9005
-    nodePort: {{ .Values.nodePortPrefix }}94
-  selector:
-    app: multicloud-windriver
-  type: NodePort
-#{{ end }}
\ No newline at end of file
diff --git a/kubernetes/multicloud/templates/configmap.yaml b/kubernetes/multicloud/templates/configmap.yaml
new file mode 100644
index 0000000..e420fb9
--- /dev/null
+++ b/kubernetes/multicloud/templates/configmap.yaml
@@ -0,0 +1,31 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# 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: ConfigMap
+metadata:
+  name: multicloud-filebeat-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/framework/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/multicloud/templates/deployment.yaml b/kubernetes/multicloud/templates/deployment.yaml
new file mode 100644
index 0000000..f42d5f3
--- /dev/null
+++ b/kubernetes/multicloud/templates/deployment.yaml
@@ -0,0 +1,117 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# 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: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+    spec:
+     containers:
+     - env:
+       - name: MSB_ADDR
+         value: {{ .Values.config.msbgateway }}.{{ include "common.namespace" . }}
+       - name: MSB_PORT
+         value: "{{ .Values.config.msbPort }}"
+       - name: AAI_ADDR
+         value: "aai.{{ include "common.namespace" . }}"
+       - name: AAI_PORT
+         value: "{{ .Values.config.aai.port }}"
+       - name: AAI_SCHEMA_VERSION
+         value: "{{ .Values.config.aai.schemaVersion }}"
+       - name: AAI_USERNAME
+         value: "{{ .Values.config.aai.username }}"
+       - name: AAI_PASSWORD
+         value: "{{ .Values.config.aai.password }}"
+       image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+       imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+       name: {{ include "common.name" . }}
+       volumeMounts:
+       - mountPath: /var/log/onap
+         name: framework-log
+       - mountPath: /opt/multivimbroker/multivimbroker/pub/config/log.yml
+         name: framework-logconfig
+         subPath: log.yml
+       ports:
+       - containerPort: {{ .Values.service.internalPort }}
+       # disable liveness probe when breakpoints set in debugger
+       # so K8s doesn't restart unresponsive container
+       {{- if eq .Values.liveness.enabled true }}
+       livenessProbe:
+         httpGet:
+           path: /api/multicloud/v0/swagger.json
+           port: {{ .Values.service.internalPort }}
+           scheme: HTTP
+         initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+         periodSeconds: {{ .Values.liveness.periodSeconds }}
+         timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
+         successThreshold: {{ .Values.liveness.successThreshold }}
+         failureThreshold: {{ .Values.liveness.failureThreshold }}
+       {{ end -}}
+
+      # side car containers
+     - image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+       imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+       name: filebeat-onap
+       volumeMounts:
+       - mountPath: /usr/share/filebeat/filebeat.yml
+         name: filebeat-conf
+         subPath: filebeat.yml
+       - mountPath: /var/log/onap
+         name: framework-log
+       - mountPath: /usr/share/filebeat/data
+         name: framework-data-filebeat
+       resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+     nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+     {{- end -}}
+     {{- if .Values.affinity }}
+     affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+     {{- end }}
+
+     volumes:
+     - name: framework-log
+       emptyDir: {}
+     - name: framework-data-filebeat
+       emptyDir: {}
+     - name: filebeat-conf
+       configMap:
+         name: multicloud-filebeat-configmap
+     - name: framework-logconfig
+       configMap:
+         name: {{ include "common.fullname" . }}-log-configmap
+     imagePullSecrets:
+     - name: "{{ include "common.namespace" . }}-docker-registry-key"
+     restartPolicy: Always
diff --git a/kubernetes/multicloud/templates/framework-deployment.yaml b/kubernetes/multicloud/templates/framework-deployment.yaml
deleted file mode 100644
index b2f0440..0000000
--- a/kubernetes/multicloud/templates/framework-deployment.yaml
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# 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.
-
-#{{ if not .Values.disableMulticloudFramework }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: multicloud-framework
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.frameworkReplicas }}
-  selector:
-    matchLabels:
-      app: framework
-  template:
-    metadata:
-      labels:
-        app: framework
-      name: multicloud-framework
-    spec:
-     containers:
-     - env:
-       - name: MSB_ADDR
-         value: {{ tpl .Values.msbgateway . }}
-       - name: MSB_PORT
-         value: "{{ .Values.msbPort }}"
-       - name: AAI_ADDR
-         value: aai-service.{{ .Values.nsPrefix }}
-       - name: AAI_PORT
-         value: "8443"
-       - name: AAI_SCHEMA_VERSION
-         value: "v11"
-       - name: AAI_USERNAME
-         value: "AAI"
-       - name: AAI_PASSWORD
-         value: "AAI"
-       image: {{ .Values.image.framework }}
-       imagePullPolicy: {{ .Values.pullPolicy }}
-       name: framework
-       volumeMounts:
-       - mountPath: /var/log/onap
-         name: framework-log
-       - mountPath: /opt/multivimbroker/multivimbroker/pub/config/log.yml
-         name: framework-logconfig
-         subPath: log.yml
-       ports:
-       - containerPort: 9001
-       livenessProbe:
-         httpGet:
-           path: /api/multicloud/v0/swagger.json
-           port: 9001
-           scheme: HTTP
-         initialDelaySeconds: 30
-         periodSeconds: 10
-         timeoutSeconds: 10
-         successThreshold: 1
-         failureThreshold: 5
-     - image: {{ .Values.image.filebeat }}
-       imagePullPolicy: {{ .Values.pullPolicy }}
-       name: filebeat-onap
-       volumeMounts:
-       - mountPath: /usr/share/filebeat/filebeat.yml
-         name: filebeat-conf
-         subPath: filebeat.yml
-       - mountPath: /var/log/onap
-         name: framework-log
-       - mountPath: /usr/share/filebeat/data
-         name: framework-data-filebeat
-     volumes:
-     - name: framework-log
-       emptyDir: {}
-     - name: framework-data-filebeat
-       emptyDir: {}
-     - name: filebeat-conf
-       configMap:
-         name: multicloud-filebeat-configmap
-     - name: framework-logconfig
-       configMap:
-         name: multicloud-framework-log-configmap
-     imagePullSecrets:
-     - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-     restartPolicy: Always
-#{{ end }}
diff --git a/kubernetes/multicloud/templates/multicloud-log-configmap.yaml b/kubernetes/multicloud/templates/multicloud-log-configmap.yaml
deleted file mode 100644
index 1050f10..0000000
--- a/kubernetes/multicloud/templates/multicloud-log-configmap.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# 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.
-
-#{{ if not .Values.disableVidVidServer }}
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: multicloud-filebeat-configmap
-  namespace: {{ .Values.nsPrefix }}
-data:
-{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: multicloud-framework-log-configmap
-  namespace: {{ .Values.nsPrefix }}
-data:
-{{ tpl (.Files.Glob "resources/config/log/framework/*").AsConfig . | indent 2 }}
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: multicloud-vio-log-configmap
-  namespace: {{ .Values.nsPrefix }}
-data:
-{{ tpl (.Files.Glob "resources/config/log/vio/*").AsConfig . | indent 2 }}
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: multicloud-ocata-log-configmap
-  namespace: {{ .Values.nsPrefix }}
-data:
-{{ tpl (.Files.Glob "resources/config/log/ocata/*").AsConfig . | indent 2 }}
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: multicloud-windriver-log-configmap
-  namespace: {{ .Values.nsPrefix }}
-data:
-{{ tpl (.Files.Glob "resources/config/log/windriver/*").AsConfig . | indent 2 }}
-#{{ end }}
diff --git a/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml b/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml
deleted file mode 100644
index ecbd74b..0000000
--- a/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# 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.
-
-#{{ if not .Values.disableMulticloudMulticloudOcata }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: multicloud-ocata
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.ocataReplicas }}
-  selector:
-    matchLabels:
-      app: multicloud-ocata
-  template:
-    metadata:
-      labels:
-        app: multicloud-ocata
-      name: multicloud-ocata
-    spec:
-     containers:
-     - env:
-       - name: MSB_ADDR
-         value: "{{ tpl .Values.msbgateway . }}"
-       - name: MSB_PORT
-         value: "{{ .Values.msbPort }}"
-       - name: AAI_ADDR
-         value: aai-service.{{ .Values.nsPrefix }}
-       - name: AAI_PORT
-         value: "8443"
-       - name: AAI_SCHEMA_VERSION
-         value: "v11"
-       - name: AAI_USERNAME
-         value: "AAI"
-       - name: AAI_PASSWORD
-         value: "AAI"
-       name: multicloud-ocata
-       volumeMounts:
-       - mountPath: /var/log/onap
-         name: ocata-log
-       - mountPath: /opt/ocata/ocata/pub/config/log.yml
-         name: ocata-logconfig
-         subPath: log.yml
-       image: {{ .Values.image.ocata }}
-       imagePullPolicy: {{ .Values.pullPolicy }}
-       ports:
-       - containerPort: 9006
-       livenessProbe:
-         httpGet:
-           path: /api/multicloud-ocata/v0/swagger.json
-           port: 9006
-           scheme: HTTP
-         initialDelaySeconds: 30
-         periodSeconds: 10
-         timeoutSeconds: 10
-         successThreshold: 1
-         failureThreshold: 5
-     - image: {{ .Values.image.filebeat }}
-       imagePullPolicy: {{ .Values.pullPolicy }}
-       name: filebeat-onap
-       volumeMounts:
-       - mountPath: /usr/share/filebeat/filebeat.yml
-         name: filebeat-conf
-         subPath: filebeat.yml
-       - mountPath: /var/log/onap
-         name: ocata-log
-       - mountPath: /usr/share/filebeat/data
-         name: ocata-data-filebeat
-     volumes:
-     - name: ocata-log
-       emptyDir: {}
-     - name: ocata-data-filebeat
-       emptyDir: {}
-     - name: filebeat-conf
-       configMap:
-         name: multicloud-filebeat-configmap
-     - name: ocata-logconfig
-       configMap:
-         name: multicloud-ocata-log-configmap
-     imagePullSecrets:
-     - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-     restartPolicy: Always
-#{{ end }}
diff --git a/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml b/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml
deleted file mode 100644
index e151081..0000000
--- a/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# 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.
-
-#{{ if not .Values.disableMulticloudMulticloudVio }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: multicloud-vio
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.vioReplicas }}
-  selector:
-    matchLabels:
-      app: multicloud-vio
-  template:
-    metadata:
-      labels:
-        app: multicloud-vio
-      name: multicloud-vio
-    spec:
-     containers:
-     - env:
-       - name: MSB_ADDR
-         value: "{{ tpl .Values.msbgateway . }}"
-       - name: MSB_PORT
-         value: "{{ .Values.msbPort }}"
-       - name: AAI_ADDR
-         value: aai-service.{{ .Values.nsPrefix }}
-       - name: AAI_PORT
-         value: "8443"
-       - name: AAI_SCHEMA_VERSION
-         value: "v11"
-       - name: AAI_USERNAME
-         value: "AAI"
-       - name: AAI_PASSWORD
-         value: "AAI"
-       name: multicloud-vio
-       volumeMounts:
-       - mountPath: /var/log/onap
-         name: vio-log
-       - mountPath: /opt/vio/vio/pub/config/log.yml
-         name: vio-logconfig
-         subPath: log.yml
-       image: {{ .Values.image.vio }}
-       imagePullPolicy: {{ .Values.pullPolicy }}
-       ports:
-       - containerPort: 9004
-       livenessProbe:
-         httpGet:
-           path: /api/multicloud-vio/v0/swagger.json
-           port: 9004
-           scheme: HTTP
-         initialDelaySeconds: 30
-         periodSeconds: 10
-         timeoutSeconds: 10
-         successThreshold: 1
-         failureThreshold: 5
-     - image: {{ .Values.image.filebeat }}
-       imagePullPolicy: {{ .Values.pullPolicy }}
-       name: filebeat-onap
-       volumeMounts:
-       - mountPath: /usr/share/filebeat/filebeat.yml
-         name: filebeat-conf
-         subPath: filebeat.yml
-       - mountPath: /var/log/onap
-         name: vio-log
-       - mountPath: /usr/share/filebeat/data
-         name: vio-data-filebeat
-     volumes:
-     - name: vio-log
-       emptyDir: {}
-     - name: vio-data-filebeat
-       emptyDir: {}
-     - name: filebeat-conf
-       configMap:
-         name: multicloud-filebeat-configmap
-     - name: vio-logconfig
-       configMap:
-         name: multicloud-vio-log-configmap
-     imagePullSecrets:
-     - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-     restartPolicy: Always
-#{{ end }}
diff --git a/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml b/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml
deleted file mode 100644
index c1b3858..0000000
--- a/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# 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.
-
-#{{ if not .Values.disableMulticloudMulticloudWindriver }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: multicloud-windriver
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.windRiverReplicas }}
-  selector:
-    matchLabels:
-      app: multicloud-windriver
-  template:
-    metadata:
-      labels:
-        app: multicloud-windriver
-      name: multicloud-windriver
-    spec:
-     containers:
-     - env:
-       - name: MSB_ADDR
-         value: "{{ tpl .Values.msbgateway . }}"
-       - name: MSB_PORT
-         value: "{{ .Values.msbPort }}"
-       - name: AAI_ADDR
-         value: aai-service.{{ .Values.nsPrefix }}
-       - name: AAI_PORT
-         value: "8443"
-       - name: AAI_SCHEMA_VERSION
-         value: "v11"
-       - name: AAI_USERNAME
-         value: "AAI"
-       - name: AAI_PASSWORD
-         value: "AAI"
-       name: multicloud-windriver
-       volumeMounts:
-       - mountPath: /var/log/onap
-         name: windriver-log
-       - mountPath: /opt/windriver/titanium_cloud/pub/config/log.yml
-         name: windriver-logconfig
-         subPath: log.yml
-       image: {{ .Values.image.windriver }}
-       imagePullPolicy: {{ .Values.pullPolicy }}
-       ports:
-       - containerPort: 9005
-       livenessProbe:
-         httpGet:
-           path: /api/multicloud-titanium_cloud/v0/swagger.json
-           port: 9005
-           scheme: HTTP
-         initialDelaySeconds: 30
-         periodSeconds: 10
-         timeoutSeconds: 10
-         successThreshold: 1
-         failureThreshold: 5
-     - image: {{ .Values.image.filebeat }}
-       imagePullPolicy: {{ .Values.pullPolicy }}
-       name: filebeat-onap
-       volumeMounts:
-       - mountPath: /usr/share/filebeat/filebeat.yml
-         name: filebeat-conf
-         subPath: filebeat.yml
-       - mountPath: /var/log/onap
-         name: windriver-log
-       - mountPath: /usr/share/filebeat/data
-         name: windriver-data-filebeat
-     volumes:
-     - name: windriver-log
-       emptyDir: {}
-     - name: windriver-data-filebeat
-       emptyDir: {}
-     - name: filebeat-conf
-       configMap:
-         name: multicloud-filebeat-configmap
-     - name: windriver-logconfig
-       configMap:
-         name: multicloud-windriver-log-configmap
-     imagePullSecrets:
-     - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-     restartPolicy: Always
-#{{ end }}
diff --git a/kubernetes/multicloud/templates/service.yaml b/kubernetes/multicloud/templates/service.yaml
new file mode 100644
index 0000000..9f18c5e
--- /dev/null
+++ b/kubernetes/multicloud/templates/service.yaml
@@ -0,0 +1,52 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# 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: {{ .Values.service.name }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+    msb.onap.org/service-info: '[
+    {
+      "serviceName": "multicloud",
+      "version": "v0",
+      "url": "/api/multicloud/v0",
+      "protocol": "REST",
+      "port": {{ .Values.service.externalPort }},
+      "visualRange": "1"
+    }
+    ]'
+spec:
+  ports:
+  {{if eq .Values.service.type "NodePort" -}}
+  - name: {{ .Values.service.name }}
+    port: {{ .Values.service.externalPort }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+  {{- else -}}
+  - port: {{ .Values.service.externalPort }}
+    targetPort: {{ .Values.service.internalPort }}
+    name: {{ .Values.service.name }}
+  {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  type: {{ .Values.service.type }}