Add SDC DCAE helm charts

Add SDC DCAE helm charts

Change-Id: I2b665a2a957274719a3eefad347951a1361d5064
Issue-ID: OOM-1113
Signed-off-by: Areli, Fuss (af732p) <af732p@att.com>
diff --git a/kubernetes/sdc/charts/sdc-dcae-dt/Chart.yaml b/kubernetes/sdc/charts/sdc-dcae-dt/Chart.yaml
new file mode 100644
index 0000000..e7d4830
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-dcae-dt/Chart.yaml
@@ -0,0 +1,18 @@
+# Copyright © 2018 Amdocs, AT&T, 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
+description:  ONAP DCAE desiner composition tool for creating customized templates
+name: sdc-dcae-dt
+version: 3.0.0
diff --git a/kubernetes/sdc/charts/sdc-dcae-dt/resources/config/logging/logback.xml b/kubernetes/sdc/charts/sdc-dcae-dt/resources/config/logging/logback.xml
new file mode 100644
index 0000000..89fd301
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-dcae-dt/resources/config/logging/logback.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!--

+================================================================================

+Copyright (C) 2018 AT&T Intellectual Property

+================================================================================

+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.

+================================================================================

+-->

+

+<configuration scan="true" scanPeriod="3 seconds">

+    <property name="logDir" value="/var/log/onap" />

+    <property name="componentName" scope="system" value="sdc"></property>

+    <property name="subComponentName" scope="system" value="dcae-dt"></property>

+    <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+    <property file="${config.home}/dcae-dt/configuration.yaml" />

+    <property name="enable-all-log" scope="context" value="false" />

+    <!--  log file names -->

+    <property name="errorLogName" value="error" />

+    <property name="metricsLogName" value="metrics" />

+    <property name="auditLogName" value="audit" />

+    <property name="debugLogName" value="debug" />

+    <property name="transactionLogName" value="transaction" />

+    <property name="allLogName" value="all" />

+    <property name="queueSize" value="256" />

+    <property name="maxFileSize" value="50MB" />

+    <property name="maxHistory" value="30" />

+    <property name="totalSizeCap" value="10GB" />

+    <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+    <!-- All log -->

+    <if condition='property("enable-all-log").equalsIgnoreCase("true")'>

+        <then>

+            <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">

+                <file>${logDirectory}/${allLogName}.log</file>

+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

