Add helm-configured DCAE Gen 1

This is the initial seed of the dcae gen 1 deployment specifications
using onap 1.1 component containers.
All containers come up, however, there are issues with some of the containers
that will be flushed out during integration.

Change-Id: I6b74262168ae54bb7859d81de1ade6b59d1c42b1
Issue-Id: OOM-176
Signed-off-by: Mike Elliott <mike.elliott@amdocs.com>
diff --git a/kubernetes/dcae/Chart.yaml b/kubernetes/dcae/Chart.yaml
new file mode 100644
index 0000000..168a214
--- /dev/null
+++ b/kubernetes/dcae/Chart.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: DCAE Gen 1
+name: DCAE
+version: 1.1.0
diff --git a/kubernetes/dcae/README b/kubernetes/dcae/README
new file mode 100644
index 0000000..c733355
--- /dev/null
+++ b/kubernetes/dcae/README
@@ -0,0 +1,18 @@
+DCAE Port mapping
+-----------------------------------------------------------------------------------------
+Container name               |     Connector name    |    Node port      |  Target port  |
+-----------------------------------------------------------------------------------------
+dcae-collector-common-event  |        dcae-ce1       |      30236        |    8080       |
+-----------------------------------------------------------------------------------------
+                             |        dcae-ce2       |      30237        |    8443       |
+-----------------------------------------------------------------------------------------
+                             |        dcae-ce3       |      30238        |    9999       |
+-----------------------------------------------------------------------------------------
+dcae-collector-dmaapbc       |        dcae-bc1       |      30239        |    8080       |
+-----------------------------------------------------------------------------------------
+                             |        dcae-bc2       |      30240        |    8443       |
+-----------------------------------------------------------------------------------------
+dcae-ves-collector           |        dcae-ves1      |      30241        |    8080       |
+-----------------------------------------------------------------------------------------
+                             |        dcae-ves2      |      30242        |    9999       |
+-----------------------------------------------------------------------------------------
diff --git a/kubernetes/dcae/cdap/docker/00-provisioning.sh b/kubernetes/dcae/cdap/docker/00-provisioning.sh
new file mode 100755
index 0000000..98b67c4
--- /dev/null
+++ b/kubernetes/dcae/cdap/docker/00-provisioning.sh
@@ -0,0 +1,257 @@
+#!/bin/bash
+set -x
+
+export DEBIAN_FRONTEND=noninteractive
+
+##############################################################
+################### File provisioning ########################
+##############################################################
+
+cd /tmp
+
+
+## Adding configuration file: mount_config
+cat > /tmp/dcae-mount.conf << EOF_CONFIG
+osType: ubuntu
+volumes:
+  ephemeral:
+    uuid: ephemeral
+    size: 80
+    filesystems:
+      /opt/tools:
+        size: 80
+        type: ext4
+        mount_opts: ''
+  data:
+    uuid: cinder
+    size: 75
+    filesystems:
+      /opt/data:
+        size: 75
+        type: ext4
+        mount_opts: ''
+EOF_CONFIG
+
+
+## Adding configuration file: ecomp-nexus
+cat > /tmp/ecomp-nexus.crt << EOF_CONFIG
+-----BEGIN CERTIFICATE-----
+MIIFRTCCBC2gAwIBAgIQM/5eM8D0jY3yHTSyN5iO9zANBgkqhkiG9w0BAQsFADCB
+kDELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNV
+BAMTLUNPTU9ETyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD
+QTAeFw0xNzAzMjgwMDAwMDBaFw0xODAzMjgyMzU5NTlaMFcxITAfBgNVBAsTGERv
+bWFpbiBDb250cm9sIFZhbGlkYXRlZDEdMBsGA1UECxMUUG9zaXRpdmVTU0wgV2ls
+ZGNhcmQxEzARBgNVBAMMCioub25hcC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDIVo+kmG2sGaeIJy5pqP6mzlIwqYUXcFOG2fodsCPg9CEdlsBO
+IECuoPYmCqrJ/MHLfs+F+SjEoBfpJlqyrpLhVj8O/9xCp4Tda/YJ18n59uDJ7Rpq
+omqZlFCj/B4+H6+dkWCFy1FxYBBAIO52iscd4F6YHD1p3xUjJRd9Yf6qnktmSooI
+hbIKzPIpSTsYiN3ArWbrGeucoQUdKX+intRHFLkKay88R7yqoqguPFIEtkXwDoJj
+aV+rC103eZ1RLwtBcS/4UcDXRDfkyQANAYvKGeHiyGuRQqEUyGEmKz2i11m1oyEP
+uD1AK+zPd33wBdOe8iZMr0CxcOGhgcKOWJ7vAgMBAAGjggHRMIIBzTAfBgNVHSME
+GDAWgBSQr2o6lFoL2JDqElZz30O0Oija5zAdBgNVHQ4EFgQUMVkz3DD9qwhzY5WT
+/P1mCVpsauQwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYw
+FAYIKwYBBQUHAwEGCCsGAQUFBwMCME8GA1UdIARIMEYwOgYLKwYBBAGyMQECAgcw
+KzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNvbS9DUFMwCAYG
+Z4EMAQIBMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwuY29tb2RvY2EuY29t
+L0NPTU9ET1JTQURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcmwwgYUG
+CCsGAQUFBwEBBHkwdzBPBggrBgEFBQcwAoZDaHR0cDovL2NydC5jb21vZG9jYS5j
+b20vQ09NT0RPUlNBRG9tYWluVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNydDAk
+BggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMB8GA1UdEQQYMBaC
+Cioub25hcC5vcmeCCG9uYXAub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQAd5mu22sts
+at/bdRlIOz3dbqGwIFOo8XajlAs6ApMpyx/xetcgIKipzvGp9Wc1X8lDZl4boCH6
+KQ1//4tpksYj8RsZSZeac8vQLKggWO107sBa33yFg6Y1Dk2DdgOKZ+lNbvB1iMwK
+hSGtV3HYx1jLyQRoeYby4R7+kTI1lHAiOgT+vn5C9Z3TxqfgWuBf24CFp/95gki6
+vRysJh9Jf7A8JrrMGykC94Tpo6OiUehtQ+f65xtetvwsfNHVp3hsLzR5KwIMDARI
+IgXKyROodILsOXfR9qdA9klcXUSi6qvKF8wAopNuot4Ltyz8chiFKISjxqVrKnY2
+M7En/HyX0s1I
+-----END CERTIFICATE-----
+EOF_CONFIG
+
+
+## Adding configuration file: vm-cdap-cluster-cdap.properties
+cat > /tmp/vm-cdap-cluster-cdap.properties << EOF_CONFIG
+cluster.endpoint= foobar
+cluster.user= foobar
+cluster.password= foobar
+EOF_CONFIG
+
+
+## Adding configuration file: vm-cdap-cluster-console.properties
+cat > /tmp/vm-cdap-cluster-console.properties << EOF_CONFIG
+localhost.endpoint=http://localhost:1999
+localhost.user=console
+localhost.password=NTJhYWU1NzAwMzc3OTk1
+EOF_CONFIG
+
+
+## Adding configuration file: vm-cdap-cluster-gui.properties
+cat > /tmp/vm-cdap-cluster-gui.properties << EOF_CONFIG
+EOF_CONFIG
+
+
+## Adding configuration file: vm-cdap-cluster-log4j.properties
+cat > /tmp/vm-cdap-cluster-log4j.properties << EOF_CONFIG
+#log4j.debug=0
+log4j.rootLogger=warn, file
+log4j.logger.org.openecomp.ncomp=info, file
+log4j.additivity.org.openecomp.ncomp=false
+
+#log4j.logger.org.apache.http.headers=debug, file
+#log4j.logger.org.apache.http.wire=debug, file
+## uploaded logger
+log4j.logger.org.openecomp.ncomp.sirius.manager.uploaded=info, uploaded
+log4j.additivity.org.openecomp.ncomp.sirius.manager.uploaded=false
+## request logging
+log4j.logger.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=info, requests
+log4j.additivity.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=false
+## openstack polling
+log4j.logger.org.openecomp.ncomp.openstack.OpenStackUtil.polling=info, polling
+log4j.additivity.org.openecomp.ncomp.openstack.OpenStackUtil.polling=false
+log4j.appender.file=org.apache.log4j.RollingFileAppender
+log4j.appender.file.File=logs/manager.log
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
+log4j.appender.file.MaxFileSize=50MB
+log4j.appender.file.MaxBackupIndex=5
+
+log4j.appender.uploaded=org.apache.log4j.RollingFileAppender
+log4j.appender.uploaded.File=logs/manager-uploaded.log
+log4j.appender.uploaded.layout=org.apache.log4j.PatternLayout
+log4j.appender.uploaded.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
+log4j.appender.uploaded.MaxFileSize=50MB
+log4j.appender.uploaded.MaxBackupIndex=5
+
+log4j.appender.requests=org.apache.log4j.RollingFileAppender
+log4j.appender.requests.File=logs/manager-requests.log
+log4j.appender.requests.layout=org.apache.log4j.PatternLayout
+log4j.appender.requests.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
+log4j.appender.requests.MaxFileSize=50MB
+log4j.appender.requests.MaxBackupIndex=5
+log4j.appender.polling=org.apache.log4j.RollingFileAppender
+log4j.appender.polling.File=logs/manager-polling.log
+log4j.appender.polling.layout=org.apache.log4j.PatternLayout
+log4j.appender.polling.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
+log4j.appender.polling.MaxFileSize=50MB
+log4j.appender.polling.MaxBackupIndex=5
+
+### ECOMP Logging
+log4j.logger.org.openecomp.audit=info, audit
+log4j.additivity.org.openecomp.audit=false
+log4j.logger.org.openecomp.metrics=info, metrics
+log4j.additivity.org.openecomp.metrics=false
+log4j.logger.org.openecomp.error=info, error
+log4j.additivity.org.openecomp.error=false
+log4j.logger.com.att.eelf.debug=info, debug
+log4j.additivity.org.openecomp.debug=false
+log4j.appender.audit=org.apache.log4j.RollingFileAppender
+log4j.appender.audit.File=logs/audit.log
+log4j.appender.audit.layout=org.apache.log4j.PatternLayout
+log4j.appender.audit.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%5p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
+log4j.appender.audit.MaxFileSize=50MB
+log4j.appender.audit.MaxBackupIndex=5
+log4j.appender.metrics=org.apache.log4j.RollingFileAppender
+log4j.appender.metrics.File=logs/metrics.log
+log4j.appender.metrics.layout=org.apache.log4j.PatternLayout
+log4j.appender.metrics.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
+log4j.appender.metrics.MaxFileSize=50MB
+log4j.appender.metrics.MaxBackupIndex=5
+log4j.appender.error=org.apache.log4j.RollingFileAppender
+log4j.appender.error.File=logs/error.log
+log4j.appender.error.layout=org.apache.log4j.PatternLayout
+log4j.appender.error.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
+log4j.appender.error.MaxFileSize=50MB
+log4j.appender.error.MaxBackupIndex=5
+log4j.appender.debug=org.apache.log4j.RollingFileAppender
+log4j.appender.debug.File=logs/debug.log
+log4j.appender.debug.layout=org.apache.log4j.PatternLayout
+log4j.appender.debug.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
+log4j.appender.debug.MaxFileSize=50MB
+log4j.appender.debug.MaxBackupIndex=5
+EOF_CONFIG
+
+
+## Adding configuration file: vm-cdap-cluster-manager.properties
+cat > /tmp/vm-cdap-cluster-manager.properties << EOF_CONFIG
+server.dir = data/resources
+metrics.dir = data/metrics
+properties.dir = data/properties
+server.port = 1999
+server.user.console = NTJhYWU1NzAwMzc3OTk1
+server.user.gui = MDlhZWVjZWEwMmFiOTJi
+server.user.client = YmE2OGE1N2U5NzRmMDg1
+EOF_CONFIG
+
+
+## Adding configuration file: vm-cdap-cluster-runtime.properties
+cat > /tmp/vm-cdap-cluster-runtime.properties << EOF_CONFIG
+factory.vm=org.openecomp.dcae.controller.service.servers.vm.DcaeVmFactory
+
+## Adding configuration file: monitoring-agent-gui.properties
+cat > /tmp/monitoring-agent-gui.properties << EOF_CONFIG
+EOF_CONFIG
+
+
+cat > /tmp/certificate.pkcs12.b64code << EOF_CERT
+EOF_CERT
+
+
+##############################################################
+################## Config Provisioning #######################
+##############################################################
+
+mkdir -p ~/.ssh
+touch ~/.ssh/authorized_keys
+echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBn8Ctt5hJGkTQaffuSeINeABV4viBIM4TcP14kaLiWR1LkyNY+TaUnjxODobtZa4YW1lxFtoMCfZt2A5W9ZZPM+shZr4BOj+wU+xIrzn7ezN/CQjH7c4Wh0mWteuPnJrtdpyGQ/qBI2T+xo5G/Tl++SPUvvN2D4H8vl0miEgVPR47/P7Ba6kl7Bmrf9m0VDPdS69Qr2AhgBq5Qi/fTeGZA4sfKDHHRJxkQIXYmS8R5FISRpBD7ta2NTHapRz9dC6Cw8UttEFiWFUBjN6lwF9LUOkj9MiqiTQaElKKQzMIHr0AhlgIkwBLKAJoDrGQD9GKPwKCdW3OmnODMPxJjXc3 > ~/.ssh/authorized_keys
+
+cp /tmp/ecomp-nexus.crt /usr/local/share/ca-certificates/ ; update-ca-certificates
+
+wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-core-utils/1.1.0/dcae-controller-core-utils-1.1.0-runtime.zip -P /opt/app/dcae-controller-core-utils
+
+cd /opt/app/dcae-controller-core-utils
+unzip -o dcae-controller-core-utils*.zip
+
+chown -R dcae:dcae /opt/app/dcae-controller-core-utils
+
+/opt/app/dcae-controller-core-utils/bin/fs-init.py
+
+wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-cdap-cluster-manager/1.1.0/dcae-controller-service-cdap-cluster-manager-1.1.0-runtime.zip -P /opt/app/dcae-controller-service-cdap-cluster-manager
+
+cd /opt/app/dcae-controller-service-cdap-cluster-manager
+unzip -o dcae-controller-service-cdap-cluster-manager*.zip
+
+chown -R dcae:dcae /opt/app/dcae-controller-service-cdap-cluster-manager
+
+wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-dmaap-drsub/1.1.0/dcae-controller-service-dmaap-drsub-1.1.0.pom -P /opt/app/dcae-controller-service-dmaap-drsub
+
+chown -R dcae:dcae /opt/app/dcae-controller-service-dmaap-drsub
+
+curl -s -k -f -o /tmp/dcae-apod-cdap-small-hadoop_1.1.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.apod.cdap/deb-releases/dcae-apod-cdap-small-hadoop_1.1.0.deb
+
+curl -s -k -f -o /tmp/dcae-apod-analytics-tca_1.1.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.apod.analytics/deb-releases/dcae-apod-analytics-tca_1.1.0.deb
+
+curl -s -k -f -o /tmp/HelloWorld-3.5.1.jar http://repo1.maven.org/maven2/co/cask/cdap/HelloWorld/3.5.1/HelloWorld-3.5.1.jar
+mkdir -p /opt/app/cask-hello-world/lib
+mv /tmp/HelloWorld-3.5.1.jar /opt/app/cask-hello-world/lib
+
+find /opt -type f -exec sed -i 's/sudo//g' {} \;
+
+apt-key adv --keyserver-options --keyserver keyserver.ubuntu.com --recv 07513CAD
+wget -qO - http://repository.cask.co/ubuntu/precise/amd64/cdap/3.5/pubkey.gpg | apt-key add -
+
+wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-dmaap-drsub-manager/1.1.0/dcae-controller-service-dmaap-drsub-manager-1.1.0-runtime.zip -P /opt/app/dcae-controller-service-dmaap-drsub-manager
+
+cd /opt/app/dcae-controller-service-dmaap-drsub-manager
+unzip -o dcae-controller-service-dmaap-drsub-manager-1.1.0-runtime.zip
+
+chown -R dcae:dcae /opt/app/dcae-controller-service-dmaap-drsub-manager
+
+mkdir /home/dcae/.ssh
+chmod og-rwx /home/dcae/.ssh
+chown -R dcae:dcae /home/dcae/.ssh
+touch /home/dcae/.ssh/authorized_keys
+chmod og-rwx /home/dcae/.ssh/authorized_keys
+chown -R dcae:dcae /home/dcae/.ssh/authorized_keys
+echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBn8Ctt5hJGkTQaffuSeINeABV4viBIM4TcP14kaLiWR1LkyNY+TaUnjxODobtZa4YW1lxFtoMCfZt2A5W9ZZPM+shZr4BOj+wU+xIrzn7ezN/CQjH7c4Wh0mWteuPnJrtdpyGQ/qBI2T+xo5G/Tl++SPUvvN2D4H8vl0miEgVPR47/P7Ba6kl7Bmrf9m0VDPdS69Qr2AhgBq5Qi/fTeGZA4sfKDHHRJxkQIXYmS8R5FISRpBD7ta2NTHapRz9dC6Cw8UttEFiWFUBjN6lwF9LUOkj9MiqiTQaElKKQzMIHr0AhlgIkwBLKAJoDrGQD9GKPwKCdW3OmnODMPxJjXc3 >> /home/dcae/.ssh/authorized_keys
+
+#bash /opt/app/dcae-cdap-small-hadoop/install.sh
diff --git a/kubernetes/dcae/cdap/docker/01-entrypoint.sh b/kubernetes/dcae/cdap/docker/01-entrypoint.sh
new file mode 100755
index 0000000..952d1d4
--- /dev/null
+++ b/kubernetes/dcae/cdap/docker/01-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+dpkg --install /tmp/dcae-apod-cdap-small-hadoop_1.1.0.deb
+dpkg --install /tmp/dcae-apod-analytics-tca_1.1.0.deb
+
+bash /opt/app/dcae-cdap-small-hadoop/install.sh
+su dcae -c "/opt/app/dcae-controller-service-cdap-cluster-manager/bin/manager.sh config"
+su dcae -c "/opt/app/dcae-controller-service-cdap-cluster-manager/bin/manager.sh restart"
\ No newline at end of file
diff --git a/kubernetes/dcae/cdap/docker/Dockerfile b/kubernetes/dcae/cdap/docker/Dockerfile
new file mode 100644
index 0000000..5b8583e
--- /dev/null
+++ b/kubernetes/dcae/cdap/docker/Dockerfile
@@ -0,0 +1,57 @@
+FROM ubuntu:16.04
+
+# Setup apt.conf proxy settings
+#RUN echo 'Acquire::http::proxy "http://some.proxy:8084/";' >> /etc/apt/apt.conf
+
+# Setup Corporate proxy
+#ENV no_proxy "localhost,127.0.0.1,localaddress,.localdomain.com,192.168.141.0/24"
+#ENV https_proxy http://some.proxy:8084/
+#ENV http_proxy http://fsome.proxy:8084/
+#ENV HTTP_PROXY http://some.proxy:8084/
+#ENV HTTPS_PROXY http://some.proxy:8084/
+#ENV FTP_PROXY http://some.proxy:8084/
+#ENV NO_PROXY "localhost,127.0.0.1,localaddress,.localdomain.com,192.168.141.0/24"
+
+# Additional packages
+RUN apt-get update -y
+RUN apt-get install -y git wget unzip curl dnsutils sudo
+RUN apt-get install -y maven unzip
+
+# Install python and pip
+RUN apt-get install -y python
+RUN wget https://bootstrap.pypa.io/get-pip.py
+RUN python get-pip.py
+RUN rm get-pip.py
+RUN pip install pyyaml
+
+# Install Groovy
+RUN mkdir -p /opt/app
+RUN (cd /opt/app ; curl -Lo apache-groovy-binary-2.4.6.zip https://dl.bintray.com/groovy/maven/apache-groovy-binary-2.4.6.zip )
+RUN (cd /opt/app ; unzip apache-groovy-binary-2.4.6.zip )
+RUN mkdir -p /opt/app/java/jdk
+RUN ln -s /usr /opt/app/java/jdk/jdk170
+RUN mkdir -p /opt/app/groovy
+RUN ln -s /opt/app/groovy-2.4.6 /opt/app/groovy/246
+ENV JAVA_HOME /opt/app/java/jdk/jdk170
+
+# Create user dcae
+RUN if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
+
+# Hadoop
+EXPOSE 8020 8025 50070 50075 50010 50020
+
+# Zookeeper
+EXPOSE 3888 2888 2181
+
+VOLUME /opt/tools
+VOLUME /opt/data
+
+# Provisioning
+COPY 00-provisioning.sh /usr/local/bin/00-provisioning.sh
+RUN chmod a+x /usr/local/bin/00-provisioning.sh
+RUN /usr/local/bin/00-provisioning.sh
+
+# define the entrypoint
+COPY 01-entrypoint.sh /usr/local/bin/01-entrypoint.sh
+RUN chmod a+x /usr/local/bin/01-entrypoint.sh
+ENTRYPOINT ["/usr/local/bin/01-entrypoint.sh"]
diff --git a/kubernetes/dcae/cdap/docker/docker-compose.yaml b/kubernetes/dcae/cdap/docker/docker-compose.yaml
new file mode 100644
index 0000000..8800c10
--- /dev/null
+++ b/kubernetes/dcae/cdap/docker/docker-compose.yaml
@@ -0,0 +1,44 @@
+version: '2'
+services:
+  cdap00:
+    build: .
+    hostname: zldcprivatecloudtruecdap00
+    image: cdap
+    ports:
+      - 8020
+      - 50070
+      - 50075
+      - 50010
+      - 50020
+      - 3888
+      - 2888
+      - 2181
+      - 8025
+  cdap01:
+    build: .
+    hostname: zldcprivatecloudtruecdap01
+    image: cdap
+    ports:
+      - 8020
+      - 50070
+      - 50075
+      - 50010
+      - 50020
+      - 3888
+      - 2888
+      - 2181
+      - 8025
+  cdap02:
+    build: .
+    hostname: zldcprivatecloudtruecdap02
+    image: cdap
+    ports:
+      - 8020
+      - 50070
+      - 50075
+      - 50010
+      - 50020
+      - 3888
+      - 2888
+      - 2181
+      - 8025
\ No newline at end of file
diff --git a/kubernetes/dcae/cdap/docker/fs/Dockerfile b/kubernetes/dcae/cdap/docker/fs/Dockerfile
new file mode 100644
index 0000000..4e458dc
--- /dev/null
+++ b/kubernetes/dcae/cdap/docker/fs/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:16.04
+
+RUN mkdir -p /cdap
+VOLUME /cdap
\ No newline at end of file
diff --git a/kubernetes/dcae/pgaas/Dockerfile b/kubernetes/dcae/pgaas/Dockerfile
new file mode 100755
index 0000000..e1d147d
--- /dev/null
+++ b/kubernetes/dcae/pgaas/Dockerfile
@@ -0,0 +1,45 @@
+FROM ubuntu:16.04
+
+# Install additional packages
+RUN apt-get update && apt-get -y install maven openjdk-8-jdk unzip python-pip curl dnsutils vim gawk wget openssh-client-ssh1
+RUN pip install pyyaml
+
+RUN apt-get update && apt-get install -y postgresql libpq5 repmgr python-psycopg2 python3-psycopg2 libgetopt-java
+RUN rm -f /usr/sbin/policy-rc.d
+
+# Install Groovy
+RUN mkdir -p /opt/app
+RUN (cd /opt/app ; curl -Lo apache-groovy-binary-2.4.6.zip https://dl.bintray.com/groovy/maven/apache-groovy-binary-2.4.6.zip )
+RUN (cd /opt/app ; unzip apache-groovy-binary-2.4.6.zip )
+RUN mkdir -p /opt/app/java/jdk
+RUN ln -s /usr /opt/app/java/jdk/jdk170
+RUN mkdir -p /opt/app/groovy
+RUN ln -s /opt/app/groovy-2.4.6 /opt/app/groovy/246
+
+# Create user dcae
+RUN if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
+
+# Download required packages
+RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-cdf_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-cdf_1.0.0.deb
+RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-postgresql-prep_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-prep_1.0.0.deb
+RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-postgresql-config_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-config_1.0.0.deb
+RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-pgaas_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas_1.0.0.deb
+RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-pgaas-post_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas-post_1.0.0.deb
+
+RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
+
+RUN mkdir -p /opt/tools
+RUN mkdir -p /dbroot/pgdata
+RUN mkdir -p /dbroot/pglogs
+
+EXPOSE 5432
+
+VOLUME /opt/tools
+VOLUME /dbroot/pgdata
+VOLUME /dbroot/pglogs
+
+# Setup the entrypoint
+COPY setup.sh /usr/local/bin/entrypoint.sh
+RUN chmod a+x /usr/local/bin/entrypoint.sh
+
+ENTRYPOINT ["usr/local/bin/entrypoint.sh"]
diff --git a/kubernetes/dcae/pgaas/setup.sh b/kubernetes/dcae/pgaas/setup.sh
new file mode 100755
index 0000000..a843995
--- /dev/null
+++ b/kubernetes/dcae/pgaas/setup.sh
@@ -0,0 +1,437 @@
+#!/bin/bash
+cat > /tmp/dcae_install.sh << EOF_DCAE_INSTALL
+#!/bin/bash
+set -x
+cd /tmp
+
+export DEBIAN_FRONTEND=noninteractive
+
+#### Using special configuration resource: instances/vm-postgresql/iad4.yaml
+## Adding configuration file: main
+cat | cat > /tmp/postgres.conf << EOF_CONFIG
+master:  zldciad4vipstg00
+secondmaster: notused
+DRTR_NODE_KSTOREFILE: /opt/app/dcae-certificate/keystore.jks
+DRTR_NODE_KSTOREPASS: "No Certificate"
+DRTR_NODE_PVTKEYPASS: "No Certificate"
+PG_NODES : zldciad4vipstg00
+PG_JAVA_HOME : /opt/app/java/jdk/jdk170
+PG_CLUSTER : site
+EOF_CONFIG
+
+## Adding configuration file: mount_config
+cat | cat > /tmp/dcae-mount.conf << EOF_CONFIG
+osType: ubuntu
+volumes:
+  opt:
+    uuid: ephemeral
+    size: 80
+    filesystems:
+      /opt/tools:
+        size: 80
+        type: ext4
+        mount_opts: ''
+  dbroot:
+    uuid: cinder
+    size: 75
+    filesystems:
+      /dbroot/pgdata:
+        size: 50
+        type: ext4
+        mount_opts: ''
+      /dbroot/pglogs:
+        size: 25
+        type: ext4
+        mount_opts: ''
+
+EOF_CONFIG
+
+## Adding configuration file: ecomp-nexus
+cat > /tmp/ecomp-nexus.crt << EOF_CONFIG
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIEet16RjANBgkqhkiG9w0BAQsFADB2MQswCQYDVQQGEwJVUzEUMBIGA1UE
+CBMLVW5zcGVjaWZpZWQxFDASBgNVBAcTC1Vuc3BlY2lmaWVkMREwDwYDVQQKEwhTb25hdHlwZTEQ
+MA4GA1UECxMHRXhhbXBsZTEWMBQGA1UEAwwNKi5lY29tcC1uZXh1czAeFw0xNjExMTQxMDE5NDJa
+Fw0zMDA3MjQxMDE5NDJaMHYxCzAJBgNVBAYTAlVTMRQwEgYDVQQIEwtVbnNwZWNpZmllZDEUMBIG
+A1UEBxMLVW5zcGVjaWZpZWQxETAPBgNVBAoTCFNvbmF0eXBlMRAwDgYDVQQLEwdFeGFtcGxlMRYw
+FAYDVQQDDA0qLmVjb21wLW5leHVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqkDu
+vC91cZxOaRMYGHSyDeuw4hyXjqyD5Etl5L5TNN7+uFKEtvXsRYOxtD62TqWHKozffLE5o6zoRZL4
+8qNTQyAx0LaEfWfR2w0jat+UqtqEtW0xpOD0/O0qRq5Y/XG3Yr8SQ/y84Pr1FIflM7pM4PZTt3kc
+UfqzbaONW5K8t+UG+5jgNXdRk3hln8WMunVZeci0J6TV+tWs9tOeAKBdpI7K7LV+FJBaF8vBAw2x
+8AhlNPXKQUhK+M3DD73c1aLWrZ3mIwJXt2oQUDwgtXGCPR1/Z9f2tTAoDxpzvkwtP/BtH3qvgtpY
+QfDNmWbJVHh6ll39Hapt7V0v4aCRSN21ZQIDAQABo00wSzAMBgNVHRMEBTADAQH/MBwGA1UdEQQV
+MBOCC2Vjb21wLW5leHVzhwQK0MVLMB0GA1UdDgQWBBQxcUlk/lkKkwSz0GuewbXptJxl+zANBgkq
+hkiG9w0BAQsFAAOCAQEAPnNbtdreMZaUSjv+1eqpriLKquwnZhnwWENn1u3sw4hTAWQc+ehhogGg
+eIqPN81Dt3jhr0bYZW+r3gGq7tgrLxdSXso8bTtqHsFLszirgWcQXDlBQGnw9wqp/KBzeDJInJep
+d6aGu3yBXV6459S/mClxZTSvsR+Vz3rRWxx01R3/ft5/myqrRMDnEncqPopTbEamBuUJL3eJDpFO
+xlVqYR3y6AXwwguMaTiHMfFBmDOVaz4K8Qy6AaHH9eoch9fxOJ/7ASvqSwkC9GYTJSnF2vE37rmH
+kPp//Vm4WSnQ2NrBGkH9rUUdYdDdgWJYnTeZ+YFd8J6z9xNiEn9QKQNNcA==
+-----END CERTIFICATE-----
+
+EOF_CONFIG
+## Adding configuration file: vm-postgresql-console.properties
+cat > /tmp/vm-postgresql-console.properties << EOF_CONFIG
+localhost.endpoint=http://localhost:9999
+localhost.user=console
+localhost.password=MDBmMzE0NTgyMDU1NmVj
+EOF_CONFIG
+
+## Adding configuration file: vm-postgresql-gui.properties
+cat > /tmp/vm-postgresql-gui.properties << EOF_CONFIG
+EOF_CONFIG
+
+## Adding configuration file: vm-postgresql-log4j.properties
+cat > /tmp/vm-postgresql-log4j.properties << EOF_CONFIG
+#log4j.debug=0
+log4j.rootLogger=warn, file
+log4j.logger.org.openecomp.ncomp=info, file
+log4j.additivity.org.openecomp.ncomp=false
+
+#log4j.logger.org.apache.http.headers=debug, file
+#log4j.logger.org.apache.http.wire=debug, file
+## uploaded logger
+log4j.logger.org.openecomp.ncomp.sirius.manager.uploaded=info, uploaded
+log4j.additivity.org.openecomp.ncomp.sirius.manager.uploaded=false
+## request logging
+log4j.logger.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=info, requests
+log4j.additivity.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=false
+## openstack polling
+log4j.logger.org.openecomp.ncomp.openstack.OpenStackUtil.polling=info, polling
+log4j.additivity.org.openecomp.ncomp.openstack.OpenStackUtil.polling=false
+log4j.appender.file=org.apache.log4j.RollingFileAppender
+log4j.appender.file.File=logs/manager.log
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
+log4j.appender.file.MaxFileSize=50MB
+log4j.appender.file.MaxBackupIndex=5
+
+log4j.appender.uploaded=org.apache.log4j.RollingFileAppender
+log4j.appender.uploaded.File=logs/manager-uploaded.log
+log4j.appender.uploaded.layout=org.apache.log4j.PatternLayout
+log4j.appender.uploaded.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
+log4j.appender.uploaded.MaxFileSize=50MB
+log4j.appender.uploaded.MaxBackupIndex=5
+
+log4j.appender.requests=org.apache.log4j.RollingFileAppender
+log4j.appender.requests.File=logs/manager-requests.log
+log4j.appender.requests.layout=org.apache.log4j.PatternLayout
+log4j.appender.requests.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
+log4j.appender.requests.MaxFileSize=50MB
+log4j.appender.requests.MaxBackupIndex=5
+log4j.appender.polling=org.apache.log4j.RollingFileAppender
+log4j.appender.polling.File=logs/manager-polling.log
+log4j.appender.polling.layout=org.apache.log4j.PatternLayout
+log4j.appender.polling.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
+log4j.appender.polling.MaxFileSize=50MB
+log4j.appender.polling.MaxBackupIndex=5
+
+### ECOMP Logging
+log4j.logger.org.openecomp.audit=info, audit
+log4j.additivity.org.openecomp.audit=false
+log4j.logger.org.openecomp.metrics=info, metrics
+log4j.additivity.org.openecomp.metrics=false
+log4j.logger.org.openecomp.error=info, error
+log4j.additivity.org.openecomp.error=false
+log4j.logger.com.att.eelf.debug=info, debug
+log4j.additivity.org.openecomp.debug=false
+log4j.appender.audit=org.apache.log4j.RollingFileAppender
+log4j.appender.audit.File=logs/audit.log
+log4j.appender.audit.layout=org.apache.log4j.PatternLayout
+log4j.appender.audit.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%5p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
+log4j.appender.audit.MaxFileSize=50MB
+log4j.appender.audit.MaxBackupIndex=5
+log4j.appender.metrics=org.apache.log4j.RollingFileAppender
+log4j.appender.metrics.File=logs/metrics.log
+log4j.appender.metrics.layout=org.apache.log4j.PatternLayout
+log4j.appender.metrics.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
+log4j.appender.metrics.MaxFileSize=50MB
+log4j.appender.metrics.MaxBackupIndex=5
+log4j.appender.error=org.apache.log4j.RollingFileAppender
+log4j.appender.error.File=logs/error.log
+log4j.appender.error.layout=org.apache.log4j.PatternLayout
+log4j.appender.error.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
+log4j.appender.error.MaxFileSize=50MB
+log4j.appender.error.MaxBackupIndex=5
+log4j.appender.debug=org.apache.log4j.RollingFileAppender
+log4j.appender.debug.File=logs/debug.log
+log4j.appender.debug.layout=org.apache.log4j.PatternLayout
+log4j.appender.debug.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
+log4j.appender.debug.MaxFileSize=50MB
+log4j.appender.debug.MaxBackupIndex=5
+EOF_CONFIG
+
+## Adding configuration file: vm-postgresql-manager.properties
+cat > /tmp/vm-postgresql-manager.properties << EOF_CONFIG
+server.dir = data/resources
+metrics.dir = data/metrics
+properties.dir = data/properties
+server.port = 9999
+server.user.console = MDBmMzE0NTgyMDU1NmVj
+server.user.gui = M2NiOTg1YzNiYTI2NTJh
+server.user.client = OTNmMmFkYzkxMzYzNTk0
+EOF_CONFIG
+
+## Adding configuration file: vm-postgresql-runtime.properties
+cat > /tmp/vm-postgresql-runtime.properties << EOF_CONFIG
+factory.vm=org.openecomp.dcae.controller.service.servers.vm.DcaeVmFactory
+factory.postgres=org.openecomp.dcae.controller.service.storage.postgres.service.impl.ServicePackageImpl
+EOF_CONFIG
+
+## Adding configuration file: vm-postgresql-hosts
+cat > /tmp/vm-postgresql-hosts << EOF_CONFIG
+EOF_CONFIG
+
+## Adding configuration file: monitoring-agent-gui.properties
+cat > /tmp/monitoring-agent-gui.properties << EOF_CONFIG
+EOF_CONFIG
+
+cat >> /etc/hosts << HOSTS_EOF
+HOSTS_EOF
+
+cat > /tmp/certificate.pkcs12.b64code << EOF_CERT
+EOF_CERT
+
+##############################################################
+##################### CLOUDINIT ##############################
+##############################################################
+
+## need to fix cloudinit in Centos.
+
+CLOUDHOSTCFG=/etc/cloud/cloud.cfg.d/99_hostname.cfg
+if [ -f /etc/redhat-release ]; then
+   # CentOS/RHEL
+   ( echo "hostname: \$(hostname)"; echo "fqdn: \$(hostname -f)" ) > \$CLOUDHOSTCFG
+fi
+
+mkdir -p ~/.ssh
+touch ~/.ssh/authorized_keys
+
+echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYz++VKcW3Sw0Sh7fFyTIjXED6NUUNYbje7awcnvaHHAC0rUxs7boX6hmWDViXoGZA5xw4Xhk5kIEs+zxMCDlF1q/9rbyq5ndonlBz3aPx7+SBqVR5sPalbSr8dJhGPwpj/0Df+FzqjGVL2p2d4VV7SeT/kKrNcSY6SmYHln6osoGFAHsOZC0d+fiba4zfCI9EI6zHdyCujwayjQ5W5UgA50XQ0KXpI5WtF6MOwO6jPL3SNNDlWobG/nsCAMxTQ04dALpYSoamM12Ps72MfxEwaKkoAcsH6WsFbuvoUSXwNcosmyxYrxNynsUz4C2Tz+PZqelGvm8Y8MtNuhN7oqAD root@ecomp-jumpbox >> /home/ubuntu/.ssh/authorized_keys
+
+######### step-1
+
+cp /tmp/ecomp-nexus.crt /usr/local/share/ca-certificates/ ; update-ca-certificates
+
+######### step-2
+
+echo 162.242.254.138 ecomp-nexus >> /etc/hosts
+
+######### step-3
+
+if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
+
+case runtime in
+  %*)
+    A1=org.openecomp.dcae.controller:dcae-controller-core-utils:1.0.0:zip
+    ;;
+  *)
+    A1=org.openecomp.dcae.controller:dcae-controller-core-utils:1.0.0:zip:runtime
+    ;;
+esac
+
+wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-core-utils/1.0.0/dcae-controller-core-utils-1.0.0-runtime.zip -P /opt/app/dcae-controller-core-utils
+
+case zip in
+  jar)
+    mkdir /opt/app/dcae-controller-core-utils/lib
+    mv /opt/app/dcae-controller-core-utils/*.jar /opt/app/dcae-controller-core-utils/lib
+    ;;
+  zip)
+    ( cd /opt/app/dcae-controller-core-utils ; unzip -o dcae-controller-core-utils*.zip )
+    ;;
+esac
+
+chown -R dcae:dcae /opt/app/dcae-controller-core-utils
+
+######### step-4
+
+/opt/app/dcae-controller-core-utils/bin/fs-init.py
+
+######### step-5
+
+if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
+
+case runtime in
+  %*)
+    A1=org.openecomp.dcae.controller:dcae-controller-service-common-vm-manager:1.0.0:zip
+    ;;
+  *)
+    A1=org.openecomp.dcae.controller:dcae-controller-service-common-vm-manager:1.0.0:zip:runtime
+    ;;
+esac
+
+wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-common-vm-manager/1.0.0/dcae-controller-service-common-vm-manager-1.0.0-runtime.zip -P /opt/app/dcae-controller-service-common-vm-manager
+
+case zip in
+  jar)
+    mkdir /opt/app/dcae-controller-service-common-vm-manager/lib
+    mv /opt/app/dcae-controller-service-common-vm-manager/*.jar /opt/app/dcae-controller-service-common-vm-manager/lib
+    ;;
+  zip)
+    ( cd /opt/app/dcae-controller-service-common-vm-manager ; unzip -o dcae-controller-service-common-vm-manager*.zip )
+    ;;
+esac
+
+chown -R dcae:dcae /opt/app/dcae-controller-service-common-vm-manager
+
+######### step-6
+
+if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
+
+case %{assemblyId} in
+  %*)
+    A1=org.openecomp.dcae.controller:dcae-controller-service-storage-postgres-model:1.0.0:jar
+    ;;
+  *)
+    A1=org.openecomp.dcae.controller:dcae-controller-service-storage-postgres-model:1.0.0:jar:%{assemblyId}
+    ;;
+esac
+
+wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-storage-postgres-model/1.0.0/dcae-controller-service-storage-postgres-model-1.0.0.jar -P /opt/app/dcae-controller-service-storage-postgres-model
+
+case jar in
+  jar)
+    mkdir /opt/app/dcae-controller-service-storage-postgres-model/lib
+    mv /opt/app/dcae-controller-service-storage-postgres-model/*.jar /opt/app/dcae-controller-service-storage-postgres-model/lib
+    ;;
+  zip)
+    ( cd /opt/app/dcae-controller-service-storage-postgres-model ; unzip -o dcae-controller-service-storage-postgres-model*.zip )
+    ;;
+esac
+
+chown -R dcae:dcae /opt/app/dcae-controller-service-storage-postgres-model
+
+######### step-7
+
+if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
+
+OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-cdf_1.0.0.deb`
+
+case deb in
+  deb)
+    dpkg --install \$OUT
+    ;;
+  jar)
+    mkdir -p /opt/app/%{artifactId}/lib
+    mv \$OUT /opt/app/%{artifactId}/lib
+    chown -R dcae:dcae /opt/app/%{artifactId}
+    ;;
+  zip)
+    mkdir -p /opt/app/%{artifactId}/lib
+    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
+    chown -R dcae:dcae /opt/app/%{artifactId}
+    ;;
+esac
+
+######### step-8
+
+if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
+
+OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-prep_1.0.0.deb`
+
+case deb in
+  deb)
+    dpkg --install \$OUT
+    ;;
+  jar)
+    mkdir -p /opt/app/%{artifactId}/lib
+    mv \$OUT /opt/app/%{artifactId}/lib
+    chown -R dcae:dcae /opt/app/%{artifactId}
+    ;;
+  zip)
+    mkdir -p /opt/app/%{artifactId}/lib
+    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
+    chown -R dcae:dcae /opt/app/%{artifactId}
+    ;;
+esac
+
+######### step-9
+
+if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
+
+OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-config_1.0.0.deb`
+
+case deb in
+  deb)
+    dpkg --install \$OUT
+    ;;
+  jar)
+    mkdir -p /opt/app/%{artifactId}/lib
+    mv \$OUT /opt/app/%{artifactId}/lib
+    chown -R dcae:dcae /opt/app/%{artifactId}
+    ;;
+  zip)
+    mkdir -p /opt/app/%{artifactId}/lib
+    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
+    chown -R dcae:dcae /opt/app/%{artifactId}
+    ;;
+esac
+
+######### step-10
+
+if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
+
+OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas_1.0.0.deb`
+
+case deb in
+  deb)
+    dpkg --install \$OUT
+    ;;
+  jar)
+    mkdir -p /opt/app/%{artifactId}/lib
+    mv \$OUT /opt/app/%{artifactId}/lib
+    chown -R dcae:dcae /opt/app/%{artifactId}
+    ;;
+  zip)
+    mkdir -p /opt/app/%{artifactId}/lib
+    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
+    chown -R dcae:dcae /opt/app/%{artifactId}
+    ;;
+esac
+
+touch /etc/sudoers.d/dcae-postgres
+echo "dcae ALL=(postgres) NOPASSWD: ALL" > /etc/sudoers.d/dcae-postgres
+
+/opt/app/postgresql-prep/bin/iDNS-responder.py &
+
+/etc/init.d/cron restart
+
+######### step-11
+
+if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
+
+OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas-post_1.0.0.deb`
+case deb in
+  deb)
+    dpkg --install \$OUT
+    ;;
+  jar)
+    mkdir -p /opt/app/%{artifactId}/lib
+    mv \$OUT /opt/app/%{artifactId}/lib
+    chown -R dcae:dcae /opt/app/%{artifactId}
+    ;;
+  zip)
+    mkdir -p /opt/app/%{artifactId}/lib
+    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
+    chown -R dcae:dcae /opt/app/%{artifactId}
+    ;;
+esac
+
+######### step-12
+
+find /opt -type f -exec sed -i 's/sudo//g' {} \;
+su dcae -c "/opt/app/dcae-controller-service-common-vm-manager/bin/manager.sh config"
+su dcae -c "/opt/app/dcae-controller-service-common-vm-manager/bin/manager.sh restart"
+
+mkdir /home/dcae/.ssh
+chmod og-rwx /home/dcae/.ssh
+chown -R dcae:dcae /home/dcae/.ssh
+touch /home/dcae/.ssh/authorized_keys
+chmod og-rwx /home/dcae/.ssh/authorized_keys
+chown -R dcae:dcae /home/dcae/.ssh/authorized_keys
+echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYz++VKcW3Sw0Sh7fFyTIjXED6NUUNYbje7awcnvaHHAC0rUxs7boX6hmWDViXoGZA5xw4Xhk5kIEs+zxMCDlF1q/9rbyq5ndonlBz3aPx7+SBqVR5sPalbSr8dJhGPwpj/0Df+FzqjGVL2p2d4VV7SeT/kKrNcSY6SmYHln6osoGFAHsOZC0d+fiba4zfCI9EI6zHdyCujwayjQ5W5UgA50XQ0KXpI5WtF6MOwO6jPL3SNNDlWobG/nsCAMxTQ04dALpYSoamM12Ps72MfxEwaKkoAcsH6WsFbuvoUSXwNcosmyxYrxNynsUz4C2Tz+PZqelGvm8Y8MtNuhN7oqAD root@ecomp-jumpbox >> /home/dcae/.ssh/authorized_keys
+#no final script: vm-postgresql.userdata
+EOF_DCAE_INSTALL
+echo null > /tmp/.password
+chmod u+x /tmp/dcae_install.sh
+/tmp/dcae_install.sh 2>&1 | tee /tmp/dcae_install.log
diff --git a/kubernetes/dcae/templates/all-services.yaml b/kubernetes/dcae/templates/all-services.yaml
new file mode 100644
index 0000000..45d22db
--- /dev/null
+++ b/kubernetes/dcae/templates/all-services.yaml
@@ -0,0 +1,117 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: zookeeper
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+  labels:
+    app: zookeeper
+spec:
+  ports:
+  - name: zookeeper1
+    port: 2181
+  selector:
+    app: zookeeper
+  clusterIP: None
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: kafka
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+  labels:
+    app: kafka
+spec:
+  ports:
+  - name: kafka1
+    port: 9092
+  selector:
+    app: kafka
+  clusterIP: None
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: dmaap
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+  labels:
+    app: dmaap
+    version: 1.1.0
+spec:
+  ports:
+  - name: mr1
+    port: 3904
+    #nodePort: {{ .Values.nodePortPrefix }}27
+  - name: mr2
+    port: 3905
+    #nodePort: {{ .Values.nodePortPrefix }}26
+  selector:
+    app: dmaap
+  #type: NodePort
+  clusterIP: None
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: zldciad4vipstg00
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+  labels:
+    app: dcae-pgaas
+spec:
+  selector:
+    app: dcae-pgaas
+  ports:
+    - port: 5432
+      protocol: TCP
+      targetPort: 5432
+      nodePort: {{ .Values.nodePortPrefix }}45
+  type: NodePort
+---
+apiVersion: v1
+kind: Service
+metadata:
+  labels:
+    app: dcae-collector-common-event
+    version: latest
+  name: dcae-collector-common-event
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  ports:
+  - name: dcae-ce1
+    port: 8080
+    protocol: TCP
+    nodePort: {{ .Values.nodePortPrefix }}36
+  - name: dcae-ce2
+    port: 8443
+    protocol: TCP
+    nodePort: {{ .Values.nodePortPrefix }}37
+  - name: dcae-ce3
+    port: 9999
+    protocol: TCP
+    nodePort: {{ .Values.nodePortPrefix }}38
+  selector:
+    app: dcae-collector-common-event
+  type: NodePort
+---
+apiVersion: v1
+kind: Service
+metadata:
+  labels:
+    app: dcae-collector-dmaapbc
+    version: latest
+  name: dcae-collector-dmaapbc
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  ports:
+  - name: dcae-bc1
+    port: 8080
+    protocol: TCP
+    targetPort: 8080
+    nodePort: {{ .Values.nodePortPrefix }}39
+  - name: dcae-bc2
+    port: 8443
+    protocol: TCP
+    targetPort: 8443
+    nodePort: {{ .Values.nodePortPrefix }}40
+  selector:
+    app: dcae-collector-dmaapbc
+  type: NodePort
diff --git a/kubernetes/dcae/templates/cdap0-dep.yaml b/kubernetes/dcae/templates/cdap0-dep.yaml
new file mode 100644
index 0000000..d438ab9
--- /dev/null
+++ b/kubernetes/dcae/templates/cdap0-dep.yaml
@@ -0,0 +1,84 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  annotations:
+    deployment.kubernetes.io/revision: "1"
+  labels:
+    app: cdap0
+  name: cdap0
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  selector:
+    matchLabels:
+      app: cdap0
+  strategy:
+    rollingUpdate:
+      maxSurge: 1
+      maxUnavailable: 1
+    type: RollingUpdate
+  template:
+    metadata:
+      labels:
+        app: cdap0
+      name: cdap0
+      annotations:
+        pod.beta.kubernetes.io/init-containers: '[
+          {
+              "name": "create-fs",
+              "image": "{{ .Values.image.cdapfs }}",
+              "imagePullPolicy": "{{ .Values.pullPolicy }}",
+              "command": ["/bin/bash", "-c", "mkdir -p /cdap/{cdap0-opt-tools,cdap0-opt-data,pod-ip}; grep `hostname` /etc/hosts > /cdap/pod-ip/`hostname`_ip.txt; while [`ls /cdap/pod-ip | wc -l` < 3];  do sleep 1; done"],
+              "volumeMounts": [
+                {
+                  "mountPath": "/cdap",
+                  "name": "cdap-root"
+                }
+              ]
+          }
+        ]'
+    spec:
+      hostname: zldcprivatecloudtruecdap00
+      containers:
+      - image: {{ .Values.image.cdap }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        command: ["/bin/bash"]
+        args: ["-c", "cat /cdap/pod-ip/* >> /etc/hosts; /usr/local/bin/01-entrypoint.sh; sleep infinity;"]
+        name: cdap0
+        ports:
+        - containerPort: 8020
+          protocol: TCP
+        - containerPort: 8025
+          protocol: TCP
+        - containerPort: 50070
+          protocol: TCP
+        - containerPort: 50075
+          protocol: TCP
+        - containerPort: 50010
+          protocol: TCP
+        - containerPort: 50020
+          protocol: TCP
+        - containerPort: 3888
+          protocol: TCP
+        - containerPort: 2888
+          protocol: TCP
+        - containerPort: 2181
+          protocol: TCP
+        volumeMounts:
+        - mountPath: /cdap
+          name: cdap-root
+        - mountPath: /opt/tools
+          name: dcae-cdap0-opt-tools
+        - mountPath: /opt/data
+          name: dcae-cdap0-opt-data
+      volumes:
+      - name: cdap-root
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap
+      - name: dcae-cdap0-opt-tools
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap0-opt-tools
+      - name: dcae-cdap0-opt-data
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap0-opt-data
+      imagePullSecrets:
+      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/dcae/templates/cdap1-dep.yaml b/kubernetes/dcae/templates/cdap1-dep.yaml
new file mode 100644
index 0000000..efc64da
--- /dev/null
+++ b/kubernetes/dcae/templates/cdap1-dep.yaml
@@ -0,0 +1,84 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  annotations:
+    deployment.kubernetes.io/revision: "1"
+  labels:
+    app: cdap1
+  name: cdap1
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  selector:
+    matchLabels:
+      app: cdap1
+  strategy:
+    rollingUpdate:
+      maxSurge: 1
+      maxUnavailable: 1
+    type: RollingUpdate
+  template:
+    metadata:
+      labels:
+        app: cdap1
+      name: cdap1
+      annotations:
+        pod.beta.kubernetes.io/init-containers: '[
+          {
+              "name": "create-fs",
+              "image": "{{ .Values.image.cdapfs }}",
+              "imagePullPolicy": "{{ .Values.pullPolicy }}",
+              "command": ["/bin/bash", "-c", "mkdir -p /cdap/{cdap1-opt-tools,cdap1-opt-data}; grep `hostname` /etc/hosts > /cdap/pod-ip/`hostname`_ip.txt; while [`ls /cdap/pod-ip | wc -l` < 3];  do sleep 1; done"],
+              "volumeMounts": [
+                {
+                  "mountPath": "/cdap",
+                  "name": "cdap-root"
+                }
+              ]
+          }
+        ]'
+    spec:
+      hostname: zldcprivatecloudtruecdap01
+      containers:
+      - image: {{ .Values.image.cdap }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        command: ["/bin/bash"]
+        args: ["-c", "cat /cdap/pod-ip/* >> /etc/hosts; /usr/local/bin/01-entrypoint.sh; sleep infinity;"]
+        name: cdap1
+        ports:
+        - containerPort: 8020
+          protocol: TCP
+        - containerPort: 8025
+          protocol: TCP
+        - containerPort: 50070
+          protocol: TCP
+        - containerPort: 50075
+          protocol: TCP
+        - containerPort: 50010
+          protocol: TCP
+        - containerPort: 50020
+          protocol: TCP
+        - containerPort: 3888
+          protocol: TCP
+        - containerPort: 2888
+          protocol: TCP
+        - containerPort: 2181
+          protocol: TCP
+        volumeMounts:
+        - mountPath: /cdap
+          name: cdap-root
+        - mountPath: /opt/tools
+          name: dcae-cdap1-opt-tools
+        - mountPath: /opt/data
+          name: dcae-cdap1-opt-data
+      volumes:
+      - name: cdap-root
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap
+      - name: dcae-cdap1-opt-tools
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap1-opt-tools
+      - name: dcae-cdap1-opt-data
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap1-opt-data
+      imagePullSecrets:
+      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/dcae/templates/cdap2-dep.yaml b/kubernetes/dcae/templates/cdap2-dep.yaml
new file mode 100644
index 0000000..64f8e30
--- /dev/null
+++ b/kubernetes/dcae/templates/cdap2-dep.yaml
@@ -0,0 +1,84 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  annotations:
+    deployment.kubernetes.io/revision: "1"
+  labels:
+    app: cdap2
+  name: cdap2
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  selector:
+    matchLabels:
+      app: cdap2
+  strategy:
+    rollingUpdate:
+      maxSurge: 1
+      maxUnavailable: 1
+    type: RollingUpdate
+  template:
+    metadata:
+      labels:
+        app: cdap2
+      name: cdap2
+      annotations:
+        pod.beta.kubernetes.io/init-containers: '[
+          {
+              "name": "create-fs",
+              "image": "{{ .Values.image.cdapfs }}",
+              "imagePullPolicy": "{{ .Values.pullPolicy }}",
+              "command": ["/bin/bash", "-c", "mkdir -p /cdap/{cdap2-opt-tools,cdap2-opt-data}; grep `hostname` /etc/hosts > /cdap/pod-ip/`hostname`_ip.txt; while [`ls /cdap/pod-ip | wc -l` < 3];  do sleep 1; done"],
+              "volumeMounts": [
+                {
+                  "mountPath": "/cdap",
+                  "name": "cdap-root"
+                }
+              ]
+          }
+        ]'
+    spec:
+      hostname: zldcprivatecloudtruecdap02
+      containers:
+      - image: {{ .Values.image.cdap }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        command: ["/bin/bash"]
+        args: ["-c", "cat /cdap/pod-ip/* >> /etc/hosts; /usr/local/bin/01-entrypoint.sh; sleep infinity;"]
+        name: cdap2
+        ports:
+        - containerPort: 8020
+          protocol: TCP
+        - containerPort: 8025
+          protocol: TCP
+        - containerPort: 50070
+          protocol: TCP
+        - containerPort: 50075
+          protocol: TCP
+        - containerPort: 50010
+          protocol: TCP
+        - containerPort: 50020
+          protocol: TCP
+        - containerPort: 3888
+          protocol: TCP
+        - containerPort: 2888
+          protocol: TCP
+        - containerPort: 2181
+          protocol: TCP
+        volumeMounts:
+        - mountPath: /cdap
+          name: cdap-root
+        - mountPath: /opt/tools
+          name: dcae-cdap2-opt-tools
+        - mountPath: /opt/data
+          name: dcae-cdap2-opt-data
+      volumes:
+      - name: cdap-root
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap
+      - name: dcae-cdap2-opt-tools
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap2-opt-tools
+      - name: dcae-cdap2-opt-data
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap2-opt-data
+      imagePullSecrets:
+      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/dcae/templates/dcae-collector-common-event.yaml b/kubernetes/dcae/templates/dcae-collector-common-event.yaml
new file mode 100644
index 0000000..c77e5a4
--- /dev/null
+++ b/kubernetes/dcae/templates/dcae-collector-common-event.yaml
@@ -0,0 +1,38 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: dcae-collector-common-event
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  selector:
+    matchLabels:
+      app: dcae-collector-common-event
+  template:
+    metadata:
+      labels:
+        app: dcae-collector-common-event
+      name: dcae-collector-common-event
+    spec:
+      containers:
+      - image: {{ .Values.image.commonevent }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: dcae-collector-common-event
+        ports:
+          - containerPort: 8080
+          - containerPort: 8443
+          - containerPort: 9999
+        env:
+#        - name: KAFKA_ZOOKEEPER_CONNECT
+#          value: "zookeeper:2181"
+#        command:
+#        - start-kafka.sh
+        volumeMounts:
+        - mountPath: /opt/app/manager/config
+          name: dcae-collector-common-event-config
+      restartPolicy: Always
+      volumes:
+      - name: dcae-collector-common-event-config
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/common-event/config
+      imagePullSecrets:
+      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml b/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml
new file mode 100644
index 0000000..a36d506
--- /dev/null
+++ b/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml
@@ -0,0 +1,37 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: dcae-collector-dmaapbc
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  selector:
+    matchLabels:
+      app: dcae-collector-dmaapbc
+  template:
+    metadata:
+      labels:
+        app: dcae-collector-dmaapbc
+      name: dcae-collector-dmaapbc
+    spec:
+      containers:
+      - image: {{ .Values.image.dmaapbc }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: dcae-collector-dmaapbc
+        ports:
+          - containerPort: 18080
+          - containerPort: 18443
+        env:
+#        - name: KAFKA_ZOOKEEPER_CONNECT
+#          value: "zookeeper:2181"
+#        command:
+#        - start-kafka.sh
+        volumeMounts:
+        - mountPath: /opt/app/config
+          name: dcae-collector-dmaapbc-config
+      restartPolicy: Always
+      volumes:
+      - name: dcae-collector-dmaapbc-config
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/dmaapbc/config
+      imagePullSecrets:
+      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/dcae/templates/dcae-controller.yaml b/kubernetes/dcae/templates/dcae-controller.yaml
new file mode 100644
index 0000000..459e81e
--- /dev/null
+++ b/kubernetes/dcae/templates/dcae-controller.yaml
@@ -0,0 +1,61 @@
+apiVersion: v1
+kind: Service
+metadata:
+  labels:
+    app: dcae-controller
+    version: latest
+  name: dcae-controller
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  ports:
+  - name: dcae-con1
+    port: 8000
+    protocol: TCP
+    targetPort: 8000
+    nodePort: {{ .Values.nodePortPrefix }}34
+  - name: dcae-con2
+    port: 9998
+    protocol: TCP
+    targetPort: 9998
+    nodePort: {{ .Values.nodePortPrefix }}35
+  selector:
+    app: dcae-controller
+  type: NodePort
+---
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: dcae-controller
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  selector:
+    matchLabels:
+      app: dcae-controller
+  template:
+    metadata:
+      labels:
+        app: dcae-controller
+      name: dcae-controller
+    spec:
+      containers:
+      - image: {{ .Values.image.controller }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: dcae-controller
+        ports:
+          - containerPort: 8000
+          - containerPort: 9998
+        env:
+#        - name: KAFKA_ZOOKEEPER_CONNECT
+#          value: "zookeeper:2181"
+#        command:
+#        - start-kafka.sh
+        volumeMounts:
+        - mountPath: /opt/app/config
+          name: dcae-controller-config
+      restartPolicy: Always
+      volumes:
+      - name: dcae-controller-config
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/dcae-controller/config
+      imagePullSecrets:
+      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/dcae/templates/dcae-dmaap.yaml b/kubernetes/dcae/templates/dcae-dmaap.yaml
new file mode 100644
index 0000000..e1f61e5
--- /dev/null
+++ b/kubernetes/dcae/templates/dcae-dmaap.yaml
@@ -0,0 +1,75 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: dmaap
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  selector:
+    matchLabels:
+      app: dmaap
+  template:
+    metadata:
+      labels:
+        app: dmaap
+      name: dmaap
+      annotations:
+        pod.beta.kubernetes.io/init-containers: '[
+          {
+              "args": [
+                  "--container-name",
+                  "kafka",
+                  "--container-name",
+                  "zookeeper"
+              ],
+              "command": [
+                  "/root/ready.py"
+              ],
+              "env": [
+                  {
+                      "name": "NAMESPACE",
+                      "valueFrom": {
+                          "fieldRef": {
+                              "apiVersion": "v1",
+                              "fieldPath": "metadata.namespace"
+                          }
+                      }
+                  }
+              ],
+              "image": "{{ .Values.image.readiness }}",
+              "imagePullPolicy": "{{ .Values.pullPolicy }}",
+              "name": "dmaap-readiness"
+          }
+          ]'
+    spec:
+      containers:
+      - image: {{ .Values.image.dmaap }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: dmaap
+        ports:
+        - containerPort: 3904
+        - containerPort: 3905
+        readinessProbe:
+          tcpSocket:
+            port: 3904
+          initialDelaySeconds: 5
+          periodSeconds: 10
+        volumeMounts:
+        - mountPath: /appl/dmaapMR1/bundleconfig/etc/appprops/MsgRtrApi.properties
+          name: appprops
+        - mountPath: /appl/dmaapMR1/etc/cadi.properties
+          name: cadi
+        - mountPath: /appl/dmaapMR1/etc/keyfile
+          name: mykey
+      restartPolicy: Always
+      volumes:
+      - name: appprops
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dmaap/MsgRtrApi.properties
+      - name: cadi
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dmaap/cadi.properties
+      - name: mykey
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dmaap/mykey
+      imagePullSecrets:
+      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/dcae/templates/dcae-kafka.yaml b/kubernetes/dcae/templates/dcae-kafka.yaml
new file mode 100644
index 0000000..9a09226
--- /dev/null
+++ b/kubernetes/dcae/templates/dcae-kafka.yaml
@@ -0,0 +1,83 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: kafka
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  selector:
+    matchLabels:
+      app: kafka
+  template:
+    metadata:
+      labels:
+        app: kafka
+      name: kafka
+      annotations:
+        pod.beta.kubernetes.io/init-containers: '[
+          {
+              "args": [
+                  "--container-name",
+                  "zookeeper"
+              ],
+              "command": [
+                  "/root/ready.py"
+              ],
+              "env": [
+                  {
+                      "name": "NAMESPACE",
+                      "valueFrom": {
+                          "fieldRef": {
+                              "apiVersion": "v1",
+                              "fieldPath": "metadata.namespace"
+                          }
+                      }
+                  }
+              ],
+              "image": "{{ .Values.image.readiness }}",
+              "imagePullPolicy": "{{ .Values.pullPolicy }}",
+              "name": "kafka-readiness"
+          }
+          ]'
+    spec:
+      containers:
+      - image: {{ .Values.image.kafka }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: kafka
+        ports:
+        - containerPort: 9092
+        readinessProbe:
+          tcpSocket:
+            port: 9092
+          initialDelaySeconds: 5
+          periodSeconds: 10
+        env:
+        - name: KAFKA_ZOOKEEPER_CONNECT
+          value: "zookeeper.{{ .Values.nsPrefix }}-dcae:2181"
+        - name: KAFKA_ADVERTISED_HOST_NAME
+          value: "kafka"
+        - name: KAFKA_BROKER_ID
+          value: "1"
+        - name: KAFKA_ADVERTISED_PORT
+          value: "9092"
+        - name: KAFKA_PORT
+          value: "9092"
+        volumeMounts:
+        - mountPath: /var/run/docker.sock
+          name: docker-socket
+        - mountPath: /kafka
+          name: kafka-data
+        - mountPath: /start-kafka.sh
+          name: start-kafka
+      restartPolicy: Always
+      volumes:
+      - name: docker-socket
+        hostPath:
+          path: /var/run/docker.sock
+      - name: kafka-data
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dcae-startup-vm-message-router/docker_files/data-kafka/
+      - name: start-kafka
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dcae-startup-vm-message-router/docker_files/start-kafka.sh
+      imagePullSecrets:
+      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/dcae/templates/dcae-zookeeper.yaml b/kubernetes/dcae/templates/dcae-zookeeper.yaml
new file mode 100644
index 0000000..8d03c9d
--- /dev/null
+++ b/kubernetes/dcae/templates/dcae-zookeeper.yaml
@@ -0,0 +1,31 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: zookeeper
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  selector:
+    matchLabels:
+      app: zookeeper
+  template:
+    metadata:
+      labels:
+        app: zookeeper
+      name: zookeeper
+    spec:
+      containers:
+      - image: {{ .Values.image.zookeeper }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: zookeeper
+        ports:
+        - containerPort: 2181
+        volumeMounts:
+        - mountPath: /opt/zookeeper-3.4.9/data
+          name: zookeeper-data
+      restartPolicy: Always
+      volumes:
+      - name: zookeeper-data
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dcae-startup-vm-message-router/docker_files/data-zookeeper
+      imagePullSecrets:
+      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/dcae/templates/pgaas.yaml b/kubernetes/dcae/templates/pgaas.yaml
new file mode 100644
index 0000000..de62be5
--- /dev/null
+++ b/kubernetes/dcae/templates/pgaas.yaml
@@ -0,0 +1,47 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  annotations:
+    deployment.kubernetes.io/revision: "1"
+  labels:
+    app: dcae-pgaas
+  name: dcae-pgaas
+  namespace: "{{ .Values.nsPrefix }}-dcae"
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: dcae-pgaas
+  template:
+    metadata:
+      labels:
+        app: dcae-pgaas
+    spec:
+      hostname: zldciad4vipstg00
+      containers:
+      - image: {{ .Values.image.pgaas }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        command: ["/bin/bash"]
+        args: ["-c", "/usr/local/bin/entrypoint.sh; sleep infinity;"]
+        name: dcae-pgaas
+        ports:
+        - containerPort: 5432
+        volumeMounts:
+        - mountPath: /dbroot/pgdata
+          name: dcae-pgaas-pgdata
+        - mountPath: /dbroot/pglogs
+          name: dcae-pgaas-pglogs
+        - mountPath: /opt/tools
+          name: dcae-pgaas-tools
+      volumes:
+      - name: dcae-pgaas-pgdata
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/pgaas/pgdata
+      - name: dcae-pgaas-pglogs
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/pgaas/pglogs
+      - name: dcae-pgaas-tools
+        hostPath:
+          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/pgaas/tools
+      imagePullSecrets:
+      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/dcae/values.yaml b/kubernetes/dcae/values.yaml
new file mode 100644
index 0000000..ae41f83
--- /dev/null
+++ b/kubernetes/dcae/values.yaml
@@ -0,0 +1,14 @@
+nsPrefix: onap
+pullPolicy: Always
+nodePortPrefix: 302
+image:
+  readiness: oomk8s/readiness-check:1.0.0
+  pgaas: oomk8s/pgaas:1
+  cdapfs: oomk8s/cdap-fs:1.0.0
+  cdap: oomk8s/cdap:1.0.7
+  dmaap: attos/dmaap:latest
+  kafka: wurstmeister/kafka:latest
+  zookeeper: wurstmeister/zookeeper:latest
+  dmaapbc: nexus3.onap.org:10001/openecomp/dcae-dmaapbc:1.1-STAGING-latest
+  commonevent: nexus3.onap.org:10001/openecomp/dcae-collector-common-event:1.1-STAGING-latest
+  controller: nexus3.onap.org:10001/openecomp/dcae-controller:1.1-STAGING-latest
diff --git a/kubernetes/oneclick/dcae.sh b/kubernetes/oneclick/dcae.sh
index 8a95e0b..5dd1a2f 100755
--- a/kubernetes/oneclick/dcae.sh
+++ b/kubernetes/oneclick/dcae.sh
@@ -1,2 +1,18 @@
 #!/bin/bash
-echo "DCAE under construction"
+# manual deployment order is mentioned - but we need to specify dependencies in the service
+KUBECTL_CMD="kubectl --namespace $1-$2 $3 -f ../$2"
+
+printf "dcae....\n"
+$KUBECTL_CMD/message-router/dcae-zookeeper.yaml
+$KUBECTL_CMD/message-router/dcae-kafka.yaml
+$KUBECTL_CMD/message-router/dcae-dmaap.yaml
+
+$KUBECTL_CMD/pgaas/pgaas.yaml
+
+$KUBECTL_CMD/dcae-collector-common-event.yaml
+$KUBECTL_CMD/dcae-collector-dmaapbc.yaml
+$KUBECTL_CMD/dcae-collector-pvs.yaml
+
+$KUBECTL_CMD/cdap/cdap0-dep.yaml
+$KUBECTL_CMD/cdap/cdap1-dep.yaml
+$KUBECTL_CMD/cdap/cdap2-dep.yaml
diff --git a/kubernetes/oneclick/setenv.bash b/kubernetes/oneclick/setenv.bash
index 8fd8cd4..4b0d940 100644
--- a/kubernetes/oneclick/setenv.bash
+++ b/kubernetes/oneclick/setenv.bash
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-HELM_APPS=('mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc')
+HELM_APPS=('mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc' 'dcae')
 ONAP_DOCKER_REGISTRY=${ONAP_DOCKER_REGISTRY:-nexus3.onap.org:10001}
 ONAP_DOCKER_USER=${ONAP_DOCKER_USER:-docker}
 ONAP_DOCKER_PASS=${ONAP_DOCKER_PASS:-docker}