From f776f3d5fa1a660bee24057e65625b62eedf382c Mon Sep 17 00:00:00 2001 From: Dusan Rozman Date: Mon, 18 Sep 2017 13:07:56 -0400 Subject: [PATCH] Added CLAMP containers to ONAP Kubernetes Added the initial deployment yamls for CLAMP and updated one-click Issue-ID: OOM-12 Change-Id: I48c842d77bf95ad53dcff9ab28edf542b1cb4bf5 Signed-off-by: Dusan Rozman --- kubernetes/clamp/Chart.yaml | 4 + kubernetes/clamp/templates/all-services.yaml | 28 ++ kubernetes/clamp/templates/clamp-deployment.yaml | 59 +++ .../clamp/templates/clamp-mariadb-deployment.yaml | 49 +++ kubernetes/clamp/templates/clamp-pv-pvc.yaml | 30 ++ kubernetes/clamp/values.yaml | 10 + kubernetes/config/docker/init/config-init.sh | 1 + .../src/config/clamp/mariadb/conf.d/conf1/my.cnf | 194 +++++++++ .../bulkload/clds-create-db-objects.sql | 192 +++++++++ .../bulkload/clds-stored-procedures.sql | 449 +++++++++++++++++++++ .../drop/clds-drop-db-objects.sql | 33 ++ .../load-sql-files-tests-automation.sh | 28 ++ kubernetes/oneclick/clamp.sh | 7 + kubernetes/oneclick/createAll.bash | 2 +- kubernetes/oneclick/deleteAll.bash | 2 +- kubernetes/oneclick/setenv.bash | 2 +- 16 files changed, 1087 insertions(+), 3 deletions(-) create mode 100644 kubernetes/clamp/Chart.yaml create mode 100644 kubernetes/clamp/templates/all-services.yaml create mode 100644 kubernetes/clamp/templates/clamp-deployment.yaml create mode 100644 kubernetes/clamp/templates/clamp-mariadb-deployment.yaml create mode 100644 kubernetes/clamp/templates/clamp-pv-pvc.yaml create mode 100644 kubernetes/clamp/values.yaml create mode 100644 kubernetes/config/docker/init/src/config/clamp/mariadb/conf.d/conf1/my.cnf create mode 100644 kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql create mode 100644 kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql create mode 100644 kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql create mode 100644 kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh create mode 100644 kubernetes/oneclick/clamp.sh diff --git a/kubernetes/clamp/Chart.yaml b/kubernetes/clamp/Chart.yaml new file mode 100644 index 0000000000..a162ca7dd0 --- /dev/null +++ b/kubernetes/clamp/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: A Helm chart for Kubernetes +name: clamp +version: 1.1.0 diff --git a/kubernetes/clamp/templates/all-services.yaml b/kubernetes/clamp/templates/all-services.yaml new file mode 100644 index 0000000000..20ec58415d --- /dev/null +++ b/kubernetes/clamp/templates/all-services.yaml @@ -0,0 +1,28 @@ +apiVersion: v1 +kind: Service +metadata: + name: clamp-mariadb + namespace: "{{ .Values.nsPrefix }}-clamp" + labels: + app: clamp-mariadb +spec: + ports: + - name: clamp-mariadb + port: 3306 + selector: + app: clamp-mariadb + clusterIP: None +--- +apiVersion: v1 +kind: Service +metadata: + name: clamp + namespace: "{{ .Values.nsPrefix }}-clamp" +spec: + ports: + - name: clamp + port: 8080 + nodePort: {{ .Values.nodePortPrefix }}95 + selector: + app: clamp + type: NodePort diff --git a/kubernetes/clamp/templates/clamp-deployment.yaml b/kubernetes/clamp/templates/clamp-deployment.yaml new file mode 100644 index 0000000000..ea3ef19456 --- /dev/null +++ b/kubernetes/clamp/templates/clamp-deployment.yaml @@ -0,0 +1,59 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + labels: + app: clamp + name: clamp + namespace: "{{ .Values.nsPrefix }}-clamp" +spec: + selector: + matchLabels: + app: clamp + template: + metadata: + labels: + app: clamp + name: clamp + annotations: + pod.beta.kubernetes.io/init-containers: '[ + { + "args": [ + "--container-name", + "clamp-mariadb" + ], + "command": [ + "/root/ready.py" + ], + "env": [ + { + "name": "NAMESPACE", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "metadata.namespace" + } + } + } + ], + "image": "{{ .Values.image.readiness }}", + "imagePullPolicy": "{{ .Values.pullPolicy }}", + "name": "clamp-readiness" + } + ]' + spec: + containers: + - env: + - name: SPRING_APPLICATION_JSON + value: '{"spring.datasource.camunda.url":"jdbc:mysql://clamp-mariadb.{{ .Values.nsPrefix }}-clamp:3306/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&maxReconnects=100","spring.datasource.camunda.username": + "root","spring.datasource.camunda.password": "{{ .Values.mysqlPassword }}", "spring.datasource.cldsdb.url":"jdbc:mysql://clamp-mariadb.{{ .Values.nsPrefix }}-clamp:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&maxReconnects=100","spring.datasource.cldsdb.username": + "root", "spring.datasource.cldsdb.password": "{{ .Values.mysqlPassword }}"}' + image: {{ .Values.image.clampImage }}:{{ .Values.image.clampVersion }} + imagePullPolicy: {{ .Values.pullPolicy }} + name: clamp + readinessProbe: + tcpSocket: + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 + imagePullSecrets: + - name: {{ .Values.nsPrefix }}-docker-registry-key diff --git a/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml b/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml new file mode 100644 index 0000000000..2f796258ac --- /dev/null +++ b/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml @@ -0,0 +1,49 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: clamp-mariadb + namespace: "{{ .Values.nsPrefix }}-clamp" +spec: + replicas: 1 + selector: + matchLabels: + app: clamp-mariadb + template: + metadata: + labels: + app: clamp-mariadb + name: clamp-mariadb + spec: + hostname: clamp-mariadb + containers: + - args: + image: {{ .Values.image.mariadbImage }}:{{ .Values.image.mariadbVersion }} + imagePullPolicy: {{ .Values.pullPolicy }} + name: "clamp-mariadb" + env: + - name: MYSQL_ROOT_PASSWORD + value: {{ .Values.mysqlPassword }} + volumeMounts: + - mountPath: /docker-entrypoint-initdb.d + name: docker-entrypoint-initdb + - mountPath: /etc/mysql/conf.d + name: clamp-mariadb-conf + - mountPath: /var/lib/mysql + name: clamp-mariadb-data + readinessProbe: + tcpSocket: + port: 3306 + initialDelaySeconds: 5 + periodSeconds: 10 + volumes: + - name: docker-entrypoint-initdb + hostPath: + path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/docker-entrypoint-initdb.d + - name: clamp-mariadb-conf + hostPath: + path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/conf.d + - name: clamp-mariadb-data + persistentVolumeClaim: + claimName: clamp-db + imagePullSecrets: + - name: {{ .Values.nsPrefix }}-docker-registry-key diff --git a/kubernetes/clamp/templates/clamp-pv-pvc.yaml b/kubernetes/clamp/templates/clamp-pv-pvc.yaml new file mode 100644 index 0000000000..5a82752a17 --- /dev/null +++ b/kubernetes/clamp/templates/clamp-pv-pvc.yaml @@ -0,0 +1,30 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: "{{ .Values.nsPrefix }}-clamp-db" + namespace: "{{ .Values.nsPrefix }}-clamp" + labels: + name: "{{ .Values.nsPrefix }}-clamp-db" +spec: + capacity: + storage: 2Gi + accessModes: + - ReadWriteMany + persistentVolumeReclaimPolicy: Retain + hostPath: + path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/data +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: clamp-db + namespace: "{{ .Values.nsPrefix }}-clamp" +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 2Gi + selector: + matchLabels: + name: "{{ .Values.nsPrefix }}-clamp-db" diff --git a/kubernetes/clamp/values.yaml b/kubernetes/clamp/values.yaml new file mode 100644 index 0000000000..c0362dd405 --- /dev/null +++ b/kubernetes/clamp/values.yaml @@ -0,0 +1,10 @@ +nsPrefix: onap +pullPolicy: Always +nodePortPrefix: 302 +mysqlPassword: strong_pitchou +image: + readiness: oomk8s/readiness-check:1.0.0 + clampImage: nexus3.onap.org:10001/onap/clamp + clampVersion: 1.1-STAGING-latest + mariadbImage: nexus3.onap.org:10001/mariadb + mariadbVersion: 10.1.11 diff --git a/kubernetes/config/docker/init/config-init.sh b/kubernetes/config/docker/init/config-init.sh index b97eee0026..ffc5e236ca 100755 --- a/kubernetes/config/docker/init/config-init.sh +++ b/kubernetes/config/docker/init/config-init.sh @@ -48,6 +48,7 @@ mkdir -p /config-init/$NAMESPACE/aai/elasticsearch/es-data/ mkdir -p /config-init/$NAMESPACE/aai/search-data-service/logs/ mkdir -p /config-init/$NAMESPACE/aai/data-router/logs/ mkdir -p /config-init/$NAMESPACE/mso/mariadb/data +mkdir -p /config-init/$NAMESPACE/clamp/mariadb/data mkdir -p /config-init/$NAMESPACE/log/elasticsearch/data echo "Setting permissions to container writeable directories" diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/conf.d/conf1/my.cnf b/kubernetes/config/docker/init/src/config/clamp/mariadb/conf.d/conf1/my.cnf new file mode 100644 index 0000000000..0be1bd7aa3 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/clamp/mariadb/conf.d/conf1/my.cnf @@ -0,0 +1,194 @@ +# Example MySQL config file for medium systems. +# +# This is for a system with memory 8G where MySQL plays +# an important part, or systems up to 128M where MySQL is used together with +# other programs (such as a web server) +# +# In this file, you can use all long options that a program supports. +# If you want to know which options a program supports, run the program +# with the "--help" option. + +# The following options will be passed to all MySQL clients +##[client] +##user = root +##port = 3306 +##socket = //opt/app/mysql/mysql.sock + +# Here follows entries for some specific programs + +# The MySQL server +[mysqld] +##performance_schema + +slow_query_log =ON +long_query_time =2 +slow_query_log_file =//var/lib/mysql/slow_query.log +##basedir = //opt/app/mysql/product/mariadb-10.1.11-linux-x86_64 +##datadir = //opt/app/mysql/data +##port = 3306 +##socket = //opt/app/mysql/mysql.sock +skip-external-locking +explicit_defaults_for_timestamp = true +skip-symbolic-links +local-infile = 0 +#ignore_db_dir=lost+found +key_buffer_size = 16M +max_allowed_packet = 4M +table_open_cache = 100 +sort_buffer_size = 512K +net_buffer_length = 8K +read_buffer_size = 256K +read_rnd_buffer_size = 512K +myisam_sort_buffer_size = 8M +max_connections = 500 +lower_case_table_names = 1 +thread_stack = 256K +thread_cache_size = 25 +query_cache_size = 8M +query_cache_type = 0 +query_prealloc_size = 512K +query_cache_limit = 1M + +# Password validation +##plugin-load-add=simple_password_check.so +##simple_password_check_other_characters=0 + +# Audit Log settings +plugin-load-add=server_audit.so +server_audit=FORCE_PLUS_PERMANENT +server_audit_file_path=//var/lib/mysql/audit.log +server_audit_file_rotate_size=50M +server_audit_events=CONNECT,QUERY,TABLE +server_audit_logging=on + +# Don't listen on a TCP/IP port at all. This can be a security enhancement, +# if all processes that need to connect to mysqld run on the same host. +# All interaction with mysqld must be made via Unix sockets or named pipes. +# Note that using this option without enabling named pipes on Windows +# (via the "enable-named-pipe" option) will render mysqld useless! +# +#skip-networking + +# Replication Master Server (default) +# binary logging is required for replication +##log-bin=//var/lib/mysql/mysql-bin + +# binary logging format - mixed recommended +binlog_format=row + +# required unique id between 1 and 2^32 - 1 +# defaults to 1 if master-host is not set +# but will not function as a master if omitted + +# Replication Slave (comment out master section to use this) +# +# To configure this host as a replication slave, you can choose between +# two methods : +# +# 1) Use the CHANGE MASTER TO command (fully described in our manual) - +# the syntax is: +# +# CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=, +# MASTER_USER=, MASTER_PASSWORD= ; +# +# where you replace , , by quoted strings and +# by the master's port number (3306 by default). +# +# Example: +# +# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, +# MASTER_USER='joe', MASTER_PASSWORD='secret'; +# +# OR +# +# 2) Set the variables below. However, in case you choose this method, then +# start replication for the first time (even unsuccessfully, for example +# if you mistyped the password in master-password and the slave fails to +# connect), the slave will create a master.info file, and any later +# change in this file to the variables' values below will be ignored and +# overridden by the content of the master.info file, unless you shutdown +# the slave server, delete master.info and restart the slaver server. +# For that reason, you may want to leave the lines below untouched +# (commented) and instead use CHANGE MASTER TO (see above) +# +# required unique id between 2 and 2^32 - 1 +# (and different from the master) +# defaults to 2 if master-host is set +# but will not function as a slave if omitted +#server-id = 2 +# +# The replication master for this slave - required +#master-host = +# +# The username the slave will use for authentication when connecting +# to the master - required +#master-user = +# +# The password the slave will authenticate with when connecting to +# the master - required +#master-password = +# +# The port the master is listening on. +# optional - defaults to 3306 +#master-port = +# +# binary logging - not required for slaves, but recommended +#log-bin=mysql-bin + +# Uncomment the following if you are using InnoDB tables +##innodb_data_home_dir = //opt/app/mysql/data +##innodb_data_file_path = ibdata1:20M:autoextend:max:32G +##innodb_log_group_home_dir = //opt/app/mysql/iblogs +# You can set .._buffer_pool_size up to 50 - 80 % +# of RAM but beware of setting memory usage too high +innodb_buffer_pool_size = 6380M +#innodb_additional_mem_pool_size = 2M +# Set .._log_file_size to 25 % of buffer pool size +innodb_log_file_size = 150M +innodb_log_files_in_group = 3 +innodb_log_buffer_size = 8M +#innodb_flush_log_at_trx_commit = 1 +innodb_lock_wait_timeout = 50 +innodb_autoextend_increment = 100 +expire_logs_days = 8 +open_files_limit = 2000 +transaction-isolation=READ-COMMITTED +####### Galera parameters ####### +## Galera Provider configuration +wsrep_provider=/usr/lib/galera/libgalera_smm.so +wsrep_provider_options="gcache.size=2G; gcache.page_size=1G" +## Galera Cluster configuration +wsrep_cluster_name="MSO-automated-tests-cluster" +wsrep_cluster_address="gcomm://" +#wsrep_cluster_address="gcomm://mariadb1,mariadb2,mariadb3" +##wsrep_cluster_address="gcomm://192.169.3.184,192.169.3.185,192.169.3.186" +## Galera Synchronization configuration +wsrep_sst_method=rsync +#wsrep_sst_method=xtrabackup-v2 +#wsrep_sst_auth="sstuser:Mon#2o!6" +## Galera Node configuration +wsrep_node_name="mariadb1" +##wsrep_node_address="192.169.3.184" +wsrep_on=ON +## Status notification +#wsrep_notify_cmd=/opt/app/mysql/bin/wsrep_notify +####### + + +[mysqldump] +quick +max_allowed_packet = 16M + +[mysql] +no-auto-rehash +# Remove the next comment character if you are not familiar with SQL +#safe-updates + +[myisamchk] +key_buffer_size = 20971520 + +##[mysqlhotcopy] +##interactive-timeout +##[mysqld_safe] +##malloc-lib=//opt/app/mysql/local/lib/libjemalloc.so.1 +##log-error=//opt/app/mysql/log/mysqld.log \ No newline at end of file diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql b/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql new file mode 100644 index 0000000000..3312daf56f --- /dev/null +++ b/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql @@ -0,0 +1,192 @@ +# +# Create CLDS database objects (tables, etc.) +# +# +CREATE DATABASE `camundabpm`; +USE `camundabpm`; +DROP USER 'camunda'; +CREATE USER 'camunda'; +GRANT ALL on camundabpm.* to 'camunda' identified by 'ndMSpw4CAM' with GRANT OPTION; +FLUSH PRIVILEGES; + +CREATE DATABASE `cldsdb4`; +USE `cldsdb4`; +DROP USER 'clds'; +CREATE USER 'clds'; +GRANT ALL on cldsdb4.* to 'clds' identified by 'sidnnd83K' with GRANT OPTION; +GRANT SELECT on mysql.proc TO 'clds'; +FLUSH PRIVILEGES; + + +CREATE TABLE template ( + template_id VARCHAR(36) NOT NULL, + template_name VARCHAR(80) NOT NULL, + template_bpmn_id VARCHAR(36) NULL, + template_image_id VARCHAR(36) NULL, + template_doc_id VARCHAR(36) NULL, + PRIMARY KEY (template_id), + UNIQUE (template_name) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE template_bpmn ( + template_bpmn_id VARCHAR(36) NOT NULL, + template_id VARCHAR(36) NOT NULL, + template_bpmn_text MEDIUMTEXT NOT NULL, + user_id VARCHAR(80), + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (template_bpmn_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE template_image ( + template_image_id VARCHAR(36) NOT NULL, + template_id VARCHAR(36) NOT NULL, + template_image_text MEDIUMTEXT NULL, + user_id VARCHAR(80), + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (template_image_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE template_doc ( + template_doc_id VARCHAR(36) NOT NULL, + template_id VARCHAR(36) NOT NULL, + template_doc_text MEDIUMTEXT NULL, + user_id VARCHAR(80), + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (template_doc_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE model ( + model_id VARCHAR(36) NOT NULL, + model_name VARCHAR(80) NOT NULL, + template_id VARCHAR(36) NULL, + model_prop_id VARCHAR(36) NULL, + model_blueprint_id VARCHAR(36) NULL, + event_id VARCHAR(36) NULL, + control_name_prefix VARCHAR(80) NULL, + control_name_uuid VARCHAR(36) NOT NULL, + service_type_id VARCHAR(80) NULL, + deployment_id VARCHAR(80) NULL, + PRIMARY KEY (model_id), + UNIQUE (model_name), + UNIQUE (control_name_uuid), + UNIQUE (service_type_id), + UNIQUE (deployment_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE model_properties ( + model_prop_id VARCHAR(36) NOT NULL, + model_id VARCHAR(36) NOT NULL, + model_prop_text MEDIUMTEXT NULL, + user_id VARCHAR(80), + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (model_prop_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE model_blueprint ( + model_blueprint_id VARCHAR(36) NOT NULL, + model_id VARCHAR(36) NOT NULL, + model_blueprint_text MEDIUMTEXT NULL, + user_id VARCHAR(80), + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (model_blueprint_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE model_instance ( + model_instance_id VARCHAR(36) NOT NULL, + model_id VARCHAR(36) NOT NULL, + vm_name VARCHAR(250) NOT NULL, + location VARCHAR(250) NULL, + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (model_instance_id), + UNIQUE (model_id, vm_name) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE event ( + event_id VARCHAR(36) NOT NULL, + model_id VARCHAR(36) NULL, + action_cd VARCHAR(80) NOT NULL, + action_state_cd VARCHAR(80) NULL, + prev_event_id VARCHAR(36) NULL, + process_instance_id VARCHAR(80) NULL, + user_id VARCHAR(80) NULL, + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (event_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +CREATE TABLE clds_service_cache ( + invariant_service_id VARCHAR(36) NOT NULL, + service_id VARCHAR(36) NULL, + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + object_data MEDIUMBLOB NULL, + PRIMARY KEY (invariant_service_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin; + +ALTER TABLE template + ADD CONSTRAINT template_bpmn_id_fkey01 + FOREIGN KEY (template_bpmn_id) + REFERENCES template_bpmn (template_bpmn_id); + +ALTER TABLE template + ADD CONSTRAINT template_image_id_fkey01 + FOREIGN KEY (template_image_id) + REFERENCES template_image (template_image_id); + +ALTER TABLE template + ADD CONSTRAINT template_doc_id_fkey01 + FOREIGN KEY (template_doc_id) + REFERENCES template_doc (template_doc_id); + +ALTER TABLE template_bpmn + ADD CONSTRAINT template_id_fkey02 + FOREIGN KEY (template_id) + REFERENCES template (template_id); + +ALTER TABLE template_image + ADD CONSTRAINT template_id_fkey03 + FOREIGN KEY (template_id) + REFERENCES template (template_id); + +ALTER TABLE template_doc + ADD CONSTRAINT template_id_fkey04 + FOREIGN KEY (template_id) + REFERENCES template (template_id); + +ALTER TABLE model + ADD CONSTRAINT template_id_fkey01 + FOREIGN KEY (template_id) + REFERENCES template (template_id); + +ALTER TABLE model + ADD CONSTRAINT model_prop_id_fkey01 + FOREIGN KEY (model_prop_id) + REFERENCES model_properties (model_prop_id); + +ALTER TABLE model + ADD CONSTRAINT model_blueprint_id_fkey01 + FOREIGN KEY (model_blueprint_id) + REFERENCES model_blueprint (model_blueprint_id); + +ALTER TABLE model + ADD CONSTRAINT event_id_fkey01 + FOREIGN KEY (event_id) + REFERENCES event (event_id); + +ALTER TABLE model_properties + ADD CONSTRAINT model_id_fkey01 + FOREIGN KEY (model_id) + REFERENCES model (model_id); + +ALTER TABLE model_blueprint + ADD CONSTRAINT model_id_fkey02 + FOREIGN KEY (model_id) + REFERENCES model (model_id); + +ALTER TABLE model_instance + ADD CONSTRAINT model_id_fkey04 + FOREIGN KEY (model_id) + REFERENCES model (model_id); + +ALTER TABLE event + ADD CONSTRAINT model_id_fkey03 + FOREIGN KEY (model_id) + REFERENCES model (model_id); diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql b/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql new file mode 100644 index 0000000000..112cb2b55e --- /dev/null +++ b/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql @@ -0,0 +1,449 @@ +# +# CLDS stored procedures +# + +USE cldsdb4; + +DROP PROCEDURE IF EXISTS upd_event; +DROP PROCEDURE IF EXISTS ins_event; +DROP PROCEDURE IF EXISTS del_all_model_instances; +DROP PROCEDURE IF EXISTS del_model_instance; +DROP PROCEDURE IF EXISTS ins_model_instance; +DROP PROCEDURE IF EXISTS set_model; +DROP PROCEDURE IF EXISTS get_model; +DROP PROCEDURE IF EXISTS get_model_template; +DROP PROCEDURE IF EXISTS set_template; +DROP PROCEDURE IF EXISTS get_template; +DELIMITER // +CREATE PROCEDURE get_template + (IN v_template_name VARCHAR(80), + OUT v_template_id VARCHAR(36), + OUT v_template_bpmn_id VARCHAR(36), + OUT v_template_bpmn_user_id VARCHAR(80), + OUT v_template_bpmn_text MEDIUMTEXT, + OUT v_template_image_id VARCHAR(36), + OUT v_template_image_user_id VARCHAR(80), + OUT v_template_image_text MEDIUMTEXT, + OUT v_template_doc_id VARCHAR(36), + OUT v_template_doc_user_id VARCHAR(80), + OUT v_template_doc_text MEDIUMTEXT) +BEGIN + SELECT t.template_id, + tb.template_bpmn_id, + tb.user_id, + tb.template_bpmn_text, + ti.template_image_id, + ti.user_id, + ti.template_image_text, + td.template_doc_id, + td.user_id, + td.template_doc_text + INTO v_template_id, + v_template_bpmn_id, + v_template_bpmn_user_id, + v_template_bpmn_text, + v_template_image_id, + v_template_image_user_id, + v_template_image_text, + v_template_doc_id, + v_template_doc_user_id, + v_template_doc_text + FROM template t, + template_bpmn tb, + template_image ti, + template_doc td + WHERE t.template_bpmn_id = tb.template_bpmn_id + AND t.template_image_id = ti.template_image_id + AND t.template_doc_id = td.template_doc_id + AND t.template_name = v_template_name; +END; +CREATE PROCEDURE set_template + (IN v_template_name VARCHAR(80), + IN v_user_id VARCHAR(80), + IN v_template_bpmn_text MEDIUMTEXT, + IN v_template_image_text MEDIUMTEXT, + IN v_template_doc_text MEDIUMTEXT, + OUT v_template_id VARCHAR(36), + OUT v_template_bpmn_id VARCHAR(36), + OUT v_template_bpmn_user_id VARCHAR(80), + OUT v_template_image_id VARCHAR(36), + OUT v_template_image_user_id VARCHAR(80), + OUT v_template_doc_id VARCHAR(36), + OUT v_template_doc_user_id VARCHAR(80)) +BEGIN + DECLARE v_old_template_bpmn_text MEDIUMTEXT; + DECLARE v_old_template_image_text MEDIUMTEXT; + DECLARE v_old_template_doc_text MEDIUMTEXT; + SET v_template_id = NULL; + CALL get_template( + v_template_name, + v_template_id, + v_template_bpmn_id, + v_template_bpmn_user_id, + v_old_template_bpmn_text, + v_template_image_id, + v_template_image_user_id, + v_old_template_image_text, + v_template_doc_id, + v_template_doc_user_id, + v_old_template_doc_text); + IF v_template_id IS NULL THEN + BEGIN + SET v_template_id = UUID(); + INSERT INTO template + (template_id, template_name) + VALUES (v_template_id, v_template_name); + END; + END IF; + IF v_template_bpmn_id IS NULL OR v_template_bpmn_text <> v_old_template_bpmn_text THEN + SET v_template_bpmn_id = UUID(); + INSERT INTO template_bpmn + (template_bpmn_id, template_id, template_bpmn_text, user_id) + VALUES (v_template_bpmn_id, v_template_id, v_template_bpmn_text, v_user_id); + SET v_template_bpmn_user_id = v_user_id; + END IF; + IF v_template_image_id IS NULL OR v_template_image_text <> v_old_template_image_text THEN + SET v_template_image_id = UUID(); + INSERT INTO template_image + (template_image_id, template_id, template_image_text, user_id) + VALUES (v_template_image_id, v_template_id, v_template_image_text, v_user_id); + SET v_template_image_user_id = v_user_id; + END IF; + IF v_template_doc_id IS NULL OR v_template_doc_text <> v_old_template_doc_text THEN + SET v_template_doc_id = UUID(); + INSERT INTO template_doc + (template_doc_id, template_id, template_doc_text, user_id) + VALUES (v_template_doc_id, v_template_id, v_template_doc_text, v_user_id); + SET v_template_doc_user_id = v_user_id; + END IF; + UPDATE template + SET template_bpmn_id = v_template_bpmn_id, + template_image_id = v_template_image_id, + template_doc_id = v_template_doc_id + WHERE template_id = v_template_id; +END; +CREATE PROCEDURE get_model + (IN v_model_name VARCHAR(80), + OUT v_control_name_prefix VARCHAR(80), + INOUT v_control_name_uuid VARCHAR(36), + OUT v_model_id VARCHAR(36), + OUT v_service_type_id VARCHAR(80), + OUT v_deployment_id VARCHAR(80), + OUT v_template_name VARCHAR(80), + OUT v_template_id VARCHAR(36), + OUT v_model_prop_id VARCHAR(36), + OUT v_model_prop_user_id VARCHAR(80), + OUT v_model_prop_text MEDIUMTEXT, + OUT v_model_blueprint_id VARCHAR(36), + OUT v_model_blueprint_user_id VARCHAR(80), + OUT v_model_blueprint_text MEDIUMTEXT, + OUT v_event_id VARCHAR(36), + OUT v_action_cd VARCHAR(80), + OUT v_action_state_cd VARCHAR(80), + OUT v_event_process_instance_id VARCHAR(80), + OUT v_event_user_id VARCHAR(80)) +BEGIN + SELECT m.control_name_prefix, + m.control_name_uuid, + m.model_id, + m.service_type_id, + m.deployment_id, + t.template_name, + m.template_id, + mp.model_prop_id, + mp.user_id, + mp.model_prop_text, + mb.model_blueprint_id, + mb.user_id, + mb.model_blueprint_text, + e.event_id, + e.action_cd, + e.action_state_cd, + e.process_instance_id, + e.user_id + INTO v_control_name_prefix, + v_control_name_uuid, + v_model_id, + v_service_type_id, + v_deployment_id, + v_template_name, + v_template_id, + v_model_prop_id, + v_model_prop_user_id, + v_model_prop_text, + v_model_blueprint_id, + v_model_blueprint_user_id, + v_model_blueprint_text, + v_event_id, + v_action_cd, + v_action_state_cd, + v_event_process_instance_id, + v_event_user_id + FROM model m, + template t, + model_properties mp, + model_blueprint mb, + event e + WHERE m.template_id = t.template_id + AND m.model_prop_id = mp.model_prop_id + AND m.model_blueprint_id = mb.model_blueprint_id + AND m.event_id = e.event_id + AND (m.model_name = v_model_name + OR m.control_name_uuid = v_control_name_uuid); + SELECT model_instance_id, + vm_name, + location, + timestamp + FROM model_instance + WHERE model_id = v_model_id + ORDER BY 2; +END; +CREATE PROCEDURE get_model_template + (IN v_model_name VARCHAR(80), + OUT v_control_name_prefix VARCHAR(80), + INOUT v_control_name_uuid VARCHAR(36), + OUT v_model_id VARCHAR(36), + OUT v_service_type_id VARCHAR(80), + OUT v_deployment_id VARCHAR(80), + OUT v_template_name VARCHAR(80), + OUT v_template_id VARCHAR(36), + OUT v_model_prop_id VARCHAR(36), + OUT v_model_prop_user_id VARCHAR(80), + OUT v_model_prop_text MEDIUMTEXT, + OUT v_model_blueprint_id VARCHAR(36), + OUT v_model_blueprint_user_id VARCHAR(80), + OUT v_model_blueprint_text MEDIUMTEXT, + OUT v_template_bpmn_id VARCHAR(36), + OUT v_template_bpmn_user_id VARCHAR(80), + OUT v_template_bpmn_text MEDIUMTEXT, + OUT v_template_image_id VARCHAR(36), + OUT v_template_image_user_id VARCHAR(80), + OUT v_template_image_text MEDIUMTEXT, + OUT v_template_doc_id VARCHAR(36), + OUT v_template_doc_user_id VARCHAR(80), + OUT v_template_doc_text MEDIUMTEXT, + OUT v_event_id VARCHAR(36), + OUT v_action_cd VARCHAR(80), + OUT v_action_state_cd VARCHAR(80), + OUT v_event_process_instance_id VARCHAR(80), + OUT v_event_user_id VARCHAR(80)) +BEGIN + CALL get_model( + v_model_name, + v_control_name_prefix, + v_control_name_uuid, + v_model_id, + v_service_type_id, + v_deployment_id, + v_template_name, + v_template_id, + v_model_prop_id, + v_model_prop_user_id, + v_model_prop_text, + v_model_blueprint_id, + v_model_blueprint_user_id, + v_model_blueprint_text, + v_event_id, + v_action_cd, + v_action_state_cd, + v_event_process_instance_id, + v_event_user_id); + CALL get_template( + v_template_name, + v_template_id, + v_template_bpmn_id, + v_template_bpmn_user_id, + v_template_bpmn_text, + v_template_image_id, + v_template_image_user_id, + v_template_image_text, + v_template_doc_id, + v_template_doc_user_id, + v_template_doc_text); + END; +CREATE PROCEDURE set_model + (IN v_model_name VARCHAR(80), + IN v_template_id VARCHAR(36), + IN v_user_id VARCHAR(80), + IN v_model_prop_text MEDIUMTEXT, + IN v_model_blueprint_text MEDIUMTEXT, + IN v_service_type_id VARCHAR(80), + IN v_deployment_id VARCHAR(80), + INOUT v_control_name_prefix VARCHAR(80), + INOUT v_control_name_uuid VARCHAR(36), + OUT v_model_id VARCHAR(36), + OUT v_model_prop_id VARCHAR(36), + OUT v_model_prop_user_id VARCHAR(80), + OUT v_model_blueprint_id VARCHAR(36), + OUT v_model_blueprint_user_id VARCHAR(80), + OUT v_event_id VARCHAR(36), + OUT v_action_cd VARCHAR(80), + OUT v_action_state_cd VARCHAR(80), + OUT v_event_process_instance_id VARCHAR(80), + OUT v_event_user_id VARCHAR(80)) +BEGIN + DECLARE v_old_template_name VARCHAR(80); + DECLARE v_old_template_id VARCHAR(36); + DECLARE v_old_control_name_prefix VARCHAR(80); + DECLARE v_old_control_name_uuid VARCHAR(36); + DECLARE v_old_model_prop_text MEDIUMTEXT; + DECLARE v_old_model_blueprint_text MEDIUMTEXT; + DECLARE v_old_service_type_id VARCHAR(80); + DECLARE v_old_deployment_id VARCHAR(80); + SET v_model_id = NULL; + CALL get_model( + v_model_name, + v_old_control_name_prefix, + v_old_control_name_uuid, + v_model_id, + v_old_service_type_id, + v_old_deployment_id, + v_old_template_name, + v_old_template_id, + v_model_prop_id, + v_model_prop_user_id, + v_old_model_prop_text, + v_model_blueprint_id, + v_model_blueprint_user_id, + v_old_model_blueprint_text, + v_event_id, + v_action_cd, + v_action_state_cd, + v_event_process_instance_id, + v_event_user_id); + IF v_model_id IS NULL THEN + BEGIN + # UUID can be provided initially but cannot be updated + # if not provided (this is expected) then it will be set here + IF v_control_name_uuid IS NULL THEN + SET v_control_name_uuid = UUID(); + END IF; + SET v_model_id = v_control_name_uuid; + INSERT INTO model + (model_id, model_name, template_id, control_name_prefix, control_name_uuid, service_type_id, deployment_id) + VALUES (v_model_id, v_model_name, v_template_id, v_control_name_prefix, v_control_name_uuid, v_service_type_id, v_deployment_id); + # since just created model, insert CREATED event as initial default event + SET v_action_cd = 'CREATE'; + SET v_action_state_cd = 'COMPLETED'; + SET v_event_user_id = v_user_id; + SET v_event_id = UUID(); + INSERT INTO event + (event_id, model_id, action_cd, action_state_cd, user_id) + VALUES (v_event_id, v_model_id, v_action_cd, v_action_state_cd, v_event_user_id); + UPDATE model + SET event_id = v_event_id + WHERE model_id = v_model_id; + END; + ELSE + BEGIN + # use old control_name_prefix if null value is provided + IF v_control_name_prefix IS NULL THEN + SET v_control_name_prefix = v_old_control_name_prefix; + END IF; + # UUID can not be updated after initial insert + SET v_control_name_uuid = v_old_control_name_uuid; + END; + END IF; + IF v_model_prop_id IS NULL OR v_model_prop_text <> v_old_model_prop_text THEN + SET v_model_prop_id = UUID(); + INSERT INTO model_properties + (model_prop_id, model_id, model_prop_text, user_id) + VALUES (v_model_prop_id, v_model_id, v_model_prop_text, v_user_id); + SET v_model_prop_user_id = v_user_id; + END IF; + IF v_model_blueprint_id IS NULL OR v_model_blueprint_text <> v_old_model_blueprint_text THEN + SET v_model_blueprint_id = UUID(); + INSERT INTO model_blueprint + (model_blueprint_id, model_id, model_blueprint_text, user_id) + VALUES (v_model_blueprint_id, v_model_id, v_model_blueprint_text, v_user_id); + SET v_model_blueprint_user_id = v_user_id; + END IF; + UPDATE model + SET control_name_prefix = v_control_name_prefix, + model_prop_id = v_model_prop_id, + model_blueprint_id = v_model_blueprint_id, + service_type_id = v_service_type_id, + deployment_id = v_deployment_id + WHERE model_id = v_model_id; +END; +CREATE PROCEDURE ins_model_instance + (IN v_control_name_uuid VARCHAR(36), + IN v_vm_name VARCHAR(250), + IN v_location VARCHAR(250), + OUT v_model_id VARCHAR(36), + OUT v_model_instance_id VARCHAR(36)) +BEGIN + SELECT m.model_id + INTO v_model_id + FROM model m + WHERE m.control_name_uuid = v_control_name_uuid; + SET v_model_instance_id = UUID(); + INSERT INTO model_instance + (model_instance_id, model_id, vm_name, location) + VALUES (v_model_instance_id, v_model_id, v_vm_name, v_location); +END; +CREATE PROCEDURE del_model_instance + (IN v_control_name_uuid VARCHAR(36), + IN v_vm_name VARCHAR(250), + OUT v_model_id VARCHAR(36), + OUT v_model_instance_id VARCHAR(36)) +BEGIN + SELECT m.model_id, i.model_instance_id + INTO v_model_id, + v_model_instance_id + FROM model m, + model_instance i + WHERE m.model_id = i.model_id + AND m.control_name_uuid = v_control_name_uuid + AND i.vm_name = v_vm_name; + DELETE FROM model_instance + WHERE model_instance_id = v_model_instance_id; +END; +CREATE PROCEDURE del_all_model_instances + (IN v_control_name_uuid VARCHAR(36), + OUT v_model_id VARCHAR(36)) +BEGIN + SELECT m.model_id + INTO v_model_id + FROM model m + WHERE m.control_name_uuid = v_control_name_uuid; + DELETE FROM model_instance + WHERE model_id = v_model_id; +END; +CREATE PROCEDURE ins_event + (IN v_model_name VARCHAR(80), + IN v_control_name_prefix VARCHAR(80), + IN v_control_name_uuid VARCHAR(36), + IN v_user_id VARCHAR(80), + IN v_action_cd VARCHAR(80), + IN v_action_state_cd VARCHAR(80), + IN v_process_instance_id VARCHAR(80), + OUT v_model_id VARCHAR(36), + OUT v_event_id VARCHAR(36)) +BEGIN + DECLARE v_prev_event_id VARCHAR(36); + SELECT m.model_id, + m.event_id + INTO v_model_id, + v_prev_event_id + FROM model m + WHERE m.model_name = v_model_name + OR m.control_name_uuid = v_control_name_uuid; + SET v_event_id = UUID(); + INSERT INTO event + (event_id, model_id, action_cd, action_state_cd, prev_event_id, process_instance_id, user_id) + VALUES (v_event_id, v_model_id, v_action_cd, v_action_state_cd, v_prev_event_id, v_process_instance_id, v_user_id); + UPDATE model + SET event_id = v_event_id + WHERE model_id = v_model_id; +END; +CREATE PROCEDURE upd_event + (IN v_event_id VARCHAR(36), + IN v_process_instance_id VARCHAR(80)) +BEGIN + UPDATE event + SET process_instance_id = v_process_instance_id + WHERE event_id = v_event_id; +END +// +DELIMITER ; diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql b/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql new file mode 100644 index 0000000000..478eaf0e09 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql @@ -0,0 +1,33 @@ +# +# Drop CLDS database objects (tables, etc.) +# + + +ALTER TABLE template + DROP FOREIGN KEY template_image_id_fkey01; +ALTER TABLE template + DROP FOREIGN KEY template_bpmn_id_fkey01; +ALTER TABLE template + DROP FOREIGN KEY template_doc_id_fkey01; + +ALTER TABLE model + DROP FOREIGN KEY template_id_fkey01; +ALTER TABLE model + DROP FOREIGN KEY model_prop_id_fkey01; +ALTER TABLE model + DROP FOREIGN KEY model_blueprint_id_fkey01; +ALTER TABLE model + DROP FOREIGN KEY event_id_fkey01; + +DROP TABLE clds_service_cache; + +DROP TABLE model_instance; +DROP TABLE model_blueprint; +DROP TABLE model_properties; +DROP TABLE event; +DROP TABLE model; + +DROP TABLE template_doc; +DROP TABLE template_image; +DROP TABLE template_bpmn; +DROP TABLE template; diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh b/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh new file mode 100644 index 0000000000..4924922c91 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +### +# ============LICENSE_START======================================================= +# ONAP CLAMP +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# 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. +# ============LICENSE_END============================================ +# =================================================================== +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +### + +cd /docker-entrypoint-initdb.d/bulkload +mysql -uroot -p$MYSQL_ROOT_PASSWORD -f < clds-create-db-objects.sql +mysql -uroot -p$MYSQL_ROOT_PASSWORD -f < clds-stored-procedures.sql diff --git a/kubernetes/oneclick/clamp.sh b/kubernetes/oneclick/clamp.sh new file mode 100644 index 0000000000..2440ccce55 --- /dev/null +++ b/kubernetes/oneclick/clamp.sh @@ -0,0 +1,7 @@ +#!/bin/bash +KUBECTL_CMD="kubectl --namespace $1-$2 $3 -f ../$2" + +printf "CLAMP....\n" + +$KUBECTL_CMD/clamp-maraidb-deployment.yaml +$KUBECTL_CMD/clamp-deployment.yaml diff --git a/kubernetes/oneclick/createAll.bash b/kubernetes/oneclick/createAll.bash index 112366f77f..c59cf095ca 100755 --- a/kubernetes/oneclick/createAll.bash +++ b/kubernetes/oneclick/createAll.bash @@ -14,7 +14,7 @@ Usage: $0 [PARAMs] -a [APP] : Specify a specific ONAP component (default: all) from the following choices: sdc, aai ,mso, message-router, robot, - vid, sdnc, portal, policy, appc, multicloud + vid, sdnc, portal, policy, appc, multicloud, clamp EOF } diff --git a/kubernetes/oneclick/deleteAll.bash b/kubernetes/oneclick/deleteAll.bash index c8759bc05e..8f44f125d5 100755 --- a/kubernetes/oneclick/deleteAll.bash +++ b/kubernetes/oneclick/deleteAll.bash @@ -28,7 +28,7 @@ Usage: $0 [PARAMs] -a [APP] : Specify a specific ONAP component (default: all) from the following choices: sdc, aai ,mso, message-router, robot, - vid, sdnc, portal, policy, appc, multicloud + vid, sdnc, portal, policy, appc, multicloud, clamp EOF } diff --git a/kubernetes/oneclick/setenv.bash b/kubernetes/oneclick/setenv.bash index 610a6995bc..3e4125bbb9 100644 --- a/kubernetes/oneclick/setenv.bash +++ b/kubernetes/oneclick/setenv.bash @@ -1,7 +1,7 @@ #!/bin/bash # Deploying MSB first and kube2msb last will ensure all the ONAP services can be registered to MSB -HELM_APPS=('msb' 'mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc' 'dcae' 'log' 'cli' 'multicloud' 'kube2msb') +HELM_APPS=('msb' 'mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc' 'dcae' 'log' 'cli' 'multicloud' 'clamp' 'kube2msb') ONAP_DOCKER_REGISTRY=${ONAP_DOCKER_REGISTRY:-nexus3.onap.org:10001} ONAP_DOCKER_USER=${ONAP_DOCKER_USER:-docker} ONAP_DOCKER_PASS=${ONAP_DOCKER_PASS:-docker} -- 2.16.6