+                    <fileNamePattern>${logDirectory}/${allLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+                    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                        <maxFileSize>${maxFileSize}</maxFileSize>

+                    </timeBasedFileNamingAndTriggeringPolicy>

+                    <maxHistory>${maxHistory}</maxHistory>

+                    <totalSizeCap>${totalSizeCap}</totalSizeCap>

+                </rollingPolicy>

+                <encoder>

+                    <pattern>${pattern}</pattern>

+                </encoder>

+            </appender>

+            <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">

+                <appender-ref ref="ALL_ROLLING" />

+            </appender>

+        </then>

+    </if>

+    <!-- Error log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">

+        <file>${logDirectory}/${errorLogName}.log</file>

+        <!-- Audit messages filter - deny audit messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>AUDIT_MARKER</marker>

+            </evaluator>

+            <onMismatch>NEUTRAL</onMismatch>

+            <onMatch>DENY</onMatch>

+        </filter>

+        <!-- Transaction messages filter - deny Transaction messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>TRANSACTION_MARKER</marker>

+            </evaluator>

+            <onMismatch>NEUTRAL</onMismatch>

+            <onMatch>DENY</onMatch>

+        </filter>

+        <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->

+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">

+            <level>INFO</level>

+        </filter>

+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

+            <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- Debug log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">

+        <file>${logDirectory}/${debugLogName}.log</file>

+        <!-- No need to deny audit messages - they are INFO only, will be denied

+                        anyway -->

+        <!-- Transaction messages filter - deny Transaction messages, there are

+                        some DEBUG level messages among them -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>TRANSACTION_MARKER</marker>

+            </evaluator>

+            <onMismatch>NEUTRAL</onMismatch>

+            <onMatch>DENY</onMatch>

+        </filter>

+        <!-- accept DEBUG and TRACE level -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">

+                <expression>e.level.toInt() &lt;= DEBUG.toInt()</expression>

+            </evaluator>

+            <OnMismatch>DENY</OnMismatch>

+            <OnMatch>NEUTRAL</OnMatch>

+        </filter>

+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

+            <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- Audit log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">

+        <file>${logDirectory}/${auditLogName}.log</file>

+        <!-- Audit messages filter - accept audit messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>AUDIT_MARKER</marker>

+            </evaluator>

+            <onMismatch>DENY</onMismatch>

+            <onMatch>ACCEPT</onMatch>

+        </filter>

+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

+            <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- SdncTransaction log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">

+        <file>${logDirectory}/${transactionLogName}.log</file>

+        <!-- Transaction messages filter - accept audit messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>TRANSACTION_MARKER</marker>

+            </evaluator>

+            <onMismatch>DENY</onMismatch>

+            <onMatch>ACCEPT</onMatch>

+        </filter>

+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

+            <fileNamePattern>${logDirectory}/${transactionLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- Asynchronicity Configurations -->

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="DEBUG_ROLLING" />

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="TRANSACTION_ROLLING" />

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="ERROR_ROLLING" />

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="AUDIT_ROLLING" />

+    </appender>

+    <root level="INFO">

+        <appender-ref ref="ASYNC_ERROR" />

+        <appender-ref ref="ASYNC_DEBUG" />

+        <appender-ref ref="ASYNC_AUDIT" />

+        <appender-ref ref="ASYNC_TRANSACTION" />

+        <if condition='property("enable-all-log").equalsIgnoreCase("true")'>

+            <then>

+                <appender-ref ref="ALL_ROLLING" />

+            </then>

+        </if>

+    </root>

+    <logger level="INFO" name="org.openecomp.sdc" />

+</configuration>

diff --git a/kubernetes/sdc/charts/sdc-dcae-dt/templates/NOTES.txt b/kubernetes/sdc/charts/sdc-dcae-dt/templates/NOTES.txt
new file mode 100644
index 0000000..0063bb6
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-dcae-dt/templates/NOTES.txt
@@ -0,0 +1,33 @@
+# Copyright © 2018 Amdocs, AT&T, 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.
+
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.fullname" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/sdc/charts/sdc-dcae-dt/templates/configmap.yaml b/kubernetes/sdc/charts/sdc-dcae-dt/templates/configmap.yaml
new file mode 100644
index 0000000..144bdb7
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-dcae-dt/templates/configmap.yaml
@@ -0,0 +1,21 @@
+# 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: {{ include "common.fullname" . }}-logging-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/sdc/charts/sdc-dcae-dt/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-dcae-dt/templates/deployment.yaml
new file mode 100644
index 0000000..f91335e
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-dcae-dt/templates/deployment.yaml
@@ -0,0 +1,144 @@
+# 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 }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - name: {{ include "common.name" . }}-readiness
+        command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - sdc-dcae-be
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+      - name: {{ include "common.name" . }}-job-completion
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}"
+        command:
+        - /root/job_complete.py
+        args:
+        - --job-name
+        - {{ .Release.Name }}-sdc-dcae-be-tools
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          - containerPort: {{ .Values.service.internalPort2 }}
+          {{ if eq .Values.liveness.enabled true }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end }}
+          readinessProbe:
+            httpGet:
+              path: /dcae/healthCheckOld
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          env:
+          - name: ENVNAME
+            value: {{ .Values.global.env.name }}
+          - name: JAVA_OPTIONS
+            value: {{ .Values.config.javaOptions }}
+          - name: HOST_IP
+            valueFrom:
+              fieldRef:
+                fieldPath: status.podIP
+          volumeMounts:
+          - name: {{ include "common.fullname" . }}-environments
+            mountPath: /var/opt/dcae-dt/chef-solo/environments/
+          - name: {{ include "common.fullname" . }}-localtime
+            mountPath: /etc/localtime
+            readOnly: true
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: /var/log/onap
+          - name: {{ include "common.fullname" . }}-logback
+            mountPath: /tmp/logback.xml
+            subPath: logback.xml
+          resources:
+{{ include "common.resources" . | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+
+        # side car containers
+        - name: {{ include "common.name" . }}-filebeat-onap
+          image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          volumeMounts:
+          - name: {{ include "common.fullname" . }}-filebeat-conf
+            mountPath: /usr/share/filebeat/filebeat.yml
+            subPath: filebeat.yml
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: /var/log/onap
+          - name: {{ include "common.fullname" . }}-data-filebeat
+            mountPath: /usr/share/filebeat/data
+      volumes:
+        - name: {{ include "common.fullname" . }}-localtime
+          hostPath:
+            path: /etc/localtime
+        - name: {{ include "common.fullname" . }}-filebeat-conf
+          configMap:
+            name: {{ .Release.Name }}-sdc-filebeat-configmap
+        - name: {{ include "common.fullname" . }}-data-filebeat
+          emptyDir: {}
+        - name: {{ include "common.fullname" . }}-logback
+          configMap:
+            name : {{ include "common.fullname" . }}-logging-configmap
+        - name: {{ include "common.fullname" . }}-environments
+          configMap:
+            name: {{ .Release.Name }}-sdc-environments-configmap
+            defaultMode: 0755
+        - name:  {{ include "common.fullname" . }}-logs
+          emptyDir: {}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/sdc/charts/sdc-dcae-dt/templates/service.yaml b/kubernetes/sdc/charts/sdc-dcae-dt/templates/service.yaml
new file mode 100644
index 0000000..e918608
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-dcae-dt/templates/service.yaml
@@ -0,0 +1,56 @@
+# 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: {{ include "common.servicename" . }}
+  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": "sdc-dcae-dt",
+          "version": "v1",
+          "url": "/dcae",
+          "protocol": "UI",
+          "port": "{{ .Values.service.internalPort }}",
+          "visualRange": "0|1"
+      }
+    ]'
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.internalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.portName }}
+    - port: {{ .Values.service.internalPort2 }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+      name: {{ .Values.service.portName }}2
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.portName }}
+    - port: {{ .Values.service.externalPort2 }}
+      targetPort: {{ .Values.service.internalPort2 }}
+      name: {{ .Values.service.portName }}2
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/sdc/charts/sdc-dcae-dt/values.yaml b/kubernetes/sdc/charts/sdc-dcae-dt/values.yaml
new file mode 100644
index 0000000..f04b8fa
--- /dev/null
+++ b/kubernetes/sdc/charts/sdc-dcae-dt/values.yaml
@@ -0,0 +1,83 @@
+# 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.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/dcae-dt:1.2-STAGING-latest
+pullPolicy: IfNotPresent
+config:
+  javaOptions: -XX:MaxPermSize=256m -Xmx1024m -Dconfig.home=config -Dlog.home=/var/lib/jetty/logs/ -Dlogging.config=config/dcae-dt/logback-spring.xml
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  enabled: false
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+service:
+  type: NodePort
+  name: sdc-dcae-dt
+  portName: dcae-dt
+  nodePort: "65"
+  internalPort: 8186
+  portName2: dcae-dt2
+  nodePort2: "66"
+  internalPort2: 9446
+
+ingress:
+  enabled: false
+
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 1
+      memory: 4Gi
+    requests:
+      cpu: 10m
+      memory: 1Gi
+  large:
+    limits:
+      cpu: 2
+      memory: 8Gi
+    requests:
+      cpu: 20m
+      memory: 2Gi
+  unlimited: {}
\ No newline at end of file