[POLICY] Migration of clamp to policy area

Creation of the clamp subcharts + fusion of the clamp database to policy mariadb

Issue-ID: POLICY-2951
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
Change-Id: I8192f82bc393e3fc8d5884d6ab73912a0466edcd
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
diff --git a/kubernetes/policy/components/policy-clamp-be/resources/config/application.properties b/kubernetes/policy/components/policy-clamp-be/resources/config/application.properties
new file mode 100644
index 0000000..17185cc
--- /dev/null
+++ b/kubernetes/policy/components/policy-clamp-be/resources/config/application.properties
@@ -0,0 +1,71 @@
+{{/*
+###
+# ============LICENSE_START=======================================================
+# ONAP CLAMP
+# ================================================================================
+# Copyright (C) 2017-2019 AT&T Intellectual Property. All rights
+#                             reserved.
+# ================================================================================
+# Modifications copyright (c) 2019 Nokia
+# ================================================================================\
+# 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============================================
+# ===================================================================
+#
+###
+*/}}
+{{- if .Values.global.aafEnabled }}
+server.ssl.key-store=file:{{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.keystoreFile }}
+server.ssl.key-store-password=${cadi_keystore_password_p12}
+server.ssl.key-password=${cadi_key_password}
+server.ssl.key-store-type=PKCS12
+server.ssl.key-alias={{ .Values.certInitializer.fqi }}
+
+# The key file used to decode the key store and trust store password
+# If not defined, the key store and trust store password will not be decrypted
+clamp.config.keyFile=file:{{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.keyFile }}
+
+## Config part for Client certificates
+server.ssl.client-auth=want
+server.ssl.trust-store=file:{{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.truststoreFile }}
+server.ssl.trust-store-password=${cadi_truststore_password}
+{{- end }}
+
+#clds datasource connection details
+spring.datasource.username=${MYSQL_USER}
+spring.datasource.password=${MYSQL_PASSWORD}
+spring.datasource.url=jdbc:mariadb:sequential://{{ .Values.db.service.name }}:{{ .Values.db.service.internalPort }}/policyclamp?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3
+spring.profiles.active=clamp-default,clamp-aaf-authentication,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,default-dictionary-elements
+
+#The log folder that will be used in logback.xml file
+clamp.config.files.sdcController=file:/opt/policy/clamp/sdc-controllers-config.json
+
+#
+# Configuration Settings for Policy Engine Components
+clamp.config.policy.api.url=https4://policy-api.{{ include "common.namespace" . }}:6969
+clamp.config.policy.api.userName=healthcheck
+clamp.config.policy.api.password=zb!XztG34
+clamp.config.policy.pap.url=https4://policy-pap.{{ include "common.namespace" . }}:6969
+clamp.config.policy.pap.userName=healthcheck
+clamp.config.policy.pap.password=zb!XztG34
+
+#DCAE Inventory Url Properties
+clamp.config.dcae.inventory.url=https4://inventory.{{ include "common.namespace" . }}:8080
+clamp.config.dcae.dispatcher.url=https4://deployment-handler.{{ include "common.namespace" . }}:8443
+#DCAE Deployment Url Properties
+clamp.config.dcae.deployment.url=https4://deployment-handler.{{ include "common.namespace" . }}:8443
+clamp.config.dcae.deployment.userName=none
+clamp.config.dcae.deployment.password=none
+
+#AAF related parameters
+clamp.config.cadi.aafLocateUrl=https://aaf-locate.{{ include "common.namespace" . }}:8095
diff --git a/kubernetes/policy/components/policy-clamp-be/resources/config/create-db-tables.sh b/kubernetes/policy/components/policy-clamp-be/resources/config/create-db-tables.sh
new file mode 100755
index 0000000..329479f
--- /dev/null
+++ b/kubernetes/policy/components/policy-clamp-be/resources/config/create-db-tables.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada, AT&T
+# Modifications Copyright © 2018, 2020-2021 AT&T Intellectual Property
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+mysql -h"${MYSQL_HOST}" -P"${MYSQL_PORT}" -u"${MYSQL_USER}" -p"${MYSQL_PASSWORD}" policyclamp < /dbcmd-config/policy-clamp-create-tables.sql
diff --git a/kubernetes/policy/components/policy-clamp-be/resources/config/log/filebeat/filebeat.yml b/kubernetes/policy/components/policy-clamp-be/resources/config/log/filebeat/filebeat.yml
new file mode 100644
index 0000000..8717e6f
--- /dev/null
+++ b/kubernetes/policy/components/policy-clamp-be/resources/config/log/filebeat/filebeat.yml
@@ -0,0 +1,55 @@
+{{/*
+# Copyright © 2018  AT&T, Amdocs, Bell Canada 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.
+*/}}
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+  #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+  paths:
+    - /var/log/onap/*/*/*/*.log
+    - /var/log/onap/*/*/*.log
+    - /var/log/onap/*/*.log
+  #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+  ignore_older: 48h
+  # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+  clean_inactive: 96h
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+  #List of logstash server ip addresses with port number.
+  #But, in our case, this will be the loadbalancer IP address.
+  #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+  hosts: ["{{.Values.config.log.logstashServiceName}}:{{.Values.config.log.logstashPort}}"]
+  #If enable will do load balancing among availabe Logstash, automatically.
+  loadbalance: true
+
+  #The list of root certificates for server verifications.
+  #If certificate_authorities is empty or not set, the trusted
+  #certificate authorities of the host system are used.
+  #ssl.certificate_authorities: $ssl.certificate_authorities
+
+  #The path to the certificate for SSL client authentication. If the certificate is not specified,
+  #client authentication is not available.
+  #ssl.certificate: $ssl.certificate
+
+  #The client certificate key used for client authentication.
+  #ssl.key: $ssl.key
+
+  #The passphrase used to decrypt an encrypted key stored in the configured key file
+  #ssl.key_passphrase: $ssl.key_passphrase
diff --git a/kubernetes/policy/components/policy-clamp-be/resources/config/policy-clamp-create-tables.sql b/kubernetes/policy/components/policy-clamp-be/resources/config/policy-clamp-create-tables.sql
new file mode 100644
index 0000000..1f153bc
--- /dev/null
+++ b/kubernetes/policy/components/policy-clamp-be/resources/config/policy-clamp-create-tables.sql
@@ -0,0 +1,257 @@
+
+    create table dictionary (
+       name varchar(255) not null,
+        created_by varchar(255),
+        created_timestamp datetime(6) not null,
+        updated_by varchar(255),
+        updated_timestamp datetime(6) not null,
+        dictionary_second_level integer,
+        dictionary_type varchar(255),
+        primary key (name)
+    ) engine=InnoDB;
+
+    create table dictionary_elements (
+       short_name varchar(255) not null,
+        created_by varchar(255),
+        created_timestamp datetime(6) not null,
+        updated_by varchar(255),
+        updated_timestamp datetime(6) not null,
+        description varchar(255) not null,
+        name varchar(255) not null,
+        subdictionary_name varchar(255),
+        type varchar(255) not null,
+        primary key (short_name)
+    ) engine=InnoDB;
+
+    create table dictionary_to_dictionaryelements (
+       dictionary_name varchar(255) not null,
+        dictionary_element_short_name varchar(255) not null,
+        primary key (dictionary_name, dictionary_element_short_name)
+    ) engine=InnoDB;
+
+    create table hibernate_sequence (
+       next_val bigint
+    ) engine=InnoDB;
+
+    insert into hibernate_sequence values ( 1 );
+
+    create table loop_element_models (
+       name varchar(255) not null,
+        created_by varchar(255),
+        created_timestamp datetime(6) not null,
+        updated_by varchar(255),
+        updated_timestamp datetime(6) not null,
+        blueprint_yaml MEDIUMTEXT,
+        dcae_blueprint_id varchar(255),
+        loop_element_type varchar(255) not null,
+        short_name varchar(255),
+        primary key (name)
+    ) engine=InnoDB;
+
+    create table loop_logs (
+       id bigint not null,
+        log_component varchar(255) not null,
+        log_instant datetime(6) not null,
+        log_type varchar(255) not null,
+        message MEDIUMTEXT not null,
+        loop_id varchar(255) not null,
+        primary key (id)
+    ) engine=InnoDB;
+
+    create table loop_templates (
+       name varchar(255) not null,
+        created_by varchar(255),
+        created_timestamp datetime(6) not null,
+        updated_by varchar(255),
+        updated_timestamp datetime(6) not null,
+        allowed_loop_type varchar(255),
+        blueprint_yaml MEDIUMTEXT,
+        dcae_blueprint_id varchar(255),
+        maximum_instances_allowed integer,
+        svg_representation MEDIUMTEXT,
+        unique_blueprint boolean default false,
+        service_uuid varchar(255),
+        primary key (name)
+    ) engine=InnoDB;
+
+    create table loopelementmodels_to_policymodels (
+       loop_element_name varchar(255) not null,
+        policy_model_type varchar(255) not null,
+        policy_model_version varchar(255) not null,
+        primary key (loop_element_name, policy_model_type, policy_model_version)
+    ) engine=InnoDB;
+
+    create table loops (
+       name varchar(255) not null,
+        created_by varchar(255),
+        created_timestamp datetime(6) not null,
+        updated_by varchar(255),
+        updated_timestamp datetime(6) not null,
+        dcae_deployment_id varchar(255),
+        dcae_deployment_status_url varchar(255),
+        global_properties_json json,
+        last_computed_state varchar(255) not null,
+        svg_representation MEDIUMTEXT,
+        loop_template_name varchar(255) not null,
+        service_uuid varchar(255),
+        primary key (name)
+    ) engine=InnoDB;
+
+    create table loops_to_microservicepolicies (
+       loop_name varchar(255) not null,
+        microservicepolicy_name varchar(255) not null,
+        primary key (loop_name, microservicepolicy_name)
+    ) engine=InnoDB;
+
+    create table looptemplates_to_loopelementmodels (
+       loop_element_model_name varchar(255) not null,
+        loop_template_name varchar(255) not null,
+        flow_order integer not null,
+        primary key (loop_element_model_name, loop_template_name)
+    ) engine=InnoDB;
+
+    create table micro_service_policies (
+       name varchar(255) not null,
+        created_by varchar(255),
+        created_timestamp datetime(6) not null,
+        updated_by varchar(255),
+        updated_timestamp datetime(6) not null,
+        configurations_json json,
+        json_representation json not null,
+        pdp_group varchar(255),
+        pdp_sub_group varchar(255),
+        context varchar(255),
+        dcae_blueprint_id varchar(255),
+        dcae_deployment_id varchar(255),
+        dcae_deployment_status_url varchar(255),
+        device_type_scope varchar(255),
+        shared bit not null,
+        loop_element_model_id varchar(255),
+        policy_model_type varchar(255),
+        policy_model_version varchar(255),
+        primary key (name)
+    ) engine=InnoDB;
+
+    create table operational_policies (
+       name varchar(255) not null,
+        created_by varchar(255),
+        created_timestamp datetime(6) not null,
+        updated_by varchar(255),
+        updated_timestamp datetime(6) not null,
+        configurations_json json,
+        json_representation json not null,
+        pdp_group varchar(255),
+        pdp_sub_group varchar(255),
+        loop_element_model_id varchar(255),
+        policy_model_type varchar(255),
+        policy_model_version varchar(255),
+        loop_id varchar(255) not null,
+        primary key (name)
+    ) engine=InnoDB;
+
+    create table policy_models (
+       policy_model_type varchar(255) not null,
+        version varchar(255) not null,
+        created_by varchar(255),
+        created_timestamp datetime(6) not null,
+        updated_by varchar(255),
+        updated_timestamp datetime(6) not null,
+        policy_acronym varchar(255),
+        policy_tosca MEDIUMTEXT,
+        policy_pdp_group json,
+        primary key (policy_model_type, version)
+    ) engine=InnoDB;
+
+    create table services (
+       service_uuid varchar(255) not null,
+        name varchar(255) not null,
+        resource_details json,
+        service_details json,
+        version varchar(255),
+        primary key (service_uuid)
+    ) engine=InnoDB;
+
+    alter table dictionary_to_dictionaryelements
+       add constraint FK68hjjinnm8nte2owstd0xwp23
+       foreign key (dictionary_element_short_name)
+       references dictionary_elements (short_name);
+
+    alter table dictionary_to_dictionaryelements
+       add constraint FKtqfxg46gsxwlm2gkl6ne3cxfe
+       foreign key (dictionary_name)
+       references dictionary (name);
+
+    alter table loop_logs
+       add constraint FK1j0cda46aickcaoxqoo34khg2
+       foreign key (loop_id)
+       references loops (name);
+
+    alter table loop_templates
+       add constraint FKn692dk6281wvp1o95074uacn6
+       foreign key (service_uuid)
+       references services (service_uuid);
+
+    alter table loopelementmodels_to_policymodels
+       add constraint FK23j2q74v6kaexefy0tdabsnda
+       foreign key (policy_model_type, policy_model_version)
+       references policy_models (policy_model_type, version);
+
+    alter table loopelementmodels_to_policymodels
+       add constraint FKjag1iu0olojfwryfkvb5o0rk5
+       foreign key (loop_element_name)
+       references loop_element_models (name);
+
+    alter table loops
+       add constraint FK844uwy82wt0l66jljkjqembpj
+       foreign key (loop_template_name)
+       references loop_templates (name);
+
+    alter table loops
+       add constraint FK4b9wnqopxogwek014i1shqw7w
+       foreign key (service_uuid)
+       references services (service_uuid);
+
+    alter table loops_to_microservicepolicies
+       add constraint FKle255jmi7b065fwbvmwbiehtb
+       foreign key (microservicepolicy_name)
+       references micro_service_policies (name);
+
+    alter table loops_to_microservicepolicies
+       add constraint FK8avfqaf7xl71l7sn7a5eri68d
+       foreign key (loop_name)
+       references loops (name);
+
+    alter table looptemplates_to_loopelementmodels
+       add constraint FK1k7nbrbugvqa0xfxkq3cj1yn9
+       foreign key (loop_element_model_name)
+       references loop_element_models (name);
+
+    alter table looptemplates_to_loopelementmodels
+       add constraint FKj29yxyw0x7ue6mwgi6d3qg748
+       foreign key (loop_template_name)
+       references loop_templates (name);
+
+    alter table micro_service_policies
+       add constraint FKqvvdypacbww07fuv8xvlvdjgl
+       foreign key (loop_element_model_id)
+       references loop_element_models (name);
+
+    alter table micro_service_policies
+       add constraint FKn17j9ufmyhqicb6cvr1dbjvkt
+       foreign key (policy_model_type, policy_model_version)
+       references policy_models (policy_model_type, version);
+
+    alter table operational_policies
+       add constraint FKi9kh7my40737xeuaye9xwbnko
+       foreign key (loop_element_model_id)
+       references loop_element_models (name);
+
+    alter table operational_policies
+       add constraint FKlsyhfkoqvkwj78ofepxhoctip
+       foreign key (policy_model_type, policy_model_version)
+       references policy_models (policy_model_type, version);
+
+    alter table operational_policies
+       add constraint FK1ddoggk9ni2bnqighv6ecmuwu
+       foreign key (loop_id)
+       references loops (name);
diff --git a/kubernetes/policy/components/policy-clamp-be/resources/config/sdc-controllers-config.json b/kubernetes/policy/components/policy-clamp-be/resources/config/sdc-controllers-config.json
new file mode 100644
index 0000000..3adda95
--- /dev/null
+++ b/kubernetes/policy/components/policy-clamp-be/resources/config/sdc-controllers-config.json
@@ -0,0 +1,18 @@
+{
+  "sdc-connections":{
+    "sdc-controller":{
+        "user": "clamp",
+        "consumerGroup": "clamp",
+        "consumerId": "clamp",
+        "environmentName": "AUTO",
+        "sdcAddress": "sdc-be.{{ include "common.namespace" . }}:8443",
+        "password": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981",
+        "pollingInterval":30,
+        "pollingTimeout":30,
+        "activateServerTLSAuth":"false",
+        "keyStorePassword":"",
+        "keyStorePath":"",
+        "messageBusAddresses":["message-router.{{ include "common.namespace" . }}"]
+    }
+  }
+}