summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore8
-rw-r--r--.idea/vcs.xml6
-rw-r--r--TOSCA/Helm/helmdelete.sh23
-rw-r--r--TOSCA/Helm/helminstall.sh30
-rw-r--r--TOSCA/Helm/onap-blueprint.yaml281
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/LICENSE17
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/README.md73
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml78
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/imports/kubernetes.yaml216
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml330
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/policies/scale.clj66
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/scripts/create.py93
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh60
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/configure.py175
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/start.py153
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_node/configure.py88
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/scripts/nfs.sh29
-rw-r--r--TOSCA/kubernetes-cluster-TOSCA/scripts/tasks.py43
-rw-r--r--docs/OOM Project Description/oom_project_description.rst100
-rw-r--r--docs/OOM User Guide/oom_user_guide.rst183
-rw-r--r--docs/release-notes.rst12
-rw-r--r--kubernetes/Makefile47
-rw-r--r--kubernetes/README_HELM2
-rw-r--r--kubernetes/aaf/resources/config/aaf-cs-data/ecomp.cql (renamed from kubernetes/config/docker/init/src/config/aaf/data/ecomp.cql)0
-rw-r--r--kubernetes/aaf/resources/config/aaf-cs-data/identities.dat (renamed from kubernetes/config/docker/init/src/config/aaf/data/identities.dat)0
-rw-r--r--kubernetes/aaf/resources/config/aaf-cs-data/identities.idx (renamed from kubernetes/config/docker/init/src/config/aaf/data/identities.idx)bin56 -> 56 bytes
-rw-r--r--kubernetes/aaf/resources/config/aaf-cs-data/init.cql (renamed from kubernetes/config/docker/init/src/config/aaf/data/init.cql)0
-rw-r--r--kubernetes/aaf/resources/config/aaf-data/identities.dat (renamed from kubernetes/config/docker/init/src/config/aaf/data2/identities.dat)0
-rw-r--r--kubernetes/aaf/templates/aaf-configmap.yaml9
-rw-r--r--kubernetes/aaf/templates/aaf-cs-deployment.yaml10
-rw-r--r--kubernetes/aaf/templates/aaf-deployment.yaml7
-rw-r--r--kubernetes/aaf/templates/aaf-secret.yaml10
-rw-r--r--kubernetes/aaf/templates/all-services.yaml4
-rw-r--r--kubernetes/aaf/values.yaml4
-rw-r--r--kubernetes/aai/resources/config/aai-data/chef-config/dev/.knife/solo.rb (renamed from kubernetes/config/docker/init/src/config/aai/aai-data/chef-config/dev/.knife/solo.rb)0
-rw-r--r--kubernetes/aai/resources/config/aai-data/environments/README.md (renamed from kubernetes/config/docker/init/src/config/aai/aai-data/environments/README.md)0
-rw-r--r--kubernetes/aai/resources/config/aai-data/environments/simpledemo.json (renamed from kubernetes/config/docker/init/src/config/aai/aai-data/environments/simpledemo.json)28
-rw-r--r--kubernetes/aai/resources/config/aai-data/environments/solo.json (renamed from kubernetes/config/docker/init/src/config/aai/aai-data/environments/solo.json)0
-rw-r--r--kubernetes/aai/resources/config/data-router/appconfig/auth/client-cert-onap.p12 (renamed from kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/client-cert-onap.p12)bin2556 -> 2556 bytes
-rw-r--r--kubernetes/aai/resources/config/data-router/appconfig/auth/data-router_policy.json (renamed from kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/data-router_policy.json)0
-rw-r--r--kubernetes/aai/resources/config/data-router/appconfig/auth/tomcat_keystore (renamed from kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/tomcat_keystore)bin2214 -> 2214 bytes
-rw-r--r--kubernetes/aai/resources/config/data-router/appconfig/data-router.properties (renamed from kubernetes/config/docker/init/src/config/aai/data-router/appconfig/data-router.properties)0
-rw-r--r--kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v10.xml (renamed from kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v10.xml)0
-rw-r--r--kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v11.xml (renamed from kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v11.xml)0
-rw-r--r--kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v8.xml (renamed from kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v8.xml)0
-rw-r--r--kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v9.xml (renamed from kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v9.xml)0
-rw-r--r--kubernetes/aai/resources/config/data-router/dynamic/conf/entity-event-policy.xml (renamed from kubernetes/config/docker/init/src/config/aai/data-router/dynamic/conf/entity-event-policy.xml)0
-rw-r--r--kubernetes/aai/resources/config/data-router/dynamic/routes/entity-event.route (renamed from kubernetes/config/docker/init/src/config/aai/data-router/dynamic/routes/entity-event.route)2
-rw-r--r--kubernetes/aai/resources/config/elasticsearch/config/elasticsearch.yml (renamed from kubernetes/config/docker/init/src/config/aai/elasticsearch/config/elasticsearch.yml)0
-rw-r--r--kubernetes/aai/resources/config/haproxy/haproxy.cfg (renamed from kubernetes/config/docker/init/src/config/aai/haproxy/haproxy.cfg)4
-rw-r--r--kubernetes/aai/resources/config/log/filebeat/filebeat.yml41
-rw-r--r--kubernetes/aai/resources/config/log/model-loader/logback.xml (renamed from kubernetes/aai/resources/model-loader/conf/logback.xml)0
-rw-r--r--kubernetes/aai/resources/config/log/resources/logback.xml (renamed from kubernetes/aai/resources/resources/conf/logback.xml)0
-rw-r--r--kubernetes/aai/resources/config/log/search-data-service/logback.xml (renamed from kubernetes/aai/resources/search-data-service/conf/logback.xml)0
-rw-r--r--kubernetes/aai/resources/config/log/sparky-be/logback.xml (renamed from kubernetes/aai/resources/sparky-be/conf/logback.xml)0
-rw-r--r--kubernetes/aai/resources/config/log/traversal/logback.xml (renamed from kubernetes/aai/resources/traversal/conf/logback.xml)0
-rw-r--r--kubernetes/aai/resources/config/model-loader/appconfig/auth/aai-os-cert.p12 (renamed from kubernetes/config/docker/init/src/config/aai/model-loader/appconfig/auth/aai-os-cert.p12)bin4357 -> 4357 bytes
-rw-r--r--kubernetes/aai/resources/config/model-loader/appconfig/model-loader.properties (renamed from kubernetes/config/docker/init/src/config/aai/model-loader/appconfig/model-loader.properties)4
-rw-r--r--kubernetes/aai/resources/config/search-data-service/appconfig/analysis-config.json (renamed from kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/analysis-config.json)0
-rw-r--r--kubernetes/aai/resources/config/search-data-service/appconfig/auth/search_policy.json (renamed from kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/auth/search_policy.json)0
-rw-r--r--kubernetes/aai/resources/config/search-data-service/appconfig/auth/tomcat_keystore (renamed from kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/auth/tomcat_keystore)bin2214 -> 2214 bytes
-rw-r--r--kubernetes/aai/resources/config/search-data-service/appconfig/elastic-search.properties (renamed from kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/elastic-search.properties)2
-rw-r--r--kubernetes/aai/resources/config/search-data-service/appconfig/filter-config.json (renamed from kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/filter-config.json)0
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/aai.properties (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/aai.properties)4
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/auth/aai-os-cert.p12 (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/aai-os-cert.p12)bin4357 -> 4357 bytes
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/auth/client-cert-onap.p12 (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/client-cert-onap.p12)bin2556 -> 2556 bytes
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/auth/inventory-ui-keystore (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/inventory-ui-keystore)bin7201 -> 7201 bytes
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/elasticsearch.properties (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/elasticsearch.properties)4
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/model/aai_oxm_v9.xml (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/model/aai_oxm_v9.xml)0
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal-authentication.properties (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/portal/portal-authentication.properties)0
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal.properties (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/portal/portal.properties)4
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/roles.config (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/roles.config)0
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/search-service.properties (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/search-service.properties)4
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/suggestive-search.properties (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/suggestive-search.properties)0
-rw-r--r--kubernetes/aai/resources/config/sparky-be/appconfig/synchronizer.properties (renamed from kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/synchronizer.properties)0
-rw-r--r--kubernetes/aai/templates/aai-deployment-configmap.yaml9
-rw-r--r--kubernetes/aai/templates/aai-deployment.yaml8
-rw-r--r--kubernetes/aai/templates/aai-filebeat-configmap.yaml9
-rw-r--r--kubernetes/aai/templates/aai-resources-deployment.yaml30
-rw-r--r--kubernetes/aai/templates/aai-resources-traversal-configmap.yaml33
-rw-r--r--kubernetes/aai/templates/aai-traversal-deployment.yaml32
-rw-r--r--kubernetes/aai/templates/all-services.yaml29
-rw-r--r--kubernetes/aai/templates/data-router-configmap.yaml59
-rw-r--r--kubernetes/aai/templates/data-router-deployment.yaml100
-rw-r--r--kubernetes/aai/templates/elasticsearch-configmap.yaml9
-rw-r--r--kubernetes/aai/templates/elasticsearch-deployment.yaml46
-rw-r--r--kubernetes/aai/templates/hbase-deployment.yaml14
-rw-r--r--kubernetes/aai/templates/modelloader-deployment-configmap.yaml26
-rw-r--r--kubernetes/aai/templates/modelloader-deployment.yaml40
-rw-r--r--kubernetes/aai/templates/search-data-service-configmap.yaml34
-rw-r--r--kubernetes/aai/templates/search-data-service-deployment.yaml47
-rw-r--r--kubernetes/aai/templates/sparky-be-deployment-configmap.yaml42
-rw-r--r--kubernetes/aai/templates/sparky-be-deployment.yaml59
-rw-r--r--kubernetes/aai/values.yaml16
-rwxr-xr-xkubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/installSdncDb.sh46
-rwxr-xr-xkubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/startODL.sh67
-rw-r--r--kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/aaiclient.properties (renamed from kubernetes/config/docker/init/src/config/appc/conf/aaiclient.properties)6
-rw-r--r--kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/dblib.properties38
-rw-r--r--kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/svclogic.properties30
-rwxr-xr-xkubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh30
-rw-r--r--kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties27
-rwxr-xr-xkubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/installAppcDb.sh54
-rwxr-xr-xkubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/startODL.sh106
-rw-r--r--kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/aaiclient.properties248
-rw-r--r--kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/appc.properties (renamed from kubernetes/config/docker/init/src/config/appc/conf/appc.properties)22
-rw-r--r--kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/dblib.properties37
-rw-r--r--kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/svclogic.properties29
-rwxr-xr-xkubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh29
-rw-r--r--kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/config/svclogic.properties27
-rw-r--r--kubernetes/appc/resources/config/dgbuilder/svclogic.properties5
-rw-r--r--kubernetes/appc/resources/config/log/filebeat/log4j/filebeat.yml49
-rw-r--r--kubernetes/appc/resources/config/log/org.ops4j.pax.logging.cfg (renamed from kubernetes/config/docker/init/src/config/log/appc/org.ops4j.pax.logging.cfg)0
-rwxr-xr-xkubernetes/appc/resources/scripts/dgbuilder/createReleaseDir.sh129
-rw-r--r--kubernetes/appc/resources/scripts/dgbuilder/customSettings.js38
-rw-r--r--kubernetes/appc/templates/all-services.yaml22
-rw-r--r--kubernetes/appc/templates/appc-configmap.yaml73
-rw-r--r--kubernetes/appc/templates/appc-deployment.yaml97
-rw-r--r--kubernetes/appc/templates/appc-dgbuilder-configmap.yaml17
-rw-r--r--kubernetes/appc/templates/appc-log-configmap.yaml17
-rw-r--r--kubernetes/appc/templates/appc-pv-pvc.yaml14
-rw-r--r--kubernetes/appc/templates/db-deployment.yaml5
-rw-r--r--kubernetes/appc/templates/dgbuilder-deployment.yaml22
-rw-r--r--kubernetes/appc/values.yaml8
-rw-r--r--kubernetes/clamp/resources/config/mariadb/conf.d/conf1/my.cnf (renamed from kubernetes/config/docker/init/src/config/clamp/mariadb/conf.d/conf1/my.cnf)0
-rw-r--r--kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql (renamed from kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql)0
-rw-r--r--kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql (renamed from kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql)0
-rw-r--r--kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql (renamed from kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql)0
-rw-r--r--kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh (renamed from kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh)0
-rw-r--r--kubernetes/clamp/templates/all-services.yaml15
-rw-r--r--kubernetes/clamp/templates/clamp-deployment.yaml7
-rw-r--r--kubernetes/clamp/templates/clamp-mariadb-configmap.yaml33
-rw-r--r--kubernetes/clamp/templates/clamp-mariadb-deployment.yaml29
-rw-r--r--kubernetes/clamp/templates/clamp-pv-pvc.yaml14
-rw-r--r--kubernetes/clamp/values.yaml5
-rw-r--r--kubernetes/cli/templates/all-service.yaml12
-rw-r--r--kubernetes/cli/templates/cli-deployment.yaml5
-rw-r--r--kubernetes/common/.helmignore21
-rw-r--r--kubernetes/common/Chart.yaml4
-rw-r--r--kubernetes/common/templates/_name.tpl15
-rw-r--r--kubernetes/common/templates/_namespace.tpl10
-rw-r--r--kubernetes/common/values.yaml31
-rwxr-xr-xkubernetes/config/docker/init/config-init.sh5
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/CHANGELOG.md13
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/README.md68
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/files/default/aai_keystore-devbin4002 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/metadata.rb7
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/recipes/aai-resources-aai-keystore.rb8
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/CHANGELOG.md13
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/README.md68
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aai-resources-config.rb15
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aaiEventDMaaPPublisher.rb3
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/preferredRoute.rb1
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-cached.rb6
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-realtime.rb3
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/metadata.rb7
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-preferredRoute.rb11
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-resources-config.rb78
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aaiEventDMaaPPublisher.rb14
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/createConfigDirectories.rb44
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-cached.rb17
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-realtime.rb14
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiEventDMaaPPublisher.properties4
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiconfig.properties79
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/preferredRoute.txt1
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-cached.properties13
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-realtime.properties13
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/runlist-aai-resources.json11
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/CHANGELOG.md13
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/README.md68
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/files/default/aai_keystore-devbin4002 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/metadata.rb7
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/recipes/aai-traversal-aai-keystore.rb8
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/CHANGELOG.md13
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/README.md68
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aai-traversal-config.rb15
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aaiEventDMaaPPublisher.rb3
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/preferredRoute.rb1
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-cached.rb6
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-realtime.rb3
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/metadata.rb7
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-preferredRoute.rb11
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-traversal-config.rb77
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aaiEventDMaaPPublisher.rb14
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/createConfigDirectories.rb44
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-cached.rb17
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-realtime.rb14
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiEventDMaaPPublisher.properties4
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiconfig.properties75
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/preferredRoute.txt1
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-cached.properties13
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-realtime.properties13
-rw-r--r--kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/runlist-aai-traversal.json11
-rwxr-xr-xkubernetes/config/docker/init/src/config/aai/etc/ssl/certs/ca-certificates.crt4496
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json2
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-search-data-service-health.json4
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-services-health.json6
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-dbbuilder.json2
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb01-healthcheck.json4
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb02-healthcheck.json4
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnhost.json22
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-elastic-search.json23
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-kibana.json16
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-logstash.json95
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-dmaap-health.json2
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/msb-health.json16
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/multicloud-health-check.json63
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/aai-search-storage-write-script.sh6
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/appc-dbhost-script.sh4
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/data-router-script.sh4
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/gremlin-script.sh4
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/model-loader-script.sh4
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-kafka-health.sh4
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-zookeeper-health.sh4
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-api-script.sh2
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-camunda-script.sh2
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-jra-script.sh2
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh4
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-be-script.sh2
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-cs-script.sh2
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-fe-script.sh2
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-titan-script.sh2
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh4
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/search-data-service-availability.sh2
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sparky-be-script.sh4
-rwxr-xr-xkubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/tabular-db-availability.sh2
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/vid-mariadb-script.sh4
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdc-health.json2
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dgbuilder.json2
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-health.json2
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json2
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb01-healthcheck.json4
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb02-healthcheck.json4
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnhost.json22
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/vfc-health.json60
-rw-r--r--kubernetes/config/docker/init/src/config/consul/consul-agent-config/vid-health.json2
-rw-r--r--kubernetes/config/docker/init/src/config/dcae/message-router/dmaap/MsgRtrApi.properties8
-rw-r--r--kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml2
-rw-r--r--kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml2
-rw-r--r--kubernetes/config/docker/init/src/config/log/policy/drools/logback.xml152
-rwxr-xr-xkubernetes/config/docker/init/src/config/message-router/dmaap/MsgRtrApi.properties8
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log.00000001bin16384 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log_controlbin52 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/debian-10.0.flag0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/firstrun0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile0bin50331648 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile1bin50331648 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/ibdata1bin12582912 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/log/db.opt2
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/multi-master.info0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYIbin4096 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.frmbin2602 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYIbin4096 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.frmbin2110 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYIbin4096 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.frmbin2677 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYIbin2048 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.frmbin3695 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYIbin1024 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.frmbin1582 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSMbin35 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSV0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.frmbin804 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.frmbin1024 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.ibdbin98304 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYDbin1092 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYIbin3072 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.frmbin1706 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYDbin91408 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYIbin16384 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.frmbin1638 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYDbin9252 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYIbin19456 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.frmbin970 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYDbin405476 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYIbin20480 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.frmbin1776 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYIbin2048 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.frmbin1897 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYIbin4096 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.frmbin1629 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.frmbin4998 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.ibdbin98304 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.frmbin1503 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.ibdbin98304 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYIbin1024 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.frmbin1518 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYIbin2048 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.frmbin3418 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYIbin4096 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.frmbin2874 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYD1
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYIbin10240 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.frmbin2839 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYIbin4096 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.frmbin1661 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYIbin1024 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.frmbin2703 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSMbin35 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSV0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.frmbin2339 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYIbin2048 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.frmbin1374 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYIbin4096 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.frmbin2957 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYIbin1024 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.frmbin973 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYIbin1024 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.frmbin971 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYIbin1024 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.frmbin1146 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYIbin1024 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.frmbin1013 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYD0
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYIbin1024 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.frmbin1079 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYDbin492 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYIbin4096 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.frmbin2879 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/accounts.frmbin781 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/cond_instances.frmbin875 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/db.opt2
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_current.frmbin1369 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history.frmbin1369 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history_long.frmbin1369 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_account_by_event_name.frmbin1303 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_host_by_event_name.frmbin1233 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_thread_by_event_name.frmbin1065 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_user_by_event_name.frmbin1101 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_global_by_event_name.frmbin1030 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_current.frmbin3759 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history.frmbin3759 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history_long.frmbin3759 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_account_by_event_name.frmbin2127 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_digest.frmbin1888 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_host_by_event_name.frmbin2057 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_thread_by_event_name.frmbin1889 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_user_by_event_name.frmbin1925 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_global_by_event_name.frmbin1854 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_current.frmbin3870 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history.frmbin3870 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history_long.frmbin3870 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_account_by_event_name.frmbin1303 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_host_by_event_name.frmbin1233 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_instance.frmbin1077 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_thread_by_event_name.frmbin1065 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_user_by_event_name.frmbin1101 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_global_by_event_name.frmbin1030 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_instances.frmbin2431 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_event_name.frmbin1724 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_instance.frmbin3336 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/host_cache.frmbin2734 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/hosts.frmbin711 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/mutex_instances.frmbin921 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/objects_summary_global_by_type.frmbin1285 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/performance_timers.frmbin621 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/rwlock_instances.frmbin969 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_account_connect_attrs.frmbin3721 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_connect_attrs.frmbin3721 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_actors.frmbin763 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_consumers.frmbin670 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_instruments.frmbin887 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_objects.frmbin964 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_timers.frmbin712 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_instances.frmbin1225 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_event_name.frmbin1724 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_instance.frmbin1771 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_index_usage.frmbin2722 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_table.frmbin2501 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_lock_waits_summary_by_table.frmbin4493 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/threads.frmbin2180 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/users.frmbin579 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db.opt2
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.frmbin990 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.ibdbin98304 -> 0 bytes
-rw-r--r--kubernetes/config/docker/init/src/config/policy/mariadb/data/xacml/db.opt2
-rw-r--r--kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/push-policies.sh121
-rwxr-xr-xkubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py66
-rw-r--r--kubernetes/config/onap-parameters.yaml2
-rwxr-xr-xkubernetes/config/prepull_docker.sh45
-rw-r--r--kubernetes/config/templates/pod.yaml6
-rw-r--r--kubernetes/config/values.yaml6
-rw-r--r--kubernetes/consul/Chart.yaml2
-rw-r--r--kubernetes/consul/templates/consul-agent-deployment.yaml7
-rw-r--r--kubernetes/consul/templates/consul-server-deployment.yaml8
-rw-r--r--kubernetes/consul/templates/consul-server-service.yaml2
-rw-r--r--kubernetes/consul/values.yaml2
-rw-r--r--kubernetes/dcae/templates/all-services.yaml12
-rw-r--r--kubernetes/dcae/templates/cdap0-dep.yaml2
-rw-r--r--kubernetes/dcae/templates/cdap1-dep.yaml2
-rw-r--r--kubernetes/dcae/templates/cdap2-dep.yaml2
-rw-r--r--kubernetes/dcae/templates/dcae-collector-common-event.yaml4
-rw-r--r--kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml4
-rw-r--r--kubernetes/dcae/templates/dcae-controller.yaml6
-rw-r--r--kubernetes/dcae/templates/dcae-dmaap.yaml2
-rw-r--r--kubernetes/dcae/templates/dcae-kafka.yaml4
-rw-r--r--kubernetes/dcae/templates/dcae-zookeeper.yaml4
-rw-r--r--kubernetes/dcae/templates/pgaas.yaml4
-rw-r--r--kubernetes/dcae/values.yaml2
-rw-r--r--kubernetes/dcaegen2/templates/pod.yaml4
-rw-r--r--kubernetes/esr/templates/all-services.yaml5
-rw-r--r--kubernetes/esr/templates/esr-esrgui-deployment.yaml6
-rw-r--r--kubernetes/esr/templates/esr-esrserver-deployment.yaml6
-rw-r--r--kubernetes/esr/values.yaml2
-rw-r--r--kubernetes/kube2msb/Chart.yaml4
-rw-r--r--kubernetes/kube2msb/values.yaml7
-rw-r--r--kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml2
-rw-r--r--kubernetes/log/resources/kibana/conf/kibana.yml4
-rw-r--r--kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf2
-rw-r--r--kubernetes/log/templates/all-services.yaml23
-rw-r--r--kubernetes/log/templates/elasticsearch-deployment.yaml29
-rw-r--r--kubernetes/log/templates/kibana-deployment.yaml15
-rw-r--r--kubernetes/log/templates/log-pv-pvc.yaml14
-rw-r--r--kubernetes/log/templates/logstash-deployment.yaml24
-rw-r--r--kubernetes/log/values.yaml9
-rw-r--r--kubernetes/message-router/templates/all-services.yaml6
-rw-r--r--kubernetes/message-router/templates/message-router-dmaap.yaml13
-rw-r--r--kubernetes/message-router/templates/message-router-kafka.yaml9
-rw-r--r--kubernetes/message-router/templates/message-router-pv-pvc.yaml14
-rw-r--r--kubernetes/message-router/templates/message-router-zookeeper.yaml9
-rw-r--r--kubernetes/message-router/values.yaml6
-rw-r--r--kubernetes/mock/templates/all-services.yaml2
-rw-r--r--kubernetes/mock/templates/sniroemulator-deployment.yaml4
-rw-r--r--kubernetes/msb/templates/all-services.yaml22
-rw-r--r--kubernetes/msb/templates/kube2msb-registrator-deployment.yaml (renamed from kubernetes/kube2msb/templates/kube2msb-registrator-deployment.yaml)21
-rw-r--r--kubernetes/msb/templates/msb-consul-deployment.yaml6
-rw-r--r--kubernetes/msb/templates/msb-discovery-deployment.yaml21
-rw-r--r--kubernetes/msb/templates/msb-eag-deployment.yaml23
-rw-r--r--kubernetes/msb/templates/msb-iag-deployment.yaml23
-rw-r--r--kubernetes/msb/values.yaml14
-rwxr-xr-xkubernetes/mso/resources/config/docker-files/scripts/start-jboss-server.sh (renamed from kubernetes/config/docker/init/src/config/mso/docker-files/scripts/start-jboss-server.sh)0
-rw-r--r--kubernetes/mso/resources/config/log/filebeat/filebeat.yml41
-rw-r--r--kubernetes/mso/resources/config/log/logback.apihandler-infra.xml (renamed from kubernetes/config/docker/init/src/config/log/mso/logback.apihandler-infra.xml)0
-rw-r--r--kubernetes/mso/resources/config/log/logback.appc.xml (renamed from kubernetes/config/docker/init/src/config/log/mso/logback.appc.xml)0
-rw-r--r--kubernetes/mso/resources/config/log/logback.asdc.xml (renamed from kubernetes/config/docker/init/src/config/log/mso/logback.asdc.xml)0
-rw-r--r--kubernetes/mso/resources/config/log/logback.bpmn.xml (renamed from kubernetes/config/docker/init/src/config/log/mso/logback.bpmn.xml)0
-rw-r--r--kubernetes/mso/resources/config/log/logback.msorequestsdbadapter.xml (renamed from kubernetes/config/docker/init/src/config/log/mso/logback.msorequestsdbadapter.xml)0
-rw-r--r--kubernetes/mso/resources/config/log/logback.network.xml (renamed from kubernetes/config/docker/init/src/config/log/mso/logback.network.xml)0
-rw-r--r--kubernetes/mso/resources/config/log/logback.sdnc.xml (renamed from kubernetes/config/docker/init/src/config/log/mso/logback.sdnc.xml)0
-rw-r--r--kubernetes/mso/resources/config/log/logback.tenant.xml (renamed from kubernetes/config/docker/init/src/config/log/mso/logback.tenant.xml)0
-rw-r--r--kubernetes/mso/resources/config/log/logback.vfc.xml (renamed from kubernetes/config/docker/init/src/config/log/mso/logback.vfc.xml)0
-rw-r--r--kubernetes/mso/resources/config/log/logback.vnf.xml (renamed from kubernetes/config/docker/init/src/config/log/mso/logback.vnf.xml)0
-rw-r--r--kubernetes/mso/resources/config/log/logback.workflow-message-adapter.xml (renamed from kubernetes/config/docker/init/src/config/log/mso/logback.workflow-message-adapter.xml)0
-rw-r--r--kubernetes/mso/resources/config/mariadb/conf.d/mariadb1.cnf (renamed from kubernetes/config/docker/init/src/config/mso/mariadb/conf.d/mariadb1.cnf)0
-rw-r--r--kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh (renamed from kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh)0
-rw-r--r--kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh (renamed from kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh)0
-rw-r--r--kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql (renamed from kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql)0
-rw-r--r--kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql (renamed from kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql)0
-rw-r--r--kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql (renamed from kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql)0
-rw-r--r--kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql (renamed from kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql)0
-rw-r--r--kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql (renamed from kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql)0
-rw-r--r--kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql (renamed from kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql)0
-rw-r--r--kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql (renamed from kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql)0
-rw-r--r--kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql (renamed from kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql)0
-rwxr-xr-xkubernetes/mso/resources/config/mso/aai.crt (renamed from kubernetes/config/docker/init/src/config/mso/mso/aai.crt)0
-rw-r--r--kubernetes/mso/resources/config/mso/encryption.key (renamed from kubernetes/config/docker/init/src/config/mso/mso/encryption.key)0
-rw-r--r--kubernetes/mso/resources/config/mso/jboss/standalone-full-ha-mso.xml609
-rwxr-xr-xkubernetes/mso/resources/config/mso/mso-docker.json (renamed from kubernetes/config/docker/init/src/config/mso/mso/mso-docker.json)88
-rw-r--r--kubernetes/mso/templates/all-services.yaml18
-rw-r--r--kubernetes/mso/templates/db-deployment-configmap.yaml65
-rw-r--r--kubernetes/mso/templates/db-deployment.yaml67
-rw-r--r--kubernetes/mso/templates/mso-deployment-configmap.yaml25
-rw-r--r--kubernetes/mso/templates/mso-deployment.yaml115
-rw-r--r--kubernetes/mso/templates/mso-log-configmap.yaml17
-rw-r--r--kubernetes/mso/templates/mso-pv-pvc.yaml14
-rw-r--r--kubernetes/mso/values.yaml15
-rw-r--r--kubernetes/multicloud/resources/config/log/filebeat/filebeat.yml41
-rw-r--r--kubernetes/multicloud/resources/config/log/framework/log.yml26
-rw-r--r--kubernetes/multicloud/resources/config/log/vio/log.yml26
-rw-r--r--kubernetes/multicloud/templates/all-services.yaml8
-rw-r--r--kubernetes/multicloud/templates/framework-deployment.yaml47
-rw-r--r--kubernetes/multicloud/templates/multicloud-log-configmap.yaml25
-rw-r--r--kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml11
-rw-r--r--kubernetes/multicloud/templates/multicloud-vio-deployment.yaml39
-rw-r--r--kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml11
-rw-r--r--kubernetes/multicloud/values.yaml17
-rw-r--r--kubernetes/onap/Chart.yaml9
-rw-r--r--kubernetes/onap/requirements.yaml103
-rw-r--r--kubernetes/onap/resources/environments/onap-demo.yaml60
-rw-r--r--kubernetes/onap/values.yaml104
-rwxr-xr-xkubernetes/oneclick/createAll.bash37
-rwxr-xr-xkubernetes/oneclick/deleteAll.bash35
-rw-r--r--kubernetes/oneclick/setenv.bash4
-rw-r--r--kubernetes/oneclick/tools/autoCleanConfig.bash54
-rw-r--r--kubernetes/oneclick/tools/autoCreateConfig.bash65
-rw-r--r--kubernetes/oneclick/tools/collectInfo.bash171
-rwxr-xr-xkubernetes/policy/resources/config/drools/settings.xml (renamed from kubernetes/config/docker/init/src/config/policy/drools/settings.xml)0
-rw-r--r--kubernetes/policy/resources/config/log/drools/logback.xml107
-rw-r--r--kubernetes/policy/resources/config/log/ep_sdk_app/logback.xml (renamed from kubernetes/config/docker/init/src/config/log/policy/ep_sdk_app/logback.xml)0
-rw-r--r--kubernetes/policy/resources/config/log/filebeat/filebeat.yml41
-rw-r--r--kubernetes/policy/resources/config/log/pypdpserver/logback.xml (renamed from kubernetes/config/docker/init/src/config/log/policy/pypdpserver/logback.xml)0
-rw-r--r--kubernetes/policy/resources/config/log/xacml-pap-rest/logback.xml (renamed from kubernetes/config/docker/init/src/config/log/policy/xacml-pap-rest/logback.xml)0
-rw-r--r--kubernetes/policy/resources/config/log/xacml-pdp-rest/logback.xml (renamed from kubernetes/config/docker/init/src/config/log/policy/xacml-pdp-rest/logback.xml)0
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/drools/base.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/base.conf)37
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/drools/drools-tweaks.sh (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/drools-tweaks.sh)0
-rw-r--r--kubernetes/policy/resources/config/opt/policy/config/drools/keys/feature-healthcheck.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/feature-healthcheck.conf)0
-rw-r--r--[-rwxr-xr-x]kubernetes/policy/resources/config/opt/policy/config/drools/keys/policy-keystore (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/policy-keystore)bin5640 -> 5640 bytes
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/drools/policy-management.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/policy-management.conf)0
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/base.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/base.conf)6
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/brmsgw-tweaks.sh (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/brmsgw-tweaks.sh)2
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/brmsgw.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/brmsgw.conf)21
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/console.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/console.conf)18
-rw-r--r--kubernetes/policy/resources/config/opt/policy/config/pe/elk.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/elk.conf)0
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/mysql.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/mysql.conf)0
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/pap-tweaks.sh (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pap-tweaks.sh)0
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/pap.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pap.conf)6
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/paplp.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/paplp.conf)4
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/pdp-tweaks.sh (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdp-tweaks.sh)0
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/pdp.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdp.conf)13
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/pdplp.conf (renamed from kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdplp.conf)4
-rwxr-xr-xkubernetes/policy/resources/config/opt/policy/config/pe/push-policies.sh250
-rwxr-xr-xkubernetes/policy/scripts/update-vfw-op-policy.sh93
-rw-r--r--kubernetes/policy/templates/all-services.yaml17
-rw-r--r--kubernetes/policy/templates/dep-brmsgw.yaml19
-rw-r--r--kubernetes/policy/templates/dep-drools.yaml76
-rw-r--r--kubernetes/policy/templates/dep-maria.yaml13
-rw-r--r--kubernetes/policy/templates/dep-nexus.yaml7
-rw-r--r--kubernetes/policy/templates/dep-pap.yaml32
-rw-r--r--kubernetes/policy/templates/dep-pdp.yaml27
-rw-r--r--kubernetes/policy/templates/policy-deployment-configmap.yaml27
-rw-r--r--kubernetes/policy/templates/policy-deployment-secret.yaml10
-rw-r--r--kubernetes/policy/templates/policy-log-configmap.yaml45
-rw-r--r--kubernetes/policy/templates/policy-pv-pvc.yaml32
-rw-r--r--kubernetes/policy/values.yaml14
-rw-r--r--kubernetes/portal/docker/init/ubuntu/Dockerfile11
-rw-r--r--kubernetes/portal/resources/config/log/filebeat/filebeat.yml41
-rw-r--r--kubernetes/portal/resources/config/log/portal/onapportal/logback.xml (renamed from kubernetes/config/docker/init/src/config/log/portal/onapportal/logback.xml)0
-rw-r--r--kubernetes/portal/resources/config/log/portal/onapportalsdk/logback.xml (renamed from kubernetes/config/docker/init/src/config/log/portal/onapportalsdk/logback.xml)0
-rw-r--r--kubernetes/portal/resources/config/mariadb/oom_updates.sql (renamed from kubernetes/config/docker/init/src/config/portal/mariadb/oom_updates.sql)1
-rwxr-xr-xkubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties (renamed from kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties)0
-rwxr-xr-xkubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties (renamed from kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties)0
-rwxr-xr-xkubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/portal.properties (renamed from kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/portal.properties)2
-rwxr-xr-xkubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/system.properties (renamed from kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/system.properties)4
-rw-r--r--kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties (renamed from kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties)0
-rwxr-xr-xkubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties (renamed from kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties)2
-rwxr-xr-xkubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties (renamed from kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties)4
-rw-r--r--kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties (renamed from kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties)2
-rw-r--r--kubernetes/portal/resources/scripts/update_hosts.sh17
-rw-r--r--kubernetes/portal/templates/all-services.yaml16
-rw-r--r--kubernetes/portal/templates/portal-apps-configmap.yaml35
-rwxr-xr-xkubernetes/portal/templates/portal-apps-deployment.yaml88
-rw-r--r--kubernetes/portal/templates/portal-logs-configmap.yaml26
-rwxr-xr-xkubernetes/portal/templates/portal-mariadb-deployment.yaml9
-rw-r--r--kubernetes/portal/templates/portal-pv-pvc.yaml14
-rw-r--r--kubernetes/portal/templates/portal-vnc-dep.yaml58
-rw-r--r--kubernetes/portal/templates/portal-widgets-deployment.yaml14
-rw-r--r--kubernetes/portal/values.yaml9
-rw-r--r--kubernetes/readiness/dep-health-init.yaml2
-rw-r--r--kubernetes/readiness/docker/init/ready.py84
-rwxr-xr-xkubernetes/robot/demo-k8s.sh47
-rwxr-xr-xkubernetes/robot/ete-k8s.sh13
-rw-r--r--kubernetes/robot/templates/all-services.yaml2
-rw-r--r--kubernetes/robot/templates/robot-deployment.yaml5
-rw-r--r--kubernetes/robot/values.yaml1
-rwxr-xr-xkubernetes/sdc/resources/config/environments/AUTO.json (renamed from kubernetes/config/docker/init/src/config/sdc/environments/AUTO.json)24
-rwxr-xr-xkubernetes/sdc/resources/config/environments/Template.json (renamed from kubernetes/config/docker/init/src/config/sdc/environments/Template.json)8
-rw-r--r--kubernetes/sdc/resources/config/log/be/logback.xml (renamed from kubernetes/config/docker/init/src/config/log/sdc/be/logback.xml)0
-rw-r--r--kubernetes/sdc/resources/config/log/fe/logback.xml (renamed from kubernetes/config/docker/init/src/config/log/sdc/fe/logback.xml)0
-rw-r--r--kubernetes/sdc/resources/config/log/filebeat/filebeat.yml41
-rwxr-xr-xkubernetes/sdc/resources/config/sdc-fe/FE_2_setup_configuration.rb (renamed from kubernetes/config/docker/init/src/config/sdc/sdc-fe/FE_2_setup_configuration.rb)2
-rw-r--r--kubernetes/sdc/templates/all-services.yaml10
-rw-r--r--kubernetes/sdc/templates/sdc-be.yaml22
-rw-r--r--kubernetes/sdc/templates/sdc-cs.yaml9
-rw-r--r--kubernetes/sdc/templates/sdc-environments-configmap.yaml9
-rw-r--r--kubernetes/sdc/templates/sdc-es.yaml25
-rw-r--r--kubernetes/sdc/templates/sdc-fe-configmap.yaml9
-rw-r--r--kubernetes/sdc/templates/sdc-fe.yaml26
-rw-r--r--kubernetes/sdc/templates/sdc-kb.yaml9
-rw-r--r--kubernetes/sdc/templates/sdc-log-configmap.yaml27
-rw-r--r--kubernetes/sdc/templates/sdc-pv-pvc.yaml14
-rw-r--r--kubernetes/sdc/values.yaml6
-rwxr-xr-xkubernetes/sdnc/resources/config/conf/aaiclient.properties (renamed from kubernetes/config/docker/init/src/config/sdnc/conf/aaiclient.properties)6
-rwxr-xr-xkubernetes/sdnc/resources/config/conf/admportal.json (renamed from kubernetes/config/docker/init/src/config/sdnc/conf/admportal.json)4
-rw-r--r--kubernetes/sdnc/resources/config/dmaap/dhcpalert.properties35
-rw-r--r--kubernetes/sdnc/resources/config/log/filebeat/log4j/filebeat.yml49
-rw-r--r--kubernetes/sdnc/resources/config/log/org.ops4j.pax.logging.cfg (renamed from kubernetes/config/docker/init/src/config/log/sdnc/org.ops4j.pax.logging.cfg)0
-rw-r--r--kubernetes/sdnc/resources/config/ueb/ueb-listener.properties21
-rw-r--r--kubernetes/sdnc/templates/all-services.yaml18
-rw-r--r--kubernetes/sdnc/templates/db-statefulset.yaml14
-rw-r--r--kubernetes/sdnc/templates/dgbuilder-deployment.yaml3
-rw-r--r--kubernetes/sdnc/templates/dmaap-deployment-configmap.yaml9
-rw-r--r--kubernetes/sdnc/templates/dmaap-deployment.yaml62
-rw-r--r--kubernetes/sdnc/templates/mysql-configmap.yaml4
-rw-r--r--kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml11
-rw-r--r--kubernetes/sdnc/templates/sdnc-conf-configmap.yaml9
-rw-r--r--kubernetes/sdnc/templates/sdnc-data-storageclass.yaml4
-rw-r--r--kubernetes/sdnc/templates/sdnc-log-configmap.yaml17
-rw-r--r--kubernetes/sdnc/templates/sdnc-statefulset.yaml44
-rw-r--r--kubernetes/sdnc/templates/ueb-deployment-configmap.yaml9
-rw-r--r--kubernetes/sdnc/templates/ueb-deployment.yaml62
-rw-r--r--kubernetes/sdnc/templates/web-deployment.yaml18
-rw-r--r--kubernetes/sdnc/values.yaml15
-rw-r--r--kubernetes/setup/.helmignore21
-rw-r--r--kubernetes/setup/Chart.yaml4
-rw-r--r--kubernetes/setup/requirements.yaml7
-rw-r--r--kubernetes/setup/templates/clusterrolebinding.yaml18
-rw-r--r--kubernetes/setup/templates/secrets.yaml13
-rw-r--r--kubernetes/setup/values.yaml4
-rw-r--r--kubernetes/so/.helmignore21
-rw-r--r--kubernetes/so/Chart.yaml4
-rw-r--r--kubernetes/so/charts/mariadb/.helmignore21
-rw-r--r--kubernetes/so/charts/mariadb/Chart.yaml4
-rw-r--r--kubernetes/so/charts/mariadb/resources/config/mariadb/conf.d/mariadb1.cnf193
-rw-r--r--kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh25
-rw-r--r--kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh27
-rw-r--r--kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql49
-rw-r--r--kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql139
-rw-r--r--kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql77
-rw-r--r--kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql59
-rw-r--r--kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql1195
-rw-r--r--kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql25
-rw-r--r--kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql462
-rw-r--r--kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql84
-rw-r--r--kubernetes/so/charts/mariadb/templates/NOTES.txt19
-rw-r--r--kubernetes/so/charts/mariadb/templates/configmap.yaml63
-rw-r--r--kubernetes/so/charts/mariadb/templates/deployment.yaml118
-rw-r--r--kubernetes/so/charts/mariadb/templates/pv.yaml21
-rw-r--r--kubernetes/so/charts/mariadb/templates/pvc.yaml32
-rw-r--r--kubernetes/so/charts/mariadb/templates/secrets.yaml13
-rw-r--r--kubernetes/so/charts/mariadb/templates/service.yaml24
-rw-r--r--kubernetes/so/charts/mariadb/values.yaml92
-rw-r--r--kubernetes/so/requirements.yaml7
-rwxr-xr-xkubernetes/so/resources/config/docker-files/scripts/start-jboss-server.sh63
-rw-r--r--kubernetes/so/resources/config/log/filebeat/filebeat.yml41
-rw-r--r--kubernetes/so/resources/config/log/logback.apihandler-infra.xml139
-rw-r--r--kubernetes/so/resources/config/log/logback.appc.xml138
-rw-r--r--kubernetes/so/resources/config/log/logback.asdc.xml138
-rw-r--r--kubernetes/so/resources/config/log/logback.bpmn.xml139
-rw-r--r--kubernetes/so/resources/config/log/logback.msorequestsdbadapter.xml138
-rw-r--r--kubernetes/so/resources/config/log/logback.network.xml139
-rw-r--r--kubernetes/so/resources/config/log/logback.sdnc.xml138
-rw-r--r--kubernetes/so/resources/config/log/logback.tenant.xml139
-rw-r--r--kubernetes/so/resources/config/log/logback.vfc.xml138
-rw-r--r--kubernetes/so/resources/config/log/logback.vnf.xml138
-rw-r--r--kubernetes/so/resources/config/log/logback.workflow-message-adapter.xml138
-rwxr-xr-xkubernetes/so/resources/config/mso/aai.crt66
-rw-r--r--kubernetes/so/resources/config/mso/encryption.key1
-rwxr-xr-xkubernetes/so/resources/config/mso/mso-docker.json181
-rw-r--r--kubernetes/so/resources/config/mso/standalone-full-ha-mso.xml609
-rw-r--r--kubernetes/so/templates/NOTES.txt19
-rw-r--r--kubernetes/so/templates/configmap.yaml15
-rw-r--r--kubernetes/so/templates/deployment.yaml177
-rw-r--r--kubernetes/so/templates/log-configmap.yaml15
-rw-r--r--kubernetes/so/templates/service.yaml69
-rw-r--r--kubernetes/so/values.yaml88
-rw-r--r--kubernetes/uui/templates/all-services.yaml7
-rw-r--r--kubernetes/uui/templates/uui-deployment.yaml7
-rw-r--r--kubernetes/uui/templates/uui-server-deployment.yaml9
-rw-r--r--kubernetes/uui/values.yaml6
-rwxr-xr-xkubernetes/vfc/templates/all-services.yaml30
-rwxr-xr-xkubernetes/vfc/templates/vfc-catalog-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-emsdriver-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-jujudriver-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-nslcm-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-resmgr-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-vnflcm-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-vnfres-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-workflow-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-workflow-engine-activity.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml6
-rwxr-xr-xkubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml6
-rw-r--r--kubernetes/vfc/values.yaml4
-rwxr-xr-xkubernetes/vid/resources/config/lf_config/vid-my.cnf (renamed from kubernetes/config/docker/init/src/config/vid/vid/lf_config/vid-my.cnf)0
-rwxr-xr-xkubernetes/vid/resources/config/lf_config/vid-pre-init.sql (renamed from kubernetes/config/docker/init/src/config/vid/vid/lf_config/vid-pre-init.sql)0
-rw-r--r--kubernetes/vid/resources/config/log/filebeat/filebeat.yml41
-rw-r--r--kubernetes/vid/resources/config/log/vid/logback.xml (renamed from kubernetes/config/docker/init/src/config/log/vid/logback.xml)0
-rw-r--r--kubernetes/vid/templates/all-services.yaml4
-rw-r--r--kubernetes/vid/templates/vid-lfconfig-configmap.yaml9
-rw-r--r--kubernetes/vid/templates/vid-log-configmap.yaml17
-rw-r--r--kubernetes/vid/templates/vid-mariadb-deployment.yaml26
-rw-r--r--kubernetes/vid/templates/vid-pv-pvc.yaml14
-rw-r--r--kubernetes/vid/templates/vid-server-deployment.yaml29
-rw-r--r--kubernetes/vid/values.yaml7
-rw-r--r--kubernetes/vnfsdk/templates/all-services.yaml4
-rw-r--r--kubernetes/vnfsdk/templates/postgres-deployment.yaml8
-rw-r--r--kubernetes/vnfsdk/templates/refrepo-deployment.yaml6
-rw-r--r--kubernetes/vnfsdk/values.yaml2
698 files changed, 13957 insertions, 7295 deletions
diff --git a/.gitignore b/.gitignore
index b671448e83..4dcd874cd7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
kubernetes/config/onap-parameters.yaml
-.idea/vcs.xml
-.idea/modules.xml
-.idea/oom.iml
-.idea/workspace.xml
+.idea/*
+kubernetes/dist/*
+requirements.lock
+**/charts/*.tgz
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1ddfbb..0000000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="VcsDirectoryMappings">
- <mapping directory="" vcs="Git" />
- </component>
-</project> \ No newline at end of file
diff --git a/TOSCA/Helm/helmdelete.sh b/TOSCA/Helm/helmdelete.sh
new file mode 100644
index 0000000000..e098fbbc13
--- /dev/null
+++ b/TOSCA/Helm/helmdelete.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+helm delete $1-$2 --purge
+kubectl delete namespace $1-$2
+kubectl delete clusterrolebinding $1-$2-admin-binding
+
+
diff --git a/TOSCA/Helm/helminstall.sh b/TOSCA/Helm/helminstall.sh
new file mode 100644
index 0000000000..a6e09c8959
--- /dev/null
+++ b/TOSCA/Helm/helminstall.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+printf "%s" "$*"
+printf `pwd`
+printf "%s" "---------------"
+kubectl create namespace $1-$2
+kubectl create clusterrolebinding $1-$2-admin-binding --clusterrole=cluster-admin --serviceaccount=$1-$2:default
+# assign default auth token
+if [[ -z $ONAP_DEFAULT_AUTH_TOKEN ]]; then
+ DEFAULT_SECRET=`kubectl get secrets -n $1-$2 | grep default-token | awk '{ print $1}'`
+ ONAP_DEFAULT_AUTH_TOKEN=`kubectl get secrets $DEFAULT_SECRET -n $1-$2 -o yaml | grep 'token:' | awk '{ print $2}' | base64 -d`
+fi
+kubectl --namespace $1-$2 create secret docker-registry $1-docker-registry-key --docker-server=nexus3.onap.org:10001 --docker-username=docker --docker-password=docker --docker-email=@
+helm install ../$2/ --name $1-$2 --namespace $1 --set nsPrefix=$1,nodePortPrefix=302,kubeMasterAuthToken=$ONAP_DEFAULT_AUTH_TOKEN \ No newline at end of file
diff --git a/TOSCA/Helm/onap-blueprint.yaml b/TOSCA/Helm/onap-blueprint.yaml
new file mode 100644
index 0000000000..f86b590eda
--- /dev/null
+++ b/TOSCA/Helm/onap-blueprint.yaml
@@ -0,0 +1,281 @@
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+tosca_definitions_version: cloudify_dsl_1_3
+
+imports:
+ - http://www.getcloudify.org/spec/cloudify/3.4.2/types.yaml
+ - http://www.getcloudify.org/spec/fabric-plugin/1.5/plugin.yaml
+
+inputs:
+ # For agent, toggle to true.
+ install_method:
+ default: none # For fabric use false.
+ ip:
+ user:
+ default: centos
+ namespace_perfix:
+ default: onap
+
+node_types:
+ cloudify.nodes.Helm:
+ derived_from: cloudify.nodes.SoftwareComponent
+ properties:
+ cwd:
+ default: /home/centos/oom/kubernetes/oneclick
+ args:
+ default:
+ - onap
+ - mso
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ # This is for fabric: # Run Anywhere.
+ start:
+ implementation: fabric.fabric_plugin.tasks.run_script
+ inputs:
+ script_path:
+ default: helminstall.sh # Relative to the blueprint file.
+ process:
+ default: &process_vars
+ cwd: { get_property: [ SELF, cwd ] }
+ args: { get_property: [ SELF, args ] }
+ fabric_env:
+ default: &fabric_env
+ user: { get_property: [ k8s_master, agent_config, user ] }
+ host_string: { get_property: [ k8s_master, ip ] }
+ key: { get_property: [ k8s_master, agent_config, key ] }
+ stop:
+ implementation: fabric.fabric_plugin.tasks.run_script
+ inputs:
+ script_path:
+ default: helmdelete.sh
+ process:
+ default: *process_vars
+ fabric_env:
+ default: *fabric_env
+
+node_templates:
+
+ k8s_master:
+ type: cloudify.nodes.Compute
+ properties:
+ ip: { get_input: ip }
+ agent_config:
+ install_method: { get_input: install_method } # False for Fabric.
+ key: { get_secret: agent_key_private }
+ user: { get_input: user }
+
+ consul:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - consul
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ msb:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - msb
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+
+ mso:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - mso
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ appc:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - appc
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ message-router:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - message-router
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ sdnc:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - sdnc
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ vid:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - vid
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ robot:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - robot
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ policy:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - policy
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ portal:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - portal
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ aai:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - aai
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ sdc:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - sdc
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ log:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - log
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ cli:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - cli
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ multicloud:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - multicloud
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ clamp:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - clamp
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ vnfsdk:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - vnfsdk
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ uui:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - uui
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ aaf:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - aaf
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
+
+ vfc:
+ type: cloudify.nodes.Helm
+ properties:
+ args:
+ - { get_input: namespace_perfix }
+ - vfc
+ relationships:
+ - type: cloudify.relationships.connected_to
+ target: k8s_master
diff --git a/TOSCA/kubernetes-cluster-TOSCA/LICENSE b/TOSCA/kubernetes-cluster-TOSCA/LICENSE
new file mode 100644
index 0000000000..696f3d0fb7
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/LICENSE
@@ -0,0 +1,17 @@
+ ============LICENSE_START==========================================
+ ===================================================================
+ Copyright © 2018 AT&T
+ 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============================================ \ No newline at end of file
diff --git a/TOSCA/kubernetes-cluster-TOSCA/README.md b/TOSCA/kubernetes-cluster-TOSCA/README.md
new file mode 100644
index 0000000000..8bc097f69a
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/README.md
@@ -0,0 +1,73 @@
+[![Build Status](https://circleci.com/gh/cloudify-examples/simple-kubernetes-blueprint.svg?style=shield&circle-token=:circle-token)](https://circleci.com/gh/cloudify-examples/simple-kubernetes-blueprint)
+
+
+## Kubernetes Cluster Example
+
+This blueprint creates an example Kubernetes cluster. It is intended as an example. The underlying Kubernetes configuration method used is [Kubeadm](https://kubernetes.io/docs/admin/kubeadm/), which is not considered production-ready.
+
+Regardless of your infrastructure choice, this blueprint installs and configures on each VM:
+- The Kubernetes Yum repo will be installed on your VMs.
+- Docker, version 1.12.6-28.git1398f24.el7.centos
+- kubelet, version 1.8.6-0.
+- kubeadm, version 1.8.6-0.
+- kubernetes-cni, version 0.5.1-1.
+- weave
+
+
+## prerequisites
+
+You will need a *Cloudify Manager* running in either AWS, Azure, or Openstack. The Cloudify manager should be setup using the [Cloudify environment setup](https://github.com/cloudify-examples/cloudify-environment-setup) - that's how we test this blueprint. The following are therefore assumed:
+* You have uploaded all of the required plugins to your manager in order to use this blueprint. (See the imports section of the blueprint.yaml file to check that you are using the correct plugins and their respective versions.)
+* You have created all of the required secrets on your manager in order to use this blueprint. (See #secrets.)
+* A Centos 7.X image. If you are running in AWS or Openstack, your image must support [Cloud-init](https://cloudinit.readthedocs.io/en/latest/).
+
+
+#### Secrets
+
+* Common Secrets:
+ * agent_key_private
+ * agent_key_public
+
+* Openstack Secrets:
+ * external_network_name: This is the network on your Openstack that represents the internet gateway network.
+ * public_network_name: An openstack network. (Inbound is expected, outbound is required.)
+ * public_subnet_name: A subnet on the public network.
+ * private_network_name: An openstack network. (Inbound is not expected, outbound is required.)
+ * private_subnet_name: A subnet on the network. (Inbound is not expected, outbound is required.)
+ * router_name: This is a router that is attached to your Subnets designated in the secrets public_subnet_name and private_subnet_name.
+ * region: Your Keystone V2 region.
+ * keystone_url: Your Keystone V2 auth URL.
+ * keystone_tenant_name: Your Keystone V2 tenant name.
+ * keystone_password: Your Keystone V2 password.
+ * keystone_username:Your Keystone V2 username.
+
+
+### Step 1: Install the Kubernetes cluster
+
+#### For Openstack run:
+
+Please follow the instruction on wiki
+https://wiki.onap.org/display/DW/ONAP+on+Kubernetes+on+Cloudify#ONAPonKubernetesonCloudify-OpenStack
+
+
+### Step 2: Verify the demo installed and started.
+
+Once the workflow execution is complete, verify that these secrets were created:
+
+
+```shell
+(Incubator)UNICORN:Projects trammell$ cfy secrets list
+Listing all secrets...
+
+Secrets:
++------------------------------------------+--------------------------+--------------------------+------------+----------------+------------+
+| key | created_at | updated_at | permission | tenant_name | created_by |
++------------------------------------------+--------------------------+--------------------------+------------+----------------+------------+
+| kubernetes-admin_client_certificate_data | 2017-08-09 14:58:06.421 | 2017-08-09 14:58:06.421 | | default_tenant | admin |
+| kubernetes-admin_client_key_data | 2017-08-09 14:58:06.513 | 2017-08-09 14:58:06.513 | | default_tenant | admin |
+| kubernetes_certificate_authority_data | 2017-08-09 14:58:06.327 | 2017-08-09 14:58:06.327 | | default_tenant | admin |
+| kubernetes_master_ip | 2017-08-09 14:56:12.359 | 2017-08-09 14:56:12.359 | | default_tenant | admin |
+| kubernetes_master_port | 2017-08-09 14:56:12.452 | 2017-08-09 14:56:12.452 | | default_tenant | admin |
++------------------------------------------+--------------------------+--------------------------+------------+----------------+------------+
+```
+
diff --git a/TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml b/TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml
new file mode 100644
index 0000000000..2a7b7e7bc4
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/imports/cloud-config.yaml
@@ -0,0 +1,78 @@
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+# this is the cloud init. It will install the reqiured packages and do some basic config on every VM.
+
+node_templates:
+
+ cloudify_host_cloud_config:
+ type: cloudify.nodes.CloudInit.CloudConfig
+ properties:
+ resource_config:
+ groups:
+ - docker
+ users:
+ - name: { get_input: agent_user }
+ primary-group: wheel
+ groups: docker
+ shell: /bin/bash
+ sudo: ['ALL=(ALL) NOPASSWD:ALL']
+ ssh-authorized-keys:
+ - { get_secret: agent_key_public }
+ write_files:
+ - path: /etc/yum.repos.d/kubernetes.repo
+ owner: root:root
+ permissions: '0444'
+ content: |
+ # installed by cloud-init
+ [kubernetes]
+ name=Kubernetes
+ baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
+ enabled=1
+ gpgcheck=1
+ repo_gpgcheck=1
+ gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
+ https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
+
+ - path: /etc/sysctl.d/k8s.conf
+ owner: root:root
+ permissions: '0444'
+ content: |
+ # installed by cloud-init
+ net.bridge.bridge-nf-call-ip6tables = 1
+ net.bridge.bridge-nf-call-iptables = 1
+
+ packages:
+ - [docker, 1.12.6]
+ - [kubelet, 1.8.6-0]
+ - [kubeadm, 1.8.6-0]
+ - [kubectl, 1.8.6-0]
+ - [kubernetes-cni, 0.5.1-1]
+ - [nfs-utils]
+ - git
+ - wget
+ runcmd:
+ - [ setenforce, 0 ]
+ - [ sysctl , '--system' ]
+ - [ systemctl, enable, docker ]
+ - [ systemctl, start, docker ]
+ - [ systemctl, enable, kubelet ]
+ - [ systemctl, start, kubelet ]
+ - [ mkdir, '-p', /tmp/data ]
+ - [ chcon, '-Rt', svirt_sandbox_file_t, /tmp/data ]
+ - [ mkdir, '-p', /dockerdata-nfs ]
+ - [ chmod, 777, /dockerdata-nfs ] \ No newline at end of file
diff --git a/TOSCA/kubernetes-cluster-TOSCA/imports/kubernetes.yaml b/TOSCA/kubernetes-cluster-TOSCA/imports/kubernetes.yaml
new file mode 100644
index 0000000000..7b025738e7
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/imports/kubernetes.yaml
@@ -0,0 +1,216 @@
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+inputs:
+
+ labels:
+ default: {}
+
+node_types:
+
+ cloudify.nodes.Kubernetes:
+ derived_from: cloudify.nodes.Root
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ create:
+ implementation: scripts/create.py
+
+ cloudify.nodes.Kubernetes.Master:
+ derived_from: cloudify.nodes.Root
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ create:
+ implementation: scripts/create.py
+ configure:
+ implementation: scripts/kubernetes_master/configure.py
+ start:
+ implementation: scripts/kubernetes_master/start.py
+
+ cloudify.nodes.Kubernetes.Node:
+ derived_from: cloudify.nodes.Root
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ create:
+ implementation: scripts/create.py
+ configure:
+ implementation: scripts/kubernetes_node/configure.py
+ start:
+ implementation: fabric.fabric_plugin.tasks.run_task
+ inputs:
+ tasks_file:
+ default: scripts/tasks.py
+ task_name:
+ default: label_node
+ task_properties:
+ default:
+ hostname: { get_attribute: [ SELF, hostname ] }
+ labels: { get_input: labels }
+ fabric_env:
+ default:
+ host_string: { get_attribute: [ kubernetes_master_host, ip ] }
+ user: { get_input: agent_user }
+ key: { get_secret: agent_key_private }
+ stop:
+ implementation: fabric.fabric_plugin.tasks.run_task
+ inputs:
+ tasks_file:
+ default: scripts/tasks.py
+ task_name:
+ default: stop_node
+ task_properties:
+ default:
+ hostname: { get_attribute: [ SELF, hostname ] }
+ fabric_env:
+ default:
+ host_string: { get_attribute: [ kubernetes_master_host, ip ] }
+ user: { get_input: agent_user }
+ key: { get_secret: agent_key_private }
+ delete:
+ implementation: fabric.fabric_plugin.tasks.run_task
+ inputs:
+ tasks_file:
+ default: scripts/tasks.py
+ task_name:
+ default: delete_node
+ task_properties:
+ default:
+ hostname: { get_attribute: [ SELF, hostname ] }
+ fabric_env:
+ default:
+ host_string: { get_attribute: [ kubernetes_master_host, ip ] }
+ user: { get_input: agent_user }
+ key: { get_secret: agent_key_private }
+
+node_templates:
+
+ kubernetes_master:
+ type: cloudify.nodes.Kubernetes.Master
+ relationships:
+ - type: cloudify.relationships.contained_in
+ target: kubernetes_master_host
+
+ kubernetes_node:
+ type: cloudify.nodes.Kubernetes.Node
+ relationships:
+ - type: cloudify.relationships.contained_in
+ target: kubernetes_node_host
+ - type: cloudify.relationships.depends_on
+ target: kubernetes_master
+
+outputs:
+
+ kubernetes_cluster_bootstrap_token:
+ value: { get_attribute: [ kubernetes_master, bootstrap_token ] }
+
+ kubernetes_cluster_master_ip:
+ value: { get_attribute: [ kubernetes_master, master_ip ] }
+
+ kubernetes-admin_client_certificate_data:
+ value: { get_attribute: [ kubernetes_master, kubernetes-admin_client_certificate_data ] }
+
+ kubernetes-admin_client_key_data:
+ value: { get_attribute: [ kubernetes_master, kubernetes-admin_client_key_data ] }
+
+ kubernetes_certificate_authority_data:
+ value: { get_attribute: [ kubernetes_master, kubernetes_certificate_authority_data ] }
+
+policy_types:
+ scale_policy_type:
+ source: policies/scale.clj
+ properties:
+ policy_operates_on_group:
+ default: true
+ service_selector:
+ description: regular expression that selects the metric to be measured
+ default: ".*"
+ moving_window_size:
+ description: the moving window for individual sources in secs
+ default: 10
+ scale_threshold:
+ description: the value to trigger scaling over aggregrated moving values
+ scale_limit:
+ description: scaling limit
+ default: 10
+ scale_direction:
+ description: scale up ('<') or scale down ('>')
+ default: '<'
+ cooldown_time:
+ description: the time to wait before evaluating again after a scale
+ default: 60
+
+groups: {}
+
+# scale_up_group:
+# members: [kubernetes_node_host]
+# policies:
+# auto_scale_up:
+# type: scale_policy_type
+# properties:
+# policy_operates_on_group: true
+# scale_limit: 6
+# scale_direction: '<'
+# scale_threshold: 30
+# service_selector: .*kubernetes_node_host.*cpu.total.user
+# cooldown_time: 60
+# triggers:
+# execute_scale_workflow:
+# type: cloudify.policies.triggers.execute_workflow
+# parameters:
+# workflow: scale
+# workflow_parameters:
+# delta: 1
+# scalable_entity_name: kubernetes_node_host
+
+# scale_down_group:
+# members: [kubernetes_node_host]
+# policies:
+# auto_scale_down:
+# type: scale_policy_type
+# properties:
+# policy_operates_on_group: true
+# scale_limit: 6
+# scale_direction: '<'
+# scale_threshold: 30
+# service_selector: .*kubernetes_node_host.*cpu.total.user
+# cooldown_time: 60
+# triggers:
+# execute_scale_workflow:
+# type: cloudify.policies.triggers.execute_workflow
+# parameters:
+# workflow: scale
+# workflow_parameters:
+# delta: 1
+# scalable_entity_name: kubernetes_node_host
+
+# heal_group:
+# members: [kubernetes_node_host]
+# policies:
+# simple_autoheal_policy:
+# type: cloudify.policies.types.host_failure
+# properties:
+# service:
+# - .*kubernetes_node_host.*.cpu.total.system
+# - .*kubernetes_node_host.*.process.hyperkube.cpu.percent
+# interval_between_workflows: 60
+# triggers:
+# auto_heal_trigger:
+# type: cloudify.policies.triggers.execute_workflow
+# parameters:
+# workflow: heal
+# workflow_parameters:
+# node_instance_id: { 'get_property': [ SELF, node_id ] }
+# diagnose_value: { 'get_property': [ SELF, diagnose ] }
diff --git a/TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml b/TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml
new file mode 100644
index 0000000000..3219791c0d
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/openstack-blueprint.yaml
@@ -0,0 +1,330 @@
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+tosca_definitions_version: cloudify_dsl_1_3
+
+description: >
+ This blueprint creates a Kubernetes Cluster.
+ It is based on this documentation: https://kubernetes.io/docs/getting-started-guides/kubeadm/
+
+imports:
+ - https://raw.githubusercontent.com/cloudify-cosmo/cloudify-manager/4.1/resources/rest-service/cloudify/types/types.yaml
+ - https://raw.githubusercontent.com/cloudify-cosmo/cloudify-openstack-plugin/2.2.0/plugin.yaml
+ - https://raw.githubusercontent.com/cloudify-incubator/cloudify-utilities-plugin/1.2.5/plugin.yaml
+ - https://raw.githubusercontent.com/cloudify-cosmo/cloudify-fabric-plugin/1.5/plugin.yaml
+ - https://raw.githubusercontent.com/cloudify-cosmo/cloudify-diamond-plugin/1.3.5/plugin.yaml
+ - imports/cloud-config.yaml
+ - imports/kubernetes.yaml
+
+inputs:
+
+ image:
+ description: Image to be used when launching agent VMs
+ default: { get_secret: centos_core_image }
+
+ flavor:
+ description: Flavor of the agent VMs
+ default: { get_secret: large_image_flavor }
+
+ agent_user:
+ description: >
+ User for connecting to agent VMs
+ default: centos
+
+ helm_version:
+ description: helm version to be installed
+ default: v2.7.0
+
+dsl_definitions:
+
+ openstack_config: &openstack_config
+ username: { get_secret: keystone_username }
+ password: { get_secret: keystone_password }
+ tenant_name: { get_secret: keystone_tenant_name }
+ auth_url: { get_secret: keystone_url }
+ region: { get_secret: region }
+
+node_templates:
+
+ nfs_server:
+ type: cloudify.nodes.SoftwareComponent
+ properties:
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ start:
+ implementation: fabric.fabric_plugin.tasks.run_script
+ inputs:
+ script_path: scripts/nfs.sh
+ use_sudo: true
+ process:
+ args:
+ fabric_env:
+ host_string: { get_attribute: [ kubernetes_master_host, ip ] }
+ user: { get_input: agent_user }
+ key: { get_secret: agent_key_private }
+ relationships:
+ - type: cloudify.relationships.contained_in
+ target: kubernetes_master_host
+
+ k8s_tools:
+ type: cloudify.nodes.SoftwareComponent
+ properties:
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ start:
+ implementation: fabric.fabric_plugin.tasks.run_script
+ inputs:
+ script_path: scripts/k8s_tools.sh
+ process:
+ args: [{ get_input: helm_version }]
+ fabric_env:
+ host_string: { get_attribute: [ kubernetes_master_host, ip ] }
+ user: { get_input: agent_user }
+ key: { get_secret: agent_key_private }
+ relationships:
+ - type: cloudify.relationships.contained_in
+ target: kubernetes_master
+
+ kubernetes_master_host:
+ type: cloudify.openstack.nodes.Server
+ properties:
+ openstack_config: *openstack_config
+ agent_config:
+ user: { get_input: agent_user }
+ install_method: remote
+ port: 22
+ key: { get_secret: agent_key_private }
+ server:
+ key_name: ''
+ image: ''
+ flavor: ''
+ management_network_name: { get_property: [ public_network, resource_id ] }
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ create:
+ inputs:
+ args:
+ image: { get_input: image }
+ flavor: { get_input: flavor }
+ userdata: { get_attribute: [ cloudify_host_cloud_config, cloud_config ] }
+ relationships:
+ - target: kubernetes_master_port
+ type: cloudify.openstack.server_connected_to_port
+ - type: cloudify.relationships.depends_on
+ target: cloudify_host_cloud_config
+
+ kubernetes_node_host:
+ type: cloudify.openstack.nodes.Server
+ properties:
+ openstack_config: *openstack_config
+ agent_config:
+ user: { get_input: agent_user }
+ install_method: remote
+ port: 22
+ key: { get_secret: agent_key_private }
+ server:
+ key_name: ''
+ image: ''
+ flavor: ''
+ management_network_name: { get_property: [ private_network, resource_id ] }
+ relationships:
+ - type: cloudify.relationships.contained_in
+ target: k8s_node_scaling_tier
+ - target: kubernetes_node_port
+ type: cloudify.openstack.server_connected_to_port
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ create:
+ inputs:
+ args:
+ image: { get_input: image }
+ flavor: { get_input: flavor }
+ userdata: { get_attribute: [ cloudify_host_cloud_config, cloud_config ] }
+ cloudify.interfaces.monitoring_agent:
+ install:
+ implementation: diamond.diamond_agent.tasks.install
+ inputs:
+ diamond_config:
+ interval: 1
+ start: diamond.diamond_agent.tasks.start
+ stop: diamond.diamond_agent.tasks.stop
+ uninstall: diamond.diamond_agent.tasks.uninstall
+ cloudify.interfaces.monitoring:
+ start:
+ implementation: diamond.diamond_agent.tasks.add_collectors
+ inputs:
+ collectors_config:
+ CPUCollector: {}
+ MemoryCollector: {}
+ LoadAverageCollector: {}
+ DiskUsageCollector:
+ config:
+ devices: x?vd[a-z]+[0-9]*$
+ NetworkCollector: {}
+ ProcessResourcesCollector:
+ config:
+ enabled: true
+ unit: B
+ measure_collector_time: true
+ cpu_interval: 0.5
+ process:
+ hyperkube:
+ name: hyperkube
+
+ kubernetes_security_group:
+ type: cloudify.openstack.nodes.SecurityGroup
+ properties:
+ openstack_config: *openstack_config
+ security_group:
+ name: kubernetes_security_group
+ description: kubernetes master security group
+ rules:
+ - remote_ip_prefix: 0.0.0.0/0
+ port_range_min: 1
+ port_range_max: 65535
+ protocol: tcp
+ direction: ingress
+ ethertype: IPv4
+ - remote_ip_prefix: 0.0.0.0/0
+ port_range_min: 1
+ port_range_max: 65535
+ protocol: tcp
+ direction: egress
+ ethertype: IPv4
+ - remote_ip_prefix: 0.0.0.0/0
+ port_range_min: 1
+ port_range_max: 65535
+ protocol: udp
+ direction: ingress
+ ethertype: IPv4
+ - remote_ip_prefix: 0.0.0.0/0
+ port_range_min: 1
+ port_range_max: 65535
+ protocol: udp
+ direction: egress
+ ethertype: IPv4
+
+ kubernetes_master_port:
+ type: cloudify.openstack.nodes.Port
+ properties:
+ openstack_config: *openstack_config
+ relationships:
+ - type: cloudify.relationships.contained_in
+ target: public_network
+ - type: cloudify.relationships.depends_on
+ target: public_subnet
+ - type: cloudify.openstack.port_connected_to_security_group
+ target: kubernetes_security_group
+ - type: cloudify.openstack.port_connected_to_floating_ip
+ target: kubernetes_master_ip
+
+ kubernetes_node_port:
+ type: cloudify.openstack.nodes.Port
+ properties:
+ openstack_config: *openstack_config
+ relationships:
+ - type: cloudify.relationships.contained_in
+ target: k8s_node_scaling_tier
+ - type: cloudify.relationships.connected_to
+ target: private_network
+ - type: cloudify.relationships.depends_on
+ target: private_subnet
+ - type: cloudify.openstack.port_connected_to_security_group
+ target: kubernetes_security_group
+
+ private_subnet:
+ type: cloudify.openstack.nodes.Subnet
+ properties:
+ openstack_config: *openstack_config
+ use_external_resource: true
+ resource_id: { get_secret: private_subnet_name }
+ relationships:
+ - target: private_network
+ type: cloudify.relationships.contained_in
+
+ private_network:
+ type: cloudify.openstack.nodes.Network
+ properties:
+ openstack_config: *openstack_config
+ use_external_resource: true
+ resource_id: { get_secret: private_network_name }
+
+ public_subnet:
+ type: cloudify.openstack.nodes.Subnet
+ properties:
+ openstack_config: *openstack_config
+ use_external_resource: true
+ resource_id: { get_secret: public_subnet_name }
+ relationships:
+ - target: public_network
+ type: cloudify.relationships.contained_in
+ - target: router
+ type: cloudify.openstack.subnet_connected_to_router
+
+ public_network:
+ type: cloudify.openstack.nodes.Network
+ properties:
+ openstack_config: *openstack_config
+ use_external_resource: true
+ resource_id: { get_secret: public_network_name }
+
+ router:
+ type: cloudify.openstack.nodes.Router
+ properties:
+ openstack_config: *openstack_config
+ use_external_resource: true
+ resource_id: { get_secret: router_name }
+ relationships:
+ - target: external_network
+ type: cloudify.relationships.connected_to
+
+ external_network:
+ type: cloudify.openstack.nodes.Network
+ properties:
+ openstack_config: *openstack_config
+ use_external_resource: true
+ resource_id: { get_secret: external_network_name }
+
+ k8s_node_scaling_tier:
+ type: cloudify.nodes.Root
+
+ kubernetes_master_ip:
+ type: cloudify.openstack.nodes.FloatingIP
+ properties:
+ openstack_config: *openstack_config
+ floatingip:
+ floating_network_name: { get_property: [ external_network, resource_id ] }
+
+groups:
+
+ k8s_node_group:
+ members:
+ - kubernetes_node_host
+ - kubernetes_node_port
+
+policies:
+
+ kubernetes_node_vms_scaling_policy:
+ type: cloudify.policies.scaling
+ properties:
+ default_instances: 6
+ targets: [k8s_node_group]
+
+outputs:
+
+ kubernetes_master_public_ip:
+ value: { get_attribute: [ kubernetes_master_ip, floating_ip_address ] }
diff --git a/TOSCA/kubernetes-cluster-TOSCA/policies/scale.clj b/TOSCA/kubernetes-cluster-TOSCA/policies/scale.clj
new file mode 100644
index 0000000000..a77d2d2422
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/policies/scale.clj
@@ -0,0 +1,66 @@
+;;;; ============LICENSE_START==========================================
+;;;; ===================================================================
+;;;; Copyright (c) 2017 AT&T
+;;;;
+;;;; 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============================================
+
+(where (service #"{{service_selector}}")
+ #(info "got event: " %)
+
+ (where (not (expired? event))
+ (moving-time-window {{moving_window_size}}
+ (fn [events]
+ (let [
+ hostmap (atom {})
+ hostcnt (atom {})
+ ]
+ (do
+ (doseq [m events]
+ (if (nil? (@hostmap (m :host)))
+ (do
+ (swap! hostmap assoc (m :host) (m :metric))
+ (swap! hostcnt assoc (m :host) 1)
+ )
+ (do
+ (swap! hostmap assoc (m :host) (+ (m :metric) (@hostmap (m :host))))
+ (swap! hostcnt assoc (m :host) (inc (@hostcnt (m :host))))
+ )
+ )
+ )
+ (doseq [entry @hostmap]
+ (swap! hostmap assoc (key entry) (/ (val entry) (@hostcnt (key entry))))
+ )
+
+ (let
+ [ hostcnt (count @hostmap)
+ conns (/ (apply + (map (fn [a] (val a)) @hostmap)) hostcnt)
+ cooling (not (nil? (riemann.index/lookup index "scaling" "suspended")))]
+
+ (do
+ (info "cooling=" cooling " scale_direction={{scale_direction}} hostcnt=" hostcnt " scale_threshold={{scale_threshold}} conns=" conns)
+ (if (and (not cooling) ({{scale_direction}} hostcnt {{scale_limit}}) ({{scale_direction}} {{scale_threshold}} conns))
+ (do
+ (info "=== SCALE ===" "{{scale_direction}}")
+ (process-policy-triggers {})
+ (riemann.index/update index {:host "scaling" :service "suspended" :time (unix-time) :description "cooldown flag" :metric 0 :ttl {{cooldown_time}} :state "ok"})
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+)
diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/create.py b/TOSCA/kubernetes-cluster-TOSCA/scripts/create.py
new file mode 100644
index 0000000000..e48153917c
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/create.py
@@ -0,0 +1,93 @@
+#!/usr/bin/env python
+
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+# This tack will be triggered after VM created. It will check whether docker is up and running.
+
+import subprocess
+from cloudify import ctx
+from cloudify.exceptions import OperationRetry
+
+
+def check_command(command):
+
+ try:
+ process = subprocess.Popen(
+ command.split()
+ )
+ except OSError:
+ return False
+
+ output, error = process.communicate()
+
+ ctx.logger.debug('command: {0} '.format(command))
+ ctx.logger.debug('output: {0} '.format(output))
+ ctx.logger.debug('error: {0} '.format(error))
+ ctx.logger.debug('process.returncode: {0} '.format(process.returncode))
+
+ if process.returncode:
+ ctx.logger.error('Running `{0}` returns error.'.format(command))
+ return False
+
+ return True
+
+
+def execute_command(_command):
+
+ ctx.logger.debug('_command {0}.'.format(_command))
+
+ subprocess_args = {
+ 'args': _command.split(),
+ 'stdout': subprocess.PIPE,
+ 'stderr': subprocess.PIPE
+ }
+
+ ctx.logger.debug('subprocess_args {0}.'.format(subprocess_args))
+
+ process = subprocess.Popen(**subprocess_args)
+ output, error = process.communicate()
+
+ ctx.logger.debug('command: {0} '.format(_command))
+ ctx.logger.debug('error: {0} '.format(error))
+ ctx.logger.debug('process.returncode: {0} '.format(process.returncode))
+
+ if process.returncode:
+ ctx.logger.error('Running `{0}` returns error.'.format(_command))
+ return False
+
+ return output
+
+
+if __name__ == '__main__':
+
+ # Check if Docker PS works
+ docker = check_command('docker ps')
+ if not docker:
+ raise OperationRetry(
+ 'Docker is not present on the system.')
+ ctx.logger.info('Docker is present on the system.')
+
+ # Next check if Cloud Init is running.
+ finished = False
+ ps = execute_command('ps -ef')
+ for line in ps.split('\n'):
+ if '/usr/bin/python /usr/bin/cloud-init modules' in line:
+ raise OperationRetry(
+ 'You provided a Cloud-init Cloud Config to configure instances. '
+ 'Waiting for Cloud-init to complete.')
+ ctx.logger.info('Cloud-init finished.')
diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh b/TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh
new file mode 100644
index 0000000000..2eee89e78b
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/k8s_tools.sh
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+# this script will install dashboard on k8s master.
+
+#install heapster
+git clone -b release-1.5 https://github.com/kubernetes/heapster.git
+
+kubectl create -f heapster/deploy/kube-config/influxdb/
+kubectl create -f heapster/deploy/kube-config/rbac/heapster-rbac.yaml
+
+#install dashboard
+kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml
+
+##Change spec.type from ClusterIP to NodePort and save.
+kubectl get svc kubernetes-dashboard --namespace=kube-system -o yaml | sed 's/type: ClusterIP/type: NodePort/' | kubectl replace -f -
+
+cat <<EOF >>dashboard-admin.yaml
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: ClusterRoleBinding
+metadata:
+ name: kubernetes-dashboard
+ labels:
+ k8s-app: kubernetes-dashboard
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: cluster-admin
+subjects:
+- kind: ServiceAccount
+ name: kubernetes-dashboard
+ namespace: kube-system
+EOF
+
+kubectl create -f dashboard-admin.yaml
+
+#install helm
+wget http://storage.googleapis.com/kubernetes-helm/helm-$1-linux-amd64.tar.gz
+tar -zxvf helm-$1-linux-amd64.tar.gz
+sudo mv linux-amd64/helm /usr/bin/helm
+
+kubectl -n kube-system create sa tiller
+kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
+helm init --service-account tiller \ No newline at end of file
diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/configure.py b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/configure.py
new file mode 100644
index 0000000000..0ec2cb2e34
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/configure.py
@@ -0,0 +1,175 @@
+#!/usr/bin/env python
+
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+# This script will be executed on Kubernetes master host. It will initialize the master, and install a pod network.
+
+import pwd
+import grp
+import os
+import re
+import getpass
+import subprocess
+from cloudify import ctx
+from cloudify.exceptions import OperationRetry
+from cloudify_rest_client.exceptions import CloudifyClientError
+
+JOIN_COMMAND_REGEX = '^kubeadm join[\sA-Za-z0-9\.\:\-\_]*'
+BOOTSTRAP_TOKEN_REGEX = '[a-z0-9]{6}.[a-z0-9]{16}'
+IP_PORT_REGEX = '[0-9]+(?:\.[0-9]+){3}:[0-9]+'
+NOT_SHA_REGEX='^(?!.*sha256)'
+JCRE_COMPILED = re.compile(JOIN_COMMAND_REGEX)
+BTRE_COMPILED = re.compile(BOOTSTRAP_TOKEN_REGEX)
+IPRE_COMPILED = re.compile(IP_PORT_REGEX)
+SHA_COMPILED=re.compile(NOT_SHA_REGEX)
+
+def execute_command(_command):
+
+ ctx.logger.debug('_command {0}.'.format(_command))
+
+ subprocess_args = {
+ 'args': _command.split(),
+ 'stdout': subprocess.PIPE,
+ 'stderr': subprocess.PIPE
+ }
+
+ ctx.logger.debug('subprocess_args {0}.'.format(subprocess_args))
+
+ process = subprocess.Popen(**subprocess_args)
+ output, error = process.communicate()
+
+ ctx.logger.debug('command: {0} '.format(_command))
+ ctx.logger.debug('output: {0} '.format(output))
+ ctx.logger.debug('error: {0} '.format(error))
+ ctx.logger.debug('process.returncode: {0} '.format(process.returncode))
+
+ if process.returncode:
+ ctx.logger.error('Running `{0}` returns error.'.format(_command))
+ return False
+
+ return output
+
+
+def cleanup_and_retry():
+ reset_cluster_command = 'sudo kubeadm reset'
+ output = execute_command(reset_cluster_command)
+ ctx.logger.info('reset_cluster_command {1}'.format(reset_cluster_command, output))
+ raise OperationRetry('Restarting kubernetes because of a problem.')
+
+
+def configure_admin_conf():
+ # Add the kubeadmin config to environment
+ agent_user = getpass.getuser()
+ uid = pwd.getpwnam(agent_user).pw_uid
+ gid = grp.getgrnam('docker').gr_gid
+ admin_file_dest = os.path.join(os.path.expanduser('~'), 'admin.conf')
+
+ execute_command('sudo cp {0} {1}'.format('/etc/kubernetes/admin.conf', admin_file_dest))
+ execute_command('sudo chown {0}:{1} {2}'.format(uid, gid, admin_file_dest))
+
+ with open(os.path.join(os.path.expanduser('~'), '.bashrc'), 'a') as outfile:
+ outfile.write('export KUBECONFIG=$HOME/admin.conf')
+ os.environ['KUBECONFIG'] = admin_file_dest
+
+
+def setup_secrets(_split_master_port, _bootstrap_token):
+ master_ip = split_master_port[0]
+ master_port = split_master_port[1]
+ ctx.instance.runtime_properties['master_ip'] = _split_master_port[0]
+ ctx.instance.runtime_properties['master_port'] = _split_master_port[1]
+ ctx.instance.runtime_properties['bootstrap_token'] = _bootstrap_token
+ from cloudify import manager
+ cfy_client = manager.get_rest_client()
+
+ _secret_key = 'kubernetes_master_ip'
+ if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1:
+ cfy_client.secrets.create(key=_secret_key, value=master_ip)
+ else:
+ cfy_client.secrets.update(key=_secret_key, value=master_ip)
+ ctx.logger.info('Set secret: {0}.'.format(_secret_key))
+
+ _secret_key = 'kubernetes_master_port'
+ if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1:
+ cfy_client.secrets.create(key=_secret_key, value=master_port)
+ else:
+ cfy_client.secrets.update(key=_secret_key, value=master_port)
+ ctx.logger.info('Set secret: {0}.'.format(_secret_key))
+
+ _secret_key = 'bootstrap_token'
+ if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1:
+ cfy_client.secrets.create(key=_secret_key, value=_bootstrap_token)
+ else:
+ cfy_client.secrets.update(key=_secret_key, value=_bootstrap_token)
+ ctx.logger.info('Set secret: {0}.'.format(_secret_key))
+
+
+if __name__ == '__main__':
+
+ ctx.instance.runtime_properties['KUBERNETES_MASTER'] = True
+ cniCommand1=subprocess.Popen(["sudo", "sysctl", 'net.bridge.bridge-nf-call-iptables=1'], stdout=subprocess.PIPE)
+ # Start Kubernetes Master
+ ctx.logger.info('Attempting to start Kubernetes master.')
+ start_master_command = 'sudo kubeadm init'
+ start_output = execute_command(start_master_command)
+ ctx.logger.debug('start_master_command output: {0}'.format(start_output))
+ # Check if start succeeded.
+ if start_output is False or not isinstance(start_output, basestring):
+ ctx.logger.error('Kubernetes master failed to start.')
+ cleanup_and_retry()
+ ctx.logger.info('Kubernetes master started successfully.')
+
+ # Slice and dice the start_master_command start_output.
+ ctx.logger.info('Attempting to retrieve Kubernetes cluster information.')
+ split_start_output = \
+ [line.strip() for line in start_output.split('\n') if line.strip()]
+ del line
+
+ ctx.logger.debug(
+ 'Kubernetes master start output, split and stripped: {0}'.format(
+ split_start_output))
+ split_join_command = ''
+ for li in split_start_output:
+ ctx.logger.debug('li in split_start_output: {0}'.format(li))
+ if re.match(JCRE_COMPILED, li):
+ split_join_command = re.split('\s', li)
+ del li
+ ctx.logger.info('split_join_command: {0}'.format(split_join_command))
+
+ if not split_join_command:
+ ctx.logger.error('No join command in split_start_output: {0}'.format(split_join_command))
+ cleanup_and_retry()
+
+ for li in split_join_command:
+ ctx.logger.info('Sorting bits and pieces: li: {0}'.format(li))
+ if (re.match(BTRE_COMPILED, li) and re.match(SHA_COMPILED, li)):
+ bootstrap_token = li
+ elif re.match(IPRE_COMPILED, li):
+ split_master_port = li.split(':')
+ setup_secrets(split_master_port, bootstrap_token)
+ configure_admin_conf()
+
+ weaveCommand1=subprocess.Popen(["kubectl", "version"], stdout=subprocess.PIPE)
+ weaveCommand2=subprocess.Popen(["base64"],stdin=weaveCommand1.stdout, stdout=subprocess.PIPE)
+ kubever = weaveCommand2.communicate()[0]
+ kubever = kubever.replace('\n', '').replace('\r', '')
+ ctx.logger.info("kubever :"+kubever)
+ weaveURL=('https://cloud.weave.works/k8s/net?k8s-version={0}'.format(kubever))
+ ctx.logger.info("weaveURL:" + weaveURL)
+ weaveCommand4=subprocess.Popen(["kubectl","apply","-f",weaveURL],stdout=subprocess.PIPE)
+ weaveResult= weaveCommand4.communicate()[0]
+ ctx.logger.info("weaveResult :"+weaveResult)
diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/start.py b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/start.py
new file mode 100644
index 0000000000..9a9fd8f11a
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_master/start.py
@@ -0,0 +1,153 @@
+#!/usr/bin/env python
+
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+#This script will be execute on master host. This script will check whether Kube-DNS is running, and set secrets in cloudify.
+
+import os
+import subprocess
+import pip
+try:
+ import yaml
+except ImportError:
+ pip.main(['install', 'pyyaml'])
+ import yaml
+
+from cloudify import ctx
+from cloudify.exceptions import RecoverableError
+from cloudify import manager
+
+
+def execute_command(_command):
+
+ ctx.logger.debug('_command {0}.'.format(_command))
+
+ subprocess_args = {
+ 'args': _command.split(),
+ 'stdout': subprocess.PIPE,
+ 'stderr': subprocess.PIPE
+ }
+
+ ctx.logger.debug('subprocess_args {0}.'.format(subprocess_args))
+
+ process = subprocess.Popen(**subprocess_args)
+ output, error = process.communicate()
+
+ ctx.logger.debug('command: {0} '.format(_command))
+ ctx.logger.debug('output: {0} '.format(output))
+ ctx.logger.debug('error: {0} '.format(error))
+ ctx.logger.debug('process.returncode: {0} '.format(process.returncode))
+
+ if process.returncode:
+ ctx.logger.error('Running `{0}` returns error.'.format(_command))
+ return False
+
+ return output
+
+
+def check_kubedns_status(_get_pods):
+
+ ctx.logger.debug('get_pods: {0} '.format(_get_pods))
+
+ for pod_line in _get_pods.split('\n'):
+ ctx.logger.debug('pod_line: {0} '.format(pod_line))
+ try:
+ _namespace, _name, _ready, _status, _restarts, _age = pod_line.split()
+ except ValueError:
+ pass
+ else:
+ if 'kube-dns' in _name and 'Running' not in _status:
+ return False
+ elif 'kube-dns' in _name and 'Running' in _status:
+ return True
+ return False
+
+
+if __name__ == '__main__':
+
+ cfy_client = manager.get_rest_client()
+
+ # Checking if the Kubernetes DNS service is running (last step).
+ admin_file_dest = os.path.join(os.path.expanduser('~'), 'admin.conf')
+ os.environ['KUBECONFIG'] = admin_file_dest
+ get_pods = execute_command('kubectl get pods --all-namespaces')
+ if not check_kubedns_status(get_pods):
+ raise RecoverableError('kube-dns not Running')
+
+ # Storing the K master configuration.
+ kubernetes_master_config = {}
+ with open(admin_file_dest, 'r') as outfile:
+ try:
+ kubernetes_master_config = yaml.load(outfile)
+ except yaml.YAMLError as e:
+ RecoverableError(
+ 'Unable to read Kubernetes Admin file: {0}: {1}'.format(
+ admin_file_dest, str(e)))
+ ctx.instance.runtime_properties['configuration_file_content'] = \
+ kubernetes_master_config
+
+ clusters = kubernetes_master_config.get('clusters')
+ _clusters = {}
+ for cluster in clusters:
+ __name = cluster.get('name')
+ _cluster = cluster.get('cluster', {})
+ _secret_key = '%s_certificate_authority_data' % __name
+ if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1:
+ cfy_client.secrets.create(key=_secret_key, value=_cluster.get('certificate-authority-data'))
+ ctx.logger.info('Set secret: {0}.'.format(_secret_key))
+ else:
+ cfy_client.secrets.update(key=_secret_key, value=_cluster.get('certificate-authority-data'))
+ ctx.instance.runtime_properties['%s_certificate_authority_data' % __name] = _cluster.get('certificate-authority-data')
+ _clusters[__name] = _cluster
+ del __name
+
+ contexts = kubernetes_master_config.get('contexts')
+ _contexts = {}
+ for context in contexts:
+ __name = context.get('name')
+ _context = context.get('context', {})
+ _contexts[__name] = _context
+ del __name
+
+ users = kubernetes_master_config.get('users')
+ _users = {}
+ for user in users:
+ __name = user.get('name')
+ _user = user.get('user', {})
+ _secret_key = '%s_client_certificate_data' % __name
+ if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1:
+ cfy_client.secrets.create(key=_secret_key, value=_user.get('client-certificate-data'))
+ ctx.logger.info('Set secret: {0}.'.format(_secret_key))
+ else:
+ cfy_client.secrets.update(key=_secret_key, value=_user.get('client-certificate-data'))
+ _secret_key = '%s_client_key_data' % __name
+ if cfy_client and not len(cfy_client.secrets.list(key=_secret_key)) == 1:
+ cfy_client.secrets.create(key=_secret_key, value=_user.get('client-key-data'))
+ ctx.logger.info('Set secret: {0}.'.format(_secret_key))
+ else:
+ cfy_client.secrets.update(key=_secret_key, value=_user.get('client-key-data'))
+ ctx.instance.runtime_properties['%s_client_certificate_data' % __name] = _user.get('client-certificate-data')
+ ctx.instance.runtime_properties['%s_client_key_data' % __name] = _user.get('client-key-data')
+ _users[__name] = _user
+ del __name
+
+ ctx.instance.runtime_properties['kubernetes'] = {
+ 'clusters': _clusters,
+ 'contexts': _contexts,
+ 'users': _users
+ }
diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_node/configure.py b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_node/configure.py
new file mode 100644
index 0000000000..c08fa7017d
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/kubernetes_node/configure.py
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+# Afther K8s master up and running. This script will be triggered in each worker nodes. It will join the nodes, and mount the NFS directory.
+
+import subprocess
+from cloudify import ctx
+from cloudify.exceptions import NonRecoverableError
+
+START_COMMAND = 'sudo kubeadm join --token {0} {1}:{2}'
+
+
+def execute_command(_command):
+
+ ctx.logger.debug('_command {0}.'.format(_command))
+
+ subprocess_args = {
+ 'args': _command.split(),
+ 'stdout': subprocess.PIPE,
+ 'stderr': subprocess.PIPE
+ }
+
+ ctx.logger.debug('subprocess_args {0}.'.format(subprocess_args))
+
+ process = subprocess.Popen(**subprocess_args)
+ output, error = process.communicate()
+
+ ctx.logger.debug('command: {0} '.format(_command))
+ ctx.logger.debug('output: {0} '.format(output))
+ ctx.logger.debug('error: {0} '.format(error))
+ ctx.logger.debug('process.returncode: {0} '.format(process.returncode))
+
+ if process.returncode:
+ ctx.logger.error('Running `{0}` returns error.'.format(_command))
+ return False
+
+ return output
+
+
+if __name__ == '__main__':
+
+ hostname = execute_command('hostname')
+ ctx.instance.runtime_properties['hostname'] = hostname.rstrip('\n')
+
+ # Get the master cluster info.
+ masters = \
+ [x for x in ctx.instance.relationships if
+ x.target.instance.runtime_properties.get(
+ 'KUBERNETES_MASTER', False)]
+ if len(masters) != 1:
+ raise NonRecoverableError(
+ 'Currently, a Kubernetes node must have a '
+ 'dependency on one Kubernetes master.')
+ master = masters[0]
+ bootstrap_token = \
+ master.target.instance.runtime_properties['bootstrap_token']
+ master_ip = \
+ master.target.instance.runtime_properties['master_ip']
+ master_port = \
+ master.target.instance.runtime_properties['master_port']
+
+ # Join the cluster.
+ cniCommand1=subprocess.Popen(["sudo", "sysctl", 'net.bridge.bridge-nf-call-iptables=1'], stdout=subprocess.PIPE)
+ join_command = \
+ 'sudo kubeadm join --token {0} {1}:{2}'.format(
+ bootstrap_token, master_ip, master_port)
+ execute_command(join_command)
+
+ #mount
+ mount_command=\
+ 'sudo mount -t nfs -o proto=tcp,port=2049 {0}:/dockerdata-nfs /dockerdata-nfs'.format(master_ip)
+ execute_command(mount_command) \ No newline at end of file
diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/nfs.sh b/TOSCA/kubernetes-cluster-TOSCA/scripts/nfs.sh
new file mode 100644
index 0000000000..c4ea3581bb
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/nfs.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+# this script will set the NFS server on k8s master.
+
+mkdir -p /dockerdata-nfs
+chmod 777 /dockerdata-nfs
+yum -y install nfs-utils
+systemctl enable nfs-server.service
+systemctl start nfs-server.service
+echo "/dockerdata-nfs *(rw,no_root_squash,no_subtree_check)" |sudo tee --append /etc/exports
+echo "/home/centos/dockerdata-nfs /dockerdata-nfs none bind 0 0" |sudo tee --append /etc/fstab
+exportfs -a \ No newline at end of file
diff --git a/TOSCA/kubernetes-cluster-TOSCA/scripts/tasks.py b/TOSCA/kubernetes-cluster-TOSCA/scripts/tasks.py
new file mode 100644
index 0000000000..cb2b3a0c85
--- /dev/null
+++ b/TOSCA/kubernetes-cluster-TOSCA/scripts/tasks.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# 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============================================
+
+# here we define some tasks
+
+from fabric.api import run
+
+
+def label_node(labels, hostname):
+ if labels:
+ label_list = []
+ for key, value in labels.items():
+ label_pair_string = '%s=%s' % (key, value)
+ label_list.append(label_pair_string)
+ label_string = ' '.join(label_list)
+ command = 'kubectl label nodes %s %s' % (hostname, label_string)
+ run(command)
+
+
+def stop_node(hostname):
+ command = 'kubectl drain %s' % (hostname)
+ run(command)
+
+
+def delete_node(hostname):
+ command = 'kubectl delete no %s' % (hostname)
+ run(command)
diff --git a/docs/OOM Project Description/oom_project_description.rst b/docs/OOM Project Description/oom_project_description.rst
index 18309ca74c..ba9de5f1f7 100644
--- a/docs/OOM Project Description/oom_project_description.rst
+++ b/docs/OOM Project Description/oom_project_description.rst
@@ -5,6 +5,10 @@
ONAP Operations Manager Project
###############################
+.. contents::
+ :depth: 3
+..
+
Introduction
============
@@ -22,46 +26,80 @@ its life cycle while using hardware resources efficiently. 
Quick Start Guide
=================
-Once a kubernetes environment is available (check out `ONAP on Kubernetes <https://wiki.onap.org/display/DW/ONAP+on+Kubernetes>`__ if you're
-getting started) and the deployment artifacts have been customized for your location, ONAP is ready to be installed. 
+Pre-requisites
+--------------
+
+* Your Kubernetes environment must be available. For more information see, `ONAP on Kubernetes <https://wiki.onap.org/display/DW/ONAP+on+Kubernetes>`__.
+* Deployment artifacts are customized for your location.
+
+**Step 1**
+
+Review and optionally change configuration parameters:
+
+Setup the `/oom/kubernetes/config/onap-parameters.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters.yaml;h=7ddaf4d4c3dccf2fad515265f0da9c31ec0e64b1;hb=refs/heads/master>`__ file with key-value pairs specific to your OpenStack environment.
+
+OR
+
+There is a `sample <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters-sample.yaml;h=3a74beddbbf7f9f9ec8e5a6abaecb7cb238bd519;hb=refs/heads/master>`__ that may help you out or even be usable directly if you don't intend to actually use OpenStack resources.
+
+**Step 2**
+
+In-order to be able to support multiple ONAP instances within a single kubernetes environment, a configuration set is required. To do this, execute the `createConfig.sh <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/createConfig.sh;h=f226ccae47ca6de15c1da49be4b8b6de974895ed;hb=refs/heads/master>`__ script::
+
+ oom/kubernetes/config/createConfig.sh -n onap
+
+Where:
+
+* onap' refers to the name of the instance. This serves as the Namespace prefix for each deployed ONAP component (for example, onap-mso).
+
+**Step 3**
+
+The bash script `createAll.bash <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/oneclick/createAll.bash;h=5e5f2dc76ea7739452e757282e750638b4e3e1de;hb=refs/heads/master>`__ is used to create an ONAP deployment with kubernetes. It has two primary functions:
+
+* Creating the namespaces used to encapsulate the ONAP components, and
+* Creating the services, pods and containers within each of these namespaces that provide the core functionality of ONAP.
+
+Before you execute the createAll.bash. script, pod config-init (`pod-config-init.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/pod-config-init.yaml;h=b1285ce21d61815c082f6d6aa3c43d00561811c7;hb=refs/heads/master>`__) may need editing to match your environment and deployment into the default namespace.
+
+To deploy the containers and create your ONAP system, execute the following command::
+
+ oom/kubernetes/oneclick/createAll.bash -n onap
+
+Additional information on usage of createAll.bash
+-------------------------------------------------
+
+Namespaces provide isolation between ONAP components as ONAP release 1.0 contains duplicate application (for example, mariadb) and port usage.
-The first step is to setup
-the \ `/oom/kubernetes/config/onap-parameters.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters.yaml;h=7ddaf4d4c3dccf2fad515265f0da9c31ec0e64b1;hb=refs/heads/master>`__
-file with key-value pairs specific to your OpenStack environment.  There is a
-`sample <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters-sample.yaml;h=3a74beddbbf7f9f9ec8e5a6abaecb7cb238bd519;hb=refs/heads/master>`__
-that may help you out or even be usable directly if you don't intend to actually use OpenStack resources.
+As such createAll.bash requires the user to enter a namespace prefix string that can be used to separate multiple deployments of onap. The result will be set of 10 namespaces (for example, onap-sdc, onap-aai, onap-mso, onap-message-router, onap-robot, onap-vid, onap-sdnc, onap-portal, onap-policy, onap-appc) being created within the kubernetes environment.
-In-order to be able to support multiple ONAP instances within a single kubernetes environment a configuration set is required.
- The `createConfig.sh <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/createConfig.sh;h=f226ccae47ca6de15c1da49be4b8b6de974895ed;hb=refs/heads/master>`__ script
-is used to do this.::
+Deploying multiple ONAP instances within the same Kubernetes cluster
+--------------------------------------------------------------------
- > ./createConfig.sh -n onapTrial
+To deploy multiple ONAP instances, you must specify the number of Instances you would like to create in a Kubernetes cluster using createAllbash.
-The bash script 
-\ `createAll.bash <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/oneclick/createAll.bash;h=5e5f2dc76ea7739452e757282e750638b4e3e1de;hb=refs/heads/master>`__ is
-used to create an ONAP deployment with kubernetes. It has two primary
-functions:
+This is currently required due to the use of NodePort ranges. NodePorts allow external IP:Port access to containers that are running inside a Kubernetes cluster.
-- Creating the namespaces used to encapsulate the ONAP components, and
+To create multiple instances of an ONAP deployment in the cluster, use the following commands::
+
+ oom/kubernetes/config/createConfig.sh -n onap
+
+ oom/kubernetes/oneclick/createAll.bash -n onap -i 2
+
+Where:
-- Creating the services, pods and containers within each of these
- namespaces that provide the core functionality of ONAP.
+* 'onap' refers to the name of the instance.
+* ‘i 2’ refers to the number of instances of an ONAP deployment in the cluster.
-To deploy the containers and create your ONAP system enter::
+To delete a deployed instance
+-----------------------------
- > ./createAll.bash -n onapTrial
+To delete a deployed instance, use the following command::
+
+ oom/kubernetes/oneclick/deleteAll.bash -n onap
+
+**Note**: Deleting the runtime containers does not remove the configuration created in step 2.
-Namespaces provide isolation between ONAP components as ONAP release 1.0
-contains duplicate application (e.g. mariadb) and port usage. As
-such createAll.bash requires the user to enter a namespace prefix string
-that can be used to separate multiple deployments of onap. The result
-will be set of 10 namespaces (e.g. onapTrial-sdc, onapTrial-aai,
-onapTrial-mso, onapTrial-message-router, onapTrial-robot, onapTrial-vid,
-onapTrial-sdnc, onapTrial-portal, onapTrial-policy, onapTrial-appc)
-being created within the kubernetes environment.  A prerequisite pod
-config-init (\ `pod-config-init.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/pod-config-init.yaml;h=b1285ce21d61815c082f6d6aa3c43d00561811c7;hb=refs/heads/master>`__)
-may need editing to match your environment and deployment into the
-default namespace before running createAll.bash.
+For more information on OOM project documentation, refer to `Quick Start Guide on Wiki <https://wiki.onap.org/display/DW/ONAP+Operations+Manager+Project#ONAPOperationsManagerProject-QuickStartGuide>`__.
Demo Video
----------
diff --git a/docs/OOM User Guide/oom_user_guide.rst b/docs/OOM User Guide/oom_user_guide.rst
index ee3b2f1430..00ebccbfa3 100644
--- a/docs/OOM User Guide/oom_user_guide.rst
+++ b/docs/OOM User Guide/oom_user_guide.rst
@@ -10,10 +10,10 @@ Introduction
============
The ONAP Operations Manager (OOM) is responsible for life-cycle
-management of the ONAP platform itself; components such as MSO, SDNC,
+management of the ONAP platform itself; components such as SO, SDNC,
etc. It is not responsible for the management of services, VNFs or
infrastructure instantiated by ONAP or used by ONAP to host such
-services or VNFs. OOM uses the open-source Kubernetes container
+services or VNFs. OOM uses the open source Kubernetes container
management system as a means to manage the Docker containers that
compose ONAP where the containers are hosted either directly on
bare-metal servers or on VMs hosted by a 3rd party management system.
@@ -21,10 +21,10 @@ OOM ensures that ONAP is easily deployable and maintainable throughout
its life cycle while using hardware resources efficiently. There are two
deployment options for OOM:
-- A minimal deployment where single instances of the ONAP components
+- *A minimal deployment* where single instances of the ONAP components
are instantiated with no resource reservations, and
-- | A production deployment where ONAP components are deployed with
+- | *A production deployment* where ONAP components are deployed with
redundancy and anti-affinity rules such that single faults do not
interrupt ONAP operation.
| When deployed as containers directly on bare-metal, the minimal
@@ -34,14 +34,14 @@ deployment options for OOM:
resources as determined by anti-affinity and geo-redundancy
requirements.
-OOM deployments of ONAP provide many benefits:
+**OOM deployments of ONAP provide many benefits:**
-- Life-cycle Management Kubernetes is a comprehensive system for
+- *Life-cycle management*. Kubernetes is a comprehensive system for
managing the life-cycle of containerized applications. Its use as a
platform manager will ease the deployment of ONAP, provide fault
tolerance and horizontal scalability, and enable seamless upgrades.
-- Hardware Efficiency ONAP can be deployed on a single host using less
+- *Hardware Efficiency*. ONAP can be deployed on a single host using less
than 32GB of memory. As opposed to VMs that require a guest operating
system be deployed along with the application, containers provide
similar application encapsulation with neither the computing, memory
@@ -50,42 +50,42 @@ OOM deployments of ONAP provide many benefits:
be able to create a development deployment of ONAP that can be hosted
on a laptop.
-- Rapid Deployment With locally cached images ONAP can be deployed from
+- *Rapid deployment*. With locally cached images, ONAP can be deployed from
scratch in 7 minutes. Eliminating the guest operating system results
in containers coming into service much faster than a VM equivalent.
This advantage can be particularly useful for ONAP where rapid
reaction to inevitable failures will be critical in production
environments.
-- Portability OOM takes advantage of Kubernetes' ability to be hosted
+- *Portability*. OOM takes advantage of Kubernetes' ability to be hosted
on multiple hosted cloud solutions like Google Compute Engine, AWS
EC2, Microsoft Azure, CenturyLink Cloud, IBM Bluemix and more.
-- Minimal Impact As ONAP is already deployed with Docker containers
+- *Minimal impact*. As ONAP is already deployed with Docker containers
minimal changes are required to the components themselves when
deployed with OOM.
-Features of OOM:
+**Features of OOM:**
-- Platform Deployment Automated deployment/un-deployment of ONAP
- instance(s) / Automated deployment/un-deployment of individual
- platform components using docker containers & kubernetes
+- *Platform Deployment*. Automated deployment/un-deployment of ONAP
+ instance(s) / automated deployment/un-deployment of individual
+ platform components using Docker containers & Kubernetes.
-- Platform Monitoring & healing Monitor platform state, Platform health
- checks, fault tolerance and self-healing using docker containers &
- kubernetes
+- *Platform Monitoring & Healing*. Monitor platform state, platform health
+ checks, fault tolerance and self-healing using Docker containers &
+ Kubernetes.
-- Platform Scaling Platform horizontal scalability through using docker
- containers & kubernetes
+- *Platform Scaling*. Platform horizontal scalability through using Docker
+ containers & Kubernetes.
-- Platform Upgrades Platform upgrades using docker containers &
- kubernetes
+- *Platform Upgrades*. Platform upgrades using Docker containers &
+ Kubernetes.
-- Platform Configurations Manage overall platform components
- configurations using docker containers & kubernetes
+- *Platform Configurations*. Manage overall platform components
+ configurations using Docker containers & Kubernetes.
-- | Platform migrations Manage migration of platform components using
- docker containers & kubernetes
+- | *Platform migrations*. Manage migration of platform components using
+ Docker containers & Kubernetes.
| Please note that the ONAP Operations Manager does not provide
support for containerization of services or VNFs that are managed
by ONAP; the OOM orchestrates the life-cycle of the ONAP platform
@@ -125,7 +125,7 @@ stopped and deleted. These life-cycle operations are managed by
the \ `Kubernetes <https://kubernetes.io/>`__ container management
system which maintains the desired state of the container system as
described by one or more deployment descriptors - similar in concept to
-OpenStack HEAT Orchestration Templates. The following sections describe
+OpenStack Heat Orchestration Templates. The following sections describe
the fundamental objects managed by Kubernetes, the network these
components use to communicate with each other and other entities outside
of ONAP and the templates that describe the configuration and desired
@@ -137,7 +137,7 @@ ONAP Components to Kubernetes Object Relationships
Kubernetes deployments consist of multiple objects:
- nodes - a worker machine - either physical or virtual - that hosts
- multiple containers managed by kubernetes.
+ multiple containers managed by Kubernetes.
- services - an abstraction of a logical set of pods that provide a
micro-service.
@@ -152,7 +152,7 @@ The relationship between these objects is shown in the following figure:
.. figure:: ../kubernetes_objects.png
-OOM uses these kubernetes objects as described in the following
+OOM uses these Kubernetes objects as described in the following
sections.
Nodes
@@ -181,15 +181,15 @@ OOM works with both physical and virtual worker machines.  
to use
`Rancher <http://rancher.com/docs/rancher/v1.6/en/quick-start-guide/>`__
along with `Helm <https://github.com/kubernetes/helm/releases>`__ to
- associate hosts with a kubernetes cluster.
+ associate hosts with a Kubernetes cluster.
Pods
~~~~
A group of containers with shared storage and networking can be grouped
-together into a kubernetes pod.  All of the containers within a pod are
+together into a Kubernetes pod.  All of the containers within a pod are
co-located and co-scheduled so they operate as a single unit.  Within
-ONAP Amsterdam release, pods are mapped one-to-one to docker containers
+ONAP Amsterdam release, pods are mapped one-to-one to Docker containers
although this may change in the future.  As explained in the Services
section below the use of Pods within each ONAP component is abstracted
from other ONAP components.
@@ -197,13 +197,13 @@ from other ONAP components.
Services
~~~~~~~~
-OOM uses the kubernetes service abstraction to provide a consistent
+OOM uses the Kubernetes service abstraction to provide a consistent
access point for each of the ONAP components independent of the pod or
-container architecture of that component.  For example, the SDNC
+container architecture of that component. For example, the SDNC
component may introduce OpenDaylight clustering as some point and change
the number of pods in this component to three or more but this change
will be isolated from the other ONAP components by the service
-abstraction.  A service can include a load balancer on its ingress to
+abstraction. A service can include a load balancer on its ingress to
distribute traffic between the pods and even react to dynamic changes in
the number of pods if they are part of a replica set (see the MSO
example below for a brief explanation of replica sets).
@@ -213,7 +213,7 @@ Persistent Volumes
As pods and containers are ephemeral, any data that must be persisted
across pod restart events needs to be stored outside of the pod in a
-persistent volume(s).  Kubernetes supports a wide variety of types of
+persistent volume(s). Kubernetes supports a wide variety of types of
persistent volumes such as: Fibre Channel, NFS, iSCSI, CephFS, and
GlusterFS (for a full list look
`here <https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes>`__)
@@ -231,7 +231,7 @@ OOM Networking with Kubernetes
Name Spaces
~~~~~~~~~~~
-Within the namespaces are kubernete's services that provide external
+Within the namespaces are Kubernete's services that provide external
connectivity to pods that host Docker containers. The following is a
list of the namespaces and the services within:
@@ -378,8 +378,8 @@ Kubernetes Deployment Specifications for ONAP
Each of the ONAP components are deployed as described in a deployment
specification.  This specification documents key parameters and
-dependencies between the pods of an ONAP components such that kubernetes
-is able to repeatably startup the component.  The components artifacts
+dependencies between the pods of an ONAP components such that Kubernetes
+is able to repeatably startup the component. The components artifacts
are stored here in the oom/kubernetes repo in \ `ONAP
gerrit <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes;h=4597d09dbce86d7543174924322435c30cb5b0ee;hb=refs/heads/master>`__.
The mso project is a relatively simple example, so let's start there.
@@ -473,20 +473,20 @@ specification for a mariadb pod.
The spec section starts off with 'replicas: 1' which states that only 1
'replica' will be use here.  If one was to change the number of replicas
-to 3 for example, kubernetes would attempt to ensure that three replicas
-of this pod are operational at all times.  One can see that in a
+to 3 for example, Kubernetes would attempt to ensure that three replicas
+of this pod are operational at all times. One can see that in a
clustered environment the number of replicas should probably be more
than 1 but for simple deployments 1 is sufficient.
-The selector label is a grouping primitive of kubernetes but this simple
+The selector label is a grouping primitive of Kubernetes but this simple
example doesn't exercise it's full capabilities.
The template/spec section is where the key information required to start
this pod is found.
-- image: is a reference to the location of the docker image in nexus3
+- image: is a reference to the location of the Docker image in nexus3
-- name: is the name of the docker image
+- name: is the name of the Docker image
- env is a section supports the creation of operating system
environment variables within the container and are specified as a set
@@ -501,14 +501,14 @@ this pod is found.
space by creating a 'nodePort' - a mechanism used to resolve port
duplication.
-- readinessProbe: is the mechanism kubernetes uses to determine the
+- readinessProbe: is the mechanism Kubernetes uses to determine the
state of the container. 
- volumes: a location to define volumes required by the container, in
this case configuration and initialization information.
- imagePullSecrets: an key to access the nexus3 repo when pulling
- docker containers.
+ Docker containers.
As one might image, the mso-deployment.yaml file describes the
deployment artifacts of the mso application.  Here are the contents:
@@ -614,7 +614,7 @@ relationships need to be specified.
In this particular init-container, the command '/root/ready.py' will be
executed to determine when mariadb is ready, but this could be a simple
bash script. The image/name section describes where and how to get the
-docker image from the init-container.
+Docker image from the init-container.
To ensure that data isn't lost when an ephemeral container undergoes
life-cycle events (like being restarted), non-volatile or persistent
@@ -656,7 +656,7 @@ mso namespace.
name: "{{ .Values.nsPrefix }}-mso-db"
The last of the four files is the all-services.yaml file which defines
-the kubernetes service(s) that will be exposed in this name space. Here
+the Kubernetes service(s) that will be exposed in this name space. Here
is the contents of the file:
**all-services.yaml**::
@@ -725,16 +725,16 @@ is the contents of the file:
type: NodePort
First of all, note that this file is really two service specification in
-a single file: the mariadb service and the mso service.  In some
+a single file: the mariadb service and the mso service. In some
circumstances it may be possible to hide some of the complexity of the
containers/pods by hiding them behind a single service.
The mariadb service specification is quite simple; other than the name
-the only section of interest is the nodePort specification.  When
-containers require exposing ports to the world outside of a kubernetes
+the only section of interest is the nodePort specification. When
+containers require exposing ports to the world outside of a Kubernetes
namespace, there is a potential for port conflict. To resolve this
-potential port conflict kubernetes uses the concept of a nodePort that
-is mapped one-to-one with a port within the namespace.  In this case the
+potential port conflict Kubernetes uses the concept of a nodePort that
+is mapped one-to-one with a port within the namespace. In this case the
port 3306 (which was defined in the db-deployment.yaml file) is mapped
to 30252 externally thus avoiding the conflict that would have arisen
from deployment multiple mariadb containers.
@@ -768,10 +768,10 @@ Development Deployments
For the Amsterdam release, the deployment specifications represent a
simple simplex deployment of ONAP that may not have the robustness
-typically required of a full operational deployment.  Follow on releases
+typically required of a full operational deployment. Follow on releases
will enhance these deployment specifications as follows:
-- Load Balancers - kubernets has built in support for user defined or
+- Load Balancers - Kubernetes has built in support for user defined or
simple 'ingress' load balances at the service layer to hide the
complexity of multi-pod deployments from other components.
@@ -786,20 +786,20 @@ will enhance these deployment specifications as follows:
Kubernetes Under-Cloud Deployments
==================================
-The automated ONAP deployment depends on a fully functional kubernetes
+The automated ONAP deployment depends on a fully functional Kubernetes
environment being available prior to ONAP installation. Fortunately,
-kubenetes is supported on a wide variety of systems such as Google
+Kubenetes is supported on a wide variety of systems such as Google
Compute Engine, `AWS
EC2 <https://wiki.onap.org/display/DW/ONAP+on+AWS#ONAPonAWS-Option0:DeployOOMKubernetestoaspotVM>`__,
Microsoft Azure, CenturyLink Cloud, IBM Bluemix and more.  If you're
-setting up your own kubernetes environment, please refer to \ `ONAP on
+setting up your own Kubernetes environment, please refer to \ `ONAP on
Kubernetes <file:///C:\display\DW\ONAP+on+Kubernetes>`__ for a walk
through of how to set this environment up on several platforms.
ONAP 'OneClick' Deployment Walk-though
======================================
-Once a kubernetes environment is available and the deployment artifacts
+Once a Kubernetes environment is available and the deployment artifacts
have been customized for your location, ONAP is ready to be installed. 
The first step is to setup
@@ -807,44 +807,29 @@ the \ `/oom/kubernetes/config/onap-parameters.yaml <https://gerrit.onap.org/r/g
with key-value pairs specific to your OpenStack environment.  There is
a \ `sample  <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/onap-parameters-sample.yaml;h=3a74beddbbf7f9f9ec8e5a6abaecb7cb238bd519;hb=refs/heads/master>`__\ that
may help you out or even be usable directly if you don't intend to
-actually use OpenStack resources.  Here is the contents of this file:
-
-**onap-parameters-sample.yaml**
-
- .. literalinclude:: https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob_plain;f=kubernetes/config/onap-parameters-sample.yaml;hb=refs/heads/master
-
-OPENSTACK\_UBUNTU\_14\_IMAGE: "Ubuntu\_14.04.5\_LTS"
-
-OPENSTACK\_PUBLIC\_NET\_ID: "e8f51956-00dd-4425-af36-045716781ffc"
-
-OPENSTACK\_OAM\_NETWORK\_ID: "d4769dfb-c9e4-4f72-b3d6-1d18f4ac4ee6"
-
-OPENSTACK\_OAM\_SUBNET\_ID: "191f7580-acf6-4c2b-8ec0-ba7d99b3bc4e"
-
-OPENSTACK\_OAM\_NETWORK\_CIDR: "192.168.30.0/24"
-
-OPENSTACK\_USERNAME: "vnf\_user"
-
-OPENSTACK\_API\_KEY: "vnf\_password"
-
-OPENSTACK\_TENANT\_NAME: "vnfs"
-
-OPENSTACK\_REGION: "RegionOne"
-
-OPENSTACK\_KEYSTONE\_URL: "http://1.2.3.4:5000"
-
-OPENSTACK\_FLAVOUR\_MEDIUM: "m1.medium"
-
-OPENSTACK\_SERVICE\_TENANT\_NAME: "services"
-
-DMAAP\_TOPIC: "AUTO"
-
-DEMO\_ARTIFACTS\_VERSION: "1.1.0-SNAPSHOT"
+actually use OpenStack resources. Here is the contents of this file:
+
+**onap-parameters-sample.yaml**::
+
+ OPENSTACK_UBUNTU_14_IMAGE: "Ubuntu_14.04.5_LTS"
+ OPENSTACK_PUBLIC_NET_ID: "e8f51956-00dd-4425-af36-045716781ffc"
+ OPENSTACK_OAM_NETWORK_ID: "d4769dfb-c9e4-4f72-b3d6-1d18f4ac4ee6"
+ OPENSTACK_OAM_SUBNET_ID: "191f7580-acf6-4c2b-8ec0-ba7d99b3bc4e"
+ OPENSTACK_OAM_NETWORK_CIDR: "192.168.30.0/24"
+ OPENSTACK_USERNAME: "vnf_user"
+ OPENSTACK_API_KEY: "vnf_password"
+ OPENSTACK_TENANT_NAME: "vnfs"
+ OPENSTACK_REGION: "RegionOne"
+ OPENSTACK_KEYSTONE_URL: "http://1.2.3.4:5000"
+ OPENSTACK_FLAVOUR_MEDIUM: "m1.medium"
+ OPENSTACK_SERVICE_TENANT_NAME: "services"
+ DMAAP_TOPIC: "AUTO"
+ DEMO_ARTIFACTS_VERSION: "1.1.0-SNAPSHOT"
Note that these values are required or the following steps will fail.
In-order to be able to support multiple ONAP instances within a single
-kubernetes environment a configuration set is required.  The
+Kubernetes environment a configuration set is required. The
`createConfig.sh <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/createConfig.sh;h=f226ccae47ca6de15c1da49be4b8b6de974895ed;hb=refs/heads/master>`__
script is used to do this.
@@ -854,7 +839,7 @@ script is used to do this.
The bash
script \ `createAll.bash <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/oneclick/createAll.bash;h=5e5f2dc76ea7739452e757282e750638b4e3e1de;hb=refs/heads/master>`__ is
-used to create an ONAP deployment with kubernetes. It has two primary
+used to create an ONAP deployment with Kubernetes. It has two primary
functions:
- Creating the namespaces used to encapsulate the ONAP components, and
@@ -873,7 +858,7 @@ that can be used to separate multiple deployments of onap. The result
will be set of 10 namespaces (e.g. onapTrial-sdc, onapTrial-aai,
onapTrial-mso, onapTrial-message-router, onapTrial-robot, onapTrial-vid,
onapTrial-sdnc, onapTrial-portal, onapTrial-policy, onapTrial-appc)
-being created within the kubernetes environment.  A prerequisite pod
+being created within the Kubernetes environment. A prerequisite pod
config-init (\ `pod-config-init.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob;f=kubernetes/config/pod-config-init.yaml;h=b1285ce21d61815c082f6d6aa3c43d00561811c7;hb=refs/heads/master>`__)
may editing to match you environment and deployment into the default
namespace before running createAll.bash.
@@ -891,16 +876,16 @@ integration will be done:
A registrator to push the service endpoint info to MSB service
discovery. 
-- The needed service endpoint info is put into the kubernetes yaml file
+- The needed service endpoint info is put into the Kubernetes YAML file
as annotation, including service name, Protocol,version, visual
range,LB method, IP, Port,etc.
- OOM deploy/start/restart/scale in/scale out/upgrade ONAP components
-- Registrator watch the kubernetes event
+- Registrator watch the Kubernetes event
- When an ONAP component instance has been started/destroyed by OOM,
- Registrator get the notification from kubernetes
+ Registrator get the notification from Kubernetes
- Registrator parse the service endpoint info from annotation and
register/update/unregister it to MSB service discovery
@@ -925,9 +910,9 @@ A message sequence chart of the registration process:
MSB Usage Instructions
----------------------
-MSB provides kubernetes charts in OOM, so it can be spun up by oom oneclick command.
+MSB provides Kubernetes charts in OOM, so it can be spun up by oom oneclick command.
-Please note that kubernetes authentication token must be set at *kubernetes/kube2msb/values.yaml* so the kube2msb registrator can get the access to watch the kubernetes events and get service annotation by kubernetes APIs. The token can be found in the kubectl configuration file *~/.kube/config*
+Please note that Kubernetes authentication token must be set at *kubernetes/kube2msb/values.yaml* so the kube2msb registrator can get the access to watch the Kubernetes events and get service annotation by Kubernetes APIs. The token can be found in the kubectl configuration file *~/.kube/config*
MSB and kube2msb can be spun up with all the ONAP components together, or separately using the following commands.
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 928d5dc8ec..f3e3d8f790 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -24,16 +24,16 @@ The main goal of the Amsterdam release was to:
**Bug Fixes**
- - The full list of implemented user stories and epics is available on `JIRA <https://jira.onap.org/secure/RapidBoard.jspa?rapidView=41&view=planning.nodetail&epics=visible>`_
- This is the first release of OOM, the defects fixed in this release were raised during the course of the release.
- Anything not closed is captured below under Known Issues. If you want to review the defects fixed in the Amsterdam release, refer to Jira link above.
+ The full list of implemented user stories and epics is available on `JIRA <https://jira.onap.org/secure/RapidBoard.jspa?rapidView=41&view=planning.nodetail&epics=visible>`_
+ This is the first release of OOM, the defects fixed in this release were raised during the course of the release.
+ Anything not closed is captured below under Known Issues. If you want to review the defects fixed in the Amsterdam release, refer to Jira link above.
**Known Issues**
- - `OOM-6 <https://jira.onap.org/browse/OOM-6>`_ Automated platform deployment on Docker/Kubernetes - VFC, AAF, MSB minor issues.
+ `OOM-6 <https://jira.onap.org/browse/OOM-6>`_ Automated platform deployment on Docker/Kubernetes - VFC, AAF, MSB minor issues.
Workaround:
- Manual configuration changes - however the reference vFirewall use case does not currently require these components
+ Manual configuration changes - however the reference vFirewall use case does not currently require these components
.
- `OOM-10 <https://jira.onap.org/browse/OOM-10>`_ Platform configuration management.
@@ -45,7 +45,7 @@ The main goal of the Amsterdam release was to:
**Security Issues**
- N/A
+ N/A
**Upgrade Notes**
diff --git a/kubernetes/Makefile b/kubernetes/Makefile
new file mode 100644
index 0000000000..4cf97059ac
--- /dev/null
+++ b/kubernetes/Makefile
@@ -0,0 +1,47 @@
+PARENT_CHART := onap
+COMMON_CHARTS_DIR := common
+SETUP_CHARTS_DIR := setup
+# FIXME OOM-765
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES := $(SETUP_CHARTS_DIR) $(COMMON_CHARTS_DIR) config oneclick readiness test dist $(PARENT_CHART) dcae
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.))) $(PARENT_CHART)
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(COMMON_CHARTS_DIR) $(SETUP_CHARTS_DIR) $(HELM_CHARTS)
+
+common:
+ @echo "\n[$@]"
+ @make package-$@
+
+setup:
+ @echo "\n[$@]"
+ @make package-$@
+
+$(HELM_CHARTS):
+ @echo "\n[$@]"
+ @make package-$@
+
+make-%:
+ @if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+ @if [ -f $*/requirements.yaml ]; then helm dep up $*; fi
+
+lint-%: dep-%
+ @if [ -f $*/Chart.yaml ]; then helm lint $*; fi
+
+package-%: lint-%
+ @mkdir -p $(PACKAGE_DIR)
+ @if [ -f $*/Chart.yaml ]; then helm package -d $(PACKAGE_DIR) $*; fi
+
+clean:
+ @rm -f */requirements.lock
+ @rm -f *tgz */charts/*tgz
+ @rm -rf $(PACKAGE_DIR)
+%:
+ @: \ No newline at end of file
diff --git a/kubernetes/README_HELM b/kubernetes/README_HELM
index c1d5fdf432..0f65120397 100644
--- a/kubernetes/README_HELM
+++ b/kubernetes/README_HELM
@@ -3,7 +3,7 @@ Prerequisites:
- Helm
In order to use Helm with Rancher, check the tiller version installed
-by runing "helm version" on the ranchr CLI
+by running "helm version" on the rancher CLI
and install the appropriate Helm.
Notice both tiller and helm are installed,
but you will need to install on your VM.
diff --git a/kubernetes/config/docker/init/src/config/aaf/data/ecomp.cql b/kubernetes/aaf/resources/config/aaf-cs-data/ecomp.cql
index 6fddf65001..6fddf65001 100644
--- a/kubernetes/config/docker/init/src/config/aaf/data/ecomp.cql
+++ b/kubernetes/aaf/resources/config/aaf-cs-data/ecomp.cql
diff --git a/kubernetes/config/docker/init/src/config/aaf/data/identities.dat b/kubernetes/aaf/resources/config/aaf-cs-data/identities.dat
index 98bf99a3d1..98bf99a3d1 100644
--- a/kubernetes/config/docker/init/src/config/aaf/data/identities.dat
+++ b/kubernetes/aaf/resources/config/aaf-cs-data/identities.dat
diff --git a/kubernetes/config/docker/init/src/config/aaf/data/identities.idx b/kubernetes/aaf/resources/config/aaf-cs-data/identities.idx
index 78fc0a5693..78fc0a5693 100644
--- a/kubernetes/config/docker/init/src/config/aaf/data/identities.idx
+++ b/kubernetes/aaf/resources/config/aaf-cs-data/identities.idx
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/aaf/data/init.cql b/kubernetes/aaf/resources/config/aaf-cs-data/init.cql
index 81700f830c..81700f830c 100644
--- a/kubernetes/config/docker/init/src/config/aaf/data/init.cql
+++ b/kubernetes/aaf/resources/config/aaf-cs-data/init.cql
diff --git a/kubernetes/config/docker/init/src/config/aaf/data2/identities.dat b/kubernetes/aaf/resources/config/aaf-data/identities.dat
index 95eb51d1be..95eb51d1be 100644
--- a/kubernetes/config/docker/init/src/config/aaf/data2/identities.dat
+++ b/kubernetes/aaf/resources/config/aaf-data/identities.dat
diff --git a/kubernetes/aaf/templates/aaf-configmap.yaml b/kubernetes/aaf/templates/aaf-configmap.yaml
new file mode 100644
index 0000000000..b6e494df46
--- /dev/null
+++ b/kubernetes/aaf/templates/aaf-configmap.yaml
@@ -0,0 +1,9 @@
+#{{ if not .Values.disableAafAaf }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aaf-data-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ (.Files.Glob "resources/config/aaf-data/*").AsConfig | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/aaf/templates/aaf-cs-deployment.yaml b/kubernetes/aaf/templates/aaf-cs-deployment.yaml
index acd6a7aeb6..817f876f6f 100644
--- a/kubernetes/aaf/templates/aaf-cs-deployment.yaml
+++ b/kubernetes/aaf/templates/aaf-cs-deployment.yaml
@@ -3,9 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: aaf-cs
- namespace: "{{ .Values.nsPrefix }}-aaf"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
- replicas: 1
+ replicas: {{ .Values.aafcsReplicas }}
selector:
matchLabels:
app: aaf-cs
@@ -31,8 +31,8 @@ spec:
periodSeconds: 10
volumes:
- name: aaf-cs-data
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/aaf/data
+ secret:
+ secretName: aaf-cs-data-secret
imagePullSecrets:
- name: {{ .Values.nsPrefix }}-docker-registry-key
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/aaf/templates/aaf-deployment.yaml b/kubernetes/aaf/templates/aaf-deployment.yaml
index 6664f18886..c084cd36b6 100644
--- a/kubernetes/aaf/templates/aaf-deployment.yaml
+++ b/kubernetes/aaf/templates/aaf-deployment.yaml
@@ -5,8 +5,9 @@ metadata:
labels:
app: aaf
name: aaf
- namespace: "{{ .Values.nsPrefix }}-aaf"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.aafReplicas }}
selector:
matchLabels:
app: aaf
@@ -48,8 +49,8 @@ spec:
periodSeconds: 10
volumes:
- name: aaf-data
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/aaf/data2
+ configMap:
+ name: aaf-data-configmap
imagePullSecrets:
- name: {{ .Values.nsPrefix }}-docker-registry-key
#{{ end }}
diff --git a/kubernetes/aaf/templates/aaf-secret.yaml b/kubernetes/aaf/templates/aaf-secret.yaml
new file mode 100644
index 0000000000..4b6984ab38
--- /dev/null
+++ b/kubernetes/aaf/templates/aaf-secret.yaml
@@ -0,0 +1,10 @@
+#{{ if not .Values.disableAafAafCs }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: aaf-cs-data-secret
+ namespace: {{ .Values.nsPrefix }}
+type: Opaque
+data:
+{{ (.Files.Glob "resources/config/aaf-cs-data/*").AsSecrets | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/aaf/templates/all-services.yaml b/kubernetes/aaf/templates/all-services.yaml
index be04180089..0a06d1dd3c 100644
--- a/kubernetes/aaf/templates/all-services.yaml
+++ b/kubernetes/aaf/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: aaf-cs
- namespace: "{{ .Values.nsPrefix }}-aaf"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: aaf-cs
spec:
@@ -26,7 +26,7 @@ apiVersion: v1
kind: Service
metadata:
name: aaf-authz-service
- namespace: "{{ .Values.nsPrefix }}-aaf"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: aaf-authz-service
spec:
diff --git a/kubernetes/aaf/values.yaml b/kubernetes/aaf/values.yaml
index a8589a30dd..eac5d00e19 100644
--- a/kubernetes/aaf/values.yaml
+++ b/kubernetes/aaf/values.yaml
@@ -1,8 +1,10 @@
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+aafcsReplicas: 1
+aafReplicas: 1
image:
- readiness: oomk8s/readiness-check:1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
aafImage: nexus3.onap.org:10001/onap/aaf/authz-service
aafVersion: latest
csImage: nexus3.onap.org:10001/library/cassandra
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-data/chef-config/dev/.knife/solo.rb b/kubernetes/aai/resources/config/aai-data/chef-config/dev/.knife/solo.rb
index 3d903adcc5..3d903adcc5 100644
--- a/kubernetes/config/docker/init/src/config/aai/aai-data/chef-config/dev/.knife/solo.rb
+++ b/kubernetes/aai/resources/config/aai-data/chef-config/dev/.knife/solo.rb
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/README.md b/kubernetes/aai/resources/config/aai-data/environments/README.md
index 3fa254d25a..3fa254d25a 100644
--- a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/README.md
+++ b/kubernetes/aai/resources/config/aai-data/environments/README.md
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/simpledemo.json b/kubernetes/aai/resources/config/aai-data/environments/simpledemo.json
index 99edba2bed..7b299f7a39 100644
--- a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/simpledemo.json
+++ b/kubernetes/aai/resources/config/aai-data/environments/simpledemo.json
@@ -33,16 +33,16 @@
"PROJECT_HOME": "/opt/app/aai-traversal",
"LOGROOT": "/opt/aai/logroot",
"JAVA_HOME": "/usr/lib/jvm/java-8-openjdk-amd64",
- "AAI_SERVER_URL_BASE": "https://aai-service.onap-aai:8443/aai/",
- "AAI_SERVER_URL": "https://aai-service.onap-aai:8443/aai/v11/",
- "AAI_GLOBAL_CALLBACK_URL": "https://aai-service.onap-aai:8443/aai/",
+ "AAI_SERVER_URL_BASE": "https://aai-servicei.{{.Values.nsPrefix}}:8443/aai/",
+ "AAI_SERVER_URL": "https://aai-service.{{.Values.nsPrefix}}:8443/aai/v11/",
+ "AAI_GLOBAL_CALLBACK_URL": "https://aai-service.{{.Values.nsPrefix}}:8443/aai/",
"AAI_TRUSTSTORE_FILENAME": "aai_keystore",
"AAI_TRUSTSTORE_PASSWD_X": "OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0",
"AAI_KEYSTORE_FILENAME": "aai_keystore",
"AAI_KEYSTORE_PASSWD_X": "OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0",
- "APPLICATION_SERVERS": "aai-service.onap-aai",
+ "APPLICATION_SERVERS": "aai-service.{{.Values.nsPrefix}}",
"AAI_DMAAP_PROTOCOL": "http",
- "AAI_DMAAP_HOST_PORT": "dmaap.onap-message-router:3904",
+ "AAI_DMAAP_HOST_PORT": "dmaap.{{.Values.nsPrefix}}:3904",
"AAI_DMAAP_TOPIC_NAME": "AAI-EVENT",
"AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS": "UNPROCESSED",
"AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE": "AAI-EVENT",
@@ -54,11 +54,11 @@
"AAI_NOTIFICATION_CURRENT_VERSION": "v11",
"RESOURCE_VERSION_ENABLE_FLAG": "true",
"TXN_HBASE_TABLE_NAME": "aailogging.dev",
- "TXN_ZOOKEEPER_QUORUM": "hbase.onap-aai",
+ "TXN_ZOOKEEPER_QUORUM": "hbase.{{.Values.nsPrefix}}",
"TXN_ZOOKEEPER_PROPERTY_CLIENTPORT": "2181",
"TXN_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase",
"AAI_WORKLOAD_PREFERRED_ROUTE_KEY": "MR1",
- "STORAGE_HOSTNAME": "hbase.onap-aai",
+ "STORAGE_HOSTNAME": "hbase.{{.Values.nsPrefix}}",
"STORAGE_HBASE_TABLE": "aaigraph.dev",
"STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase",
"DB_CACHE_CLEAN_WAIT": "20",
@@ -85,16 +85,16 @@
"PROJECT_HOME": "/opt/app/aai-resources",
"LOGROOT": "/opt/aai/logroot",
"JAVA_HOME": "/usr/lib/jvm/java-8-openjdk-amd64",
- "AAI_SERVER_URL_BASE": "https://aai-service.onap-aai:8443/aai/",
- "AAI_SERVER_URL": "https://aai-service.onap-aai:8443/aai/v11/",
- "AAI_GLOBAL_CALLBACK_URL": "https://aai-service.onap-aai:8443/aai/",
+ "AAI_SERVER_URL_BASE": "https://aai-service.{{.Values.nsPrefix}}:8443/aai/",
+ "AAI_SERVER_URL": "https://aai-service.{{.Values.nsPrefix}}:8443/aai/v11/",
+ "AAI_GLOBAL_CALLBACK_URL": "https://aai-service.{{.Values.nsPrefix}}:8443/aai/",
"AAI_TRUSTSTORE_FILENAME": "aai_keystore",
"AAI_TRUSTSTORE_PASSWD_X": "OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0",
"AAI_KEYSTORE_FILENAME": "aai_keystore",
"AAI_KEYSTORE_PASSWD_X": "OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0",
- "APPLICATION_SERVERS": "aai-service.onap-aai",
+ "APPLICATION_SERVERS": "aai-service.{{.Values.nsPrefix}}",
"AAI_DMAAP_PROTOCOL": "http",
- "AAI_DMAAP_HOST_PORT": "dmaap.onap-message-router:3904",
+ "AAI_DMAAP_HOST_PORT": "dmaap.{{.Values.nsPrefix}}:3904",
"AAI_DMAAP_TOPIC_NAME": "AAI-EVENT",
"AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS": "UNPROCESSED",
"AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE": "AAI-EVENT",
@@ -106,11 +106,11 @@
"AAI_NOTIFICATION_CURRENT_VERSION": "v11",
"RESOURCE_VERSION_ENABLE_FLAG": "true",
"TXN_HBASE_TABLE_NAME": "aailogging.dev",
- "TXN_ZOOKEEPER_QUORUM": "hbase.onap-aai",
+ "TXN_ZOOKEEPER_QUORUM": "hbase.{{.Values.nsPrefix}}",
"TXN_ZOOKEEPER_PROPERTY_CLIENTPORT": "2181",
"TXN_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase",
"AAI_WORKLOAD_PREFERRED_ROUTE_KEY": "MR1",
- "STORAGE_HOSTNAME": "hbase.onap-aai",
+ "STORAGE_HOSTNAME": "hbase.{{.Values.nsPrefix}}",
"STORAGE_HBASE_TABLE": "aaigraph.dev",
"STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase",
"DB_CACHE_CLEAN_WAIT": "20",
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/solo.json b/kubernetes/aai/resources/config/aai-data/environments/solo.json
index ac83173908..ac83173908 100644
--- a/kubernetes/config/docker/init/src/config/aai/aai-data/environments/solo.json
+++ b/kubernetes/aai/resources/config/aai-data/environments/solo.json
diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/client-cert-onap.p12 b/kubernetes/aai/resources/config/data-router/appconfig/auth/client-cert-onap.p12
index dbf4fcacec..dbf4fcacec 100644
--- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/client-cert-onap.p12
+++ b/kubernetes/aai/resources/config/data-router/appconfig/auth/client-cert-onap.p12
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/data-router_policy.json b/kubernetes/aai/resources/config/data-router/appconfig/auth/data-router_policy.json
index 1b4a6b0868..1b4a6b0868 100644
--- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/data-router_policy.json
+++ b/kubernetes/aai/resources/config/data-router/appconfig/auth/data-router_policy.json
diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/tomcat_keystore b/kubernetes/aai/resources/config/data-router/appconfig/auth/tomcat_keystore
index 9eec841aa2..9eec841aa2 100644
--- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/auth/tomcat_keystore
+++ b/kubernetes/aai/resources/config/data-router/appconfig/auth/tomcat_keystore
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/data-router.properties b/kubernetes/aai/resources/config/data-router/appconfig/data-router.properties
index e69de29bb2..e69de29bb2 100644
--- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/data-router.properties
+++ b/kubernetes/aai/resources/config/data-router/appconfig/data-router.properties
diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v10.xml b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v10.xml
index 7eddd10179..7eddd10179 100644
--- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v10.xml
+++ b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v10.xml
diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v11.xml b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v11.xml
index ecf163e097..ecf163e097 100644
--- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v11.xml
+++ b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v11.xml
diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v8.xml b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v8.xml
index 3ed2ea531f..3ed2ea531f 100644
--- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v8.xml
+++ b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v8.xml
diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v9.xml b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v9.xml
index 87a3d656e5..87a3d656e5 100644
--- a/kubernetes/config/docker/init/src/config/aai/data-router/appconfig/model/aai_oxm_v9.xml
+++ b/kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v9.xml
diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/dynamic/conf/entity-event-policy.xml b/kubernetes/aai/resources/config/data-router/dynamic/conf/entity-event-policy.xml
index e995053f12..e995053f12 100644
--- a/kubernetes/config/docker/init/src/config/aai/data-router/dynamic/conf/entity-event-policy.xml
+++ b/kubernetes/aai/resources/config/data-router/dynamic/conf/entity-event-policy.xml
diff --git a/kubernetes/config/docker/init/src/config/aai/data-router/dynamic/routes/entity-event.route b/kubernetes/aai/resources/config/data-router/dynamic/routes/entity-event.route
index 81e1cf9877..293688ecd4 100644
--- a/kubernetes/config/docker/init/src/config/aai/data-router/dynamic/routes/entity-event.route
+++ b/kubernetes/aai/resources/config/data-router/dynamic/routes/entity-event.route
@@ -1,4 +1,4 @@
<route xmlns="http://camel.apache.org/schema/spring" trace="true">
- <from uri="event-bus:mybus/?eventTopic=AAI-EVENT&amp;groupName=datarouter&amp;groupId=datarouter&amp;url=http://dmaap.onap-message-router:3904"/>
+ <from uri="event-bus:mybus/?eventTopic=AAI-EVENT&amp;groupName=datarouter&amp;groupId=datarouter&amp;url=http://dmaap.{{.Values.nsPrefix}}:3904"/>
<to uri="bean:entityEventPolicy?method=process"/>
</route>
diff --git a/kubernetes/config/docker/init/src/config/aai/elasticsearch/config/elasticsearch.yml b/kubernetes/aai/resources/config/elasticsearch/config/elasticsearch.yml
index 21e29df84b..21e29df84b 100644
--- a/kubernetes/config/docker/init/src/config/aai/elasticsearch/config/elasticsearch.yml
+++ b/kubernetes/aai/resources/config/elasticsearch/config/elasticsearch.yml
diff --git a/kubernetes/config/docker/init/src/config/aai/haproxy/haproxy.cfg b/kubernetes/aai/resources/config/haproxy/haproxy.cfg
index d7773270a4..6e6f489470 100644
--- a/kubernetes/config/docker/init/src/config/aai/haproxy/haproxy.cfg
+++ b/kubernetes/aai/resources/config/haproxy/haproxy.cfg
@@ -95,7 +95,7 @@ backend IST_Default_8447
balance roundrobin
http-request set-header X-Forwarded-Port %[src_port]
http-response set-header Strict-Transport-Security max-age=16000000;\ includeSubDomains;\ preload;
- server aai-resources.onap-aai aai-resources.onap-aai:8447 port 8447 ssl verify none
+ server aai-resources.{{.Values.nsPrefix}} aai-resources.{{.Values.nsPrefix}}:8447 port 8447 ssl verify none
#######################
# BACKEND 8446#########
@@ -105,7 +105,7 @@ backend IST_AAI_8446
balance roundrobin
http-request set-header X-Forwarded-Port %[src_port]
http-response set-header Strict-Transport-Security max-age=16000000;\ includeSubDomains;\ preload;
- server aai-traversal.onap-aai aai-traversal.onap-aai:8446 port 8446 ssl verify none
+ server aai-traversal.{{.Values.nsPrefix}} aai-traversal.{{.Values.nsPrefix}}:8446 port 8446 ssl verify none
listen IST_AAI_STATS
mode http
diff --git a/kubernetes/aai/resources/config/log/filebeat/filebeat.yml b/kubernetes/aai/resources/config/log/filebeat/filebeat.yml
new file mode 100644
index 0000000000..89c6932577
--- /dev/null
+++ b/kubernetes/aai/resources/config/log/filebeat/filebeat.yml
@@ -0,0 +1,41 @@
+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: ["logstash.{{.Values.nsPrefix}}:5044"]
+ #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/aai/resources/model-loader/conf/logback.xml b/kubernetes/aai/resources/config/log/model-loader/logback.xml
index d512d3b91c..d512d3b91c 100644
--- a/kubernetes/aai/resources/model-loader/conf/logback.xml
+++ b/kubernetes/aai/resources/config/log/model-loader/logback.xml
diff --git a/kubernetes/aai/resources/resources/conf/logback.xml b/kubernetes/aai/resources/config/log/resources/logback.xml
index 6cfc293f46..6cfc293f46 100644
--- a/kubernetes/aai/resources/resources/conf/logback.xml
+++ b/kubernetes/aai/resources/config/log/resources/logback.xml
diff --git a/kubernetes/aai/resources/search-data-service/conf/logback.xml b/kubernetes/aai/resources/config/log/search-data-service/logback.xml
index 14ed4142fe..14ed4142fe 100644
--- a/kubernetes/aai/resources/search-data-service/conf/logback.xml
+++ b/kubernetes/aai/resources/config/log/search-data-service/logback.xml
diff --git a/kubernetes/aai/resources/sparky-be/conf/logback.xml b/kubernetes/aai/resources/config/log/sparky-be/logback.xml
index c1b99c183f..c1b99c183f 100644
--- a/kubernetes/aai/resources/sparky-be/conf/logback.xml
+++ b/kubernetes/aai/resources/config/log/sparky-be/logback.xml
diff --git a/kubernetes/aai/resources/traversal/conf/logback.xml b/kubernetes/aai/resources/config/log/traversal/logback.xml
index fb8d8a53bf..fb8d8a53bf 100644
--- a/kubernetes/aai/resources/traversal/conf/logback.xml
+++ b/kubernetes/aai/resources/config/log/traversal/logback.xml
diff --git a/kubernetes/config/docker/init/src/config/aai/model-loader/appconfig/auth/aai-os-cert.p12 b/kubernetes/aai/resources/config/model-loader/appconfig/auth/aai-os-cert.p12
index ee57120fa0..ee57120fa0 100644
--- a/kubernetes/config/docker/init/src/config/aai/model-loader/appconfig/auth/aai-os-cert.p12
+++ b/kubernetes/aai/resources/config/model-loader/appconfig/auth/aai-os-cert.p12
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/aai/model-loader/appconfig/model-loader.properties b/kubernetes/aai/resources/config/model-loader/appconfig/model-loader.properties
index 58b80d8d98..5d61fbaaae 100644
--- a/kubernetes/config/docker/init/src/config/aai/model-loader/appconfig/model-loader.properties
+++ b/kubernetes/aai/resources/config/model-loader/appconfig/model-loader.properties
@@ -1,6 +1,6 @@
# Model Loader Distribution Client Configuration
ml.distribution.ACTIVE_SERVER_TLS_AUTH=false
-ml.distribution.ASDC_ADDRESS=sdc-be.onap-sdc:8443
+ml.distribution.ASDC_ADDRESS=sdc-be.{{.Values.nsPrefix}}:8443
ml.distribution.CONSUMER_GROUP=aai-ml-group
ml.distribution.CONSUMER_ID=aai-ml
ml.distribution.ENVIRONMENT_NAME=AUTO
@@ -13,7 +13,7 @@ ml.distribution.USER=aai
ml.distribution.ARTIFACT_TYPES=MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG
# Model Loader AAI REST Client Configuration
-ml.aai.BASE_URL=https://aai-service.onap-aai:8443
+ml.aai.BASE_URL=https://aai-service.{{.Values.nsPrefix}}:8443
ml.aai.MODEL_URL=/aai/v10/service-design-and-creation/models/model/
ml.aai.NAMED_QUERY_URL=/aai/v10/service-design-and-creation/named-queries/named-query/
ml.aai.VNF_IMAGE_URL=/aai/v8/service-design-and-creation/vnf-images
diff --git a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/analysis-config.json b/kubernetes/aai/resources/config/search-data-service/appconfig/analysis-config.json
index f98ea3799b..f98ea3799b 100644
--- a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/analysis-config.json
+++ b/kubernetes/aai/resources/config/search-data-service/appconfig/analysis-config.json
diff --git a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/auth/search_policy.json b/kubernetes/aai/resources/config/search-data-service/appconfig/auth/search_policy.json
index 72d8902fbe..72d8902fbe 100644
--- a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/auth/search_policy.json
+++ b/kubernetes/aai/resources/config/search-data-service/appconfig/auth/search_policy.json
diff --git a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/auth/tomcat_keystore b/kubernetes/aai/resources/config/search-data-service/appconfig/auth/tomcat_keystore
index 9eec841aa2..9eec841aa2 100644
--- a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/auth/tomcat_keystore
+++ b/kubernetes/aai/resources/config/search-data-service/appconfig/auth/tomcat_keystore
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/elastic-search.properties b/kubernetes/aai/resources/config/search-data-service/appconfig/elastic-search.properties
index 006fc6ee02..c19667ad3c 100644
--- a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/elastic-search.properties
+++ b/kubernetes/aai/resources/config/search-data-service/appconfig/elastic-search.properties
@@ -1,5 +1,5 @@
# ElasticSearch Configuration
es.cluster-name=ES_AAI
-es.ip-address=elasticsearch.onap-aai
+es.ip-address=aai-elasticsearch.{{.Values.nsPrefix}}
es.http-port=9200
diff --git a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/filter-config.json b/kubernetes/aai/resources/config/search-data-service/appconfig/filter-config.json
index e2d5285824..e2d5285824 100644
--- a/kubernetes/config/docker/init/src/config/aai/search-data-service/appconfig/filter-config.json
+++ b/kubernetes/aai/resources/config/search-data-service/appconfig/filter-config.json
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/aai.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/aai.properties
index 3b4542889e..aaca346760 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/aai.properties
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/aai.properties
@@ -6,7 +6,7 @@
#
# The ip address/hostname and port to the desired AAI instance
#
-aai.rest.host=aai-service.onap-aai
+aai.rest.host=aai-service.{{.Values.nsPrefix}}
aai.rest.port=8443
############################## REST ##############################
@@ -84,4 +84,4 @@ aai.ssl.truststore.type=jks
aai.taskProcessor.maxConcurrentWorkers=5
aai.taskProcessor.transactionRateControllerEnabled=false
aai.taskProcessor.numSamplesPerThreadForRunningAverage=100
-aai.taskProcessor.targetTPS=100 \ No newline at end of file
+aai.taskProcessor.targetTPS=100
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/aai-os-cert.p12 b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/aai-os-cert.p12
index ee57120fa0..ee57120fa0 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/aai-os-cert.p12
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/aai-os-cert.p12
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/client-cert-onap.p12 b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/client-cert-onap.p12
index dbf4fcacec..dbf4fcacec 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/client-cert-onap.p12
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/client-cert-onap.p12
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/inventory-ui-keystore b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/inventory-ui-keystore
index efa01f8d79..efa01f8d79 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/auth/inventory-ui-keystore
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/auth/inventory-ui-keystore
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/elasticsearch.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/elasticsearch.properties
index 82b5af39ab..99aea27d9e 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/elasticsearch.properties
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/elasticsearch.properties
@@ -7,7 +7,7 @@
# The ip address/hostname and port to the desired AAI instance
# For development it's recommended to use a local instance of ES
#
-elasticsearch.ipAddress=elasticsearch.onap-aai
+elasticsearch.ipAddress=aai-elasticsearch.{{.Values.nsPrefix}}
elasticsearch.httpPort=9200
elasticsearch.javaApiPort=8443
@@ -69,4 +69,4 @@ elasticsearch.taskProcessor.maxConcurrentWorkers=5
elasticsearch.taskProcessor.transactionRateControllerEnabled=false
elasticsearch.taskProcessor.numSamplesPerThreadForRunningAverage=100
elasticsearch.taskProcessor.targetTPS=100
-elasticsearch.clusterName=ES_AAI_LOCALHOST \ No newline at end of file
+elasticsearch.clusterName=ES_AAI_LOCALHOST
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/model/aai_oxm_v9.xml b/kubernetes/aai/resources/config/sparky-be/appconfig/model/aai_oxm_v9.xml
index 6337c32edc..6337c32edc 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/model/aai_oxm_v9.xml
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/model/aai_oxm_v9.xml
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/portal/portal-authentication.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal-authentication.properties
index 0873fc1c61..0873fc1c61 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/portal/portal-authentication.properties
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal-authentication.properties
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/portal/portal.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal.properties
index 33d91cf88a..90147362b0 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/portal/portal.properties
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal.properties
@@ -7,10 +7,10 @@ portal.api.impl.class = org.openecomp.sparky.security.portal.PortalRestAPIServic
# Instance of ECOMP Portal where the app has been on-boarded
# use insecure http for dev purposes to avoid self-signed certificate
-ecomp_rest_url = http://portalapps.onap-portal:8989/ONAPPORTAL/auxapi
+ecomp_rest_url = http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/auxapi
# Standard global logon page
-ecomp_redirect_url = http://portalapps.onap-portal:8989/ONAPPORTAL/login.htm
+ecomp_redirect_url = http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/login.htm
# Name of cookie to extract on login request
csp_cookie_name = EPService
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/roles.config b/kubernetes/aai/resources/config/sparky-be/appconfig/roles.config
index b8313bd378..b8313bd378 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/roles.config
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/roles.config
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/search-service.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/search-service.properties
index 5f4985a5f2..57e34759d3 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/search-service.properties
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/search-service.properties
@@ -6,7 +6,7 @@
#
# The ip address/hostname and port to the desired Search Data Service instance
#
-search-service.ipAddress=search-data-service.onap-aai
+search-service.ipAddress=search-data-service.{{.Values.nsPrefix}}
search-service.httpPort=9509
############################## Indexes ##############################
@@ -29,4 +29,4 @@ search-service.type=default
############################## Certs ##############################
search-service.ssl.cert-name=client-cert-onap.p12
search-service.ssl.keystore-password=OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
-search-service.ssl.keystore=tomcat_keystore \ No newline at end of file
+search-service.ssl.keystore=tomcat_keystore
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/suggestive-search.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/suggestive-search.properties
index b82baffc14..b82baffc14 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/suggestive-search.properties
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/suggestive-search.properties
diff --git a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/synchronizer.properties b/kubernetes/aai/resources/config/sparky-be/appconfig/synchronizer.properties
index 0b84f06abe..0b84f06abe 100644
--- a/kubernetes/config/docker/init/src/config/aai/sparky-be/appconfig/synchronizer.properties
+++ b/kubernetes/aai/resources/config/sparky-be/appconfig/synchronizer.properties
diff --git a/kubernetes/aai/templates/aai-deployment-configmap.yaml b/kubernetes/aai/templates/aai-deployment-configmap.yaml
new file mode 100644
index 0000000000..6684555bd0
--- /dev/null
+++ b/kubernetes/aai/templates/aai-deployment-configmap.yaml
@@ -0,0 +1,9 @@
+#{{ if not .Values.disableAaiAaiService }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-deployment-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/haproxy/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/aai/templates/aai-deployment.yaml b/kubernetes/aai/templates/aai-deployment.yaml
index a65cf44cba..db6da6403c 100644
--- a/kubernetes/aai/templates/aai-deployment.yaml
+++ b/kubernetes/aai/templates/aai-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: aai-service
- namespace: "{{ .Values.nsPrefix }}-aai"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.aaiServiceReplicas }}
selector:
matchLabels:
app: aai-service
@@ -42,6 +43,7 @@ spec:
- mountPath: /dev/log
name: aai-service-log
- mountPath: /usr/local/etc/haproxy/haproxy.cfg
+ subPath: haproxy.cfg
name: haproxy-cfg
ports:
- containerPort: 8080
@@ -59,8 +61,8 @@ spec:
hostPath:
path: "/dev/log"
- name: haproxy-cfg
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/haproxy/haproxy.cfg"
+ configMap:
+ name: aai-deployment-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/aai/templates/aai-filebeat-configmap.yaml b/kubernetes/aai/templates/aai-filebeat-configmap.yaml
new file mode 100644
index 0000000000..2ca1ac2df5
--- /dev/null
+++ b/kubernetes/aai/templates/aai-filebeat-configmap.yaml
@@ -0,0 +1,9 @@
+#{{ if not .Values.disableAaiAaiResources }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/aai/templates/aai-resources-deployment.yaml b/kubernetes/aai/templates/aai-resources-deployment.yaml
index 7ff5e66ee2..c07214d958 100644
--- a/kubernetes/aai/templates/aai-resources-deployment.yaml
+++ b/kubernetes/aai/templates/aai-resources-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: aai-resources
- namespace: "{{ .Values.nsPrefix }}-aai"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.aaiResourceReplicas }}
selector:
matchLabels:
app: aai-resources
@@ -50,7 +51,10 @@ spec:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /var/chef/aai-data/
+ - mountPath: /var/chef/aai-data/chef-config/dev/.knife/solo.rb
+ subPath: solo.rb
+ name: aai-chef-config
+ - mountPath: /var/chef/aai-data/environments/
name: aai-data
- mountPath: /var/log/onap
name: aai-resources-logs
@@ -69,6 +73,7 @@ spec:
imagePullPolicy: {{ .Values.pullPolicy }}
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
+ subPath: filebeat.yml
name: filebeat-conf
- mountPath: /var/log/onap
name: aai-resources-logs
@@ -78,28 +83,23 @@ spec:
- name: localtime
hostPath:
path: /etc/localtime
+ - name: aai-chef-config
+ configMap:
+ name: aai-chef-config-configmap
- name: aai-data
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/aai-data/"
+ configMap:
+ name: aai-resources-environments-configmap
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: aai-filebeat-configmap
- name: aai-resources-logs
emptyDir: {}
- name: aai-resources-filebeat
emptyDir: {}
- name: aai-resources-log-conf
configMap:
- name: aai-resources-configmap
+ name: aai-resources-log-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: aai-resources-configmap
- namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/resources/conf/logback.xml").AsConfig | indent 2 }}
#{{ end }}
diff --git a/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml b/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml
new file mode 100644
index 0000000000..cdcaae6f64
--- /dev/null
+++ b/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml
@@ -0,0 +1,33 @@
+#{{ if not .Values.disableAaiAaiResources }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-chef-config-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/aai-data/chef-config/dev/.knife/solo.rb").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-resources-environments-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/aai-data/environments/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-resources-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/resources/logback.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-traversal-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/traversal/logback.xml").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/aai/templates/aai-traversal-deployment.yaml b/kubernetes/aai/templates/aai-traversal-deployment.yaml
index f659392935..84a0d0f289 100644
--- a/kubernetes/aai/templates/aai-traversal-deployment.yaml
+++ b/kubernetes/aai/templates/aai-traversal-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: aai-traversal
- namespace: "{{ .Values.nsPrefix }}-aai"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.aaiTraversalReplicas }}
selector:
matchLabels:
app: aai-traversal
@@ -47,12 +48,15 @@ spec:
- name: CHEF_GIT_URL
value: http://gerrit.onap.org/r/aai
- name: RESOURCES_HOSTNAME
- value: aai-resources.{{ .Values.nsPrefix }}-aai
+ value: aai-resources.{{ .Values.nsPrefix }}
volumeMounts:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /var/chef/aai-data/
+ - mountPath: /var/chef/aai-data/chef-config/dev/.knife/solo.rb
+ subPath: solo.rb
+ name: aai-chef-config
+ - mountPath: /var/chef/aai-data/environments/
name: aai-data
- mountPath: /var/log/onap
name: aai-traversal-logs
@@ -71,6 +75,7 @@ spec:
imagePullPolicy: {{ .Values.pullPolicy }}
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
+ subPath: filebeat.yml
name: filebeat-conf
- mountPath: /var/log/onap
name: aai-traversal-logs
@@ -80,28 +85,23 @@ spec:
- name: localtime
hostPath:
path: /etc/localtime
+ - name: aai-chef-config
+ configMap:
+ name: aai-chef-config-configmap
- name: aai-data
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/aai-data/"
+ configMap:
+ name: aai-resources-environments-configmap
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: aai-filebeat-configmap
- name: aai-traversal-logs
emptyDir: {}
- name: aai-traversal-filebeat
emptyDir: {}
- name: aai-traversal-log-conf
configMap:
- name: aai-traversal-configmap
+ name: aai-traversal-log-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: aai-traversal-configmap
- namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/traversal/conf/logback.xml").AsConfig | indent 2 }}
#{{ end }}
diff --git a/kubernetes/aai/templates/all-services.yaml b/kubernetes/aai/templates/all-services.yaml
index 0cf62d0fec..01f24a7dd2 100644
--- a/kubernetes/aai/templates/all-services.yaml
+++ b/kubernetes/aai/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: hbase
- namespace: "{{ .Values.nsPrefix }}-aai"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: hbase
spec:
@@ -32,7 +32,7 @@ apiVersion: v1
kind: Service
metadata:
name: aai-service
- namespace: "{{ .Values.nsPrefix }}-aai"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: aai-service
annotations:
@@ -184,6 +184,7 @@ spec:
type: NodePort
selector:
app: aai-service
+ clusterIP: {{ .Values.aaiServiceClusterIp }}
#{{ end }}
#{{ if not .Values.disableAaiModelLoaderService }}
---
@@ -191,7 +192,7 @@ apiVersion: v1
kind: Service
metadata:
name: model-loader-service
- namespace: "{{ .Values.nsPrefix }}-aai"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: model-loader-service
spec:
@@ -211,7 +212,7 @@ apiVersion: v1
kind: Service
metadata:
name: gremlin
- namespace: "{{ .Values.nsPrefix }}-aai"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: gremlin
spec:
@@ -226,16 +227,16 @@ spec:
apiVersion: v1
kind: Service
metadata:
- name: elasticsearch
- namespace: "{{ .Values.nsPrefix }}-aai"
+ name: aai-elasticsearch
+ namespace: "{{ .Values.nsPrefix }}"
labels:
- app: elasticsearch
+ app: aai-elasticsearch
spec:
ports:
- - name: "elasticsearch-port"
+ - name: "aai-elasticsearch-port"
port: 9200
selector:
- app: elasticsearch
+ app: aai-elasticsearch
clusterIP: None
#{{ end }}
#{{ if not .Values.disableAaiSearchDataService }}
@@ -244,7 +245,7 @@ apiVersion: v1
kind: Service
metadata:
name: search-data-service
- namespace: "{{ .Values.nsPrefix }}-aai"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: search-data-service
spec:
@@ -261,7 +262,7 @@ apiVersion: v1
kind: Service
metadata:
name: aai-traversal
- namespace: "{{ .Values.nsPrefix }}-aai"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: aai-traversal
spec:
@@ -280,7 +281,7 @@ apiVersion: v1
kind: Service
metadata:
name: aai-resources
- namespace: "{{ .Values.nsPrefix }}-aai"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: aai-resources
spec:
@@ -299,7 +300,7 @@ apiVersion: v1
kind: Service
metadata:
name: sparky-be
- namespace: "{{ .Values.nsPrefix }}-aai"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: sparky-be
spec:
@@ -309,4 +310,4 @@ spec:
selector:
app: sparky-be
clusterIP: None
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/aai/templates/data-router-configmap.yaml b/kubernetes/aai/templates/data-router-configmap.yaml
new file mode 100644
index 0000000000..3de38a740a
--- /dev/null
+++ b/kubernetes/aai/templates/data-router-configmap.yaml
@@ -0,0 +1,59 @@
+#{{ if not .Values.disableAaiDataRouter }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-data-router-prop-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/data-router.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-data-router-model-v8-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v8.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-data-router-model-v9-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v9.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-data-router-model-v10-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v10.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-data-router-model-v11-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v11.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: aai-data-router-secret
+ namespace: {{ .Values.nsPrefix }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/appconfig/auth/*").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-data-router-dynamic-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/data-router/dynamic/routes/entity-event.route").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/data-router/dynamic/conf/entity-event-policy.xml").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/aai/templates/data-router-deployment.yaml b/kubernetes/aai/templates/data-router-deployment.yaml
index 6b3c024c2a..610ecb6e39 100644
--- a/kubernetes/aai/templates/data-router-deployment.yaml
+++ b/kubernetes/aai/templates/data-router-deployment.yaml
@@ -2,20 +2,43 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: data-router
- namespace: "{{ .Values.nsPrefix }}-aai"
+ name: aai-data-router
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.dataRouterReplicas }}
selector:
matchLabels:
- app: data-router
+ app: aai-data-router
template:
metadata:
labels:
- app: data-router
- name: data-router
+ app: aai-data-router
+ name: aai-data-router
spec:
+ initContainers:
+ - command:
+ - /bin/sh
+ - -c
+ - |
+ mkdir -p /logroot/data-router/logs
+ chmod -R 777 /logroot/data-router/logs
+ chown -R root:root /logroot
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ securityContext:
+ privileged: true
+ image: {{ .Values.image.es_bb }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: init-sysctl
+ volumeMounts:
+ - name: aai-data-router-logs
+ mountPath: /logroot/
containers:
- - name: data-router
+ - name: aai-data-router
image: "{{ .Values.image.dataRouterImage }}:{{ .Values.image.dataRouterVersion }}"
imagePullPolicy: {{ .Values.pullPolicy }}
env:
@@ -37,12 +60,31 @@ spec:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /opt/app/data-router/config/
- name: data-router-config
- - mountPath: /opt/app/data-router/dynamic/
- name: data-router-dynamic
+ - mountPath: /opt/app/data-router/config/model/aai_oxm_v8.xml
+ subPath: aai_oxm_v8.xml
+ name: aai-data-router-model-v8
+ - mountPath: /opt/app/data-router/config/model/aai_oxm_v9.xml
+ subPath: aai_oxm_v9.xml
+ name: aai-data-router-model-v9
+ - mountPath: /opt/app/data-router/config/model/aai_oxm_v10.xml
+ subPath: aai_oxm_v10.xml
+ name: aai-data-router-model-v10
+ - mountPath: /opt/app/data-router/config/model/aai_oxm_v11.xml
+ subPath: aai_oxm_v11.xml
+ name: aai-data-router-model-v11
+ - mountPath: /opt/app/data-router/config/auth
+ name: aai-data-router-auth
+ - mountPath: /opt/app/data-router/config/data-router.properties
+ name: aai-data-router-properties
+ subPath: data-router.properties
+ - mountPath: /opt/app/data-router/dynamic/routes/entity-event.route
+ subPath: entity-event.route
+ name: aai-data-router-dynamic-route
+ - mountPath: /opt/app/data-router/dynamic/conf/entity-event-policy.xml
+ subPath: entity-event-policy.xml
+ name: aai-data-router-dynamic-policy
- mountPath: /logs/
- name: data-router-logs
+ name: aai-data-router-logs
ports:
- containerPort: 9502
readinessProbe:
@@ -54,16 +96,34 @@ spec:
- name: localtime
hostPath:
path: /etc/localtime
- - name: data-router-config
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/data-router/appconfig/"
- - name: data-router-dynamic
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/data-router/dynamic/"
- - name: data-router-logs
+ - name: aai-data-router-model-v8
+ configMap:
+ name: aai-data-router-model-v8-configmap
+ - name: aai-data-router-model-v9
+ configMap:
+ name: aai-data-router-model-v9-configmap
+ - name: aai-data-router-model-v10
+ configMap:
+ name: aai-data-router-model-v10-configmap
+ - name: aai-data-router-model-v11
+ configMap:
+ name: aai-data-router-model-v11-configmap
+ - name: aai-data-router-auth
+ secret:
+ secretName: aai-data-router-secret
+ - name: aai-data-router-properties
+ configMap:
+ name: aai-data-router-prop-configmap
+ - name: aai-data-router-dynamic-route
+ configMap:
+ name: aai-data-router-dynamic-configmap
+ - name: aai-data-router-dynamic-policy
+ configMap:
+ name: aai-data-router-dynamic-configmap
+ - name: aai-data-router-logs
hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/data-router/logs/"
+ path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/data-router/logs"
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/aai/templates/elasticsearch-configmap.yaml b/kubernetes/aai/templates/elasticsearch-configmap.yaml
new file mode 100644
index 0000000000..56b02529bc
--- /dev/null
+++ b/kubernetes/aai/templates/elasticsearch-configmap.yaml
@@ -0,0 +1,9 @@
+#{{ if not .Values.disableAaiElasticsearch }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-elasticsearch-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/elasticsearch/config/elasticsearch.yml").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/aai/templates/elasticsearch-deployment.yaml b/kubernetes/aai/templates/elasticsearch-deployment.yaml
index 680f942c52..1babb05897 100644
--- a/kubernetes/aai/templates/elasticsearch-deployment.yaml
+++ b/kubernetes/aai/templates/elasticsearch-deployment.yaml
@@ -2,21 +2,44 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: elasticsearch
- namespace: "{{ .Values.nsPrefix }}-aai"
+ name: aai-elasticsearch
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.elasticsearchReplicas }}
selector:
matchLabels:
- app: elasticsearch
+ app: aai-elasticsearch
template:
metadata:
labels:
- app: elasticsearch
- name: elasticsearch
+ app: aai-elasticsearch
+ name: aai-elasticsearch
spec:
- hostname: elasticsearch
+ initContainers:
+ - command:
+ - /bin/sh
+ - -c
+ - |
+ mkdir -p /logroot/elasticsearch/es-data
+ chmod -R 777 /logroot/elasticsearch/es-data
+ chown -R root:root /logroot
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ securityContext:
+ privileged: true
+ image: {{ .Values.image.es_bb }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: init-sysctl
+ volumeMounts:
+ - name: elasticsearch-data
+ mountPath: /logroot/
+ hostname: aai-elasticsearch
containers:
- - name: elasticsearch
+ - name: aai-elasticsearch
image: "{{ .Values.image.elasticsearchImage }}:{{ .Values.image.elasticsearchVersion }}"
imagePullPolicy: {{ .Values.pullPolicy }}
ports:
@@ -31,6 +54,7 @@ spec:
mountPath: /etc/localtime
readOnly: true
- name: elasticsearch-config
+ subPath: elasticsearch.yml
mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
- name: elasticsearch-data
mountPath: /usr/share/elasticsearch/data
@@ -39,11 +63,11 @@ spec:
hostPath:
path: /etc/localtime
- name: elasticsearch-config
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/elasticsearch/config/elasticsearch.yml"
+ configMap:
+ name: aai-elasticsearch-configmap
- name: elasticsearch-data
hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/elasticsearch/es-data"
+ path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/elasticsearch/data"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/aai/templates/hbase-deployment.yaml b/kubernetes/aai/templates/hbase-deployment.yaml
index fd8e10cc5a..f8ef61353c 100644
--- a/kubernetes/aai/templates/hbase-deployment.yaml
+++ b/kubernetes/aai/templates/hbase-deployment.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: hbase
- namespace: "{{ .Values.nsPrefix }}-aai"
+ name: aai-hbase
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.hbaseReplicas }}
selector:
matchLabels:
app: hbase
@@ -12,7 +13,7 @@ spec:
metadata:
labels:
app: hbase
- name: hbase
+ name: aai-hbase
spec:
hostname: hbase
containers:
@@ -33,13 +34,18 @@ spec:
initialDelaySeconds: 5
periodSeconds: 10
volumeMounts:
+ - name: hbase-data
+ mountPath: /tmp
- name: localtime
mountPath: /etc/localtime
readOnly: true
volumes:
+ - name: hbase-data
+ hostPath:
+ path: /dockerdata-nfs/{{ .Values.nsPrefix }}/aai/hbase
- name: localtime
hostPath:
path: /etc/localtime
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/aai/templates/modelloader-deployment-configmap.yaml b/kubernetes/aai/templates/modelloader-deployment-configmap.yaml
new file mode 100644
index 0000000000..9337f551b8
--- /dev/null
+++ b/kubernetes/aai/templates/modelloader-deployment-configmap.yaml
@@ -0,0 +1,26 @@
+#{{ if not .Values.disableAaiModelLoaderService }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-model-loader-prop-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/model-loader/appconfig/model-loader.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: aai-model-loader-secret
+ namespace: {{ .Values.nsPrefix }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/model-loader/appconfig/auth/*").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-model-loader-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/model-loader/logback.xml").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/aai/templates/modelloader-deployment.yaml b/kubernetes/aai/templates/modelloader-deployment.yaml
index 7c2fddb7cf..e11df7c878 100644
--- a/kubernetes/aai/templates/modelloader-deployment.yaml
+++ b/kubernetes/aai/templates/modelloader-deployment.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: model-loader-service
- namespace: "{{ .Values.nsPrefix }}-aai"
+ name: aai-model-loader-service
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.modelLoaderReplicas }}
selector:
matchLabels:
app: model-loader-service
@@ -12,7 +13,7 @@ spec:
metadata:
labels:
app: model-loader-service
- name: model-loader-service
+ name: aai-model-loader-service
spec:
containers:
- name: model-loader-service
@@ -25,8 +26,11 @@ spec:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /opt/app/model-loader/config/
- name: aai-model-loader-config
+ - mountPath: /opt/app/model-loader/config/model-loader.properties
+ subPath: model-loader.properties
+ name: aai-model-loader-prop-config
+ - mountPath: /opt/app/model-loader/config/auth/
+ name: aai-model-loader-auth-config
- mountPath: /var/log/onap
name: aai-model-loader-logs
- mountPath: /opt/app/model-loader/bundleconfig/etc/logback.xml
@@ -40,6 +44,7 @@ spec:
imagePullPolicy: {{ .Values.pullPolicy }}
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
+ subPath: filebeat.yml
name: filebeat-conf
- mountPath: /var/log/onap
name: aai-model-loader-logs
@@ -49,28 +54,23 @@ spec:
- name: localtime
hostPath:
path: /etc/localtime
- - name: aai-model-loader-config
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/model-loader/appconfig/"
+ - name: aai-model-loader-prop-config
+ configMap:
+ name: aai-model-loader-prop-configmap
+ - name: aai-model-loader-auth-config
+ secret:
+ secretName: aai-model-loader-secret
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: aai-filebeat-configmap
- name: aai-model-loader-logs
emptyDir: {}
- name: aai-model-loader-filebeat
emptyDir: {}
- name: aai-model-loader-log-conf
configMap:
- name: aai-model-loader-configmap
+ name: aai-model-loader-log-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: aai-model-loader-configmap
- namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/model-loader/conf/logback.xml").AsConfig | indent 2 }}
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/aai/templates/search-data-service-configmap.yaml b/kubernetes/aai/templates/search-data-service-configmap.yaml
new file mode 100644
index 0000000000..43d9da02e2
--- /dev/null
+++ b/kubernetes/aai/templates/search-data-service-configmap.yaml
@@ -0,0 +1,34 @@
+#{{ if not .Values.disableAaiSearchDataService }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-search-data-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/search-data-service/appconfig/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: aai-search-data-keystone-secret
+ namespace: {{ .Values.nsPrefix }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/search-data-service/appconfig/auth/tomcat_keystore").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-search-policy-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/search-data-service/appconfig/auth/search_policy.json").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-search-data-service-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/search-data-service/logback.xml").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/aai/templates/search-data-service-deployment.yaml b/kubernetes/aai/templates/search-data-service-deployment.yaml
index e1668456ba..fc5a0d2fe2 100644
--- a/kubernetes/aai/templates/search-data-service-deployment.yaml
+++ b/kubernetes/aai/templates/search-data-service-deployment.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: search-data-service
- namespace: "{{ .Values.nsPrefix }}-aai"
+ name: aai-search-data-service
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.searchDataServiceReplicas }}
selector:
matchLabels:
app: search-data-service
@@ -12,7 +13,7 @@ spec:
metadata:
labels:
app: search-data-service
- name: search-data-service
+ name: aai-search-data-service
spec:
containers:
- name: search-data-service
@@ -29,8 +30,21 @@ spec:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /opt/app/search-data-service/config/
+ - mountPath: /opt/app/search-data-service/config/filter-config.json
+ subPath: filter-config.json
name: aai-search-data-service-config
+ - mountPath: /opt/app/search-data-service/config/elastic-search.properties
+ subPath: elastic-search.properties
+ name: aai-search-data-service-config
+ - mountPath: /opt/app/search-data-service/config/analysis-config.json
+ subPath: filter-config.json
+ name: aai-search-data-service-config
+ - mountPath: /opt/app/search-data-service/config/auth/tomcat_keystore
+ subPath: tomcat_keystore
+ name: aai-search-data-service-auth-config
+ - mountPath: /opt/app/search-data-service/config/auth/search_policy.json
+ subPath: search_policy.json
+ name: aai-search-data-search-policy-config
- mountPath: /var/log/onap
name: aai-search-data-service-logs
- mountPath: /opt/app/search-data-service/bundleconfig/etc/logback.xml
@@ -48,6 +62,7 @@ spec:
imagePullPolicy: {{ .Values.pullPolicy }}
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
+ subPath: filebeat.yml
name: filebeat-conf
- mountPath: /var/log/onap
name: aai-search-data-service-logs
@@ -58,27 +73,25 @@ spec:
hostPath:
path: /etc/localtime
- name: aai-search-data-service-config
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/search-data-service/appconfig/"
+ configMap:
+ name: aai-search-data-configmap
+ - name: aai-search-data-service-auth-config
+ secret:
+ secretName: aai-search-data-keystone-secret
+ - name: aai-search-data-search-policy-config
+ configMap:
+ name: aai-search-policy-configmap
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: aai-filebeat-configmap
- name: aai-search-data-service-logs
emptyDir: {}
- name: aai-search-data-service-filebeat
emptyDir: {}
- name: aai-search-data-service-log-conf
configMap:
- name: aai-search-data-service-configmap
+ name: aai-search-data-service-log-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: aai-search-data-service-configmap
- namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/search-data-service/conf/logback.xml").AsConfig | indent 2 }}
#{{ end }}
diff --git a/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml b/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml
new file mode 100644
index 0000000000..3a0c7fb556
--- /dev/null
+++ b/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml
@@ -0,0 +1,42 @@
+#{{ if not .Values.disableAaiSparkyBe }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-sparky-be-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-sparky-be-model-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/model/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-sparky-be-portal-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/portal/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+ name: aai-sparky-be-secret
+ namespace: {{ .Values.nsPrefix }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/auth/*").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aai-sparky-be-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/sparky-be/logback.xml").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/aai/templates/sparky-be-deployment.yaml b/kubernetes/aai/templates/sparky-be-deployment.yaml
index 484a87f5be..e73c7b393b 100644
--- a/kubernetes/aai/templates/sparky-be-deployment.yaml
+++ b/kubernetes/aai/templates/sparky-be-deployment.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: sparky-be
- namespace: "{{ .Values.nsPrefix }}-aai"
+ name: aai-sparky-be
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.sparkyReplicas }}
selector:
matchLabels:
app: sparky-be
@@ -12,7 +13,7 @@ spec:
metadata:
labels:
app: sparky-be
- name: sparky-be
+ name: aai-sparky-be
spec:
containers:
- name: sparky-be
@@ -29,8 +30,30 @@ spec:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /opt/app/sparky/config/
+ - mountPath: /opt/app/sparky/config/auth/
+ name: aai-sparky-be-auth-config
+ - mountPath: /opt/app/sparky/config/synchronizer.properties
+ subPath: synchronizer.properties
name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/suggestive-search.properties
+ subPath: suggestive-search.properties
+ name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/search-service.properties
+ subPath: search-service.properties
+ name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/roles.config
+ subPath: roles.config
+ name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/elasticsearch.properties
+ subPath: elasticsearch.properties
+ name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/aai.properties
+ subPath: aai.properties
+ name: aai-sparky-be-config
+ - mountPath: /opt/app/sparky/config/model/
+ name: aai-sparky-be-model-config
+ - mountPath: /opt/app/sparky/config/portal/
+ name: aai-sparky-be-portal-config
- mountPath: /var/log/onap
name: aai-sparky-be-logs
- mountPath: /opt/app/sparky/bundleconfig/etc/logback.xml
@@ -48,6 +71,7 @@ spec:
imagePullPolicy: {{ .Values.pullPolicy }}
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
+ subPath: filebeat.yml
name: filebeat-conf
- mountPath: /var/log/onap
name: aai-sparky-be-logs
@@ -58,27 +82,28 @@ spec:
hostPath:
path: /etc/localtime
- name: aai-sparky-be-config
- hostPath:
- path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/sparky-be/appconfig/"
+ configMap:
+ name: aai-sparky-be-configmap
+ - name: aai-sparky-be-model-config
+ configMap:
+ name: aai-sparky-be-model-configmap
+ - name: aai-sparky-be-portal-config
+ configMap:
+ name: aai-sparky-be-portal-configmap
+ - name: aai-sparky-be-auth-config
+ secret:
+ secretName: aai-sparky-be-secret
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: aai-filebeat-configmap
- name: aai-sparky-be-logs
emptyDir: {}
- name: aai-sparky-filebeat
emptyDir: {}
- name: aai-sparky-be-log-conf
configMap:
- name: aai-sparky-be-configmap
+ name: aai-sparky-be-log-configmap
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: aai-sparky-be-configmap
- namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/sparky-be/conf/logback.xml").AsConfig | indent 2 }}
#{{ end }}
diff --git a/kubernetes/aai/values.yaml b/kubernetes/aai/values.yaml
index ce625b7ab3..4cbd327dba 100644
--- a/kubernetes/aai/values.yaml
+++ b/kubernetes/aai/values.yaml
@@ -1,8 +1,21 @@
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+
+# POLICY hotfix - Note this must be temporary
+# See https://jira.onap.org/browse/POLICY-510
+aaiServiceClusterIp: 10.43.255.254
+aaiServiceReplicas: 1
+aaiResourceReplicas: 1
+aaiTraversalReplicas: 1
+dataRouterReplicas: 1
+elasticsearchReplicas: 1
+hbaseReplicas: 1
+modelLoaderReplicas: 1
+searchDataServiceReplicas: 1
+sparkyReplicas: 1
image:
- readiness: oomk8s/readiness-check:1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
aaiProxy: aaionap/haproxy
aaiProxyVersion: 1.1.0
aaiHbaseImage: aaionap/hbase
@@ -23,3 +36,4 @@ image:
sparkyBeVersion: v1.1.0
gremlinServerImage: aaionap/gremlin-server
filebeat: docker.elastic.co/beats/filebeat:5.5.0
+ es_bb: busybox
diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/installSdncDb.sh b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/installSdncDb.sh
new file mode 100755
index 0000000000..75680bd942
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/installSdncDb.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# 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=========================================================
+###
+
+SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
+MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0}
+
+SDNC_DB_USER=${SDNC_DB_USER:-sdnctl}
+SDNC_DB_PASSWD=${SDNC_DB_PASSWD:-gamma}
+SDNC_DB_DATABASE=${SDN_DB_DATABASE:-sdnctl}
+
+
+# Create tablespace and user account
+mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} mysql <<-END
+CREATE DATABASE ${SDNC_DB_DATABASE};
+CREATE USER '${SDNC_DB_USER}'@'localhost' IDENTIFIED BY '${SDNC_DB_PASSWD}';
+CREATE USER '${SDNC_DB_USER}'@'%' IDENTIFIED BY '${SDNC_DB_PASSWD}';
+GRANT ALL PRIVILEGES ON ${SDNC_DB_DATABASE}.* TO '${SDNC_DB_USER}'@'localhost' WITH GRANT OPTION;
+GRANT ALL PRIVILEGES ON ${SDNC_DB_DATABASE}.* TO '${SDNC_DB_USER}'@'%' WITH GRANT OPTION;
+commit;
+END
+
+if [ -f ${SDNC_HOME}/data/odlsli.dump ]
+then
+mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} sdnctl < ${SDNC_HOME}/data/odlsli.dump
+fi
+
diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/startODL.sh b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/startODL.sh
new file mode 100755
index 0000000000..87c95ee3b3
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/startODL.sh
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# 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=========================================================
+###
+
+
+# Install SDN-C platform components if not already installed and start container
+
+ODL_HOME=${ODL_HOME:-/opt/opendaylight/current}
+ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U}
+SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
+SLEEP_TIME=${SLEEP_TIME:-120}
+MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0}
+
+#
+# Wait for database
+#
+echo "Waiting for mysql"
+until mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} mysql &> /dev/null
+do
+ printf "."
+ sleep 1
+done
+echo -e "\nmysql ready"
+
+if [ ! -f ${SDNC_HOME}/.installed ]
+then
+ echo "Installing SDN-C database"
+ ${SDNC_HOME}/bin/installSdncDb.sh
+ echo "Starting OpenDaylight"
+ ${ODL_HOME}/bin/start
+ echo "Waiting ${SLEEP_TIME} seconds for OpenDaylight to initialize"
+ sleep ${SLEEP_TIME}
+ echo "Installing SDN-C platform features"
+ ${SDNC_HOME}/bin/installFeatures.sh
+ if [ -x ${SDNC_HOME}/svclogic/bin/install.sh ]
+ then
+ echo "Installing directed graphs"
+ ${SDNC_HOME}/svclogic/bin/install.sh
+ fi
+
+
+ echo "Restarting OpenDaylight"
+ ${ODL_HOME}/bin/stop
+ echo "Installed at `date`" > ${SDNC_HOME}/.installed
+fi
+
+exec ${ODL_HOME}/bin/karaf
+
diff --git a/kubernetes/config/docker/init/src/config/appc/conf/aaiclient.properties b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/aaiclient.properties
index 67af3ff21c..9e29744bb3 100644
--- a/kubernetes/config/docker/init/src/config/appc/conf/aaiclient.properties
+++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/aaiclient.properties
@@ -39,7 +39,7 @@ org.onap.ccsdk.sli.adaptors.aai.application=openECOMP
#
# Configuration file for A&AI Client
#
-org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.onap-aai:8443
+org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.{{.Values.nsPrefix}}:8443
# query
@@ -133,8 +133,8 @@ org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v11/service-design-and
# UBB Notify
org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v11/actions/notify
-org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.onap-aai:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
-org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.onap-aai:8443/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.{{.Values.nsPrefix}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.{{.Values.nsPrefix}}:8443/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information
# Service
org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v11/service-design-and-creation/services/service/{service-id}
diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/dblib.properties b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/dblib.properties
new file mode 100644
index 0000000000..6107a80416
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/dblib.properties
@@ -0,0 +1,38 @@
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# 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=========================================================
+###
+
+# dblib.properrties
+org.onap.ccsdk.sli.dbtype=jdbc
+
+org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl
+org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver
+org.onap.ccsdk.sli.jdbc.database=sdnctl
+org.onap.ccsdk.sli.jdbc.user=sdnctl
+org.onap.ccsdk.sli.jdbc.password=gamma
+org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01
+org.onap.ccsdk.sli.jdbc.connection.timeout=50
+org.onap.ccsdk.sli.jdbc.request.timeout=100
+org.onap.ccsdk.sli.jdbc.limit.init=10
+org.onap.ccsdk.sli.jdbc.limit.min=10
+org.onap.ccsdk.sli.jdbc.limit.max=20
+org.onap.dblib.connection.recovery=false
+
diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/svclogic.properties b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/svclogic.properties
new file mode 100644
index 0000000000..2954bb00a5
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/svclogic.properties
@@ -0,0 +1,30 @@
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# 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=========================================================
+###
+
+org.onap.ccsdk.sli.dbtype = dblib
+#Note : the next 4 fields are only used if org.onap.ccsdk.sli.dbtype = jdbc
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl
+org.onap.ccsdk.sli.jdbc.database=sdnctl
+org.onap.ccsdk.sli.jdbc.user=sdnctl
+org.onap.ccsdk.sli.jdbc.password=gamma
+
+org.xml.sax.driver=org.apache.xerces.parsers.SAXParser
+
diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh
new file mode 100755
index 0000000000..ceeea5914f
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh
@@ -0,0 +1,30 @@
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# 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=========================================================
+###
+
+MYSQL_USER=${MYSQL_USER:-sdnctl}
+MYSQL_PWD=${MYSQL_PWD:-gamma}
+MYSQL_DB=${MYSQL_DB:-sdnctl}
+MYSQL_HOST=${MYSQL_HOST:-appc-dbhost.{{.Values.nsPrefix}}}
+
+mysql --user=${MYSQL_USER} --password=${MYSQL_PWD} --host=${MYSQL_HOST} ${MYSQL_DB} <<-END
+SELECT module, rpc, version, mode from SVC_LOGIC where active='Y';
+END
+
diff --git a/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties
new file mode 100644
index 0000000000..bcf321c947
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties
@@ -0,0 +1,27 @@
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# 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=========================================================
+###
+
+org.onap.ccsdk.sli.dbtype = jdbc
+org.onap.ccsdk.sli.jdbc.url = jdbc:mysql://appc-sdnctldb01.{{.Values.nsPrefix}}:3306/sdnctl
+org.onap.ccsdk.sli.jdbc.database = sdnctl
+org.onap.ccsdk.sli.jdbc.user = sdnctl
+org.onap.ccsdk.sli.jdbc.password = gamma
+
diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/installAppcDb.sh b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/installAppcDb.sh
new file mode 100755
index 0000000000..526d6f94ae
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/installAppcDb.sh
@@ -0,0 +1,54 @@
+###
+# ============LICENSE_START=======================================================
+# APPC
+# ================================================================================
+# 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=========================================================
+###
+
+SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
+APPC_HOME=${APPC_HOME:-/opt/openecomp/appc}
+MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0}
+
+APPC_DB_USER=${APPC_DB_USER:-appcctl}
+APPC_DB_PASSWD=${APPC_DB_PASSWD:-appcctl}
+APPC_DB_DATABASE=${SDN_DB_DATABASE:-appcctl}
+
+
+# Create tablespace and user account
+mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} mysql <<-END
+CREATE DATABASE ${APPC_DB_DATABASE};
+CREATE USER '${APPC_DB_USER}'@'localhost' IDENTIFIED BY '${APPC_DB_PASSWD}';
+CREATE USER '${APPC_DB_USER}'@'%' IDENTIFIED BY '${APPC_DB_PASSWD}';
+GRANT ALL PRIVILEGES ON ${APPC_DB_DATABASE}.* TO '${APPC_DB_USER}'@'localhost' WITH GRANT OPTION;
+GRANT ALL PRIVILEGES ON ${APPC_DB_DATABASE}.* TO '${APPC_DB_USER}'@'%' WITH GRANT OPTION;
+commit;
+END
+
+if [ -f ${APPC_HOME}/data/appcctl.dump ]
+then
+ mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} appcctl < ${APPC_HOME}/data/appcctl.dump
+fi
+
+if [ -f ${APPC_HOME}/data/sdnctl.dump ]
+then
+ mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} sdnctl < ${APPC_HOME}/data/sdnctl.dump
+fi
+
+if [ -f ${APPC_HOME}/data/sqlData.dump ]
+then
+ mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} sdnctl < ${APPC_HOME}/data/sqlData.dump
+fi
+
diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/startODL.sh b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/startODL.sh
new file mode 100755
index 0000000000..ba4ff52147
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/startODL.sh
@@ -0,0 +1,106 @@
+#!/bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# APPC
+# ================================================================================
+# 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.
+###
+
+#
+# This script takes care of installing the SDNC & APPC platform components
+# if not already installed, and starts the APPC Docker Container
+#
+
+ODL_HOME=${ODL_HOME:-/opt/opendaylight/current}
+ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U}
+SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
+APPC_HOME=${APPC_HOME:-/opt/openecomp/appc}
+SLEEP_TIME=${SLEEP_TIME:-120}
+MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0}
+
+#
+# Adding the DMAAP_TOPIC_ENV variable into APPC-ASDC-LISTENER properties
+#
+DMAAP_TOPIC_ENV=${DMAAP_TOPIC_ENV}
+
+if [ -z "$DMAAP_TOPIC_ENV" ]
+ then
+ echo "DMAAP_TOPIC_ENV shell variable is empty. Adding default value OS-ETE-DFW"
+ DMAAP_TOPIC_ENV="OS-ETE-DFW"
+ else
+ echo "DMAAP_TOPIC_ENV shell variable exists and it's $DMAAP_TOPIC_ENV"
+fi
+
+echo "Adding a value to property appc.asdc.env in appc.properties for appc-asdc-listener feature"
+echo "" >> $APPC_HOME/data/properties/appc.properties
+echo "appc.asdc.env=$DMAAP_TOPIC_ENV" >> $APPC_HOME/data/properties/appc.properties
+echo "" >> $APPC_HOME/data/properties/appc.properties
+
+#
+# Wait for database to init properly
+#
+echo "Waiting for mysql"
+until mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} mysql &> /dev/null
+do
+ printf "."
+ sleep 1
+done
+echo -e "\nmysql ready"
+
+if [ ! -f ${SDNC_HOME}/.installed ]
+then
+ echo "Installing SDNC database"
+ ${SDNC_HOME}/bin/installSdncDb.sh
+ echo "Installing APPC database"
+ ${APPC_HOME}/bin/installAppcDb.sh
+ echo "Starting OpenDaylight"
+ ${ODL_HOME}/bin/start
+ echo "Waiting ${SLEEP_TIME} seconds for OpenDaylight to initialize"
+ sleep ${SLEEP_TIME}
+ echo "Inserting modified installFeatures.sh for sdnc"
+ rm ${SDNC_HOME}/bin/installFeatures.sh
+ cp ${APPC_HOME}/data/sdncInstallFeatures.sh ${SDNC_HOME}/bin/installFeatures.sh
+ echo "Installing SDNC platform features"
+ ${SDNC_HOME}/bin/installFeatures.sh
+ if [ -x ${SDNC_HOME}/svclogic/bin/install.sh ]
+ then
+ echo "Installing directed graphs"
+ ${SDNC_HOME}/svclogic/bin/install.sh
+ fi
+
+ echo "Installing APPC platform features"
+ ${APPC_HOME}/bin/installFeatures.sh
+ if [ -x ${APPC_HOME}/svclogic/bin/install.sh ]
+ then
+ echo "Installing APPC DGs using platform-logic"
+ ${APPC_HOME}/svclogic/bin/install.sh
+ fi
+
+ if [ -x ${APPC_HOME}/svclogic/bin/install-converted-dgs.sh ]
+ then
+ echo "Installing APPC JSON DGs converted to XML using dg-loader"
+ ${APPC_HOME}/svclogic/bin/install-converted-dgs.sh
+ fi
+
+ echo "Restarting OpenDaylight"
+ ${ODL_HOME}/bin/stop
+ echo "Installed at `date`" > ${SDNC_HOME}/.installed
+fi
+
+exec ${ODL_HOME}/bin/karaf
+
diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/aaiclient.properties b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/aaiclient.properties
new file mode 100644
index 0000000000..9e29744bb3
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/aaiclient.properties
@@ -0,0 +1,248 @@
+###
+# ============LICENSE_START=======================================================
+# APPC
+# ================================================================================
+# 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=========================================================
+###
+
+#
+# Configuration file for A&AI Client
+#
+
+#
+# Certificate keystore and truststore
+#
+org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/openecomp/appc/data/stores/truststore.openecomp.client.jks
+org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=adminadmin
+org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true
+
+org.onap.ccsdk.sli.adaptors.aai.client.name=AAI
+org.onap.ccsdk.sli.adaptors.aai.client.psswd=AAI
+
+org.onap.ccsdk.sli.adaptors.aai.application=openECOMP
+#connection.timeout=1000
+#read.timeout=2000
+
+#
+# Configuration file for A&AI Client
+#
+org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.{{.Values.nsPrefix}}:8443
+
+
+# query
+org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v11/search/sdn-zone-query
+org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v11/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name}
+org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v11/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3
+
+# named query
+org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query
+
+
+#update
+org.onap.ccsdk.sli.adaptors.aai.update=/aai/v11/actions/update
+
+# vce
+org.onap.ccsdk.sli.adaptors.aai.path.vce =/aai/v11/network/vces/vce/
+org.onap.ccsdk.sli.adaptors.aai.path.vces=/aai/v11/network/vces/
+
+# vpe
+org.onap.ccsdk.sli.adaptors.aai.path.vpe =/aai/v11/network/vpes/vpe/
+org.onap.ccsdk.sli.adaptors.aai.path.vpes=/aai/v11/network/vpes/
+
+# customer
+org.onap.ccsdk.sli.adaptors.aai.path.customer=/aai/v11/business/customers/customer/{customer-id}
+
+# service subscription
+org.onap.ccsdk.sli.adaptors.aai.path.service.subscription=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}
+
+# service instance
+org.onap.ccsdk.sli.adaptors.aai.path.svcinst=/aai/v11/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances
+org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v11/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance
+org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v11/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}
+
+# complex
+org.onap.ccsdk.sli.adaptors.aai.path.complexes=/aai/v11/cloud-infrastructure/complexes
+org.onap.ccsdk.sli.adaptors.aai.path.complex=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}
+
+# tenant
+org.onap.ccsdk.sli.adaptors.aai.path.tenant=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}
+org.onap.ccsdk.sli.adaptors.aai.path.tenant.query=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name}
+
+# vservers
+org.onap.ccsdk.sli.adaptors.aai.path.vservers=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/
+org.onap.ccsdk.sli.adaptors.aai.path.vserver=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}
+
+# vpls-pe
+org.onap.ccsdk.sli.adaptors.aai.path.vpls.pes=/aai/v11/network/vpls-pes/
+org.onap.ccsdk.sli.adaptors.aai.path.vpls.pe =/aai/v11/network/vpls-pes/vpls-pe/
+
+# ctag-pool
+org.onap.ccsdk.sli.adaptors.aai.path.ctag.pools=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools
+org.onap.ccsdk.sli.adaptors.aai.path.ctag.pool=/aai/v11/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}
+
+#
+#-------------- 1510 ----------------------
+#
+
+# pservers
+org.onap.ccsdk.sli.adaptors.aai.path.pservers=/aai/v11/cloud-infrastructure/pservers
+org.onap.ccsdk.sli.adaptors.aai.path.pserver=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}
+
+# generic-vnf
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnfs=/aai/v11/network/generic-vnfs
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}
+
+# dvs-switch
+org.onap.ccsdk.sli.adaptors.aai.path.dvsswitches=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches
+org.onap.ccsdk.sli.adaptors.aai.path.dvsswitch=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name}
+
+# L3 Networks
+org.onap.ccsdk.sli.adaptors.aai.path.l3networks=/aai/v11/network/l3-networks
+org.onap.ccsdk.sli.adaptors.aai.path.l3network=/aai/v11/network/l3-networks/l3-network/{network-id}
+org.onap.ccsdk.sli.adaptors.aai.path.l3network.query.name=/aai/v11/network/l3-networks/l3-network?network-name={network-name}
+
+# P-Interfaces
+org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces
+org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}
+
+# Physical Link
+org.onap.ccsdk.sli.adaptors.aai.path.physical.links=/aai/v11/network/physical-links
+org.onap.ccsdk.sli.adaptors.aai.path.physical.link=/aai/v11/network/physical-links/physical-link/{link-name}
+
+# VPN Bindings
+org.onap.ccsdk.sli.adaptors.aai.path.vpn.bindings=/aai/v11/network/vpn-bindings/
+org.onap.ccsdk.sli.adaptors.aai.path.vpn.binding=/aai/v11/network/vpn-bindings/vpn-binding/{vpn-id}
+
+# VNF IMAGES
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v11/service-design-and-creation/vnf-images
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v11/service-design-and-creation/vnf-images/vnf-image/{att-uuid}
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v11/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor}
+
+# UBB Notify
+org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v11/actions/notify
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.{{.Values.nsPrefix}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.{{.Values.nsPrefix}}:8443/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information
+
+# Service
+org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v11/service-design-and-creation/services/service/{service-id}
+org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v11/service-design-and-creation/services
+
+
+#
+#-------------- 1604 ----------------------
+#
+
+# VNFC
+org.onap.ccsdk.sli.adaptors.aai.path.vnfc=/aai/v11/network/vnfcs/vnfc/{vnfc-name}
+
+# class-of-service
+org.onap.ccsdk.sli.adaptors.aai.path.class.of.service=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos-id}
+
+# site-pair
+org.onap.ccsdk.sli.adaptors.aai.path.site.pair=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}
+
+# routing-instance
+org.onap.ccsdk.sli.adaptors.aai.path.routing.instance=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}
+
+# site-pair-set
+org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set=/aai/v11/network/site-pair-sets/site-pair-set/{site-pair-set-id}
+
+# license key resource
+org.onap.ccsdk.sli.adaptors.aai.path.license.acquire=/aai/v11/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid}
+org.onap.ccsdk.sli.adaptors.aai.path.license=/aai/v11/license-management/license-key-resources/license-key-resource/{att-uuid}
+
+# logical-link
+org.onap.ccsdk.sli.adaptors.aai.path.logical.link =/aai/v11/network/logical-links/logical-link/{link-name}
+
+# virtual-data-center
+org.onap.ccsdk.sli.adaptors.aai.path.virtual.data.center=/aai/v11/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}
+
+# wan-connector
+org.onap.ccsdk.sli.adaptors.aai.path.wan.connector=/aai/v11/business/connectors/connector/{resource-instance-id}
+
+# l-interface
+org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface=/aai/v11/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+
+# l-interface pnf
+org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+
+# subinterface
+org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface=/aai/v11/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface=/aai/v11/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+
+# vlans
+org.onap.ccsdk.sli.adaptors.aai.path.vlan=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.vlan=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
+
+# l3-interface-ipv4-address-list
+org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+
+# l3-interface-ipv6-address-list
+org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
+org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
+
+# ipsec-configuration
+org.onap.ccsdk.sli.adaptors.aai.path.ipsec.configuration=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}
+
+# vig server
+org.onap.ccsdk.sli.adaptors.aai.path.vig.server=/aai/v11/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type}
+
+# l3-network
+org.onap.ccsdk.sli.adaptors.aai.path.l3.network=/aai/v11/network/l3-networks/l3-network/{network-id}
+
+# subnet
+org.onap.ccsdk.sli.adaptors.aai.path.subnet=/aai/v11/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}
+
+# multicast-configuration
+org.onap.ccsdk.sli.adaptors.aai.path.multicast.configuration=/aai/v11/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}
+
+# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv4.address.list
+org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+
+# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.vlan.ipv4.address.list
+org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+
+# org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv6.address.list
+org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv6.address.list=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
+
+# volume.group
+org.onap.ccsdk.sli.adaptors.aai.path.volume.group=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id}
+
+#cloud region
+org.onap.ccsdk.sli.adaptors.aai.path.cloud.region=/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}
+
+# vf-module
+org.onap.ccsdk.sli.adaptors.aai.path.vf.module=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id}
+
+# l-interface through generic-vnf
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.linterface=/aai/v11/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}
+
+# network-policy
+org.onap.ccsdk.sli.adaptors.aai.path.network.policy=/aai/v11/network/network-policies/network-policy/{network-policy-id}
+
+# pnf
+org.onap.ccsdk.sli.adaptors.aai.path.pnf=/aai/v11/network/pnfs/pnf/{pnf-name}
+
+#
+# Formatting
+#
+org.onap.ccsdk.sli.adaptors.aai.param.format=filter=%s:%s
+org.onap.ccsdk.sli.adaptors.aai.param.vnf_type=vnf-type
+org.onap.ccsdk.sli.adaptors.aai.param.physical.location.id=physical-location-id
+org.onap.ccsdk.sli.adaptors.aai.param.service.type=service-type
diff --git a/kubernetes/config/docker/init/src/config/appc/conf/appc.properties b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/appc.properties
index 3ac5aaee0b..de577c43cb 100644
--- a/kubernetes/config/docker/init/src/config/appc/conf/appc.properties
+++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/appc.properties
@@ -22,7 +22,7 @@
### ###
### Properties for demo ###
### ###
-appc.demo.poolMembers=dmaap.onap-message-router:3904
+appc.demo.poolMembers=dmaap.{{.Values.nsPrefix}}:3904
appc.demo.topic.read=APPC-CL
appc.demo.topic.write=APPC-CL
appc.demo.client.name=appcDemoEventListener
@@ -33,7 +33,7 @@ appc.demo.threads.poolsize.max=2
appc.demo.provider.user=admin
appc.demo.provider.pass=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
appc.demo.provider.url=http://localhost:8181/restconf/operations/appc-provider
-appc.provider.vfodl.url=http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@sdnhost.onap-appc:8282/restconf/config/network-topology:network-topology/topology/topology-netconf/node/NODE_NAME/yang-ext:mount/sample-plugin:sample-plugin/pg-streams/
+appc.provider.vfodl.url=http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@appc-sdnhost.{{.Values.nsPrefix}}:8282/restconf/config/network-topology:network-topology/topology/topology-netconf/node/NODE_NAME/yang-ext:mount/sample-plugin:sample-plugin/pg-streams/
# The properties right below are needed to properly call the Master DG to serve demo purposes
appc.service.logic.module.name=APPC
@@ -41,11 +41,11 @@ appc.topology.dg.method=topology-operation-all
appc.topology.dg.version=2.0.0
# TEMP - Properties that might be needed to make the AAI-APPC connection
-org.openecomp.appc.db.url.appcctl=jdbc:mysql://dbhost:3306/appcctl
+org.openecomp.appc.db.url.appcctl=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/appcctl
org.openecomp.appc.db.user.appcctl=appcctl
org.openecomp.appc.db.pass.appcctl=appcctl
-org.openecomp.appc.db.url.sdnctl=jdbc:mysql://dbhost:3306/sdnctl
+org.openecomp.appc.db.url.sdnctl=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl
org.openecomp.appc.db.user.sdnctl=sdnctl
org.openecomp.appc.db.pass.sdnctl=gamma
@@ -74,11 +74,11 @@ provider1.tenant1.password=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
# Property below is valid in appc-command-executor-core, appc-license-manager-core, appc-lifecycle-management-core,
# appc-request-handler-core, appc-workflow-management-core (all from the appc-dispatcher package).
-dmaap.poolMembers=dmaap.onap-message-router:3904
+dmaap.poolMembers=dmaap.{{.Values.nsPrefix}}:3904
# appc-event-listener-bundle properties (only defined in src/test of default.properties)
-appc.LCM.poolMembers=dmaap.onap-message-router:3904
+appc.LCM.poolMembers=dmaap.{{.Values.nsPrefix}}:3904
appc.LCM.topic.read=APPC-LCM-READ
appc.LCM.topic.write=APPC-LCM-WRITE
appc.LCM.client.name=APPC-EVENT-LISTENER-TEST
@@ -87,8 +87,8 @@ appc.LCM.provider.pass=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
appc.LCM.provider.url=http://localhost:8181/restconf/operations/appc-provider-lcm
# properties from appc-netconf-adapter-bundle, appc-dg-common, appc-dmaap-adapter-bundle
-poolMembers=dmaap.onap-message-router:3904
-event.pool.members=dmaap.onap-message-router:3904
+poolMembers=dmaap.{{.Values.nsPrefix}}:3904
+event.pool.members=dmaap.{{.Values.nsPrefix}}:3904
restconf.user=admin
restconf.pass=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
@@ -106,7 +106,7 @@ test.url=http://api.appc.local/vm/9999999/test/99999999-9999-9999-9999-999999999
org.openecomp.appc.iaas.skiphypervisorcheck=true
# Properties from default.properties in the src/test and src/main paths of appc-asdc-listener-bundle
-appc.sdc.host=sdc-be.onap-sdc:8443
+appc.sdc.host=sdc-be.{{.Values.nsPrefix}}:8443
appc.sdc.env=APPC-ASDC-ENV
appc.sdc.user=test
appc.sdc.pass=test
@@ -118,12 +118,12 @@ appc.sdc.provider.url=http://localhost:8181/restconf/operations/AsdcMessage:conf
DCAE.dmaap.event.topic.write=EventSenderTest
DCAE.dmaap.appc.username=test
DCAE.dmaap.appc.password=test
-DCAE.dmaap.event.pool.members=dmaap.onap-message-router:3904
+DCAE.dmaap.event.pool.members=dmaap.{{.Values.nsPrefix}}:3904
#OAM Listener
appc.OAM.disabled=true
appc.OAM.provider.url=http://localhost:8181/restconf/operations/appc-oam
-appc.OAM.poolMembers=dmaap.onap-message-router:3904
+appc.OAM.poolMembers=dmaap.{{.Values.nsPrefix}}:3904
appc.OAM.service=ueb
appc.OAM.topic.read=testOAM
appc.OAM.topic.write=testOAM
diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/dblib.properties b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/dblib.properties
new file mode 100644
index 0000000000..888ee9f0d9
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/dblib.properties
@@ -0,0 +1,37 @@
+###
+# ============LICENSE_START=======================================================
+# APPC
+# ================================================================================
+# 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=========================================================
+###
+
+# dblib.properrties
+org.onap.ccsdk.sli.dbtype=jdbc
+
+org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl
+org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver
+org.onap.ccsdk.sli.jdbc.database=sdnctl
+org.onap.ccsdk.sli.jdbc.user=sdnctl
+org.onap.ccsdk.sli.jdbc.password=gamma
+org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01
+org.onap.ccsdk.sli.jdbc.connection.timeout=50
+org.onap.ccsdk.sli.jdbc.request.timeout=100
+org.onap.ccsdk.sli.jdbc.limit.init=10
+org.onap.ccsdk.sli.jdbc.limit.min=10
+org.onap.ccsdk.sli.jdbc.limit.max=20
+org.onap.dblib.connection.recovery=false
+
diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/svclogic.properties b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/svclogic.properties
new file mode 100644
index 0000000000..ea38616810
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/svclogic.properties
@@ -0,0 +1,29 @@
+###
+# ============LICENSE_START=======================================================
+# APPC
+# ================================================================================
+# 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=========================================================
+###
+
+org.onap.ccsdk.sli.dbtype = dblib
+#Note : the next 4 fields are only used if org.onap.ccsdk.sli.dbtype = jdbc
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl
+org.onap.ccsdk.sli.jdbc.database=sdnctl
+org.onap.ccsdk.sli.jdbc.user=sdnctl
+org.onap.ccsdk.sli.jdbc.password=gamma
+
+org.xml.sax.driver=org.apache.xerces.parsers.SAXParser
+
diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh
new file mode 100755
index 0000000000..5409d9e552
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh
@@ -0,0 +1,29 @@
+###
+# ============LICENSE_START=======================================================
+# APPC
+# ================================================================================
+# 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.
+###
+
+MYSQL_USER=${MYSQL_USER:-sdnctl}
+MYSQL_PWD=${MYSQL_PWD:-gamma}
+MYSQL_DB=${MYSQL_DB:-sdnctl}
+MYSQL_HOST=${MYSQL_HOST:-appc-dbhost.{{.Values.nsPrefix}}}
+
+mysql --user=${MYSQL_USER} --password=${MYSQL_PWD} --host=${MYSQL_HOST} ${MYSQL_DB} <<-END
+SELECT module, rpc, version, mode from SVC_LOGIC where active='Y';
+END
diff --git a/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/config/svclogic.properties b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/config/svclogic.properties
new file mode 100644
index 0000000000..2f67a5822f
--- /dev/null
+++ b/kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/config/svclogic.properties
@@ -0,0 +1,27 @@
+###
+# ============LICENSE_START=======================================================
+# APPC
+# ================================================================================
+# 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.
+###
+
+org.onap.ccsdk.sli.dbtype = jdbc
+org.onap.ccsdk.sli.jdbc.url = jdbc:mysql://appc-sdnctldb01.{{.Values.nsPrefix}}:3306/sdnctl
+org.onap.ccsdk.sli.jdbc.database = sdnctl
+org.onap.ccsdk.sli.jdbc.user = sdnctl
+org.onap.ccsdk.sli.jdbc.password = gamma
+
diff --git a/kubernetes/appc/resources/config/dgbuilder/svclogic.properties b/kubernetes/appc/resources/config/dgbuilder/svclogic.properties
new file mode 100644
index 0000000000..8b0723b72b
--- /dev/null
+++ b/kubernetes/appc/resources/config/dgbuilder/svclogic.properties
@@ -0,0 +1,5 @@
+org.onap.ccsdk.sli.dbtype=jdbc
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl
+org.onap.ccsdk.sli.jdbc.database=sdnctl
+org.onap.ccsdk.sli.jdbc.user=sdnctl
+org.onap.ccsdk.sli.jdbc.password=gamma
diff --git a/kubernetes/appc/resources/config/log/filebeat/log4j/filebeat.yml b/kubernetes/appc/resources/config/log/filebeat/log4j/filebeat.yml
new file mode 100644
index 0000000000..2cd63e1d98
--- /dev/null
+++ b/kubernetes/appc/resources/config/log/filebeat/log4j/filebeat.yml
@@ -0,0 +1,49 @@
+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
+
+ # The below commented properties are for time-based rolling policy. But as the log4j 1.2x does not support time-based rolling these properties are not set
+ #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
+
+ #Multiline properties for log4j xml log events
+ multiline.pattern: '</log4j:event>'
+ multiline.negate: true
+ multiline.match: before
+ #multiline.max_lines: 500
+ #multiline.timeout: 5s
+
+# 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: ["logstash.{{.Values.nsPrefix}}:5044"]
+ #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/config/docker/init/src/config/log/appc/org.ops4j.pax.logging.cfg b/kubernetes/appc/resources/config/log/org.ops4j.pax.logging.cfg
index c582620fa8..c582620fa8 100644
--- a/kubernetes/config/docker/init/src/config/log/appc/org.ops4j.pax.logging.cfg
+++ b/kubernetes/appc/resources/config/log/org.ops4j.pax.logging.cfg
diff --git a/kubernetes/appc/resources/scripts/dgbuilder/createReleaseDir.sh b/kubernetes/appc/resources/scripts/dgbuilder/createReleaseDir.sh
new file mode 100755
index 0000000000..d63687a644
--- /dev/null
+++ b/kubernetes/appc/resources/scripts/dgbuilder/createReleaseDir.sh
@@ -0,0 +1,129 @@
+#!/bin/bash
+export PATH=$PATH:.
+appDir=$(pwd)
+if [ "$#" != 3 -a "$#" != 4 ]
+then
+ echo "Usage $0 releaseDir loginId emailAddress [gitLocalRepository]"
+ echo "Note: Specify the gitLocalRepository path if you would want to be able to import flows from your local git repository"
+ exit
+fi
+if [ ! -e "releases" ]
+then
+ mkdir releases
+fi
+releaseDir="$1"
+name="Release $releaseDir"
+loginId="$2"
+emailid="$3"
+dbHost="appc-dbhost.{{.Values.nsPrefix}}"
+dbPort="3306"
+dbName="sdnctl"
+dbUser="sdnctl"
+dbPassword="gamma"
+gitLocalRepository="$4"
+
+lastPort=$(find "releases/" -name "customSettings.js" |xargs grep uiPort|cut -d: -f2|sed -e s/,//|sort|tail -1)
+echo $lastPort|grep uiPort >/dev/null 2>&1
+if [ "$?" == "0" ]
+then
+lastPort=$(find "releases/" -name "customSettings.js" |xargs grep uiPort|cut -d: -f3|sed -e s/,//|sort|tail -1)
+fi
+#echo $lastPort
+if [ "${lastPort}" == "" ]
+then
+ lastPort="3099"
+fi
+let nextPort=$(expr $lastPort+1)
+#echo $nextPort
+if [ ! -e "releases/$releaseDir" ]
+then
+mkdir releases/$releaseDir
+cd releases/$releaseDir
+mkdir flows
+mkdir flows/shared
+mkdir flows/shared/backups
+mkdir html
+mkdir xml
+mkdir lib
+mkdir lib/flows
+mkdir logs
+mkdir conf
+mkdir codecloud
+customSettingsFile="customSettings.js"
+if [ ! -e "./$customSettingsFile" ]
+then
+ echo "module.exports = {" >$customSettingsFile
+ echo " 'name' : '$name'," >>$customSettingsFile
+ echo " 'emailAddress' :'$emailid'," >>$customSettingsFile
+ echo " 'uiPort' :$nextPort," >>$customSettingsFile
+ echo " 'mqttReconnectTime': 15000," >>$customSettingsFile
+ echo " 'serialReconnectTime' : 15000," >>$customSettingsFile
+ echo " 'debugMaxLength': 1000," >>$customSettingsFile
+ echo " 'htmlPath': 'releases/$releaseDir/html/'," >>$customSettingsFile
+ echo " 'xmlPath': 'releases/$releaseDir/xml/'," >>$customSettingsFile
+ echo " 'flowFile' : 'releases/$releaseDir/flows/flows.json'," >>$customSettingsFile
+ echo " 'sharedDir': 'releases/$releaseDir/flows/shared'," >>$customSettingsFile
+ echo " 'userDir' : 'releases/$releaseDir'," >>$customSettingsFile
+ echo " 'httpAuth': {user:'$loginId',pass:'cc03e747a6afbbcbf8be7668acfebee5'}," >>$customSettingsFile
+ echo " 'dbHost': '$dbHost'," >>$customSettingsFile
+ echo " 'dbPort': '$dbPort'," >>$customSettingsFile
+ echo " 'dbName': '$dbName'," >>$customSettingsFile
+ echo " 'dbUser': '$dbUser'," >>$customSettingsFile
+ echo " 'dbPassword': '$dbPassword'," >>$customSettingsFile
+ echo " 'gitLocalRepository': '$gitLocalRepository'" >>$customSettingsFile
+ echo " }" >>$customSettingsFile
+fi
+ #echo "Created custom settings file $customSettingsFile"
+ echo "Done ....."
+else
+ echo "ERROR:customSettings file $customSettingsFile already exists for $releaseDir"
+ exit
+fi
+#echo "Content of custom settings file"
+#echo "============================================================================"
+# cat $customSettingsFile
+#echo "============================================================================"
+svclogicPropFile="./conf/svclogic.properties"
+if [ ! -d "${appDir}/yangFiles" ]
+then
+ mkdir -p "${appDir}/yangFiles"
+fi
+if [ ! -d "${appDir}/generatedJS" ]
+then
+ mkdir -p "${appDir}/generatedJS"
+fi
+
+if [ ! -e "./$svclogicPropFile" ]
+then
+ echo "org.onap.ccsdk.sli.dbtype=jdbc" >$svclogicPropFile
+ echo "org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl" >>$svclogicPropFile
+ echo "org.onap.ccsdk.sli.jdbc.database=sdnctl" >>$svclogicPropFile
+ echo "org.onap.ccsdk.sli.jdbc.user=sdnctl" >>$svclogicPropFile
+ echo "org.onap.ccsdk.sli.jdbc.password=gamma" >>$svclogicPropFile
+fi
+if [ ! -e "${appDir}/flowShareUsers.js" ]
+then
+ echo "module.exports = {\"flowShareUsers\":" >${appDir}/flowShareUsers.js
+ echo " [" >>${appDir}/flowShareUsers.js
+ echo " ]" >>${appDir}/flowShareUsers.js
+ echo "}" >>${appDir}/flowShareUsers.js
+fi
+grep "$releaseDir" ${appDir}/flowShareUsers.js >/dev/null 2>&1
+if [ "$?" != "0" ]
+then
+ num_of_lines=$(cat ${appDir}/flowShareUsers.js|wc -l)
+ if [ $num_of_lines -gt 4 ]
+ then
+ content=$(head -n -2 ${appDir}/flowShareUsers.js)
+ echo "${content}," > ${appDir}/flowShareUsers.js
+ else
+ content=$(head -n -2 ${appDir}/flowShareUsers.js)
+ echo "$content" > ${appDir}/flowShareUsers.js
+ fi
+ echo " {" >> ${appDir}/flowShareUsers.js
+ echo " \"name\" : \"$name\"," >> ${appDir}/flowShareUsers.js
+ echo " \"rootDir\" : \"$releaseDir\"" >> ${appDir}/flowShareUsers.js
+ echo " }" >> ${appDir}/flowShareUsers.js
+ echo " ]" >> ${appDir}/flowShareUsers.js
+ echo "}" >> ${appDir}/flowShareUsers.js
+fi
diff --git a/kubernetes/appc/resources/scripts/dgbuilder/customSettings.js b/kubernetes/appc/resources/scripts/dgbuilder/customSettings.js
new file mode 100644
index 0000000000..40a624d44d
--- /dev/null
+++ b/kubernetes/appc/resources/scripts/dgbuilder/customSettings.js
@@ -0,0 +1,38 @@
+module.exports={
+ "name": "Release sdnc1.0",
+ "emailAddress": "dguser@onap.org",
+ "uiPort": 3100,
+ "mqttReconnectTime": 15000,
+ "serialReconnectTime": 15000,
+ "debugMaxLength": 1000,
+ "htmlPath": "releases/sdnc1.0/html/",
+ "xmlPath": "releases/sdnc1.0/xml/",
+ "flowFile": "releases/sdnc1.0/flows/flows.json",
+ "sharedDir": "releases/sdnc1.0/flows/shared",
+ "userDir": "releases/sdnc1.0",
+ "httpAuth": {
+ "user": "dguser",
+ "pass": "cc03e747a6afbbcbf8be7668acfebee5"
+ },
+ "dbHost": "appc-dbhost.{{.Values.nsPrefix}}",
+ "dbPort": "3306",
+ "dbName": "sdnctl",
+ "dbUser": "sdnctl",
+ "dbPassword": "gamma",
+ "gitLocalRepository": "",
+ "httpRoot": "/",
+ "disableEditor": false,
+ "httpAdminRoot": "/",
+ "httpAdminAuth": {
+ "user": "dguser",
+ "pass": "cc03e747a6afbbcbf8be7668acfebee5"
+ },
+ "httpNodeRoot": "/",
+ "httpNodeAuth": {
+ "user": "dguser",
+ "pass": "cc03e747a6afbbcbf8be7668acfebee5"
+ },
+ "uiHost": "0.0.0.0",
+ "version": "0.9.1",
+ "performGitPull": "N"
+}
diff --git a/kubernetes/appc/templates/all-services.yaml b/kubernetes/appc/templates/all-services.yaml
index 8f7ed19ae1..181cab9590 100644
--- a/kubernetes/appc/templates/all-services.yaml
+++ b/kubernetes/appc/templates/all-services.yaml
@@ -2,8 +2,8 @@
apiVersion: v1
kind: Service
metadata:
- name: dbhost
- namespace: "{{ .Values.nsPrefix }}-appc"
+ name: appc-dbhost
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: appc-dbhost
spec:
@@ -17,8 +17,8 @@ spec:
apiVersion: v1
kind: Service
metadata:
- name: sdnctldb01
- namespace: "{{ .Values.nsPrefix }}-appc"
+ name: appc-sdnctldb01
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: appc-dbhost
spec:
@@ -31,8 +31,8 @@ spec:
apiVersion: v1
kind: Service
metadata:
- name: sdnctldb02
- namespace: "{{ .Values.nsPrefix }}-appc"
+ name: appc-sdnctldb02
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: appc-dbhost
spec:
@@ -47,8 +47,8 @@ spec:
apiVersion: v1
kind: Service
metadata:
- name: sdnhost
- namespace: "{{ .Values.nsPrefix }}-appc"
+ name: appc-sdnhost
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: appc
spec:
@@ -69,8 +69,8 @@ spec:
apiVersion: v1
kind: Service
metadata:
- name: dgbuilder
- namespace: "{{ .Values.nsPrefix }}-appc"
+ name: appc-dgbuilder
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: appc-dgbuilder
spec:
@@ -82,4 +82,4 @@ spec:
type: NodePort
selector:
app: appc-dgbuilder
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/appc/templates/appc-configmap.yaml b/kubernetes/appc/templates/appc-configmap.yaml
new file mode 100644
index 0000000000..8d00842183
--- /dev/null
+++ b/kubernetes/appc/templates/appc-configmap.yaml
@@ -0,0 +1,73 @@
+#{{ if not .Values.disableAppcAppc }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-openecomp-appc-data-properties-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/openecomp/appc/data/properties/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-openecomp-appc-svclogic-config-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/openecomp/appc/svclogic/config/svclogic.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-openecomp-appc-svclogic-bin-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-openecomp-appc-bin-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/openecomp/appc/bin/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-onap-sdnc-data-properties-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/data/properties/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-onap-sdnc-svclogic-config-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-onap-sdnc-svclogic-bin-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-onap-sdnc-bin-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/bin/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-scripts-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/scripts/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/appc/templates/appc-deployment.yaml b/kubernetes/appc/templates/appc-deployment.yaml
index f4593b0d73..78bef5e22d 100644
--- a/kubernetes/appc/templates/appc-deployment.yaml
+++ b/kubernetes/appc/templates/appc-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: appc
- namespace: "{{ .Values.nsPrefix }}-appc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.appcReplicas }}
selector:
matchLabels:
app: appc
@@ -41,6 +42,8 @@ spec:
value: /opt/openecomp/appc/data/properties
- name: DMAAP_TOPIC_ENV
value: SUCCESS
+ - name: MYSQL_HOST
+ value: appc-dbhost
image: {{ .Values.image.appc }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: appc-controller-container
@@ -48,16 +51,56 @@ spec:
- mountPath: /etc/localtime
name: localtime
readOnly: true
+ - mountPath: /opt/openecomp/appc/data/properties/dblib.properties
+ name: appc-openecomp-appc-data-properties
+ subPath: dblib.properties
+ - mountPath: /opt/openecomp/appc/data/properties/svclogic.properties
+ name: appc-openecomp-appc-data-properties
+ subPath: svclogic.properties
- mountPath: /opt/openecomp/appc/data/properties/appc.properties
- name: appc-properties
+ name: appc-openecomp-appc-data-properties
+ subPath: appc.properties
- mountPath: /opt/openecomp/appc/data/properties/aaiclient.properties
- name: appc-aaiclient-properties
+ name: appc-openecomp-appc-data-properties
+ subPath: aaiclient.properties
+ - mountPath: /opt/openecomp/appc/svclogic/config/svclogic.properties
+ name: appc-openecomp-appc-svclogic-config
+ subPath: svclogic.properties
+ - mountPath: /opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh
+ name: appc-openecomp-appc-svclogic-bin
+ subPath: showActiveGraphs.sh
+ - mountPath: /opt/openecomp/appc/bin/startODL.sh
+ name: appc-openecomp-appc-bin
+ subPath: startODL.sh
+ - mountPath: /opt/openecomp/appc/bin/installAppcDb.sh
+ name: appc-openecomp-appc-bin
+ subPath: installAppcDb.sh
+ - mountPath: /opt/onap/sdnc/data/properties/dblib.properties
+ name: appc-onap-sdnc-data-properties
+ subPath: dblib.properties
+ - mountPath: /opt/onap/sdnc/data/properties/svclogic.properties
+ name: appc-onap-sdnc-data-properties
+ subPath: svclogic.properties
- mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties
- name: sdnc-aaiclient-properties
+ name: appc-onap-sdnc-data-properties
+ subPath: aaiclient.properties
+ - mountPath: /opt/onap/sdnc/svclogic/config/svclogic.properties
+ name: appc-onap-sdnc-svclogic-config
+ subPath: svclogic.properties
+ - mountPath: /opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh
+ name: appc-onap-sdnc-svclogic-bin
+ subPath: showActiveGraphs.sh
+ - mountPath: /opt/onap/sdnc/bin/startODL.sh
+ name: appc-onap-sdnc-bin
+ subPath: startODL.sh
+ - mountPath: /opt/onap/sdnc/bin/installSdncDb.sh
+ name: appc-onap-sdnc-bin
+ subPath: installSdncDb.sh
- mountPath: /var/log/onap
name: appc-logs
- mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg
name: appc-log-config
+ subPath: org.ops4j.pax.logging.cfg
ports:
- containerPort: 8181
- containerPort: 1830
@@ -72,6 +115,7 @@ spec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: appc-logs
- mountPath: /usr/share/filebeat/data
@@ -81,24 +125,43 @@ spec:
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/log4j/filebeat.yml
+ configMap:
+ name: appc-filebeat-configmap
- name: appc-log-config
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/appc/org.ops4j.pax.logging.cfg
+ configMap:
+ name: appc-logging-cfg-configmap
- name: appc-logs
emptyDir: {}
- name: appc-data-filebeat
emptyDir: {}
- - name: appc-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/appc/conf/appc.properties
- - name: appc-aaiclient-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/appc/conf/aaiclient.properties
- - name: sdnc-aaiclient-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/conf/aaiclient.properties
+ - name: appc-openecomp-appc-data-properties
+ configMap:
+ name: appc-openecomp-appc-data-properties-configmap
+ - name: appc-openecomp-appc-svclogic-config
+ configMap:
+ name: appc-openecomp-appc-svclogic-config-configmap
+ - name: appc-openecomp-appc-svclogic-bin
+ configMap:
+ name: appc-openecomp-appc-svclogic-bin-configmap
+ defaultMode: 0755
+ - name: appc-openecomp-appc-bin
+ configMap:
+ name: appc-openecomp-appc-bin-configmap
+ defaultMode: 0755
+ - name: appc-onap-sdnc-data-properties
+ configMap:
+ name: appc-onap-sdnc-data-properties-configmap
+ - name: appc-onap-sdnc-svclogic-config
+ configMap:
+ name: appc-onap-sdnc-svclogic-config-configmap
+ - name: appc-onap-sdnc-svclogic-bin
+ configMap:
+ name: appc-onap-sdnc-svclogic-bin-configmap
+ defaultMode: 0755
+ - name: appc-onap-sdnc-bin
+ configMap:
+ name: appc-onap-sdnc-bin-configmap
+ defaultMode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/appc/templates/appc-dgbuilder-configmap.yaml b/kubernetes/appc/templates/appc-dgbuilder-configmap.yaml
new file mode 100644
index 0000000000..f846c199a1
--- /dev/null
+++ b/kubernetes/appc/templates/appc-dgbuilder-configmap.yaml
@@ -0,0 +1,17 @@
+#{{ if not .Values.disableAppcAppc }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-dgbuilder-conf-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/dgbuilder/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-dgbuilder-scripts-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/scripts/dgbuilder/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/appc/templates/appc-log-configmap.yaml b/kubernetes/appc/templates/appc-log-configmap.yaml
new file mode 100644
index 0000000000..9e102e1b88
--- /dev/null
+++ b/kubernetes/appc/templates/appc-log-configmap.yaml
@@ -0,0 +1,17 @@
+#{{ if not .Values.disableAppcAppc }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/log4j/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: appc-logging-cfg-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/appc/templates/appc-pv-pvc.yaml b/kubernetes/appc/templates/appc-pv-pvc.yaml
index 1702ba8ecb..ff0f89af49 100644
--- a/kubernetes/appc/templates/appc-pv-pvc.yaml
+++ b/kubernetes/appc/templates/appc-pv-pvc.yaml
@@ -2,10 +2,10 @@
apiVersion: v1
kind: PersistentVolume
metadata:
- name: "{{ .Values.nsPrefix }}-appc-db"
- namespace: "{{ .Values.nsPrefix }}-appc"
+ name: "{{ .Values.nsPrefix }}-appc"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
- name: "{{ .Values.nsPrefix }}-appc-db"
+ name: "{{ .Values.nsPrefix }}-appc"
spec:
capacity:
storage: 2Gi
@@ -13,13 +13,13 @@ spec:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/appc/data
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/appc/data
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: appc-db
- namespace: "{{ .Values.nsPrefix }}-appc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
accessModes:
- ReadWriteMany
@@ -28,5 +28,5 @@ spec:
storage: 2Gi
selector:
matchLabels:
- name: "{{ .Values.nsPrefix }}-appc-db"
-#{{ end }} \ No newline at end of file
+ name: "{{ .Values.nsPrefix }}-appc"
+#{{ end }}
diff --git a/kubernetes/appc/templates/db-deployment.yaml b/kubernetes/appc/templates/db-deployment.yaml
index 607a0df81f..41d9d5b520 100644
--- a/kubernetes/appc/templates/db-deployment.yaml
+++ b/kubernetes/appc/templates/db-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: appc-dbhost
- namespace: "{{ .Values.nsPrefix }}-appc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.dbReplicas }}
selector:
matchLabels:
app: appc-dbhost
@@ -45,4 +46,4 @@ spec:
claimName: appc-db
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/appc/templates/dgbuilder-deployment.yaml b/kubernetes/appc/templates/dgbuilder-deployment.yaml
index ed69c05f38..fe9a198aef 100644
--- a/kubernetes/appc/templates/dgbuilder-deployment.yaml
+++ b/kubernetes/appc/templates/dgbuilder-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: appc-dgbuilder
- namespace: "{{ .Values.nsPrefix }}-appc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.dgbuilderReplicas }}
selector:
matchLabels:
app: appc-dgbuilder
@@ -55,10 +56,29 @@ spec:
- name: localtime
mountPath: /etc/localtime
readOnly: true
+ - name: dgbuilder-conf
+ mountPath: /opt/onap/sdnc/dgbuilder/releases/sdnc1.0/conf/svclogic.properties
+ subPath: svclogic.properties
+ - name: dgbuilder-conf
+ mountPath: /opt/onap/sdnc/dgbuilder/svclogic/svclogic.properties
+ subPath: svclogic.properties
+ - name: dgbuilder-scripts
+ mountPath: /opt/onap/sdnc/dgbuilder/createReleaseDir.sh
+ subPath: createReleaseDir.sh
+ - name: dgbuilder-scripts
+ mountPath: /opt/onap/sdnc/dgbuilder/releases/sdnc1.0/customSettings.js
+ subPath: customSettings.js
volumes:
- name: localtime
hostPath:
path: /etc/localtime
+ - name: dgbuilder-conf
+ configMap:
+ name: appc-dgbuilder-conf-configmap
+ - name: dgbuilder-scripts
+ configMap:
+ name: appc-dgbuilder-scripts-configmap
+ defaultMode: 0755
restartPolicy: Always
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/appc/values.yaml b/kubernetes/appc/values.yaml
index 882267c41d..1a0cc51b71 100644
--- a/kubernetes/appc/values.yaml
+++ b/kubernetes/appc/values.yaml
@@ -1,9 +1,13 @@
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+appcReplicas: 1
+dbReplicas: 1
+dgbuilderReplicas: 1
+dataRootDir: /dockerdata-nfs
image:
- readiness: oomk8s/readiness-check:1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
appc: nexus3.onap.org:10001/openecomp/appc-image:v1.2.0
mysqlServer: mysql/mysql-server:5.6
dgbuilderSdnc: nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image:v0.1.0
- filebeat: docker.elastic.co/beats/filebeat:5.5.0 \ No newline at end of file
+ filebeat: docker.elastic.co/beats/filebeat:5.5.0
diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/conf.d/conf1/my.cnf b/kubernetes/clamp/resources/config/mariadb/conf.d/conf1/my.cnf
index 0be1bd7aa3..0be1bd7aa3 100644
--- a/kubernetes/config/docker/init/src/config/clamp/mariadb/conf.d/conf1/my.cnf
+++ b/kubernetes/clamp/resources/config/mariadb/conf.d/conf1/my.cnf
diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql
index 3312daf56f..3312daf56f 100644
--- a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql
+++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql
diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql
index 112cb2b55e..112cb2b55e 100644
--- a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql
+++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql
diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql
index 478eaf0e09..478eaf0e09 100644
--- a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql
+++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql
diff --git a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh
index 4924922c91..4924922c91 100644
--- a/kubernetes/config/docker/init/src/config/clamp/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh
+++ b/kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh
diff --git a/kubernetes/clamp/templates/all-services.yaml b/kubernetes/clamp/templates/all-services.yaml
index 163ed58aa9..c9f4f5ed5f 100644
--- a/kubernetes/clamp/templates/all-services.yaml
+++ b/kubernetes/clamp/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: clamp-mariadb
- namespace: "{{ .Values.nsPrefix }}-clamp"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: clamp-mariadb
spec:
@@ -20,7 +20,18 @@ apiVersion: v1
kind: Service
metadata:
name: clamp
- namespace: "{{ .Values.nsPrefix }}-clamp"
+ namespace: "{{ .Values.nsPrefix }}"
+ annotations:
+ msb.onap.org/service-info: '[
+ {
+ "serviceName": "clamp",
+ "version": "v1",
+ "url": "/restservices/clds/v1",
+ "protocol": "REST",
+ "port": "8080",
+ "visualRange":"1"
+ }
+ ]'
spec:
ports:
- name: clamp
diff --git a/kubernetes/clamp/templates/clamp-deployment.yaml b/kubernetes/clamp/templates/clamp-deployment.yaml
index de9adaca81..2c2e13f994 100644
--- a/kubernetes/clamp/templates/clamp-deployment.yaml
+++ b/kubernetes/clamp/templates/clamp-deployment.yaml
@@ -5,8 +5,9 @@ metadata:
labels:
app: clamp
name: clamp
- namespace: "{{ .Values.nsPrefix }}-clamp"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.clampReplicas }}
selector:
matchLabels:
app: clamp
@@ -35,8 +36,8 @@ spec:
- env:
- name: SPRING_APPLICATION_JSON
value: '{
- "spring.datasource.camunda.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}-clamp:3306/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647",
- "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}-clamp:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647"
+ "spring.datasource.camunda.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}:3306/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647",
+ "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clamp-mariadb.{{ .Values.nsPrefix }}:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647"
}'
image: {{ .Values.image.clampImage }}:{{ .Values.image.clampVersion }}
imagePullPolicy: {{ .Values.pullPolicy }}
diff --git a/kubernetes/clamp/templates/clamp-mariadb-configmap.yaml b/kubernetes/clamp/templates/clamp-mariadb-configmap.yaml
new file mode 100644
index 0000000000..9a5fd8f284
--- /dev/null
+++ b/kubernetes/clamp/templates/clamp-mariadb-configmap.yaml
@@ -0,0 +1,33 @@
+#{{ if not .Values.disableClampClampMariadb }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: clamp-entrypoint-initdb-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: clamp-entrypoint-drop-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/drop/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: clamp-entrypoint-bulkload-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: clamp-mariadb-conf-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/conf1/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml b/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml
index 46a6433b7e..a12489ef63 100644
--- a/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml
+++ b/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml
@@ -3,9 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: clamp-mariadb
- namespace: "{{ .Values.nsPrefix }}-clamp"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
- replicas: 1
+ replicas: {{ .Values.clampMariaDbReplicas }}
selector:
matchLabels:
app: clamp-mariadb
@@ -25,9 +25,14 @@ spec:
- name: MYSQL_ROOT_PASSWORD
value: {{ .Values.mysqlPassword }}
volumeMounts:
- - mountPath: /docker-entrypoint-initdb.d
+ - mountPath: /docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh
name: docker-entrypoint-initdb
- - mountPath: /etc/mysql/conf.d
+ subPath: load-sql-files-tests-automation.sh
+ - mountPath: /docker-entrypoint-initdb.d/drop/
+ name: docker-entrypoint-clds-drop
+ - mountPath: /docker-entrypoint-initdb.d/bulkload/
+ name: docker-entrypoint-bulkload
+ - mountPath: /etc/mysql/conf.d/conf1/
name: clamp-mariadb-conf
- mountPath: /var/lib/mysql
name: clamp-mariadb-data
@@ -38,14 +43,20 @@ spec:
periodSeconds: 10
volumes:
- name: docker-entrypoint-initdb
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/docker-entrypoint-initdb.d
+ configMap:
+ name: clamp-entrypoint-initdb-configmap
+ - name: docker-entrypoint-clds-drop
+ configMap:
+ name: clamp-entrypoint-drop-configmap
+ - name: docker-entrypoint-bulkload
+ configMap:
+ name: clamp-entrypoint-bulkload-configmap
- name: clamp-mariadb-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/conf.d
+ configMap:
+ name: clamp-mariadb-conf-configmap
- name: clamp-mariadb-data
persistentVolumeClaim:
claimName: clamp-db
imagePullSecrets:
- name: {{ .Values.nsPrefix }}-docker-registry-key
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/clamp/templates/clamp-pv-pvc.yaml b/kubernetes/clamp/templates/clamp-pv-pvc.yaml
index 0d36141b6c..c542de6026 100644
--- a/kubernetes/clamp/templates/clamp-pv-pvc.yaml
+++ b/kubernetes/clamp/templates/clamp-pv-pvc.yaml
@@ -2,10 +2,10 @@
apiVersion: v1
kind: PersistentVolume
metadata:
- name: "{{ .Values.nsPrefix }}-clamp-db"
- namespace: "{{ .Values.nsPrefix }}-clamp"
+ name: "{{ .Values.nsPrefix }}-clamp"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
- name: "{{ .Values.nsPrefix }}-clamp-db"
+ name: "{{ .Values.nsPrefix }}-clamp"
spec:
capacity:
storage: 2Gi
@@ -13,13 +13,13 @@ spec:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/clamp/mariadb/data
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/clamp/mariadb/data
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: clamp-db
- namespace: "{{ .Values.nsPrefix }}-clamp"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
accessModes:
- ReadWriteMany
@@ -28,5 +28,5 @@ spec:
storage: 2Gi
selector:
matchLabels:
- name: "{{ .Values.nsPrefix }}-clamp-db"
-#{{ end }} \ No newline at end of file
+ name: "{{ .Values.nsPrefix }}-clamp"
+#{{ end }}
diff --git a/kubernetes/clamp/values.yaml b/kubernetes/clamp/values.yaml
index c522be071e..103472afd9 100644
--- a/kubernetes/clamp/values.yaml
+++ b/kubernetes/clamp/values.yaml
@@ -2,8 +2,11 @@ nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
mysqlPassword: strong_pitchou
+dataRootDir: /dockerdata-nfs
+clampReplicas: 1
+clampMariaDbReplicas: 1
image:
- readiness: oomk8s/readiness-check:1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
clampImage: nexus3.onap.org:10001/onap/clamp
clampVersion: v1.1.0
mariadbImage: nexus3.onap.org:10001/mariadb
diff --git a/kubernetes/cli/templates/all-service.yaml b/kubernetes/cli/templates/all-service.yaml
index e848bfdc38..e928c67e6e 100644
--- a/kubernetes/cli/templates/all-service.yaml
+++ b/kubernetes/cli/templates/all-service.yaml
@@ -3,16 +3,20 @@ apiVersion: v1
kind: Service
metadata:
name: cli
- namespace: "{{ .Values.nsPrefix }}-cli"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: cli
spec:
ports:
- - name: 80-port
- port: 80
+ - name: 8080-port
+ port: 8080
targetPort: 80
nodePort: {{ .Values.nodePortPrefix }}60
+ - name: 9090-port
+ port: 9090
+ targetPort: 8080
+ nodePort: {{ .Values.nodePortPrefix }}61
type: NodePort
selector:
app: cli
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/cli/templates/cli-deployment.yaml b/kubernetes/cli/templates/cli-deployment.yaml
index 3a702b9016..d4812fb783 100644
--- a/kubernetes/cli/templates/cli-deployment.yaml
+++ b/kubernetes/cli/templates/cli-deployment.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: cli
name: cli
- namespace: "{{ .Values.nsPrefix }}-cli"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -25,6 +25,7 @@ spec:
value: daemon
ports:
- containerPort: 80
+ - containerPort: 8080
name: cli
readinessProbe:
tcpSocket:
@@ -33,4 +34,4 @@ spec:
periodSeconds: 10
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/common/.helmignore b/kubernetes/common/.helmignore
new file mode 100644
index 0000000000..f0c1319444
--- /dev/null
+++ b/kubernetes/common/.helmignore
@@ -0,0 +1,21 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/kubernetes/common/Chart.yaml b/kubernetes/common/Chart.yaml
new file mode 100644
index 0000000000..aed57348e0
--- /dev/null
+++ b/kubernetes/common/Chart.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: Common templates for inclusion in other charts
+name: common
+version: 2.0.0
diff --git a/kubernetes/common/templates/_name.tpl b/kubernetes/common/templates/_name.tpl
new file mode 100644
index 0000000000..f6c221f15d
--- /dev/null
+++ b/kubernetes/common/templates/_name.tpl
@@ -0,0 +1,15 @@
+{{/*
+ Expand the name of a chart.
+*/}}
+{{- define "common.name" -}}
+ {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+ Create a default fully qualified application name.
+ Truncated at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+*/}}
+{{- define "common.fullname" -}}
+ {{- $name := default .Chart.Name .Values.nameOverride -}}
+ {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}} \ No newline at end of file
diff --git a/kubernetes/common/templates/_namespace.tpl b/kubernetes/common/templates/_namespace.tpl
new file mode 100644
index 0000000000..3da9fee7c1
--- /dev/null
+++ b/kubernetes/common/templates/_namespace.tpl
@@ -0,0 +1,10 @@
+{{/*
+ Resolve the namespace to apply to a chart. The default namespace suffix
+ is the name of the chart. This can be overridden if necessary (eg. for subcharts)
+ using the following value:
+
+ - .Values.nsPrefix : override namespace prefix
+*/}}
+{{- define "common.namespace" -}}
+ {{- default .Release.Namespace .Values.nsPrefix -}}
+{{- end -}}
diff --git a/kubernetes/common/values.yaml b/kubernetes/common/values.yaml
new file mode 100644
index 0000000000..112875753d
--- /dev/null
+++ b/kubernetes/common/values.yaml
@@ -0,0 +1,31 @@
+#################################################################
+# Global configuration default values that can be inherited by
+# all subcharts.
+#################################################################
+global:
+ # Change to an unused port prefix range to prevent port conflicts
+ # with other instances running within the same k8s cluster
+ nodePortPrefix: 302
+
+ # image repositories
+ repository: nexus3.onap.org:10001
+ repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
+ # readiness check
+ readinessRepository: oomk8s
+ readinessImage: readiness-check:1.0.0
+
+ # logging agent
+ loggingRepository: docker.elastic.co
+ loggingImage: beats/filebeat:5.5.0
+
+ # image pull policy
+ pullPolicy: Always
+
+ # default mount path root directory referenced
+ # by persistent volumes and log files
+ persistence:
+ mountPath: /dockerdata-nfs
+
+ # flag to enable debugging - application support required
+ debugEnabled: true \ No newline at end of file
diff --git a/kubernetes/config/docker/init/config-init.sh b/kubernetes/config/docker/init/config-init.sh
index 65acb46c2b..0e5fae082a 100755
--- a/kubernetes/config/docker/init/config-init.sh
+++ b/kubernetes/config/docker/init/config-init.sh
@@ -79,7 +79,6 @@ chmod -R 777 /config-init/$NAMESPACE/aai/sparky-be/logs/
chmod -R 777 /config-init/$NAMESPACE/aai/elasticsearch/es-data/
chmod -R 777 /config-init/$NAMESPACE/aai/search-data-service/logs/
chmod -R 777 /config-init/$NAMESPACE/aai/data-router/logs/
-chmod -R 777 /config-init/$NAMESPACE/policy/mariadb/
chmod -R 777 /config-init/$NAMESPACE/log/elasticsearch
chown -R root:root /config-init/$NAMESPACE/log
@@ -94,8 +93,8 @@ echo "Substituting configuration parameters"
# replace the default 'onap' namespace qualification of K8s hostnames within the config files
SED_NS_PATHS="/config-init/$NAMESPACE/"
SED_NS_STRINGS=(
- "s/\.onap-/\.${NAMESPACE}-/g"
- "s/kubectl -n onap/kubectl -n ${NAMESPACE}/g"
+ "s/\.namespace-placeholder/\.${NAMESPACE}/g"
+ "s/kubectl -n namespace-placeholder/kubectl -n ${NAMESPACE}/g"
)
SED_NS_STRING=$(concat_array "${SED_NS_STRINGS[@]}")
find $SED_NS_PATHS -type f -exec sed -i -e "${SED_NS_STRING}" {} \;
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/CHANGELOG.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/CHANGELOG.md
deleted file mode 100644
index c58a2742e8..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/CHANGELOG.md
+++ /dev/null
@@ -1,13 +0,0 @@
-ajsc-aai-auth CHANGELOG
-=======================
-
-This file is used to list changes made in each version of the aai-resources-auth cookbook.
-
-0.1.0
------
-- [your_name] - Initial release of aai-resources-auth
-
-- - -
-Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown.
-
-The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown.
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/README.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/README.md
deleted file mode 100644
index b5157ab7bd..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/README.md
+++ /dev/null
@@ -1,68 +0,0 @@
-aai-resources-auth Cookbook
-======================
-TODO: Enter the cookbook description here.
-
-e.g.
-This cookbook makes your favorite breakfast sandwich.
-
-Requirements
-------------
-TODO: List your cookbook requirements. Be sure to include any requirements this cookbook has on platforms, libraries, other cookbooks, packages, operating systems, etc.
-
-e.g.
-#### packages
-- `toaster` - ajsc-aai-auth needs toaster to brown your bagel.
-
-Attributes
-----------
-TODO: List your cookbook attributes here.
-
-e.g.
-#### ajsc-aai-auth::default
-<table>
- <tr>
- <th>Key</th>
- <th>Type</th>
- <th>Description</th>
- <th>Default</th>
- </tr>
- <tr>
- <td><tt>['ajsc-aai-auth']['bacon']</tt></td>
- <td>Boolean</td>
- <td>whether to include bacon</td>
- <td><tt>true</tt></td>
- </tr>
-</table>
-
-Usage
------
-#### aai-resources-auth::default
-TODO: Write usage instructions for each cookbook.
-
-e.g.
-Just include `aai-resources-auth` in your node's `run_list`:
-
-```json
-{
- "name":"my_node",
- "run_list": [
- "recipe[ajsc-aai-auth]"
- ]
-}
-```
-
-Contributing
-------------
-TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section.
-
-e.g.
-1. Fork the repository on Github
-2. Create a named feature branch (like `add_component_x`)
-3. Write your change
-4. Write tests for your change (if applicable)
-5. Run the tests, ensuring they all pass
-6. Submit a Pull Request using Github
-
-License and Authors
--------------------
-Authors: TODO: List authors
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/files/default/aai_keystore-dev b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/files/default/aai_keystore-dev
deleted file mode 100644
index 3eef13557c..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/files/default/aai_keystore-dev
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/metadata.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/metadata.rb
deleted file mode 100644
index 6b940b8e40..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/metadata.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-name 'aai-resources-auth'
-maintainer 'ATT'
-maintainer_email ''
-license 'All rights reserved'
-description 'Installs/Configures aai-resources-auth'
-long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
-version '1.0.0'
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/recipes/aai-resources-aai-keystore.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/recipes/aai-resources-aai-keystore.rb
deleted file mode 100644
index 3c55162a34..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-auth/recipes/aai-resources-aai-keystore.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-cookbook_file "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/auth/aai_keystore" do
- source "aai_keystore-#{node['aai-resources-config']['AAIENV']}"
- owner 'aaiadmin'
- group 'aaiadmin'
- mode '0755'
- action :create
-end
-
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/CHANGELOG.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/CHANGELOG.md
deleted file mode 100644
index 8752651421..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/CHANGELOG.md
+++ /dev/null
@@ -1,13 +0,0 @@
-aai-resources-config CHANGELOG
-=========================
-
-This file is used to list changes made in each version of the ajsc-aai-config cookbook.
-
-0.1.0
------
-- [your_name] - Initial release of ajsc-aai-config
-
-- - -
-Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown.
-
-The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown.
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/README.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/README.md
deleted file mode 100644
index b71fb908f8..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/README.md
+++ /dev/null
@@ -1,68 +0,0 @@
-aai-resources-config Cookbook
-========================
-TODO: Enter the cookbook description here.
-
-e.g.
-This cookbook makes your favorite breakfast sandwich.
-
-Requirements
-------------
-TODO: List your cookbook requirements. Be sure to include any requirements this cookbook has on platforms, libraries, other cookbooks, packages, operating systems, etc.
-
-e.g.
-#### packages
-- `toaster` - aai-resources-config needs toaster to brown your bagel.
-
-Attributes
-----------
-TODO: List your cookbook attributes here.
-
-e.g.
-#### ajsc-aai-config::default
-<table>
- <tr>
- <th>Key</th>
- <th>Type</th>
- <th>Description</th>
- <th>Default</th>
- </tr>
- <tr>
- <td><tt>['ajsc-aai-config']['bacon']</tt></td>
- <td>Boolean</td>
- <td>whether to include bacon</td>
- <td><tt>true</tt></td>
- </tr>
-</table>
-
-Usage
------
-#### ajsc-aai-config::default
-TODO: Write usage instructions for each cookbook.
-
-e.g.
-Just include `ajsc-aai-config` in your node's `run_list`:
-
-```json
-{
- "name":"my_node",
- "run_list": [
- "recipe[ajsc-aai-config]"
- ]
-}
-```
-
-Contributing
-------------
-TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section.
-
-e.g.
-1. Fork the repository on Github
-2. Create a named feature branch (like `add_component_x`)
-3. Write your change
-4. Write tests for your change (if applicable)
-5. Run the tests, ensuring they all pass
-6. Submit a Pull Request using Github
-
-License and Authors
--------------------
-Authors: TODO: List authors
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aai-resources-config.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aai-resources-config.rb
deleted file mode 100644
index 9d000ae967..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aai-resources-config.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-node.default["aai-resources-config"]["AAIENV"] = 'devINT1'
-node.default["aai-resources-config"]["PROJECT_HOME"] = '/opt/app/aai-resources'
-node.default["aai-resources-config"]["LOGROOT"] = '/opt/aai/logroot'
-node.default["aai-resources-config"]["JAVA_HOME"] = '/usr/lib/jvm/java-8-openjdk-amd64'
-node.default["aai-resources-config"]["AAI_SERVER_URL_BASE"] = 'https://localhost:8443/aai/'
-node.default["aai-resources-config"]["AAI_SERVER_URL"] = 'https://localhost:8443/aai/v11/'
-node.default["aai-resources-config"]["AAI_GLOBAL_CALLBACK_URL"] = 'https://localhost:8443/aai/'
-node.default["aai-resources-config"]["AAI_TRUSTSTORE_FILENAME"] = 'aai_keystore'
-node.default["aai-resources-config"]["AAI_TRUSTSTORE_PASSWD_X"] = 'OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0'
-node.default["aai-resources-config"]["AAI_KEYSTORE_FILENAME"] = 'aai_keystore'
-node.default["aai-resources-config"]["AAI_KEYSTORE_PASSWD_X"] = 'OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0'
-node.default["aai-resources-config"]["TXN_HBASE_TABLE_NAME"] = 'aailogging.dev'
-node.default["aai-resources-config"]["TXN_ZOOKEEPER_QUORUM"] = 'localhost'
-node.default["aai-resources-config"]["TXN_ZOOKEEPER_PROPERTY_CLIENTPORT"] = '2181'
-node.default["aai-resources-config"]["TXN_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase'
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aaiEventDMaaPPublisher.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aaiEventDMaaPPublisher.rb
deleted file mode 100644
index 91bc7bb682..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/aaiEventDMaaPPublisher.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-node.default["aai-resources-config"]["AAI_DMAAP_PROTOCOL"] = 'http'
-node.default["aai-resources-config"]["AAI_DMAAP_HOST_PORT"] = 'localhost:3904'
-node.default["aai-resources-config"]["AAI_DMAAP_TOPIC_NAME"] = 'AAI-EVENT'
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/preferredRoute.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/preferredRoute.rb
deleted file mode 100644
index 21eb295148..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/preferredRoute.rb
+++ /dev/null
@@ -1 +0,0 @@
-node.default["aai-resources-config"]["AAI_WORKLOAD_PREFERRED_ROUTE_KEY"] = 'MR1' \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-cached.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-cached.rb
deleted file mode 100644
index 103583b645..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-cached.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-node.default["aai-resources-config"]["STORAGE_HOSTNAME"] = 'localhost'
-node.default["aai-resources-config"]["STORAGE_HBASE_TABLE"] = 'aaigraph.dev'
-node.default["aai-resources-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase'
-node.default["aai-resources-config"]["DB_CACHE_CLEAN_WAIT"] = 20
-node.default["aai-resources-config"]["DB_CACHE_TIME"] = 180000
-node.default["aai-resources-config"]["DB_CACHE_SIZE"] = 0.3 \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-realtime.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-realtime.rb
deleted file mode 100644
index c289a63ac0..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/attributes/titan-realtime.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-node.default["aai-resources-config"]["STORAGE_HOSTNAME"] = 'localhost'
-node.default["aai-resources-config"]["STORAGE_HBASE_TABLE"] = 'aaigraph.dev'
-node.default["aai-resources-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase' \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/metadata.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/metadata.rb
deleted file mode 100644
index d32f4cff33..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/metadata.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-name 'aai-resources-config'
-maintainer 'ATT'
-maintainer_email ''
-license 'All rights reserved'
-description 'Installs/Configures aai-resources-config'
-long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
-version '1.0.0'
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-preferredRoute.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-preferredRoute.rb
deleted file mode 100644
index b018237bab..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-preferredRoute.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-['preferredRoute.txt'].each do |file|
- template "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do
- source "aai-resources-config/preferredRoute.txt"
- owner "aaiadmin"
- group "aaiadmin"
- mode "0644"
- variables(
-:AAI_WORKLOAD_PREFERRED_ROUTE_KEY => node["aai-resources-config"]["AAI_WORKLOAD_PREFERRED_ROUTE_KEY"]
- )
- end
-end \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-resources-config.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-resources-config.rb
deleted file mode 100644
index 13f34c25c2..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aai-resources-config.rb
+++ /dev/null
@@ -1,78 +0,0 @@
-################
-# Update aaiResourcesConfig.properties
-################
-include_recipe 'aai-resources-config::createConfigDirectories'
-
-['aaiconfig.properties'].each do |file|
- template "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do
- source "aai-resources-config/aaiconfig.properties"
- owner "aaiadmin"
- group "aaiadmin"
- mode "0644"
- variables(
-:AAI_SERVER_URL_BASE => node["aai-resources-config"]["AAI_SERVER_URL_BASE"],
-:AAI_SERVER_URL => node["aai-resources-config"]["AAI_SERVER_URL"],
-:AAI_GLOBAL_CALLBACK_URL => node["aai-resources-config"]["AAI_GLOBAL_CALLBACK_URL"],
-:AAI_TRUSTSTORE_FILENAME => node["aai-resources-config"]["AAI_TRUSTSTORE_FILENAME"],
-:AAI_TRUSTSTORE_PASSWD_X => node["aai-resources-config"]["AAI_TRUSTSTORE_PASSWD_X"],
-:AAI_KEYSTORE_FILENAME => node["aai-resources-config"]["AAI_KEYSTORE_FILENAME"],
-:AAI_KEYSTORE_PASSWD_X => node["aai-resources-config"]["AAI_KEYSTORE_PASSWD_X"],
-:APPLICATION_SERVERS => node["aai-resources-config"]["APPLICATION_SERVERS"],
-:TXN_HBASE_TABLE_NAME => node["aai-resources-config"]["TXN_HBASE_TABLE_NAME"],
-:TXN_ZOOKEEPER_QUORUM => node["aai-resources-config"]["TXN_ZOOKEEPER_QUORUM"],
-:TXN_ZOOKEEPER_PROPERTY_CLIENTPORT => node["aai-resources-config"]["TXN_ZOOKEEPER_PROPERTY_CLIENTPORT"],
-:TXN_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-resources-config"]["TXN_HBASE_ZOOKEEPER_ZNODE_PARENT"],
-:RESOURCE_VERSION_ENABLE_FLAG => node["aai-resources-config"]["RESOURCE_VERSION_ENABLE_FLAG"],
- :AAI_NOTIFICATION_CURRENT_PACKAGE => node["aai-resources-config"]["AAI_NOTIFICATION_CURRENT_PACKAGE"],
- :AAI_NOTIFICATION_CURRENT_VERSION => node["aai-resources-config"]["AAI_NOTIFICATION_CURRENT_VERSION"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_VERSION => node["aai-resources-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_VERSION"],
-:AAI_DEFAULT_API_VERSION => node["aai-resources-config"]["AAI_DEFAULT_API_VERSION"]
- )
- end
-end
-
-#remote_directory "/opt/mso/etc/ecomp/mso/config/" do
-# source "mso-asdc-controller-config"
-# #cookbook "default is current"
-# files_mode "0700"
-# files_owner "jboss"
-# files_group "jboss"
-# mode "0755"
-# owner "jboss"
-# group "jboss"
-# overwrite true
-# recursive true
-# action :create
-#end
-
-
-################
-# Alternative example1
-# This updates all the timestamps
-# Seting preserve never changes the timestamp when the file is changed
-######
-# ruby_block "copy_recurse" do
-# block do
-# FileUtils.cp_r("#{Chef::Config[:file_cache_path]}/cookbooks/mso-config/files/default/mso-api-handler-config/.",\
-# "/opt/mso/etc/ecomp/mso/config/", :preserve => true)
-# end
-# action :run
-# end
-
-################
-# Alternative example2
-######
-# Dir.glob("#{Chef::Config[:file_cache_path]}/cookbooks/mso-config/files/default/mso-api-handler-config/*").sort.each do |entry|
-# cookbook_file "/opt/mso/etc/ecomp/mso/config/#{entry}" do
-# source entry
-# owner "root"
-# group "root"
-# mode 0755
-# end
-# end
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aaiEventDMaaPPublisher.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aaiEventDMaaPPublisher.rb
deleted file mode 100644
index 1e626db3ab..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/aaiEventDMaaPPublisher.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-['aaiEventDMaaPPublisher.properties'].each do |file|
- template "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do
- source "aai-resources-config/aaiEventDMaaPPublisher.properties"
- owner "aaiadmin"
- group "aaiadmin"
- mode "0644"
- variables(
-:AAI_DMAAP_PROTOCOL => node["aai-resources-config"]["AAI_DMAAP_PROTOCOL"],
-:AAI_DMAAP_HOST_PORT => node["aai-resources-config"]["AAI_DMAAP_HOST_PORT"],
-:AAI_DMAAP_TOPIC_NAME => node["aai-resources-config"]["AAI_DMAAP_TOPIC_NAME"]
- )
- end
-end
-
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/createConfigDirectories.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/createConfigDirectories.rb
deleted file mode 100644
index e944195e8c..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/createConfigDirectories.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-# Create or update the needed directories/links.
-# If the directory already exists, it is updated to match
-#
-# LOGROOT should already be created by the SWM installation script
-# It needs to run as root
-
-[
- "#{node['aai-resources-config']['LOGROOT']}/AAI-RES",
- "#{node['aai-resources-config']['LOGROOT']}/AAI-RES/data",
- "#{node['aai-resources-config']['LOGROOT']}/AAI-RES/misc",
- "#{node['aai-resources-config']['LOGROOT']}/AAI-RES/ajsc-jetty" ].each do |path|
- directory path do
- owner 'aaiadmin'
- group 'aaiadmin'
- mode '0755'
- recursive=true
- action :create
- end
-end
-
-[ "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/auth" ].each do |path|
- directory path do
- owner 'aaiadmin'
- group 'aaiadmin'
- mode '0777'
- recursive=true
- action :create
- end
-end
-#Application logs
-link "#{node['aai-resources-config']['PROJECT_HOME']}/logs" do
- to "#{node['aai-resources-config']['LOGROOT']}/AAI-RES"
- owner 'aaiadmin'
- group 'aaiadmin'
- mode '0755'
-end
-
-#Make a link from /opt/app/aai-resources/scripts to /opt/app/aai-resources/bin
-link "#{node['aai-resources-config']['PROJECT_HOME']}/scripts" do
- to "#{node['aai-resources-config']['PROJECT_HOME']}/bin"
- owner 'aaiadmin'
- group 'aaiadmin'
- mode '0755'
-end
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-cached.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-cached.rb
deleted file mode 100644
index 53ada49d99..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-cached.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-['titan-cached.properties'].each do |file|
- template "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do
- source "aai-resources-config/titan-cached.properties"
- owner "aaiadmin"
- group "aaiadmin"
- mode "0644"
- variables(
-:STORAGE_HOSTNAME => node["aai-resources-config"]["STORAGE_HOSTNAME"],
-:STORAGE_HBASE_TABLE => node["aai-resources-config"]["STORAGE_HBASE_TABLE"],
-:STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-resources-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"],
-:DB_CACHE_CLEAN_WAIT => node["aai-resources-config"]["DB_CACHE_CLEAN_WAIT"],
-:DB_CACHE_TIME => node["aai-resources-config"]["DB_CACHE_TIME"],
-:DB_CACHE_SIZE => node["aai-resources-config"]["DB_CACHE_SIZE"]
- )
- end
-end
-
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-realtime.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-realtime.rb
deleted file mode 100644
index c456eb3d5b..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/recipes/titan-realtime.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-['titan-realtime.properties'].each do |file|
- template "#{node['aai-resources-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do
- source "aai-resources-config/titan-realtime.properties"
- owner "aaiadmin"
- group "aaiadmin"
- mode "0644"
- variables(
-:STORAGE_HOSTNAME => node["aai-resources-config"]["STORAGE_HOSTNAME"],
-:STORAGE_HBASE_TABLE => node["aai-resources-config"]["STORAGE_HBASE_TABLE"],
-:STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-resources-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"]
- )
- end
-end
-
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiEventDMaaPPublisher.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiEventDMaaPPublisher.properties
deleted file mode 100644
index 8ad92cdf44..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiEventDMaaPPublisher.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-Protocol=<%= @AAI_DMAAP_PROTOCOL %>
-contenttype=application/json
-host=<%= @AAI_DMAAP_HOST_PORT %>
-topic=<%= @AAI_DMAAP_TOPIC_NAME %>
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiconfig.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiconfig.properties
deleted file mode 100644
index 37e5dcdeaa..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/aaiconfig.properties
+++ /dev/null
@@ -1,79 +0,0 @@
-####################################################################
-# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE
-# TEMPLATE AND *ALL* DATAFILES
-####################################################################
-
-aai.config.checktime=1000
-
-# this could come from siteconfig.pl?
-aai.config.nodename=AutomaticallyOverwritten
-
-
-
-aai.auth.cspcookies_on=false
-aai.dbmodel.filename=ex5.json
-
-aai.server.url.base=<%= @AAI_SERVER_URL_BASE %>
-aai.server.url=<%= @AAI_SERVER_URL %>
-aai.global.callback.url=<%= @AAI_GLOBAL_CALLBACK_URL %>
-
-aai.tools.enableBasicAuth=true
-aai.tools.username=AAI
-aai.tools.password=AAI
-
-aai.truststore.filename=<%= @AAI_TRUSTSTORE_FILENAME %>
-aai.truststore.passwd.x=<%= @AAI_TRUSTSTORE_PASSWD_X %>
-aai.keystore.filename=<%= @AAI_KEYSTORE_FILENAME %>
-aai.keystore.passwd.x=<%= @AAI_KEYSTORE_PASSWD_X %>
-
-
-aai.notification.current.version=<%= @AAI_NOTIFICATION_CURRENT_VERSION %>
-aai.notificationEvent.default.status=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS %>
-aai.notificationEvent.default.eventType=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE %>
-aai.notificationEvent.default.domain=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN %>
-aai.notificationEvent.default.sourceName=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME %>
-aai.notificationEvent.default.sequenceNumber=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER %>
-aai.notificationEvent.default.severity=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY %>
-aai.notificationEvent.default.version=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_VERSION %>
-# This one lets us enable/disable resource-version checking on updates/deletes
-aai.resourceversion.enableflag=<%= @RESOURCE_VERSION_ENABLE_FLAG %>
-aai.logging.maxStackTraceEntries=10
-aai.default.api.version=<%= @AAI_DEFAULT_API_VERSION %>
-
-
-
-# Used by Model-processing code
-aai.model.delete.sleep.per.vtx.msec=500
-aai.model.query.resultset.maxcount=50
-aai.model.query.timeout.sec=90
-
-# Used by Data Grooming
-aai.grooming.default.max.file=150
-aai.grooming.default.sleep.minutes=7
-
-aai.model.proc.max.levels=50
-aai.edgeTag.proc.max.levels=50
-
-# for transaction log
-aai.logging.hbase.interceptor=true
-aai.logging.hbase.enabled=true
-aai.logging.hbase.logrequest=true
-aai.logging.hbase.logresponse=true
-
-# for gremlin server
-aai.server.rebind=g
-hbase.table.name=<%= @TXN_HBASE_TABLE_NAME %>
-hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS
-hbase.zookeeper.quorum=<%= @TXN_ZOOKEEPER_QUORUM %>
-hbase.zookeeper.property.clientPort=<%= @TXN_ZOOKEEPER_PROPERTY_CLIENTPORT %>
-hbase.zookeeper.znode.parent=<%= @TXN_HBASE_ZOOKEEPER_ZNODE_PARENT %>
-
-aai.logging.trace.enabled=true
-aai.logging.trace.logrequest=false
-aai.logging.trace.logresponse=false
-
-
-aai.transaction.logging=true
-aai.transaction.logging.get=false
-aai.transaction.logging.post=false
-
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/preferredRoute.txt b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/preferredRoute.txt
deleted file mode 100644
index d09d49e34e..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/preferredRoute.txt
+++ /dev/null
@@ -1 +0,0 @@
-preferredRouteKey=<%= @AAI_WORKLOAD_PREFERRED_ROUTE_KEY %> \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-cached.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-cached.properties
deleted file mode 100644
index d6c9c2d893..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-cached.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-# the following parameters are not reloaded automatically and require a manual bounce
-query.fast-property=true
-storage.backend=hbase
-storage.hostname=<%= @STORAGE_HOSTNAME %>
-#schema.default=none
-storage.lock.wait-time=300
-storage.hbase.table=<%= @STORAGE_HBASE_TABLE %>
-storage.hbase.ext.zookeeper.znode.parent=<%= @STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT %>
-#caching on
-cache.db-cache = true
-cache.db-cache-clean-wait = <%= @DB_CACHE_CLEAN_WAIT %>
-cache.db-cache-time = <%= @DB_CACHE_TIME %>
-cache.db-cache-size = <%= @DB_CACHE_SIZE %> \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-realtime.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-realtime.properties
deleted file mode 100644
index 2935cc1104..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/aai-resources-config/templates/default/aai-resources-config/titan-realtime.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-# the following parameters are not reloaded automatically and require a manual bounce
-query.fast-property=true
-storage.backend=hbase
-storage.hostname=<%= @STORAGE_HOSTNAME %>
-#schema.default=none
-storage.lock.wait-time=300
-storage.hbase.table=<%= @STORAGE_HBASE_TABLE %>
-storage.hbase.ext.zookeeper.znode.parent=<%= @STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT %>
-# Setting db-cache to false ensure the fastest propagation of changes across servers
-cache.db-cache = false
-#cache.db-cache-clean-wait = 20
-#cache.db-cache-time = 180000
-#cache.db-cache-size = 0.5 \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/runlist-aai-resources.json b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/runlist-aai-resources.json
deleted file mode 100644
index 92c493d031..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-resources/runlist-aai-resources.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "run_list": [
- "recipe[aai-resources-config::createConfigDirectories]",
- "recipe[aai-resources-auth::aai-resources-aai-keystore]",
- "recipe[aai-resources-config::aaiEventDMaaPPublisher]",
- "recipe[aai-resources-config::aai-resources-config]",
- "recipe[aai-resources-config::titan-cached]",
- "recipe[aai-resources-config::titan-realtime]",
- "recipe[aai-resources-config::aai-preferredRoute]"
- ]
-}
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/CHANGELOG.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/CHANGELOG.md
deleted file mode 100644
index c86d50bfc2..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/CHANGELOG.md
+++ /dev/null
@@ -1,13 +0,0 @@
-ajsc-aai-auth CHANGELOG
-=======================
-
-This file is used to list changes made in each version of the aai-traversal-auth cookbook.
-
-0.1.0
------
-- [your_name] - Initial release of aai-traversal-auth
-
-- - -
-Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown.
-
-The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown.
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/README.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/README.md
deleted file mode 100644
index 370816b9dd..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/README.md
+++ /dev/null
@@ -1,68 +0,0 @@
-aai-traversal-auth Cookbook
-======================
-TODO: Enter the cookbook description here.
-
-e.g.
-This cookbook makes your favorite breakfast sandwich.
-
-Requirements
-------------
-TODO: List your cookbook requirements. Be sure to include any requirements this cookbook has on platforms, libraries, other cookbooks, packages, operating systems, etc.
-
-e.g.
-#### packages
-- `toaster` - ajsc-aai-auth needs toaster to brown your bagel.
-
-Attributes
-----------
-TODO: List your cookbook attributes here.
-
-e.g.
-#### ajsc-aai-auth::default
-<table>
- <tr>
- <th>Key</th>
- <th>Type</th>
- <th>Description</th>
- <th>Default</th>
- </tr>
- <tr>
- <td><tt>['ajsc-aai-auth']['bacon']</tt></td>
- <td>Boolean</td>
- <td>whether to include bacon</td>
- <td><tt>true</tt></td>
- </tr>
-</table>
-
-Usage
------
-#### aai-traversal-auth::default
-TODO: Write usage instructions for each cookbook.
-
-e.g.
-Just include `aai-traversal-auth` in your node's `run_list`:
-
-```json
-{
- "name":"my_node",
- "run_list": [
- "recipe[ajsc-aai-auth]"
- ]
-}
-```
-
-Contributing
-------------
-TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section.
-
-e.g.
-1. Fork the repository on Github
-2. Create a named feature branch (like `add_component_x`)
-3. Write your change
-4. Write tests for your change (if applicable)
-5. Run the tests, ensuring they all pass
-6. Submit a Pull Request using Github
-
-License and Authors
--------------------
-Authors: TODO: List authors
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/files/default/aai_keystore-dev b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/files/default/aai_keystore-dev
deleted file mode 100644
index 3eef13557c..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/files/default/aai_keystore-dev
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/metadata.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/metadata.rb
deleted file mode 100644
index e6537493a1..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/metadata.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-name 'aai-traversal-auth'
-maintainer 'ATT'
-maintainer_email ''
-license 'All rights reserved'
-description 'Installs/Configures aai-traversal-auth'
-long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
-version '1.0.0'
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/recipes/aai-traversal-aai-keystore.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/recipes/aai-traversal-aai-keystore.rb
deleted file mode 100644
index c1b3f2800c..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-auth/recipes/aai-traversal-aai-keystore.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-cookbook_file "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/auth/aai_keystore" do
- source "aai_keystore-#{node['aai-traversal-config']['AAIENV']}"
- owner 'aaiadmin'
- group 'aaiadmin'
- mode '0755'
- action :create
-end
-
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/CHANGELOG.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/CHANGELOG.md
deleted file mode 100644
index 1e69e21832..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/CHANGELOG.md
+++ /dev/null
@@ -1,13 +0,0 @@
-aai-traversal-config CHANGELOG
-=========================
-
-This file is used to list changes made in each version of the ajsc-aai-config cookbook.
-
-0.1.0
------
-- [your_name] - Initial release of ajsc-aai-config
-
-- - -
-Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown.
-
-The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown.
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/README.md b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/README.md
deleted file mode 100644
index 3e6fcc91f8..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/README.md
+++ /dev/null
@@ -1,68 +0,0 @@
-aai-traversal-config Cookbook
-========================
-TODO: Enter the cookbook description here.
-
-e.g.
-This cookbook makes your favorite breakfast sandwich.
-
-Requirements
-------------
-TODO: List your cookbook requirements. Be sure to include any requirements this cookbook has on platforms, libraries, other cookbooks, packages, operating systems, etc.
-
-e.g.
-#### packages
-- `toaster` - aai-traversal-config needs toaster to brown your bagel.
-
-Attributes
-----------
-TODO: List your cookbook attributes here.
-
-e.g.
-#### ajsc-aai-config::default
-<table>
- <tr>
- <th>Key</th>
- <th>Type</th>
- <th>Description</th>
- <th>Default</th>
- </tr>
- <tr>
- <td><tt>['ajsc-aai-config']['bacon']</tt></td>
- <td>Boolean</td>
- <td>whether to include bacon</td>
- <td><tt>true</tt></td>
- </tr>
-</table>
-
-Usage
------
-#### ajsc-aai-config::default
-TODO: Write usage instructions for each cookbook.
-
-e.g.
-Just include `ajsc-aai-config` in your node's `run_list`:
-
-```json
-{
- "name":"my_node",
- "run_list": [
- "recipe[ajsc-aai-config]"
- ]
-}
-```
-
-Contributing
-------------
-TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section.
-
-e.g.
-1. Fork the repository on Github
-2. Create a named feature branch (like `add_component_x`)
-3. Write your change
-4. Write tests for your change (if applicable)
-5. Run the tests, ensuring they all pass
-6. Submit a Pull Request using Github
-
-License and Authors
--------------------
-Authors: TODO: List authors
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aai-traversal-config.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aai-traversal-config.rb
deleted file mode 100644
index 33d3eb22ea..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aai-traversal-config.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-node.default["aai-traversal-config"]["AAIENV"] = 'solo'
-node.default["aai-traversal-config"]["PROJECT_HOME"] = '/opt/app/aai-traversal'
-node.default["aai-traversal-config"]["LOGROOT"] = '/opt/aai/logroot'
-node.default["aai-traversal-config"]["JAVA_HOME"] = '/usr/lib/jvm/java-8-openjdk-amd64'
-node.default["aai-traversal-config"]["AAI_SERVER_URL_BASE"] = 'https://localhost:8443/aai/'
-node.default["aai-traversal-config"]["AAI_SERVER_URL"] = 'https://localhost:8443/aai/v11/'
-node.default["aai-traversal-config"]["AAI_GLOBAL_CALLBACK_URL"] = 'https://localhost:8443/aai/'
-node.default["aai-traversal-config"]["AAI_TRUSTSTORE_FILENAME"] = 'aai_keystore'
-node.default["aai-traversal-config"]["AAI_TRUSTSTORE_PASSWD_X"] = 'OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0'
-node.default["aai-traversal-config"]["AAI_KEYSTORE_FILENAME"] = 'aai_keystore'
-node.default["aai-traversal-config"]["AAI_KEYSTORE_PASSWD_X"] = 'OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0'
-node.default["aai-traversal-config"]["TXN_HBASE_TABLE_NAME"] = 'aailogging.dev'
-node.default["aai-traversal-config"]["TXN_ZOOKEEPER_QUORUM"] = 'localhost'
-node.default["aai-traversal-config"]["TXN_ZOOKEEPER_PROPERTY_CLIENTPORT"] = '2181'
-node.default["aai-traversal-config"]["TXN_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase'
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aaiEventDMaaPPublisher.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aaiEventDMaaPPublisher.rb
deleted file mode 100644
index 7d20b30bad..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/aaiEventDMaaPPublisher.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-node.default["aai-traversal-config"]["AAI_DMAAP_PROTOCOL"] = 'http'
-node.default["aai-traversal-config"]["AAI_DMAAP_HOST_PORT"] = 'localhost:3904'
-node.default["aai-traversal-config"]["AAI_DMAAP_TOPIC_NAME"] = 'AAI-EVENT'
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/preferredRoute.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/preferredRoute.rb
deleted file mode 100644
index 21af6721ce..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/preferredRoute.rb
+++ /dev/null
@@ -1 +0,0 @@
-node.default["aai-traversal-config"]["AAI_WORKLOAD_PREFERRED_ROUTE_KEY"] = 'MR1' \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-cached.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-cached.rb
deleted file mode 100644
index cb88f3c77a..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-cached.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-node.default["aai-traversal-config"]["STORAGE_HOSTNAME"] = 'localhost'
-node.default["aai-traversal-config"]["STORAGE_HBASE_TABLE"] = 'aaigraph.dev'
-node.default["aai-traversal-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase'
-node.default["aai-traversal-config"]["DB_CACHE_CLEAN_WAIT"] = 20
-node.default["aai-traversal-config"]["DB_CACHE_TIME"] = 180000
-node.default["aai-traversal-config"]["DB_CACHE_SIZE"] = 0.3 \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-realtime.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-realtime.rb
deleted file mode 100644
index f67c64631a..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/attributes/titan-realtime.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-node.default["aai-traversal-config"]["STORAGE_HOSTNAME"] = 'localhost'
-node.default["aai-traversal-config"]["STORAGE_HBASE_TABLE"] = 'aaigraph.dev'
-node.default["aai-traversal-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"] = '/hbase' \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/metadata.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/metadata.rb
deleted file mode 100644
index fd654fa5cf..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/metadata.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-name 'aai-traversal-config'
-maintainer 'ATT'
-maintainer_email ''
-license 'All rights reserved'
-description 'Installs/Configures aai-traversal-config'
-long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
-version '1.0.0'
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-preferredRoute.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-preferredRoute.rb
deleted file mode 100644
index 2672e9bdb5..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-preferredRoute.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-['preferredRoute.txt'].each do |file|
- template "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do
- source "aai-traversal-app-config/preferredRoute.txt"
- owner "aaiadmin"
- group "aaiadmin"
- mode "0644"
- variables(
-:AAI_WORKLOAD_PREFERRED_ROUTE_KEY => node["aai-traversal-config"]["AAI_WORKLOAD_PREFERRED_ROUTE_KEY"]
- )
- end
-end \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-traversal-config.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-traversal-config.rb
deleted file mode 100644
index aae12d0d4f..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aai-traversal-config.rb
+++ /dev/null
@@ -1,77 +0,0 @@
-################
-# Update aaiGraphQueryConfig.properties
-################
-include_recipe 'aai-traversal-config::createConfigDirectories'
-
-['aaiconfig.properties'].each do |file|
- template "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do
- source "aai-traversal-app-config/aaiconfig.properties"
- owner "aaiadmin"
- group "aaiadmin"
- mode "0644"
- variables(
-:AAI_SERVER_URL_BASE => node["aai-traversal-config"]["AAI_SERVER_URL_BASE"],
-:AAI_SERVER_URL => node["aai-traversal-config"]["AAI_SERVER_URL"],
-:AAI_GLOBAL_CALLBACK_URL => node["aai-traversal-config"]["AAI_GLOBAL_CALLBACK_URL"],
-:AAI_TRUSTSTORE_FILENAME => node["aai-traversal-config"]["AAI_TRUSTSTORE_FILENAME"],
-:AAI_TRUSTSTORE_PASSWD_X => node["aai-traversal-config"]["AAI_TRUSTSTORE_PASSWD_X"],
-:AAI_KEYSTORE_FILENAME => node["aai-traversal-config"]["AAI_KEYSTORE_FILENAME"],
-:AAI_KEYSTORE_PASSWD_X => node["aai-traversal-config"]["AAI_KEYSTORE_PASSWD_X"],
-:APPLICATION_SERVERS => node["aai-traversal-config"]["APPLICATION_SERVERS"],
-:TXN_HBASE_TABLE_NAME => node["aai-traversal-config"]["TXN_HBASE_TABLE_NAME"],
-:TXN_ZOOKEEPER_QUORUM => node["aai-traversal-config"]["TXN_ZOOKEEPER_QUORUM"],
-:TXN_ZOOKEEPER_PROPERTY_CLIENTPORT => node["aai-traversal-config"]["TXN_ZOOKEEPER_PROPERTY_CLIENTPORT"],
-:TXN_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-traversal-config"]["TXN_HBASE_ZOOKEEPER_ZNODE_PARENT"],
-:RESOURCE_VERSION_ENABLE_FLAG => node["aai-traversal-config"]["RESOURCE_VERSION_ENABLE_FLAG"],
- :AAI_NOTIFICATION_CURRENT_VERSION => node["aai-traversal-config"]["AAI_NOTIFICATION_CURRENT_VERSION"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY"],
- :AAI_NOTIFICATION_EVENT_DEFAULT_VERSION => node["aai-traversal-config"]["AAI_NOTIFICATION_EVENT_DEFAULT_VERSION"],
-:AAI_DEFAULT_API_VERSION => node["aai-traversal-config"]["AAI_DEFAULT_API_VERSION"]
- )
- end
-end
-
-#remote_directory "/opt/mso/etc/ecomp/mso/config/" do
-# source "mso-asdc-controller-config"
-# #cookbook "default is current"
-# files_mode "0700"
-# files_owner "jboss"
-# files_group "jboss"
-# mode "0755"
-# owner "jboss"
-# group "jboss"
-# overwrite true
-# recursive true
-# action :create
-#end
-
-
-################
-# Alternative example1
-# This updates all the timestamps
-# Seting preserve never changes the timestamp when the file is changed
-######
-# ruby_block "copy_recurse" do
-# block do
-# FileUtils.cp_r("#{Chef::Config[:file_cache_path]}/cookbooks/mso-config/files/default/mso-api-handler-config/.",\
-# "/opt/mso/etc/ecomp/mso/config/", :preserve => true)
-# end
-# action :run
-# end
-
-################
-# Alternative example2
-######
-# Dir.glob("#{Chef::Config[:file_cache_path]}/cookbooks/mso-config/files/default/mso-api-handler-config/*").sort.each do |entry|
-# cookbook_file "/opt/mso/etc/ecomp/mso/config/#{entry}" do
-# source entry
-# owner "root"
-# group "root"
-# mode 0755
-# end
-# end
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aaiEventDMaaPPublisher.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aaiEventDMaaPPublisher.rb
deleted file mode 100644
index 6b66a6d40b..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/aaiEventDMaaPPublisher.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-['aaiEventDMaaPPublisher.properties'].each do |file|
- template "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do
- source "aai-traversal-app-config/aaiEventDMaaPPublisher.properties"
- owner "aaiadmin"
- group "aaiadmin"
- mode "0644"
- variables(
-:AAI_DMAAP_PROTOCOL => node["aai-traversal-config"]["AAI_DMAAP_PROTOCOL"],
-:AAI_DMAAP_HOST_PORT => node["aai-traversal-config"]["AAI_DMAAP_HOST_PORT"],
-:AAI_DMAAP_TOPIC_NAME => node["aai-traversal-config"]["AAI_DMAAP_TOPIC_NAME"]
- )
- end
-end
-
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/createConfigDirectories.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/createConfigDirectories.rb
deleted file mode 100644
index 9739c1a876..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/createConfigDirectories.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-# Create or update the needed directories/links.
-# If the directory already exists, it is updated to match
-#
-# LOGROOT should already be created by the SWM installation script
-# It needs to run as root
-
-[
- "#{node['aai-traversal-config']['LOGROOT']}/AAI-GQ",
- "#{node['aai-traversal-config']['LOGROOT']}/AAI-GQ/data",
- "#{node['aai-traversal-config']['LOGROOT']}/AAI-GQ/misc",
- "#{node['aai-traversal-config']['LOGROOT']}/AAI-GQ/ajsc-jetty" ].each do |path|
- directory path do
- owner 'aaiadmin'
- group 'aaiadmin'
- mode '0755'
- recursive=true
- action :create
- end
-end
-
-[ "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/auth" ].each do |path|
- directory path do
- owner 'aaiadmin'
- group 'aaiadmin'
- mode '0777'
- recursive=true
- action :create
- end
-end
-#Application logs
-link "#{node['aai-traversal-config']['PROJECT_HOME']}/logs" do
- to "#{node['aai-traversal-config']['LOGROOT']}/AAI-GQ"
- owner 'aaiadmin'
- group 'aaiadmin'
- mode '0755'
-end
-
-#Make a link from /opt/app/aai-traversal/scripts to /opt/app/aai-traversal/bin
-link "#{node['aai-traversal-config']['PROJECT_HOME']}/scripts" do
- to "#{node['aai-traversal-config']['PROJECT_HOME']}/bin"
- owner 'aaiadmin'
- group 'aaiadmin'
- mode '0755'
-end
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-cached.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-cached.rb
deleted file mode 100644
index b00e6ba029..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-cached.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-['titan-cached.properties'].each do |file|
- template "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do
- source "aai-traversal-app-config/titan-cached.properties"
- owner "aaiadmin"
- group "aaiadmin"
- mode "0644"
- variables(
-:STORAGE_HOSTNAME => node["aai-traversal-config"]["STORAGE_HOSTNAME"],
-:STORAGE_HBASE_TABLE => node["aai-traversal-config"]["STORAGE_HBASE_TABLE"],
-:STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-traversal-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"],
-:DB_CACHE_CLEAN_WAIT => node["aai-traversal-config"]["DB_CACHE_CLEAN_WAIT"],
-:DB_CACHE_TIME => node["aai-traversal-config"]["DB_CACHE_TIME"],
-:DB_CACHE_SIZE => node["aai-traversal-config"]["DB_CACHE_SIZE"]
- )
- end
-end
-
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-realtime.rb b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-realtime.rb
deleted file mode 100644
index cd6686ab2b..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/recipes/titan-realtime.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-['titan-realtime.properties'].each do |file|
- template "#{node['aai-traversal-config']['PROJECT_HOME']}/bundleconfig/etc/appprops/#{file}" do
- source "aai-traversal-app-config/titan-realtime.properties"
- owner "aaiadmin"
- group "aaiadmin"
- mode "0644"
- variables(
-:STORAGE_HOSTNAME => node["aai-traversal-config"]["STORAGE_HOSTNAME"],
-:STORAGE_HBASE_TABLE => node["aai-traversal-config"]["STORAGE_HBASE_TABLE"],
-:STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT => node["aai-traversal-config"]["STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT"]
- )
- end
-end
-
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiEventDMaaPPublisher.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiEventDMaaPPublisher.properties
deleted file mode 100644
index 8ad92cdf44..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiEventDMaaPPublisher.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-Protocol=<%= @AAI_DMAAP_PROTOCOL %>
-contenttype=application/json
-host=<%= @AAI_DMAAP_HOST_PORT %>
-topic=<%= @AAI_DMAAP_TOPIC_NAME %>
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiconfig.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiconfig.properties
deleted file mode 100644
index eadc72ac28..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/aaiconfig.properties
+++ /dev/null
@@ -1,75 +0,0 @@
-####################################################################
-# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE
-# TEMPLATE AND *ALL* DATAFILES
-####################################################################
-
-aai.config.checktime=1000
-
-# this could come from siteconfig.pl?
-aai.config.nodename=AutomaticallyOverwritten
-
-aai.tools.enableBasicAuth=true
-aai.tools.username=AAI
-aai.tools.password=AAI
-
-aai.auth.cspcookies_on=false
-aai.dbmodel.filename=ex5.json
-
-aai.server.url.base=<%= @AAI_SERVER_URL_BASE %>
-aai.server.url=<%= @AAI_SERVER_URL %>
-aai.global.callback.url=<%= @AAI_GLOBAL_CALLBACK_URL %>
-
-
-aai.truststore.filename=<%= @AAI_TRUSTSTORE_FILENAME %>
-aai.truststore.passwd.x=<%= @AAI_TRUSTSTORE_PASSWD_X %>
-aai.keystore.filename=<%= @AAI_KEYSTORE_FILENAME %>
-aai.keystore.passwd.x=<%= @AAI_KEYSTORE_PASSWD_X %>
-
-
-aai.notification.current.version=<%= @AAI_NOTIFICATION_CURRENT_VERSION %>
-aai.notificationEvent.default.status=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS %>
-aai.notificationEvent.default.eventType=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE %>
-aai.notificationEvent.default.domain=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_DOMAIN %>
-aai.notificationEvent.default.sourceName=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SOURCE_NAME %>
-aai.notificationEvent.default.sequenceNumber=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SEQUENCE_NUMBER %>
-aai.notificationEvent.default.severity=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_SEVERITY %>
-aai.notificationEvent.default.version=<%= @AAI_NOTIFICATION_EVENT_DEFAULT_VERSION %>
-# This one lets us enable/disable resource-version checking on updates/deletes
-aai.resourceversion.enableflag=<%= @RESOURCE_VERSION_ENABLE_FLAG %>
-aai.logging.maxStackTraceEntries=10
-aai.default.api.version=<%= @AAI_DEFAULT_API_VERSION %>
-
-# Used by Model-processing code
-aai.model.delete.sleep.per.vtx.msec=500
-aai.model.query.resultset.maxcount=50
-aai.model.query.timeout.sec=90
-
-
-aai.model.proc.max.levels=50
-aai.edgeTag.proc.max.levels=50
-
-# for transaction log
-aai.logging.hbase.interceptor=true
-aai.logging.hbase.enabled=true
-aai.logging.hbase.logrequest=true
-aai.logging.hbase.logresponse=true
-
-# for gremlin server
-aai.server.rebind=g
-hbase.table.name=<%= @TXN_HBASE_TABLE_NAME %>
-hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS
-hbase.zookeeper.quorum=<%= @TXN_ZOOKEEPER_QUORUM %>
-hbase.zookeeper.property.clientPort=<%= @TXN_ZOOKEEPER_PROPERTY_CLIENTPORT %>
-hbase.zookeeper.znode.parent=<%= @TXN_HBASE_ZOOKEEPER_ZNODE_PARENT %>
-
-
-aai.logging.trace.enabled=true
-aai.logging.trace.logrequest=false
-aai.logging.trace.logresponse=false
-
-
-aai.transaction.logging=true
-aai.transaction.logging.get=false
-aai.transaction.logging.post=false
-
-
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/preferredRoute.txt b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/preferredRoute.txt
deleted file mode 100644
index d09d49e34e..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/preferredRoute.txt
+++ /dev/null
@@ -1 +0,0 @@
-preferredRouteKey=<%= @AAI_WORKLOAD_PREFERRED_ROUTE_KEY %> \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-cached.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-cached.properties
deleted file mode 100644
index d6c9c2d893..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-cached.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-# the following parameters are not reloaded automatically and require a manual bounce
-query.fast-property=true
-storage.backend=hbase
-storage.hostname=<%= @STORAGE_HOSTNAME %>
-#schema.default=none
-storage.lock.wait-time=300
-storage.hbase.table=<%= @STORAGE_HBASE_TABLE %>
-storage.hbase.ext.zookeeper.znode.parent=<%= @STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT %>
-#caching on
-cache.db-cache = true
-cache.db-cache-clean-wait = <%= @DB_CACHE_CLEAN_WAIT %>
-cache.db-cache-time = <%= @DB_CACHE_TIME %>
-cache.db-cache-size = <%= @DB_CACHE_SIZE %> \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-realtime.properties b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-realtime.properties
deleted file mode 100644
index 2935cc1104..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/aai-traversal-config/templates/default/aai-traversal-app-config/titan-realtime.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-# the following parameters are not reloaded automatically and require a manual bounce
-query.fast-property=true
-storage.backend=hbase
-storage.hostname=<%= @STORAGE_HOSTNAME %>
-#schema.default=none
-storage.lock.wait-time=300
-storage.hbase.table=<%= @STORAGE_HBASE_TABLE %>
-storage.hbase.ext.zookeeper.znode.parent=<%= @STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT %>
-# Setting db-cache to false ensure the fastest propagation of changes across servers
-cache.db-cache = false
-#cache.db-cache-clean-wait = 20
-#cache.db-cache-time = 180000
-#cache.db-cache-size = 0.5 \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/runlist-aai-traversal.json b/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/runlist-aai-traversal.json
deleted file mode 100644
index 98c61a74e3..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/aai-config/cookbooks/aai-traversal/runlist-aai-traversal.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "run_list": [
- "recipe[aai-traversal-config::createConfigDirectories]",
- "recipe[aai-traversal-auth::aai-traversal-aai-keystore]",
- "recipe[aai-traversal-config::aaiEventDMaaPPublisher]",
- "recipe[aai-traversal-config::titan-cached]",
- "recipe[aai-traversal-config::titan-realtime]",
- "recipe[aai-traversal-config::aai-traversal-config]",
- "recipe[aai-traversal-config::aai-preferredRoute]"
- ]
-}
diff --git a/kubernetes/config/docker/init/src/config/aai/etc/ssl/certs/ca-certificates.crt b/kubernetes/config/docker/init/src/config/aai/etc/ssl/certs/ca-certificates.crt
deleted file mode 100755
index fe565a7d7d..0000000000
--- a/kubernetes/config/docker/init/src/config/aai/etc/ssl/certs/ca-certificates.crt
+++ /dev/null
@@ -1,4496 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE
-AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw
-CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ
-BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND
-VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb
-qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY
-HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo
-G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA
-lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr
-IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/
-0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH
-k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47
-4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO
-m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa
-cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl
-uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI
-KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls
-ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG
-AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
-VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT
-VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG
-CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA
-cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA
-QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA
-7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA
-cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA
-QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA
-czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu
-aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt
-aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud
-DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF
-BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp
-D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU
-JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m
-AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD
-vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms
-tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH
-7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
-I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA
-h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF
-d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H
-pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UE
-AwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00x
-CzAJBgNVBAYTAkVTMB4XDTA4MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEW
-MBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZF
-RElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
-AgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHkWLn7
-09gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7
-XBZXehuDYAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5P
-Grjm6gSSrj0RuVFCPYewMYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAK
-t0SdE3QrwqXrIhWYENiLxQSfHY9g5QYbm8+5eaA9oiM/Qj9r+hwDezCNzmzAv+Yb
-X79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbkHQl/Sog4P75n/TSW9R28
-MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTTxKJxqvQU
-fecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI
-2Sf23EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyH
-K9caUPgn6C9D4zq92Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEae
-ZAwUswdbxcJzbPEHXEUkFDWug/FqTYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAP
-BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz4SsrSbbXc6GqlPUB53NlTKxQ
-MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU9QHnc2VMrFAw
-RAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
-bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWIm
-fQwng4/F9tqgaHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3
-gvoFNTPhNahXwOf9jU8/kzJPeGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKe
-I6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1PwkzQSulgUV1qzOMPPKC8W64iLgpq0i
-5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1ThCojz2GuHURwCRi
-ipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oIKiMn
-MCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZ
-o5NjEFIqnxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6
-zqylfDJKZ0DcMDQj3dcEI2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacN
-GHk0vFQYXlPKNFHtRQrmjseCNj6nOGOpMCwXEGCSn1WHElkQwg9naRHMTh5+Spqt
-r0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3otkYNbn5XOmeUwssfnHdK
-Z05phkOTOPu220+DkdRgfks+KzgHVZhepA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsx
-CzAJBgNVBAYTAkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRp
-ZmljYWNpw7NuIERpZ2l0YWwgLSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwa
-QUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4wHhcNMDYxMTI3MjA0NjI5WhcNMzAw
-NDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+U29jaWVkYWQgQ2Ft
-ZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJhIFMu
-QS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkq
-hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeG
-qentLhM0R7LQcNzJPNCNyu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzL
-fDe3fezTf3MZsGqy2IiKLUV0qPezuMDU2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQ
-Y5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU34ojC2I+GdV75LaeHM/J4
-Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP2yYe68yQ
-54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+b
-MMCm8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48j
-ilSH5L887uvDdUhfHjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++Ej
-YfDIJss2yKHzMI+ko6Kh3VOz3vCaMh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/zt
-A/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK5lw1omdMEWux+IBkAC1vImHF
-rEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1bczwmPS9KvqfJ
-pxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
-AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCB
-lTCBkgYEVR0gADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFy
-YS5jb20vZHBjLzBaBggrBgEFBQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW50
-7WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2UgcHVlZGVuIGVuY29udHJhciBlbiBs
-YSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEfAygPU3zmpFmps4p6
-xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuXEpBc
-unvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/
-Jre7Ir5v/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dp
-ezy4ydV/NgIlqmjCMRW3MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42
-gzmRkBDI8ck1fj+404HGIGQatlDCIaR43NAvO2STdPCWkPHv+wlaNECW8DYSwaN0
-jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wkeZBWN7PGKX6jD/EpOe9+
-XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f/RWmnkJD
-W2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/
-RL5hRqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35r
-MDOhYil/SrnhLecUIw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxk
-BYn8eNZcLCZDqQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE
-BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w
-MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
-IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC
-SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1
-ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv
-UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX
-4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9
-KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/
-gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb
-rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ
-51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F
-be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe
-KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F
-v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn
-fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7
-jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz
-ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
-ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL
-e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70
-jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz
-WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V
-SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j
-pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX
-X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok
-fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R
-K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU
-ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU
-LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT
-LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
-IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
-MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
-bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
-dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
-H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
-uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
-mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
-a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
-E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
-WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
-VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
-Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
-cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
-IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
-AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
-YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
-Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
-c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
-mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw
-MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD
-VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA
-A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul
-CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n
-tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl
-dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch
-PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC
-+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O
-BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E
-BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl
-MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk
-ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X
-7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz
-43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl
-pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA
-WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx
-MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB
-ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV
-BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV
-6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX
-GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP
-dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH
-1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF
-62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW
-BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL
-MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU
-cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv
-b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6
-IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/
-iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh
-4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm
-XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1
-MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK
-EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh
-BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq
-xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G
-87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i
-2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U
-WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1
-0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G
-A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T
-AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr
-pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL
-ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm
-aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv
-hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm
-hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3
-P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y
-iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no
-xqE=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
-dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL
-MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
-cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP
-Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr
-ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL
-MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1
-yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr
-VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/
-nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
-KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG
-XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj
-vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt
-Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g
-N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC
-nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
-dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL
-MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
-cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y
-YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua
-kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL
-QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp
-6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG
-yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i
-QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
-KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO
-tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu
-QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ
-Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u
-olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48
-x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE
-BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz
-dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG
-A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U
-cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf
-qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ
-JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ
-+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS
-s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5
-HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7
-70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG
-V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S
-qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S
-5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia
-C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX
-OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE
-FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
-BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2
-KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
-Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B
-8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ
-MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc
-0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ
-u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF
-u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH
-YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8
-GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO
-RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e
-KeC2uAloGRwYQw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC
-VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ
-cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ
-BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt
-VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D
-0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9
-ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G
-A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G
-A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs
-aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I
-flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEc
-MBoGA1UEChMTSmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRp
-b25DQTAeFw0wNzEyMTIxNTAwMDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYT
-AkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zlcm5tZW50MRYwFAYDVQQLEw1BcHBs
-aWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp23gdE6H
-j6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4fl+K
-f5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55
-IrmTwcrNwVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cw
-FO5cjFW6WY2H/CPek9AEjP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDiht
-QWEjdnjDuGWk81quzMKq2edY3rZ+nYVunyoKb58DKTCXKB28t89UKU5RMfkntigm
-/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRUWssmP3HMlEYNllPqa0jQ
-k/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNVBAYTAkpQ
-MRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOC
-seODvOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
-ggEBADlqRHZ3ODrso2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJ
-hyzjVOGjprIIC8CFqMjSnHH2HZ9g/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+
-eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYDio+nEhEMy/0/ecGc/WLuo89U
-DNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmWdupwX3kSa+Sj
-B1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
-rosot4LKGAfmt1t06SAZf7IbiVQ=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE
-AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG
-EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM
-FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC
-REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp
-Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM
-VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+
-SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ
-4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L
-cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi
-eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV
-HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG
-A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3
-DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j
-vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP
-DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc
-maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D
-lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv
-KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE
-BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h
-cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy
-MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg
-Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9
-thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM
-cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG
-L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i
-NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h
-X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b
-m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy
-Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja
-EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T
-KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF
-6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh
-OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD
-VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
-cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv
-ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl
-AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF
-661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9
-am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1
-ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481
-PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS
-3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k
-SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF
-3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM
-ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g
-StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz
-Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB
-jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
-RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
-VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
-DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
-ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
-VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
-mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
-IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
-mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
-XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
-dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
-jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
-BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
-DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
-9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
-jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
-Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
-ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
-R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3Mg
-Q2xhc3MgMiBDQSAxMB4XDTA2MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzEL
-MAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MR0wGwYD
-VQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7McXA0
-ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLX
-l18xoS830r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVB
-HfCuuCkslFJgNJQ72uA40Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B
-5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/RuFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3
-WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0PAQH/BAQD
-AgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLP
-gcIV1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+
-DKhQ7SLHrQVMdvvt7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKu
-BctN518fV4bVIJwo+28TOPX2EZL2fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHs
-h7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5wwDX3OaJdZtB7WZ+oRxKaJyOk
-LY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
-Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow
-TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
-HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
-BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr
-6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV
-L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91
-1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx
-MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ
-QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB
-arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr
-Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi
-FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS
-P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN
-9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP
-AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz
-uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h
-9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
-A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t
-OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo
-+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7
-KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2
-DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us
-H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ
-I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7
-5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h
-3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz
-Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
-MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
-Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow
-TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
-HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
-BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y
-ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E
-N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9
-tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX
-0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c
-/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X
-KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY
-zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS
-O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D
-34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP
-K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3
-AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv
-Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj
-QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
-cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS
-IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2
-HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa
-O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv
-033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u
-dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE
-kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41
-3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD
-u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq
-4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzET
-MBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UE
-AxMIQ0EgRGlzaWcwHhcNMDYwMzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQsw
-CQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcg
-YS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgmGErE
-Nx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnX
-mjxUizkDPw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYD
-XcDtab86wYqg6I7ZuUUohwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhW
-S8+2rT+MitcE5eN4TPWGqvWP+j1scaMtymfraHtuM6kMgiioTGohQBUgDCZbg8Kp
-FhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8wgfwwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0PAQH/BAQD
-AgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cu
-ZGlzaWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5z
-ay9jYS9jcmwvY2FfZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2sv
-Y2EvY3JsL2NhX2Rpc2lnLmNybDAaBgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEw
-DQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59tWDYcPQuBDRIrRhCA/ec8J9B6
-yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3mkkp7M5+cTxq
-EEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
-CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeB
-EicTXxChds6KezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFN
-PGO+I++MzVpQuGhU+QqZMxEA4Z7CRneC9VkGjCFMhwnN5ag=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV
-BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
-MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQy
-MDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
-EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjEw
-ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy3QRk
-D2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/o
-OI7bm+V8u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3A
-fQ+lekLZWnDZv6fXARz2m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJe
-IgpFy4QxTaz+29FHuvlglzmxZcfe+5nkCiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8n
-oc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTaYVKvJrT1cU/J19IG32PK
-/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6vpmumwKj
-rckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD
-3AjLLhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE
-7cderVC6xkGbrPAXZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkC
-yC2fg69naQanMVXVz0tv/wQFx1isXxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLd
-qvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
-DwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ04IwDQYJKoZI
-hvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
-xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaA
-SfX8MPWbTx9BLxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXo
-HqJPYNcHKfyyo6SdbhWSVhlMCrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpB
-emOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5GfbVSUZP/3oNn6z4eGBrxEWi1CXYBmC
-AMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85YmLLW1AL14FABZyb
-7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKSds+x
-DzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvk
-F7mGnjixlAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqF
-a3qdnom2piiZk4hA9z7NUaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsT
-Q6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJa7+h89n07eLw4+1knj0vllJPgFOL
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV
-BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
-MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy
-MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
-EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw
-ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe
-NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH
-PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I
-x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe
-QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR
-yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO
-QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912
-H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ
-QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD
-i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs
-nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1
-rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
-DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI
-hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
-tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf
-GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb
-lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka
-+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal
-TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i
-nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3
-gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr
-G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os
-zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x
-L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQsw
-CQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMT
-EkNBIFdvU2lnbiBFQ0MgUm9vdDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4
-NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEb
-MBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZIzj0CAQYFK4EEACID
-YgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiUt5v8
-KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES
-1ns2o0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
-FgQUqv3VWqP2h4syhf3RMluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB
-1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0Daupn75OcsqF1NnstTJFGG+rrQIwfcf3
-aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYua/GRspBl9JrmkO5K
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD
-TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx
-MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j
-aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP
-T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03
-sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL
-TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5
-/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp
-7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz
-EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt
-hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP
-a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot
-aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg
-TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV
-PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv
-cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL
-tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd
-BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
-ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT
-ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL
-jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS
-ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy
-P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19
-xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d
-Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN
-5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe
-/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z
-AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ
-5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJD
-TjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2
-MDcwOTE0WhcNMjcwNDE2MDcwOTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMF
-Q05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzDo+/hn7E7SIX1mlwh
-IhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tizVHa6
-dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZO
-V/kbZKKTVrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrC
-GHn2emU1z5DrvTOTn1OrczvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gN
-v7Sg2Ca+I19zN38m5pIEo3/PIKe38zrKy5nLAgMBAAGjczBxMBEGCWCGSAGG+EIB
-AQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscCwQ7vptU7ETAPBgNVHRMB
-Af8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991SlgrHAsEO
-76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnK
-OOK5Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvH
-ugDnuL8BV8F3RTIMO/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7Hgvi
-yJA/qIYM/PmLXoXLT1tLYhFHxUV8BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fL
-buXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2G8kS1sHNzYDzAgE8yGnLRUhj
-2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5mmxE=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB
-gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
-BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
-MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
-YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
-RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
-UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
-2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
-Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
-+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
-DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
-nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW
-/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
-PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u
-QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY
-SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv
-IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4
-zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd
-BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB
-ZQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
-MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
-BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
-IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
-MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
-ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
-T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
-FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
-cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
-BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
-fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
-GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB
-hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
-BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5
-MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
-EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
-Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
-6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X
-pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC
-9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV
-/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf
-Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z
-+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w
-qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah
-SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC
-u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf
-Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq
-crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
-FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
-/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl
-wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM
-4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV
-2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna
-FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ
-CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK
-boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke
-jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
-S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
-QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
-0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
-NVOFBkpdn627G190
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEn
-MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
-ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMg
-b2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAxNjEzNDNaFw0zNzA5MzAxNjEzNDRa
-MH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZpcm1hIFNBIENJRiBB
-ODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3JnMSIw
-IAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0B
-AQEFAAOCAQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtb
-unXF/KGIJPov7coISjlUxFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0d
-BmpAPrMMhe5cG3nCYsS4No41XQEMIwRHNaqbYE6gZj3LJgqcQKH0XZi/caulAGgq
-7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jWDA+wWFjbw2Y3npuRVDM3
-0pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFVd9oKDMyX
-roDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIG
-A1UdEwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5j
-aGFtYmVyc2lnbi5vcmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p
-26EpW1eLTXYGduHRooowDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIA
-BzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hhbWJlcnNpZ24ub3JnMCcGA1Ud
-EgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYDVR0gBFEwTzBN
-BgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEB
-AAxBl8IahsAifJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZd
-p0AJPaxJRUXcLo0waLIJuvvDL8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi
-1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wNUPf6s+xCX6ndbcj0dc97wXImsQEc
-XCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/nADydb47kMgkdTXg0
-eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1erfu
-tGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEn
-MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
-ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENo
-YW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYxNDE4WhcNMzcwOTMwMTYxNDE4WjB9
-MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgy
-NzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4G
-A1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUA
-A4IBDQAwggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0
-Mi+ITaFgCPS3CU6gSS9J1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/s
-QJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8Oby4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpV
-eAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl6DJWk0aJqCWKZQbua795
-B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c8lCrEqWh
-z0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0T
-AQH/BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1i
-ZXJzaWduLm9yZy9jaGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4w
-TcbOX60Qq+UDpfqpFDAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAH
-MCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBjaGFtYmVyc2lnbi5vcmcwKgYD
-VR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9yZzBbBgNVHSAE
-VDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0B
-AQUFAAOCAQEAPDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUM
-bKGKfKX0j//U2K0X1S0E0T9YgOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXi
-ryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJPJ7oKXqJ1/6v/2j1pReQvayZzKWG
-VwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4IBHNfTIzSJRUTN3c
-ecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREest2d/
-AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBY
-MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNV
-BAMTJENlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDEx
-MDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgxCzAJBgNVBAYTAkNOMRowGAYDVQQK
-ExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlmaWNhdGlvbiBBdXRo
-b3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPX
-JYY1kBaiXW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgO
-gHzKtB0TiGsOqCR3A9DuW/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg
-5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg95k4ot+vElbGs/V6r+kHLXZ1L3PR8du9n
-fwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BKv0mUYQs4kI9dJGwlezt5
-2eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJ
-KoZIhvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8
-fHulwqZm46qwtyeYP0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G
-3CE4Q3RM+zD4F3LBMvzIkRfEzFg3TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yy
-SrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu+sif/a+RZQp4OBXllxcU3fng
-LDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+7Q9LGOHSJDy7
-XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
-BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
-DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
-BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
-QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
-gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
-zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
-130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
-JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
-DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
-ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
-AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
-AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
-9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
-bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
-fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
-HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
-t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
-WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjET
-MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAk
-BgNVBAMMHUNlcnRpbm9taXMgLSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4
-Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNl
-cnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYwJAYDVQQDDB1DZXJ0
-aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jY
-F1AMnmHawE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N
-8y4oH3DfVS9O7cdxbwlyLu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWe
-rP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K
-/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92NjMD2AR5vpTESOH2VwnHu
-7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9qc1pkIuVC
-28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6
-lSTClrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1E
-nn1So2+WLhl+HPNbxxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB
-0iSVL1N6aaLwD4ZFjliCK0wi1F6g530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql09
-5gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna4NH4+ej9Uji29YnfAgMBAAGj
-WzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQN
-jLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
-KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9s
-ov3/4gbIOZ/xWqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZM
-OH8oMDX/nyNTt7buFHAAQCvaR6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q
-619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40nJ+U8/aGH88bc62UeYdocMMzpXDn
-2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1BCxMjidPJC+iKunqj
-o3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjvJL1v
-nxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG
-5ERQL1TEqkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWq
-pdEdnV1j6CTmNhTih60bWfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZb
-dsLLO7XSAPCjDuGtbkD326C00EauFddEwk01+dIL8hf2rGbVJLJP0RyZwG71fet0
-BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/vgt2Fl43N+bYdJeimUV5
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjET
-MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAb
-BgNVBAMTFENlcnRpbm9taXMgLSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMz
-MTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMx
-FzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRDZXJ0aW5vbWlzIC0g
-Um9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQosP5L2
-fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJfl
-LieY6pOod5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQV
-WZUKxkd8aRi5pwP5ynapz8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDF
-TKWrteoB4owuZH9kb/2jJZOLyKIOSY008B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb
-5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09xRLWtwHkziOC/7aOgFLSc
-CbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE6OXWk6Ri
-wsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJ
-wx3tFvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SG
-m/lg0h9tkQPTYKbVPZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4
-F2iw4lNVYC2vPsKD2NkJK/DAZNuHi5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZng
-WVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I6tNxIqSSaHh0
-2TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
-AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/
-0KGRHCwPT5iVWVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWw
-F6YSjNRieOpWauwK0kDDPAUwPk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZS
-g081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAXlCOotQqSD7J6wWAsOMwaplv/8gzj
-qh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJy29SWwNyhlCVCNSN
-h4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9Iff/
-ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8V
-btaw5BngDwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwj
-Y/M50n92Uaf0yKHxDHYiI0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ
-8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nMcyrDflOR1m749fPH0FFNjkulW+YZFzvW
-gQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVrhkIGuUE=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAw
-PTELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFz
-cyAyIFByaW1hcnkgQ0EwHhcNOTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9
-MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNz
-IDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxQ
-ltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR5aiR
-VhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyL
-kcAbmXuZVg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCd
-EgETjdyAYveVqUSISnFOYFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yas
-H7WLO7dDWWuwJKZtkIvEcupdM5i3y95ee++U8Rs+yskhwcWYAqqi9lt3m/V+llU0
-HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1Ud
-DwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJYIZIAYb4
-QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMu
-Y29tL0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/
-AN9WM2K191EBkOvDP9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8
-yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMR
-FcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW2ikbhiMA
-ybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB
-kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM
-MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
-QTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM
-MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
-QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E
-jG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo
-ePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI
-ULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu
-Ob7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg
-AKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7
-HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA
-uI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa
-TOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg
-xSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q
-CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
-O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs
-6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM
-MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D
-ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU
-cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3
-WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg
-Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw
-IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH
-UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM
-TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU
-BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM
-kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x
-AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV
-HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y
-sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL
-I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8
-J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY
-VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
-03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
-VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
-IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
-MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz
-IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz
-MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj
-dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw
-EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp
-MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9
-28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq
-VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q
-DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR
-5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL
-ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a
-Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl
-UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s
-+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5
-Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
-ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx
-hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV
-HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1
-+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN
-YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t
-L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy
-ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt
-IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV
-HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w
-DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW
-PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF
-5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1
-glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH
-FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2
-pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD
-xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG
-tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq
-jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De
-fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
-OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ
-d0jQ
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC
-Q04xMjAwBgNVBAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24g
-Q2VudGVyMUcwRQYDVQQDDD5DaGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0
-aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMgUm9vdDAeFw0xMDA4MzEwNzExMjVa
-Fw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAGA1UECgwpQ2hpbmEg
-SW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMMPkNo
-aW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRp
-ZmljYXRlcyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z
-7r07eKpkQ0H1UN+U8i6yjUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//
-DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV98YPjUesWgbdYavi7NifFy2cyjw1l1Vx
-zUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2HklY0bBoQCxfVWhyXWIQ8
-hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23KzhmBsUs
-4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54u
-gQEC7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oY
-NJKiyoOCWTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
-FgQUfHJLOcfA22KlT5uqGDSSosqDglkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3
-j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd50XPFtQO3WKwMVC/GVhMPMdoG
-52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM7+czV0I664zB
-echNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
-ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrI
-zo9uoV1/A3U05K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATy
-wy39FCqQmbkHzJ8=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDkzCCAnugAwIBAgIQFBOWgxRVjOp7Y+X8NId3RDANBgkqhkiG9w0BAQUFADA0
-MRMwEQYDVQQDEwpDb21TaWduIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQG
-EwJJTDAeFw0wNDAzMjQxMTMyMThaFw0yOTAzMTkxNTAyMThaMDQxEzARBgNVBAMT
-CkNvbVNpZ24gQ0ExEDAOBgNVBAoTB0NvbVNpZ24xCzAJBgNVBAYTAklMMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8ORUaSvTx49qROR+WCf4C9DklBKK
-8Rs4OC8fMZwG1Cyn3gsqrhqg455qv588x26i+YtkbDqthVVRVKU4VbirgwTyP2Q2
-98CNQ0NqZtH3FyrV7zb6MBBC11PN+fozc0yz6YQgitZBJzXkOPqUm7h65HkfM/sb
-2CEJKHxNGGleZIp6GZPKfuzzcuc3B1hZKKxC+cX/zT/npfo4sdAMx9lSGlPWgcxC
-ejVb7Us6eva1jsz/D3zkYDaHL63woSV9/9JLEYhwVKZBqGdTUkJe5DSe5L6j7Kpi
-Xd3DTKaCQeQzC6zJMw9kglcq/QytNuEMrkvF7zuZ2SOzW120V+x0cAwqTwIDAQAB
-o4GgMIGdMAwGA1UdEwQFMAMBAf8wPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2Zl
-ZGlyLmNvbXNpZ24uY28uaWwvY3JsL0NvbVNpZ25DQS5jcmwwDgYDVR0PAQH/BAQD
-AgGGMB8GA1UdIwQYMBaAFEsBmz5WGmU2dst7l6qSBe4y5ygxMB0GA1UdDgQWBBRL
-AZs+VhplNnbLe5eqkgXuMucoMTANBgkqhkiG9w0BAQUFAAOCAQEA0Nmlfv4pYEWd
-foPPbrxHbvUanlR2QnG0PFg/LUAlQvaBnPGJEMgOqnhPOAlXsDzACPw1jvFIUY0M
-cXS6hMTXcpuEfDhOZAYnKuGntewImbQKDdSFc8gS4TXt8QUxHXOZDOuWyt3T5oWq
-8Ir7dcHyCTxlZWTzTNity4hp8+SDtwy9F1qWF8pb/627HOkthIDYIb6FUtnUdLlp
-hbpN7Sgy6/lhSuTENh4Z3G+EER+V9YMoGKgzkkMn3V0TBEVPh9VGzT2ouvDzuFYk
-Res3x+F2T3I5GN9+dHLHcy056mDmrRGiVod7w2ia/viMcKjfZTL0pECMocJEAw6U
-AGegcQCCSA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
-YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
-MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
-BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
-GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
-BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
-3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
-YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
-rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
-ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
-oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
-QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
-b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
-AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
-GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
-G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
-l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
-smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp
-ZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow
-fjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV
-BAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM
-cm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S
-HpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996
-CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk
-3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz
-6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV
-HQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
-EwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv
-Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw
-Oi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww
-DQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0
-5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI
-gKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ
-aD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl
-izeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb
-MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
-GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0
-aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla
-MH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
-BgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD
-VQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW
-fnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt
-TGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL
-fhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW
-1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7
-kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G
-A1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v
-ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo
-dHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu
-Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/
-HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS
-jBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+
-xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn
-dBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG
-A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh
-bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE
-ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS
-b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5
-7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS
-J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y
-HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP
-t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz
-FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY
-XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
-MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw
-hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js
-MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA
-A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj
-Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx
-XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o
-omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc
-A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
-WL1WMRJOEcgh4LMRkWXbtKaIOM5V
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF
-MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD
-bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha
-ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM
-HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03
-UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42
-tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R
-ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM
-lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp
-/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G
-A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G
-A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj
-dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy
-MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl
-cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js
-L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL
-BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni
-acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
-o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K
-zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8
-PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y
-Johw1+qRzT65ysCQblrGXnRl11z+o+I=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF
-MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD
-bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw
-NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV
-BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn
-ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0
-3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z
-qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR
-p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8
-HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw
-ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea
-HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw
-Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh
-c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E
-RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt
-dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku
-Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp
-3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
-nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF
-CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na
-xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX
-KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBb
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3Qx
-ETAPBgNVBAsTCERTVCBBQ0VTMRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0w
-MzExMjAyMTE5NThaFw0xNzExMjAyMTE5NThaMFsxCzAJBgNVBAYTAlVTMSAwHgYD
-VQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UECxMIRFNUIEFDRVMx
-FzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPu
-ktKe1jzIDZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7
-gLFViYsx+tC3dr5BPTCapCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZH
-fAjIgrrep4c9oW24MFbCswKBXy314powGCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4a
-ahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPyMjwmR/onJALJfh1biEIT
-ajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1UdEwEB/wQF
-MAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rk
-c3QuY29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjto
-dHRwOi8vd3d3LnRydXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMt
-aW5kZXguaHRtbDAdBgNVHQ4EFgQUCXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZI
-hvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V25FYrnJmQ6AgwbN99Pe7lv7Uk
-QIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6tFr8hlxCBPeP/
-h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpR
-rscL9yuwNwXsvFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf2
-9w4LTJxoeHtxMcfrHuBnQfO3oKfN5XozNmr6mis=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
-MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
-DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
-PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
-Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
-rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
-OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
-xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
-7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
-aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
-SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
-ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
-AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
-R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
-JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
-Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc
-MBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2Vj
-IFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENB
-IDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5MjM1OTAwWjBxMQswCQYDVQQGEwJE
-RTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxl
-U2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290
-IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEU
-ha88EOQ5bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhC
-QN/Po7qCWWqSG6wcmtoIKyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1Mjwr
-rFDa1sPeg5TKqAyZMg4ISFZbavva4VhYAUlfckE8FQYBjl2tqriTtM2e66foai1S
-NNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aKSe5TBY8ZTNXeWHmb0moc
-QqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTVjlsB9WoH
-txa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAP
-BgNVHRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
-AQEAlGRZrTlk5ynrE/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756Abrsp
-tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa
-IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl
-6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+
-xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
-Cm26OWMohpLzGITY+9HPBVZkVw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
-b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
-cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
-JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
-mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
-wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
-VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
-AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
-AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
-BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
-pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
-dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
-fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
-NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
-H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
-b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
-cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA
-n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc
-biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp
-EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA
-bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu
-YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB
-AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW
-BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI
-QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I
-0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni
-lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9
-B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv
-ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
-IhNzbM8m9Yop5w==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw
-CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
-ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg
-RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
-Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq
-hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf
-Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q
-RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
-BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD
-AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY
-JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv
-6pZjamVFkpUBtA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
-QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
-MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
-b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
-CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
-nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
-43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
-T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
-gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
-BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
-TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
-DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
-hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
-06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
-PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
-YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
-MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
-MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
-b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
-2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
-1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
-q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
-tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
-vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
-BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
-5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
-1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
-NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
-Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
-8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
-pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
-MrY=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw
-CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
-ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe
-Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw
-EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x
-IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF
-K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG
-fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO
-Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd
-BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx
-AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/
-oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8
-sycX
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
-ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
-LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
-RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
-+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
-PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
-xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
-Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
-hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
-EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
-FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
-nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
-eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
-hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
-Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
-+OkuE6N36B9K
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
-RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
-Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y
-ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If
-xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV
-ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO
-DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ
-jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/
-CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi
-EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM
-fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY
-uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK
-chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t
-9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
-ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2
-SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd
-+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc
-fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa
-sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N
-cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N
-0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
-4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
-r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
-/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
-gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV
-BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC
-aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV
-BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1
-Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz
-MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+
-BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp
-em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
-ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY
-B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH
-D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF
-Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo
-q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D
-k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH
-fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut
-dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM
-ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8
-zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
-rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX
-U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6
-Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5
-XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF
-Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR
-HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY
-GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c
-77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3
-+GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK
-vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6
-FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl
-yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P
-AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD
-y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d
-NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNV
-BAMML0VCRyBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMTcwNQYDVQQKDC5FQkcgQmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXpt
-ZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAeFw0wNjA4MTcwMDIxMDlaFw0xNjA4
-MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25payBTZXJ0aWZpa2Eg
-SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2ltIFRl
-a25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h
-4fuXd7hxlugTlkaDT7byX3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAk
-tiHq6yOU/im/+4mRDGSaBUorzAzu8T2bgmmkTPiab+ci2hC6X5L8GCcKqKpE+i4s
-tPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfreYteIAbTdgtsApWjluTL
-dlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZTqNGFav4
-c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8Um
-TDGyY5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z
-+kI2sSXFCjEmN1ZnuqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0O
-Lna9XvNRiYuoP1Vzv9s6xiQFlpJIqkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMW
-OeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vmExH8nYQKE3vwO9D8owrXieqW
-fo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0Nokb+Clsi7n2
-l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgw
-FoAU587GT/wWZ5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+
-8ygjdsZs93/mQJ7ANtyVDR2tFcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI
-6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgmzJNSroIBk5DKd8pNSe/iWtkqvTDO
-TLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64kXPBfrAowzIpAoHME
-wfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqTbCmY
-Iai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJn
-xk1Gj7sURT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4Q
-DgZxGhBM/nV+/x5XOULK1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9q
-Kd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11t
-hie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQY9iJSrSq3RZj9W6+YKH4
-7ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9AahH3eU7
-QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB
-8zELMAkGA1UEBhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2Vy
-dGlmaWNhY2lvIChOSUYgUS0wODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1
-YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYDVQQLEyxWZWdldSBodHRwczovL3d3
-dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UECxMsSmVyYXJxdWlh
-IEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMTBkVD
-LUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQG
-EwJFUzE7MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8g
-KE5JRiBRLTA4MDExNzYtSSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBD
-ZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZlZ2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQu
-bmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJhcnF1aWEgRW50aXRhdHMg
-ZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUNDMIIBIjAN
-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R
-85iKw5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm
-4CgPukLjbo73FCeTae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaV
-HMf5NLWUhdWZXqBIoH7nF2W4onW4HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNd
-QlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0aE9jD2z3Il3rucO2n5nzbcc8t
-lGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw0JDnJwIDAQAB
-o4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4
-opvpXY0wfwYDVR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBo
-dHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidW
-ZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAwDQYJKoZIhvcN
-AQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJlF7W2u++AVtd0x7Y
-/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNaAl6k
-SBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhy
-Rp/7SNVel+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOS
-Agu+TGbrIP65y7WZf+a2E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xl
-nJ2lYJU6Un/10asIbvPuW/mIPX64b24D5EI=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1
-MQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1
-czEoMCYGA1UEAwwfRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYG
-CSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEy
-MTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNl
-ZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBS
-b290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUy
-euuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO
-bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIw
-WFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/d
-MtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE
-1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/
-zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYB
-BQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEF
-BQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQiZrxTFGGV
-v9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG
-E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
-uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIW
-iAYLtqZLICjU3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/v
-GVCJYMzpJJUPwssd8m92kMfMdcGWxZ0=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
-RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
-bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
-IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3
-MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
-LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
-YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
-A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
-K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
-sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
-MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
-XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
-HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
-4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
-HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub
-j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo
-U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
-zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b
-u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+
-bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er
-fF6adulZkMV8gzURZVE=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
-Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
-KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw
-NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw
-NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy
-ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV
-BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo
-Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4
-4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9
-KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI
-rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi
-94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB
-sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi
-gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo
-kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE
-vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t
-O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua
-AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP
-9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/
-eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m
-0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG
-A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3
-d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu
-dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq
-RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy
-MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD
-VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0
-L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g
-Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi
-A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt
-ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH
-Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
-BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC
-R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX
-hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
-cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs
-IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz
-dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy
-NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu
-dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt
-dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0
-aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T
-RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN
-cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW
-wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1
-U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0
-jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN
-BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/
-jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
-Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v
-1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R
-nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH
-VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
-UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
-dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
-MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
-dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
-BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
-cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
-AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
-MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
-aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
-ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
-IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
-MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
-A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
-7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
-1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT
-ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw
-MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj
-dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l
-c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC
-UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc
-58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/
-o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH
-MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr
-aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA
-A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA
-Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv
-8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT
-ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw
-MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j
-LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ
-KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo
-RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu
-WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw
-Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD
-AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK
-eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM
-zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+
-WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN
-/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
-MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
-YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
-R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
-9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
-fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
-iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
-1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
-bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
-MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
-ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
-uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
-Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
-tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
-PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
-hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
-5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs
-IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
-R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A
-PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8
-Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL
-TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL
-5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7
-S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe
-2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap
-EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td
-EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv
-/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN
-A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0
-abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF
-I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz
-4iIprn2DQKi6bA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY
-MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
-R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx
-MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9
-AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA
-ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0
-7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W
-kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI
-mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
-A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ
-KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1
-6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl
-4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K
-oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj
-UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU
-AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL
-MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj
-KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2
-MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV
-BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw
-NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV
-BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
-MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL
-So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal
-tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
-BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG
-CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT
-qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz
-rD6ogRLQy7rQkgu2npaqBA+K
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB
-mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
-MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
-eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ
-BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
-MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0
-BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz
-+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm
-hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn
-5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W
-JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL
-DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC
-huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
-HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB
-AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB
-zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN
-kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
-AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH
-SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G
-spki4cErx5z481+oghLrGREt
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy
-c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE
-BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0
-IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV
-VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8
-cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT
-QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh
-F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v
-c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w
-mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd
-VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX
-teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ
-f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe
-Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+
-nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB
-/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY
-MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG
-9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX
-IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn
-ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z
-uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN
-Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja
-QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW
-koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9
-ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt
-DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm
-bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW
-MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy
-c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD
-VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1
-c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81
-WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG
-FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq
-XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL
-se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb
-KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd
-IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73
-y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt
-hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc
-QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4
-Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV
-HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ
-KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ
-L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr
-Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo
-ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY
-T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz
-GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m
-1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV
-OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH
-6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX
-QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk
-MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH
-bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
-DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
-QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
-MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ
-FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw
-DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F
-uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX
-kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs
-ewv4n4Q=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk
-MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH
-bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
-DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
-QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
-MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc
-8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke
-hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI
-KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg
-515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO
-xwy8p2Fp8fc74SrL+SvzZpA3
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
-A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
-b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
-MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
-YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
-aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
-jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
-xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
-1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
-snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
-U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
-9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
-BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
-AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
-yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
-38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
-AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
-DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
-HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
-MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
-v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
-eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
-tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
-C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
-zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
-mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
-V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
-bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
-3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
-J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
-291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
-ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
-AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
-A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
-Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
-MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
-A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
-RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
-gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
-KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
-QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
-XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
-DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
-LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
-RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
-jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
-6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
-mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
-Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
-WD9f
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD
-VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
-IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
-MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
-aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx
-MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy
-cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG
-A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl
-BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed
-KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7
-G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2
-zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4
-ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG
-HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2
-Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V
-yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e
-beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r
-6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
-wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog
-zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW
-BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr
-ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp
-ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk
-cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt
-YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC
-CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow
-KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI
-hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ
-UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz
-X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x
-fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz
-a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd
-Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd
-SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O
-AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso
-M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge
-v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
-09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
-MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
-YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
-MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
-ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
-MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
-ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
-PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
-wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
-EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
-avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
-YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
-sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
-/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
-IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
-ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
-OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
-TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
-dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
-ReYNnyicsbkqWletNw+vHX/bvZ8=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
-EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
-ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz
-NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
-EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE
-AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD
-E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH
-/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy
-DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh
-GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR
-tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA
-AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
-FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX
-WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
-9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
-gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
-2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
-LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
-4uJEvlz36hz1
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix
-RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
-dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p
-YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw
-NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK
-EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl
-cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
-c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz
-dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ
-fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns
-bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD
-75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP
-FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV
-HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp
-5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu
-b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA
-A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p
-6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
-TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7
-dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys
-Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI
-l7WdmplNsDz4SgCbZN2fOUvRJ9e4
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx
-FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg
-Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG
-A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr
-b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ
-jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn
-PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh
-ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9
-nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h
-q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED
-MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC
-mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3
-7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB
-oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs
-EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO
-fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi
-AmvZWg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYT
-AkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQ
-TS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG
-9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMB4XDTAyMTIxMzE0MjkyM1oXDTIw
-MTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAM
-BgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEO
-MAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2
-LmZyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaI
-s9z4iPf930Pfeo2aSVz2TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2
-xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCWSo7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4
-u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYyHF2fYPepraX/z9E0+X1b
-F8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNdfrGoRpAx
-Vs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGd
-PDPQtQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNV
-HSAEDjAMMAoGCCqBegF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAx
-NjAfBgNVHSMEGDAWgBSjBS8YYFDCiQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUF
-AAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RKq89toB9RlPhJy3Q2FLwV3duJ
-L92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3QMZsyK10XZZOY
-YLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
-Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2a
-NjSaTFR+FwNIlQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R
-0982gaEbeC9xs/FZTEYYKKuF0mBWWg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK
-MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu
-VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw
-MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw
-JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT
-3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU
-+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp
-S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1
-bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi
-T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL
-vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK
-Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK
-dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT
-c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv
-l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N
-iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD
-ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
-6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt
-LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93
-nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3
-+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK
-W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT
-AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq
-l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG
-4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ
-mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A
-7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN
-MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu
-VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN
-MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0
-MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi
-MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7
-ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy
-RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS
-bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF
-/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R
-3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw
-EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy
-9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V
-GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ
-2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV
-WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD
-W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN
-AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
-t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV
-DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9
-TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G
-lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW
-mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df
-WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5
-+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ
-tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA
-GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv
-8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4
-MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6
-ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD
-VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j
-b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq
-scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO
-xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H
-LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX
-uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD
-yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+
-JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q
-rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN
-BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L
-hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB
-QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+
-HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu
-Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg
-QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB
-BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
-MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA
-A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb
-laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56
-awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo
-JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw
-LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT
-VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk
-LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb
-UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/
-QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+
-naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls
-QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcN
-AQkBFglwa2lAc2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZp
-dHNlZXJpbWlza2Vza3VzMRAwDgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMw
-MVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMQsw
-CQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEQ
-MA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOB
-SvZiF3tfTQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkz
-ABpTpyHhOEvWgxutr2TC+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvH
-LCu3GFH+4Hv2qEivbDtPL+/40UceJlfwUR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMP
-PbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDaTpxt4brNj3pssAki14sL
-2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQFMAMBAf8w
-ggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwIC
-MIHDHoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDk
-AGwAagBhAHMAdABhAHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0
-AHMAZQBlAHIAaQBtAGkAcwBrAGUAcwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABz
-AGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABrAGkAbgBuAGkAdABhAG0AaQBz
-AGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nwcy8wKwYDVR0f
-BCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
-FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcY
-P2/v6X2+MA4GA1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOi
-CfP+JmeaUOTDBS8rNXiRTHyoERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+g
-kcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyLabVAyJRld/JXIWY7zoVAtjNjGr95
-HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678IIbsSt4beDI3poHS
-na9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkhMp6q
-qIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0Z
-TbvGRNs2yyqcjg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAw
-cjELMAkGA1UEBhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNy
-b3NlYyBMdGQuMRQwEgYDVQQLEwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9z
-ZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0MDYxMjI4NDRaFw0xNzA0MDYxMjI4
-NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEWMBQGA1UEChMN
-TWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMTGU1p
-Y3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2u
-uO/TEdyB5s87lozWbxXGd36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+
-LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/NoqdNAoI/gqyFxuEPkEeZlApxcpMqyabA
-vjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjcQR/Ji3HWVBTji1R4P770
-Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJPqW+jqpx
-62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcB
-AQRbMFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3Aw
-LQYIKwYBBQUHMAKGIWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAP
-BgNVHRMBAf8EBTADAQH/MIIBcwYDVR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIB
-AQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3LmUtc3ppZ25vLmh1L1NaU1ov
-MIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0AdAB2AOEAbgB5
-ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
-AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABT
-AHoAbwBsAGcA4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABh
-ACAAcwB6AGUAcgBpAG4AdAAgAGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABo
-AHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMAegBpAGcAbgBvAC4AaAB1AC8AUwBa
-AFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6Ly93d3cuZS1zemln
-bm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NOPU1p
-Y3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxP
-PU1pY3Jvc2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZv
-Y2F0aW9uTGlzdDtiaW5hcnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuB
-EGluZm9AZS1zemlnbm8uaHWkdzB1MSMwIQYDVQQDDBpNaWNyb3NlYyBlLVN6aWdu
-w7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhTWjEWMBQGA1UEChMNTWlj
-cm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhVMIGsBgNV
-HSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJI
-VTERMA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDAS
-BgNVBAsTC2UtU3ppZ25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBS
-b290IENBghEAzLjnv04pGv2i3GalHCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS
-8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMTnGZjWS7KXHAM/IO8VbH0jgds
-ZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FEaGAHQzAxQmHl
-7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
-86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfR
-hUZLphK3dehKyVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/
-MPMMNz7UwiiAc7EBt51alhQBS6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
-VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0
-ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G
-CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y
-OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx
-FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp
-Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
-dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP
-kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc
-cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U
-fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7
-N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC
-xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1
-+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
-A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM
-Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG
-SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h
-mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk
-ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
-tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c
-2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t
-HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG
-EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3
-MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl
-cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR
-dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB
-pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM
-b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm
-aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz
-IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT
-lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz
-AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5
-VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG
-ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2
-BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG
-AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M
-U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh
-bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C
-+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
-bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F
-uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2
-XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUx
-ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0
-b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQD
-EylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikgVGFudXNpdHZhbnlraWFkbzAeFw05
-OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYDVQQGEwJIVTERMA8G
-A1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNh
-Z2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5l
-dExvY2sgVXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqG
-SIb3DQEBAQUAA4GNADCBiQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xK
-gZjupNTKihe5In+DCnVMm8Bp2GQ5o+2So/1bXHQawEfKOml2mrriRBf8TKPV/riX
-iK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr1nGTLbO/CVRY7QbrqHvc
-Q7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8E
-BAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1G
-SUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFu
-b3MgU3pvbGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBh
-bGFwamFuIGtlc3p1bHQuIEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExv
-Y2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGln
-aXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0
-IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh
-c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGph
-biBhIGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJo
-ZXRvIGF6IGVsbGVub3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBP
-UlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmlj
-YXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBo
-dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNA
-bmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06
-sPgzTEdM43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXa
-n3BukxowOR0w2y7jfLKRstE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKS
-NitjrFgBazMpUIaD8QFI
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUx
-ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0
-b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQD
-EytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBDKSBUYW51c2l0dmFueWtpYWRvMB4X
-DTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJBgNVBAYTAkhVMREw
-DwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9u
-c2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMr
-TmV0TG9jayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzAN
-BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNA
-OoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3ZW3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC
-2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63euyucYT2BDMIJTLrdKwW
-RMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQwDgYDVR0P
-AQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEW
-ggJNRklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0
-YWxhbm9zIFN6b2xnYWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFz
-b2sgYWxhcGphbiBrZXN6dWx0LiBBIGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBO
-ZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1iaXp0b3NpdGFzYSB2ZWRpLiBB
-IGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0ZWxlIGF6IGVs
-b2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs
-ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25s
-YXBqYW4gYSBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kg
-a2VyaGV0byBheiBlbGxlbm9yemVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4g
-SU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5kIHRoZSB1c2Ugb2YgdGhpcyBjZXJ0
-aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQUyBhdmFpbGFibGUg
-YXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwgYXQg
-Y3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmY
-ta3UzbM2xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2g
-pO0u9f38vf5NNwgMvOOWgyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4
-Fp1hBWeAyNDYpQcCNJgEjTME1A==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhV
-MRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMe
-TmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0
-dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFzcyBB
-KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oXDTE5MDIxOTIzMTQ0
-N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhC
-dWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQu
-MRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBL
-b3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSMD7tM9DceqQWC2ObhbHDqeLVu0ThEDaiD
-zl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZz+qMkjvN9wfcZnSX9EUi
-3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC/tmwqcm8
-WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LY
-Oph7tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2Esi
-NCubMvJIH5+hCoR64sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCC
-ApswDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4
-QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZRUxFTSEgRXplbiB0
-YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRhdGFz
-aSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtm
-ZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMg
-ZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVs
-amFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJhc2EgbWVndGFsYWxoYXRv
-IGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBzOi8vd3d3
-Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6
-ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1
-YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3Qg
-dG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRs
-b2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNAbmV0bG9jay5uZXQuMA0G
-CSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5ayZrU3/b39/zcT0mwBQO
-xmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjPytoUMaFP
-0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQ
-QeJBCWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxk
-f1qbFFgBJ34TUMdrKuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK
-8CtmdWOMovsEPoMOmzbwGOQmIMOM8CgHrTwXZoi1/baI
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUx
-ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0
-b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQD
-EzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVneXpvaSAoQ2xhc3MgUUEpIFRhbnVz
-aXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0bG9jay5odTAeFw0w
-MzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTERMA8G
-A1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNh
-Z2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5l
-dExvY2sgTWlub3NpdGV0dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZh
-bnlraWFkbzEeMBwGCSqGSIb3DQEJARYPaW5mb0BuZXRsb2NrLmh1MIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRVCacbvWy5FPSKAtt2/Goq
-eKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e8ia6AFQe
-r7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO5
-3Lhbm+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWd
-vLrqOU+L73Sa58XQ0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0l
-mT+1fMptsK6ZmfoIYOcZwvK9UdPM0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4IC
-wDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMCAQYwggJ1Bglg
-hkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2YW55IGEgTmV0
-TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh
-biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQg
-ZWxla3Ryb25pa3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywg
-dmFsYW1pbnQgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6
-b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwgYXogQWx0YWxhbm9zIFN6ZXJ6b2Rl
-c2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kgZWxqYXJhcyBtZWd0
-ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczovL3d3
-dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0Bu
-ZXRsb2NrLm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBh
-bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRo
-ZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3
-Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0IGluZm9AbmV0bG9jay5u
-ZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3DQEBBQUA
-A4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQ
-MznNwNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+
-NFAwLvt/MpqNPfMgW/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCR
-VCHnpgu0mfVRQdzNo0ci2ccBgcTcR08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY
-83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR5qq5aKrN9p2QdRLqOBrKROi3
-macqaJVmlaut74nLYKkGEsaUR+ko
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi
-MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp
-dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV
-UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO
-ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz
-c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP
-OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl
-mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF
-BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4
-qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw
-gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu
-bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp
-dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8
-6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/
-h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH
-/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN
-pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB
-ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly
-aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
-ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w
-NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G
-A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD
-VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX
-SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR
-VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2
-w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF
-mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg
-4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9
-4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw
-DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw
-EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx
-SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2
-ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8
-vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
-hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi
-Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ
-/L7fCg0=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt
-MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg
-Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i
-YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x
-CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG
-b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh
-bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3
-HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx
-WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX
-1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk
-u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P
-99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r
-M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB
-BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh
-cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5
-gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO
-ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf
-aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
-Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1
-dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9s
-YW5vMQswCQYDVQQGEwJWRTEQMA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlz
-dHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0
-aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBlcmludGVuZGVuY2lh
-IGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUwIwYJ
-KoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEw
-MFoXDTIwMTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHBy
-b2NlcnQubmV0LnZlMQ8wDQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGEx
-KjAoBgNVBAsTIVByb3ZlZWRvciBkZSBDZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQG
-A1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9u
-aWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo9
-7BVCwfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74
-BCXfgI8Qhd19L3uA3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38G
-ieU89RLAu9MLmV+QfI4tL3czkkohRqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9
-JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmOEO8GqQKJ/+MMbpfg353bIdD0
-PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG20qCZyFSTXai2
-0b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
-0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/
-6mnbVSKVUyqUtd+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1m
-v6JpIzi4mWCZDlZTOpx+FIywBm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7
-K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvpr2uKGcfLFFb14dq12fy/czja+eev
-bqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/AgEBMDcGA1UdEgQw
-MC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAzNi0w
-MB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFD
-gBStuyIdxuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0
-b3JpZGFkIGRlIENlcnRpZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xh
-bm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQHEwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0
-cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5hY2lvbmFsIGRlIENlcnRp
-ZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5kZW5jaWEg
-ZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkq
-hkiG9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQD
-AgEGME0GA1UdEQRGMESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0w
-MDAwMDKgGwYFYIZeAgKgEgwQUklGLUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEag
-RKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9sY3IvQ0VSVElGSUNBRE8t
-UkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNyYWl6LnN1c2Nl
-cnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
-Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsG
-AQUFBwIBFh5odHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcN
-AQELBQADggIBACtZ6yKZu4SqT96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS
-1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmNg7+mvTV+LFwxNG9s2/NkAZiqlCxB
-3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4quxtxj7mkoP3Yldmv
-Wb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1n8Gh
-HVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHm
-pHmJWhSnFFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXz
-sOfIt+FTvZLm8wyWuevo5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bE
-qCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq3TNWOByyrYDT13K9mmyZY+gAu0F2Bbdb
-mRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5poLWccret9W6aAjtmcz9
-opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3YeMLEYC/H
-YvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC
-TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz
-MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw
-IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR
-dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp
-li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D
-rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ
-WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug
-F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU
-xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC
-Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv
-dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw
-ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl
-IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh
-c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy
-ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI
-KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T
-KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq
-y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p
-dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD
-VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL
-MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk
-fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8
-7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R
-cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y
-mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
-xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK
-SnQ2+Q==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL
-BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
-BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00
-MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV
-wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe
-rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341
-68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh
-4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp
-UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o
-abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc
-3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G
-KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt
-hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO
-Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt
-zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD
-ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
-MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2
-cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN
-qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5
-YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv
-b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2
-8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k
-NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj
-ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp
-q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt
-nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
-GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
-b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV
-BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
-YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa
-GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg
-Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J
-WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB
-rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp
-+ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1
-ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i
-Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz
-PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og
-/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH
-oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI
-yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud
-EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2
-A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL
-MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
-ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f
-BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn
-g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl
-fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K
-WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha
-B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc
-hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR
-TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD
-mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z
-ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y
-4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza
-8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL
-BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
-BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00
-MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf
-qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW
-n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym
-c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+
-O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1
-o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j
-IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq
-IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz
-8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh
-vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l
-7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG
-cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD
-ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
-AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC
-roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga
-W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n
-lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE
-+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV
-csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd
-dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg
-KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM
-HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4
-WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
-GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
-b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV
-BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
-YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM
-V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB
-4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr
-H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd
-8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv
-vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT
-mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe
-btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc
-T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt
-WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ
-c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A
-4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD
-VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG
-CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0
-aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
-aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu
-dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw
-czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G
-A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC
-TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg
-Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0
-7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem
-d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd
-+LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B
-4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN
-t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x
-DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57
-k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s
-zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j
-Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT
-mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK
-4SVhM7JZG+Ju1zdXtg2pEto=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL
-BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
-BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00
-MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR
-/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu
-FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR
-U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c
-ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR
-FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k
-A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw
-eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl
-sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp
-VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q
-A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+
-ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD
-ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
-KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI
-FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv
-oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg
-u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP
-0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf
-3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl
-8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+
-DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN
-PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/
-ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6
-MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJp
-dHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAX
-BgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJTQSBTZWN1cml0eSAy
-MDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt49VcdKA3Xtp
-eafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7Jylg
-/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGl
-wSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnh
-AMFRD0xS+ARaqn1y07iHKrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2
-PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpu
-AWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NR
-MKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYc
-HnmYv/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/
-Zb5gEydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+
-f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVO
-rSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEkllgVsRch
-6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kApKnXwiJPZ9d3
-7CAFYd4=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJF
-UzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJ
-R1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcN
-MDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3WjBoMQswCQYDVQQGEwJFUzEfMB0G
-A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScw
-JQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+
-WmmmO3I2F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKj
-SgbwJ/BXufjpTjJ3Cj9BZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGl
-u6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQD0EbtFpKd71ng+CT516nDOeB0/RSrFOy
-A8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXteJajCq+TA81yc477OMUxk
-Hl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMBAAGjggM7
-MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBr
-aS5ndmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIIC
-IwYKKwYBBAG/VQIBADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8A
-cgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIA
-YQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIAYQBsAGkAdABhAHQAIABWAGEA
-bABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQByAGEAYwBpAPMA
-bgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
-aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMA
-aQBvAG4AYQBtAGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQA
-ZQAgAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEA
-YwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBuAHQAcgBhACAAZQBuACAAbABhACAA
-ZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAAOgAvAC8AdwB3AHcA
-LgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0dHA6
-Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+y
-eAT8MIGVBgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQsw
-CQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0G
-A1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVu
-Y2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRhTvW1yEICKrNcda3Fbcrn
-lD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdzCkj+IHLt
-b8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg
-9J63NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XF
-ducTZnV+ZfsBn5OHiJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmC
-IoaZM3Fa6hlXPZHNqcCjbgcTpsnt+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEezCCA2OgAwIBAgIQNxkY5lNUfBq1uMtZWts1tzANBgkqhkiG9w0BAQUFADCB
-rjELMAkGA1UEBhMCREUxIDAeBgNVBAgTF0JhZGVuLVd1ZXJ0dGVtYmVyZyAoQlcp
-MRIwEAYDVQQHEwlTdHV0dGdhcnQxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fz
-c2VuIFZlcmxhZyBHbWJIMT4wPAYDVQQDEzVTLVRSVVNUIEF1dGhlbnRpY2F0aW9u
-IGFuZCBFbmNyeXB0aW9uIFJvb3QgQ0EgMjAwNTpQTjAeFw0wNTA2MjIwMDAwMDBa
-Fw0zMDA2MjEyMzU5NTlaMIGuMQswCQYDVQQGEwJERTEgMB4GA1UECBMXQmFkZW4t
-V3VlcnR0ZW1iZXJnIChCVykxEjAQBgNVBAcTCVN0dXR0Z2FydDEpMCcGA1UEChMg
-RGV1dHNjaGVyIFNwYXJrYXNzZW4gVmVybGFnIEdtYkgxPjA8BgNVBAMTNVMtVFJV
-U1QgQXV0aGVudGljYXRpb24gYW5kIEVuY3J5cHRpb24gUm9vdCBDQSAyMDA1OlBO
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2bVKwdMz6tNGs9HiTNL1
-toPQb9UY6ZOvJ44TzbUlNlA0EmQpoVXhOmCTnijJ4/Ob4QSwI7+Vio5bG0F/WsPo
-TUzVJBY+h0jUJ67m91MduwwA7z5hca2/OnpYH5Q9XIHV1W/fuJvS9eXLg3KSwlOy
-ggLrra1fFi2SU3bxibYs9cEv4KdKb6AwajLrmnQDaHgTncovmwsdvs91DSaXm8f1
-XgqfeN+zvOyauu9VjxuapgdjKRdZYgkqeQd3peDRF2npW932kKvimAoA0SVtnteF
-hy+S8dF2g08LOlk3KC8zpxdQ1iALCvQm+Z845y2kuJuJja2tyWp9iRe79n+Ag3rm
-7QIDAQABo4GSMIGPMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEG
-MCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTVFJvbmxpbmUxLTIwNDgtNTAdBgNV
-HQ4EFgQUD8oeXHngovMpttKFswtKtWXsa1IwHwYDVR0jBBgwFoAUD8oeXHngovMp
-ttKFswtKtWXsa1IwDQYJKoZIhvcNAQEFBQADggEBAK8B8O0ZPCjoTVy7pWMciDMD
-pwCHpB8gq9Yc4wYfl35UvbfRssnV2oDsF9eK9XvCAPbpEW+EoFolMeKJ+aQAPzFo
-LtU96G7m1R08P7K9n3frndOMusDXtk3sU5wPBG7qNWdX4wple5A64U8+wwCSersF
-iXOMy6ZNwPv2AtawB6MDwidAnwzkhYItr5pCHdDHjfhA7p0GVxzZotiAFP7hYy0y
-h9WUUpY6RsZxlj33mA6ykaqP2vROJAA5VeitF7nTNCtKqUDMFypVZUF0Qn71wK/I
-k63yGFs9iQzbRzkk+OBM8h+wPQrKBU6JIRrjKpms/H+h8Q8bHz2eBIPdltkdOpQ=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIID2DCCAsCgAwIBAgIQYFbFSyNAW2TU7SXa2dYeHjANBgkqhkiG9w0BAQsFADCB
-hTELMAkGA1UEBhMCREUxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fzc2VuIFZl
-cmxhZyBHbWJIMScwJQYDVQQLEx5TLVRSVVNUIENlcnRpZmljYXRpb24gU2Vydmlj
-ZXMxIjAgBgNVBAMTGVMtVFJVU1QgVW5pdmVyc2FsIFJvb3QgQ0EwHhcNMTMxMDIy
-MDAwMDAwWhcNMzgxMDIxMjM1OTU5WjCBhTELMAkGA1UEBhMCREUxKTAnBgNVBAoT
-IERldXRzY2hlciBTcGFya2Fzc2VuIFZlcmxhZyBHbWJIMScwJQYDVQQLEx5TLVRS
-VVNUIENlcnRpZmljYXRpb24gU2VydmljZXMxIjAgBgNVBAMTGVMtVFJVU1QgVW5p
-dmVyc2FsIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo
-4wvfETeFgpq1bGZ8YT/ARxodRuOwVWTluII5KAd+F//0m4rwkYHqOD8heGxI7Gsv
-otOKcrKn19nqf7TASWswJYmM67fVQGGY4tw8IJLNZUpynxqOjPolFb/zIYMoDYuv
-WRGCQ1ybTSVRf1gYY2A7s7WKi1hjN0hIkETCQN1d90NpKZhcEmVeq5CSS2bf1XUS
-U1QYpt6K1rtXAzlZmRgFDPn9FcaQZEYXgtfCSkE9/QC+V3IYlHcbU1qJAfYzcg6T
-OtzoHv0FBda8c+CI3KtP7LUYhk95hA5IKmYq3TLIeGXIC51YAQVx7YH1aBduyw20
-S9ih7K446xxYL6FlAzQvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
-AQH/BAQDAgEGMB0GA1UdDgQWBBSafdfr639UmEUptCCrbQuWIxmkwjANBgkqhkiG
-9w0BAQsFAAOCAQEATpYS2353XpInniEXGIJ22D+8pQkEZoiJrdtVszNqxmXEj03z
-MjbceQSWqXcy0Zf1GGuMuu3OEdBEx5LxtESO7YhSSJ7V/Vn4ox5R+wFS5V/let2q
-JE8ii912RvaloA812MoPmLkwXSBvwoEevb3A/hXTOCoJk5gnG5N70Cs0XmilFU/R
-UsOgyqCDRR319bdZc11ZAY+qwkcvFHHVKeMQtUeTJcwjKdq3ctiR1OwbSIoi5MEq
-9zpok59FGW5Dt8z+uJGaYRo2aWNkkijzb2GShROfyQcsi1fc65551cLeCNVUsldO
-KjKNoeI60RAgIjl9NEVvcTvDHfz/sk+o4vYwHg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr
-MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG
-A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0
-MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp
-Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD
-QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz
-i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8
-h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV
-MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9
-UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni
-8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC
-h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD
-VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB
-AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm
-KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ
-X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr
-QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5
-pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN
-QSdJQO7e5iNEOdyhIta6A/I=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
-FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz
-MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv
-cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN
-AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz
-Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO
-0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao
-wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj
-7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS
-8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT
-BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
-/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg
-JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC
-NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3
-6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/
-3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm
-D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS
-CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK
-MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
-GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx
-MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg
-Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ
-iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa
-/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ
-jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI
-HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7
-sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w
-gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw
-KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG
-AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L
-URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO
-H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm
-I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY
-iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDEl
-MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMh
-U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIz
-MloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09N
-IFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNlY3VyaXR5IENvbW11
-bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSE
-RMqm4miO/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gO
-zXppFodEtZDkBp2uoQSXWHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5
-bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4zZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDF
-MxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4bepJz11sS6/vmsJWXMY1
-VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK9U2vP9eC
-OKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G
-CSqGSIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HW
-tWS3irO4G8za+6xmiEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZ
-q51ihPZRwSzJIxXYKLerJRO1RuGGAv8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDb
-EJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnWmHyojf6GPgcWkuF75x3sM3Z+
-Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEWT1MKZPlO9L9O
-VL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl
-MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe
-U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX
-DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy
-dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj
-YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV
-OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr
-zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM
-VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ
-hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO
-ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw
-awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs
-OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
-DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF
-coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc
-okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8
-t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy
-1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/
-SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY
-MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t
-dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5
-WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD
-VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8
-9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ
-DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9
-Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N
-QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ
-xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G
-A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T
-AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG
-kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr
-Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
-Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU
-JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot
-RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP
-MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAx
-MDQwNjEwNDkxM1oXDTIxMDQwNjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNV
-BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMSBDQTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H887dF+2rDNbS82rDTG
-29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9EJUk
-oVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk
-3w0LBUXl0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBL
-qdReLjVQCfOAl/QMF6452F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIIN
-nvmLVz5MxxftLItyM19yejhW1ebZrgUaHXVFsculJRwSVzb9IjcCAwEAAaMzMDEw
-DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZTiFIwCwYDVR0PBAQDAgEG
-MA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE928Jj2VuX
-ZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0H
-DjxVyhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VO
-TzF2nBBhjrZTOqMRvq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2Uv
-kVrCqIexVmiUefkl98HVrhq4uz2PqYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4w
-zMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9ZIRlXvVWa
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP
-MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx
-MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV
-BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o
-Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt
-5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s
-3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej
-vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu
-8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw
-DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG
-MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil
-zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/
-3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD
-FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6
-Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2
-ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJO
-TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gRVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0y
-MjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIg
-TmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRlcmxhbmRlbiBFViBS
-b290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkkSzrS
-M4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nC
-UiY4iKTWO0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3d
-Z//BYY1jTw+bbRcwJu+r0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46p
-rfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13l
-pJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gVXJrm0w912fxBmJc+qiXb
-j5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr08C+eKxC
-KFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS
-/ZbV0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0X
-cgOPvZuM5l5Tnrmd74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH
-1vI4gnPah1vlPNOePqc7nvQDs/nxfRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrP
-px9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
-/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwaivsnuL8wbqg7
-MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
-eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u
-2dfOWBfoqSmuc0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHS
-v4ilf0X8rLiltTMMgsT7B/Zq5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTC
-wPTxGfARKbalGAKb12NMcIxHowNDXLldRqANb/9Zjr7dn3LDWyvfjFvO5QxGbJKy
-CqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tNf1zuacpzEPuKqf2e
-vTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi5Dp6
-Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIa
-Gl6I6lD4WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeL
-eG9QgkRQP2YGiqtDhFZKDyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8
-FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGyeUN51q1veieQA6TqJIc/2b3Z6fJfUEkc
-7uzXLg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJO
-TDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEy
-MTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVTdGFhdCBkZXIgTmVk
-ZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxhbmRlbiBSb290IENB
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFtvszn
-ExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw71
-9tV2U02PjLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MO
-hXeiD+EwR+4A5zN9RGcaC1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+U
-tFE5A3+y3qcym7RHjm+0Sq7lr7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3o
-BmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAh
-SQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDww
-OgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMv
-cm9vdC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA
-7Jbg0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k
-/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzm
-eafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0C5GUR5z6
-u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3ynGQI0DvDKcWy
-7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
-TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oX
-DTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
-ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
-b3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ5291
-qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8Sp
-uOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPU
-Z5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE
-pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp
-5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/M
-UGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTN
-GmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy
-5V6548r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv
-6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEK
-eN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6
-B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYDVR0TAQH/
-BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov
-L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqG
-SIb3DQEBCwUAA4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLyS
-CZa59sCrI2AGeYwRTlHSeYAz+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen
-5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897
-IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaNkqbG9AclVMwWVxJK
-gnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfkCpYL
-+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxL
-vJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm
-bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvk
-N1trSt8sV4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FC
-Y7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Z
-ywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
-TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
-dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloX
-DTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
-ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
-b3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4yolQP
-cPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WW
-IkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqX
-xz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy
-KJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR
-9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az
-5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N8
-6U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7
-Ngzp07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHP
-bMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXt
-BznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTt
-XUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1UdEwEB/wQF
-MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd
-INyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
-U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwp
-LiniyMMB8jPqKqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8
-Ipf3YF3qKS9Ysr1YvY2WTxB1v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixp
-gZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh
-/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b8KKaa8MFSu1BYBQw
-0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0rmj1A
-fsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq
-4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR
-1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/
-QFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM
-94B7IWcnMFk=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl
-MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp
-U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw
-NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE
-ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp
-ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3
-DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf
-8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN
-+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0
-X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa
-K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA
-1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G
-A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR
-zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0
-YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD
-bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w
-DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3
-L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D
-eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp
-VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY
-WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
-HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
-ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw
-MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
-b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
-aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp
-Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg
-nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1
-HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N
-Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN
-dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0
-HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
-BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G
-CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU
-sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3
-4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg
-8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
-pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1
-mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
-EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
-HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
-ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
-MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
-VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
-ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
-dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
-OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
-8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
-Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
-hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
-6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
-DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
-AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
-bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
-ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
-qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
-iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
-0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
-sSi6
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
-Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9
-MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
-U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
-cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
-pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
-OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
-Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
-Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
-HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
-Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
-+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
-Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
-Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
-26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
-AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j
-ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js
-LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM
-BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy
-dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh
-cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh
-YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg
-dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp
-bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ
-YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
-TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ
-9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8
-jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW
-FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz
-ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1
-ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L
-EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu
-L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC
-O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
-um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
-NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
-Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9
-MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
-U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
-cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
-pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
-OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
-Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
-Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
-HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
-Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
-+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
-Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
-Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
-26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
-AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
-VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul
-F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC
-ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w
-ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk
-aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0
-YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg
-c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93
-d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG
-CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF
-wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS
-Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst
-0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc
-pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl
-CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF
-P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK
-1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm
-KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
-JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ
-8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm
-fyWl8kgAwKQB2j8=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW
-MBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1
-OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG
-A1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ
-JZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD
-vfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo
-D/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/
-Q0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW
-RST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK
-HDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN
-nw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM
-0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i
-UUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9
-Ha90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg
-TuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
-AwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL
-BQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
-2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX
-UfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl
-6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK
-9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ
-HgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI
-wpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY
-XzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l
-IxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo
-hdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr
-so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
-BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln
-biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF
-MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT
-d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
-CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8
-76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+
-bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c
-6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE
-emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd
-MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt
-MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y
-MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y
-FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi
-aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM
-gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB
-qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7
-lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn
-8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
-L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6
-45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO
-UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5
-O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC
-bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv
-GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a
-77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC
-hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3
-92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp
-Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w
-ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
-Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UE
-BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWdu
-IFBsYXRpbnVtIENBIC0gRzIwHhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAw
-WjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMSMwIQYDVQQD
-ExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu669y
-IIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2Htn
-IuJpX+UFeNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+
-6ixuEFGSzH7VozPY1kneWCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5ob
-jM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIoj5+saCB9bzuohTEJfwvH6GXp43gOCWcw
-izSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/68++QHkwFix7qepF6w9fl
-+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34TaNhxKFrY
-zt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaP
-pZjydomyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtF
-KwH3HBqi7Ri6Cr2D+m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuW
-ae5ogObnmLo2t/5u7Su9IPhlGdpVCX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMB
-AAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
-BBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCvzAeHFUdvOMW0
-ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW
-IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUA
-A4ICAQAIhab1Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0
-uMoI3LQwnkAHFmtllXcBrqS3NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+
-FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4U99REJNi54Av4tHgvI42Rncz7Lj7
-jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8KV2LwUvJ4ooTHbG/
-u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl9x8D
-YSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1
-puEa+S1BaYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXa
-icYwu+uPyyIIoK6q8QNsOktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbG
-DI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSYMdp08YSTcU1f+2BY0fvEwW2JorsgH51x
-kcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAciIfNAChs0B0QTwoRqjt8Z
-Wr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE
-BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWdu
-IFNpbHZlciBDQSAtIEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0Nlow
-RzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMY
-U3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644N0Mv
-Fz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7br
-YT7QbNHm+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieF
-nbAVlDLaYQ1HTWBCrpJH6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH
-6ATK72oxh9TAtvmUcXtnZLi2kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZt
-eJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/
-c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJ
-MoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRH
-HTBsROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTf
-jNFusB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb6
-5i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOB
-rDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU
-F6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRBtjpbO8tFnb0c
-wpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIB
-AHPGgeAn0i0P4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShp
-WJHckRE1qTodvBqlYJ7YH39FkWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9
-xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ
-2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx/uNncqCxv1yL5PqZ
-IseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFaDGi8
-aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2X
-em1ZqSqPe97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQR
-dAtq/gsD/KNVV4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/
-OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+
-hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLy
-tGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBk
-MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0
-YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg
-Q0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4MTgyMjA2MjBaMGQxCzAJBgNVBAYT
-AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp
-Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9
-m2BtRsiMMW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdih
-FvkcxC7mlSpnzNApbjyFNDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/
-TilftKaNXXsLmREDA/7n29uj/x2lzZAeAR81sH8A25Bvxn570e56eqeqDFdvpG3F
-EzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkCb6dJtDZd0KTeByy2dbco
-kdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn7uHbHaBu
-HYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNF
-vJbNcA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo
-19AOeCMgkckkKmUpWyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjC
-L3UcPX7ape8eYIVpQtPM+GP+HkM5haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJW
-bjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNYMUJDLXT5xp6mig/p/r+D5kNX
-JLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw
-FDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
-BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzc
-K6FptWfUjNP9MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzf
-ky9NfEBWMXrrpA9gzXrzvsMnjgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7Ik
-Vh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQMbFamIp1TpBcahQq4FJHgmDmHtqB
-sfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4HVtA4oJVwIHaM190e
-3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtlvrsR
-ls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ip
-mXeascClOS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HH
-b6D0jqTsNFFbjCYDcKF31QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksf
-rK/7DZBaZmBwXarNeNQk7shBoJMBkpxqnvy5JMWzFYJ+vq6VK+uxwNrjAWALXmms
-hFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCyx/yP2FS1k2Kdzs9Z+z0Y
-zirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMWNY6E0F/6
-MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBk
-MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0
-YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg
-Q0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2MjUwNzM4MTRaMGQxCzAJBgNVBAYT
-AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp
-Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvEr
-jw0DzpPMLgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r
-0rk0X2s682Q2zsKwzxNoysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f
-2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJwDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVP
-ACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpHWrumnf2U5NGKpV+GY3aF
-y6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1aSgJA/MTA
-tukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL
-6yxSNLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0
-uPoTXGiTOmekl9AbmbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrAL
-acywlKinh/LTSlDcX3KwFnUey7QYYpqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velh
-k6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3qPyZ7iVNTA6z00yPhOgpD/0Q
-VAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw
-FDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
-BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqh
-b97iEoHF8TwuMA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4R
-fbgZPnm3qKhyN2abGu2sEzsOv2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv
-/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ82YqZh6NM4OKb3xuqFp1mrjX2lhI
-REeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLzo9v/tdhZsnPdTSpx
-srpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcsa0vv
-aGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciAT
-woCqISxxOQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99n
-Bjx8Oto0QuFmtEYE3saWmA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5W
-t6NlUe07qxS/TFED6F+KBZvuim6c779o+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N
-8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TCrvJcwhbtkj6EPnNgiLx2
-9CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX5OfNeOI5
-wSsSnqaeG8XmDtkx2Q==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAw
-ZzELMAkGA1UEBhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdp
-dGFsIENlcnRpZmljYXRlIFNlcnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290
-IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcNMzEwNjI1MDg0NTA4WjBnMQswCQYD
-VQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2Vy
-dGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYgQ0Eg
-MjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7Bx
-UglgRCgzo3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD
-1ycfMQ4jFrclyxy0uYAyXhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPH
-oCE2G3pXKSinLr9xJZDzRINpUKTk4RtiGZQJo/PDvO/0vezbE53PnUgJUmfANykR
-HvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8LiqG12W0OfvrSdsyaGOx9/
-5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaHZa0zKcQv
-idm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHL
-OdAGalNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaC
-NYGu+HuB5ur+rPQam3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f
-46Fq9mDU5zXNysRojddxyNMkM3OxbPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCB
-UWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDixzgHcgplwLa7JSnaFp6LNYth
-7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/BAQDAgGGMB0G
-A1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
-MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWB
-bj2ITY1x0kbBbkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6x
-XCX5145v9Ydkn+0UjrgEjihLj6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98T
-PLr+flaYC/NUn81ETm484T4VvwYmneTwkLbUwp4wLh/vx3rEUMfqe9pQy3omywC0
-Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7XwgiG/W9mR4U9s70
-WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH59yL
-Gn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm
-7JFe3VE/23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4S
-nr8PyQUQ3nqjsTzyP6WqJ3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VN
-vBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyAHmBR3NdUIR7KYndP+tiPsys6DXhyyWhB
-WkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/giuMod89a2GQ+fYWVq6nTI
-fI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuWl8PVP3wb
-I+2ksx0WckNLIOFZfsLorSa/ovc=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx
-KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd
-BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl
-YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1
-OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy
-aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50
-ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd
-AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC
-FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi
-1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq
-jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ
-wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj
-QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/
-WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy
-NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC
-uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw
-IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6
-g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
-9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP
-BSeOE6Fuwg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx
-KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd
-BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl
-YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1
-OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy
-aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50
-ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN
-8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/
-RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4
-hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5
-ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM
-EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj
-QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1
-A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy
-WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ
-1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30
-6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT
-91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
-e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p
-TpPDpFQUWw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjEL
-MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV
-BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0
-Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYwMTEyMTQ0MTU3WhcNMjUxMjMxMjI1
-OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i
-SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UEAxMc
-VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJW
-Ht4bNwcwIi9v8Qbxq63WyKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+Q
-Vl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo6SI7dYnWRBpl8huXJh0obazovVkdKyT2
-1oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZuV3bOx4a+9P/FRQI2Alq
-ukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk2ZyqBwi1
-Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NX
-XAek0CSnwPIA1DCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy
-dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6
-Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz
-JTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290
-Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlN
-irTzwppVMXzEO2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8
-TtXqluJucsG7Kv5sbviRmEb8yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6
-g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9IJqDnxrcOfHFcqMRA/07QlIp2+gB
-95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal092Y+tTmBvTwtiBj
-S+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc5A==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOc
-UktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
-c8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xS
-S1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kg
-SGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4XDTA3MTIyNTE4Mzcx
-OVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxla3Ry
-b25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMC
-VFIxDzANBgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDE
-sGxldGnFn2ltIHZlIEJpbGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7F
-ni4gKGMpIEFyYWzEsWsgMjAwNzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9NYvDdE3ePYakqtdTyuTFY
-KTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQvKUmi8wUG
-+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveG
-HtyaKhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6P
-IzdezKKqdfcYbwnTrqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M
-733WB2+Y8a+xwXrXgTW4qhe04MsCAwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHk
-Yb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G
-CSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/sPx+EnWVUXKgW
-AkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
-aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5
-mxRZNTZPz/OOXl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsa
-XRik7r4EW5nVcV9VZWRi1aKbBFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZ
-qxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAKpoRq0Tl9
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx
-EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT
-VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5
-NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT
-B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF
-10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz
-0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh
-MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH
-zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc
-46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2
-yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi
-laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP
-oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA
-BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE
-qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm
-4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL
-1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
-LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF
-H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo
-RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+
-nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh
-15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW
-6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW
-nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j
-wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz
-aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy
-KwbQBM0=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES
-MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU
-V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz
-WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO
-LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE
-AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH
-K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX
-RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z
-rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx
-3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq
-hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC
-MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls
-XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D
-lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn
-aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ
-YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/
-MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow
-PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
-AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR
-IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q
-gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy
-yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts
-F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2
-jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx
-ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC
-VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK
-YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH
-EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN
-Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud
-DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE
-MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK
-UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf
-qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK
-ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE
-JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7
-hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1
-EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm
-nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX
-udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz
-ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe
-LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl
-pYYsfPQS
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw
-NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv
-b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD
-VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2
-MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F
-VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1
-7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X
-Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+
-/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs
-81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm
-dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe
-Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu
-sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4
-pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs
-slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ
-arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD
-VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG
-9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl
-dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
-0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj
-TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed
-Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7
-Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI
-OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7
-vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW
-t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn
-HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx
-SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF
-MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL
-ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx
-MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc
-MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+
-AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH
-iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj
-vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA
-0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB
-OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/
-BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E
-FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01
-GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW
-zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4
-1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE
-f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F
-jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN
-ZetX2fNXlrtIzYE=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRS
-MRgwFgYDVQQHDA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJp
-bGltc2VsIHZlIFRla25vbG9qaWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSw
-VEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ryb25payB2ZSBLcmlwdG9sb2ppIEFy
-YcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNVBAsMGkthbXUgU2Vy
-dGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUgS8O2
-ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAe
-Fw0wNzA4MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIx
-GDAWBgNVBAcMD0dlYnplIC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmls
-aW1zZWwgdmUgVGVrbm9sb2ppayBBcmHFn3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBU
-QUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZlIEtyaXB0b2xvamkgQXJh
-xZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2FtdSBTZXJ0
-aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7Zr
-IFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4h
-gb46ezzb8R1Sf1n68yJMlaCQvEhOEav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yK
-O7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1xnnRFDDtG1hba+818qEhTsXO
-fJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR6Oqeyjh1jmKw
-lZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
-hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQID
-AQABo0IwQDAdBgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmP
-NOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4N5EY3ATIZJkrGG2AA1nJrvhY0D7t
-wyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLTy9LQQfMmNkqblWwM
-7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYhLBOh
-gLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5n
-oN+J1q2MdqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUs
-yZyQ2uypQjyttgI=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UE
-BhMCVFIxDzANBgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxn
-aSDEsGxldGnFn2ltIHZlIEJpbGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkg
-QS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1QgRWxla3Ryb25payBTZXJ0aWZpa2Eg
-SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAwODA3MDFaFw0yMzA0
-MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0wSwYD
-VQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8
-dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCUZ4WWe60ghUEoI5RHwWrom
-/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537jVJp45wnEFPzpALFp/kR
-Gml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1mep5Fimh3
-4khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z
-5UNP9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0
-hO8EuPbJbKoCPrZV4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QID
-AQABo0IwQDAdBgNVHQ4EFgQUVpkHHtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJ5FdnsX
-SDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPoBP5yCccLqh0l
-VX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
-URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nf
-peYVhDfwwvJllpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CF
-Yv4HAqGEVka+lgqaE9chTLd8B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW
-+qtB4Uu2NQvAmxU=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQG
-EwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdp
-IMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBB
-LsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBI
-aXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5MDQxMFoXDTIzMTIx
-NjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBLBgNV
-BAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2
-ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVs
-ZWt0cm9uaWsgU2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdsGjW6L0UlqMACprx9MfMkU1x
-eHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a2uqsxgbPJQ1BgfbBOCK9
-+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EEDwnS3/faA
-z1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0p
-u5FbHH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6p
-lVxiSvgNZ1GpryHV+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMB
-AAGjQjBAMB0GA1UdDgQWBBTdVRcT9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAb1gNl0Oq
-FlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3RfdCaqaXKGDsC
-QC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
-o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKID
-gI6tflEATseWhvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm
-9ocJV612ph1jmv3XZch4gyt1O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsG
-tAuYSyher4hYyw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL
-MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl
-eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT
-JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx
-MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
-Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg
-VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm
-aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo
-I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng
-o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G
-A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD
-VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB
-zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW
-RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
-iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
-cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
-BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
-MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
-BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
-aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
-dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
-AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
-3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
-tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
-Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
-VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
-79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
-c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
-Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
-c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
-UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
-Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
-BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
-Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
-VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
-ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
-8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
-iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
-Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
-XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
-qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
-VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
-L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
-jjxDah2nGN59PRbxYvnKkKj9
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCB
-rjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
-Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0BgNVBAMTLVVUTi1VU0VSRmlyc3Qt
-Q2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05OTA3MDkxNzI4NTBa
-Fw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAV
-BgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5l
-dHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UE
-AxMtVVROLVVTRVJGaXJzdC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWls
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3B
-YHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIxB8dOtINknS4p1aJkxIW9
-hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8om+rWV6l
-L8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLm
-SGHGTPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM
-1tZUOt4KpLoDd7NlyP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws
-6wIDAQABo4G5MIG2MAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
-DgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNVHR8EUTBPME2gS6BJhkdodHRw
-Oi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGllbnRBdXRoZW50
-aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH
-AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u
-7mFVbwQ+zznexRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0
-xtcgBEXkzYABurorbs6q15L+5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQ
-rfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarVNZ1yQAOJujEdxRBoUp7fooXFXAim
-eOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZw7JHpsIyYdfHb0gk
-USeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB
-lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
-Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt
-SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG
-A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe
-MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v
-d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh
-cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn
-0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ
-M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a
-MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd
-oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI
-DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy
-oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0
-dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy
-bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF
-BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli
-CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE
-CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t
-3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS
-KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
-ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
-U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp
-U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg
-SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln
-biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm
-GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve
-fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw
-AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ
-aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj
-aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW
-kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC
-4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga
-FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
-ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
-U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
-ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
-ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
-U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
-aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
-nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
-t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
-SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
-BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
-rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
-NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
-BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
-BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
-MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
-p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
-5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
-WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
-4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
-hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB
-vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
-ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
-U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
-ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
-Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX
-MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
-IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y
-IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh
-bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF
-9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH
-H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H
-LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN
-/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT
-rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw
-WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs
-exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
-DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4
-sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
-seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
-4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
-BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
-lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
-7M2CYfE45k+XmCpajQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCED9pHoGc8JpK83P/uUii5N0wDQYJKoZIhvcNAQEFBQAwXzELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAxIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
-MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
-BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
-ADCBiQKBgQDlGb9to1ZhLZlIcfZn3rmN67eehoAKkQ76OCWvRoiC5XOooJskXQ0f
-zGVuDLDQVoQYh5oGmxChc9+0WDlrbsH2FdWoqD+qEgaNMax/sDTXjzRniAnNFBHi
-TkVWaR94AoDa3EeRKbs2yWNcxeDXLYd7obcysHswuiovMaruo2fa2wIDAQABMA0G
-CSqGSIb3DQEBBQUAA4GBAFgVKTk8d6PaXCUDfGD67gmZPCcQcMgMCeazh88K4hiW
-NWLMv5sneYlfycQJ9M61Hd8qveXbhpxoJeUwfLaJFf5n0a3hUKw8fGJLj7qE1xIV
-Gx/KXQ/BUpQqEZnae88MNhPVNdwQGVnqlMEAv3WP2fr9dgTbYruQagPZRjXZ+Hxb
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
-c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
-MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
-emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
-DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
-FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMg
-UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
-YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
-MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgdk4xWArzZbxpvUjZudVYK
-VdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIqWpDBucSm
-Fc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQID
-AQABMA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0J
-h9ZrbWB85a7FkCMMXErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2ul
-uIncrKTdcu1OofdPvAbT6shkdHvClUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68
-DzFc6PLZ
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN2E1Lm0+afY8wR4
-nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/EbRrsC+MO
-8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjV
-ojYJrKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjb
-PG7PoBMAGrgnoeS+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP2
-6KbqxzcSXKMpHgLZ2x87tNcPVkeBFQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vr
-n5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAq2aN17O6x5q25lXQBfGfMY1a
-qtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/Ny9Sn2WCVhDr4
-wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3
-ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrs
-pSCAaWihT37ha88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4
-E1Z5T21Q6huwtVexN2ZYI/PcD98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0Ns
-YXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
-MjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y
-aXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazAe
-Fw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJVUzEX
-MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGlj
-IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMx
-KGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
-eTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjM
-HiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjw
-DqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cC
-AwEAATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9ji
-nb3/7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX
-rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnIn
-jBJ7xUS0rg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVy
-aVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24s
-IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNp
-Z24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJBgNV
-BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp
-Z24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIElu
-Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24g
-Q2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
-IEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWU
-J92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDO
-JxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUY
-wZF7C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9o
-koqQHgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN
-qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/E
-Srg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekhktdmnLfe
-xbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf0xwLRtxyID+u
-7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU
-sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RI
-sH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTP
-cjnhsUPgKM+351psE2tJs//jGHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
-MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
-BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
-ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
-BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
-I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
-CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
-lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
-AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
-c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
-MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
-emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
-DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
-FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
-UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
-YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
-MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
-pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
-13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
-AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
-U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
-F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
-oJ2daZH9
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
-N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
-KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
-kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
-CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
-Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
-imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
-2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
-DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
-F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
-TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
-MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
-BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
-ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
-BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
-I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
-CSqGSIb3DQEBBQUAA4GBABByUqkFFBkyCEHwxWsKzH4PIRnN5GfcX6kb5sroc50i
-2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWXbj9T/UWZYB2oK0z5XqcJ
-2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/D/xwzoiQ
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBr
-MQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRl
-cm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2WhcNMjIwNjI0MDAxNjEyWjBrMQsw
-CQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5h
-dGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1l
-cmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h
-2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4E
-lpF7sDPwsRROEW+1QK8bRaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdV
-ZqW1LS7YgFmypw23RuwhY/81q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq
-299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0t
-vz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaL
-dXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
-AgEGMB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUF
-AAOCAQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcR
-zCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3
-LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGIxHYdkFsd
-7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBuYQa7FkKMcPcw
-++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMx
-IDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxs
-cyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9v
-dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDcxMjEzMTcwNzU0WhcNMjIxMjE0
-MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdl
-bGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQD
-DC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+r
-WxxTkqxtnt3CxC5FlAM1iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjU
-Dk/41itMpBb570OYj7OeUt9tkTmPOL13i0Nj67eT/DBMHAGTthP796EfvyXhdDcs
-HqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8bJVhHlfXBIEyg1J55oNj
-z7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiBK0HmOFaf
-SZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/Slwxl
-AgMBAAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqG
-KGh0dHA6Ly9jcmwucGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0P
-AQH/BAQDAgHGMB0GA1UdDgQWBBQmlRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0j
-BIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGBi6SBiDCBhTELMAkGA1UEBhMC
-VVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNX
-ZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEB
-ALkVsUSRzCPIK0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd
-/ZDJPHV3V3p9+N701NX3leZ0bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pB
-A4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSljqHyita04pO2t/caaH/+Xc/77szWn
-k4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+esE2fDbbFwRnzVlhE9
-iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJtylv
-2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBV
-MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNV
-BAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgw
-MTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFX
-b1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvcqN
-rLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1U
-fcIiePyOCbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcScc
-f+Hb0v1naMQFXQoOXXDX2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2
-ZjC1vt7tj/id07sBMOby8w7gLJKA84X5KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4M
-x1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR+ScPewavVIMYe+HdVHpR
-aG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ezEC8wQjch
-zDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDar
-uHqklWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221K
-mYo0SLwX3OSACCK28jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvA
-Sh0JWzko/amrzgD5LkhLJuYwTKVYyrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWv
-HYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0CAwEAAaNCMEAwDgYDVR0PAQH/
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R8bNLtwYgFP6H
-EtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
-LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJ
-MuYhOZO9sxXqT2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2e
-JXLOC62qx1ViC777Y7NhRCOjy+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VN
-g64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC2nz4SNAzqfkHx5Xh9T71XXG68pWp
-dIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes5cVAWubXbHssw1ab
-R80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/EaEQ
-PkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGce
-xGATVdVhmVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+
-J7x6v+Db9NpSvd4MVHAxkUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMl
-OtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGikpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWT
-ee5Ehr7XHuQe+w==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBG
-MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNV
-BAMMEkNBIOayg+mAmuagueivgeS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgw
-MTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRl
-ZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k8H/r
-D195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld1
-9AXbbQs5uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExf
-v5RxadmWPgxDT74wwJ85dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnk
-UkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+L
-NVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFyb7Ao65vh4YOhn0pdr8yb
-+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc76DbT52V
-qyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6K
-yX2m+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0G
-AbQOXDBGVWCvOGU6yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaK
-J/kR8slC/k7e3x9cxKSGhxYzoacXGKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwEC
-AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
-BBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUAA4ICAQBqinA4
-WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
-yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj
-/feTZU7n85iYr83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6
-jBAyvd0zaziGfjk9DgNyp115j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2
-ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0AkLppRQjbbpCBhqcqBT/mhDn4t/lX
-X0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97qA4bLJyuQHCH2u2n
-FoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Yjj4D
-u9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10l
-O1Hm13ZBONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Le
-ie2uPAmvylezkolwQOQvT8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR1
-2KvxAmLBsX5VYc8T1yaw15zLKYs4SgsOkI26oQ==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
-gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
-MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY
-UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx
-NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3
-dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy
-dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6
-38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP
-KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q
-DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4
-qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa
-JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi
-PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P
-BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
-jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0
-eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR
-vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa
-IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
-i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
-O+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT
-AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD
-QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP
-MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do
-0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ
-UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d
-RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ
-OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv
-JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C
-AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O
-BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ
-LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY
-MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ
-44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I
-Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw
-i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN
-9u6wWk5JRFRYX0KD
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe
-MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0
-ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
-Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw
-IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL
-SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH
-SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh
-ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X
-DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1
-TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ
-fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA
-sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU
-WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS
-nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH
-dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip
-NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC
-AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF
-MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
-ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB
-uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl
-PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP
-JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/
-gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2
-j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6
-5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB
-o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS
-/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z
-Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE
-W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D
-hNQ+IIX3Sj0rnP0qCglN6oH4EZw=
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
-qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
-Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
-MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
-BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
-NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
-LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
-A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
-W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
-3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
-6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
-Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
-NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
-r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
-DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
-YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
-/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
-LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
-jVaMaA==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp
-IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi
-BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw
-MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
-d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig
-YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v
-dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/
-BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6
-papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K
-DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3
-KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox
-XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
------END CERTIFICATE-----
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB
-rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
-Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
-MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
-BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa
-Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl
-LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u
-MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl
-ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm
-gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8
-YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf
-b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9
-9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S
-zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk
-OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
-HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA
-2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW
-oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
-t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c
-KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM
-m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu
-MdRAGmI0Nj81Aa6sY6A=
------END CERTIFICATE-----
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json
index 07828431fc..1d23b88e0f 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json
@@ -5,7 +5,7 @@
{
"id": "hbase-aai",
"name": "HBase Health Check",
- "http": "http://hbase.onap-aai:8080/status/cluster",
+ "http": "http://hbase.namespace-placeholder:8080/status/cluster",
"method": "GET",
"header": {
"Cache-Control": ["no-cache"],
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-search-data-service-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-search-data-service-health.json
index b1877c7424..bf8830f0df 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-search-data-service-health.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-search-data-service-health.json
@@ -5,7 +5,7 @@
{
"id": "elasticsearch",
"name": "Search Data Service Document Store",
- "http": "http://elasticsearch.onap-aai:9200/_cat/indices?v",
+ "http": "http://aai-elasticsearch.namespace-placeholder:9200/_cat/indices?v",
"interval": "15s",
"timeout": "1s"
},
@@ -18,7 +18,7 @@
{
"id": "search-data-service-availability",
"name": "Search Data Service Availability",
- "script": "curl -k --cert /consul/config/certs/client-cert-onap.crt.pem --cert-type PEM --key /consul/config/bin/client-cert-onap.key.pem --key-type PEM https://search-data-service.onap-aai:9509/services/search-data-service/v1/jaxrsExample/jaxrs-services/echo/up 2>&1 | grep 'Up'",
+ "script": "curl -k --cert /consul/config/certs/client-cert-onap.crt.pem --cert-type PEM --key /consul/config/bin/client-cert-onap.key.pem --key-type PEM https://search-data-service.namespace-placeholder:9509/services/search-data-service/v1/jaxrsExample/jaxrs-services/echo/up 2>&1 | grep 'Up'",
"interval": "15s"
},
{
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-services-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-services-health.json
index 35f9371e8d..99d964e7d8 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-services-health.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-services-health.json
@@ -5,7 +5,7 @@
{
"id": "aai-service",
"name": "Core A&AI",
- "http": "https://aai-service.onap-aai:8443/aai/util/echo",
+ "http": "https://aai-service.namespace-placeholder:8443/aai/util/echo",
"header": {
"Authorization": ["Basic QUFJOkFBSQ=="],
"X-TransactionId": ["ConsulHealthCheck"],
@@ -18,7 +18,7 @@
{
"id": "aai-resources",
"name": "Resources Microservice",
- "http": "https://aai-resources.onap-aai:8447/aai/util/echo",
+ "http": "https://aai-resources.namespace-placeholder:8447/aai/util/echo",
"header": {
"Authorization": ["Basic QUFJOkFBSQ=="],
"X-TransactionId": ["ConsulHealthCheck"],
@@ -31,7 +31,7 @@
{
"id": "aai-traversal",
"name": "Traversal Microservice",
- "http": "https://aai-traversal.onap-aai:8446/aai/util/echo",
+ "http": "https://aai-traversal.namespace-placeholder:8446/aai/util/echo",
"header": {
"Authorization": ["Basic QUFJOkFBSQ=="],
"X-TransactionId": ["ConsulHealthCheck"],
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-dbbuilder.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-dbbuilder.json
index ec5539060f..a6c3467855 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-dbbuilder.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-dbbuilder.json
@@ -5,7 +5,7 @@
{
"id": "appc-dgbuilder",
"name": "APPC-Dgbuilder Server Health Check",
- "http": "http://dgbuilder.onap-appc:3000/",
+ "http": "http://appc-dgbuilder.namespace-placeholder:3000/",
"method": "HEAD",
"header": {
"Authorization": ["Basic ZGd1c2VyOnRlc3QxMjM="],
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb01-healthcheck.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb01-healthcheck.json
index 52ffdc0b6d..31f1b253f6 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb01-healthcheck.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb01-healthcheck.json
@@ -3,9 +3,9 @@
"name": "Health Check: APPC-SDN-CTL-DB-01",
"checks": [
{
- "id": "sdnctldb01.onap-appc",
+ "id": "appc-sdnctldb01.namespace-placeholder",
"name": "APPC SDNCTLDB01 Health Check",
- "tcp": "sdnctldb01.onap-appc:3306",
+ "tcp": "appc-sdnctldb01.namespace-placeholder:3306",
"interval": "10s",
"timeout": "1s"
}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb02-healthcheck.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb02-healthcheck.json
index d6ac666ff4..559e5a8cfe 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb02-healthcheck.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb02-healthcheck.json
@@ -3,9 +3,9 @@
"name": "Health Check: APPC-SDN-CTL-DB-02",
"checks": [
{
- "id": "sdnctldb02.onap-appc",
+ "id": "appc-sdnctldb02.namespace-placeholder",
"name": "APPC SDNCTLDB02 Health Check",
- "tcp": "sdnctldb02.onap-appc:3306",
+ "tcp": "appc-sdnctldb02.namespace-placeholder:3306",
"interval": "10s",
"timeout": "1s"
}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnhost.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnhost.json
new file mode 100644
index 0000000000..09b50077d7
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnhost.json
@@ -0,0 +1,22 @@
+{
+ "service": {
+ "name": "Health Check: APPC - SDN Host",
+ "checks": [
+ {
+ "id": "appc-sdnhost",
+ "name": "APPC SDN Host Health Check",
+ "http": "http://appc-sdnhost.namespace-placeholder:8282/apidoc/explorer/index.html",
+ "method": "HEAD",
+ "header": {
+ "Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
+ "Cache-Control": ["no-cache"],
+ "Content-Type": ["application/json"],
+ "Accept": ["application/json"]
+ },
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ }
+ ]
+ }
+}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-elastic-search.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-elastic-search.json
new file mode 100644
index 0000000000..3586f58932
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-elastic-search.json
@@ -0,0 +1,23 @@
+{
+ "service": {
+ "name": "Health Check: Log - Elastic Search",
+ "checks": [
+ {
+ "id": "log-elasticsearch-server",
+ "name": "Log Elastic Search Health Check",
+ "http": "http://elasticsearch.namespace-placeholder:9200/_cluster/health?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-elasticsearch-tcp",
+ "name": "Log Elastic Search TCP Health Check",
+ "tcp": "elasticsearchtcp.namespace-placeholder:9300",
+ "interval": "15s",
+ "timeout": "1s"
+ }
+ ]
+ }
+}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-kibana.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-kibana.json
new file mode 100644
index 0000000000..7fda31f8c0
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-kibana.json
@@ -0,0 +1,16 @@
+{
+ "service": {
+ "name": "Health Check: Log - Kibana",
+ "checks": [
+ {
+ "id": "log-kibana-server",
+ "name": "Log kibana Health Check",
+ "http": "http://kibana.namespace-placeholder:5601/status",
+ "method": "HEAD",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ }
+ ]
+ }
+}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-logstash.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-logstash.json
new file mode 100644
index 0000000000..e8e6236359
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-logstash.json
@@ -0,0 +1,95 @@
+{
+ "service": {
+ "name": "Health Check: Log - Log Stash",
+ "checks": [
+ {
+ "id": "log-logstash-internal-server-gi",
+ "name": "Log Stash Health Check - General Information",
+ "http": "http://logstashinternal.namespace-placeholder:9600/?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-node-info",
+ "name": "Log Stash Health Check - Node Information",
+ "http": "http://logstashinternal.namespace-placeholder:9600/_node/?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-os-info",
+ "name": "Log Stash Health Check - OS Information",
+ "http": "http://logstashinternal.namespace-placeholder:9600/_node/os?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-jvm-info",
+ "name": "Log Stash Health Check - JVM Information",
+ "http": "http://logstashinternal.namespace-placeholder:9600/_node/jvm?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-plugin-info",
+ "name": "Log Stash Health Check - Plugin Information",
+ "http": "http://logstashinternal.namespace-placeholder:9600/_node/plugins?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-node-stat",
+ "name": "Log Stash Health Check - Node Stats",
+ "http": "http://logstashinternal.namespace-placeholder:9600/_node/stats?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-jvm-stat",
+ "name": "Log Stash Health Check - JVM Stats",
+ "http": "http://logstashinternal.namespace-placeholder:9600/_node/stats/jvm?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-process-stat",
+ "name": "Log Stash Health Check - Process Stats",
+ "http": "http://logstashinternal.namespace-placeholder:9600/_node/stats/process?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-internal-server-os-stat",
+ "name": "Log Stash Health Check - OS Stats",
+ "http": "http://logstashinternal.namespace-placeholder:9600/_node/stats/os?pretty",
+ "method": "GET",
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "log-logstash-tcp",
+ "name": "Log Stash File Beat TCP Health Check",
+ "tcp": "logstash.namespace-placeholder:5044",
+ "interval": "15s",
+ "timeout": "1s"
+ }
+ ]
+ }
+}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-dmaap-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-dmaap-health.json
index bd01bc5d95..dddd9692b9 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-dmaap-health.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-dmaap-health.json
@@ -2,7 +2,7 @@
"service": {
"name": "Health Check: Message Router - DMaaP",
"check": {
- "http": "http://dmaap.onap-message-router:3904/topics",
+ "http": "http://dmaap.namespace-placeholder:3904/topics",
"interval": "30s",
"timeout": "1s"
}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/msb-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/msb-health.json
index a5738b3277..02e7dc47f4 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/msb-health.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/msb-health.json
@@ -3,34 +3,34 @@
"name": "Health Check: MSB",
"checks": [
{
- "id": "msb-eag.onap-msb",
+ "id": "msb-eag.namespace-placeholder",
"name": "MSB eag Health Check",
- "http": "http://msb-eag.onap-msb:80/iui/microservices/default.html",
+ "http": "http://msb-eag.namespace-placeholder:80/iui/microservices/default.html",
"method": "HEAD",
"tls_skip_verify": true,
"interval": "15s",
"timeout": "1s"
},
{
- "id": "msb-iag.onap-msb",
+ "id": "msb-iag.namespace-placeholder",
"name": "MSB iag Health Check",
- "http": "http://msb-iag.onap-msb:80/iui/microservices/default.html",
+ "http": "http://msb-iag.namespace-placeholder:80/iui/microservices/default.html",
"method": "HEAD",
"tls_skip_verify": true,
"interval": "15s",
"timeout": "1s"
},
{
- "id": "msb-consul.onap-msb",
+ "id": "msb-consul.namespace-placeholder",
"name": "MSB consul Health Check",
- "tcp": "msb-consul.onap-msb:8500",
+ "tcp": "msb-consul.namespace-placeholder:8500",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "msb-discovery.onap-msb",
+ "id": "msb-discovery.namespace-placeholder",
"name": "MSB discovery Health Check",
- "tcp": "msb-discovery.onap-msb:10081",
+ "tcp": "msb-discovery.namespace-placeholder:10081",
"interval": "15s",
"timeout": "1s"
}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/multicloud-health-check.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/multicloud-health-check.json
new file mode 100644
index 0000000000..760077c543
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/multicloud-health-check.json
@@ -0,0 +1,63 @@
+{
+ "service": {
+ "name": "Health Check: MULTICLOUD",
+ "checks": [
+ {
+ "id": "framework",
+ "name": "Framework Health Check",
+ "http": "http://framework.namespace-placeholder:9001/api/multicloud/v0/swagger.json",
+ "method": "HEAD",
+ "header": {
+ "Cache-Control": ["no-cache"],
+ "Content-Type": ["application/json"],
+ "Accept": ["application/json"]
+ },
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "multicloud-ocata",
+ "name": "Multicloud Ocata Health Check",
+ "http": "http://multicloud-ocata.namespace-placeholder:9006/api/multicloud-ocata/v0/swagger.json",
+ "method": "HEAD",
+ "header": {
+ "Cache-Control": ["no-cache"],
+ "Content-Type": ["application/json"],
+ "Accept": ["application/json"]
+ },
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "multicloud-vio",
+ "name": "Multicloud Vio Health Check",
+ "http": "http://multicloud-vio.namespace-placeholder:9004/api/multicloud-vio/v0/swagger.json",
+ "method": "HEAD",
+ "header": {
+ "Cache-Control": ["no-cache"],
+ "Content-Type": ["application/json"],
+ "Accept": ["application/json"]
+ },
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ },
+ {
+ "id": "multicloud-windriver",
+ "name": "Multicloud Windriver Health Check",
+ "http": "http://multicloud-windriver.namespace-placeholder:9005/api/multicloud-titanium_cloud/v0/swagger.json",
+ "method": "HEAD",
+ "header": {
+ "Cache-Control": ["no-cache"],
+ "Content-Type": ["application/json"],
+ "Accept": ["application/json"]
+ },
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ }
+ ]
+ }
+}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/aai-search-storage-write-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/aai-search-storage-write-script.sh
index 26e13913a0..fce0a63015 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/aai-search-storage-write-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/aai-search-storage-write-script.sh
@@ -1,6 +1,6 @@
-if curl -s -X PUT http://elasticsearch.onap-aai:9200/searchhealth/stats/testwrite -d @/consul/config/scripts/aai-search-storage-write-doc.txt | grep '\"created\":true'; then
- if curl -s -X DELETE http://elasticsearch.onap-aai:9200/searchhealth/stats/testwrite | grep '\"failed\":0'; then
- if curl -s -X GET http://elasticsearch.onap-aai:9200/searchhealth/stats/testwrite | grep '\"found\":false'; then
+if curl -s -X PUT http://elasticsearch.namespace-placeholder:9200/searchhealth/stats/testwrite -d @/consul/config/scripts/aai-search-storage-write-doc.txt | grep '\"created\":true'; then
+ if curl -s -X DELETE http://elasticsearch.namespace-placeholder:9200/searchhealth/stats/testwrite | grep '\"failed\":0'; then
+ if curl -s -X GET http://elasticsearch.namespace-placeholder:9200/searchhealth/stats/testwrite | grep '\"found\":false'; then
echo Successful PUT, DELETE, GET from Search Document Storage 2>&1
exit 0
else
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/appc-dbhost-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/appc-dbhost-script.sh
index 4a78c315ba..9abfd49ca7 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/appc-dbhost-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/appc-dbhost-script.sh
@@ -1,6 +1,6 @@
-APPC_DBHOST_POD=$(/consul/config/bin/kubectl -n onap-appc get pod | grep -o "appc-dbhost-[^[:space:]]*")
+APPC_DBHOST_POD=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "appc-dbhost-[^[:space:]]*")
if [ -n "$APPC_DBHOST_POD" ]; then
- if /consul/config/bin/kubectl -n onap-appc exec -it $APPC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then
+ if /consul/config/bin/kubectl -n namespace-placeholder exec -it $APPC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then
echo Success. APPC DBHost is running. 2>&1
exit 0
else
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/data-router-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/data-router-script.sh
index 53cd5886f9..2c7a949987 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/data-router-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/data-router-script.sh
@@ -1,8 +1,8 @@
-NAME=$(/consul/config/bin/kubectl -n onap-aai get pod | grep -o "data-router[^[:space:]]*")
+NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "data-router[^[:space:]]*")
if [ -n "$NAME" ]; then
- if /consul/config/bin/kubectl -n onap-aai exec -it $NAME -- ps -efww | grep 'java' | grep 'data-router' > /dev/null; then
+ if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- ps -efww | grep 'java' | grep 'data-router' > /dev/null; then
echo Success. Synapse process is running. 2>&1
exit 0
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/gremlin-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/gremlin-script.sh
index c1766f8a2a..e55c90fdc1 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/gremlin-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/gremlin-script.sh
@@ -1,8 +1,8 @@
-NAME=$(/consul/config/bin/kubectl -n onap-aai get pod | grep -o "gremlin[^[:space:]]*")
+NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "gremlin[^[:space:]]*")
if [ -n "$NAME" ]; then
- if /consul/config/bin/kubectl -n onap-aai exec -it $NAME -- ps -efww | grep 'java' | grep 'gremlin-server' > /dev/null; then
+ if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- ps -efww | grep 'java' | grep 'gremlin-server' > /dev/null; then
echo Success. Gremlin Server process is running. 2>&1
exit 0
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/model-loader-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/model-loader-script.sh
index 1c93ecb38e..9f4f4a843d 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/model-loader-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/model-loader-script.sh
@@ -1,8 +1,8 @@
-NAME=$(/consul/config/bin/kubectl -n onap-aai get pod | grep -o "model-loader[^[:space:]]*")
+NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "model-loader[^[:space:]]*")
if [ -n "$NAME" ]; then
- if /consul/config/bin/kubectl -n onap-aai exec -it $NAME -- ps -efww | grep 'java' | grep 'model-loader' > /dev/null; then
+ if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- ps -efww | grep 'java' | grep 'model-loader' > /dev/null; then
echo Success. Model Loader process is running. 2>&1
exit 0
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-kafka-health.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-kafka-health.sh
index 317c2a699c..cde6e8f335 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-kafka-health.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-kafka-health.sh
@@ -1,6 +1,6 @@
-kafkapod=$(/consul/config/bin/kubectl -n onap-message-router get pod | grep -o "global-kafka-[^[:space:]]*")
+kafkapod=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "global-kafka-[^[:space:]]*")
if [ -n "$kafkapod" ]; then
- if /consul/config/bin/kubectl -n onap-message-router exec -it $kafkapod -- ps ef | grep -i kafka; then
+ if /consul/config/bin/kubectl -n namespace-placeholder exec -it $kafkapod -- ps ef | grep -i kafka; then
echo Success. Kafka process is running. 2>&1
exit 0
else
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-zookeeper-health.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-zookeeper-health.sh
index 3da456c05a..2534fcba9e 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-zookeeper-health.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-zookeeper-health.sh
@@ -1,6 +1,6 @@
-zkpod=$(/consul/config/bin/kubectl -n onap-message-router get pod | grep -o "zookeeper-[^[:space:]]*")
+zkpod=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "zookeeper-[^[:space:]]*")
if [ -n "$zkpod" ]; then
- if /consul/config/bin/kubectl -n onap-message-router exec -it $zkpod -- ps ef | grep -i zookeeper; then
+ if /consul/config/bin/kubectl -n namespace-placeholder exec -it $zkpod -- ps ef | grep -i zookeeper; then
echo Success. Zookeeper process is running. 2>&1
exit 0
else
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-api-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-api-script.sh
index ba0afc0dce..459d2e2b34 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-api-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-api-script.sh
@@ -1,5 +1,5 @@
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://mso.onap-mso.svc.cluster.local:8080/ecomp/mso/infra/healthcheck"
+HEALTH_CHECK_ENDPOINT="http://mso.namespace-placeholder:8080/ecomp/mso/infra/healthcheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready")
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-camunda-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-camunda-script.sh
index 254a0445ce..8342843dd8 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-camunda-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-camunda-script.sh
@@ -1,5 +1,5 @@
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://mso.onap-mso.svc.cluster.local:8080/mso/healthcheck"
+HEALTH_CHECK_ENDPOINT="http://mso.namespace-placeholder:8080/mso/healthcheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready")
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-jra-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-jra-script.sh
index 29ffd8fe4c..c88ebe5a49 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-jra-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-jra-script.sh
@@ -1,5 +1,5 @@
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://mso.onap-mso.svc.cluster.local:8080/networks/rest/healthcheck"
+HEALTH_CHECK_ENDPOINT="http://mso.namespace-placeholder:8080/networks/rest/healthcheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready")
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh
index 84b22206e0..cabaa4bc29 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh
@@ -1,7 +1,7 @@
-NAME=$(/consul/config/bin/kubectl -n onap-mso get pod | grep -o "mariadb[^[:space:]]*")
+NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "mso-mariadb[^[:space:]]*")
if [ -n "$NAME" ]; then
- if /consul/config/bin/kubectl -n onap-mso exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then
+ if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then
echo Success. mariadb process is running. 2>&1
exit 0
else
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-be-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-be-script.sh
index f460a3f116..66f35d9437 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-be-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-be-script.sh
@@ -1,5 +1,5 @@
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.onap-sdc:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
## Strip out the ON_BOARDING section from the response XML (otherwise we will
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-cs-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-cs-script.sh
index 31cd8d3fa6..cd50120581 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-cs-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-cs-script.sh
@@ -1,5 +1,5 @@
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.onap-sdc:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
## Strip out the ON_BOARDING section from the response XML (otherwise we will
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-fe-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-fe-script.sh
index 6a1d035ecd..9799c31201 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-fe-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-fe-script.sh
@@ -1,5 +1,5 @@
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.onap-sdc:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
## Strip out the ON_BOARDING section from the response XML (otherwise we will
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-titan-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-titan-script.sh
index 6993402653..bfa2068f29 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-titan-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-titan-script.sh
@@ -1,5 +1,5 @@
## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.onap-sdc:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck"
HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
## Strip out the ON_BOARDING section from the response XML (otherwise we will
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh
index 6bb07f80eb..8a523ce0b5 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh
@@ -1,6 +1,6 @@
-SDNC_DBHOST_POD=$(/consul/config/bin/kubectl -n onap-sdnc get pod | grep -o "sdnc-dbhost-[^[:space:]]*")
+SDNC_DBHOST_POD=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "sdnc-dbhost-[^[:space:]]*")
if [ -n "$SDNC_DBHOST_POD" ]; then
- if /consul/config/bin/kubectl -n onap-sdnc exec -it $SDNC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then
+ if /consul/config/bin/kubectl -n namespace-placeholder exec -it $SDNC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then
echo Success. SDNC DBHost is running. 2>&1
exit 0
else
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/search-data-service-availability.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/search-data-service-availability.sh
index fc0b04a72b..ef96cca6a3 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/search-data-service-availability.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/search-data-service-availability.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-SEARCH_SERVICE_NAME="search-data-service.onap-aai"
+SEARCH_SERVICE_NAME="search-data-service.namespace-placeholder"
SEARCH_SERVICE_PORT=9509
HEALTH_CHECK_INDEX="healthcheck"
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sparky-be-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sparky-be-script.sh
index fe265ba2b0..0791c5811d 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sparky-be-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sparky-be-script.sh
@@ -1,8 +1,8 @@
-NAME=$(/consul/config/bin/kubectl -n onap-aai get pod | grep -o "sparky-be[^[:space:]]*")
+NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "aai-sparky-be[^[:space:]]*")
if [ -n "$NAME" ]; then
- if /consul/config/bin/kubectl -n onap-aai exec -it $NAME -- ps -efww | grep 'java' | grep 'sparky' > /dev/null; then
+ if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- ps -efww | grep 'java' | grep 'sparky' > /dev/null; then
echo Success. UI Backend Service process is running. 2>&1
exit 0
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/tabular-db-availability.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/tabular-db-availability.sh
index da9d8a5d82..ebec49769c 100755
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/tabular-db-availability.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/tabular-db-availability.sh
@@ -1,6 +1,6 @@
# Query the Hbase service for the cluster status.
-GET_CLUSTER_STATUS_RESPONSE=$(curl -si -X GET -H "Accept: text/xml" http://hbase.onap-aai:8080/status/cluster)
+GET_CLUSTER_STATUS_RESPONSE=$(curl -si -X GET -H "Accept: text/xml" http://aai-hbase.namespace-placeholder:8080/status/cluster)
if [ -z "$GET_CLUSTER_STATUS_RESPONSE" ]; then
echo "Tabular store is unreachable."
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/vid-mariadb-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/vid-mariadb-script.sh
index c87686f764..96c7969fac 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/vid-mariadb-script.sh
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/vid-mariadb-script.sh
@@ -1,7 +1,7 @@
-NAME=$(/consul/config/bin/kubectl -n onap-vid get pod | grep -o "vid-mariadb[^[:space:]]*")
+NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "vid-mariadb[^[:space:]]*")
if [ -n "$NAME" ]; then
- if /consul/config/bin/kubectl -n onap-vid exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then
+ if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then
echo Success. mariadb process is running. 2>&1
exit 0
else
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdc-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdc-health.json
index 849e199589..374dcdfd62 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdc-health.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdc-health.json
@@ -33,7 +33,7 @@
{
"id": "sdc-catalog-healthcheck",
"name": "SDC Catalog Health Check",
- "http": "https://sdc-be.onap-sdc:8443/asdc/v1/catalog/services",
+ "http": "https://sdc-be.namespace-placeholder:8443/asdc/v1/catalog/services",
"header": {
"Authorization": ["Basic dmlkOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU="],
"X-ECOMP-InstanceID": ["VID"],
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dgbuilder.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dgbuilder.json
index 051c4abb3a..6c293995eb 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dgbuilder.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dgbuilder.json
@@ -5,7 +5,7 @@
{
"id": "sdnc-dgbuilder",
"name": "SDNC-DGbuilder Health Check",
- "http": "http://sdnc-dgbuilder.onap-sdnc:3000/",
+ "http": "http://sdnc-dgbuilder.namespace-placeholder:3000/",
"method": "HEAD",
"header": {
"Authorization": ["Basic ZGd1c2VyOnRlc3QxMjM="],
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-health.json
index fc26d2e192..a127aa1d27 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-health.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-health.json
@@ -5,7 +5,7 @@
{
"id": "odl-api-healthcheck",
"name": "SDNC API Health Check",
- "http": "http://sdnhost.onap-sdnc:8282/restconf/operations/SLI-API:healthcheck",
+ "http": "http://sdnhost.namespace-placeholder:8282/restconf/operations/SLI-API:healthcheck",
"method": "POST",
"header": {
"Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json
index 3ecc1b3f53..07f2bb7b95 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json
@@ -5,7 +5,7 @@
{
"id": "sdnc-portal",
"name": "SDNC Portal Health Check",
- "http": "http://sdnc-portal.onap-sdnc:8843/login",
+ "http": "http://sdnc-portal.namespace-placeholder:8843/login",
"method": "HEAD",
"header": {
"Cache-Control": ["no-cache"],
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb01-healthcheck.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb01-healthcheck.json
index 321852e805..6b859c0894 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb01-healthcheck.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb01-healthcheck.json
@@ -3,9 +3,9 @@
"name": "Health Check: SDNC-SDN-CTL-DB-01",
"checks": [
{
- "id": "sdnctldb01.onap-sdnc",
+ "id": "sdnctldb01.namespace-placeholder",
"name": "SDNC SDNCTLDB01 Health Check",
- "tcp": "sdnctldb01.onap-sdnc:3306",
+ "tcp": "sdnctldb01.namespace-placeholder:3306",
"interval": "10s",
"timeout": "1s"
}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb02-healthcheck.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb02-healthcheck.json
index 106a2069bb..c6ad3beb93 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb02-healthcheck.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb02-healthcheck.json
@@ -3,9 +3,9 @@
"name": "Health Check: SDNC-SDN-CTL-DB-02",
"checks": [
{
- "id": "sdnctldb02.onap-sdnc",
+ "id": "sdnctldb02.namespace-placeholder",
"name": "SDNC SDNCTLDB02 Health Check",
- "tcp": "sdnctldb02.onap-sdnc:3306",
+ "tcp": "sdnctldb02.namespace-placeholder:3306",
"interval": "10s",
"timeout": "1s"
}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnhost.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnhost.json
new file mode 100644
index 0000000000..9494810081
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnhost.json
@@ -0,0 +1,22 @@
+{
+ "service": {
+ "name": "Health Check: SDNC - SDN Host",
+ "checks": [
+ {
+ "id": "sdnc-sdnhost",
+ "name": "SDNC SDN Host Health Check",
+ "http": "http://sdnhost.namespace-placeholder:8282/apidoc/explorer/index.html",
+ "method": "HEAD",
+ "header": {
+ "Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
+ "Cache-Control": ["no-cache"],
+ "Content-Type": ["application/json"],
+ "Accept": ["application/json"]
+ },
+ "tls_skip_verify": true,
+ "interval": "15s",
+ "timeout": "1s"
+ }
+ ]
+ }
+}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vfc-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vfc-health.json
index c7f83a8bfe..abc9e7f6b4 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vfc-health.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vfc-health.json
@@ -3,107 +3,107 @@
"name": "Health Check: VFC",
"checks": [
{
- "id": "vfc-catalog.onap-vfc",
+ "id": "vfc-catalog.namespace-placeholder",
"name": "VFC catalog Health Check",
- "tcp": "vfc-catalog.onap-vfc:8806",
+ "tcp": "vfc-catalog.namespace-placeholder:8806",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-emsdriver.onap-vfc",
+ "id": "vfc-emsdriver.namespace-placeholder",
"name": "VFC emsdriver Health Check",
- "tcp": "vfc-emsdriver.onap-vfc:8206",
+ "tcp": "vfc-emsdriver.namespace-placeholder:8206",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-gvnfmdriver.onap-vfc",
+ "id": "vfc-gvnfmdriver.namespace-placeholder",
"name": "VFC gvnfmdriver Health Check",
- "tcp": "vfc-gvnfmdriver.onap-vfc:8484",
+ "tcp": "vfc-gvnfmdriver.namespace-placeholder:8484",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-hwvnfmdriver.onap-vfc",
+ "id": "vfc-hwvnfmdriver.namespace-placeholder",
"name": "VFC hwvnfmdriver Health Check",
- "tcp": "vfc-hwvnfmdriver.onap-vfc:8482",
+ "tcp": "vfc-hwvnfmdriver.namespace-placeholder:8482",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-jujudriver.onap-vfc",
+ "id": "vfc-jujudriver.namespace-placeholder",
"name": "VFC jujudriver Health Check",
- "tcp": "vfc-jujudriver.onap-vfc:8483",
+ "tcp": "vfc-jujudriver.namespace-placeholder:8483",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-nokiavnfmdriver.onap-vfc",
+ "id": "vfc-nokiavnfmdriver.namespace-placeholder",
"name": "VFC nokiavnfmdriver Health Check",
- "tcp": "vfc-nokiavnfmdriver.onap-vfc:8486",
+ "tcp": "vfc-nokiavnfmdriver.namespace-placeholder:8486",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-nslcm.onap-vfc",
+ "id": "vfc-nslcm.namespace-placeholder",
"name": "VFC nslcm Health Check",
- "tcp": "vfc-nslcm.onap-vfc:8403",
+ "tcp": "vfc-nslcm.namespace-placeholder:8403",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-resmgr.onap-vfc",
+ "id": "vfc-resmgr.namespace-placeholder",
"name": "VFC resmgr Health Check",
- "tcp": "vfc-resmgr.onap-vfc:8480",
+ "tcp": "vfc-resmgr.namespace-placeholder:8480",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-vnflcm.onap-vfc",
+ "id": "vfc-vnflcm.namespace-placeholder",
"name": "VFC vnflcm Health Check",
- "tcp": "vfc-vnflcm.onap-vfc:8801",
+ "tcp": "vfc-vnflcm.namespace-placeholder:8801",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-vnfmgr.onap-vfc",
+ "id": "vfc-vnfmgr.namespace-placeholder",
"name": "VFC vnfmgr Health Check",
- "tcp": "vfc-vnfmgr.onap-vfc:8803",
+ "tcp": "vfc-vnfmgr.namespace-placeholder:8803",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-vnfres.onap-vfc",
+ "id": "vfc-vnfres.namespace-placeholder",
"name": "VFC vnfres Health Check",
- "tcp": "vfc-vnfres.onap-vfc:8802",
+ "tcp": "vfc-vnfres.namespace-placeholder:8802",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-workflow.onap-vfc",
+ "id": "vfc-workflow.namespace-placeholder",
"name": "VFC workflow Health Check",
- "tcp": "vfc-workflow.onap-vfc:10550",
+ "tcp": "vfc-workflow.namespace-placeholder:10550",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-workflowengineactiviti.onap-vfc",
+ "id": "vfc-workflowengineactiviti.namespace-placeholder",
"name": "VFC workflow-engine Health Check",
- "tcp": "vfc-workflowengineactiviti.onap-vfc:8080",
+ "tcp": "vfc-workflowengineactiviti.namespace-placeholder:8080",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-ztesdncdriver.onap-vfc",
+ "id": "vfc-ztesdncdriver.namespace-placeholder",
"name": "VFC ztesdncdriver Health Check",
- "tcp": "vfc-ztesdncdriver.onap-vfc:8411",
+ "tcp": "vfc-ztesdncdriver.namespace-placeholder:8411",
"interval": "15s",
"timeout": "1s"
},
{
- "id": "vfc-ztevnfmdriver.onap-vfc",
+ "id": "vfc-ztevnfmdriver.namespace-placeholder",
"name": "VFC ztevnfmdriver Health Check",
- "tcp": "vfc-ztevnfmdriver.onap-vfc:8410",
+ "tcp": "vfc-ztevnfmdriver.namespace-placeholder:8410",
"interval": "15s",
"timeout": "1s"
}
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vid-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vid-health.json
index 8a2a4dca9b..39d71c4e5e 100644
--- a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vid-health.json
+++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/vid-health.json
@@ -5,7 +5,7 @@
{
"id": "vid-server",
"name": "VID Server Health Check",
- "http": "http://vid-server.onap-vid:8080/vid/healthCheck",
+ "http": "http://vid-server.namespace-placeholder:8080/vid/healthCheck",
"method": "GET",
"header": {
"Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
diff --git a/kubernetes/config/docker/init/src/config/dcae/message-router/dmaap/MsgRtrApi.properties b/kubernetes/config/docker/init/src/config/dcae/message-router/dmaap/MsgRtrApi.properties
index 8c6f50dc67..2f37755d88 100644
--- a/kubernetes/config/docker/init/src/config/dcae/message-router/dmaap/MsgRtrApi.properties
+++ b/kubernetes/config/docker/init/src/config/dcae/message-router/dmaap/MsgRtrApi.properties
@@ -15,9 +15,9 @@
##
## Both Cambria and Kafka make use of Zookeeper.
##
-config.zk.servers=zookeeper.onap-dcae:2181
+config.zk.servers=zookeeper.namespace-placeholder:2181
#config.zk.servers=172.17.0.1:2181
-#dmaap.onap-dcae:2181
+#dmaap.namespace-placeholder:2181
#10.208.128.229:2181
#config.zk.root=/fe3c/cambria/config
@@ -30,9 +30,9 @@ config.zk.servers=zookeeper.onap-dcae:2181
## configurations (after removing "kafka.")
## if you want to change request.required.acks it can take this one value
#kafka.metadata.broker.list=localhost:9092,localhost:9093
-kafka.metadata.broker.list=kafka.onap-dcae:9092
+kafka.metadata.broker.list=kafka.namespace-placeholder:9092
#kafka.metadata.broker.list=172.17.0.1:9092
-#dmaap.onap-dcae:9092
+#dmaap.namespace-placeholder:9092
#10.208.128.229:9092
##kafka.request.required.acks=-1
#kafka.client.zookeeper=${config.zk.servers}
diff --git a/kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml b/kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml
index 79c9a08a79..f15c2bb8e1 100644
--- a/kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml
+++ b/kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml
@@ -29,7 +29,7 @@ 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: ["logstash.onap-log:5044"]
+ hosts: ["logstash.namespace-placeholder:5044"]
#If enable will do load balancing among availabe Logstash, automatically.
loadbalance: true
diff --git a/kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml b/kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml
index f316b866af..7b78c9ba46 100644
--- a/kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml
+++ b/kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml
@@ -21,7 +21,7 @@ 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: ["logstash.onap-log:5044"]
+ hosts: ["logstash.namespace-placeholder:5044"]
#If enable will do load balancing among availabe Logstash, automatically.
loadbalance: true
diff --git a/kubernetes/config/docker/init/src/config/log/policy/drools/logback.xml b/kubernetes/config/docker/init/src/config/log/policy/drools/logback.xml
deleted file mode 100644
index 2b6d11e962..0000000000
--- a/kubernetes/config/docker/init/src/config/log/policy/drools/logback.xml
+++ /dev/null
@@ -1,152 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ============LICENSE_START=======================================================
- policy-management
- ================================================================================
- Copyright (C) 2017 AT&amp;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=========================================================
- -->
-<configuration debug="true" scan="true" scanPeriod="3 seconds">
- <!--<jmxConfigurator /> -->
- <!-- specify the base path of the log directory -->
- <property name="logDir" value="/var/log/onap" />
- <!-- specify the component name -->
- <property name="componentName" value="policy" />
- <!-- specify the sub component name -->
- <property name="subComponentName" value="drools" />
- <!-- The directories where logs are written -->
- <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
- <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />
- <!-- log file names -->
- <property name="errorLogName" value="error" />
- <property name="metricsLogName" value="metrics" />
- <property name="auditLogName" value="audit" />
- <property name="debugLogName" value="debug" />
- <property name="queueSize" value="256" />
- <property name="maxFileSize" value="50MB" />
- <property name="maxHistory" value="30" />
- <property name="totalSizeCap" value="10GB" />
- <!-- Example evaluator filter applied against console appender -->
- <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <!-- ============================================================================ -->
- <!-- EELF Appenders -->
- <!-- ============================================================================ -->
- <!-- The EELFAppender is used to record events to the general application
- log -->
- <!-- EELF Audit Appender. This appender is used to record audit engine
- related logging events. The audit logger and appender are specializations
- of the EELF application root logger and appender. This can be used to segregate
- Policy engine events from other components, or it can be eliminated to record
- these events as part of the application root log. -->
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">
- <file>${logDirectory}/${auditLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELFAudit" />
- </appender>
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">
- <file>${logDirectory}/${metricsLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELFMetrics" />
- </appender>
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFError">
- <file>${logDirectory}/${errorLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>INFO</level>
- </filter>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFError">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELFError" />
- </appender>
- <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">
- <file>${logDirectory}/${debugLogName}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/${debugLogName}.%i.log.zip</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${maxFileSize}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <maxHistory>${maxHistory}</maxHistory>
- <totalSizeCap>${totalSizeCap}</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">
- <queueSize>${queueSize}</queueSize>
- <appender-ref ref="EELFDebug" />
- <includeCallerData>true</includeCallerData>
- </appender>
- <!-- ============================================================================ -->
- <!-- EELF loggers -->
- <!-- ============================================================================ -->
- <logger additivity="false" level="info" name="com.att.eelf.audit">
- <appender-ref ref="asyncEELFAudit" />
- </logger>
- <logger additivity="false" level="info" name="com.att.eelf.metrics">
- <appender-ref ref="asyncEELFMetrics" />
- </logger>
- <logger additivity="false" level="info" name="com.att.eelf.error">
- <appender-ref ref="asyncEELFError" />
- </logger>
- <logger additivity="false" level="debug" name="com.att.eelf.debug">
- <appender-ref ref="asyncEELFDebug" />
- </logger>
- <root level="INFO">
- <appender-ref ref="asyncEELFDebug" />
- <appender-ref ref="asyncEELFError" />
- </root>
-</configuration> \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/message-router/dmaap/MsgRtrApi.properties b/kubernetes/config/docker/init/src/config/message-router/dmaap/MsgRtrApi.properties
index d912179121..db8d911248 100755
--- a/kubernetes/config/docker/init/src/config/message-router/dmaap/MsgRtrApi.properties
+++ b/kubernetes/config/docker/init/src/config/message-router/dmaap/MsgRtrApi.properties
@@ -15,9 +15,9 @@
##
## Both Cambria and Kafka make use of Zookeeper.
##
-config.zk.servers=zookeeper.onap-message-router:2181
+config.zk.servers=zookeeper.namespace-placeholder:2181
#config.zk.servers=172.17.0.1:2181
-#dmaap.onap-message-router:2181
+#dmaap.namespace-placeholder:2181
#10.208.128.229:2181
#config.zk.root=/fe3c/cambria/config
@@ -30,9 +30,9 @@ config.zk.servers=zookeeper.onap-message-router:2181
## configurations (after removing "kafka.")
## if you want to change request.required.acks it can take this one value
#kafka.metadata.broker.list=localhost:9092,localhost:9093
-kafka.metadata.broker.list=global-kafka.onap-message-router:9092
+kafka.metadata.broker.list=global-kafka.namespace-placeholder:9092
#kafka.metadata.broker.list=172.17.0.1:9092
-#dmaap.onap-message-router:9092
+#dmaap.namespace-placeholder:9092
#10.208.128.229:9092
##kafka.request.required.acks=-1
#kafka.client.zookeeper=${config.zk.servers}
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log.00000001 b/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log.00000001
deleted file mode 100644
index 8608ff7c73..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log.00000001
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log_control b/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log_control
deleted file mode 100644
index 9ae850a6a0..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/aria_log_control
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/debian-10.0.flag b/kubernetes/config/docker/init/src/config/policy/mariadb/data/debian-10.0.flag
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/debian-10.0.flag
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/firstrun b/kubernetes/config/docker/init/src/config/policy/mariadb/data/firstrun
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/firstrun
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile0 b/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile0
deleted file mode 100644
index cc8b741fc4..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile0
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile1 b/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile1
deleted file mode 100644
index 274bba07cf..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ib_logfile1
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ibdata1 b/kubernetes/config/docker/init/src/config/policy/mariadb/data/ibdata1
deleted file mode 100644
index 3920f04824..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/ibdata1
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/log/db.opt b/kubernetes/config/docker/init/src/config/policy/mariadb/data/log/db.opt
deleted file mode 100644
index d8429c4e0d..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/log/db.opt
+++ /dev/null
@@ -1,2 +0,0 @@
-default-character-set=latin1
-default-collation=latin1_swedish_ci
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/multi-master.info b/kubernetes/config/docker/init/src/config/policy/mariadb/data/multi-master.info
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/multi-master.info
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYI
deleted file mode 100644
index 9ff5ed6cd2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.frm
deleted file mode 100644
index fefc7eb21e..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/column_stats.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYI
deleted file mode 100644
index f261e282b7..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.frm
deleted file mode 100644
index faa4a8a87c..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/columns_priv.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYI
deleted file mode 100644
index 628c578248..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.frm
deleted file mode 100644
index 1ab1f59765..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/db.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYI
deleted file mode 100644
index fc4d47f02d..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.frm
deleted file mode 100644
index 9089087ecf..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/event.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYI
deleted file mode 100644
index b0ddde112f..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.frm
deleted file mode 100644
index 42aca49552..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/func.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSM b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSM
deleted file mode 100644
index 8d08b8db90..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSM
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSV b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSV
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.CSV
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.frm
deleted file mode 100644
index 919bb7ff2b..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/general_log.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.frm
deleted file mode 100644
index d09f1d4c61..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.ibd b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.ibd
deleted file mode 100644
index b74a0af6dd..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/gtid_slave_pos.ibd
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYD
deleted file mode 100644
index 360a41a527..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYD
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYI
deleted file mode 100644
index c381776201..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.frm
deleted file mode 100644
index e9dc205bc0..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_category.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYD
deleted file mode 100644
index 570509bbc5..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYD
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYI
deleted file mode 100644
index 36715cf3f8..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.frm
deleted file mode 100644
index 999eec1ee4..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_keyword.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYD
deleted file mode 100644
index f963ea5cbe..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYD
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYI
deleted file mode 100644
index 53190af9c8..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.frm
deleted file mode 100644
index 6eef95a38f..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_relation.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYD
deleted file mode 100644
index ad4c19e684..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYD
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYI
deleted file mode 100644
index d8ef966307..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.frm
deleted file mode 100644
index 3b59b25043..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/help_topic.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYI
deleted file mode 100644
index 2a1cfcb35f..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.frm
deleted file mode 100644
index 62ae8cd164..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/host.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYI
deleted file mode 100644
index 05be1c8824..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.frm
deleted file mode 100644
index e4cf7e0097..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/index_stats.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.frm
deleted file mode 100644
index ed0f019b3e..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.ibd b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.ibd
deleted file mode 100644
index daac102f2f..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_index_stats.ibd
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.frm
deleted file mode 100644
index 64e3af3a5d..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.ibd b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.ibd
deleted file mode 100644
index 7716fcc485..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/innodb_table_stats.ibd
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYI
deleted file mode 100644
index 5e741be58b..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.frm
deleted file mode 100644
index 7f57bf2285..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/plugin.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYI
deleted file mode 100644
index 253b7c730b..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.frm
deleted file mode 100644
index a7c27b092b..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proc.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYI
deleted file mode 100644
index 62aca26c23..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.frm
deleted file mode 100644
index 03a6ce60cc..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/procs_priv.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYD
deleted file mode 100644
index 5d8c536113..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYD
+++ /dev/null
@@ -1 +0,0 @@
-ÿlocalhost root  VUÚXÿae9df72d0f92 root  VUÚX \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYI
deleted file mode 100644
index 8ad2f00877..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.frm
deleted file mode 100644
index 194540fa8a..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/proxies_priv.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYI
deleted file mode 100644
index adcba590dd..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.frm
deleted file mode 100644
index c3d60e7e1f..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/roles_mapping.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYI
deleted file mode 100644
index c44463f03f..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.frm
deleted file mode 100644
index 88922438df..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/servers.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSM b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSM
deleted file mode 100644
index 8d08b8db90..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSM
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSV b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSV
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.CSV
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.frm
deleted file mode 100644
index 35095395f9..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/slow_log.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYI
deleted file mode 100644
index 0d26cd38bc..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.frm
deleted file mode 100644
index 6bac5bddc8..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/table_stats.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYI
deleted file mode 100644
index 610ffef58f..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.frm
deleted file mode 100644
index 008358b564..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/tables_priv.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYI
deleted file mode 100644
index 99242f2217..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.frm
deleted file mode 100644
index 5e091a235b..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYI
deleted file mode 100644
index 806384388e..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.frm
deleted file mode 100644
index ae89ff5940..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_leap_second.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYI
deleted file mode 100644
index 46e949ceef..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.frm
deleted file mode 100644
index a9e7942d50..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYI
deleted file mode 100644
index a98b680dd1..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.frm
deleted file mode 100644
index 58743dcd03..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYD
deleted file mode 100644
index e69de29bb2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYD
+++ /dev/null
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYI
deleted file mode 100644
index d4f0bc126d..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.frm
deleted file mode 100644
index 7d0229c3f9..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/time_zone_transition_type.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYD b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYD
deleted file mode 100644
index 107af559b1..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYD
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYI b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYI
deleted file mode 100644
index c6eb47dad2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.MYI
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.frm
deleted file mode 100644
index 9e5f937d02..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/mysql/user.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/accounts.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/accounts.frm
deleted file mode 100644
index 76257e5c82..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/accounts.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/cond_instances.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/cond_instances.frm
deleted file mode 100644
index 746f90ded7..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/cond_instances.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/db.opt b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/db.opt
deleted file mode 100644
index 4ed6015f9c..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/db.opt
+++ /dev/null
@@ -1,2 +0,0 @@
-default-character-set=utf8
-default-collation=utf8_general_ci
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_current.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_current.frm
deleted file mode 100644
index 55206140d9..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_current.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history.frm
deleted file mode 100644
index ff098a6954..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history_long.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history_long.frm
deleted file mode 100644
index 7c8057626e..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_history_long.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_account_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_account_by_event_name.frm
deleted file mode 100644
index e550bc8e8f..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_account_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_host_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_host_by_event_name.frm
deleted file mode 100644
index 07b01595dd..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_host_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_thread_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_thread_by_event_name.frm
deleted file mode 100644
index 953423d11e..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_thread_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_user_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_user_by_event_name.frm
deleted file mode 100644
index ee203b42a4..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_by_user_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_global_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_global_by_event_name.frm
deleted file mode 100644
index 17695dfdf7..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_stages_summary_global_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_current.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_current.frm
deleted file mode 100644
index f1c697dd92..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_current.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history.frm
deleted file mode 100644
index a22f24552c..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history_long.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history_long.frm
deleted file mode 100644
index 90184ae324..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_history_long.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_account_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_account_by_event_name.frm
deleted file mode 100644
index 6d96ec64f6..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_account_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_digest.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_digest.frm
deleted file mode 100644
index bd5d1be7af..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_digest.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_host_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_host_by_event_name.frm
deleted file mode 100644
index a4cbc467dc..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_host_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_thread_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_thread_by_event_name.frm
deleted file mode 100644
index 2463e3f9e0..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_thread_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_user_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_user_by_event_name.frm
deleted file mode 100644
index 8e1e1b49be..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_by_user_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_global_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_global_by_event_name.frm
deleted file mode 100644
index 0866d50e2b..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_statements_summary_global_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_current.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_current.frm
deleted file mode 100644
index e511ca188c..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_current.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history.frm
deleted file mode 100644
index 0ccd30e689..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history_long.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history_long.frm
deleted file mode 100644
index 6d80113cc9..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_history_long.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_account_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_account_by_event_name.frm
deleted file mode 100644
index 1e866b6765..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_account_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_host_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_host_by_event_name.frm
deleted file mode 100644
index 2da5615afc..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_host_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_instance.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_instance.frm
deleted file mode 100644
index 8830264e9e..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_instance.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_thread_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_thread_by_event_name.frm
deleted file mode 100644
index d72308ce21..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_thread_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_user_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_user_by_event_name.frm
deleted file mode 100644
index 787a3a5184..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_by_user_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_global_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_global_by_event_name.frm
deleted file mode 100644
index f690713d5f..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/events_waits_summary_global_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_instances.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_instances.frm
deleted file mode 100644
index 85836660f1..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_instances.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_event_name.frm
deleted file mode 100644
index 591f0e9559..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_instance.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_instance.frm
deleted file mode 100644
index 9f5807ed05..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/file_summary_by_instance.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/host_cache.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/host_cache.frm
deleted file mode 100644
index be7423dd1f..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/host_cache.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/hosts.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/hosts.frm
deleted file mode 100644
index c6aa503830..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/hosts.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/mutex_instances.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/mutex_instances.frm
deleted file mode 100644
index cca04529d2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/mutex_instances.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/objects_summary_global_by_type.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/objects_summary_global_by_type.frm
deleted file mode 100644
index 2fa0064147..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/objects_summary_global_by_type.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/performance_timers.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/performance_timers.frm
deleted file mode 100644
index f7e1660bfc..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/performance_timers.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/rwlock_instances.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/rwlock_instances.frm
deleted file mode 100644
index 135277b762..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/rwlock_instances.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_account_connect_attrs.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_account_connect_attrs.frm
deleted file mode 100644
index d73a80e510..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_account_connect_attrs.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_connect_attrs.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_connect_attrs.frm
deleted file mode 100644
index 31c74757c0..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/session_connect_attrs.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_actors.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_actors.frm
deleted file mode 100644
index 276443fc21..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_actors.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_consumers.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_consumers.frm
deleted file mode 100644
index 80f6dd0766..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_consumers.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_instruments.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_instruments.frm
deleted file mode 100644
index fd83053749..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_instruments.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_objects.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_objects.frm
deleted file mode 100644
index 89ae59bb69..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_objects.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_timers.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_timers.frm
deleted file mode 100644
index 7058356474..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/setup_timers.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_instances.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_instances.frm
deleted file mode 100644
index 20963dc4db..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_instances.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_event_name.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_event_name.frm
deleted file mode 100644
index 739b5d5308..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_event_name.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_instance.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_instance.frm
deleted file mode 100644
index 649c26f176..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/socket_summary_by_instance.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_index_usage.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_index_usage.frm
deleted file mode 100644
index 0fb793b39b..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_index_usage.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_table.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_table.frm
deleted file mode 100644
index ffe51b38f7..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_io_waits_summary_by_table.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_lock_waits_summary_by_table.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_lock_waits_summary_by_table.frm
deleted file mode 100644
index e771595e4f..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/table_lock_waits_summary_by_table.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/threads.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/threads.frm
deleted file mode 100644
index 121dfd3dce..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/threads.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/users.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/users.frm
deleted file mode 100644
index 6bb88f3e0c..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/performance_schema/users.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db.opt b/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db.opt
deleted file mode 100644
index d8429c4e0d..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db.opt
+++ /dev/null
@@ -1,2 +0,0 @@
-default-character-set=latin1
-default-collation=latin1_swedish_ci
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.frm b/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.frm
deleted file mode 100644
index 29d4a206f2..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.frm
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.ibd b/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.ibd
deleted file mode 100644
index c331218a4a..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/support/db_version.ibd
+++ /dev/null
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/mariadb/data/xacml/db.opt b/kubernetes/config/docker/init/src/config/policy/mariadb/data/xacml/db.opt
deleted file mode 100644
index d8429c4e0d..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/mariadb/data/xacml/db.opt
+++ /dev/null
@@ -1,2 +0,0 @@
-default-character-set=latin1
-default-collation=latin1_swedish_ci
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/push-policies.sh b/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/push-policies.sh
deleted file mode 100644
index 7a71639595..0000000000
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/push-policies.sh
+++ /dev/null
@@ -1,121 +0,0 @@
-#! /bin/bash
-
-
-echo "Pushing default policies"
-
-# Sometimes brmsgw gets an error when trying to retrieve the policies on initial push,
-# so for the BRMS policies we will do a push, then delete from the pdp group, then push again.
-# Second push should be successful.
-
-echo "pushPolicy : PUT : com.vFirewall"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.vFirewall",
- "policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.vLoadBalancer"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.vLoadBalancer",
- "policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.BRMSParamvLBDemoPolicy"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.BRMSParamvLBDemoPolicy",
- "policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.BRMSParamvFWDemoPolicy"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.BRMSParamvFWDemoPolicy",
- "policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "deletePolicy : DELETE : com.vFirewall"
-curl -v --silent -X DELETE --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
-"pdpGroup": "default",
-"policyComponent": "PDP",
-"policyName": "com.vFirewall",
-"policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/deletePolicy'
-
-
-sleep 2
-
-echo "deletePolicy : DELETE : com.vLoadBalancer"
-curl -v --silent -X DELETE --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
-"pdpGroup": "default",
-"policyComponent": "PDP",
-"policyName": "com.vLoadBalancer",
-"policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/deletePolicy'
-
-sleep 2
-
-echo "deletePolicy : DELETE : com.BRMSParamvFWDemoPolicy"
-curl -v --silent -X DELETE --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
-"pdpGroup": "default",
-"policyComponent": "PDP",
-"policyName": "com.BRMSParamvFWDemoPolicy",
-"policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/deletePolicy'
-
-
-sleep 2
-
-echo "deletePolicy : DELETE : com.BRMSParamvLBDemoPolicy"
-curl -v --silent -X DELETE --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
-"pdpGroup": "default",
-"policyComponent": "PDP",
-"policyName": "com.BRMSParamvLBDemoPolicy",
-"policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/deletePolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.vFirewall"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.vFirewall",
- "policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.vLoadBalancer"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.vLoadBalancer",
- "policyType": "MicroService"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.BRMSParamvLBDemoPolicy"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.BRMSParamvLBDemoPolicy",
- "policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
-sleep 2
-
-echo "pushPolicy : PUT : com.BRMSParamvFWDemoPolicy"
-curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
- "pdpGroup": "default",
- "policyName": "com.BRMSParamvFWDemoPolicy",
- "policyType": "BRMS_Param"
-}' 'http://pdp.onap-policy:8081/pdp/api/pushPolicy'
-
diff --git a/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py b/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py
index 387a14451d..1b96b3a001 100755
--- a/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py
+++ b/kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py
@@ -1,77 +1,77 @@
# File generated from /opt/config
#
-GLOBAL_INJECTED_AAI1_IP_ADDR = "aai-service.onap-aai"
+GLOBAL_INJECTED_AAI1_IP_ADDR = "aai-service.namespace-placeholder"
GLOBAL_INJECTED_AAI2_IP_ADDR = "N/A"
-GLOBAL_INJECTED_APPC_IP_ADDR = "sdnhost.onap-appc"
+GLOBAL_INJECTED_APPC_IP_ADDR = "appc-sdnhost.namespace-placeholder"
GLOBAL_INJECTED_ARTIFACTS_VERSION = "1.1.0-SNAPSHOT"
-GLOBAL_INJECTED_CLAMP_IP_ADDR = "clamp.onap-clamp"
+GLOBAL_INJECTED_CLAMP_IP_ADDR = "clamp.namespace-placeholder"
GLOBAL_INJECTED_CLOUD_ENV = "openstack"
-GLOBAL_INJECTED_DCAE_IP_ADDR = "dcae-controller.onap-dcae"
+GLOBAL_INJECTED_DCAE_IP_ADDR = "dcae-controller.namespace-placeholder"
GLOBAL_INJECTED_DNS_IP_ADDR = "10.0.100.1"
GLOBAL_INJECTED_DOCKER_VERSION = "1.1-STAGING-latest"
#GLOBAL_INJECTED_EXTERNAL_DNS = "N/A"
GLOBAL_INJECTED_GERRIT_BRANCH = "master"
GLOBAL_INJECTED_KEYSTONE = "OPENSTACK_KEYSTONE_IP_HERE"
-GLOBAL_INJECTED_MR_IP_ADDR = "dmaap.onap-message-router"
-GLOBAL_INJECTED_MSO_IP_ADDR = "mso.onap-mso"
+GLOBAL_INJECTED_MR_IP_ADDR = "dmaap.namespace-placeholder"
+GLOBAL_INJECTED_MSO_IP_ADDR = "mso.namespace-placeholder"
GLOBAL_INJECTED_NETWORK = "OPENSTACK_NETWORK_ID_WITH_ONAP_ROUTE_HERE"
GLOBAL_INJECTED_NEXUS_DOCKER_REPO = "nexus3.onap.org:10001"
GLOBAL_INJECTED_NEXUS_PASSWORD = "docker"
GLOBAL_INJECTED_NEXUS_REPO = "https://nexus.onap.org/content/sites/raw"
GLOBAL_INJECTED_NEXUS_USERNAME = "docker"
-GLOBAL_INJECTED_OPENO_IP_ADDR = "msb-iag.onap-msb"
+GLOBAL_INJECTED_OPENO_IP_ADDR = "msb-iag.namespace-placeholder"
GLOBAL_INJECTED_OPENSTACK_PASSWORD = "OPENSTACK_PASSWORD_HERE"
GLOBAL_INJECTED_OPENSTACK_TENANT_ID = "OPENSTACK_TENANT_ID_HERE"
GLOBAL_INJECTED_OPENSTACK_USERNAME = "OPENSTACK_USERNAME_HERE"
-GLOBAL_INJECTED_POLICY_IP_ADDR = "pypdp.onap-policy"
-GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR = "drools.onap-policy"
-GLOBAL_INJECTED_PORTAL_IP_ADDR = "portalapps.onap-portal"
+GLOBAL_INJECTED_POLICY_IP_ADDR = "pypdp.namespace-placeholder"
+GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR = "drools.namespace-placeholder"
+GLOBAL_INJECTED_PORTAL_IP_ADDR = "portalapps.namespace-placeholder"
GLOBAL_INJECTED_REGION = "OPENSTACK_REGION_HERE"
GLOBAL_INJECTED_REMOTE_REPO = "http://gerrit.onap.org/r/testsuite/properties.git"
-GLOBAL_INJECTED_SDC_IP_ADDR = "sdc-be.onap-sdc"
-GLOBAL_INJECTED_SDC_FE_IP_ADDR = "sdc-fe.onap-sdc"
-GLOBAL_INJECTED_SDC_BE_IP_ADDR = "sdc-be.onap-sdc"
-GLOBAL_INJECTED_SDNC_IP_ADDR = "sdnhost.onap-sdnc"
-GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR = "sdnc-portal.onap-sdnc"
-GLOBAL_INJECTED_SO_IP_ADDR = "mso.onap-mso"
-GLOBAL_INJECTED_VID_IP_ADDR = "vid-server.onap-vid"
+GLOBAL_INJECTED_SDC_IP_ADDR = "sdc-be.namespace-placeholder"
+GLOBAL_INJECTED_SDC_FE_IP_ADDR = "sdc-fe.namespace-placeholder"
+GLOBAL_INJECTED_SDC_BE_IP_ADDR = "sdc-be.namespace-placeholder"
+GLOBAL_INJECTED_SDNC_IP_ADDR = "sdnhost.namespace-placeholder"
+GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR = "sdnc-portal.namespace-placeholder"
+GLOBAL_INJECTED_SO_IP_ADDR = "mso.namespace-placeholder"
+GLOBAL_INJECTED_VID_IP_ADDR = "vid-server.namespace-placeholder"
GLOBAL_INJECTED_VM_FLAVOR = "OPENSTACK_FLAVOUR_MEDIUM_HERE"
GLOBAL_INJECTED_VM_IMAGE_NAME = "UBUNTU_14_IMAGE_NAME_HERE"
GLOBAL_INJECTED_PUBLIC_NET_ID = "OPENSTACK_PUBLIC_NET_ID_HERE"
GLOBAL_INJECTED_PROPERTIES = {
- "GLOBAL_INJECTED_AAI1_IP_ADDR" : "aai-service.onap-aai",
- "GLOBAL_INJECTED_APPC_IP_ADDR" : "sdnhost.onap-appc",
+ "GLOBAL_INJECTED_AAI1_IP_ADDR" : "aai-service.namespace-placeholder",
+ "GLOBAL_INJECTED_APPC_IP_ADDR" : "appc-sdnhost.namespace-placeholder",
"GLOBAL_INJECTED_ARTIFACTS_VERSION" : "1.1.0-SNAPSHOT",
- "GLOBAL_INJECTED_CLAMP_IP_ADDR" : "clamp.onap-clamp",
+ "GLOBAL_INJECTED_CLAMP_IP_ADDR" : "clamp.namespace-placeholder",
"GLOBAL_INJECTED_CLOUD_ENV" : "openstack",
- "GLOBAL_INJECTED_DCAE_IP_ADDR" : "dcae-controller.onap-dcae",
+ "GLOBAL_INJECTED_DCAE_IP_ADDR" : "dcae-controller.namespace-placeholder",
"GLOBAL_INJECTED_DNS_IP_ADDR" : "10.0.100.1",
"GLOBAL_INJECTED_DOCKER_VERSION" : "1.1-STAGING-latest",
"GLOBAL_INJECTED_GERRIT_BRANCH" : "master",
"GLOBAL_INJECTED_KEYSTONE" : "OPENSTACK_KEYSTONE_IP_HERE",
- "GLOBAL_INJECTED_MR_IP_ADDR" : "dmaap.onap-message-router",
- "GLOBAL_INJECTED_MSO_IP_ADDR" : "mso.onap-mso",
+ "GLOBAL_INJECTED_MR_IP_ADDR" : "dmaap.namespace-placeholder",
+ "GLOBAL_INJECTED_MSO_IP_ADDR" : "mso.namespace-placeholder",
"GLOBAL_INJECTED_NETWORK" : "OPENSTACK_NETWORK_ID_WITH_ONAP_ROUTE_HERE",
"GLOBAL_INJECTED_NEXUS_DOCKER_REPO" : "nexus3.onap.org:10001",
"GLOBAL_INJECTED_NEXUS_PASSWORD" : "docker",
"GLOBAL_INJECTED_NEXUS_REPO" : "https://nexus.onap.org/content/sites/raw",
"GLOBAL_INJECTED_NEXUS_USERNAME" : "docker",
- "GLOBAL_INJECTED_OPENO_IP_ADDR" : "msb-iag.onap-msb",
+ "GLOBAL_INJECTED_OPENO_IP_ADDR" : "msb-iag.namespace-placeholder",
"GLOBAL_INJECTED_OPENSTACK_PASSWORD" : "OPENSTACK_PASSWORD_HERE",
"GLOBAL_INJECTED_OPENSTACK_TENANT_ID" : "OPENSTACK_TENANT_ID_HERE",
"GLOBAL_INJECTED_OPENSTACK_USERNAME" : "OPENSTACK_USERNAME_HERE",
- "GLOBAL_INJECTED_POLICY_IP_ADDR" : "pypdp.onap-policy",
- "GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR" : "drools.onap-policy",
- "GLOBAL_INJECTED_PORTAL_IP_ADDR" : "portalapps.onap-portal",
+ "GLOBAL_INJECTED_POLICY_IP_ADDR" : "pypdp.namespace-placeholder",
+ "GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR" : "drools.namespace-placeholder",
+ "GLOBAL_INJECTED_PORTAL_IP_ADDR" : "portalapps.namespace-placeholder",
"GLOBAL_INJECTED_REGION" : "OPENSTACK_REGION_HERE",
"GLOBAL_INJECTED_REMOTE_REPO" : "http://gerrit.onap.org/r/testsuite/properties.git",
- "GLOBAL_INJECTED_SDC_FE_IP_ADDR" : "sdc-fe.onap-sdc",
- "GLOBAL_INJECTED_SDC_BE_IP_ADDR" : "sdc-be.onap-sdc",
- "GLOBAL_INJECTED_SDNC_IP_ADDR" : "sdnhost.onap-sdnc",
- "GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR" : "sdnc-portal.onap-sdnc",
- "GLOBAL_INJECTED_SO_IP_ADDR" : "mso.onap-mso",
- "GLOBAL_INJECTED_VID_IP_ADDR" : "vid-server.onap-vid",
+ "GLOBAL_INJECTED_SDC_FE_IP_ADDR" : "sdc-fe.namespace-placeholder",
+ "GLOBAL_INJECTED_SDC_BE_IP_ADDR" : "sdc-be.namespace-placeholder",
+ "GLOBAL_INJECTED_SDNC_IP_ADDR" : "sdnhost.namespace-placeholder",
+ "GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR" : "sdnc-portal.namespace-placeholder",
+ "GLOBAL_INJECTED_SO_IP_ADDR" : "mso.namespace-placeholder",
+ "GLOBAL_INJECTED_VID_IP_ADDR" : "vid-server.namespace-placeholder",
"GLOBAL_INJECTED_VM_FLAVOR" : "OPENSTACK_FLAVOUR_MEDIUM_HERE",
"GLOBAL_INJECTED_VM_IMAGE_NAME" : "UBUNTU_14_IMAGE_NAME_HERE",
"GLOBAL_INJECTED_PUBLIC_NET_ID" : "OPENSTACK_PUBLIC_NET_ID_HERE"
diff --git a/kubernetes/config/onap-parameters.yaml b/kubernetes/config/onap-parameters.yaml
index 6f84d0f354..3910b60786 100644
--- a/kubernetes/config/onap-parameters.yaml
+++ b/kubernetes/config/onap-parameters.yaml
@@ -12,4 +12,4 @@ OPENSTACK_KEYSTONE_URL: ""
OPENSTACK_FLAVOUR_MEDIUM: ""
OPENSTACK_SERVICE_TENANT_NAME: ""
DMAAP_TOPIC: ""
-DEMO_ARTIFACTS_VERSION: "" \ No newline at end of file
+DEMO_ARTIFACTS_VERSION: ""
diff --git a/kubernetes/config/prepull_docker.sh b/kubernetes/config/prepull_docker.sh
index e456c3e016..ef46334197 100755
--- a/kubernetes/config/prepull_docker.sh
+++ b/kubernetes/config/prepull_docker.sh
@@ -101,33 +101,32 @@ do
#parse yaml files
for line in `parse_yaml $filename`
do
- #find all image subtag inside converted values.yaml file's lines
- if echo $line | grep -q $IMAGE_TEXT ; then
- #find imageName inside line
- imageName=`echo $line | awk -F "=" '{print $2}'`
- #remove attional prefix and postfix
- imageNameFinal=`echo "$imageName" | sed -e 's/^"//' -e 's/"$//' `
-
- #check if line contain Version as a subtag in lines if yes then call docker pull with version
- if echo $line | grep -q $IMAGE_VERSION_TEXT ; then
- echo docker pull "$imageNameWithVersion":"$imageNameFinal"
- docker pull $imageNameWithVersion:$imageNameFinal &
- imageNameWithVersion=" "
- else
- #check Version is not in subtag and old scanned value is present then call docker pull without version
- if [ "$imageNameWithVersion" != " " ]; then
- echo docker pull "$imageNameWithVersion"
- docker pull $imageNameWithVersion &
- imageNameWithVersion=$imageNameFinal
+ #skiping commented line
+ if [[ ${line:0:1} != '#' ]]; then
+ #find all image subtag inside converted values.yaml file's lines
+ if echo $line | grep -q $IMAGE_TEXT ; then
+ #find imageName inside line
+ imageName=`echo $line | awk -F "=" '{print $2}'`
+ #remove attional prefix and postfix
+ imageNameFinal=`echo "$imageName" | sed -e 's/^"//' -e 's/"$//' `
+
+ #check if line contain Version as a subtag in lines if yes then call docker pull with version
+ if echo $line | grep -q $IMAGE_VERSION_TEXT ; then
+ echo docker pull "$imageNameWithVersion":"$imageNameFinal"
+ docker pull $imageNameWithVersion:$imageNameFinal &
+ imageNameWithVersion=" "
else
- imageNameWithVersion=$imageNameFinal
+ #check Version is not in subtag and old scanned value is present then call docker pull without version
+ if [ "$imageNameWithVersion" != " " ]; then
+ echo docker pull "$imageNameWithVersion"
+ docker pull $imageNameWithVersion &
+ imageNameWithVersion=$imageNameFinal
+ else
+ imageNameWithVersion=$imageNameFinal
+ fi
fi
fi
-
-
fi
-
-
done
done
# complete processing
diff --git a/kubernetes/config/templates/pod.yaml b/kubernetes/config/templates/pod.yaml
index 217478bb4d..38d27ee6e1 100644
--- a/kubernetes/config/templates/pod.yaml
+++ b/kubernetes/config/templates/pod.yaml
@@ -14,7 +14,7 @@ metadata:
spec:
containers:
- name: {{ .Chart.Name }}
- image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+ image: "{{ .Values.image.repository }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
envFrom:
- configMapRef:
@@ -25,7 +25,7 @@ spec:
fieldRef:
fieldPath: metadata.namespace
- name: NAMESPACE_PREFIX
- value: {{ .Values.nsPrefix }}
+ value: {{ .Values.nsPrefix }}
- name: DOCKER_SHARE_PATH
value: {{ .Values.dockerSharePath }}
volumeMounts:
@@ -35,4 +35,4 @@ spec:
- name: config-init-root
hostPath:
path: {{ .Values.dockerSharePath }}
- restartPolicy: Never \ No newline at end of file
+ restartPolicy: Never
diff --git a/kubernetes/config/values.yaml b/kubernetes/config/values.yaml
index 7cfa985c60..243996d2d7 100644
--- a/kubernetes/config/values.yaml
+++ b/kubernetes/config/values.yaml
@@ -2,7 +2,5 @@
nsPrefix: onap
dockerSharePath: /dockerdata-nfs
image:
- repository: oomk8s/config-init
- #master => Beijing (major release uprev)
- tag: 2.0.0-SNAPSHOT
- pullPolicy: Always \ No newline at end of file
+ repository: oomk8s/config-init:2.0.0-SNAPSHOT
+ pullPolicy: Always
diff --git a/kubernetes/consul/Chart.yaml b/kubernetes/consul/Chart.yaml
index 318234db06..2d2d7ba82c 100644
--- a/kubernetes/consul/Chart.yaml
+++ b/kubernetes/consul/Chart.yaml
@@ -1,4 +1,4 @@
apiVersion: v1
-description: A Helm chart for Consul
+description: ONAP Consul Heath Monitor
name: consul
version: 1.1.0
diff --git a/kubernetes/consul/templates/consul-agent-deployment.yaml b/kubernetes/consul/templates/consul-agent-deployment.yaml
index aa8e096f6a..a2bbe6636f 100644
--- a/kubernetes/consul/templates/consul-agent-deployment.yaml
+++ b/kubernetes/consul/templates/consul-agent-deployment.yaml
@@ -5,8 +5,9 @@ metadata:
labels:
app: consul-agent
name: consul-agent
- namespace: "{{ .Values.nsPrefix }}-consul"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.consulAgentReplicas }}
selector:
matchLabels:
app: consul-agent
@@ -19,7 +20,7 @@ spec:
containers:
- image: "{{ .Values.consulimageRegistry }}:{{ .Values.consuldockerTag }}"
command: ["/usr/local/bin/docker-entrypoint.sh"]
- args: ["agent","-client","0.0.0.0","-enable-script-checks","-join","consul-server.{{ .Values.nsPrefix }}-consul"]
+ args: ["agent","-client","0.0.0.0","-enable-script-checks","-join","consul-server.{{ .Values.nsPrefix }}"]
name: consul-server
volumeMounts:
- mountPath: /consul/config
@@ -28,4 +29,4 @@ spec:
- hostPath:
path: {{ .Values.rootHostPath }}/{{ .Values.nsPrefix }}/consul/consul-agent-config
name: consul-agent-config
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/consul/templates/consul-server-deployment.yaml b/kubernetes/consul/templates/consul-server-deployment.yaml
index a2feb9f6a3..6aafee4cb2 100644
--- a/kubernetes/consul/templates/consul-server-deployment.yaml
+++ b/kubernetes/consul/templates/consul-server-deployment.yaml
@@ -5,9 +5,9 @@ metadata:
labels:
app: consul-server
name: consul-server
- namespace: "{{ .Values.nsPrefix }}-consul"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
- replicas: 3
+ replicas: {{ .Values.consulServerReplicas }}
selector:
matchLabels:
app: consul-server
@@ -20,7 +20,7 @@ spec:
containers:
- image: "{{ .Values.consulimageRegistry }}:{{ .Values.consuldockerTag }}"
command: ["/usr/local/bin/docker-entrypoint.sh"]
- args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect=3","-ui","-join","consul-server.{{ .Values.nsPrefix }}-consul"]
+ args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect=3","-ui","-join","consul-server.{{ .Values.nsPrefix }}"]
name: consul-server
volumeMounts:
- mountPath: /consul/config
@@ -29,4 +29,4 @@ spec:
- hostPath:
path: {{ .Values.rootHostPath }}/{{ .Values.nsPrefix }}/consul/consul-server-config
name: consul-server-config
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/consul/templates/consul-server-service.yaml b/kubernetes/consul/templates/consul-server-service.yaml
index 3dd801664c..a1e0801eab 100644
--- a/kubernetes/consul/templates/consul-server-service.yaml
+++ b/kubernetes/consul/templates/consul-server-service.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: consul-server
name: consul-server
- namespace: "{{ .Values.nsPrefix }}-consul"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: consul-ui
diff --git a/kubernetes/consul/values.yaml b/kubernetes/consul/values.yaml
index 89f3ecd0a7..a6909d7d21 100644
--- a/kubernetes/consul/values.yaml
+++ b/kubernetes/consul/values.yaml
@@ -3,5 +3,7 @@ nodePortPrefix: 302
consuldockerTag: "latest"
rootHostPath: "/dockerdata-nfs"
consulimageRegistry: "docker.io/consul"
+consulAgentReplicas: 1
+consulServerReplicas: 3
service:
type: NodePort
diff --git a/kubernetes/dcae/templates/all-services.yaml b/kubernetes/dcae/templates/all-services.yaml
index b0170734dd..9423e43560 100644
--- a/kubernetes/dcae/templates/all-services.yaml
+++ b/kubernetes/dcae/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: zookeeper
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: zookeeper
spec:
@@ -20,7 +20,7 @@ apiVersion: v1
kind: Service
metadata:
name: kafka
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: kafka
spec:
@@ -37,7 +37,7 @@ apiVersion: v1
kind: Service
metadata:
name: dmaap
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: dmaap
version: 1.1.0
@@ -60,7 +60,7 @@ apiVersion: v1
kind: Service
metadata:
name: zldciad4vipstg00
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: dcae-pgaas
spec:
@@ -82,7 +82,7 @@ metadata:
app: dcae-collector-common-event
version: latest
name: dcae-collector-common-event
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: dcae-ce1
@@ -110,7 +110,7 @@ metadata:
app: dcae-collector-dmaapbc
version: latest
name: dcae-collector-dmaapbc
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: dcae-bc1
diff --git a/kubernetes/dcae/templates/cdap0-dep.yaml b/kubernetes/dcae/templates/cdap0-dep.yaml
index 37d7d58a16..208e1ef9a5 100644
--- a/kubernetes/dcae/templates/cdap0-dep.yaml
+++ b/kubernetes/dcae/templates/cdap0-dep.yaml
@@ -7,7 +7,7 @@ metadata:
labels:
app: cdap0
name: cdap0
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
diff --git a/kubernetes/dcae/templates/cdap1-dep.yaml b/kubernetes/dcae/templates/cdap1-dep.yaml
index 7529777038..8aa7721a0d 100644
--- a/kubernetes/dcae/templates/cdap1-dep.yaml
+++ b/kubernetes/dcae/templates/cdap1-dep.yaml
@@ -7,7 +7,7 @@ metadata:
labels:
app: cdap1
name: cdap1
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
diff --git a/kubernetes/dcae/templates/cdap2-dep.yaml b/kubernetes/dcae/templates/cdap2-dep.yaml
index d146894e56..119b8ff32c 100644
--- a/kubernetes/dcae/templates/cdap2-dep.yaml
+++ b/kubernetes/dcae/templates/cdap2-dep.yaml
@@ -7,7 +7,7 @@ metadata:
labels:
app: cdap2
name: cdap2
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
diff --git a/kubernetes/dcae/templates/dcae-collector-common-event.yaml b/kubernetes/dcae/templates/dcae-collector-common-event.yaml
index aa51f140ff..a370151695 100644
--- a/kubernetes/dcae/templates/dcae-collector-common-event.yaml
+++ b/kubernetes/dcae/templates/dcae-collector-common-event.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: dcae-collector-common-event
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -37,4 +37,4 @@ spec:
path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/common-event/config
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml b/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml
index 5de893b867..85f671e998 100644
--- a/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml
+++ b/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: dcae-collector-dmaapbc
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -36,4 +36,4 @@ spec:
path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/dmaapbc/config
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-controller.yaml b/kubernetes/dcae/templates/dcae-controller.yaml
index 30f3afb907..e4642c93ef 100644
--- a/kubernetes/dcae/templates/dcae-controller.yaml
+++ b/kubernetes/dcae/templates/dcae-controller.yaml
@@ -6,7 +6,7 @@ metadata:
app: dcae-controller
version: latest
name: dcae-controller
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: dcae-con1
@@ -27,7 +27,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: dcae-controller
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -60,4 +60,4 @@ spec:
path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/dcae-controller/config
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-dmaap.yaml b/kubernetes/dcae/templates/dcae-dmaap.yaml
index 46c2e65b46..85453119a6 100644
--- a/kubernetes/dcae/templates/dcae-dmaap.yaml
+++ b/kubernetes/dcae/templates/dcae-dmaap.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: dmaap
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
diff --git a/kubernetes/dcae/templates/dcae-kafka.yaml b/kubernetes/dcae/templates/dcae-kafka.yaml
index de18137235..d2652721a1 100644
--- a/kubernetes/dcae/templates/dcae-kafka.yaml
+++ b/kubernetes/dcae/templates/dcae-kafka.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: kafka
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -42,7 +42,7 @@ spec:
periodSeconds: 10
env:
- name: KAFKA_ZOOKEEPER_CONNECT
- value: "zookeeper.{{ .Values.nsPrefix }}-dcae:2181"
+ value: "zookeeper.{{ .Values.nsPrefix }}"
- name: KAFKA_ADVERTISED_HOST_NAME
value: "kafka"
- name: KAFKA_BROKER_ID
diff --git a/kubernetes/dcae/templates/dcae-zookeeper.yaml b/kubernetes/dcae/templates/dcae-zookeeper.yaml
index 189a03952d..9c2d8c7eba 100644
--- a/kubernetes/dcae/templates/dcae-zookeeper.yaml
+++ b/kubernetes/dcae/templates/dcae-zookeeper.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: zookeeper
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -30,4 +30,4 @@ spec:
path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dcae-startup-vm-message-router/docker_files/data-zookeeper
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/dcae/templates/pgaas.yaml b/kubernetes/dcae/templates/pgaas.yaml
index 788de60231..16abade9ea 100644
--- a/kubernetes/dcae/templates/pgaas.yaml
+++ b/kubernetes/dcae/templates/pgaas.yaml
@@ -7,7 +7,7 @@ metadata:
labels:
app: dcae-pgaas
name: dcae-pgaas
- namespace: "{{ .Values.nsPrefix }}-dcae"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: 1
selector:
@@ -46,4 +46,4 @@ spec:
path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/pgaas/tools
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/dcae/values.yaml b/kubernetes/dcae/values.yaml
index ae41f83248..87552927ec 100644
--- a/kubernetes/dcae/values.yaml
+++ b/kubernetes/dcae/values.yaml
@@ -2,7 +2,7 @@ nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
image:
- readiness: oomk8s/readiness-check:1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
pgaas: oomk8s/pgaas:1
cdapfs: oomk8s/cdap-fs:1.0.0
cdap: oomk8s/cdap:1.0.7
diff --git a/kubernetes/dcaegen2/templates/pod.yaml b/kubernetes/dcaegen2/templates/pod.yaml
index ffb3716ecf..1cf5d9b08d 100644
--- a/kubernetes/dcaegen2/templates/pod.yaml
+++ b/kubernetes/dcaegen2/templates/pod.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Pod
metadata:
name: {{ .Chart.Name }}
- namespace: "{{ .Values.nsPrefix }}-dcaegen2"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
containers:
- name: {{ .Chart.Name }}
@@ -27,4 +27,4 @@ spec:
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
restartPolicy: Never
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/esr/templates/all-services.yaml b/kubernetes/esr/templates/all-services.yaml
index 68f0db7516..5fbb70604c 100644
--- a/kubernetes/esr/templates/all-services.yaml
+++ b/kubernetes/esr/templates/all-services.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: esr-esrserver
name: esr-esrserver
- namespace: "{{ .Values.nsPrefix }}-esr"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -14,6 +14,7 @@ metadata:
"url": "/api/aai-esr-server/v1",
"protocol": "REST",
"port": "{{.Values.esrserver.port}}",
+ "enable_ssl": true,
"visualRange":"1"
}
]'
@@ -32,7 +33,7 @@ metadata:
labels:
app: esr-esrgui
name: esr-esrgui
- namespace: "{{ .Values.nsPrefix }}-esr"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
diff --git a/kubernetes/esr/templates/esr-esrgui-deployment.yaml b/kubernetes/esr/templates/esr-esrgui-deployment.yaml
index 6c3ddf404d..f9ec271515 100644
--- a/kubernetes/esr/templates/esr-esrgui-deployment.yaml
+++ b/kubernetes/esr/templates/esr-esrgui-deployment.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: esr-esrgui
name: esr-esrgui
- namespace: "{{ .Values.nsPrefix }}-esr"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -22,7 +22,7 @@ spec:
name: esr-esrgui
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.esrgui.port }}
readinessProbe:
@@ -32,4 +32,4 @@ spec:
periodSeconds: 10
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/esr/templates/esr-esrserver-deployment.yaml b/kubernetes/esr/templates/esr-esrserver-deployment.yaml
index 7724fa0d24..386d4014e4 100644
--- a/kubernetes/esr/templates/esr-esrserver-deployment.yaml
+++ b/kubernetes/esr/templates/esr-esrserver-deployment.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: esr-esrserver
name: esr-esrserver
- namespace: "{{ .Values.nsPrefix }}-esr"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -22,7 +22,7 @@ spec:
name: esr-esrserver
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.esrserver.port }}
readinessProbe:
@@ -32,4 +32,4 @@ spec:
periodSeconds: 10
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/esr/values.yaml b/kubernetes/esr/values.yaml
index 8cdc484ef2..b942672dfb 100644
--- a/kubernetes/esr/values.yaml
+++ b/kubernetes/esr/values.yaml
@@ -1,7 +1,7 @@
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
-msbaddr: msb-iag.onap-msb:80
+msbaddr: msb-iag.{{ .Values.nsPrefix }}:80
esrserver:
image: nexus3.onap.org:10001/onap/aai/esr-server:v1.0.0
port: 9518
diff --git a/kubernetes/kube2msb/Chart.yaml b/kubernetes/kube2msb/Chart.yaml
deleted file mode 100644
index 97a3454337..0000000000
--- a/kubernetes/kube2msb/Chart.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-apiVersion: v1
-description: A Helm chart for Kubernetes
-name: kube2msb-registrator
-version: 0.1.0
diff --git a/kubernetes/kube2msb/values.yaml b/kubernetes/kube2msb/values.yaml
deleted file mode 100644
index 65200c39f1..0000000000
--- a/kubernetes/kube2msb/values.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-nsPrefix: onap
-pullPolicy: IfNotPresent
-image:
- kube2msb: nexus3.onap.org:10001/onap/oom/kube2msb
-kubeMasterUrl: https://kubernetes.default.svc.cluster.local:443
-discoveryUrl: http://msb-discovery.onap-msb:10081
-kubeMasterAuthToken: QmFzaWMgTURrd056VXdSVEk1TVRGRk9UaEVOREJCTWprNlpHTnlaSGt4YzJsSVlsRlVZVU16WTFsUk1XWnZhV0UyY21GRWEwNUhkMDFDVWxORVRIUmlZUT09
diff --git a/kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml b/kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml
index 0b579d0729..f038a10775 100644
--- a/kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml
+++ b/kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml
@@ -86,7 +86,7 @@ network.host: 0.0.0.0
# By default, Elasticsearch will bind to the available loopback addresses and will scan ports 9300 to 9305 to try
# to connect to other nodes running on the same server.
#
-#discovery.zen.ping.unicast.hosts: ["elasticsearch.onap-log"
+#discovery.zen.ping.unicast.hosts: ["elasticsearch.{{.Values.nsPrefix}}"
#$discovery.zen.ping.unicast.hosts
#
# This setting tells Elasticsearch to not elect a master unless there are enough master-eligible nodes
diff --git a/kubernetes/log/resources/kibana/conf/kibana.yml b/kubernetes/log/resources/kibana/conf/kibana.yml
index 3b96bd33c2..df0d71abab 100644
--- a/kubernetes/log/resources/kibana/conf/kibana.yml
+++ b/kubernetes/log/resources/kibana/conf/kibana.yml
@@ -31,8 +31,8 @@ server.name: "Kibana"
# The URL of the Elasticsearch instance to use for all your queries.
# OOM-427, OOM-441 hardcoded onap workspace to avoid helm upgrade past 2.3
-elasticsearch.url: "http://elasticsearch.onap-log:9200"
-#elasticsearch-service.onap-log:9200"
+elasticsearch.url: "http://elasticsearch.{{.Values.nsPrefix}}:9200"
+#elasticsearch-service.{{.Values.nsPrefix}}:9200"
#elasticsearch.url: "http://10.247.47.3:9200"
# When this setting's value is true Kibana uses the hostname specified in the server.host
# setting. When the value of this setting is false, Kibana uses the hostname of the host
diff --git a/kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf b/kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf
index 123ceb5f28..8289b49f6e 100644
--- a/kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf
+++ b/kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf
@@ -225,7 +225,7 @@ output {
#can specify one or a list of hosts. If sniffing is set, one is enough and others will be auto-discovered
##Also protocol can be specified like ["http://10.247.186.12:9200"]
## OOM-427, OOM-441 hardcoded onap workspace to avoid helm upgrade past 2.3
- hosts => ["http://elasticsearch.onap-log:9200"]
+ hosts => ["http://elasticsearch.{{.Values.nsPrefix}}:9200"]
## This setting asks Elasticsearch for the list of all cluster nodes and adds them to the hosts list. Default is false.
diff --git a/kubernetes/log/templates/all-services.yaml b/kubernetes/log/templates/all-services.yaml
index 0885affdcf..a40a4da0e8 100644
--- a/kubernetes/log/templates/all-services.yaml
+++ b/kubernetes/log/templates/all-services.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: elasticsearch
name: elasticsearch
- namespace: {{ .Values.nsPrefix }}-log
+ namespace: {{ .Values.nsPrefix }}
spec:
ports:
- name: http
@@ -20,7 +20,7 @@ apiVersion: v1
kind: Service
metadata:
name: elasticsearchtcp
- namespace: {{ .Values.nsPrefix }}-log
+ namespace: {{ .Values.nsPrefix }}
labels:
app: elasticsearch
spec:
@@ -36,8 +36,23 @@ spec:
apiVersion: v1
kind: Service
metadata:
+ name: logstashinternal
+ namespace: {{ .Values.nsPrefix }}
+ labels:
+ app: logstash
+spec:
+ ports:
+ - name: http
+ port: 9600
+ targetPort: 9600
+ selector:
+ app: logstash
+---
+apiVersion: v1
+kind: Service
+metadata:
name: logstash
- namespace: {{ .Values.nsPrefix }}-log
+ namespace: {{ .Values.nsPrefix }}
labels:
app: logstash
spec:
@@ -56,7 +71,7 @@ metadata:
labels:
app: kibana
name: kibana
- namespace: {{ .Values.nsPrefix }}-log
+ namespace: {{ .Values.nsPrefix }}
spec:
ports:
- name: tcp-ks
diff --git a/kubernetes/log/templates/elasticsearch-deployment.yaml b/kubernetes/log/templates/elasticsearch-deployment.yaml
index 74ab921834..cbc19a8591 100644
--- a/kubernetes/log/templates/elasticsearch-deployment.yaml
+++ b/kubernetes/log/templates/elasticsearch-deployment.yaml
@@ -4,9 +4,10 @@ kind: Deployment
metadata:
labels:
app: elasticsearch
- name: elasticsearch
- namespace: {{ .Values.nsPrefix }}-log
+ name: log-elasticsearch
+ namespace: {{ .Values.nsPrefix }}
spec:
+ replicas: {{ .Values.elasticsearchReplicas }}
selector:
matchLabels:
app: elasticsearch
@@ -14,13 +15,18 @@ spec:
metadata:
labels:
app: elasticsearch
- name: elasticsearch
+ name: log-elasticsearch
spec:
initContainers:
- command:
- - sysctl
- - -w
- - vm.max_map_count=262144
+ - /bin/sh
+ - -c
+ - |
+ sysctl -w vm.max_map_count=262144
+ mkdir -p /logroot/elasticsearch/logs
+ mkdir -p /logroot/elasticsearch/data
+ chmod -R 777 /logroot/elasticsearch
+ chown -R root:root /logroot
env:
- name: NAMESPACE
valueFrom:
@@ -32,6 +38,9 @@ spec:
image: {{ .Values.image.es_bb }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: init-sysctl
+ volumeMounts:
+ - name: elasticsearch-logs
+ mountPath: /logroot/
containers:
- name: elasticsearch
image: {{ .Values.image.elasticsearch}}
@@ -59,10 +68,10 @@ spec:
claimName: elasticsearch-db
- name: elasticsearch-logs
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/elasticsearch/logs
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/log/
- name: elasticsearch-conf
configMap:
- name: elasticsearch-configmap
+ name: log-elasticsearch-configmap
items:
- key: elasticsearch.yml
path: elasticsearch.yml
@@ -70,8 +79,8 @@ spec:
apiVersion: v1
kind: ConfigMap
metadata:
- name: elasticsearch-configmap
- namespace: {{ .Values.nsPrefix }}-log
+ name: log-elasticsearch-configmap
+ namespace: {{ .Values.nsPrefix }}
data:
{{ (.Files.Glob "resources/elasticsearch/conf/elasticsearch.yml").AsConfig | indent 2 }}
#{{ end }}
diff --git a/kubernetes/log/templates/kibana-deployment.yaml b/kubernetes/log/templates/kibana-deployment.yaml
index 2de825e516..6e5c36c993 100644
--- a/kubernetes/log/templates/kibana-deployment.yaml
+++ b/kubernetes/log/templates/kibana-deployment.yaml
@@ -4,9 +4,10 @@ kind: Deployment
metadata:
labels:
app: kibana
- name: kibana
- namespace: {{ .Values.nsPrefix }}-log
+ name: log-kibana
+ namespace: {{ .Values.nsPrefix }}
spec:
+ replicas: {{ .Values.kibanaReplicas }}
selector:
matchLabels:
app: kibana
@@ -14,7 +15,7 @@ spec:
metadata:
labels:
app: kibana
- name: kibana
+ name: log-kibana
spec:
initContainers:
- command:
@@ -47,7 +48,7 @@ spec:
volumes:
- name: kibana-conf
configMap:
- name: kibana-configmap
+ name: log-kibana-configmap
items:
- key: kibana.yml
path: kibana.yml
@@ -55,8 +56,8 @@ spec:
apiVersion: v1
kind: ConfigMap
metadata:
- name: kibana-configmap
- namespace: {{ .Values.nsPrefix }}-log
+ name: log-kibana-configmap
+ namespace: {{ .Values.nsPrefix }}
data:
-{{ (.Files.Glob "resources/kibana/conf/kibana.yml").AsConfig | indent 2 }}
+{{ tpl (.Files.Glob "resources/kibana/conf/kibana.yml").AsConfig . | indent 2 }}
#{{ end }}
diff --git a/kubernetes/log/templates/log-pv-pvc.yaml b/kubernetes/log/templates/log-pv-pvc.yaml
index 4f244718d0..d0176a5462 100644
--- a/kubernetes/log/templates/log-pv-pvc.yaml
+++ b/kubernetes/log/templates/log-pv-pvc.yaml
@@ -2,10 +2,10 @@
apiVersion: v1
kind: PersistentVolume
metadata:
- name: elasticsearch-db
- namespace: "{{ .Values.nsPrefix }}-log"
+ name: {{ .Values.nsPrefix }}-elasticsearch-db
+ namespace: "{{ .Values.nsPrefix }}"
labels:
- name: elasticsearch-db
+ name: {{ .Values.nsPrefix }}-elasticsearch-db
spec:
capacity:
storage: 2Gi
@@ -13,13 +13,13 @@ spec:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/elasticsearch/data
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/log/elasticsearch/data
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: elasticsearch-db
- namespace: "{{ .Values.nsPrefix }}-log"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
accessModes:
- ReadWriteMany
@@ -28,5 +28,5 @@ spec:
storage: 2Gi
selector:
matchLabels:
- name: elasticsearch-db
-#{{ end }} \ No newline at end of file
+ name: {{ .Values.nsPrefix }}-elasticsearch-db
+#{{ end }}
diff --git a/kubernetes/log/templates/logstash-deployment.yaml b/kubernetes/log/templates/logstash-deployment.yaml
index 47c72c8145..1d3b945711 100644
--- a/kubernetes/log/templates/logstash-deployment.yaml
+++ b/kubernetes/log/templates/logstash-deployment.yaml
@@ -4,9 +4,10 @@ kind: Deployment
metadata:
labels:
app: logstash
- name: logstash
- namespace: {{ .Values.nsPrefix }}-log
+ name: log-logstash
+ namespace: {{ .Values.nsPrefix }}
spec:
+ replicas: {{ .Values.logstashReplicas }}
selector:
matchLabels:
app: logstash
@@ -14,7 +15,7 @@ spec:
metadata:
labels:
app: logstash
- name: logstash
+ name: log-logstash
spec:
initContainers:
- command:
@@ -35,9 +36,12 @@ spec:
- name: logstash
image: {{ .Values.image.logstash }}
ports:
- - containerPort: 5044
+ - containerPort: 5044
name: transport
protocol: TCP
+ - containerPort: 9600
+ name: http
+ protocol: TCP
readinessProbe:
tcpSocket:
port: 5044
@@ -49,13 +53,13 @@ spec:
volumes:
- name: logstash-conf
configMap:
- name: logstash-configmap
+ name: log-logstash-configmap
items:
- key: logstash.yml
path: logstash.yml
- name: logstash-pipeline
configMap:
- name: logstash-configmap
+ name: log-logstash-configmap
items:
- key: onap-pipeline.conf
path: onap-pipeline.conf
@@ -64,9 +68,9 @@ spec:
apiVersion: v1
kind: ConfigMap
metadata:
- name: logstash-configmap
- namespace: {{ .Values.nsPrefix }}-log
+ name: log-logstash-configmap
+ namespace: {{ .Values.nsPrefix }}
data:
-{{ (.Files.Glob "resources/logstash/conf/logstash.yml").AsConfig | indent 2 }}
-{{ (.Files.Glob "resources/logstash/pipeline/onap-pipeline.conf").AsConfig | indent 2 }}
+{{ tpl (.Files.Glob "resources/logstash/conf/logstash.yml").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/logstash/pipeline/onap-pipeline.conf").AsConfig . | indent 2 }}
#{{ end }}
diff --git a/kubernetes/log/values.yaml b/kubernetes/log/values.yaml
index 04418302b2..69efa27b3d 100644
--- a/kubernetes/log/values.yaml
+++ b/kubernetes/log/values.yaml
@@ -1,10 +1,13 @@
nsPrefix: onap
-pullPolicy: Always
+pullPolicy: Always
nodePortPrefix: 302
+dataRootDir: /dockerdata-nfs
+elasticsearchReplicas: 1
+kibanaReplicas: 1
+logstashReplicas: 1
image:
- readiness: oomk8s/readiness-check:1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
logstash: docker.elastic.co/logstash/logstash:5.4.3
kibana: docker.elastic.co/kibana/kibana:5.5.0
elasticsearch: docker.elastic.co/elasticsearch/elasticsearch:5.5.0
es_bb: busybox
-
diff --git a/kubernetes/message-router/templates/all-services.yaml b/kubernetes/message-router/templates/all-services.yaml
index e76a1d9431..385b5f472d 100644
--- a/kubernetes/message-router/templates/all-services.yaml
+++ b/kubernetes/message-router/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: zookeeper
- namespace: "{{ .Values.nsPrefix }}-message-router"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: zookeeper
spec:
@@ -20,7 +20,7 @@ apiVersion: v1
kind: Service
metadata:
name: global-kafka
- namespace: "{{ .Values.nsPrefix }}-message-router"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: global-kafka
spec:
@@ -37,7 +37,7 @@ apiVersion: v1
kind: Service
metadata:
name: dmaap
- namespace: "{{ .Values.nsPrefix }}-message-router"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: dmaap
version: 1.0.0
diff --git a/kubernetes/message-router/templates/message-router-dmaap.yaml b/kubernetes/message-router/templates/message-router-dmaap.yaml
index 1d9777e760..cc13a382da 100644
--- a/kubernetes/message-router/templates/message-router-dmaap.yaml
+++ b/kubernetes/message-router/templates/message-router-dmaap.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: dmaap
- namespace: "{{ .Values.nsPrefix }}-message-router"
+ name: message-router-dmaap
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.dmaapReplicas }}
selector:
matchLabels:
app: dmaap
@@ -12,7 +13,7 @@ spec:
metadata:
labels:
app: dmaap
- name: dmaap
+ name: message-router-dmaap
spec:
initContainers:
- command:
@@ -60,13 +61,13 @@ spec:
path: /etc/localtime
- name: appprops
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/message-router/dmaap/MsgRtrApi.properties
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dmaap/MsgRtrApi.properties
- name: cadi
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/message-router/dmaap/cadi.properties
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dmaap/cadi.properties
- name: mykey
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/message-router/dmaap/mykey
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dmaap/mykey
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
{{ end }}
diff --git a/kubernetes/message-router/templates/message-router-kafka.yaml b/kubernetes/message-router/templates/message-router-kafka.yaml
index 509b15fc53..ca38da414f 100644
--- a/kubernetes/message-router/templates/message-router-kafka.yaml
+++ b/kubernetes/message-router/templates/message-router-kafka.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: global-kafka
- namespace: "{{ .Values.nsPrefix }}-message-router"
+ name: message-router-global-kafka
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.kafkaReplicas }}
selector:
matchLabels:
app: global-kafka
@@ -12,7 +13,7 @@ spec:
metadata:
labels:
app: global-kafka
- name: global-kafka
+ name: message-router-global-kafka
spec:
initContainers:
- command:
@@ -42,7 +43,7 @@ spec:
periodSeconds: 10
env:
- name: KAFKA_ZOOKEEPER_CONNECT
- value: "zookeeper.{{ .Values.nsPrefix }}-message-router:2181"
+ value: "zookeeper.{{ .Values.nsPrefix }}:2181"
- name: KAFKA_ADVERTISED_HOST_NAME
value: "global-kafka"
- name: KAFKA_BROKER_ID
diff --git a/kubernetes/message-router/templates/message-router-pv-pvc.yaml b/kubernetes/message-router/templates/message-router-pv-pvc.yaml
index 53329ca29b..1518913f31 100644
--- a/kubernetes/message-router/templates/message-router-pv-pvc.yaml
+++ b/kubernetes/message-router/templates/message-router-pv-pvc.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: PersistentVolume
metadata:
name: "{{ .Values.nsPrefix }}-message-router-kafka"
- namespace: "{{ .Values.nsPrefix }}-message-router"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
name: "{{ .Values.nsPrefix }}-message-router-kafka"
spec:
@@ -13,13 +13,13 @@ spec:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/message-router/dcae-startup-vm-message-router/docker_files/data-kafka/
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dcae-startup-vm-message-router/docker_files/data-kafka/
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: message-router-kafka
- namespace: "{{ .Values.nsPrefix }}-message-router"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
accessModes:
- ReadWriteMany
@@ -36,7 +36,7 @@ apiVersion: v1
kind: PersistentVolume
metadata:
name: "{{ .Values.nsPrefix }}-message-router-zookeeper"
- namespace: "{{ .Values.nsPrefix }}-message-router"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
name: "{{ .Values.nsPrefix }}-message-router-zookeeper"
spec:
@@ -46,13 +46,13 @@ spec:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/message-router/dcae-startup-vm-message-router/docker_files/data-zookeeper
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dcae-startup-vm-message-router/docker_files/data-zookeeper
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: message-router-zookeeper
- namespace: "{{ .Values.nsPrefix }}-message-router"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
accessModes:
- ReadWriteMany
@@ -62,4 +62,4 @@ spec:
selector:
matchLabels:
name: "{{ .Values.nsPrefix }}-message-router-zookeeper"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/message-router/templates/message-router-zookeeper.yaml b/kubernetes/message-router/templates/message-router-zookeeper.yaml
index 47cdb51f2f..0dd8723ef0 100644
--- a/kubernetes/message-router/templates/message-router-zookeeper.yaml
+++ b/kubernetes/message-router/templates/message-router-zookeeper.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: zookeeper
- namespace: "{{ .Values.nsPrefix }}-message-router"
+ name: message-router-zookeeper
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.zookeeperReplicas }}
selector:
matchLabels:
app: zookeeper
@@ -12,7 +13,7 @@ spec:
metadata:
labels:
app: zookeeper
- name: zookeeper
+ name: message-router-zookeeper
spec:
containers:
- image: {{ .Values.image.zookeeper }}
@@ -41,4 +42,4 @@ spec:
claimName: message-router-zookeeper
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/message-router/values.yaml b/kubernetes/message-router/values.yaml
index 92067294f8..bbc95ab718 100644
--- a/kubernetes/message-router/values.yaml
+++ b/kubernetes/message-router/values.yaml
@@ -1,8 +1,12 @@
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+dmaapReplicas: 1
+kafkaReplicas: 1
+zookeeperReplicas: 1
+dataRootDir: /dockerdata-nfs
image:
- readiness: oomk8s/readiness-check:1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
dmaap: attos/dmaap:latest
kafka: wurstmeister/kafka:latest
zookeeper: wurstmeister/zookeeper:latest
diff --git a/kubernetes/mock/templates/all-services.yaml b/kubernetes/mock/templates/all-services.yaml
index a1b0f170de..a457d8ed9c 100644
--- a/kubernetes/mock/templates/all-services.yaml
+++ b/kubernetes/mock/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: sniro-emulator
- namespace: "{{ .Values.nsPrefix }}-mock"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: sniro-emulator
spec:
diff --git a/kubernetes/mock/templates/sniroemulator-deployment.yaml b/kubernetes/mock/templates/sniroemulator-deployment.yaml
index 5a1d483ae1..9397bfd807 100644
--- a/kubernetes/mock/templates/sniroemulator-deployment.yaml
+++ b/kubernetes/mock/templates/sniroemulator-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: sniro-emulator
- namespace: "{{ .Values.nsPrefix }}-mock"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -24,4 +24,4 @@ spec:
args: ["--verbose"]
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/msb/templates/all-services.yaml b/kubernetes/msb/templates/all-services.yaml
index 487347393d..0ae94fc1bc 100644
--- a/kubernetes/msb/templates/all-services.yaml
+++ b/kubernetes/msb/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: msb-consul
- namespace: "{{ .Values.nsPrefix }}-msb"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: msb-consul
spec:
@@ -20,7 +20,7 @@ apiVersion: v1
kind: Service
metadata:
name: msb-discovery
- namespace: "{{ .Values.nsPrefix }}-msb"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: msb-discovery
spec:
@@ -38,13 +38,17 @@ apiVersion: v1
kind: Service
metadata:
name: msb-iag
- namespace: "{{ .Values.nsPrefix }}-msb"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: msb-iag
spec:
ports:
- - port: {{ .Values.iagPort }}
+ - name: http
+ port: {{ .Values.iagPort }}
nodePort: {{ .Values.iagNodePort }}
+ - name: https
+ port: {{ .Values.iagPort_https }}
+ nodePort: {{ .Values.iagNodePort_https }}
selector:
app: msb-iag
type: NodePort
@@ -55,14 +59,18 @@ apiVersion: v1
kind: Service
metadata:
name: msb-eag
- namespace: "{{ .Values.nsPrefix }}-msb"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: msb-eag
spec:
ports:
- - port: {{ .Values.eagPort }}
+ - name: http
+ port: {{ .Values.eagPort }}
nodePort: {{ .Values.eagNodePort }}
+ - name: https
+ port: {{ .Values.eagPort_https }}
+ nodePort: {{ .Values.eagNodePort_https }}
selector:
app: msb-eag
type: NodePort
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/kube2msb/templates/kube2msb-registrator-deployment.yaml b/kubernetes/msb/templates/kube2msb-registrator-deployment.yaml
index 9df3aa8fa5..f95faf69d0 100644
--- a/kubernetes/kube2msb/templates/kube2msb-registrator-deployment.yaml
+++ b/kubernetes/msb/templates/kube2msb-registrator-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: kube2msb-registrator
- namespace: "{{ .Values.nsPrefix }}-kube2msb"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: 1
selector:
@@ -16,6 +16,21 @@ spec:
name: kube2msb-registrator
spec:
hostname: kube2msb-registrator
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - msb-discovery
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: {{ .Values.image.readiness }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: kube2msb-registrator-readiness
containers:
- args:
image: {{ .Values.image.kube2msb }}
@@ -26,8 +41,8 @@ spec:
- name: AUTH_TOKEN
value: {{ .Values.kubeMasterAuthToken }}
- name: MSB_URL
- value: {{ .Values.discoveryUrl }}
+ value: {{tpl $.Values.discoveryUrl .}}
imagePullPolicy: {{ .Values.pullPolicy }}
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/msb/templates/msb-consul-deployment.yaml b/kubernetes/msb/templates/msb-consul-deployment.yaml
index 4d462aa96f..7d7586c5f6 100644
--- a/kubernetes/msb/templates/msb-consul-deployment.yaml
+++ b/kubernetes/msb/templates/msb-consul-deployment.yaml
@@ -3,9 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: msb-consul
- namespace: "{{ .Values.nsPrefix }}-msb"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
- replicas: 1
+ replicas: {{ .Values.msbConsulReplicas }}
selector:
matchLabels:
app: msb-consul
@@ -29,4 +29,4 @@ spec:
initialDelaySeconds: 5
periodSeconds: 10
imagePullPolicy: {{ .Values.pullPolicy }}
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/msb/templates/msb-discovery-deployment.yaml b/kubernetes/msb/templates/msb-discovery-deployment.yaml
index 5f8db61ac5..280e6c39d0 100644
--- a/kubernetes/msb/templates/msb-discovery-deployment.yaml
+++ b/kubernetes/msb/templates/msb-discovery-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: msb-discovery
- namespace: "{{ .Values.nsPrefix }}-msb"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.discoveryReplicas }}
selector:
@@ -16,13 +16,28 @@ spec:
name: msb-discovery
spec:
hostname: msb-discovery
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - msb-consul
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: {{ .Values.image.readiness }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: msb-discovery-readiness
containers:
- args:
image: {{ .Values.image.discovery }}
name: "msb-discovery"
env:
- name: CONSUL_IP
- value: msb-consul.{{ .Values.nsPrefix }}-msb
+ value: msb-consul.{{ .Values.nsPrefix }}
ports:
- containerPort: {{ .Values.discoveryPort }}
name: msb-discovery
@@ -34,4 +49,4 @@ spec:
imagePullPolicy: {{ .Values.pullPolicy }}
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/msb/templates/msb-eag-deployment.yaml b/kubernetes/msb/templates/msb-eag-deployment.yaml
index 714f19b1a5..a24b3b012e 100644
--- a/kubernetes/msb/templates/msb-eag-deployment.yaml
+++ b/kubernetes/msb/templates/msb-eag-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: msb-eag
- namespace: "{{ .Values.nsPrefix }}-msb"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.eagReplicas }}
selector:
@@ -16,15 +16,30 @@ spec:
name: msb-eag
spec:
hostname: msb-eag
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - msb-discovery
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: {{ .Values.image.readiness }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: msb-eag-readiness
containers:
- args:
image: {{ .Values.image.apigateway }}
name: "msb-eag"
env:
- name: CONSUL_IP
- value: msb-consul.{{ .Values.nsPrefix }}-msb
+ value: msb-consul.{{ .Values.nsPrefix }}
- name: SDCLIENT_IP
- value: msb-discovery.{{ .Values.nsPrefix }}-msb
+ value: msb-discovery.{{ .Values.nsPrefix }}
- name: ROUTE_LABELS
value: "visualRange:0"
ports:
@@ -38,4 +53,4 @@ spec:
imagePullPolicy: {{ .Values.pullPolicy}}
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/msb/templates/msb-iag-deployment.yaml b/kubernetes/msb/templates/msb-iag-deployment.yaml
index ca4d5a033f..8a56a5f420 100644
--- a/kubernetes/msb/templates/msb-iag-deployment.yaml
+++ b/kubernetes/msb/templates/msb-iag-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: msb-iag
- namespace: "{{ .Values.nsPrefix }}-msb"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.iagReplicas }}
selector:
@@ -16,15 +16,30 @@ spec:
name: msb-iag
spec:
hostname: msb-iag
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - msb-discovery
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: {{ .Values.image.readiness }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: msb-iag-readiness
containers:
- args:
image: {{ .Values.image.apigateway }}
name: "msb-iag"
env:
- name: CONSUL_IP
- value: msb-consul.{{ .Values.nsPrefix }}-msb
+ value: msb-consul.{{ .Values.nsPrefix }}
- name: SDCLIENT_IP
- value: msb-discovery.{{ .Values.nsPrefix }}-msb
+ value: msb-discovery.{{ .Values.nsPrefix }}
- name: ROUTE_LABELS
value: "visualRange:1"
ports:
@@ -38,4 +53,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy}}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/msb/values.yaml b/kubernetes/msb/values.yaml
index 7c1b16b8dc..10e3be4230 100644
--- a/kubernetes/msb/values.yaml
+++ b/kubernetes/msb/values.yaml
@@ -1,21 +1,31 @@
nsPrefix: onap
pullPolicy: IfNotPresent
image:
+ readiness: oomk8s/readiness-check:1.1.0
consul: consul:0.9.3
- discovery: nexus3.onap.org:10001/onap/msb/msb_discovery:1.0.0
- apigateway: nexus3.onap.org:10001/onap/msb/msb_apigateway:1.0.0
+ discovery: nexus3.onap.org:10001/onap/msb/msb_discovery:1.1.0-SNAPSHOT-latest
+ apigateway: nexus3.onap.org:10001/onap/msb/msb_apigateway:1.1.0-SNAPSHOT-latest
+ kube2msb: nexus3.onap.org:10001/onap/oom/kube2msb
consulPort: 8500
consulNodePort: 30500
+msbConsulReplicas: 1
discoveryPort: 10081
discoveryNodePort: 30081
discoveryReplicas: 1
iagPort: 80
+iagPort_https: 443
iagNodePort: 30080
+iagNodePort_https: 30443
iagReplicas: 1
eagPort: 80
+eagPort_https: 443
eagNodePort: 30082
+eagNodePort_https: 30446
eagReplicas: 1
+
+kubeMasterUrl: https://kubernetes.default.svc.cluster.local:443
+discoveryUrl: http://msb-discovery.{{ .Values.nsPrefix }}:10081
diff --git a/kubernetes/config/docker/init/src/config/mso/docker-files/scripts/start-jboss-server.sh b/kubernetes/mso/resources/config/docker-files/scripts/start-jboss-server.sh
index 3280253743..3280253743 100755
--- a/kubernetes/config/docker/init/src/config/mso/docker-files/scripts/start-jboss-server.sh
+++ b/kubernetes/mso/resources/config/docker-files/scripts/start-jboss-server.sh
diff --git a/kubernetes/mso/resources/config/log/filebeat/filebeat.yml b/kubernetes/mso/resources/config/log/filebeat/filebeat.yml
new file mode 100644
index 0000000000..89c6932577
--- /dev/null
+++ b/kubernetes/mso/resources/config/log/filebeat/filebeat.yml
@@ -0,0 +1,41 @@
+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: ["logstash.{{.Values.nsPrefix}}:5044"]
+ #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/config/docker/init/src/config/log/mso/logback.apihandler-infra.xml b/kubernetes/mso/resources/config/log/logback.apihandler-infra.xml
index 3e0ea61ea6..3e0ea61ea6 100644
--- a/kubernetes/config/docker/init/src/config/log/mso/logback.apihandler-infra.xml
+++ b/kubernetes/mso/resources/config/log/logback.apihandler-infra.xml
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.appc.xml b/kubernetes/mso/resources/config/log/logback.appc.xml
index 588f6f39d2..588f6f39d2 100644
--- a/kubernetes/config/docker/init/src/config/log/mso/logback.appc.xml
+++ b/kubernetes/mso/resources/config/log/logback.appc.xml
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.asdc.xml b/kubernetes/mso/resources/config/log/logback.asdc.xml
index b4879e017f..b4879e017f 100644
--- a/kubernetes/config/docker/init/src/config/log/mso/logback.asdc.xml
+++ b/kubernetes/mso/resources/config/log/logback.asdc.xml
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.bpmn.xml b/kubernetes/mso/resources/config/log/logback.bpmn.xml
index 3bc3ca157b..3bc3ca157b 100644
--- a/kubernetes/config/docker/init/src/config/log/mso/logback.bpmn.xml
+++ b/kubernetes/mso/resources/config/log/logback.bpmn.xml
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.msorequestsdbadapter.xml b/kubernetes/mso/resources/config/log/logback.msorequestsdbadapter.xml
index 64a5022aa6..64a5022aa6 100644
--- a/kubernetes/config/docker/init/src/config/log/mso/logback.msorequestsdbadapter.xml
+++ b/kubernetes/mso/resources/config/log/logback.msorequestsdbadapter.xml
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.network.xml b/kubernetes/mso/resources/config/log/logback.network.xml
index 542a8f6f00..542a8f6f00 100644
--- a/kubernetes/config/docker/init/src/config/log/mso/logback.network.xml
+++ b/kubernetes/mso/resources/config/log/logback.network.xml
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.sdnc.xml b/kubernetes/mso/resources/config/log/logback.sdnc.xml
index 1323a8961d..1323a8961d 100644
--- a/kubernetes/config/docker/init/src/config/log/mso/logback.sdnc.xml
+++ b/kubernetes/mso/resources/config/log/logback.sdnc.xml
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.tenant.xml b/kubernetes/mso/resources/config/log/logback.tenant.xml
index a25c182e97..a25c182e97 100644
--- a/kubernetes/config/docker/init/src/config/log/mso/logback.tenant.xml
+++ b/kubernetes/mso/resources/config/log/logback.tenant.xml
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.vfc.xml b/kubernetes/mso/resources/config/log/logback.vfc.xml
index d0b66be5bb..d0b66be5bb 100644
--- a/kubernetes/config/docker/init/src/config/log/mso/logback.vfc.xml
+++ b/kubernetes/mso/resources/config/log/logback.vfc.xml
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.vnf.xml b/kubernetes/mso/resources/config/log/logback.vnf.xml
index 32f6e69f81..32f6e69f81 100644
--- a/kubernetes/config/docker/init/src/config/log/mso/logback.vnf.xml
+++ b/kubernetes/mso/resources/config/log/logback.vnf.xml
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.workflow-message-adapter.xml b/kubernetes/mso/resources/config/log/logback.workflow-message-adapter.xml
index a7130a103f..a7130a103f 100644
--- a/kubernetes/config/docker/init/src/config/log/mso/logback.workflow-message-adapter.xml
+++ b/kubernetes/mso/resources/config/log/logback.workflow-message-adapter.xml
diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/conf.d/mariadb1.cnf b/kubernetes/mso/resources/config/mariadb/conf.d/mariadb1.cnf
index 39ed022489..39ed022489 100644
--- a/kubernetes/config/docker/init/src/config/mso/mariadb/conf.d/mariadb1.cnf
+++ b/kubernetes/mso/resources/config/mariadb/conf.d/mariadb1.cnf
diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh
index 326f27356c..326f27356c 100644
--- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh
+++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh
diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh
index a163801083..a163801083 100644
--- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh
+++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh
diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql
index 146ad01605..146ad01605 100644
--- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql
+++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql
diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql
index 7d2eed16bd..7d2eed16bd 100644
--- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql
+++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql
diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql
index b5063defda..b5063defda 100644
--- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql
+++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql
diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql
index 15001050b2..15001050b2 100644
--- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql
+++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql
diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql
index b9b8dd62c9..b9b8dd62c9 100644
--- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql
+++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql
diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql
index 3658c6c235..3658c6c235 100644
--- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql
+++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql
diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql
index ca002fbe6b..ca002fbe6b 100644
--- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql
+++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql
diff --git a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql
index f64548e23d..f64548e23d 100644
--- a/kubernetes/config/docker/init/src/config/mso/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql
+++ b/kubernetes/mso/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql
diff --git a/kubernetes/config/docker/init/src/config/mso/mso/aai.crt b/kubernetes/mso/resources/config/mso/aai.crt
index d51c05606e..d51c05606e 100755
--- a/kubernetes/config/docker/init/src/config/mso/mso/aai.crt
+++ b/kubernetes/mso/resources/config/mso/aai.crt
diff --git a/kubernetes/config/docker/init/src/config/mso/mso/encryption.key b/kubernetes/mso/resources/config/mso/encryption.key
index eb52241e7f..eb52241e7f 100644
--- a/kubernetes/config/docker/init/src/config/mso/mso/encryption.key
+++ b/kubernetes/mso/resources/config/mso/encryption.key
diff --git a/kubernetes/mso/resources/config/mso/jboss/standalone-full-ha-mso.xml b/kubernetes/mso/resources/config/mso/jboss/standalone-full-ha-mso.xml
new file mode 100644
index 0000000000..86edeb386a
--- /dev/null
+++ b/kubernetes/mso/resources/config/mso/jboss/standalone-full-ha-mso.xml
@@ -0,0 +1,609 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<server xmlns="urn:jboss:domain:4.2">
+
+ <extensions>
+ <extension module="org.jboss.as.clustering.infinispan"/>
+ <extension module="org.jboss.as.clustering.jgroups"/>
+ <extension module="org.jboss.as.connector"/>
+ <extension module="org.jboss.as.deployment-scanner"/>
+ <extension module="org.jboss.as.ee"/>
+ <extension module="org.jboss.as.ejb3"/>
+ <extension module="org.jboss.as.jaxrs"/>
+ <extension module="org.jboss.as.jdr"/>
+ <extension module="org.jboss.as.jmx"/>
+ <extension module="org.jboss.as.jpa"/>
+ <extension module="org.jboss.as.jsf"/>
+ <extension module="org.jboss.as.jsr77"/>
+ <extension module="org.jboss.as.logging"/>
+ <extension module="org.jboss.as.mail"/>
+ <extension module="org.jboss.as.modcluster"/>
+ <extension module="org.jboss.as.naming"/>
+ <extension module="org.jboss.as.pojo"/>
+ <extension module="org.jboss.as.remoting"/>
+ <extension module="org.jboss.as.sar"/>
+ <extension module="org.jboss.as.security"/>
+ <extension module="org.jboss.as.transactions"/>
+ <extension module="org.jboss.as.webservices"/>
+ <extension module="org.jboss.as.weld"/>
+ <extension module="org.wildfly.extension.batch.jberet"/>
+ <extension module="org.wildfly.extension.bean-validation"/>
+ <extension module="org.wildfly.extension.clustering.singleton"/>
+ <extension module="org.wildfly.extension.io"/>
+ <extension module="org.wildfly.extension.messaging-activemq"/>
+ <extension module="org.wildfly.extension.request-controller"/>
+ <extension module="org.wildfly.extension.security.manager"/>
+ <extension module="org.wildfly.extension.undertow"/>
+ <extension module="org.wildfly.iiop-openjdk"/>
+ </extensions>
+
+
+ <management>
+ <security-realms>
+ <security-realm name="ManagementRealm">
+ <authentication>
+ <local default-user="$local" skip-group-loading="true"/>
+ <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>
+ </authentication>
+ <authorization map-groups-to-roles="false">
+ <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>
+ </authorization>
+ </security-realm>
+ <security-realm name="ApplicationRealm">
+ <server-identities>
+ <ssl>
+ <keystore path="application.keystore" relative-to="jboss.server.config.dir" keystore-password="password" alias="server" key-password="password" generate-self-signed-certificate-host="localhost"/>
+ </ssl>
+ </server-identities>
+ <authentication>
+ <local default-user="$local" allowed-users="*" skip-group-loading="true"/>
+ <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>
+ </authentication>
+ <authorization>
+ <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>
+ </authorization>
+ </security-realm>
+ </security-realms>
+ <audit-log>
+ <formatters>
+ <json-formatter name="json-formatter"/>
+ </formatters>
+ <handlers>
+ <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/>
+ </handlers>
+ <logger log-boot="true" log-read-only="false" enabled="false">
+ <handlers>
+ <handler name="file"/>
+ </handlers>
+ </logger>
+ </audit-log>
+ <management-interfaces>
+ <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true">
+ <socket-binding http="management-http"/>
+ </http-interface>
+ </management-interfaces>
+ <access-control provider="simple">
+ <role-mapping>
+ <role name="SuperUser">
+ <include>
+ <user name="$local"/>
+ </include>
+ </role>
+ </role-mapping>
+ </access-control>
+ </management>
+
+ <profile>
+ <subsystem xmlns="urn:jboss:domain:logging:3.0">
+ <console-handler name="CONSOLE">
+ <level name="INFO"/>
+ <formatter>
+ <named-formatter name="COLOR-PATTERN"/>
+ </formatter>
+ </console-handler>
+ <periodic-rotating-file-handler name="FILE" autoflush="true">
+ <formatter>
+ <named-formatter name="PATTERN"/>
+ </formatter>
+ <file relative-to="jboss.server.log.dir" path="server.log"/>
+ <suffix value=".yyyy-MM-dd"/>
+ <append value="true"/>
+ </periodic-rotating-file-handler>
+ <logger category="com.arjuna">
+ <level name="WARN"/>
+ </logger>
+ <logger category="org.jboss.as.config">
+ <level name="DEBUG"/>
+ </logger>
+ <logger category="sun.rmi">
+ <level name="WARN"/>
+ </logger>
+ <root-logger>
+ <level name="INFO"/>
+ <handlers>
+ <handler name="CONSOLE"/>
+ <handler name="FILE"/>
+ </handlers>
+ </root-logger>
+ <formatter name="PATTERN">
+ <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
+ </formatter>
+ <formatter name="COLOR-PATTERN">
+ <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
+ </formatter>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:batch-jberet:1.0">
+ <default-job-repository name="in-memory"/>
+ <default-thread-pool name="batch"/>
+ <job-repository name="in-memory">
+ <in-memory/>
+ </job-repository>
+ <thread-pool name="batch">
+ <max-threads count="10"/>
+ <keepalive-time time="30" unit="seconds"/>
+ </thread-pool>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:datasources:4.0">
+ <datasources>
+ <datasource jndi-name="java:jboss/datasources/mso-requests" pool-name="mso-requests" enabled="true" use-ccm="true">
+ <connection-url>jdbc:mariadb://mso-mariadb.{{.Values.nsPrefix}}:3306/mso_requests?autoReconnect=true&amp;connectTimeout=60000&amp;socketTimeout=60000</connection-url>
+ <driver>mariadb</driver>
+ <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
+ <pool>
+ <min-pool-size>10</min-pool-size>
+ <max-pool-size>100</max-pool-size>
+ <prefill>true</prefill>
+ <use-strict-min>false</use-strict-min>
+ <flush-strategy>FailingConnectionOnly</flush-strategy>
+ </pool>
+ <security>
+ <user-name>mso</user-name>
+ <password>mso123</password>
+ </security>
+ <validation>
+ <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
+ <validate-on-match>false</validate-on-match>
+ <background-validation>true</background-validation>
+ <background-validation-millis>20000</background-validation-millis>
+ <use-fast-fail>true</use-fast-fail>
+ <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
+ </validation>
+ <timeout>
+ <idle-timeout-minutes>15</idle-timeout-minutes>
+ <query-timeout>30</query-timeout>
+ <allocation-retry>1</allocation-retry>
+ <allocation-retry-wait-millis>3000</allocation-retry-wait-millis>
+ </timeout>
+ </datasource>
+ <datasource jndi-name="java:jboss/datasources/mso-catalog" pool-name="mso-catalog" enabled="true" use-ccm="true">
+ <connection-url>jdbc:mariadb://mso-mariadb.{{.Values.nsPrefix}}:3306/mso_catalog?autoReconnect=true&amp;connectTimeout=60000&amp;socketTimeout=60000</connection-url>
+ <driver>mariadb</driver>
+ <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
+ <pool>
+ <min-pool-size>10</min-pool-size>
+ <max-pool-size>100</max-pool-size>
+ <prefill>true</prefill>
+ <use-strict-min>false</use-strict-min>
+ <flush-strategy>FailingConnectionOnly</flush-strategy>
+ </pool>
+ <security>
+ <user-name>catalog</user-name>
+ <password>catalog123</password>
+ </security>
+ <validation>
+ <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
+ <validate-on-match>false</validate-on-match>
+ <background-validation>true</background-validation>
+ <background-validation-millis>20000</background-validation-millis>
+ <use-fast-fail>true</use-fast-fail>
+ <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
+ </validation>
+ <timeout>
+ <idle-timeout-minutes>15</idle-timeout-minutes>
+ <query-timeout>30</query-timeout>
+ <allocation-retry>1</allocation-retry>
+ <allocation-retry-wait-millis>3000</allocation-retry-wait-millis>
+ </timeout>
+ </datasource>
+ <datasource jta="true" jndi-name="java:jboss/datasources/ProcessEngine" pool-name="ProcessEngine" enabled="true" use-java-context="true" use-ccm="true">
+ <connection-url>jdbc:mariadb://mso-mariadb.{{.Values.nsPrefix}}:3306/camundabpmn?autoReconnect=true&amp;connectTimeout=60000&amp;socketTimeout=60000</connection-url>
+ <driver>mariadb</driver>
+ <new-connection-sql>set autocommit=1</new-connection-sql>
+ <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
+ <pool>
+ <min-pool-size>10</min-pool-size>
+ <max-pool-size>100</max-pool-size>
+ <prefill>true</prefill>
+ <use-strict-min>false</use-strict-min>
+ <flush-strategy>FailingConnectionOnly</flush-strategy>
+ </pool>
+ <security>
+ <user-name>camunda</user-name>
+ <password>camunda123</password>
+ </security>
+ <validation>
+ <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
+ <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
+ </validation>
+ <statement>
+ <prepared-statement-cache-size>32</prepared-statement-cache-size>
+ <share-prepared-statements>true</share-prepared-statements>
+ </statement>
+ </datasource>
+ <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
+ <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
+ <driver>h2</driver>
+ <security>
+ <user-name>sa</user-name>
+ <password>sa</password>
+ </security>
+ </datasource>
+ <drivers>
+ <driver name="h2" module="com.h2database.h2">
+ <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
+ </driver>
+ <driver name="mariadb" module="mariadb">
+ <xa-datasource-class>org.mariadb.jdbc.MySQLDataSource</xa-datasource-class>
+ </driver>
+ </drivers>
+ </datasources>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
+ <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:ee:4.0">
+ <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
+ <concurrent>
+ <context-services>
+ <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/>
+ </context-services>
+ <managed-thread-factories>
+ <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/>
+ </managed-thread-factories>
+ <managed-executor-services>
+ <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" keepalive-time="5000"/>
+ </managed-executor-services>
+ <managed-scheduled-executor-services>
+ <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" keepalive-time="3000"/>
+ </managed-scheduled-executor-services>
+ </concurrent>
+ <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" jms-connection-factory="java:jboss/DefaultJMSConnectionFactory" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:ejb3:4.0">
+ <session-bean>
+ <stateless>
+ <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
+ </stateless>
+ <stateful default-access-timeout="5000" cache-ref="distributable" passivation-disabled-cache-ref="simple"/>
+ <singleton default-access-timeout="5000"/>
+ </session-bean>
+ <mdb>
+ <resource-adapter-ref resource-adapter-name="${ejb.resource-adapter-name:activemq-ra.rar}"/>
+ <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
+ </mdb>
+ <pools>
+ <bean-instance-pools>
+ <strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
+ <strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
+ </bean-instance-pools>
+ </pools>
+ <caches>
+ <cache name="simple"/>
+ <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/>
+ </caches>
+ <passivation-stores>
+ <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/>
+ </passivation-stores>
+ <async thread-pool-name="default"/>
+ <timer-service thread-pool-name="default" default-data-store="default-file-store">
+ <data-stores>
+ <file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/>
+ </data-stores>
+ </timer-service>
+ <remote connector-ref="http-remoting-connector" thread-pool-name="default"/>
+ <thread-pools>
+ <thread-pool name="default">
+ <max-threads count="10"/>
+ <keepalive-time time="100" unit="milliseconds"/>
+ </thread-pool>
+ </thread-pools>
+ <iiop enable-by-default="false" use-qualified-name="false"/>
+ <default-security-domain value="other"/>
+ <default-missing-method-permissions-deny-access value="true"/>
+ <log-system-exceptions value="true"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:io:1.1">
+ <worker name="default"/>
+ <buffer-pool name="default"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:infinispan:4.0">
+ <cache-container name="server" aliases="singleton cluster" default-cache="default" module="org.wildfly.clustering.server">
+ <transport lock-timeout="60000"/>
+ <replicated-cache name="default" mode="SYNC">
+ <transaction mode="BATCH"/>
+ </replicated-cache>
+ </cache-container>
+ <cache-container name="web" default-cache="dist" module="org.wildfly.clustering.web.infinispan">
+ <transport lock-timeout="60000"/>
+ <distributed-cache name="dist" mode="ASYNC" l1-lifespan="0" owners="2">
+ <locking isolation="REPEATABLE_READ"/>
+ <transaction mode="BATCH"/>
+ <file-store/>
+ </distributed-cache>
+ <distributed-cache name="concurrent" mode="SYNC" l1-lifespan="0" owners="2">
+ <file-store/>
+ </distributed-cache>
+ </cache-container>
+ <cache-container name="ejb" aliases="sfsb" default-cache="dist" module="org.wildfly.clustering.ejb.infinispan">
+ <transport lock-timeout="60000"/>
+ <distributed-cache name="dist" mode="ASYNC" l1-lifespan="0" owners="2">
+ <locking isolation="REPEATABLE_READ"/>
+ <transaction mode="BATCH"/>
+ <file-store/>
+ </distributed-cache>
+ </cache-container>
+ <cache-container name="hibernate" default-cache="local-query" module="org.hibernate.infinispan">
+ <transport lock-timeout="60000"/>
+ <local-cache name="local-query">
+ <eviction strategy="LRU" max-entries="10000"/>
+ <expiration max-idle="100000"/>
+ </local-cache>
+ <invalidation-cache name="entity" mode="SYNC">
+ <transaction mode="NON_XA"/>
+ <eviction strategy="LRU" max-entries="10000"/>
+ <expiration max-idle="100000"/>
+ </invalidation-cache>
+ <replicated-cache name="timestamps" mode="ASYNC"/>
+ </cache-container>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:iiop-openjdk:1.0">
+ <orb socket-binding="iiop" ssl-socket-binding="iiop-ssl"/>
+ <initializers security="identity" transactions="spec"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:jca:4.0">
+ <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>
+ <bean-validation enabled="true"/>
+ <default-workmanager>
+ <short-running-threads>
+ <core-threads count="50"/>
+ <queue-length count="50"/>
+ <max-threads count="50"/>
+ <keepalive-time time="10" unit="seconds"/>
+ </short-running-threads>
+ <long-running-threads>
+ <core-threads count="50"/>
+ <queue-length count="50"/>
+ <max-threads count="50"/>
+ <keepalive-time time="10" unit="seconds"/>
+ </long-running-threads>
+ </default-workmanager>
+ <cached-connection-manager/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:jdr:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:jgroups:4.0">
+ <channels default="ee">
+ <channel name="ee" stack="udp"/>
+ </channels>
+ <stacks>
+ <stack name="udp">
+ <transport type="UDP" socket-binding="jgroups-udp"/>
+ <protocol type="PING"/>
+ <protocol type="MERGE3"/>
+ <protocol type="FD_SOCK" socket-binding="jgroups-udp-fd"/>
+ <protocol type="FD_ALL"/>
+ <protocol type="VERIFY_SUSPECT"/>
+ <protocol type="pbcast.NAKACK2"/>
+ <protocol type="UNICAST3"/>
+ <protocol type="pbcast.STABLE"/>
+ <protocol type="pbcast.GMS"/>
+ <protocol type="UFC"/>
+ <protocol type="MFC"/>
+ <protocol type="FRAG2"/>
+ </stack>
+ <stack name="tcp">
+ <transport type="TCP" socket-binding="jgroups-tcp"/>
+ <protocol type="MPING" socket-binding="jgroups-mping"/>
+ <protocol type="MERGE3"/>
+ <protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/>
+ <protocol type="FD"/>
+ <protocol type="VERIFY_SUSPECT"/>
+ <protocol type="pbcast.NAKACK2"/>
+ <protocol type="UNICAST3"/>
+ <protocol type="pbcast.STABLE"/>
+ <protocol type="pbcast.GMS"/>
+ <protocol type="MFC"/>
+ <protocol type="FRAG2"/>
+ </stack>
+ </stacks>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:jmx:1.3">
+ <expose-resolved-model/>
+ <expose-expression-model/>
+ <remoting-connector/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:jpa:1.1">
+ <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:jsf:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:jsr77:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:mail:2.0">
+ <mail-session name="default" jndi-name="java:jboss/mail/Default">
+ <smtp-server outbound-socket-binding-ref="mail-smtp"/>
+ </mail-session>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0">
+ <server name="default">
+ <cluster password="${jboss.messaging.cluster.password:CHANGE ME!!}"/>
+ <security-setting name="#">
+ <role name="guest" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/>
+ </security-setting>
+ <address-setting name="#" dead-letter-address="jms.queue.DLQ" expiry-address="jms.queue.ExpiryQueue" max-size-bytes="10485760" page-size-bytes="2097152" message-counter-history-day-limit="10" redistribution-delay="1000"/>
+ <http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/>
+ <http-connector name="http-connector-throughput" socket-binding="http" endpoint="http-acceptor-throughput">
+ <param name="batch-delay" value="50"/>
+ </http-connector>
+ <in-vm-connector name="in-vm" server-id="0"/>
+ <http-acceptor name="http-acceptor" http-listener="default"/>
+ <http-acceptor name="http-acceptor-throughput" http-listener="default">
+ <param name="batch-delay" value="50"/>
+ <param name="direct-deliver" value="false"/>
+ </http-acceptor>
+ <in-vm-acceptor name="in-vm" server-id="0"/>
+ <broadcast-group name="bg-group1" jgroups-channel="activemq-cluster" connectors="http-connector"/>
+ <discovery-group name="dg-group1" jgroups-channel="activemq-cluster"/>
+ <cluster-connection name="my-cluster" address="jms" connector-name="http-connector" discovery-group="dg-group1"/>
+ <jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/>
+ <jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/>
+ <connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/>
+ <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector" ha="true" block-on-acknowledge="true" reconnect-attempts="-1"/>
+ <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm" transaction="xa"/>
+ </server>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:modcluster:2.0">
+ <mod-cluster-config advertise-socket="modcluster" connector="ajp">
+ <dynamic-load-provider>
+ <load-metric type="cpu"/>
+ </dynamic-load-provider>
+ </mod-cluster-config>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:naming:2.0">
+ <remote-naming/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:pojo:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:remoting:3.0">
+ <endpoint/>
+ <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:resource-adapters:4.0"/>
+ <subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:sar:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:security-manager:1.0">
+ <deployment-permissions>
+ <maximum-set>
+ <permission class="java.security.AllPermission"/>
+ </maximum-set>
+ </deployment-permissions>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:security:1.2">
+ <security-domains>
+ <security-domain name="other" cache-type="default">
+ <authentication>
+ <login-module code="Remoting" flag="optional">
+ <module-option name="password-stacking" value="useFirstPass"/>
+ </login-module>
+ <login-module code="RealmDirect" flag="required">
+ <module-option name="password-stacking" value="useFirstPass"/>
+ </login-module>
+ </authentication>
+ </security-domain>
+ <security-domain name="jboss-web-policy" cache-type="default">
+ <authorization>
+ <policy-module code="Delegating" flag="required"/>
+ </authorization>
+ </security-domain>
+ <security-domain name="jboss-ejb-policy" cache-type="default">
+ <authorization>
+ <policy-module code="Delegating" flag="required"/>
+ </authorization>
+ </security-domain>
+ <security-domain name="jaspitest" cache-type="default">
+ <authentication-jaspi>
+ <login-module-stack name="dummy">
+ <login-module code="Dummy" flag="optional"/>
+ </login-module-stack>
+ <auth-module code="Dummy"/>
+ </authentication-jaspi>
+ </security-domain>
+ </security-domains>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:singleton:1.0">
+ <singleton-policies default="default">
+ <singleton-policy name="default" cache-container="server">
+ <simple-election-policy/>
+ </singleton-policy>
+ </singleton-policies>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:transactions:3.0">
+ <core-environment>
+ <process-id>
+ <uuid/>
+ </process-id>
+ </core-environment>
+ <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:undertow:3.1">
+ <buffer-cache name="default"/>
+ <server name="default-server">
+ <ajp-listener name="ajp" socket-binding="ajp"/>
+ <http-listener name="default" socket-binding="http" enable-http2="true"/>
+ <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
+ <host name="default-host" alias="localhost">
+ <location name="/" handler="welcome-content"/>
+ <filter-ref name="server-header"/>
+ <filter-ref name="x-powered-by-header"/>
+ </host>
+ </server>
+ <servlet-container name="default">
+ <jsp-config/>
+ <websockets/>
+ </servlet-container>
+ <handlers>
+ <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
+ </handlers>
+ <filters>
+ <response-header name="server-header" header-name="Server" header-value="WildFly/10"/>
+ <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
+ </filters>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:webservices:2.0">
+ <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
+ <endpoint-config name="Standard-Endpoint-Config"/>
+ <endpoint-config name="Recording-Endpoint-Config">
+ <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
+ <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
+ </pre-handler-chain>
+ </endpoint-config>
+ <client-config name="Standard-Client-Config"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:weld:3.0"/>
+ </profile>
+
+ <interfaces>
+ <interface name="management">
+ <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
+ </interface>
+ <interface name="public">
+ <inet-address value="${jboss.bind.address:127.0.0.1}"/>
+ </interface>
+ <interface name="private">
+ <inet-address value="${jboss.bind.address.private:127.0.0.1}"/>
+ </interface>
+ <interface name="unsecure">
+ <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
+ </interface>
+ </interfaces>
+
+ <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
+ <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
+ <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
+ <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
+ <socket-binding name="http" port="${jboss.http.port:8080}"/>
+ <socket-binding name="https" port="${jboss.https.port:8443}"/>
+ <socket-binding name="iiop" interface="unsecure" port="3528"/>
+ <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>
+ <socket-binding name="jgroups-mping" interface="private" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
+ <socket-binding name="jgroups-tcp" interface="private" port="7600"/>
+ <socket-binding name="jgroups-tcp-fd" interface="private" port="57600"/>
+ <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
+ <socket-binding name="jgroups-udp-fd" interface="private" port="54200"/>
+ <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>
+ <socket-binding name="txn-recovery-environment" port="4712"/>
+ <socket-binding name="txn-status-manager" port="4713"/>
+ <outbound-socket-binding name="mail-smtp">
+ <remote-destination host="localhost" port="25"/>
+ </outbound-socket-binding>
+ </socket-binding-group>
+
+</server>
diff --git a/kubernetes/config/docker/init/src/config/mso/mso/mso-docker.json b/kubernetes/mso/resources/config/mso/mso-docker.json
index 1b3aeec9b1..b2775590a6 100755
--- a/kubernetes/config/docker/init/src/config/mso/mso/mso-docker.json
+++ b/kubernetes/mso/resources/config/mso/mso-docker.json
@@ -9,9 +9,9 @@
"mso-api-handler-infra-config":
{
- "bpelURL": "http://mso.onap-mso.svc.cluster.local:8080",
+ "bpelURL": "http://localhost:8080",
"bpelAuth": "786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1",
- "camundaURL": "http://mso.onap-mso.svc.cluster.local:8080",
+ "camundaURL": "http://localhost:8080",
"camundaAuth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1"
},
@@ -22,8 +22,8 @@
"user": "mso",
"consumerGroup": "sdc-OpenSource-Env1",
"consumerId": "sdc-COpenSource-Env11",
- "environmentName": "DMAAP_TOPIC_HERE",
- "asdcAddress": "sdc-be.onap-sdc.svc.cluster.local:8443",
+ "environmentName": "{{ .Values.dmaapTopic }}",
+ "asdcAddress": "sdc-be.{{.Values.nsPrefix}}:8443",
"password": "613AF3483E695524F9857643B697FA51C7A9A0951094F53791485BF3458F9EADA37DBACCCEBD0CB242B85B4062745247",
"pollingInterval": 60,
"pollingTimeout": 60,
@@ -38,20 +38,20 @@
{
"sdncurls":
[
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/L3SDN-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/config/L3SDN-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/Firewall-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/config",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/VNF-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/NBNC-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/NORTHBOUND-API:service-topology-operation",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/GENERIC-RESOURCE-API:",
- "http://sdnhost.onap-sdnc.svc.cluster.local:8282/restconf/operations/VNFTOPOLOGYAIC-API:"
+ "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/L3SDN-API:",
+ "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/config/L3SDN-API:",
+ "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/Firewall-API:",
+ "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/config",
+ "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/VNF-API:",
+ "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/NBNC-API:",
+ "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/NORTHBOUND-API:service-topology-operation",
+ "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/GENERIC-RESOURCE-API:",
+ "http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/VNFTOPOLOGYAIC-API:"
],
- "bpelurl": "http://mso.onap-mso.svc.cluster.local:8080/mso/SDNCAdapterCallbackService",
- "restbpelurl": "http://mso.onap-mso.svc.cluster.local:8080/mso/WorkflowMessage",
- "myurl": "http://mso.onap-mso.svc.cluster.local:8080/adapters/rest/SDNCNotify",
+ "bpelurl": "http://localhost:8080/mso/SDNCAdapterCallbackService",
+ "restbpelurl": "http://localhost:8080/mso/WorkflowMessage",
+ "myurl": "http://localhost:8080/adapters/rest/SDNCNotify",
"sdncauth": "263f7d5f944d4d0c76db74b4148bec67d0bc796a874bc0d2a2a12aae89a866aa69133f700f391f784719a37f6a68d29bf5a2fbae1dab0402db7788c800c5ba73",
"bpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1",
"sdncconnecttime": "5000"
@@ -62,10 +62,10 @@
[
{
"dcp_clli": "DEFAULT_KEYSTONE",
- "identity_url": "OPENSTACK_KEYSTONE_IP_HERE/v2.0",
- "mso_id": "OPENSTACK_USERNAME_HERE",
- "mso_pass": "OPENSTACK_ENCRYPTED_PASSWORD_HERE",
- "admin_tenant": "OPENSTACK_SERVICE_TENANT_NAME_HERE",
+ "identity_url": "{{ .Values.openStackKeyStoneUrl }}/v2.0",
+ "mso_id": "{{ .Values.openStackUserName }}",
+ "mso_pass": "{{ .Values.openStackEncryptedPasswordHere }}",
+ "admin_tenant":"{{ .Values.openStackServiceTenantName }}",
"member_role": "admin",
"tenant_metadata": "true",
"identity_server_type": "KEYSTONE",
@@ -76,10 +76,10 @@
"cloud_sites":
[
{
- "id": "OPENSTACK_REGION_HERE",
+ "id": "{{ .Values.openStackRegion }}",
"aic_version": "2.5",
- "lcp_clli": "OPENSTACK_REGION_HERE",
- "region_id": "OPENSTACK_REGION_HERE",
+ "lcp_clli": "{{ .Values.openStackRegion }}",
+ "region_id": "{{ .Values.openStackRegion }}",
"identity_service_id": "DEFAULT_KEYSTONE"
}
],
@@ -92,7 +92,7 @@
"mso-workflow-message-adapter-config":
{
- "wmbpelurl": "http://mso.onap-mso.svc.cluster.local:8080/mso/WorkflowMessage",
+ "wmbpelurl": "http://localhost:8080/mso/WorkflowMessage",
"wmbpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1"
},
@@ -128,37 +128,37 @@
"versionIdL3ToHigherLayerDeleteBonding": "52dbec20-47aa-42e4-936c-331d8e350d44",
"infraCustomerId": "21014aa2-526b-11e6-beb8-9e71128cae77",
"sniroAuth": "test:testpwd",
- "sniroEndpoint": "http://sniro-emulator.onap-mock.svc.cluster.local:8080/sniro/api/v2/placement",
+ "sniroEndpoint": "http://sniro-emulator.{{.Values.nsPrefix}}:8080/sniro/api/v2/placement",
"sniroTimeout": "PT30M",
- "serviceAgnosticSniroHost": "http://sniro-emulator.onap-mock.svc.cluster.local:8080",
+ "serviceAgnosticSniroHost": "http://sniro-emulator.{{.Values.nsPrefix}}:8080",
"serviceAgnosticSniroEndpoint": "/sniro/api/v2/placement",
- "aaiEndpoint": "https://aai-service.onap-aai.svc.cluster.local:8443",
+ "aaiEndpoint": "https://aai-service.{{.Values.nsPrefix}}:8443",
"aaiAuth": "2630606608347B7124C244AB0FE34F6F",
"adaptersNamespace": "http://org.openecomp.mso",
- "adaptersCompletemsoprocessEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/CompleteMsoProcess",
- "adaptersDbEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/dbadapters/MsoRequestsDbAdapter",
- "adaptersOpenecompDbEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/dbadapters/RequestsDbAdapter",
- "catalogDbEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/ecomp/mso/catalog",
- "adaptersSdncEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/adapters/SDNCAdapter",
- "adaptersSdncRestEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/adapters/rest/v1/sdnc",
- "adaptersTenantEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/tenants/TenantAdapter",
+ "adaptersCompletemsoprocessEndpoint": "http://localhost:8080/CompleteMsoProcess",
+ "adaptersDbEndpoint": "http://localhost:8080/dbadapters/MsoRequestsDbAdapter",
+ "adaptersOpenecompDbEndpoint": "http://localhost:8080/dbadapters/RequestsDbAdapter",
+ "catalogDbEndpoint": "http://localhost:8080/ecomp/mso/catalog",
+ "adaptersSdncEndpoint": "http://localhost:8080/adapters/SDNCAdapter",
+ "adaptersSdncRestEndpoint": "http://localhost:8080/adapters/rest/v1/sdnc",
+ "adaptersTenantEndpoint": "http://localhost:8080/tenants/TenantAdapter",
"adaptersDbAuth": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74",
- "adaptersWorkflowMessageEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/workflows/messages/message",
- "workflowMessageEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/mso/WorkflowMessage",
- "workflowSdncAdapterCallback": "http://mso.onap-mso.svc.cluster.local:8080/mso/SDNCAdapterCallbackService",
+ "adaptersWorkflowMessageEndpoint": "http://localhost:8080/workflows/messages/message",
+ "workflowMessageEndpoint": "http://localhost:8080/mso/WorkflowMessage",
+ "workflowSdncAdapterCallback": "http://localhost:8080/mso/SDNCAdapterCallbackService",
"workflowSdncReplicationDelay": "PT5S",
"workflowAaiDistributionDelay": "PT30S",
"msoKey": "07a7159d3bf51a0e53be7a8f89699be7",
"adaptersPoAuth": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74",
"sdncTimeout": "PT5M",
"rollback": "true",
- "adaptersNetworkEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/networks/NetworkAdapter",
- "adaptersNetworkRestEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/networks/rest/v1/networks",
- "adaptersVnfAsyncEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/vnfs/VnfAdapterAsync",
- "workflowVnfAdapterDeleteCallback": "http://mso.onap-mso.svc.cluster.local:8080/mso/vnfAdapterNotify",
- "workflowVnfAdapterCreateCallback": "http://mso.onap-mso.svc.cluster.local:8080/mso/vnfAdapterNotify",
- "adaptersVnfRestEndpoint": "http://mso.onap-mso.svc.cluster.local:8080/vnfs/rest/v1/vnfs",
- "workflowVnfAdapterRestCallback": "http://mso.onap-mso.svc.cluster.local:8080/mso/vnfAdapterRestNotify",
+ "adaptersNetworkEndpoint": "http://localhost:8080/networks/NetworkAdapter",
+ "adaptersNetworkRestEndpoint": "http://localhost:8080/networks/rest/v1/networks",
+ "adaptersVnfAsyncEndpoint": "http://localhost:8080/vnfs/VnfAdapterAsync",
+ "workflowVnfAdapterDeleteCallback": "http://localhost:8080/mso/vnfAdapterNotify",
+ "workflowVnfAdapterCreateCallback": "http://localhost:8080/mso/vnfAdapterNotify",
+ "adaptersVnfRestEndpoint": "http://localhost:8080/vnfs/rest/v1/vnfs",
+ "workflowVnfAdapterRestCallback": "http://localhost:8080/mso/vnfAdapterRestNotify",
"poTimeout": "PT5M",
"sdncFirewallYangModel": "http://com/att/svc/mis/firewall-lite-gui",
"sdncFirewallYangModelVersion": "2015-05-15",
diff --git a/kubernetes/mso/templates/all-services.yaml b/kubernetes/mso/templates/all-services.yaml
index 44e47c10fc..6eefe65cff 100644
--- a/kubernetes/mso/templates/all-services.yaml
+++ b/kubernetes/mso/templates/all-services.yaml
@@ -2,17 +2,17 @@
apiVersion: v1
kind: Service
metadata:
- name: mariadb
- namespace: "{{ .Values.nsPrefix }}-mso"
+ name: mso-mariadb
+ namespace: "{{ .Values.nsPrefix }}"
labels:
- app: mariadb
+ app: mso-mariadb
spec:
ports:
- - port: 3306
- nodePort: {{ .Values.nodePortPrefix }}52
+ - port: 3306
+ name: mso-mariadb-3306
selector:
- app: mariadb
- type: NodePort
+ app: mso-mariadb
+ clusterIP: None
#{{ end }}
#{{ if not .Values.disableMsoMso }}
---
@@ -20,7 +20,7 @@ apiVersion: v1
kind: Service
metadata:
name: mso
- namespace: "{{ .Values.nsPrefix }}-mso"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: mso
annotations:
@@ -63,4 +63,4 @@ spec:
port: 8787
nodePort: {{ .Values.nodePortPrefix }}50
type: NodePort
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/mso/templates/db-deployment-configmap.yaml b/kubernetes/mso/templates/db-deployment-configmap.yaml
new file mode 100644
index 0000000000..51c106cc78
--- /dev/null
+++ b/kubernetes/mso/templates/db-deployment-configmap.yaml
@@ -0,0 +1,65 @@
+#{{ if not .Values.disableMsoMariadb }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-confd-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-docker-entry-initd-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-automated-tests-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-bulkload-default-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-demo-dns-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-demo-vfw-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-scripts-camunda-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-main-schemas-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/mso/templates/db-deployment.yaml b/kubernetes/mso/templates/db-deployment.yaml
index 820d7e2239..a906c1c413 100644
--- a/kubernetes/mso/templates/db-deployment.yaml
+++ b/kubernetes/mso/templates/db-deployment.yaml
@@ -2,24 +2,25 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: mariadb
- namespace: "{{ .Values.nsPrefix }}-mso"
+ name: mso-mariadb
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.dbReplicas }}
selector:
matchLabels:
- app: mariadb
+ app: mso-mariadb
template:
metadata:
labels:
- app: mariadb
- name: mariadb
+ app: mso-mariadb
+ name: mso-mariadb
spec:
- hostname: mariadb
+ hostname: mso-mariadb
containers:
- args:
image: {{ .Values.image.mariadb }}
imagePullPolicy: {{ .Values.pullPolicy }}
- name: "mariadb"
+ name: "mso-mariadb"
env:
- name: MYSQL_ROOT_PASSWORD
value: password
@@ -29,31 +30,65 @@ spec:
readOnly: true
- mountPath: /etc/mysql/conf.d
name: mso-mariadb-conf
- - mountPath: /docker-entrypoint-initdb.d
+ - mountPath: /docker-entrypoint-initdb.d/02-load-additional-changes.sh
name: mso-mariadb-docker-entrypoint-initdb
+ subPath: 02-load-additional-changes.sh
+ - mountPath: /docker-entrypoint-initdb.d/01-load-default-sql-files.sh
+ name: mso-mariadb-docker-entrypoint-initdb
+ subPath: 01-load-default-sql-files.sh
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests
+ name: mso-mariadb-docker-entrypoint-automated-tests
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default
+ name: mso-mariadb-docker-entrypoint-bulkload-default
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns
+ name: mso-mariadb-docker-entrypoint-demo-dns
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw
+ name: mso-mariadb-docker-entrypoint-demo-vfw
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/camunda
+ name: mso-mariadb-docker-entrypoint-camunda
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/main-schemas
+ name: mso-mariadb-docker-entrypoint-main-schemas
- mountPath: /var/lib/mysql
name: mso-mariadb-data
ports:
- containerPort: 3306
- name: mariadb
+ name: mso-mariadb
readinessProbe:
tcpSocket:
port: 3306
initialDelaySeconds: 5
periodSeconds: 10
volumes:
- - name: localtime
- hostPath:
- path: /etc/localtime
- name: mso-mariadb-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/mariadb/conf.d
+ configMap:
+ name: mso-confd-configmap
- name: mso-mariadb-docker-entrypoint-initdb
+ configMap:
+ name: mso-docker-entry-initd-configmap
+ - name: mso-mariadb-docker-entrypoint-automated-tests
+ configMap:
+ name: mso-automated-tests-configmap
+ - name: mso-mariadb-docker-entrypoint-bulkload-default
+ configMap:
+ name: mso-bulkload-default-configmap
+ - name: mso-mariadb-docker-entrypoint-demo-dns
+ configMap:
+ name: mso-demo-dns-configmap
+ - name: mso-mariadb-docker-entrypoint-demo-vfw
+ configMap:
+ name: mso-demo-vfw-configmap
+ - name: mso-mariadb-docker-entrypoint-camunda
+ configMap:
+ name: mso-scripts-camunda-configmap
+ - name: mso-mariadb-docker-entrypoint-main-schemas
+ configMap:
+ name: mso-main-schemas-configmap
+ - name: localtime
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/mariadb/docker-entrypoint-initdb.d
+ path: /etc/localtime
- name: mso-mariadb-data
persistentVolumeClaim:
claimName: mso-db
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/mso/templates/mso-deployment-configmap.yaml b/kubernetes/mso/templates/mso-deployment-configmap.yaml
new file mode 100644
index 0000000000..15c6141baf
--- /dev/null
+++ b/kubernetes/mso/templates/mso-deployment-configmap.yaml
@@ -0,0 +1,25 @@
+#{{ if not .Values.disableMsoMso }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-config-mso-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mso/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-docker-file-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/docker-files/scripts/start-jboss-server.sh").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-jboss-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mso/jboss/standalone-full-ha-mso.xml").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/mso/templates/mso-deployment.yaml b/kubernetes/mso/templates/mso-deployment.yaml
index 2abb29091f..2e5497c22c 100644
--- a/kubernetes/mso/templates/mso-deployment.yaml
+++ b/kubernetes/mso/templates/mso-deployment.yaml
@@ -3,9 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mso
- namespace: "{{ .Values.nsPrefix }}-mso"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
- replicas: 1
+ replicas: {{ .Values.msoReplicas }}
selector:
matchLabels:
app: mso
@@ -20,7 +20,7 @@ spec:
- /root/ready.py
args:
- --container-name
- - mariadb
+ - mso-mariadb
env:
- name: NAMESPACE
valueFrom:
@@ -40,34 +40,49 @@ spec:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /shared
+ - mountPath: /shared/
name: mso
- mountPath: /tmp/start-jboss-server.sh
name: mso-docker-files
+ subPath: start-jboss-server.sh
+ - mountPath: /opt/jboss/standalone/configuration/standalone-full-ha-mso.xml
+ name: mso-jboss-config
+ subPath: standalone-full-ha-mso.xml
- mountPath: /var/log/onap
name: mso-logs
- - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-api-handler-infra-config/logback.apihandler-infra.xml
- name: logback-apihandler-infra
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.network.xml
- name: logback-network
+ name: mso-logback
+ subPath: logback.network.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.tenant.xml
- name: logback-tenant
+ name: mso-logback
+ subPath: logback.tenant.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.vnf.xml
- name: logback-vnf
+ name: mso-logback
+ subPath: logback.vnf.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.vfc.xml
- name: logback-vfc
+ name: mso-logback
+ subPath: logback.vfc.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-api-handler-infra-config/logback.apihandler-infra.xml
+ name: mso-logback
+ subPath: logback.apihandler-infra.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-appc-adapter-config/logback.appc.xml
- name: logback-appc
+ name: mso-logback
+ subPath: logback.appc.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-requests-db-adapter-config/logback.msorequestsdbadapter.xml
- name: logback-msorequestsdbadapter
+ name: mso-logback
+ subPath: logback.msorequestsdbadapter.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-asdc-controller-config/logback.asdc.xml
- name: logback-asdc
+ name: mso-logback
+ subPath: logback.asdc.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-sdnc-adapter-config/logback.sdnc.xml
- name: logback-sdnc
+ name: mso-logback
+ subPath: logback.sdnc.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-bpmn-config/logback.bpmn.xml
- name: logback-bpmn
+ name: mso-logback
+ subPath: logback.bpmn.xml
- mountPath: /var/berks-cookbooks/mso-config/files/default/mso-workflow-message-adapter-config/logback.workflow-message-adapter.xml
- name: logback-workflow-message-adapter
+ name: mso-logback
+ subPath: logback.workflow-message-adapter.xml
env:
- name: JBOSS_DEBUG
value: "false"
@@ -88,6 +103,7 @@ spec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: mso-logs
- mountPath: /usr/share/filebeat/data
@@ -96,52 +112,39 @@ spec:
- name: localtime
hostPath:
path: /etc/localtime
- - name: logback-apihandler-infra
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.apihandler-infra.xml
- - name: logback-network
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.network.xml
- - name: logback-tenant
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.tenant.xml
- - name: logback-vnf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.vnf.xml
- - name: logback-vfc
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.vfc.xml
- - name: logback-appc
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.appc.xml
- - name: logback-msorequestsdbadapter
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.msorequestsdbadapter.xml
- - name: logback-asdc
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.asdc.xml
- - name: logback-sdnc
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.sdnc.xml
- - name: logback-bpmn
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.bpmn.xml
- - name: logback-workflow-message-adapter
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/mso/logback.workflow-message-adapter.xml
- - name: mso
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/mso
+ - name: mso-logback
+ configMap:
+ name: mso-log-configmap
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: mso-filebeat-configmap
+ - name: mso
+ configMap:
+ name: mso-config-mso-configmap
+ items:
+ - key: mso-docker.json
+ path: mso-docker.json
+ mode: 0755
+ - key: aai.crt
+ path: aai.crt
+ mode: 0755
+ - key: encryption.key
+ path: encryption.key
+ mode: 0644
- name: mso-logs
emptyDir: {}
- name: mso-data-filebeat
emptyDir: {}
- name: mso-docker-files
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/docker-files/scripts/start-jboss-server.sh
+ configMap:
+ name: mso-docker-file-configmap
+ items:
+ - key: start-jboss-server.sh
+ path: start-jboss-server.sh
+ mode: 0755
+ - name: mso-jboss-config
+ configMap:
+ name: mso-jboss-configmap
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/mso/templates/mso-log-configmap.yaml b/kubernetes/mso/templates/mso-log-configmap.yaml
new file mode 100644
index 0000000000..273c22f533
--- /dev/null
+++ b/kubernetes/mso/templates/mso-log-configmap.yaml
@@ -0,0 +1,17 @@
+#{{ if not .Values.disableMsoMso }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: mso-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/mso/templates/mso-pv-pvc.yaml b/kubernetes/mso/templates/mso-pv-pvc.yaml
index 07b5a03f61..04f5c60832 100644
--- a/kubernetes/mso/templates/mso-pv-pvc.yaml
+++ b/kubernetes/mso/templates/mso-pv-pvc.yaml
@@ -2,10 +2,10 @@
apiVersion: v1
kind: PersistentVolume
metadata:
- name: "{{ .Values.nsPrefix }}-mso-db"
- namespace: "{{ .Values.nsPrefix }}-mso"
+ name: "{{ .Values.nsPrefix }}-mso"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
- name: "{{ .Values.nsPrefix }}-mso-db"
+ name: "{{ .Values.nsPrefix }}-mso"
spec:
capacity:
storage: 2Gi
@@ -13,13 +13,13 @@ spec:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/mariadb/data
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/mso/mariadb/data
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: mso-db
- namespace: "{{ .Values.nsPrefix }}-mso"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
accessModes:
- ReadWriteMany
@@ -28,5 +28,5 @@ spec:
storage: 2Gi
selector:
matchLabels:
- name: "{{ .Values.nsPrefix }}-mso-db"
-#{{ end }} \ No newline at end of file
+ name: "{{ .Values.nsPrefix }}-mso"
+#{{ end }}
diff --git a/kubernetes/mso/values.yaml b/kubernetes/mso/values.yaml
index fd8b6690e8..4cc91463f7 100644
--- a/kubernetes/mso/values.yaml
+++ b/kubernetes/mso/values.yaml
@@ -1,8 +1,17 @@
nsPrefix: onap
-pullPolicy: Always
+pullPolicy: Always
nodePortPrefix: 302
+openStackUserName: "vnf_user"
+openStackRegion: "RegionOne"
+openStackKeyStoneUrl: "http://1.2.3.4:5000"
+dmaapTopic: "AUTO"
+openStackServiceTenantName: "service"
+openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
+msoReplicas: 1
+dbReplicas: 1
+dataRootDir: /dockerdata-nfs
image:
- readiness: oomk8s/readiness-check:1.0.0
- mso: nexus3.onap.org:10001/openecomp/mso:v1.1.1
+ readiness: oomk8s/readiness-check:1.1.0
+ mso: nexus3.onap.org:10001/openecomp/mso:v1.1.2
mariadb: nexus3.onap.org:10001/mariadb:10.1.11
filebeat: docker.elastic.co/beats/filebeat:5.5.0
diff --git a/kubernetes/multicloud/resources/config/log/filebeat/filebeat.yml b/kubernetes/multicloud/resources/config/log/filebeat/filebeat.yml
new file mode 100644
index 0000000000..706f24d693
--- /dev/null
+++ b/kubernetes/multicloud/resources/config/log/filebeat/filebeat.yml
@@ -0,0 +1,41 @@
+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: 24h
+ # 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: 48h
+
+
+# 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: ["logstash.{{.Values.nsPrefix}}:5044"]
+ #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/multicloud/resources/config/log/framework/log.yml b/kubernetes/multicloud/resources/config/log/framework/log.yml
new file mode 100644
index 0000000000..a4943f015a
--- /dev/null
+++ b/kubernetes/multicloud/resources/config/log/framework/log.yml
@@ -0,0 +1,26 @@
+version: 1
+disable_existing_loggers: False
+
+loggers:
+ multivimbroker:
+ handlers: [multivimbroker_handler]
+ level: "DEBUG"
+ propagate: False
+
+handlers:
+ multivimbroker_handler:
+ level: "DEBUG"
+ class: "logging.handlers.RotatingFileHandler"
+ filename: "/var/log/onap/multicloud/multivimbroker/multivimbroker.log"
+ formatter: "mdcFormat"
+ maxBytes: 1024*1024*50
+ backupCount: 10
+
+formatters:
+ standard:
+ format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s"
+ mdcFormat:
+ format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:[%(mdc)s]: %(message)s"
+ mdcfmt: "{requestID}"
+ datefmt: "%Y-%m-%d %H:%M:%S"
+ (): onaplogging.mdcformatter.MDCFormatter \ No newline at end of file
diff --git a/kubernetes/multicloud/resources/config/log/vio/log.yml b/kubernetes/multicloud/resources/config/log/vio/log.yml
new file mode 100644
index 0000000000..c9d2bf84f3
--- /dev/null
+++ b/kubernetes/multicloud/resources/config/log/vio/log.yml
@@ -0,0 +1,26 @@
+version: 1
+disable_existing_loggers: False
+
+loggers:
+ vio:
+ handlers: [vio_handler]
+ level: "DEBUG"
+ propagate: False
+
+handlers:
+ vio_handler:
+ level: "DEBUG"
+ class: "logging.handlers.RotatingFileHandler"
+ filename: "/var/log/onap/multicloud/vio/vio.log"
+ formatter: "mdcFormat"
+ maxBytes: 1024*1024*50
+ backupCount: 10
+
+formatters:
+ standard:
+ format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s"
+ mdcFormat:
+ format: "%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:[%(mdc)s]: %(message)s"
+ mdcfmt: "{requestID}"
+ datefmt: "%Y-%m-%d %H:%M:%S"
+ (): onaplogging.mdcformatter.MDCFormatter \ No newline at end of file
diff --git a/kubernetes/multicloud/templates/all-services.yaml b/kubernetes/multicloud/templates/all-services.yaml
index 09a90d0eca..58e67e03d1 100644
--- a/kubernetes/multicloud/templates/all-services.yaml
+++ b/kubernetes/multicloud/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: framework
- namespace: "{{ .Values.nsPrefix }}-multicloud"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
name: framework
annotations:
@@ -32,7 +32,7 @@ apiVersion: v1
kind: Service
metadata:
name: multicloud-vio
- namespace: "{{ .Values.nsPrefix }}-multicloud"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
name: multicloud-vio
annotations:
@@ -62,7 +62,7 @@ apiVersion: v1
kind: Service
metadata:
name: multicloud-ocata
- namespace: "{{ .Values.nsPrefix }}-multicloud"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
name: multicloud-ocata
annotations:
@@ -92,7 +92,7 @@ apiVersion: v1
kind: Service
metadata:
name: multicloud-windriver
- namespace: "{{ .Values.nsPrefix }}-multicloud"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
name: multicloud-windriver
annotations:
diff --git a/kubernetes/multicloud/templates/framework-deployment.yaml b/kubernetes/multicloud/templates/framework-deployment.yaml
index b2f23715c8..b9b130c90f 100644
--- a/kubernetes/multicloud/templates/framework-deployment.yaml
+++ b/kubernetes/multicloud/templates/framework-deployment.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: framework
- namespace: "{{ .Values.nsPrefix }}-multicloud"
+ name: multicloud-framework
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.frameworkReplicas }}
selector:
matchLabels:
app: framework
@@ -12,17 +13,16 @@ spec:
metadata:
labels:
app: framework
- name: framework
+ name: multicloud-framework
spec:
- hostname: framework
containers:
- env:
- name: MSB_ADDR
- value: {{ .Values.msbgateway }}
+ value: {{ tpl .Values.msbgateway . }}
- name: MSB_PORT
value: "{{ .Values.msbPort }}"
- name: AAI_ADDR
- value: aai-service.{{ .Values.nsPrefix }}-aai
+ value: aai-service.{{ .Values.nsPrefix }}
- name: AAI_PORT
value: "8443"
- name: AAI_SCHEMA_VERSION
@@ -31,12 +31,15 @@ spec:
value: "AAI"
- name: AAI_PASSWORD
value: "AAI"
+ image: {{ .Values.image.framework }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
name: framework
volumeMounts:
- - mountPath: /service/multivimbroker/logs
+ - mountPath: /var/log/onap
name: framework-log
- image: {{ .Values.image.framework }}
- imagePullPolicy: {{ .Values.pullPolicy }}
+ - mountPath: /opt/multivimbroker/multivimbroker/pub/config/log.yml
+ name: framework-logconfig
+ subPath: log.yml
ports:
- containerPort: 9001
livenessProbe:
@@ -49,11 +52,29 @@ spec:
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 5
- restartPolicy: Always
+ - image: {{ .Values.image.filebeat }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: filebeat-onap
+ volumeMounts:
+ - mountPath: /usr/share/filebeat/filebeat.yml
+ name: filebeat-conf
+ subPath: filebeat.yml
+ - mountPath: /var/log/onap
+ name: framework-log
+ - mountPath: /usr/share/filebeat/data
+ name: framework-data-filebeat
volumes:
- name: framework-log
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/multicloud/framework/logs
+ emptyDir: {}
+ - name: framework-data-filebeat
+ emptyDir: {}
+ - name: filebeat-conf
+ configMap:
+ name: multicloud-filebeat-configmap
+ - name: framework-logconfig
+ configMap:
+ name: multicloud-framework-log-configmap
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+ restartPolicy: Always
+#{{ end }}
diff --git a/kubernetes/multicloud/templates/multicloud-log-configmap.yaml b/kubernetes/multicloud/templates/multicloud-log-configmap.yaml
new file mode 100644
index 0000000000..754178c25f
--- /dev/null
+++ b/kubernetes/multicloud/templates/multicloud-log-configmap.yaml
@@ -0,0 +1,25 @@
+#{{ if not .Values.disableVidVidServer }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: multicloud-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: multicloud-framework-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/framework/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: multicloud-vio-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/vio/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml b/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml
index 994fe94c03..072b3d9e7e 100644
--- a/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml
+++ b/kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: multicloud-ocata
- namespace: "{{ .Values.nsPrefix }}-multicloud"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.ocataReplicas }}
selector:
matchLabels:
app: multicloud-ocata
@@ -18,11 +19,11 @@ spec:
containers:
- env:
- name: MSB_ADDR
- value: "{{ .Values.msbgateway }}"
+ value: "{{ tpl .Values.msbgateway . }}"
- name: MSB_PORT
value: "{{ .Values.msbPort }}"
- name: AAI_ADDR
- value: aai-service.{{ .Values.nsPrefix }}-aai
+ value: aai-service.{{ .Values.nsPrefix }}
- name: AAI_PORT
value: "8443"
- name: AAI_SCHEMA_VERSION
@@ -53,7 +54,7 @@ spec:
volumes:
- name: ocata-log
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/multicloud/ocata/logs
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/multicloud/ocata/logs
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml b/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml
index e2274b358f..579f8a8cf3 100644
--- a/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml
+++ b/kubernetes/multicloud/templates/multicloud-vio-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: multicloud-vio
- namespace: "{{ .Values.nsPrefix }}-multicloud"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.vioReplicas }}
selector:
matchLabels:
app: multicloud-vio
@@ -14,15 +15,14 @@ spec:
app: multicloud-vio
name: multicloud-vio
spec:
- hostname: multicloud-vio
containers:
- env:
- name: MSB_ADDR
- value: "{{ .Values.msbgateway }}"
+ value: "{{ tpl .Values.msbgateway . }}"
- name: MSB_PORT
value: "{{ .Values.msbPort }}"
- name: AAI_ADDR
- value: aai-service.{{ .Values.nsPrefix }}-aai
+ value: aai-service.{{ .Values.nsPrefix }}
- name: AAI_PORT
value: "8443"
- name: AAI_SCHEMA_VERSION
@@ -33,8 +33,11 @@ spec:
value: "AAI"
name: multicloud-vio
volumeMounts:
- - mountPath: /service/vio/logs
+ - mountPath: /var/log/onap
name: vio-log
+ - mountPath: /opt/vio/vio/pub/config/log.yml
+ name: vio-logconfig
+ subPath: log.yml
image: {{ .Values.image.vio }}
imagePullPolicy: {{ .Values.pullPolicy }}
ports:
@@ -49,11 +52,29 @@ spec:
timeoutSeconds: 10
successThreshold: 1
failureThreshold: 5
- restartPolicy: Always
+ - image: {{ .Values.image.filebeat }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: filebeat-onap
+ volumeMounts:
+ - mountPath: /usr/share/filebeat/filebeat.yml
+ name: filebeat-conf
+ subPath: filebeat.yml
+ - mountPath: /var/log/onap
+ name: vio-log
+ - mountPath: /usr/share/filebeat/data
+ name: vio-data-filebeat
volumes:
- name: vio-log
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/multicloud/vio/logs
+ emptyDir: {}
+ - name: vio-data-filebeat
+ emptyDir: {}
+ - name: filebeat-conf
+ configMap:
+ name: multicloud-filebeat-configmap
+ - name: vio-logconfig
+ configMap:
+ name: multicloud-vio-log-configmap
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+ restartPolicy: Always
+#{{ end }}
diff --git a/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml b/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml
index ff0f09af19..168d1d611e 100644
--- a/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml
+++ b/kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: multicloud-windriver
- namespace: "{{ .Values.nsPrefix }}-multicloud"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.windRiverReplicas }}
selector:
matchLabels:
app: multicloud-windriver
@@ -18,11 +19,11 @@ spec:
containers:
- env:
- name: MSB_ADDR
- value: "{{ .Values.msbgateway }}"
+ value: "{{ tpl .Values.msbgateway . }}"
- name: MSB_PORT
value: "{{ .Values.msbPort }}"
- name: AAI_ADDR
- value: aai-service.{{ .Values.nsPrefix }}-aai
+ value: aai-service.{{ .Values.nsPrefix }}
- name: AAI_PORT
value: "8443"
- name: AAI_SCHEMA_VERSION
@@ -53,7 +54,7 @@ spec:
volumes:
- name: windriver-log
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/multicloud/windriver/logs
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/multicloud/windriver/logs
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/multicloud/values.yaml b/kubernetes/multicloud/values.yaml
index 2431d0a69d..9f49096b5f 100644
--- a/kubernetes/multicloud/values.yaml
+++ b/kubernetes/multicloud/values.yaml
@@ -1,13 +1,18 @@
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+dataRootDir: /dockerdata-nfs
+frameworkReplicas: 1
+ocataReplicas: 1
+vioReplicas: 1
+windRiverReplicas: 1
image:
- readiness: oomk8s/readiness-check:1.0.0
- framework: nexus3.onap.org:10001/onap/multicloud/framework:v1.0.0
- vio: nexus3.onap.org:10001/onap/multicloud/vio:v1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
+ framework: nexus3.onap.org:10001/onap/multicloud/framework:latest
+ vio: nexus3.onap.org:10001/onap/multicloud/vio:latest
ocata: nexus3.onap.org:10001/onap/multicloud/openstack-ocata:v1.0.0
windriver: nexus3.onap.org:10001/onap/multicloud/openstack-windriver:v1.0.0
-
+ filebeat: docker.elastic.co/beats/filebeat:5.5.0
# domain name of msb gateway
-msbgateway: msb-iag.onap-msb
-msbPort: 80 \ No newline at end of file
+msbgateway: msb-iag.{{ .Values.nsPrefix }}
+msbPort: 80
diff --git a/kubernetes/onap/Chart.yaml b/kubernetes/onap/Chart.yaml
new file mode 100644
index 0000000000..db8a30f28e
--- /dev/null
+++ b/kubernetes/onap/Chart.yaml
@@ -0,0 +1,9 @@
+apiVersion: v1
+name: onap
+version: 2.0.0
+appVersion: beijing
+description: Open Network Automation Platform (ONAP)
+home: https://www.onap.org/
+sources:
+- https://gerrit.onap.org/r/#/admin/projects/
+icon: https://wiki.onap.org/download/thumbnails/1015829/onap_704x271%20copy.png?version=1&modificationDate=1488326334000&api=v2
diff --git a/kubernetes/onap/requirements.yaml b/kubernetes/onap/requirements.yaml
new file mode 100644
index 0000000000..a8fd3eb785
--- /dev/null
+++ b/kubernetes/onap/requirements.yaml
@@ -0,0 +1,103 @@
+# Referencing a named repo called 'local'.
+# Can add this repo by running commands like:
+# > helm serve
+# > helm repo add local http://127.0.0.1:8879
+dependencies:
+ - name: aaf
+ version: ~1.1.0
+ repository: '@local'
+ condition: aaf.enabled
+ - name: aai
+ version: ~0.1.0
+ repository: '@local'
+ condition: aai.enabled
+ - name: appc
+ version: ~0.1.0
+ repository: '@local'
+ condition: appc.enabled
+ - name: clamp
+ version: ~1.1.0
+ repository: '@local'
+ condition: clamp.enabled
+ - name: cli
+ version: ~0.1.0
+ repository: '@local'
+ condition: cli.enabled
+ - name: common
+ version: ~2.0.0
+ repository: '@local'
+ - name: consul
+ version: ~1.1.0
+ repository: '@local'
+ condition: consul.enabled
+ - name: dcaegen2
+ version: ~1.1.0
+ repository: '@local'
+ condition: dcaegen2.enabled
+ - name: esr
+ version: ~1.1.0
+ repository: '@local'
+ condition: esr.enabled
+ - name: log
+ version: ~0.1.0
+ repository: '@local'
+ condition: log.enabled
+ - name: message-router
+ version: ~0.1.0
+ repository: '@local'
+ condition: message-router.enabled
+ - name: mock
+ version: ~0.1.0
+ repository: '@local'
+ condition: mock.enabled
+ - name: msb
+ version: ~0.1.0
+ repository: '@local'
+ condition: msb.enabled
+ - name: multicloud
+ version: ~1.1.0
+ repository: '@local'
+ condition: multicloud.enabled
+ - name: policy
+ version: ~0.1.0
+ repository: '@local'
+ condition: policy.enabled
+ - name: portal
+ version: ~0.1.0
+ repository: '@local'
+ condition: portal.enabled
+ - name: robot
+ version: ~0.1.0
+ repository: '@local'
+ condition: robot.enabled
+ - name: sdc
+ version: ~0.1.0
+ repository: '@local'
+ condition: sdc.enabled
+ - name: sdnc
+ version: ~0.1.0
+ repository: '@local'
+ condition: sdnc.enabled
+ - name: setup
+ version: ~2.0.0
+ repository: '@local'
+ - name: so
+ version: ~2.0.0
+ repository: '@local'
+ condition: so.enabled
+ - name: uui
+ version: ~1.1.0
+ repository: '@local'
+ condition: uui.enabled
+ - name: vfc
+ version: ~0.1.0
+ repository: '@local'
+ condition: vfc.enabled
+ - name: vid
+ version: ~0.1.0
+ repository: '@local'
+ condition: vid.enabled
+ - name: vnfsdk
+ version: ~1.1.0
+ repository: '@local'
+ condition: vnfsdk.enabled
diff --git a/kubernetes/onap/resources/environments/onap-demo.yaml b/kubernetes/onap/resources/environments/onap-demo.yaml
new file mode 100644
index 0000000000..67b6f401a4
--- /dev/null
+++ b/kubernetes/onap/resources/environments/onap-demo.yaml
@@ -0,0 +1,60 @@
+#################################################################
+# Global configuration overrides.
+#
+# These overrides will affect all helm charts (ie. applications)
+# that are listed below and are 'enabled'.
+#################################################################
+global:
+ # Change to an unused port prefix range to prevent port conflicts
+ # with other instances running within the same k8s cluster
+ nodePortPrefix: 302
+
+ # image repositories
+ repository: nexus3.onap.org:10001
+ repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+ # readiness check
+ readinessRepository: oomk8s
+ # logging agent
+ loggingRepository: docker.elastic.co
+
+ # image pull policy
+ pullPolicy: IfNotPresent
+
+ # override default mount path root directory
+ # referenced by persistent volumes and log files
+ persistence:
+ mountPath: /dockerdata-nfs
+
+ # flag to enable debugging - application support required
+ debugEnabled: true
+
+#################################################################
+# Enable/disable and configure helm charts (ie. applications)
+# to customize the ONAP deployment.
+#################################################################
+consul:
+ enabled: true
+
+so:
+ enabled: true
+ replicaCount: 1
+ liveness:
+ # necessary to disable liveness probe when setting breakpoints
+ # in debugger so K8s doesn't restart unresponsive container
+ enabled: true
+
+ # so server configuration
+ config:
+ # message router configuration
+ dmaapTopic: "AUTO"
+ # openstack configuration
+ openStackUserName: "vnf_user"
+ openStackRegion: "RegionOne"
+ openStackKeyStoneUrl: "http://1.2.3.4:5000"
+ openStackServiceTenantName: "service"
+ openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
+
+ # configure embedded mariadb
+ mariadb:
+ config:
+ mariadbRootPassword: password \ No newline at end of file
diff --git a/kubernetes/onap/values.yaml b/kubernetes/onap/values.yaml
new file mode 100644
index 0000000000..96455a0156
--- /dev/null
+++ b/kubernetes/onap/values.yaml
@@ -0,0 +1,104 @@
+#################################################################
+# Global configuration overrides.
+#
+# These overrides will affect all helm charts (ie. applications)
+# that are listed below and are 'enabled'.
+#################################################################
+global:
+ # Change to an unused port prefix range to prevent port conflicts
+ # with other instances running within the same k8s cluster
+ nodePortPrefix: 302
+
+ # image repositories
+ repository: nexus3.onap.org:10001
+ repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+ # readiness check
+ readinessRepository: oomk8s
+ # logging agent
+ loggingRepository: docker.elastic.co
+
+ # image pull policy
+ pullPolicy: Always
+
+ # default mount path root directory referenced
+ # by persistent volumes and log files
+ persistence:
+ mountPath: /dockerdata-nfs
+
+ # flag to enable debugging - application support required
+ debugEnabled: false
+
+
+#################################################################
+# Enable/disable and configure helm charts (ie. applications)
+# to customize the ONAP deployment.
+#################################################################
+aaf:
+ enabled: false
+aai:
+ enabled: false
+appc:
+ enabled: false
+clamp:
+ enabled: false
+cli:
+ enabled: false
+consul: # Consul Health Check Monitoring
+ enabled: false
+dcaegen2:
+ enabled: false
+esr:
+ enabled: false
+log:
+ enabled: false
+message-router:
+ enabled: false
+mock:
+ enabled: false
+msb:
+ enabled: false
+multicloud:
+ enabled: false
+policy:
+ enabled: false
+portal:
+ enabled: false
+robot: # Robot Health Check
+ enabled: false
+sdc:
+ enabled: false
+sdnc:
+ enabled: false
+so: # Service Orchestrator
+ enabled: true
+
+ replicaCount: 1
+
+ liveness:
+ # necessary to disable liveness probe when setting breakpoints
+ # in debugger so K8s doesn't restart unresponsive container
+ enabled: true
+
+ # so server configuration
+ config:
+ # message router configuration
+ dmaapTopic: "AUTO"
+ # openstack configuration
+ openStackUserName: "vnf_user"
+ openStackRegion: "RegionOne"
+ openStackKeyStoneUrl: "http://1.2.3.4:5000"
+ openStackServiceTenantName: "service"
+ openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
+
+ # configure embedded mariadb
+ mariadb:
+ config:
+ mariadbRootPassword: password
+uui:
+ enabled: false
+vfc:
+ enabled: false
+vid:
+ enabled: false
+vnfsdk:
+ enabled: false
diff --git a/kubernetes/oneclick/createAll.bash b/kubernetes/oneclick/createAll.bash
index 72d852ded6..488f920e91 100755
--- a/kubernetes/oneclick/createAll.bash
+++ b/kubernetes/oneclick/createAll.bash
@@ -27,19 +27,18 @@ check_return_code(){
}
create_service_account() {
- cmd=`echo kubectl create clusterrolebinding $1-$2-admin-binding --clusterrole=cluster-admin --serviceaccount=$1-$2:default`
+ cmd=`echo kubectl create clusterrolebinding $1-admin-binding --clusterrole=cluster-admin --serviceaccount=$1:default`
eval ${cmd}
check_return_code $cmd
}
create_namespace() {
- cmd=`echo kubectl create namespace $1-$2`
+ cmd=`echo kubectl create namespace $1`
eval ${cmd}
- check_return_code $cmd
}
create_registry_key() {
- cmd=`echo kubectl --namespace $1-$2 create secret docker-registry $3 --docker-server=$4 --docker-username=$5 --docker-password=$6 --docker-email=$7`
+cmd=`echo kubectl --namespace $1 create secret docker-registry $2 --docker-server=$3 --docker-username=$4 --docker-password=$5 --docker-email=$6`
eval ${cmd}
check_return_code $cmd
}
@@ -84,7 +83,13 @@ create_onap_helm() {
fi
fi
- cmd=`echo helm install $LOCATION/$2/ --name $1-$2 --namespace $1 --set nsPrefix=$1,nodePortPrefix=$3 ${HELM_VALUES_ADDITION}`
+ # assign default auth token
+ if [[ -z $ONAP_DEFAULT_AUTH_TOKEN ]]; then
+ DEFAULT_SECRET=`kubectl get secrets -n $1 | grep default-token | awk '{ print $1}'`
+ ONAP_DEFAULT_AUTH_TOKEN=`kubectl get secrets $DEFAULT_SECRET -n $1 -o yaml | grep 'token:' | awk '{ print $2}' | base64 --decode`
+ fi
+
+ cmd=`echo helm install $LOCATION/$2/ --name $1-$2 --namespace $1 --set nsPrefix=$1,nodePortPrefix=$3,kubeMasterAuthToken=$ONAP_DEFAULT_AUTH_TOKEN ${HELM_VALUES_ADDITION}`
eval ${cmd}
check_return_code $cmd
}
@@ -100,6 +105,8 @@ MAX_INSTANCE=5
DU=$ONAP_DOCKER_USER
DP=$ONAP_DOCKER_PASS
+SINGLE_COMPONENT=false
+
while getopts ":n:u:s:i:a:du:dp:l:v:" PARAM; do
case $PARAM in
u)
@@ -119,6 +126,7 @@ while getopts ":n:u:s:i:a:du:dp:l:v:" PARAM; do
LOCATION=${OPTARG}
;;
a)
+ SINGLE_COMPONENT=true
APP=${OPTARG}
if [[ -z $APP ]]; then
usage
@@ -162,18 +170,21 @@ printf "\n********** Creating instance ${INSTANCE} of ONAP with port range ${sta
printf "\n********** Creating ONAP: ${ONAP_APPS[*]}\n"
+if [ "$SINGLE_COMPONENT" == "false" ]
+then
+ printf "\nCreating namespace **********\n"
+ create_namespace $NS
-printf "\n\n********** Creating deployments for ${HELM_APPS[*]} ********** \n"
+ printf "\nCreating registry secret **********\n"
+ create_registry_key $NS ${NS}-docker-registry-key $ONAP_DOCKER_REGISTRY $DU $DP $ONAP_DOCKER_MAIL
-for i in ${HELM_APPS[@]}; do
- printf "\nCreating namespace **********\n"
- create_namespace $NS $i
+ printf "\nCreating service account **********\n"
+ create_service_account $NS
+fi
- printf "\nCreating service account **********\n"
- create_service_account $NS $i
+printf "\n\n********** Creating deployments for ${HELM_APPS[*]} ********** \n"
- printf "\nCreating registry secret **********\n"
- create_registry_key $NS $i ${NS}-docker-registry-key $ONAP_DOCKER_REGISTRY $DU $DP $ONAP_DOCKER_MAIL
+for i in ${HELM_APPS[@]}; do
printf "\nCreating deployments and services **********\n"
create_onap_helm $NS $i $start
diff --git a/kubernetes/oneclick/deleteAll.bash b/kubernetes/oneclick/deleteAll.bash
index 53f1d1a9cb..9833af7909 100755
--- a/kubernetes/oneclick/deleteAll.bash
+++ b/kubernetes/oneclick/deleteAll.bash
@@ -3,17 +3,15 @@
. $(dirname "$0")/setenv.bash
delete_namespace() {
- _NS=$1-$2
- kubectl delete namespace $_NS
+ kubectl delete namespace $1
}
delete_service_account() {
- kubectl delete clusterrolebinding $1-$2-admin-binding
- printf "Service account $1-$2-admin-binding deleted.\n\n"
+ kubectl delete clusterrolebinding $1-admin-binding
}
delete_registry_key() {
- kubectl --namespace $1-$2 delete secret ${1}-docker-registry-key
+ kubectl --namespace $1 delete secret ${1}-docker-registry-key
}
delete_app_helm() {
@@ -25,13 +23,18 @@ wait_terminate() {
while true; do
declare -i _STATUS=0
for i in ${HELM_APPS[@]}; do
- kubectl get namespaces $1-$i > /dev/null 2>&1
- if [ "$?" -eq "0" ]; then
+ kubectl get pods --namespace $1 | grep -w " $i" > /dev/null 2>&1
+ if [ "$?" -ne "0" ]; then
_STATUS=1
break
fi
done
- if [ "$_STATUS" -eq "0" ]; then
+
+ if [ "$SINGLE_COMPONENT" == "false" ]; then
+ kubectl get namespaces $1 > /dev/null 2>&1
+ _STATUS=$?
+ fi
+ if [ "$_STATUS" -ne "0" ]; then
break
fi
sleep 2
@@ -60,7 +63,7 @@ APP=
WAIT_TERMINATE=true
SKIP_INTERACTIVE_CONFIRMATION=no
KUBECTL_CONTEXT=
-
+SINGLE_COMPONENT=false
while getopts ":c:n:u:s:a:yN" PARAM; do
case $PARAM in
u)
@@ -76,6 +79,7 @@ while getopts ":c:n:u:s:a:yN" PARAM; do
usage
exit 1
fi
+ SINGLE_COMPONENT=true
;;
N)
WAIT_TERMINATE=false
@@ -128,15 +132,16 @@ fi
printf "\n********** Cleaning up ONAP: ${ONAP_APPS[*]}\n"
for i in ${HELM_APPS[@]}; do
-
delete_app_helm $NS $i
- delete_namespace $NS $i
- delete_service_account $NS $i
-
done
-delete_app_helm $NS "config"
-kubectl delete namespace $NS
+if [ "$SINGLE_COMPONENT" == "false" ]
+then
+ delete_app_helm $NS "config"
+ delete_namespace $NS
+ delete_registry_key $NS
+ delete_service_account $NS
+fi
if $WAIT_TERMINATE; then
wait_terminate $NS
diff --git a/kubernetes/oneclick/setenv.bash b/kubernetes/oneclick/setenv.bash
index 312d2c45fb..3f1af4de8a 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=('consul' 'msb' 'mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc' 'dcaegen2' 'log' 'cli' 'multicloud' 'clamp' 'vnfsdk' 'uui' 'aaf' 'vfc' 'kube2msb' 'esr')
+# Deploying MSB first so the started ONAP services can be registered to MSB
+HELM_APPS=('consul' 'msb' 'mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc' 'dcaegen2' 'log' 'cli' 'multicloud' 'clamp' 'vnfsdk' 'uui' 'aaf' 'vfc' 'esr')
ONAP_DOCKER_REGISTRY=${ONAP_DOCKER_REGISTRY:-nexus3.onap.org:10001}
ONAP_DOCKER_USER=${ONAP_DOCKER_USER:-docker}
ONAP_DOCKER_PASS=${ONAP_DOCKER_PASS:-docker}
diff --git a/kubernetes/oneclick/tools/autoCleanConfig.bash b/kubernetes/oneclick/tools/autoCleanConfig.bash
new file mode 100644
index 0000000000..e274e0d0c5
--- /dev/null
+++ b/kubernetes/oneclick/tools/autoCleanConfig.bash
@@ -0,0 +1,54 @@
+########################################################################################
+# This script wraps {$OOM}/kubernetes/oneclick/deleteAll.sh script along with #
+# the following steps to clean up ONAP configure for specified namespace: #
+# - remove namespace #
+# - remove release #
+# - remove shared directory #
+# #
+# To run it, just enter the following command: #
+# ./autoCleanConfig.bash <namespace, default is "onap"> #
+########################################################################################
+#!/bin/bash
+
+
+NS=$1
+if [[ -z $NS ]]
+then
+ echo "Namespace is not specified, use onap namespace."
+ NS="onap"
+fi
+
+echo "Clean up $NS configuration"
+cd ..
+./deleteAll.bash -n $NS -y
+cd -
+
+echo "----------------------------------------------
+Force remove namespace..."
+kubectl delete namespace $NS
+echo "...done : kubectl get namespace
+-----------------------------------------------
+>>>>>>>>>>>>>> k8s namespace"
+kubectl get namespace
+while [[ ! -z `kubectl get namespace|grep $NS` ]]
+do
+ echo "Wait for namespace $NS to be deleted
+-----------------------------------------------
+>>>>>>>>>>>>>> k8s namespace"
+ kubectl get namespace
+ sleep 2
+done
+
+echo "Force delete helm process ..."
+helm delete $NS-config --purge --debug
+echo "...done : helm ls --all
+ -----------------------------------------------
+>>>>>>>>>>>>>> helm"
+helm ls --all
+
+echo "Remove $NS dockerdata..."
+sudo rm -rf /dockerdata-nfs/onap
+echo "...done : ls -altr /dockerdata-nfs
+ -----------------------------------------------
+>>>>>>>>>>>>>> /dockerdata-nfs directory"
+ls -altr /dockerdata-nfs
diff --git a/kubernetes/oneclick/tools/autoCreateConfig.bash b/kubernetes/oneclick/tools/autoCreateConfig.bash
new file mode 100644
index 0000000000..99ea03e1bb
--- /dev/null
+++ b/kubernetes/oneclick/tools/autoCreateConfig.bash
@@ -0,0 +1,65 @@
+########################################################################################
+# This script wraps {$OOM}/kubernetes/config/createConfig.sh script #
+# and will only terminated when the configuration is Completed or failed #
+# #
+# To run it, just enter the following command: #
+# ./autoCreateConfig.bash <namespace, default is "onap"> #
+########################################################################################
+#!/bin/bash
+
+
+NS=$1
+if [[ -z $NS ]]
+then
+ echo "Namespace is not specified, use onap namespace."
+ NS="onap"
+fi
+
+echo "Create $NS config under config directory..."
+cd ../../config
+./createConfig.sh -n $NS
+cd -
+
+
+echo "...done : kubectl get namespace
+-----------------------------------------------
+>>>>>>>>>>>>>> k8s namespace"
+kubectl get namespace
+
+
+echo "
+-----------------------------------------------
+>>>>>>>>>>>>>> helm : helm ls --all"
+helm ls --all
+
+
+echo "
+-----------------------------------------------
+>>>>>>>>>>>>>> pod : kubectl get pods -n $NS -a"
+kubectl get pods -n $NS -a
+
+
+while true
+do
+ echo "wait for $NS config pod reach to Completed STATUS"
+ sleep 5
+ echo "-----------------------------------------------"
+ kubectl get pods -n $NS -a
+
+ status=`kubectl get pods -n $NS -a |grep config |xargs echo | cut -d' ' -f3`
+
+ if [ "$status" = "Completed" ]
+ then
+ echo "$NS config is Completed!!!"
+ break
+ fi
+
+ if [ "$status" = "Error" ]
+ then
+ echo "
+$NS config is failed with Error!!!
+Logs are:"
+ kubectl logs config -n $NS -f
+ break
+ fi
+done
diff --git a/kubernetes/oneclick/tools/collectInfo.bash b/kubernetes/oneclick/tools/collectInfo.bash
new file mode 100644
index 0000000000..734c5a6c62
--- /dev/null
+++ b/kubernetes/oneclick/tools/collectInfo.bash
@@ -0,0 +1,171 @@
+#!/bin/bash
+
+NS=
+OUT_NAME=onap_info_$(date +%y.%m.%d_%H.%M.%S.%N)
+OUT_FILE=
+OUT_DIR=$(dirname "$0")
+TMP_DIR=$(dirname $(mktemp -u))
+CONTAINER_LOGS_PATH=/var/log/onap
+CP_CONTAINER_LOGS=false
+
+if [ ! -z "$DEBUG" ]; then
+ set -x
+fi
+
+usage() {
+ cat <<EOF
+Utility script collecting various information about ONAP deployment on kubernetes.
+
+Usage: $0 [PARAMs]
+-u : Display usage
+-n [NAMESPACE] : Kubernetes namespace (required)
+-a [APP] : Specify a specific ONAP component (default: all)
+-d [OUT_DIR] : Specify output folder for the collected info pack file
+ (default: current dir)
+-f [OUT_FILE] : Specify output file for the collected info
+ (default: file name with timestamp)
+-c : Collect log files from containers, from path ${CONTAINER_LOGS_PATH}
+EOF
+}
+
+call_with_log() {
+ local _cmd=$1
+ local _log=$2
+ # Make sure otput dir exists
+ mkdir -p "$(dirname "$_log")"
+ printf "Command: ${_cmd}\n" >> ${_log}
+ printf "================================================================================\n" >> ${_log}
+ eval "${_cmd}" >> ${_log} 2>&1
+ printf "================================================================================\n" >> ${_log}
+}
+
+collect_pod_info() {
+ local _ns=$1
+ local _id=$2
+ local _log_dir=$3
+ local _cp_logs=$4
+ declare -i _i=0
+ kubectl -n $_ns get pods $_id -o=jsonpath='{range .spec.containers[*]}{.name}{"\n"}{end}' | while read c; do
+ call_with_log "kubectl -n $_ns logs $_id -c $c" "$_log_dir/$_id-$c.log"
+ if [ "$_i" -eq "0" ] && [ "$_cp_logs" == "true" ]; then
+ # copy logs from 1st container only as logs dir is shared between the containers
+ local _cmd="kubectl cp $_ns/$_id:${CONTAINER_LOGS_PATH} $_log_dir/$_id-$c -c $c"
+ if [ -z "$DEBUG" ]; then
+ _cmd+=" > /dev/null 2>&1"
+ fi
+ eval "${_cmd}"
+ fi
+ ((_i++))
+ done
+}
+
+collect_ns_info() {
+ local _ns=$1
+ local _log_dir=$2/$_ns
+ call_with_log "kubectl -n $NS-$i get services -o=wide" "$_log_dir/list_services.log"
+ kubectl -n "$_ns" get services | while read i; do
+ local _id=`echo -n $i | tr -s ' ' | cut -d' ' -n -f1`
+ if [ "$_id" == "NAME" ]; then
+ continue
+ fi
+ call_with_log "kubectl -n $_ns describe services $_id" "$_log_dir/describe_services/$_id.log"
+ done
+ call_with_log "kubectl -n $NS-$i get pods -o=wide" "$_log_dir/list_pods.log"
+ kubectl -n "$_ns" get pods | while read i; do
+ local _id=`echo -n $i | tr -s ' ' | cut -d' ' -n -f1`
+ if [ "$_id" == "NAME" ]; then
+ continue
+ fi
+ call_with_log "kubectl -n $_ns describe pods $_id" "$_log_dir/describe_pods/$_id.log"
+ collect_pod_info "$_ns" "$_id" "$_log_dir/logs" "${CP_CONTAINER_LOGS}"
+ done
+}
+
+while getopts ":un:a:d:f:c" PARAM; do
+ case $PARAM in
+ u)
+ usage
+ exit 1
+ ;;
+ n)
+ NS=${OPTARG}
+ ;;
+ a)
+ APP=${OPTARG}
+ if [[ -z $APP ]]; then
+ usage
+ exit 1
+ fi
+ ;;
+ d)
+ OUT_DIR=${OPTARG}
+ if [[ -z $OUT_DIR ]]; then
+ usage
+ exit 1
+ fi
+ ;;
+ f)
+ OUT_FILE=${OPTARG}
+ if [[ -z $OUT_FILE ]]; then
+ usage
+ exit 1
+ fi
+ ;;
+ c)
+ CP_CONTAINER_LOGS=true
+ ;;
+ ?)
+ usage
+ exit
+ ;;
+ esac
+done
+
+if [ -z "$NS" ]; then
+ usage
+ exit 1
+fi
+
+if [[ -z $OUT_FILE ]]; then
+ OUT_FILE=$OUT_NAME.tgz
+fi
+
+if [ ! -z "$APP" ]; then
+ _APPS=($APP)
+else
+ _APPS=(`kubectl get namespaces | grep "^$NS-" | tr -s ' ' | cut -d' ' -n -f1 | sed -e "s/^$NS-//"`)
+fi
+
+printf "Collecting information about ONAP deployment...\n"
+printf "Components: %s\n" "${_APPS[*]}"
+
+# Collect common info
+mkdir -p ${TMP_DIR}/${OUT_NAME}/
+echo "${_APPS[*]}" > ${TMP_DIR}/${OUT_NAME}/component-list.log
+printf "Collecting Helm info\n"
+call_with_log "helm version" "${TMP_DIR}/${OUT_NAME}/helm-version.log"
+call_with_log "helm list" "${TMP_DIR}/${OUT_NAME}/helm-list.log"
+
+printf "Collecting Kubernetes info\n"
+call_with_log "kubectl version" "${TMP_DIR}/${OUT_NAME}/k8s-version.log"
+call_with_log "kubectl get nodes -o=wide" "${TMP_DIR}/${OUT_NAME}/k8s-nodes.log"
+call_with_log "kubectl cluster-info" "${TMP_DIR}/${OUT_NAME}/k8s-cluster-info.log"
+call_with_log "kubectl cluster-info dump" "${TMP_DIR}/${OUT_NAME}/k8s-cluster-info-dump.log"
+call_with_log "kubectl top node" "${TMP_DIR}/${OUT_NAME}/k8s-top-node.log"
+
+# Collect per-component info
+for i in ${_APPS[@]}; do
+ printf "Writing Kubernetes info of component $i\n"
+ collect_ns_info "$NS-$i" "${TMP_DIR}/${OUT_NAME}"
+done
+
+# Pack and cleanup
+mkdir -p ${OUT_DIR}
+_OUT_DIR=`readlink -e ${OUT_DIR}`
+printf "Packing output to ${_OUT_DIR}/${OUT_FILE}...\n"
+cd ${TMP_DIR}
+tar cfz ${_OUT_DIR}/${OUT_FILE} ${OUT_NAME}
+cd -
+printf "Cleaning up...\n"
+rm -rf ${TMP_DIR}/${OUT_NAME}
+printf "Done\n"
diff --git a/kubernetes/config/docker/init/src/config/policy/drools/settings.xml b/kubernetes/policy/resources/config/drools/settings.xml
index 2a9e2a0b24..2a9e2a0b24 100755
--- a/kubernetes/config/docker/init/src/config/policy/drools/settings.xml
+++ b/kubernetes/policy/resources/config/drools/settings.xml
diff --git a/kubernetes/policy/resources/config/log/drools/logback.xml b/kubernetes/policy/resources/config/log/drools/logback.xml
new file mode 100644
index 0000000000..daecf97850
--- /dev/null
+++ b/kubernetes/policy/resources/config/log/drools/logback.xml
@@ -0,0 +1,107 @@
+<!--
+ ============LICENSE_START=======================================================
+ policy-management
+ ================================================================================
+ 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=========================================================
+ -->
+
+<configuration scan="true" scanPeriod="30 seconds" debug="false">
+
+ <property name="logDir" value="/var/log/onap" />
+
+ <property name="errorLog" value="error" />
+ <property name="debugLog" value="debug" />
+ <property name="networkLog" value="network" />
+
+ <property name="debugPattern" value="[%date|%level|%logger{0}|%thread] %msg%n" />
+ <property name="errorPattern" value="${debugPattern}" />
+ <property name="networkPattern" value="[%d|%t]%m%n" />
+
+ <appender name="ErrorOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDir}/${errorLog}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDir}/${errorLog}.%i.log.zip</fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>5</maxIndex>
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>WARN</level>
+ </filter>
+ <triggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>15MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="AsyncErrorOut" class="ch.qos.logback.classic.AsyncAppender">
+ <appender-ref ref="ErrorOut" />
+ </appender>
+
+ <appender name="DebugOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDir}/${debugLog}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDir}/${debugLog}.%i.log.zip</fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>20MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="AsyncDebugOut" class="ch.qos.logback.classic.AsyncAppender">
+ <appender-ref ref="DebugOut" />
+ </appender>
+
+ <appender name="NetworkOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDir}/${networkLog}.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logDir}/${networkLog}.%i.log.zip</fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>9</maxIndex>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>15MB</maxFileSize>
+ </triggeringPolicy>
+ <encoder>
+ <pattern>${networkPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="AsyncNetworkOut" class="ch.qos.logback.classic.AsyncAppender">
+ <appender-ref ref="NetworkOut" />
+ </appender>
+
+ <logger name="network" level="INFO" additivity="false">
+ <appender-ref ref="AsyncNetworkOut" />
+ </logger>
+
+ <logger name="org.eclipse.jetty.server.RequestLog" level="info" additivity="false">
+ <appender-ref ref="AsyncNetworkOut" />
+ </logger>
+
+ <root level="INFO">
+ <appender-ref ref="AsyncDebugOut" />
+ <appender-ref ref="AsyncErrorOut" />
+ </root>
+
+</configuration> \ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/policy/ep_sdk_app/logback.xml b/kubernetes/policy/resources/config/log/ep_sdk_app/logback.xml
index d0871bdb4a..d0871bdb4a 100644
--- a/kubernetes/config/docker/init/src/config/log/policy/ep_sdk_app/logback.xml
+++ b/kubernetes/policy/resources/config/log/ep_sdk_app/logback.xml
diff --git a/kubernetes/policy/resources/config/log/filebeat/filebeat.yml b/kubernetes/policy/resources/config/log/filebeat/filebeat.yml
new file mode 100644
index 0000000000..89c6932577
--- /dev/null
+++ b/kubernetes/policy/resources/config/log/filebeat/filebeat.yml
@@ -0,0 +1,41 @@
+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: ["logstash.{{.Values.nsPrefix}}:5044"]
+ #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/config/docker/init/src/config/log/policy/pypdpserver/logback.xml b/kubernetes/policy/resources/config/log/pypdpserver/logback.xml
index c4b596b6d5..c4b596b6d5 100644
--- a/kubernetes/config/docker/init/src/config/log/policy/pypdpserver/logback.xml
+++ b/kubernetes/policy/resources/config/log/pypdpserver/logback.xml
diff --git a/kubernetes/config/docker/init/src/config/log/policy/xacml-pap-rest/logback.xml b/kubernetes/policy/resources/config/log/xacml-pap-rest/logback.xml
index 77068bb9aa..77068bb9aa 100644
--- a/kubernetes/config/docker/init/src/config/log/policy/xacml-pap-rest/logback.xml
+++ b/kubernetes/policy/resources/config/log/xacml-pap-rest/logback.xml
diff --git a/kubernetes/config/docker/init/src/config/log/policy/xacml-pdp-rest/logback.xml b/kubernetes/policy/resources/config/log/xacml-pdp-rest/logback.xml
index c9c05d922d..c9c05d922d 100644
--- a/kubernetes/config/docker/init/src/config/log/policy/xacml-pdp-rest/logback.xml
+++ b/kubernetes/policy/resources/config/log/xacml-pdp-rest/logback.xml
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/base.conf b/kubernetes/policy/resources/config/opt/policy/config/drools/base.conf
index f531c0fa85..e5bbd6637d 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/base.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/drools/base.conf
@@ -28,7 +28,7 @@ KEYSTORE_PASSWD=PolicyR0ck$
# Telemetry credentials
ENGINE_MANAGEMENT_PORT=9696
-ENGINE_MANAGEMENT_HOST=localhost
+ENGINE_MANAGEMENT_HOST=0.0.0.0
ENGINE_MANAGEMENT_USER=@1b3rt
ENGINE_MANAGEMENT_PASSWORD=31nst31n
@@ -43,14 +43,14 @@ repositoryPassword=admin123
# Relational (SQL) DB access
-SQL_HOST=mariadb.onap-policy
+SQL_HOST=mariadb.{{.Values.nsPrefix}}
SQL_USER=policy_user
SQL_PASSWORD=policy_user
# PDP-D DMaaP configuration channel
PDPD_CONFIGURATION_TOPIC=PDPD-CONFIGURATION
-PDPD_CONFIGURATION_SERVERS=dmaap.onap-message-router
+PDPD_CONFIGURATION_SERVERS=dmaap.{{.Values.nsPrefix}}
PDPD_CONFIGURATION_API_KEY=
PDPD_CONFIGURATION_API_SECRET=
PDPD_CONFIGURATION_CONSUMER_GROUP=
@@ -59,21 +59,42 @@ PDPD_CONFIGURATION_PARTITION_KEY=
# PAP
-PAP_HOST=pap.onap-policy
+PAP_HOST=pap.{{.Values.nsPrefix}}
PAP_USERNAME=testpap
PAP_PASSWORD=alpha123
# PDP-X
-PDP_HOST=pdp.onap-policy
+PDP_HOST=pdp.{{.Values.nsPrefix}}
PDP_USERNAME=testpdp
PDP_PASSWORD=alpha123
+PDP_CLIENT_USERNAME=python
+PDP_CLIENT_PASSWORD=test
+PDP_ENVIRONMENT=TEST
# DCAE DMaaP
-DCAE_TOPIC=unauthenticated.TCA_EVENT_OUTPUT
-DCAE_SERVERS=dcae-controller.onap-dcae
+DCAE_TOPIC=unauthenticated.DCAE_CL_OUTPUT
+DCAE_SERVERS=dmaap.{{.Values.nsPrefix}}
# Open DMaaP
-DMAAP_SERVERS=dmaap.onap-message-router
+DMAAP_SERVERS=dmaap.{{.Values.nsPrefix}}
+
+# AAI
+
+AAI_URL=https://aai.api.simpledemo.openecomp.org:8443
+AAI_USERNAME=POLICY
+AAI_PASSWORD=POLICY
+
+# MSO
+
+SO_URL=http://mso.{{.Values.nsPrefix}}:8080/ecomp/mso/infra
+SO_USERNAME=InfraPortalClient
+SO_PASSWORD=password1$
+
+# VFC
+
+VFC_URL=
+VFC_USERNAME=
+VFC_PASSWORD=
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/drools-tweaks.sh b/kubernetes/policy/resources/config/opt/policy/config/drools/drools-tweaks.sh
index 8bff59c2e7..8bff59c2e7 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/drools-tweaks.sh
+++ b/kubernetes/policy/resources/config/opt/policy/config/drools/drools-tweaks.sh
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/feature-healthcheck.conf b/kubernetes/policy/resources/config/opt/policy/config/drools/keys/feature-healthcheck.conf
index 31baed21e3..31baed21e3 100644
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/feature-healthcheck.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/drools/keys/feature-healthcheck.conf
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/policy-keystore b/kubernetes/policy/resources/config/opt/policy/config/drools/keys/policy-keystore
index ab25c3a341..ab25c3a341 100755..100644
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/policy-keystore
+++ b/kubernetes/policy/resources/config/opt/policy/config/drools/keys/policy-keystore
Binary files differ
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/policy-management.conf b/kubernetes/policy/resources/config/opt/policy/config/drools/policy-management.conf
index 843b832ea7..843b832ea7 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/drools/policy-management.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/drools/policy-management.conf
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/base.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/base.conf
index 9c87d9ca72..291743157b 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/base.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/base.conf
@@ -3,8 +3,8 @@ POLICY_HOME=/opt/app/policy
KEYSTORE_PASSWD=PolicyR0ck$
JDBC_DRIVER=org.mariadb.jdbc.Driver
-JDBC_URL=jdbc:mariadb://mariadb.onap-policy:3306/onap_sdk?failOverReadOnly=false&autoReconnect=true
-JDBC_LOG_URL=jdbc:mariadb://mariadb.onap-policy:3306/log?failOverReadOnly=false&autoReconnect=true
+JDBC_URL=jdbc:mariadb://mariadb.{{.Values.nsPrefix}}:3306/onap_sdk?failOverReadOnly=false&autoReconnect=true
+JDBC_LOG_URL=jdbc:mariadb://mariadb.{{.Values.nsPrefix}}:3306/log?failOverReadOnly=false&autoReconnect=true
JDBC_USER=policy_user
JDBC_PASSWORD=policy_user
@@ -21,4 +21,4 @@ ENVIRONMENT=TEST
#Micro Service Model Properties
policy_msOnapName=
-policy_msPolicyName= \ No newline at end of file
+policy_msPolicyName=
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/brmsgw-tweaks.sh b/kubernetes/policy/resources/config/opt/policy/config/pe/brmsgw-tweaks.sh
index d318d4d189..daa3596e6e 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/brmsgw-tweaks.sh
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/brmsgw-tweaks.sh
@@ -33,6 +33,6 @@ for DEP in ${DEPS_JSON_RUNTIME} ${DEPS_JSON_INSTALL}; do
if [ ! -f "${DEP}" ]; then
echo "warning: configuration does not exist: ${DEP}"
else
- sed -i -e "s/\"version\":.*/\"version\": \"${version}\"/g" "${DEP}"
+ sed -i -e "s/\"version\":.*-SNAPSHOT\"/\"version\": \"${version}\"/g" "${DEP}"
fi
done
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/brmsgw.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/brmsgw.conf
index 3cafc32a4c..d874237575 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/brmsgw.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/brmsgw.conf
@@ -4,8 +4,8 @@ BRMSGW_JMX_PORT=9989
COMPONENT_X_MX_MB=1024
COMPONENT_X_MS_MB=1024
-REST_PAP_URL=http://pap.onap-policy:9091/pap/
-REST_PDP_ID=http://pdp.onap-policy:8081/pdp/
+REST_PAP_URL=http://pap.{{.Values.nsPrefix}}:9091/pap/
+REST_PDP_ID=http://pdp.{{.Values.nsPrefix}}:8081/pdp/
PDP_HTTP_USER_ID=testpdp
PDP_HTTP_PASSWORD=alpha123
@@ -15,24 +15,21 @@ PDP_PAP_PDP_HTTP_PASSWORD=alpha123
M2_HOME=/usr/share/maven
snapshotRepositoryID=policy-nexus-snapshots
snapshotRepositoryName=Snapshots
-snapshotRepositoryURL=http://nexus.onap-policy:8081/nexus/content/repositories/snapshots
+snapshotRepositoryURL=http://nexus.{{.Values.nsPrefix}}:8081/nexus/content/repositories/snapshots
releaseRepositoryID=policy-nexus-releases
releaseRepositoryName=Releases
-releaseRepositoryURL=http://nexus.onap-policy:8081/nexus/content/repositories/releases
+releaseRepositoryURL=http://nexus.{{.Values.nsPrefix}}:8081/nexus/content/repositories/releases
repositoryUsername=admin
repositoryPassword=admin123
-UEB_URL=dmaap.onap-message-router
+UEB_URL=dmaap.{{.Values.nsPrefix}}
UEB_TOPIC=PDPD-CONFIGURATION
UEB_API_KEY=
UEB_API_SECRET=
groupID=org.onap.policy-engine
artifactID=drlPDPGroup
-VFW_GROUP_ID=org.onap.policy-engine.drools.vFW
-VFW_ARTIFACT_ID=policy-vFW-rules
-VDNS_GROUP_ID=org.onap.policy-engine.drools.vDNS
-VDNS_ARTIFACT_ID=policy-vDNS-rules
-
+AMSTERDAM_GROUP_ID=org.onap.policy-engine.drools.amsterdam
+AMSTERDAM_ARTIFACT_ID=policy-amsterdam-rules
# the java property is RESOURCE_NAME (uppercase), but the conf parameter is lowercase
resource_name=brmsgw_1
@@ -43,7 +40,7 @@ ENVIRONMENT=TEST
#Notification Properties... type can be either websocket, ueb, or dmaap
BRMS_NOTIFICATION_TYPE=websocket
-BRMS_UEB_URL=dmaap.onap-message-router
+BRMS_UEB_URL=dmaap.{{.Values.nsPrefix}}
BRMS_UEB_TOPIC=PDPD-CONFIGURATION
BRMS_UEB_DELAY=
BRMS_CLIENT_ID=python
@@ -52,5 +49,5 @@ BRMS_UEB_API_KEY=
BRMS_UEB_API_SECRET=
#Dependency.json file version
-BRMS_DEPENDENCY_VERSION=1.1.0-SNAPSHOT
+BRMS_DEPENDENCY_VERSION=1.2.0
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/console.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/console.conf
index b0a7888398..3ff708655c 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/console.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/console.conf
@@ -33,7 +33,7 @@ REST_ADMIN_REPOSITORY=repository
#
# Location where all the user workspaces are located.
#
-REST_ADMIN_WORKSPACE=${{POLICY_HOME}}/servers/console/bin/workspace
+REST_ADMIN_WORKSPACE=/opt/app/policy/servers/console/bin/workspace
#
# These can be set so the Admin Console knows who is logged on. Ideally, you can run the console in a J2EE
@@ -77,16 +77,16 @@ REFRESH_RATE=40000
#
-REST_PAP_URL=http://pap.onap-policy:9091/pap/
+REST_PAP_URL=http://pap.{{.Values.nsPrefix}}:9091/pap/
#
# Config/Action Properties location.
#
-REST_CONFIG_HOME=${{POLICY_HOME}}/servers/pap/webapps/Config/
-REST_ACTION_HOME=${{POLICY_HOME}}/servers/pap/webapps/Action/
-REST_CONFIG_URL=http://pap.onap-policy:9091/
-REST_CONFIG_WEBAPPS=${{POLICY_HOME}}/servers/pap/webapps/
+REST_CONFIG_HOME=/opt/app/policy/servers/pap/webapps/Config/
+REST_ACTION_HOME=/opt/app/policy/servers/pap/webapps/Action/
+REST_CONFIG_URL=http://pap.{{.Values.nsPrefix}}:9091/
+REST_CONFIG_WEBAPPS=/opt/app/policy/servers/pap/webapps/
# PAP account information
CONSOLE_PAP_HTTP_USER_ID=testpap
@@ -121,12 +121,12 @@ onap_application_name=
#-----------------------ONAP-PORTAL-Properties----------------------
-ONAP_REDIRECT_URL=http://portalapps.onap-portal:8989/ONAPPORTAL/login.htm
-ONAP_REST_URL=
+ONAP_REDIRECT_URL=http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/login.htm
+ONAP_REST_URL=http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/auxapi
ONAP_UEB_URL_LIST=
ONAP_PORTAL_INBOX_NAME=
ONAP_UEB_APP_KEY=
ONAP_UEB_APP_SECRET=
ONAP_UEB_APP_MAILBOX_NAME=
APP_DISPLAY_NAME=ONAP Policy
-ONAP_SHARED_CONTEXT_REST_URL=http://portalapps.onap-portal:8989/ONAPPORTAL/context
+ONAP_SHARED_CONTEXT_REST_URL=http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/context
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/elk.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/elk.conf
index 938954ce63..938954ce63 100644
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/elk.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/elk.conf
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/mysql.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/mysql.conf
index 28b9e3ca33..28b9e3ca33 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/mysql.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/mysql.conf
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pap-tweaks.sh b/kubernetes/policy/resources/config/opt/policy/config/pe/pap-tweaks.sh
index 36ac3689b1..36ac3689b1 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pap-tweaks.sh
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/pap-tweaks.sh
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pap.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/pap.conf
index 53c52aaceb..3f892c9f5a 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pap.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/pap.conf
@@ -13,8 +13,8 @@ TOMCAT_X_MX_MB=1024
# pap properties
-PAP_PDPS=${{POLICY_HOME}}/servers/pap/bin/pdps
-PAP_URL=http://pap.onap-policy:9091/pap/
+PAP_PDPS=/opt/app/policy/servers/pap/bin/pdps
+PAP_URL=http://pap.{{.Values.nsPrefix}}:9091/pap/
PAP_INITIATE_PDP=true
PAP_HEARTBEAT_INTERVAL=10000
@@ -26,7 +26,7 @@ REST_ADMIN_WORKSPACE=workspace
# PDP related properties
-PAP_PDP_URL=http://pdp.onap-policy:8081/pdp/
+PAP_PDP_URL=http://pdp.{{.Values.nsPrefix}}:8081/pdp/
PAP_PDP_HTTP_USER_ID=testpdp
PAP_PDP_HTTP_PASSWORD=alpha123
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/paplp.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/paplp.conf
index d25f11be3b..22ca8492b2 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/paplp.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/paplp.conf
@@ -3,8 +3,8 @@ LOGPARSER_JMX_PORT=9996
LOGPARSER_X_MS_MB=1024
LOGPARSER_X_MX_MB=1024
-SERVER=http://pap.onap-policy:9091/pap/
-LOGPATH=${{POLICY_HOME}}/servers/pap/logs/pap-rest.log
+SERVER=http://pap.{{.Values.nsPrefix}}:9091/pap/
+LOGPATH=/opt/app/policy/servers/pap/logs/pap-rest.log
PARSERLOGPATH=IntegrityMonitor.log
node_type=logparser
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdp-tweaks.sh b/kubernetes/policy/resources/config/opt/policy/config/pe/pdp-tweaks.sh
index f68253635a..f68253635a 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdp-tweaks.sh
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/pdp-tweaks.sh
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdp.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/pdp.conf
index d1dee77a11..c3af2238f0 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdp.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/pdp.conf
@@ -13,12 +13,12 @@ TOMCAT_X_MX_MB=1024
# pdp properties
-UEB_CLUSTER=dmaap.onap-message-router
+UEB_CLUSTER=dmaap.{{.Values.nsPrefix}}
-REST_PAP_URL=http://pap.onap-policy:9091/pap/
-REST_PDP_ID=http://pdp.onap-policy:8081/pdp/
-REST_PDP_CONFIG=${{POLICY_HOME}}/servers/pdp/bin/config
-REST_PDP_WEBAPPS=${{POLICY_HOME}}/servers/pdp/webapps
+REST_PAP_URL=http://pap.{{.Values.nsPrefix}}:9091/pap/
+REST_PDP_ID=http://pdp.{{.Values.nsPrefix}}:8081/pdp/
+REST_PDP_CONFIG=/opt/app/policy/servers/pdp/bin/config
+REST_PDP_WEBAPPS=/opt/app/policy/servers/pdp/webapps
REST_PDP_REGISTER=true
REST_PDP_REGISTER_SLEEP=15
REST_PDP_REGISTER_RETRIES=-1
@@ -51,3 +51,6 @@ PDP_DMAAP_AAF_PASSWORD=
#Required only, when we use AAF
POLICY_AAF_NAMESPACE=
POLICY_AAF_RESOURCE=
+
+# Indeterminate resolution
+DECISION_INDETERMINATE_RESPONSE=PERMIT
diff --git a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdplp.conf b/kubernetes/policy/resources/config/opt/policy/config/pe/pdplp.conf
index 8320caa56b..0e58cebbc6 100755
--- a/kubernetes/config/docker/init/src/config/policy/opt/policy/config/pe/pdplp.conf
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/pdplp.conf
@@ -3,8 +3,8 @@ LOGPARSER_JMX_PORT=9997
LOGPARSER_X_MS_MB=1024
LOGPARSER_X_MX_MB=1024
-SERVER=http://pdp.onap-policy:8081/pdp/
-LOGPATH=${{POLICY_HOME}}/servers/pdp/logs/pdp-rest.log
+SERVER=http://pdp.{{.Values.nsPrefix}}:8081/pdp/
+LOGPATH=/opt/app/policy/servers/pdp/logs/pdp-rest.log
PARSERLOGPATH=IntegrityMonitor.log
node_type=logparser
diff --git a/kubernetes/policy/resources/config/opt/policy/config/pe/push-policies.sh b/kubernetes/policy/resources/config/opt/policy/config/pe/push-policies.sh
new file mode 100755
index 0000000000..b9242cee78
--- /dev/null
+++ b/kubernetes/policy/resources/config/opt/policy/config/pe/push-policies.sh
@@ -0,0 +1,250 @@
+#! /bin/bash
+
+# forked from https://gerrit.onap.org/r/gitweb?p=policy/docker.git;a=blob;f=config/pe/push-policies.sh;h=555ab357e6b4f54237bf07ef5e6777d782564bc0;hb=refs/heads/amsterdam and adapted for OOM
+
+#########################################Upload BRMS Param Template##########################################
+
+echo "Upload BRMS Param Template"
+
+sleep 2
+
+wget -O cl-amsterdam-template.drl https://git.onap.org/policy/drools-applications/plain/controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl
+
+sleep 2
+
+curl -v --silent -X POST --header 'Content-Type: multipart/form-data' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -F "file=@cl-amsterdam-template.drl" -F "importParametersJson={\"serviceName\":\"ClosedLoopControlName\",\"serviceType\":\"BRMSPARAM\"}" 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/policyEngineImport'
+
+echo "PRELOAD_POLICIES is $PRELOAD_POLICIES"
+
+if [ "$PRELOAD_POLICIES" == "false" ]; then
+ exit 0
+fi
+
+#########################################Create BRMS Param policies##########################################
+
+echo "Create BRMSParam Operational Policies"
+
+sleep 2
+
+echo "Create BRMSParamvFirewall Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/html' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyConfigType": "BRMS_PARAM",
+ "policyName": "com.BRMSParamvFirewall",
+ "policyDescription": "BRMS Param vFirewall policy",
+ "policyScope": "com",
+ "attributes": {
+ "MATCHING": {
+ "controller" : "amsterdam"
+ },
+ "RULE": {
+ "templateName": "ClosedLoopControlName",
+ "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
+ "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+TBD+-+Cannot+be+known+until+instantiation+is+done%0D%0A++++++resourceID%3A+Eace933104d443b496b8.nodes.heat.vpg%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
+ }
+ }
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/createPolicy'
+
+sleep 2
+
+echo "Create BRMSParamvDNS Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/html' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyConfigType": "BRMS_PARAM",
+ "policyName": "com.BRMSParamvDNS",
+ "policyDescription": "BRMS Param vDNS policy",
+ "policyScope": "com",
+ "attributes": {
+ "MATCHING": {
+ "controller" : "amsterdam"
+ },
+ "RULE": {
+ "templateName": "ClosedLoopControlName",
+ "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
+ "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0D%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-scale-up%0D%0A++++name%3A+Create+a+new+VF+Module%0D%0A++++description%3A%0D%0A++++actor%3A+SO%0D%0A++++recipe%3A+VF+Module+Create%0D%0A++++target%3A%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
+ }
+ }
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/createPolicy'
+
+sleep 2
+
+echo "Create BRMSParamVOLTE Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/html' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyConfigType": "BRMS_PARAM",
+ "policyName": "com.BRMSParamVOLTE",
+ "policyDescription": "BRMS Param VOLTE policy",
+ "policyScope": "com",
+ "attributes": {
+ "MATCHING": {
+ "controller" : "amsterdam"
+ },
+ "RULE": {
+ "templateName": "ClosedLoopControlName",
+ "closedLoopControlName": "ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b",
+ "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+VFC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
+ }
+ }
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/createPolicy'
+
+sleep 2
+
+echo "Create BRMSParamvCPE Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/html' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyConfigType": "BRMS_PARAM",
+ "policyName": "com.BRMSParamvCPE",
+ "policyDescription": "BRMS Param vCPE policy",
+ "policyScope": "com",
+ "attributes": {
+ "MATCHING": {
+ "controller" : "amsterdam"
+ },
+ "RULE": {
+ "templateName": "ClosedLoopControlName",
+ "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
+ "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e%0D%0A++trigger_policy%3A+unique-policy-id-1-restart%0D%0A++timeout%3A+3600%0D%0A++abatement%3A+true%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-restart%0D%0A++++name%3A+Restart+the+VM%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+Restart%0D%0A++++target%3A%0D%0A++++++type%3A+VM%0D%0A++++retry%3A+3%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
+ }
+ }
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/createPolicy'
+
+#########################################Create Micro Service Config policies##########################################
+
+echo "Create MicroService Config Policies"
+
+sleep 2
+
+echo "Create MicroServicevFirewall Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "configBody": "{ \"service\": \"tca_policy\", \"location\": \"SampleServiceLocation\", \"uuid\": \"test\", \"policyName\": \"MicroServicevFirewall\", \"description\": \"MicroService vFirewall Policy\", \"configName\": \"SampleConfigName\", \"templateVersion\": \"OpenSource.version.1\", \"version\": \"1.1.0\", \"priority\": \"1\", \"policyScope\": \"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \"riskType\": \"SampleRiskType\", \"riskLevel\": \"1\", \"guard\": \"False\", \"content\": { \"tca_policy\": { \"domain\": \"measurementsForVfScaling\", \"metricsPerEventName\": [{ \"eventName\": \"vFirewallBroadcastPackets\", \"controlLoopSchemaType\": \"VNF\", \"policyScope\": \"DCAE\", \"policyName\": \"DCAE.Config_tca-hi-lo\", \"policyVersion\": \"v0.0.1\", \"thresholds\": [{ \"closedLoopControlName\": \"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\", \"thresholdValue\": 300, \"direction\": \"LESS_OR_EQUAL\", \"severity\": \"MAJOR\", \"closedLoopEventStatus\": \"ONSET\" }, { \"closedLoopControlName\": \"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\", \"thresholdValue\": 700, \"direction\": \"GREATER_OR_EQUAL\", \"severity\": \"CRITICAL\", \"closedLoopEventStatus\": \"ONSET\" } ] }] } } }",
+ "policyConfigType": "MicroService",
+ "policyName": "com.MicroServicevFirewall",
+ "onapName": "DCAE"
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/createPolicy'
+
+
+sleep 2
+
+echo "Create MicroServicevDNS Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "configBody": "{ \"service\": \"tca_policy\", \"location\": \"SampleServiceLocation\", \"uuid\": \"test\", \"policyName\": \"MicroServicevDNS\", \"description\": \"MicroService vDNS Policy\", \"configName\": \"SampleConfigName\", \"templateVersion\": \"OpenSource.version.1\", \"version\": \"1.1.0\", \"priority\": \"1\", \"policyScope\": \"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\", \"riskType\": \"SampleRiskType\", \"riskLevel\": \"1\", \"guard\": \"False\", \"content\": { \"tca_policy\": { \"domain\": \"measurementsForVfScaling\", \"metricsPerEventName\": [{ \"eventName\": \"vLoadBalancer\", \"controlLoopSchemaType\": \"VM\", \"policyScope\": \"DCAE\", \"policyName\": \"DCAE.Config_tca-hi-lo\", \"policyVersion\": \"v0.0.1\", \"thresholds\": [{ \"closedLoopControlName\": \"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta\", \"thresholdValue\": 300, \"direction\": \"GREATER_OR_EQUAL\", \"severity\": \"CRITICAL\", \"closedLoopEventStatus\": \"ONSET\" }] }] } } }",
+ "policyConfigType": "MicroService",
+ "policyName": "com.MicroServicevDNS",
+ "onapName": "DCAE"
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/createPolicy'
+
+
+sleep 2
+
+echo "Create MicroServicevCPE Policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "configBody": "{ \"service\": \"tca_policy\", \"location\": \"SampleServiceLocation\", \"uuid\": \"test\", \"policyName\": \"MicroServicevCPE\", \"description\": \"MicroService vCPE Policy\", \"configName\": \"SampleConfigName\", \"templateVersion\": \"OpenSource.version.1\", \"version\": \"1.1.0\", \"priority\": \"1\", \"policyScope\": \"resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"riskType\": \"SampleRiskType\", \"riskLevel\": \"1\", \"guard\": \"False\", \"content\": { \"tca_policy\": { \"domain\": \"measurementsForVfScaling\", \"metricsPerEventName\": [{ \"eventName\": \"Measurement_vGMUX\", \"controlLoopSchemaType\": \"VNF\", \"policyScope\": \"DCAE\", \"policyName\": \"DCAE.Config_tca-hi-lo\", \"policyVersion\": \"v0.0.1\", \"thresholds\": [{ \"closedLoopControlName\": \"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\", \"thresholdValue\": 0, \"direction\": \"EQUAL\", \"severity\": \"MAJOR\", \"closedLoopEventStatus\": \"ABATED\" }, { \"closedLoopControlName\": \"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e\", \"version\": \"1.0.2\", \"fieldPath\": \"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value\", \"thresholdValue\": 0, \"direction\": \"GREATER\", \"severity\": \"CRITICAL\", \"closedLoopEventStatus\": \"ONSET\" }] }] } } }",
+ "policyConfigType": "MicroService",
+ "policyName": "com.MicroServicevCPE",
+ "onapName": "DCAE"
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/createPolicy'
+
+
+#########################################Creating Decision Guard policy#########################################
+
+sleep 2
+
+echo "Creating Decision Guard policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyClass": "Decision",
+ "policyName": "com.AllPermitGuard",
+ "policyDescription": "Testing all Permit YAML Guard Policy",
+ "ecompName": "PDPD",
+ "ruleProvider": "GUARD_YAML",
+ "attributes": {
+ "MATCHING": {
+ "actor": ".*",
+ "recipe": ".*",
+ "targets": ".*",
+ "clname": ".*",
+ "limit": "10",
+ "timeWindow": "1",
+ "timeUnits": "minute",
+ "guardActiveStart": "00:00:01-05:00",
+ "guardActiveEnd": "00:00:00-05:00"
+ }
+ }
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/createPolicy'
+
+#########################################Push Decision policy#########################################
+
+sleep 2
+
+echo "Push Decision policy"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.AllPermitGuard",
+ "policyType": "DECISION"
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/pushPolicy'
+
+#########################################Pushing BRMS Param policies##########################################
+
+echo "Pushing BRMSParam Operational policies"
+
+sleep 2
+
+echo "pushPolicy : PUT : com.BRMSParamvFirewall"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.BRMSParamvFirewall",
+ "policyType": "BRMS_Param"
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/pushPolicy'
+
+sleep 2
+
+echo "pushPolicy : PUT : com.BRMSParamvDNS"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.BRMSParamvDNS",
+ "policyType": "BRMS_Param"
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/pushPolicy'
+
+sleep 2
+
+echo "pushPolicy : PUT : com.BRMSParamVOLTE"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.BRMSParamVOLTE",
+ "policyType": "BRMS_Param"
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/pushPolicy'
+
+sleep 2
+
+echo "pushPolicy : PUT : com.BRMSParamvCPE"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.BRMSParamvCPE",
+ "policyType": "BRMS_Param"
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/pushPolicy'
+
+#########################################Pushing MicroService Config policies##########################################
+
+echo "Pushing MicroService Config policies"
+
+sleep 2
+
+echo "pushPolicy : PUT : com.MicroServicevFirewall"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.MicroServicevFirewall",
+ "policyType": "MicroService"
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/pushPolicy'
+
+sleep 10
+
+echo "pushPolicy : PUT : com.MicroServicevDNS"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.MicroServicevDNS",
+ "policyType": "MicroService"
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/pushPolicy'
+
+sleep 10
+
+echo "pushPolicy : PUT : com.MicroServicevCPE"
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.MicroServicevCPE",
+ "policyType": "MicroService"
+}' 'http://pdp.{{.Values.nsPrefix}}:8081/pdp/api/pushPolicy'
diff --git a/kubernetes/policy/scripts/update-vfw-op-policy.sh b/kubernetes/policy/scripts/update-vfw-op-policy.sh
new file mode 100755
index 0000000000..39483a0fb7
--- /dev/null
+++ b/kubernetes/policy/scripts/update-vfw-op-policy.sh
@@ -0,0 +1,93 @@
+#!/bin/bash
+
+if [ "$#" -ne 4 ]; then
+ echo "Usage: $(basename $0) <k8s-host> <policy-pdp-node-port> <policy-drools-node-port> <resource-id>"
+ exit 1
+fi
+
+K8S_HOST=$1
+POLICY_PDP_PORT=$2
+POLICY_DROOLS_PORT=$3
+RESOURCE_ID=$4
+
+echo
+echo
+echo "Removing the vFW Policy from PDP.."
+echo
+echo
+
+curl -v -X DELETE --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyComponent" : "PDP",
+ "policyName": "com.BRMSParamvFirewall",
+ "policyType": "BRMS_Param"
+}' http://${K8S_HOST}:${POLICY_PDP_PORT}/pdp/api/deletePolicy
+
+sleep 20
+
+echo
+
+echo
+echo "Updating vFW Operational Policy .."
+echo
+
+curl -v -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "policyConfigType": "BRMS_PARAM",
+ "policyName": "com.BRMSParamvFirewall",
+ "policyDescription": "BRMS Param vFirewall policy",
+ "policyScope": "com",
+ "attributes": {
+ "MATCHING": {
+ "controller": "amsterdam"
+ },
+ "RULE": {
+ "templateName": "ClosedLoopControlName",
+ "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
+ "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a%0D%0A++trigger_policy%3A+unique-policy-id-1-modifyConfig%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0A+%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-modifyConfig%0D%0A++++name%3A+modify+packet+gen+config%0D%0A++++description%3A%0D%0A++++actor%3A+APPC%0D%0A++++recipe%3A+ModifyConfig%0D%0A++++target%3A%0D%0A++++++%23+TBD+-+Cannot+be+known+until+instantiation+is+done%0D%0A++++++resourceID%3A+'${RESOURCE_ID}'%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+300%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
+ }
+ }
+}' http://${K8S_HOST}:${POLICY_PDP_PORT}/pdp/api/updatePolicy
+
+sleep 5
+
+echo
+echo
+echo "Pushing the vFW Policy .."
+echo
+echo
+
+curl -v --silent -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' --header 'ClientAuth: cHl0aG9uOnRlc3Q=' --header 'Authorization: Basic dGVzdHBkcDphbHBoYTEyMw==' --header 'Environment: TEST' -d '{
+ "pdpGroup": "default",
+ "policyName": "com.BRMSParamvFirewall",
+ "policyType": "BRMS_Param"
+}' http://${K8S_HOST}:${POLICY_PDP_PORT}/pdp/api/pushPolicy
+
+sleep 20
+
+echo
+echo
+echo "Restarting PDP-D .."
+echo
+echo
+
+POD=$(kubectl --namespace onap-policy get pods | sed 's/ .*//'| grep drools)
+kubectl --namespace onap-policy exec -it ${POD} -- bash -c "source /opt/app/policy/etc/profile.d/env.sh && policy stop && sleep 5 && policy start"
+
+sleep 20
+
+echo
+echo
+echo "PDP-D amsterdam maven coordinates .."
+echo
+echo
+
+curl -vvv --silent --user @1b3rt:31nst31n -X GET http://${K8S_HOST}:${POLICY_DROOLS_PORT}/policy/pdp/engine/controllers/amsterdam/drools | python -m json.tool
+
+
+echo
+echo
+echo "PDP-D control loop updated .."
+echo
+echo
+
+curl -v --silent --user @1b3rt:31nst31n -X GET http://${K8S_HOST}:${POLICY_DROOLS_PORT}/policy/pdp/engine/controllers/amsterdam/drools/facts/closedloop-amsterdam/org.onap.policy.controlloop.Params | python -m json.tool
diff --git a/kubernetes/policy/templates/all-services.yaml b/kubernetes/policy/templates/all-services.yaml
index a1c480458d..3971b29b73 100644
--- a/kubernetes/policy/templates/all-services.yaml
+++ b/kubernetes/policy/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: mariadb
- namespace: "{{ .Values.nsPrefix }}-policy"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: mariadb
spec:
@@ -22,7 +22,7 @@ metadata:
labels:
app: nexus
name: nexus
- namespace: "{{ .Values.nsPrefix }}-policy"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: nexus-port
@@ -39,12 +39,15 @@ metadata:
labels:
app: drools
name: drools
- namespace: "{{ .Values.nsPrefix }}-policy"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: "drools-port"
port: 6969
nodePort: {{ .Values.nodePortPrefix }}17
+ - name: "drools-port2"
+ port: 9696
+ nodePort: {{ .Values.nodePortPrefix }}21
selector:
app: drools
type: NodePort
@@ -55,7 +58,7 @@ apiVersion: v1
kind: Service
metadata:
name: pap
- namespace: "{{ .Values.nsPrefix }}-policy"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: pap
spec:
@@ -76,7 +79,7 @@ apiVersion: v1
kind: Service
metadata:
name: pdp
- namespace: "{{ .Values.nsPrefix }}-policy"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: pdp
annotations:
@@ -114,7 +117,7 @@ apiVersion: v1
kind: Service
metadata:
name: brmsgw
- namespace: "{{ .Values.nsPrefix }}-policy"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: brmsgw
spec:
@@ -125,4 +128,4 @@ spec:
selector:
app: brmsgw
type: NodePort
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/policy/templates/dep-brmsgw.yaml b/kubernetes/policy/templates/dep-brmsgw.yaml
index 7a1bcdec49..25bf0c678b 100644
--- a/kubernetes/policy/templates/dep-brmsgw.yaml
+++ b/kubernetes/policy/templates/dep-brmsgw.yaml
@@ -2,10 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: brmsgw
- namespace: "{{ .Values.nsPrefix }}-policy"
+ name: policy-brmsgw
+ namespace: "{{ .Values.nsPrefix }}"
spec:
- replicas: 1
+ replicas: {{ .Values.brmsgwReplicas }}
selector:
matchLabels:
app: brmsgw
@@ -13,20 +13,14 @@ spec:
metadata:
labels:
app: brmsgw
- name: brmsgw
+ name: policy-brmsgw
spec:
initContainers:
- command:
- /root/ready.py
args:
- --container-name
- - mariadb
- - --container-name
- - nexus
- - --container-name
- pap
- - --container-name
- - pdp
env:
- name: NAMESPACE
valueFrom:
@@ -55,8 +49,9 @@ spec:
hostPath:
path: /etc/localtime
- name: pe
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/opt/policy/config/pe/
+ configMap:
+ name: policy-dep-pe-configmap
+ defaultMode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/policy/templates/dep-drools.yaml b/kubernetes/policy/templates/dep-drools.yaml
index 48ef16e3b2..ef9636ceef 100644
--- a/kubernetes/policy/templates/dep-drools.yaml
+++ b/kubernetes/policy/templates/dep-drools.yaml
@@ -2,10 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: drools
- namespace: "{{ .Values.nsPrefix }}-policy"
+ name: policy-drools
+ namespace: "{{ .Values.nsPrefix }}"
spec:
- replicas: 1
+ replicas: {{ .Values.droolsReplicas }}
selector:
matchLabels:
app: drools
@@ -13,7 +13,7 @@ spec:
metadata:
labels:
app: drools
- name: drools
+ name: policy-drools
spec:
initContainers:
- command:
@@ -23,12 +23,6 @@ spec:
- mariadb
- --container-name
- nexus
- - --container-name
- - pap
- - --container-name
- - pdp
- - --container-name
- - brmsgw
env:
- name: NAMESPACE
valueFrom:
@@ -38,6 +32,10 @@ spec:
image: "{{ .Values.image.readiness }}:{{ .Values.image.readinessVersion }}"
imagePullPolicy: {{ .Values.pullPolicy }}
name: drools-readiness
+ hostAliases:
+ - ip: "{{ .Values.aaiServiceClusterIp }}"
+ hostnames:
+ - "aai.api.simpledemo.openecomp.org"
containers:
- command:
- /bin/bash
@@ -57,14 +55,29 @@ spec:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /tmp/policy-install/config
- name: drools
+ - mountPath: /tmp/policy-install/config/policy-keystore
+ name: drools-secret
+ subPath: policy-keystore
+ - mountPath: /tmp/policy-install/config/feature-healthcheck.conf
+ name: drools-secret
+ subPath: feature-healthcheck.conf
+ - mountPath: /tmp/policy-install/config/base.conf
+ name: drools-config
+ subPath: base.conf
+ - mountPath: /tmp/policy-install/config/policy-management.conf
+ name: drools-config
+ subPath: policy-management.conf
+ - mountPath: /tmp/policy-install/config/drools-tweaks.sh
+ name: drools-config
+ subPath: drools-tweaks.sh
- mountPath: /usr/share/maven/conf/settings.xml
name: drools-settingsxml
+ subPath: settings.xml
- mountPath: /var/log/onap
name: policy-logs
- mountPath: /tmp/logback.xml
name: policy-logback
+ subPath: logback.xml
lifecycle:
postStart:
exec:
@@ -75,6 +88,7 @@ spec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: policy-logs
- mountPath: /usr/share/filebeat/data
@@ -84,21 +98,41 @@ spec:
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: policy-filebeat-configmap
- name: policy-logs
emptyDir: {}
- name: policy-data-filebeat
emptyDir: {}
- name: policy-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/policy/drools/logback.xml
+ configMap:
+ name: policy-drools-log-configmap
- name: drools-settingsxml
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/drools/settings.xml
- - name: drools
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/opt/policy/config/drools/
+ configMap:
+ name: policy-dep-drools-settings-configmap
+ - name: drools-config
+ configMap:
+ name: policy-dep-drools-configmap
+ items:
+ - key: base.conf
+ path: base.conf
+ mode: 0755
+ - key: policy-management.conf
+ path: policy-management.conf
+ mode: 0755
+ - key: drools-tweaks.sh
+ path: drools-tweaks.sh
+ mode: 0755
+ - name: drools-secret
+ secret:
+ secretName: policy-dep-drools-secret
+ items:
+ - key: policy-keystore
+ path: policy-keystore
+ mode: 0644
+ - key: feature-healthcheck.conf
+ path: feature-healthcheck.conf
+ mode: 0644
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/policy/templates/dep-maria.yaml b/kubernetes/policy/templates/dep-maria.yaml
index c0f5060884..9ac17daa88 100644
--- a/kubernetes/policy/templates/dep-maria.yaml
+++ b/kubernetes/policy/templates/dep-maria.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: mariadb
- namespace: "{{ .Values.nsPrefix }}-policy"
+ name: policy-mariadb
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.mariadbReplicas }}
selector:
matchLabels:
app: mariadb
@@ -12,6 +13,7 @@ spec:
metadata:
labels:
app: mariadb
+ name: policy-mariadb
spec:
hostname: mariadb
containers:
@@ -24,8 +26,6 @@ spec:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /var/lib/mysql
- name: policy-mariadb-data
readinessProbe:
tcpSocket:
port: 3306
@@ -35,9 +35,6 @@ spec:
- name: localtime
hostPath:
path: /etc/localtime
- - name: policy-mariadb-data
- persistentVolumeClaim:
- claimName: policy-db
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/policy/templates/dep-nexus.yaml b/kubernetes/policy/templates/dep-nexus.yaml
index 4adb05f630..c63e0af685 100644
--- a/kubernetes/policy/templates/dep-nexus.yaml
+++ b/kubernetes/policy/templates/dep-nexus.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: nexus
- namespace: "{{ .Values.nsPrefix }}-policy"
+ name: policy-nexus
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.nexusReplicas }}
selector:
matchLabels:
app: nexus
@@ -12,7 +13,7 @@ spec:
metadata:
labels:
app: nexus
- name: nexus
+ name: policy-nexus
spec:
initContainers:
- command:
diff --git a/kubernetes/policy/templates/dep-pap.yaml b/kubernetes/policy/templates/dep-pap.yaml
index 523cfd35ff..389fc6b3eb 100644
--- a/kubernetes/policy/templates/dep-pap.yaml
+++ b/kubernetes/policy/templates/dep-pap.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: pap
- namespace: "{{ .Values.nsPrefix }}-policy"
+ name: policy-pap
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.papReplicas }}
selector:
matchLabels:
app: pap
@@ -12,15 +13,13 @@ spec:
metadata:
labels:
app: pap
- name: pap
+ name: policy-pap
spec:
initContainers:
- command:
- /root/ready.py
args:
- --container-name
- - nexus
- - --container-name
- mariadb
env:
- name: NAMESPACE
@@ -52,6 +51,9 @@ spec:
image: "{{ .Values.image.policyPe }}:{{ .Values.image.policyPeVersion }}"
imagePullPolicy: {{ .Values.pullPolicy }}
name: pap
+ env:
+ - name: PRELOAD_POLICIES
+ value: "true"
ports:
- containerPort: 8443
- containerPort: 9091
@@ -70,8 +72,10 @@ spec:
name: policy-logs
- mountPath: /tmp/policy-install/logback.xml
name: policy-sdk-logback
+ subPath: logback.xml
- mountPath: /tmp/logback.xml
name: policy-logback
+ subPath: logback.xml
lifecycle:
postStart:
exec:
@@ -82,6 +86,7 @@ spec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: policy-logs
- mountPath: /usr/share/filebeat/data
@@ -91,21 +96,22 @@ spec:
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: policy-filebeat-configmap
- name: policy-logs
emptyDir: {}
- name: policy-data-filebeat
emptyDir: {}
- name: policy-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/policy/xacml-pap-rest/logback.xml
+ configMap:
+ name: policy-pap-log-configmap
- name: policy-sdk-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/policy/ep_sdk_app/logback.xml
+ configMap:
+ name: policy-sdk-log-configmap
- name: pe
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/opt/policy/config/pe/
+ configMap:
+ name: policy-dep-pe-configmap
+ defaultMode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/policy/templates/dep-pdp.yaml b/kubernetes/policy/templates/dep-pdp.yaml
index 3763b95bb2..6740f1d422 100644
--- a/kubernetes/policy/templates/dep-pdp.yaml
+++ b/kubernetes/policy/templates/dep-pdp.yaml
@@ -2,10 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: pdp
- namespace: "{{ .Values.nsPrefix }}-policy"
+ name: policy-pdp
+ namespace: "{{ .Values.nsPrefix }}"
spec:
- replicas: 1
+ replicas: {{ .Values.pdpReplicas }}
selector:
matchLabels:
app: pdp
@@ -13,17 +13,13 @@ spec:
metadata:
labels:
app: pdp
- name: pdp
+ name: policy-pdp
spec:
initContainers:
- command:
- /root/ready.py
args:
- --container-name
- - mariadb
- - --container-name
- - nexus
- - --container-name
- pap
env:
- name: NAMESPACE
@@ -59,6 +55,7 @@ spec:
name: policy-logs
- mountPath: /tmp/logback.xml
name: policy-logback
+ subPath: logback.xml
lifecycle:
postStart:
exec:
@@ -69,6 +66,7 @@ spec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: policy-logs
- mountPath: /usr/share/filebeat/data
@@ -78,18 +76,19 @@ spec:
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: policy-filebeat-configmap
- name: policy-logs
emptyDir: {}
- name: policy-data-filebeat
emptyDir: {}
- name: policy-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/policy/xacml-pdp-rest/logback.xml
+ configMap:
+ name: policy-pdp-log-configmap
- name: pe
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/opt/policy/config/pe/
+ configMap:
+ name: policy-dep-pe-configmap
+ defaultMode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/policy/templates/policy-deployment-configmap.yaml b/kubernetes/policy/templates/policy-deployment-configmap.yaml
new file mode 100644
index 0000000000..d59ba617fa
--- /dev/null
+++ b/kubernetes/policy/templates/policy-deployment-configmap.yaml
@@ -0,0 +1,27 @@
+#{{ if not .Values.disablePolicyDrools }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-dep-drools-settings-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/drools/settings.xml").AsConfig . | indent 2 }}
+#{{ end }}
+---
+#{{ if not .Values.disablePolicyPdp }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-dep-pe-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/opt/policy/config/pe/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-dep-drools-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/opt/policy/config/drools/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/policy/templates/policy-deployment-secret.yaml b/kubernetes/policy/templates/policy-deployment-secret.yaml
new file mode 100644
index 0000000000..6fe52ead4e
--- /dev/null
+++ b/kubernetes/policy/templates/policy-deployment-secret.yaml
@@ -0,0 +1,10 @@
+#{{ if not .Values.disablePolicyDrools }}
+apiVersion: v1
+kind: Secret
+metadata:
+ name: policy-dep-drools-secret
+ namespace: {{ .Values.nsPrefix }}
+type: Opaque
+data:
+{{ (.Files.Glob "resources/config/opt/policy/config/drools/keys/*").AsSecrets | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/policy/templates/policy-log-configmap.yaml b/kubernetes/policy/templates/policy-log-configmap.yaml
new file mode 100644
index 0000000000..b1a9e0999c
--- /dev/null
+++ b/kubernetes/policy/templates/policy-log-configmap.yaml
@@ -0,0 +1,45 @@
+#{{ if not .Values.disablePolicyPap }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-pap-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/xacml-pap-rest/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-sdk-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/ep_sdk_app/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+#{{ end }}
+#{{ if not .Values.disablePolicyPdp }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-pdp-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/xacml-pdp-rest/*").AsConfig . | indent 2 }}
+#{{ end }}
+#{{ if not .Values.disablePolicyDrools }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: policy-drools-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/drools/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/policy/templates/policy-pv-pvc.yaml b/kubernetes/policy/templates/policy-pv-pvc.yaml
deleted file mode 100644
index 5dc0c61c43..0000000000
--- a/kubernetes/policy/templates/policy-pv-pvc.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-#{{ if not .Values.disablePolicyMariadb }}
-apiVersion: v1
-kind: PersistentVolume
-metadata:
- name: "{{ .Values.nsPrefix }}-policy-db"
- namespace: "{{ .Values.nsPrefix }}-policy"
- labels:
- name: "{{ .Values.nsPrefix }}-policy-db"
-spec:
- capacity:
- storage: 2Gi
- accessModes:
- - ReadWriteMany
- persistentVolumeReclaimPolicy: Retain
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/policy/mariadb/data/
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
- name: policy-db
- namespace: "{{ .Values.nsPrefix }}-policy"
-spec:
- accessModes:
- - ReadWriteMany
- resources:
- requests:
- storage: 2Gi
- selector:
- matchLabels:
- name: "{{ .Values.nsPrefix }}-policy-db"
-#{{ end }} \ No newline at end of file
diff --git a/kubernetes/policy/values.yaml b/kubernetes/policy/values.yaml
index ce037d896d..3af4af893e 100644
--- a/kubernetes/policy/values.yaml
+++ b/kubernetes/policy/values.yaml
@@ -1,9 +1,19 @@
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+
+# POLICY hotfix - Note this must be temporary
+# See https://jira.onap.org/browse/POLICY-510
+aaiServiceClusterIp: 10.43.255.254
+brmsgwReplicas: 1
+droolsReplicas: 1
+mariadbReplicas: 1
+nexusReplicas: 1
+papReplicas: 1
+pdpReplicas: 1
image:
readiness: oomk8s/readiness-check
- readinessVersion: 1.0.0
+ readinessVersion: 1.1.0
policyPe: nexus3.onap.org:10001/onap/policy/policy-pe
policyPeVersion: v1.1.1
policyDrools: nexus3.onap.org:10001/onap/policy/policy-drools
@@ -13,4 +23,4 @@ image:
policyNexus: nexus3.onap.org:10001/onap/policy/policy-nexus
policyNexusVersion: v1.1.1
ubuntu: ubuntu:16.04
- filebeat: docker.elastic.co/beats/filebeat:5.5.0 \ No newline at end of file
+ filebeat: docker.elastic.co/beats/filebeat:5.5.0
diff --git a/kubernetes/portal/docker/init/ubuntu/Dockerfile b/kubernetes/portal/docker/init/ubuntu/Dockerfile
deleted file mode 100644
index 779a7fa921..0000000000
--- a/kubernetes/portal/docker/init/ubuntu/Dockerfile
+++ /dev/null
@@ -1,11 +0,0 @@
-FROM ubuntu:16.04
-
-ENV no_proxy "localhost,127.0.0.1,.cluster.local,$KUBERNETES_SERVICE_HOST"
-# Setup Corporate proxy
-ENV https_proxy ${HTTPS_PROXY}
-ENV http_proxy ${HTTP_PROXY}
-
-RUN apt-get update
-RUN apt-get install -y host dnsutils
-
-VOLUME /ubuntu-init
diff --git a/kubernetes/portal/resources/config/log/filebeat/filebeat.yml b/kubernetes/portal/resources/config/log/filebeat/filebeat.yml
new file mode 100644
index 0000000000..89c6932577
--- /dev/null
+++ b/kubernetes/portal/resources/config/log/filebeat/filebeat.yml
@@ -0,0 +1,41 @@
+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: ["logstash.{{.Values.nsPrefix}}:5044"]
+ #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/config/docker/init/src/config/log/portal/onapportal/logback.xml b/kubernetes/portal/resources/config/log/portal/onapportal/logback.xml
index be55dc9cff..be55dc9cff 100644
--- a/kubernetes/config/docker/init/src/config/log/portal/onapportal/logback.xml
+++ b/kubernetes/portal/resources/config/log/portal/onapportal/logback.xml
diff --git a/kubernetes/config/docker/init/src/config/log/portal/onapportalsdk/logback.xml b/kubernetes/portal/resources/config/log/portal/onapportalsdk/logback.xml
index 32a790c6a3..32a790c6a3 100644
--- a/kubernetes/config/docker/init/src/config/log/portal/onapportalsdk/logback.xml
+++ b/kubernetes/portal/resources/config/log/portal/onapportalsdk/logback.xml
diff --git a/kubernetes/config/docker/init/src/config/portal/mariadb/oom_updates.sql b/kubernetes/portal/resources/config/mariadb/oom_updates.sql
index 3c7206c510..781b04626c 100644
--- a/kubernetes/config/docker/init/src/config/portal/mariadb/oom_updates.sql
+++ b/kubernetes/portal/resources/config/mariadb/oom_updates.sql
@@ -5,3 +5,4 @@ Any updates required by OOM to the portaldb are made here.
while the OOM K8s version has these service split up.
*/
UPDATE fn_app SET app_rest_endpoint = 'http://sdc.api.be.simpledemo.onap.org:8080/api/v2' where app_name = 'SDC';
+UPDATE fn_app SET app_url = 'http://cli.api.simpledemo.onap.org:8080', app_type = 1 where app_name='CLI';
diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties
index 876c5c7b9a..876c5c7b9a 100755
--- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties
+++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties
diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties
index 2a33551933..2a33551933 100755
--- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties
+++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties
diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/portal.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/portal.properties
index 4871b42288..6c89f6007c 100755
--- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/portal.properties
+++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/portal.properties
@@ -16,7 +16,7 @@ ueb_app_key = 7GkVcrO6sIDb3ngW
ueb_app_secret = uCYgKjWKK5IxPGNNZzYSSWo9
ueb_app_mailbox_name = ECOMP-PORTAL-INBOX
-ueb_url_list = dmaap.onap-message-router
+ueb_url_list = dmaap.{{.Values.nsPrefix}}
ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX
# Consumer group name for UEB topic.
diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/system.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/system.properties
index 9085cee47f..345d222621 100755
--- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTAL/system.properties
+++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTAL/system.properties
@@ -1,6 +1,6 @@
#mysql
db.driver = org.mariadb.jdbc.Driver
-db.connectionURL = jdbc:mariadb:failover://portaldb.onap-portal:3306/portal
+db.connectionURL = jdbc:mariadb:failover://portaldb.{{.Values.nsPrefix}}:3306/portal
db.userName =root
db.password =Aa123456
db.hib.dialect = org.hibernate.dialect.MySQLDialect
@@ -84,7 +84,7 @@ notification_update_duration = 900
#Microservices Related Properties for Portal
microservices.widget.protocol = http
-microservices.widget.hostname = portalwidgets.onap-portal
+microservices.widget.hostname = portalwidgets.{{.Values.nsPrefix}}
microservices.widget.username = widget_user
microservices.widget.password = KpuqIB08YHg+btG+pjX+sA==
#This property won't be needed after consul is functional on VMs -
diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties
index 8ee0a95f74..8ee0a95f74 100644
--- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties
+++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties
diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties
index e77a701798..7eeb913f2d 100755
--- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties
+++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties
@@ -30,7 +30,7 @@ ecomp_rest_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/auxapi
ueb_listeners_enable = false
# UEB Configuration
-ueb_url_list = dmaap.onap-message-router
+ueb_url_list = dmaap.{{.Values.nsPrefix}}
# ECOMP Portal listens on this UEB topic
ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX
# Replace these 3 default values with the ones for your specific App,
diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties
index d638abcca3..2f53286b56 100755
--- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties
+++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties
@@ -24,7 +24,7 @@ decryption_key = AGLDdG4D04BKm2IxIWEr8o==
##########################################################################
db.driver = org.mariadb.jdbc.Driver
-db.connectionURL = jdbc:mariadb://portaldb.onap-portal:3306/ecomp_sdk
+db.connectionURL = jdbc:mariadb://portaldb.{{.Values.nsPrefix}}:3306/ecomp_sdk
db.userName = root
db.password = Aa123456
db.min_pool_size = 5
@@ -61,4 +61,4 @@ instance_uuid=8da691c9-987d-43ed-a358-00ac2f35685d
guard_notebook_url=
#authenticate user server
-authenticate_user_server=http://portalapps.onap-portal:8383/openid-connect-server-webapp/allUsers
+authenticate_user_server=http://portalapps.{{.Values.nsPrefix}}:8383/openid-connect-server-webapp/allUsers
diff --git a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties
index a5e55dc6d8..3450a6d414 100644
--- a/kubernetes/config/docker/init/src/config/portal/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties
+++ b/kubernetes/portal/resources/config/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties
@@ -6,7 +6,7 @@ spring.http.multipart.max-request-size=128MB
microservice.widget.location=/tmp
## App DB Properties
-spring.datasource.url=jdbc:mysql://portaldb.onap-portal:3306/portal
+spring.datasource.url=jdbc:mysql://portaldb.{{.Values.nsPrefix}}:3306/portal
spring.datasource.username=root
spring.datasource.password=Aa123456
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
diff --git a/kubernetes/portal/resources/scripts/update_hosts.sh b/kubernetes/portal/resources/scripts/update_hosts.sh
new file mode 100644
index 0000000000..cd38fafb40
--- /dev/null
+++ b/kubernetes/portal/resources/scripts/update_hosts.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+_SRC_HOST=$1
+_DST_HOST=$2
+_IP=`getent hosts ${_SRC_HOST}|cut -d' ' -f1`
+if [ -z ${_IP} ]; then
+ echo "Cannot retreive IP for host mapping ${_SRC_HOST} -> ${_DST_HOST}"
+ exit 1
+fi
+_REGEX=".*[[:blank:]]${_DST_HOST}$"
+if grep -c -e "${_REGEX}" /etc/hosts > /dev/null 2>&1 ; then
+ cp /etc/hosts /tmp/hosts
+ sed -i "s/${_REGEX}/${_IP} ${_DST_HOST}/g" /tmp/hosts
+ cp /tmp/hosts /etc/hosts
+else
+ echo "${_IP} ${_DST_HOST}" >> /etc/hosts
+fi
diff --git a/kubernetes/portal/templates/all-services.yaml b/kubernetes/portal/templates/all-services.yaml
index 28ca0303b1..b676e3c6d1 100644
--- a/kubernetes/portal/templates/all-services.yaml
+++ b/kubernetes/portal/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: portaldb
- namespace: "{{ .Values.nsPrefix }}-portal"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: portaldb
spec:
@@ -22,7 +22,7 @@ metadata:
labels:
app: portalapps
name: portalapps
- namespace: "{{ .Values.nsPrefix }}-portal"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -58,9 +58,9 @@ apiVersion: v1
kind: Service
metadata:
labels:
- app: vnc-portal
- name: vnc-portal
- namespace: "{{ .Values.nsPrefix }}-portal"
+ app: portal-vnc
+ name: portal-vnc
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: tcp-1
@@ -72,7 +72,7 @@ spec:
targetPort: 5900
nodePort: {{ .Values.nodePortPrefix }}12
selector:
- app: vnc-portal
+ app: portal-vnc
type: NodePort
#{{ end }}
#{{ if not .Values.disablePortalPortalwidgets }}
@@ -81,7 +81,7 @@ apiVersion: v1
kind: Service
metadata:
name: portalwidgets
- namespace: "{{ .Values.nsPrefix }}-portal"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: portalwidgets
spec:
@@ -91,4 +91,4 @@ spec:
selector:
app: portalwidgets
clusterIP: None
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/portal/templates/portal-apps-configmap.yaml b/kubernetes/portal/templates/portal-apps-configmap.yaml
new file mode 100644
index 0000000000..ec3805de32
--- /dev/null
+++ b/kubernetes/portal/templates/portal-apps-configmap.yaml
@@ -0,0 +1,35 @@
+#{{ if not .Values.disablePortalPortalapps }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-onap-portal-sdk-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/portal-fe/webapps/etc/ONAPPORTALSDK/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-onap-portal-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/portal-fe/webapps/etc/ONAPPORTAL/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-mariadb-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/oom_updates.sql").AsConfig . | indent 2 }}
+#{{ end }}
+---
+#{{ if not .Values.disablePortalPortalwidgets }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-onapwidgetms-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/portal/templates/portal-apps-deployment.yaml b/kubernetes/portal/templates/portal-apps-deployment.yaml
index 761441acc3..e00151c714 100755
--- a/kubernetes/portal/templates/portal-apps-deployment.yaml
+++ b/kubernetes/portal/templates/portal-apps-deployment.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: portalapps
- namespace: "{{ .Values.nsPrefix }}-portal"
+ name: portal-apps
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.portalAppsReplicas }}
selector:
matchLabels:
app: portalapps
@@ -12,7 +13,7 @@ spec:
metadata:
labels:
app: portalapps
- name: portalapps
+ name: portal-apps
spec:
initContainers:
- command:
@@ -33,11 +34,19 @@ spec:
volumeMounts:
- mountPath: /portal-mysql/oom_updates.sql
name: portal-mariadb-onboarding-sql
+ subPath: oom_updates.sql
- mountPath: /portal_root/
name: portal-root
image: {{ .Values.image.mariadbClient }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: provision-portaldb-users
+ - command: ["/bin/bash", "-c", "mkdir -p /ubuntu-init/ && chmod -R 777 /ubuntu-init/"]
+ volumeMounts:
+ - name: portal-logs
+ mountPath: /ubuntu-init/
+ image: {{ .Values.image.ubuntuInit }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: portal-app-logs-init
containers:
- image: {{ .Values.image.portalapps }}
imagePullPolicy: {{ .Values.pullPolicy }}
@@ -51,23 +60,32 @@ spec:
name: localtime
readOnly: true
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTAL/WEB-INF/fusion/conf/fusion.properties"
- name: portal-fusion-properties
+ name: onap-portal-properties
+ subPath: fusion.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTAL/WEB-INF/classes/openid-connect.properties"
- name: portal-openid-connect-properties
+ name: onap-portal-properties
+ subPath: openid-connect.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTAL/WEB-INF/conf/system.properties"
- name: portal-system-properties
+ name: onap-portal-properties
+ subPath: system.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTAL/WEB-INF/classes/portal.properties"
- name: portal-portal-properties
+ name: onap-portal-properties
+ subPath: portal.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTAL/WEB-INF/classes/logback.xml"
name: portal-logback
+ subPath: logback.xml
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTALSDK/WEB-INF/conf/system.properties"
- name: sdkapp-system-properties
+ name: portal-sdkapp-properties
+ subPath: system.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTALSDK/WEB-INF/classes/portal.properties"
- name: sdkapp-portal-properties
+ name: portal-sdkapp-properties
+ subPath: portal.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTALSDK/WEB-INF/fusion/conf/fusion.properties"
- name: sdkapp-fusion-properties
+ name: portal-sdkapp-properties
+ subPath: fusion.properties
- mountPath: "{{ .Values.onapPortal.webappsDir }}/ONAPPORTALSDK/WEB-INF/classes/logback.xml"
name: sdkapp-logback
+ subPath: logback.xml
- mountPath: /portal_root/
name: portal-root
- mountPath: "{{ .Values.onapPortal.webappsDir }}/logs"
@@ -89,6 +107,7 @@ spec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: portal-logs2
- mountPath: /usr/share/filebeat/data
@@ -98,48 +117,35 @@ spec:
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: portal-filebeat-configmap
- name: portal-logs2
emptyDir: {}
- name: portal-data-filebeat
emptyDir: {}
- - name: portal-fusion-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTAL/fusion.properties
- - name: portal-openid-connect-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTAL/openid-connect.properties
- - name: portal-system-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTAL/system.properties
- - name: portal-portal-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTAL/portal.properties
+ - name: onap-portal-properties
+ configMap:
+ defaultMode: 0755
+ name: portal-onap-portal-configmap
+ - name: portal-sdkapp-properties
+ configMap:
+ defaultMode: 0755
+ name: portal-onap-portal-sdk-configmap
- name: portal-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/portal/onapportal/logback.xml
- - name: sdkapp-system-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTALSDK/system.properties
- - name: sdkapp-portal-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTALSDK/portal.properties
- - name: sdkapp-fusion-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPPORTALSDK/fusion.properties
+ configMap:
+ name: portal-onapportal-log-configmap
- name: sdkapp-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/portal/onapportalsdk/logback.xml
+ configMap:
+ name: portal-onapportalsdk-log-configmap
- name: portal-mariadb-onboarding-sql
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/mariadb/oom_updates.sql
+ configMap:
+ name: portal-mariadb-configmap
- name: portal-root
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/portal
- name: portal-logs
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/logs
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/portal/logs
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/portal/templates/portal-logs-configmap.yaml b/kubernetes/portal/templates/portal-logs-configmap.yaml
new file mode 100644
index 0000000000..60abcb78c8
--- /dev/null
+++ b/kubernetes/portal/templates/portal-logs-configmap.yaml
@@ -0,0 +1,26 @@
+#{{ if not .Values.disablePortalPortalapps }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/filebeat.yml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-onapportal-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/portal/onapportal/logback.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-onapportalsdk-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/portal/onapportalsdk/logback.xml").AsConfig . | indent 2 }}
+#{{ end }}
+
diff --git a/kubernetes/portal/templates/portal-mariadb-deployment.yaml b/kubernetes/portal/templates/portal-mariadb-deployment.yaml
index fafcad2772..828779eaa9 100755
--- a/kubernetes/portal/templates/portal-mariadb-deployment.yaml
+++ b/kubernetes/portal/templates/portal-mariadb-deployment.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: portaldb
- namespace: "{{ .Values.nsPrefix }}-portal"
+ name: portal-db
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.portalDbReplicas }}
selector:
matchLabels:
app: portaldb
@@ -12,7 +13,7 @@ spec:
metadata:
labels:
app: portaldb
- name: portaldb
+ name: portal-db
spec:
containers:
- image: {{ .Values.image.portaldb}}
@@ -20,7 +21,7 @@ spec:
name: "portaldb"
env:
- name: MYSQL_HOST
- value: "portaldb.{{ .Values.nsPrefix }}-portal"
+ value: "portaldb.{{ .Values.nsPrefix }}"
- name: MYSQL_ROOT_PASSWORD
value: Aa123456
volumeMounts:
diff --git a/kubernetes/portal/templates/portal-pv-pvc.yaml b/kubernetes/portal/templates/portal-pv-pvc.yaml
index b4d2baa334..1f554bc34a 100644
--- a/kubernetes/portal/templates/portal-pv-pvc.yaml
+++ b/kubernetes/portal/templates/portal-pv-pvc.yaml
@@ -2,10 +2,10 @@
apiVersion: v1
kind: PersistentVolume
metadata:
- name: "{{ .Values.nsPrefix }}-portal-db"
- namespace: "{{ .Values.nsPrefix }}-portal"
+ name: "{{ .Values.nsPrefix }}-portal"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
- name: "{{ .Values.nsPrefix }}-portal-db"
+ name: "{{ .Values.nsPrefix }}-portal"
spec:
capacity:
storage: 2Gi
@@ -13,13 +13,13 @@ spec:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/mariadb/data
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/portal/mariadb/data
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: portal-db
- namespace: "{{ .Values.nsPrefix }}-portal"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
accessModes:
- ReadWriteMany
@@ -28,5 +28,5 @@ spec:
storage: 2Gi
selector:
matchLabels:
- name: "{{ .Values.nsPrefix }}-portal-db"
-#{{ end }} \ No newline at end of file
+ name: "{{ .Values.nsPrefix }}-portal"
+#{{ end }}
diff --git a/kubernetes/portal/templates/portal-vnc-dep.yaml b/kubernetes/portal/templates/portal-vnc-dep.yaml
index 536ac37396..0680a8ab24 100644
--- a/kubernetes/portal/templates/portal-vnc-dep.yaml
+++ b/kubernetes/portal/templates/portal-vnc-dep.yaml
@@ -1,27 +1,36 @@
#{{ if not .Values.disablePortalVncPortal }}
kind: ConfigMap
metadata:
- name: vnc-profiles-ini
- namespace: "{{ .Values.nsPrefix }}-portal"
+ name: portal-vnc-profiles-ini
+ namespace: "{{ .Values.nsPrefix }}"
data:
{{ (.Files.Glob "resources/vnc/init_profile/profiles.ini").AsConfig | indent 2 }}
---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: portal-vnc-update-hosts
+ namespace: "{{ .Values.nsPrefix }}"
+data:
+{{ (.Files.Glob "resources/scripts/update_hosts.sh").AsConfig | indent 2 }}
+---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
- app: vnc-portal
- name: vnc-portal
- namespace: "{{ .Values.nsPrefix }}-portal"
+ app: portal-vnc
+ name: portal-vnc
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.vncPortalReplicas }}
selector:
matchLabels:
- app: vnc-portal
+ app: portal-vnc
template:
metadata:
labels:
- app: vnc-portal
- name: vnc-portal
+ app: portal-vnc
+ name: portal-vnc
spec:
initContainers:
- command:
@@ -37,7 +46,7 @@ spec:
fieldPath: metadata.namespace
image: {{ .Values.image.readiness }}
imagePullPolicy: {{ .Values.pullPolicy }}
- name: vnc-portal-readiness
+ name: portal-vnc-readiness
- command:
- /root/ready.py
args:
@@ -45,7 +54,7 @@ spec:
- pap
env:
- name: NAMESPACE
- value: {{ .Values.nsPrefix }}-policy
+ value: {{ .Values.nsPrefix }}
image: {{ .Values.image.readiness }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: vnc-pap-readiness
@@ -56,7 +65,7 @@ spec:
- sdc-fe
env:
- name: NAMESPACE
- value: {{ .Values.nsPrefix }}-sdc
+ value: {{ .Values.nsPrefix }}
image: {{ .Values.image.readiness }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: vnc-sdc-readiness
@@ -67,38 +76,31 @@ spec:
- vid-server
env:
- name: NAMESPACE
- value: {{ .Values.nsPrefix }}-vid
+ value: {{ .Values.nsPrefix }}
image: {{ .Values.image.readiness }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: vnc-vid-readiness
- - command: ["/bin/sh","-c"]
- args: ["echo `host sdc-be.{{ .Values.nsPrefix }}-sdc | awk ''{print$4}''` sdc.api.be.simpledemo.onap.org >> /ubuntu-init/hosts; echo `host portalapps.{{ .Values.nsPrefix }}-portal | awk ''{print$4}''` portal.api.simpledemo.onap.org >> /ubuntu-init/hosts; echo `host pap.{{ .Values.nsPrefix }}-policy | awk ''{print$4}''` policy.api.simpledemo.onap.org >> /ubuntu-init/hosts; echo `host sdc-fe.{{ .Values.nsPrefix }}-sdc | awk ''{print$4}''` sdc.api.simpledemo.onap.org >> /ubuntu-init/hosts; echo `host vid-server.{{ .Values.nsPrefix }}-vid | awk ''{print$4}''` vid.api.simpledemo.onap.org >> /ubuntu-init/hosts; echo `host sparky-be.{{ .Values.nsPrefix }}-aai | awk ''{print$4}''` aai.api.simpledemo.onap.org >> /ubuntu-init/hosts"]
- image: {{ .Values.image.ubuntuInit }}
- imagePullPolicy: {{ .Values.pullPolicy }}
- name: vnc-init-hosts
- volumeMounts:
- - name: ubuntu-init
- mountPath: /ubuntu-init/
containers:
- image: {{ .Values.image.ubuntuDesktop }}
imagePullPolicy: {{ .Values.pullPolicy }}
lifecycle:
postStart:
exec:
- command: ["/bin/sh", "-c", "mkdir -p /root/.mozilla/firefox/onap.default; cp /root/.init_profile/profiles.ini /root/.mozilla/firefox/; echo 'user_pref(\"browser.tabs.remote.autostart.2\", false);' > /root/.mozilla/firefox/onap.default/prefs.js; cat /ubuntu-init/hosts >> /etc/hosts"]
+ command: ["/bin/sh", "-c", "mkdir -p /root/.mozilla/firefox/onap.default; cp /root/.init_profile/profiles.ini /root/.mozilla/firefox/; echo 'user_pref(\"browser.tabs.remote.autostart.2\", false);' > /root/.mozilla/firefox/onap.default/prefs.js; (while true; do /tmp/update_hosts.sh sdc-be.{{ .Values.nsPrefix }} sdc.api.be.simpledemo.onap.org; /tmp/update_hosts.sh portalapps.{{ .Values.nsPrefix }} portal.api.simpledemo.onap.org; /tmp/update_hosts.sh pap.{{ .Values.nsPrefix }} policy.api.simpledemo.onap.org; /tmp/update_hosts.sh sdc-fe.{{ .Values.nsPrefix }} sdc.api.simpledemo.onap.org; /tmp/update_hosts.sh vid-server.{{ .Values.nsPrefix }} vid.api.simpledemo.onap.org; /tmp/update_hosts.sh sparky-be.{{ .Values.nsPrefix }} aai.api.simpledemo.onap.org; /tmp/update_hosts.sh cli.{{ .Values.nsPrefix }} cli.api.simpledemo.onap.org; sleep 10; done) > update_hosts.log 2>&1 &"]
env:
- name: VNC_PASSWORD
value: password
- name: vnc-portal
+ name: portal-vnc
volumeMounts:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /ubuntu-init/
- name: ubuntu-init
- mountPath: /root/.init_profile/profiles.ini
name: vnc-profiles-ini
subPath: profiles.ini
+ - mountPath: /tmp/update_hosts.sh
+ name: vnc-update-hosts
+ subPath: update_hosts.sh
securityContext:
privileged: true
securityContext: {}
@@ -106,11 +108,13 @@ spec:
- name: localtime
hostPath:
path: /etc/localtime
- - name: ubuntu-init
- emptyDir: {}
- name: vnc-profiles-ini
configMap:
- name: vnc-profiles-ini
+ name: portal-vnc-profiles-ini
+ - name: vnc-update-hosts
+ configMap:
+ name: portal-vnc-update-hosts
+ defaultMode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/portal/templates/portal-widgets-deployment.yaml b/kubernetes/portal/templates/portal-widgets-deployment.yaml
index 600419399e..d5237caf33 100644
--- a/kubernetes/portal/templates/portal-widgets-deployment.yaml
+++ b/kubernetes/portal/templates/portal-widgets-deployment.yaml
@@ -2,9 +2,10 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: portalwidgets
- namespace: "{{ .Values.nsPrefix }}-portal"
+ name: portal-widgets
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.portalWidgetsReplicas }}
selector:
matchLabels:
app: portalwidgets
@@ -12,7 +13,7 @@ spec:
metadata:
labels:
app: portalwidgets
- name: portalwidgets
+ name: portal-widgets
spec:
initContainers:
- command:
@@ -31,7 +32,7 @@ spec:
name: portalapps-readiness
containers:
- image: {{ .Values.image.portalwms }}
- imagePullPolicy: {{ .Values.pullPolicy }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
name: portalwidgets
volumeMounts:
- mountPath: /etc/localtime
@@ -39,6 +40,7 @@ spec:
readOnly: true
- mountPath: /application.properties
name: portalwidgets-application-properties
+ subPath: application.properties
ports:
- containerPort: 8082
readinessProbe:
@@ -51,8 +53,8 @@ spec:
hostPath:
path: /etc/localtime
- name: portalwidgets-application-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/portal/portal-fe/webapps/etc/ONAPWIDGETMS/application.properties
+ configMap:
+ name: portal-onapwidgetms-configmap
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/portal/values.yaml b/kubernetes/portal/values.yaml
index aaa781995a..abac400ba3 100644
--- a/kubernetes/portal/values.yaml
+++ b/kubernetes/portal/values.yaml
@@ -1,14 +1,19 @@
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+portalAppsReplicas: 1
+portalDbReplicas: 1
+vncPortalReplicas: 1
+portalWidgetsReplicas: 1
+dataRootDir: /dockerdata-nfs
image:
- readiness: oomk8s/readiness-check:1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
portalapps: nexus3.onap.org:10001/onap/portal-apps:v1.3.0
portaldb: nexus3.onap.org:10001/onap/portal-db:v1.3.0
mariadbClient: oomk8s/mariadb-client-init:1.0.0
portalwms: nexus3.onap.org:10001/onap/portal-wms:v1.3.0
- ubuntuInit: oomk8s/ubuntu-init:1.0.0
ubuntuDesktop: dorowu/ubuntu-desktop-lxde-vnc
filebeat: docker.elastic.co/beats/filebeat:5.5.0
+ ubuntuInit: oomk8s/ubuntu-init:1.0.0
onapPortal:
webappsDir: "/opt/apache-tomcat-8.0.37/webapps"
diff --git a/kubernetes/readiness/dep-health-init.yaml b/kubernetes/readiness/dep-health-init.yaml
index d77127b201..34bfbafdea 100644
--- a/kubernetes/readiness/dep-health-init.yaml
+++ b/kubernetes/readiness/dep-health-init.yaml
@@ -23,7 +23,7 @@ spec:
- hbase
command:
- /root/ready.py
- image: oomk8s/readiness-check:1.0.0
+ image: oomk8s/readiness-check:1.1.0
imagePullPolicy: Always
name: healthy
env:
diff --git a/kubernetes/readiness/docker/init/ready.py b/kubernetes/readiness/docker/init/ready.py
index c5b55eef18..6d2edef81c 100644
--- a/kubernetes/readiness/docker/init/ready.py
+++ b/kubernetes/readiness/docker/init/ready.py
@@ -1,8 +1,13 @@
#!/usr/bin/python
-from kubernetes import client, config
-import time, argparse, logging, sys, os
+import getopt
+import logging
+import os
+import sys
+import time
-#extract env variables.
+from kubernetes import client
+
+# extract env variables.
namespace = os.environ['NAMESPACE']
cert = os.environ['CERT']
host = os.environ['KUBERNETES_SERVICE_HOST']
@@ -11,12 +16,7 @@ token_path = os.environ['TOKEN']
with open(token_path, 'r') as token_file:
token = token_file.read().replace('\n', '')
-client.configuration.host = "https://" + host
-client.configuration.ssl_ca_cert = cert
-client.configuration.api_key['authorization'] = token
-client.configuration.api_key_prefix['authorization'] = 'Bearer'
-
-#setup logging
+# setup logging
log = logging.getLogger(__name__)
handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
@@ -24,25 +24,29 @@ handler.setLevel(logging.INFO)
log.addHandler(handler)
log.setLevel(logging.INFO)
+configuration = client.Configuration()
+configuration.host = "https://" + host
+configuration.ssl_ca_cert = cert
+configuration.api_key['authorization'] = token
+configuration.api_key_prefix['authorization'] = 'Bearer'
+coreV1Api = client.CoreV1Api(client.ApiClient(configuration))
def is_ready(container_name):
- log.info( "Checking if " + container_name + " is ready")
- # config.load_kube_config() # for local testing
- # namespace='onap-sdc' # for local testing
- v1 = client.CoreV1Api()
-
ready = False
-
+ log.info("Checking if " + container_name + " is ready")
try:
- response = v1.list_namespaced_pod(namespace=namespace, watch=False)
+ response = coreV1Api.list_namespaced_pod(namespace=namespace, watch=False)
for i in response.items:
+ # container_statuses can be None, which is non-iterable.
+ if i.status.container_statuses is None:
+ continue
for s in i.status.container_statuses:
if s.name == container_name:
ready = s.ready
if not ready:
- log.info( container_name + " is not ready.")
+ log.info(container_name + " is not ready.")
else:
- log.info( container_name + " is ready!")
+ log.info(container_name + " is ready!")
else:
continue
return ready
@@ -50,27 +54,49 @@ def is_ready(container_name):
log.error("Exception when calling list_namespaced_pod: %s\n" % e)
-def main(args):
+DEF_TIMEOUT = 10
+DESCRIPTION = "Kubernetes container readiness check utility"
+USAGE = "Usage: ready.py [-t <timeout>] -c <container_name> [-c <container_name> ...]\n" \
+ "where\n" \
+ "<timeout> - wait for container readiness timeout in min, default is " + str(DEF_TIMEOUT) + "\n" \
+ "<container_name> - name of the container to wait for\n"
+
+def main(argv):
# args are a list of container names
- for container_name in args:
- # 5 min, TODO: make configurable
- timeout = time.time() + 60 * 10
+ container_names = []
+ timeout = DEF_TIMEOUT
+ try:
+ opts, args = getopt.getopt(argv, "hc:t:", ["container-name=", "timeout=", "help"])
+ for opt, arg in opts:
+ if opt in ("-h", "--help"):
+ print("%s\n\n%s" % (DESCRIPTION, USAGE))
+ sys.exit()
+ elif opt in ("-c", "--container-name"):
+ container_names.append(arg)
+ elif opt in ("-t", "--timeout"):
+ timeout = float(arg)
+ except (getopt.GetoptError, ValueError) as e:
+ print("Error parsing input parameters: %s\n" % e)
+ print(USAGE)
+ sys.exit(2)
+ if container_names.__len__() == 0:
+ print("Missing required input parameter(s)\n")
+ print(USAGE)
+ sys.exit(2)
+
+ for container_name in container_names:
+ timeout = time.time() + timeout * 60
while True:
ready = is_ready(container_name)
if ready is True:
break
elif time.time() > timeout:
- log.warning( "timed out waiting for '" + container_name + "' to be ready")
+ log.warning("timed out waiting for '" + container_name + "' to be ready")
exit(1)
else:
time.sleep(5)
if __name__ == "__main__":
- parser = argparse.ArgumentParser(description='Process some names.')
- parser.add_argument('--container-name', action='append', required=True, help='A container name')
- args = parser.parse_args()
- arg_dict = vars(args)
+ main(sys.argv[1:])
- for arg in arg_dict.itervalues():
- main(arg)
diff --git a/kubernetes/robot/demo-k8s.sh b/kubernetes/robot/demo-k8s.sh
index 2836fca85d..23fc555dc5 100755
--- a/kubernetes/robot/demo-k8s.sh
+++ b/kubernetes/robot/demo-k8s.sh
@@ -1,42 +1,49 @@
-#!/bin/bash
+#!/bin/bash -x
#
# Execute tags built to support the hands on demo,
#
function usage
{
- echo "Usage: demo.sh <command> [<parameters>]"
+ echo "Usage: demo.sh namespace <command> [<parameters>]"
echo " "
- echo " demo.sh init"
+ echo " demo.sh <namespace> init"
echo " - Execute both init_customer + distribute"
echo " "
- echo " demo.sh init_customer"
+ echo " demo.sh <namespace> init_customer"
echo " - Create demo customer (Demonstration) and services, etc."
echo " "
- echo " demo.sh distribute [<prefix>]"
+ echo " demo.sh <namespace> distribute [<prefix>]"
echo " - Distribute demo models (demoVFW and demoVLB)"
echo " "
- echo " demo.sh preload <vnf_name> <module_name>"
+ echo " demo.sh <namespace> preload <vnf_name> <module_name>"
echo " - Preload data for VNF for the <module_name>"
echo " "
- echo " demo.sh appc <module_name>"
+ echo " demo.sh <namespace> appc <module_name>"
echo " - provide APPC with vFW module mount point for closed loop"
echo " "
- echo " demo.sh init_robot"
+ echo " demo.sh <namespace> init_robot"
echo " - Initialize robot after all ONAP VMs have started"
echo " "
- echo " demo.sh instantiateVFW"
+ echo " demo.sh <namespace> instantiateVFW"
echo " - Instantiate vFW module for the a demo customer (DemoCust<uuid>)"
echo " "
- echo " demo.sh deleteVNF <module_name from instantiateVFW>"
+ echo " demo.sh <namespace> deleteVNF <module_name from instantiateVFW>"
echo " - Delete the module created by instantiateVFW"
+ echo " "
+ echo " demo.sh <namespace> heatbridge <stack_name> <service_instance_id> <service>"
+ echo " - Run heatbridge against the stack for the given service instance and service"
}
# Set the defaults
-if [ $# -eq 0 ];then
+if [ $# -le 1 ];then
usage
exit
fi
+
+NAMESPACE=$1
+shift
+
##
## if more than 1 tag is supplied, the must be provided with -i or -e
##
@@ -113,6 +120,20 @@ do
echo "Cache file ${VARFILE} is not found"
exit
fi
+ shift
+ ;;
+ heatbridge)
+ TAG="heatbridge"
+ shift
+ if [ $# -ne 3 ];then
+ echo "Usage: demo.sh heatbridge <stack_name> <service_instance_id> <service>"
+ exit
+ fi
+ VARIABLES="$VARIABLES -v HB_STACK:$1"
+ shift
+ VARIABLES="$VARIABLES -v HB_SERVICE_INSTANCE_ID:$1"
+ shift
+ VARIABLES="$VARIABLES -v HB_SERVICE:$1"
shift
;;
*)
@@ -123,5 +144,5 @@ done
ETEHOME=/var/opt/OpenECOMP_ETE
VARIABLEFILES="-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py"
-POD=$(kubectl --namespace onap-robot get pods | sed 's/ .*//'| grep robot)
-kubectl --namespace onap-robot exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/demo/${TAG} -i ${TAG} --display 89 2> ${TAG}.out
+POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot)
+kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/demo/${TAG} -i ${TAG} --display 89 2> ${TAG}.out
diff --git a/kubernetes/robot/ete-k8s.sh b/kubernetes/robot/ete-k8s.sh
index 2305a584c3..9810ac236e 100755
--- a/kubernetes/robot/ete-k8s.sh
+++ b/kubernetes/robot/ete-k8s.sh
@@ -5,19 +5,18 @@
# Please clean up logs when you are done...
# Note: Do not run multiple concurrent ete.sh as the --display is not parameterized and tests will collide
#
-if [ "$1" == "" ];then
- echo "Usage: ete.sh [ health | ete | closedloop | instantiate | distribute ]"
+if [ "$1" == "" ] || [ "$2" == "" ]; then
+ echo "Usage: ete.sh [namespace] [ health | ete | closedloop | instantiate | distribute ]"
exit
fi
-export TAGS="-i $1"
+export NAMESPACE="$1"
+export TAGS="-i $2"
export ETEHOME=/var/opt/OpenECOMP_ETE
export OUTPUT_FOLDER=ETE_$$
VARIABLEFILES="-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py"
VARIABLES="-v GLOBAL_BUILD_NUMBER:$$"
-#docker exec openecompete_container ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} ${TAGS} --display 88
-
-POD=$(kubectl --namespace onap-robot get pods | sed 's/ .*//'| grep robot)
-kubectl --namespace onap-robot exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} ${TAGS} --display 88
+POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot)
+kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} ${TAGS} --display 88
diff --git a/kubernetes/robot/templates/all-services.yaml b/kubernetes/robot/templates/all-services.yaml
index 196e7b196a..604982b1e4 100644
--- a/kubernetes/robot/templates/all-services.yaml
+++ b/kubernetes/robot/templates/all-services.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: robot
name: robot
- namespace: "{{ .Values.nsPrefix }}-robot"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- port: 88
diff --git a/kubernetes/robot/templates/robot-deployment.yaml b/kubernetes/robot/templates/robot-deployment.yaml
index 5130955919..a978ff4f41 100644
--- a/kubernetes/robot/templates/robot-deployment.yaml
+++ b/kubernetes/robot/templates/robot-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: robot
- namespace: "{{ .Values.nsPrefix }}-robot"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.robotReplicas }}
selector:
matchLabels:
app: robot
@@ -60,4 +61,4 @@ spec:
path: /dockerdata-nfs/{{ .Values.nsPrefix }}/robot/authorization
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/robot/values.yaml b/kubernetes/robot/values.yaml
index 221b572264..6aadd93647 100644
--- a/kubernetes/robot/values.yaml
+++ b/kubernetes/robot/values.yaml
@@ -1,6 +1,7 @@
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+robotReplicas: 1
image:
testsuite: nexus3.onap.org:10001/openecomp/testsuite:1.1-STAGING-latest
diff --git a/kubernetes/config/docker/init/src/config/sdc/environments/AUTO.json b/kubernetes/sdc/resources/config/environments/AUTO.json
index 5d6eaef94e..d35590ec67 100755
--- a/kubernetes/config/docker/init/src/config/sdc/environments/AUTO.json
+++ b/kubernetes/sdc/resources/config/environments/AUTO.json
@@ -8,34 +8,34 @@
"chef_type": "environment",
"default_attributes": {
- "CS_VIP": "sdc-cs.onap-sdc",
- "BE_VIP": "sdc-be.onap-sdc",
- "FE_VIP": "sdc-fe.onap-sdc",
- "ES_VIP": "sdc-es.onap-sdc",
+ "CS_VIP": "sdc-cs.{{.Values.nsPrefix}}",
+ "BE_VIP": "sdc-be.{{.Values.nsPrefix}}",
+ "FE_VIP": "sdc-fe.{{.Values.nsPrefix}}",
+ "ES_VIP": "sdc-es.{{.Values.nsPrefix}}",
"interfaces": {
"application": "eth0",
"private": "eth0"
},
"ECompP": {
- "ecomp_rest_url": "http://portalapps.onap-portal:8989/ONAPPORTAL/auxapi",
- "ueb_url_list": "dmaap.onap-message-router, dmaap.onap-message-router",
+ "ecomp_rest_url": "http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/auxapi",
+ "ueb_url_list": "dmaap.{{.Values.nsPrefix}}, dmaap.{{.Values.nsPrefix}}",
"app_secret": "XftIATw9Jr3VzAcPqt3NnJOu",
"app_key": "x9UfO7JsDn8BESVX",
"inbox_name": "ECOMP-PORTAL-INBOX",
- "ecomp_redirect_url": "http://portalapps.onap-portal:8989/ONAPPORTAL/login.htm",
+ "ecomp_redirect_url": "http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/login.htm",
"app_topic_name": "ECOMP-PORTAL-OUTBOX-SDC1",
"decryption_key": "AGLDdG4D04BKm2IxIWEr8o=="
},
"UEB": {
"PublicKey": "iPIxkpAMI8qTcQj8",
"SecretKey": "Ehq3WyT4bkif4zwgEbvshGal",
- "fqdn": ["dmaap.onap-message-router", "dmaap.onap-message-router"]
+ "fqdn": ["dmaap.{{.Values.nsPrefix}}", "dmaap.{{.Values.nsPrefix}}"]
},
"Nodes": {
- "CS": "sdc-cs.onap-sdc",
- "BE": "sdc-be.onap-sdc",
- "FE": "sdc-fe.onap-sdc",
- "ES": "sdc-es.onap-sdc"
+ "CS": "sdc-cs.{{.Values.nsPrefix}}",
+ "BE": "sdc-be.{{.Values.nsPrefix}}",
+ "FE": "sdc-fe.{{.Values.nsPrefix}}",
+ "ES": "sdc-es.{{.Values.nsPrefix}}"
}
},
"override_attributes": {
diff --git a/kubernetes/config/docker/init/src/config/sdc/environments/Template.json b/kubernetes/sdc/resources/config/environments/Template.json
index ddddc78e2b..247e990f31 100755
--- a/kubernetes/config/docker/init/src/config/sdc/environments/Template.json
+++ b/kubernetes/sdc/resources/config/environments/Template.json
@@ -17,19 +17,19 @@
"private": "eth1"
},
"ECompP": {
- "ecomp_rest_url": "http://portalapps.onap-portal:8989/ONAPPORTAL/auxapi",
- "ueb_url_list": "dmaap.onap-message-router,dmaap.onap-message-router",
+ "ecomp_rest_url": "http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/auxapi",
+ "ueb_url_list": "dmaap.{{.Values.nsPrefix}},dmaap.{{.Values.nsPrefix}}",
"app_secret": "XftIATw9Jr3VzAcPqt3NnJOu",
"app_key": "x9UfO7JsDn8BESVX",
"inbox_name": "ECOMP-PORTAL-INBOX",
- "ecomp_redirect_url": "http://portalapps.onap-portal:8989/ONAPPORTAL/login.htm",
+ "ecomp_redirect_url": "http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/login.htm",
"app_topic_name": "ECOMP-PORTAL-OUTBOX-SDC1",
"decryption_key": "AGLDdG4D04BKm2IxIWEr8o=="
},
"UEB": {
"PublicKey": "iPIxkpAMI8qTcQj8",
"SecretKey": "Ehq3WyT4bkif4zwgEbvshGal",
- "fqdn": ["dmaap.onap-message-router", "dmaap.onap-message-router"]
+ "fqdn": ["dmaap.{{.Values.nsPrefix}}", "dmaap.{{.Values.nsPrefix}}"]
},
"Nodes": {
"CS": "yyy",
diff --git a/kubernetes/config/docker/init/src/config/log/sdc/be/logback.xml b/kubernetes/sdc/resources/config/log/be/logback.xml
index 4d508e3047..4d508e3047 100644
--- a/kubernetes/config/docker/init/src/config/log/sdc/be/logback.xml
+++ b/kubernetes/sdc/resources/config/log/be/logback.xml
diff --git a/kubernetes/config/docker/init/src/config/log/sdc/fe/logback.xml b/kubernetes/sdc/resources/config/log/fe/logback.xml
index a8e9ed7264..a8e9ed7264 100644
--- a/kubernetes/config/docker/init/src/config/log/sdc/fe/logback.xml
+++ b/kubernetes/sdc/resources/config/log/fe/logback.xml
diff --git a/kubernetes/sdc/resources/config/log/filebeat/filebeat.yml b/kubernetes/sdc/resources/config/log/filebeat/filebeat.yml
new file mode 100644
index 0000000000..89c6932577
--- /dev/null
+++ b/kubernetes/sdc/resources/config/log/filebeat/filebeat.yml
@@ -0,0 +1,41 @@
+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: ["logstash.{{.Values.nsPrefix}}:5044"]
+ #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/config/docker/init/src/config/sdc/sdc-fe/FE_2_setup_configuration.rb b/kubernetes/sdc/resources/config/sdc-fe/FE_2_setup_configuration.rb
index 9fc662ee0a..5c233a2207 100755
--- a/kubernetes/config/docker/init/src/config/sdc/sdc-fe/FE_2_setup_configuration.rb
+++ b/kubernetes/sdc/resources/config/sdc-fe/FE_2_setup_configuration.rb
@@ -7,7 +7,7 @@ template "catalog-fe-config" do
mode "0755"
variables({
:fe_host_ip => node['HOST_IP'],
- :be_host_ip => "sdc-be.onap-sdc",
+ :be_host_ip => "sdc-be.{{.Values.nsPrefix}}",
:catalog_port => node['BE'][:http_port],
:ssl_port => node['BE'][:https_port]
})
diff --git a/kubernetes/sdc/templates/all-services.yaml b/kubernetes/sdc/templates/all-services.yaml
index 4100dc24a4..247ee034a8 100644
--- a/kubernetes/sdc/templates/all-services.yaml
+++ b/kubernetes/sdc/templates/all-services.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: sdc-es
name: sdc-es
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: sdc-es-port-9200
@@ -24,7 +24,7 @@ metadata:
labels:
app: sdc-cs
name: sdc-cs
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: sdc-cs-port-9042
@@ -43,7 +43,7 @@ metadata:
labels:
app: sdc-kb
name: sdc-kb
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: sdc-kb-port-5601
@@ -60,7 +60,7 @@ metadata:
labels:
app: sdc-be
name: sdc-be
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -101,7 +101,7 @@ metadata:
labels:
app: sdc-fe
name: sdc-fe
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
diff --git a/kubernetes/sdc/templates/sdc-be.yaml b/kubernetes/sdc/templates/sdc-be.yaml
index 41560525e1..d075277d91 100644
--- a/kubernetes/sdc/templates/sdc-be.yaml
+++ b/kubernetes/sdc/templates/sdc-be.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: sdc-be
name: sdc-be
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -42,7 +42,7 @@ spec:
- dmaap
env:
- name: NAMESPACE
- value: {{ .Values.nsPrefix }}-message-router
+ value: {{ .Values.nsPrefix }}
image: {{ .Values.image.readiness }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: sdc-dmaap-readiness
@@ -89,33 +89,35 @@ spec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: sdc-logs-2
- mountPath: /usr/share/filebeat/data
name: sdc-data-filebeat
volumes:
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: sdc-filebeat-configmap
- name: sdc-logs-2
emptyDir: {}
- name: sdc-data-filebeat
emptyDir: {}
- name: sdc-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/sdc/be/logback.xml
+ configMap:
+ name : sdc-log-be-configmap
- name: sdc-sdc-es-es
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/sdc-es/ES
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/sdc-es/ES
- name: sdc-environments
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/environments
+ configMap:
+ name: sdc-environments-configmap
+ defaultMode: 0755
- name: sdc-localtime
hostPath:
path: /etc/localtime
- name: sdc-logs
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/logs
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/logs
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/sdc/templates/sdc-cs.yaml b/kubernetes/sdc/templates/sdc-cs.yaml
index a81d4ae826..bf86de6fe2 100644
--- a/kubernetes/sdc/templates/sdc-cs.yaml
+++ b/kubernetes/sdc/templates/sdc-cs.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: sdc-cs
name: sdc-cs
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -67,14 +67,15 @@ spec:
persistentVolumeClaim:
claimName: sdc-cs-db
- name: sdc-environments
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/environments
+ configMap:
+ name : sdc-environments-configmap
+ defaultMode: 0755
- name: sdc-localtime
hostPath:
path: /etc/localtime
- name: sdc-logs
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/logs
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/logs
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/sdc/templates/sdc-environments-configmap.yaml b/kubernetes/sdc/templates/sdc-environments-configmap.yaml
new file mode 100644
index 0000000000..e1ff5581fd
--- /dev/null
+++ b/kubernetes/sdc/templates/sdc-environments-configmap.yaml
@@ -0,0 +1,9 @@
+#{{ if not .Values.disableSdcSdcBe }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdc-environments-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/environments/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/sdc/templates/sdc-es.yaml b/kubernetes/sdc/templates/sdc-es.yaml
index 1d2ba4805b..979c70df5b 100644
--- a/kubernetes/sdc/templates/sdc-es.yaml
+++ b/kubernetes/sdc/templates/sdc-es.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: sdc-es
name: sdc-es
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -16,6 +16,20 @@ spec:
app: sdc-es
name: sdc-es
spec:
+ initContainers:
+ - name: sdc-logs-init
+ image: {{ .Values.image.ubuntuInit }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ command:
+ - /bin/bash
+ - "-c"
+ - |
+ mkdir -p /ubuntu-init/ASDC/ASDC-ES/
+ mkdir -p /ubuntu-init/ASDC/ASDC-CS/
+ mkdir -p /ubuntu-init/ASDC/ASDC-KB/
+ mkdir -p /ubuntu-init/ASDC/ASDC-BE/
+ mkdir -p /ubuntu-init/ASDC/ASDC-FE/
+ chmod -R 777 /ubuntu-init/
containers:
- image: {{ .Values.image.sdcElasticsearch }}
imagePullPolicy: {{ .Values.pullPolicy }}
@@ -30,6 +44,8 @@ spec:
- name: ES_HEAP_SIZE
value: "1024M"
volumeMounts:
+ - name: sdc-logs
+ mountPath: /ubuntu-init/
- mountPath: /root/chef-solo/environments/
name: sdc-environments
- mountPath: /etc/localtime
@@ -47,14 +63,15 @@ spec:
periodSeconds: 10
volumes:
- name: sdc-environments
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/environments
+ configMap :
+ name : sdc-environments-configmap
+ defaultMode: 0755
- name: sdc-localtime
hostPath:
path: /etc/localtime
- name: sdc-logs
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/logs
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/logs
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/sdc/templates/sdc-fe-configmap.yaml b/kubernetes/sdc/templates/sdc-fe-configmap.yaml
new file mode 100644
index 0000000000..05c0a1645c
--- /dev/null
+++ b/kubernetes/sdc/templates/sdc-fe-configmap.yaml
@@ -0,0 +1,9 @@
+#{{ if not .Values.disableSdcSdcFe }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdc-fe-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/sdc-fe/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/sdc/templates/sdc-fe.yaml b/kubernetes/sdc/templates/sdc-fe.yaml
index bc1777f3ab..adcec19ffe 100644
--- a/kubernetes/sdc/templates/sdc-fe.yaml
+++ b/kubernetes/sdc/templates/sdc-fe.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: sdc-fe
name: sdc-fe
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -62,6 +62,7 @@ spec:
name: sdc-logs-2
- mountPath: /root/chef-solo/cookbooks/sdc-catalog-fe/recipes/FE_2_setup_configuration.rb
name: sdc-fe-config
+ subPath: FE_2_setup_configuration.rb
- mountPath: /tmp/logback.xml
name: sdc-logback
lifecycle:
@@ -82,36 +83,39 @@ spec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: sdc-logs-2
- mountPath: /usr/share/filebeat/data
name: sdc-data-filebeat
volumes:
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name : sdc-filebeat-configmap
- name: sdc-logs-2
emptyDir: {}
- name: sdc-data-filebeat
emptyDir: {}
- name: sdc-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/sdc/fe/logback.xml
+ configMap:
+ name : sdc-log-fe-configmap
- name: sdc-sdc-es-es
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/sdc-es/ES
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/sdc-es/ES
- name: sdc-environments
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/environments
+ configMap:
+ name: sdc-environments-configmap
+ defaultMode: 0755
- name: sdc-localtime
hostPath:
path: /etc/localtime
- name: sdc-logs
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/logs
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/logs
- name: sdc-fe-config
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/sdc-fe/FE_2_setup_configuration.rb
+ configMap:
+ name: sdc-fe-configmap
+ defaultMode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/sdc/templates/sdc-kb.yaml b/kubernetes/sdc/templates/sdc-kb.yaml
index a7334d4d08..90fc6f2a21 100644
--- a/kubernetes/sdc/templates/sdc-kb.yaml
+++ b/kubernetes/sdc/templates/sdc-kb.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: sdc-kb
name: sdc-kb
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -59,14 +59,15 @@ spec:
periodSeconds: 10
volumes:
- name: sdc-environments
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/environments
+ configMap:
+ name: sdc-environments-configmap
+ defaultMode: 0755
- name: sdc-localtime
hostPath:
path: /etc/localtime
- name: sdc-logs
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/logs
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/logs
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/sdc/templates/sdc-log-configmap.yaml b/kubernetes/sdc/templates/sdc-log-configmap.yaml
new file mode 100644
index 0000000000..f2b5c09d0b
--- /dev/null
+++ b/kubernetes/sdc/templates/sdc-log-configmap.yaml
@@ -0,0 +1,27 @@
+#{{ if not .Values.disableSdcSdcBe }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdc-log-be-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/be/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdc-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+#{{ end }}
+---
+#{{ if not .Values.disableSdcSdcFe }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdc-log-fe-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/fe/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/sdc/templates/sdc-pv-pvc.yaml b/kubernetes/sdc/templates/sdc-pv-pvc.yaml
index c8ce9531c2..8d9becf2d5 100644
--- a/kubernetes/sdc/templates/sdc-pv-pvc.yaml
+++ b/kubernetes/sdc/templates/sdc-pv-pvc.yaml
@@ -2,10 +2,10 @@
apiVersion: v1
kind: PersistentVolume
metadata:
- name: "{{ .Values.nsPrefix }}-sdc-cs-db"
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ name: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
- name: "{{ .Values.nsPrefix }}-sdc-cs-db"
+ name: "{{ .Values.nsPrefix }}-sdc"
spec:
capacity:
storage: 2Gi
@@ -13,13 +13,13 @@ spec:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdc/sdc-cs/CS
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdc/sdc-cs/CS
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: sdc-cs-db
- namespace: "{{ .Values.nsPrefix }}-sdc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
accessModes:
- ReadWriteMany
@@ -28,5 +28,5 @@ spec:
storage: 2Gi
selector:
matchLabels:
- name: "{{ .Values.nsPrefix }}-sdc-cs-db"
-#{{ end }} \ No newline at end of file
+ name: "{{ .Values.nsPrefix }}-sdc"
+#{{ end }}
diff --git a/kubernetes/sdc/values.yaml b/kubernetes/sdc/values.yaml
index 67f2810deb..d42abcccbe 100644
--- a/kubernetes/sdc/values.yaml
+++ b/kubernetes/sdc/values.yaml
@@ -1,11 +1,13 @@
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+dataRootDir: /dockerdata-nfs
image:
- readiness: oomk8s/readiness-check:1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
sdcKibana: nexus3.onap.org:10001/openecomp/sdc-kibana:v1.1.0
sdcFrontend: nexus3.onap.org:10001/openecomp/sdc-frontend:v1.1.0
sdcElasticsearch: nexus3.onap.org:10001/openecomp/sdc-elasticsearch:v1.1.0
sdcCassandra: nexus3.onap.org:10001/openecomp/sdc-cassandra:v1.1.0
sdcBackend: nexus3.onap.org:10001/openecomp/sdc-backend:v1.1.0
- filebeat: docker.elastic.co/beats/filebeat:5.5.0 \ No newline at end of file
+ filebeat: docker.elastic.co/beats/filebeat:5.5.0
+ ubuntuInit: oomk8s/ubuntu-init:1.0.0
diff --git a/kubernetes/config/docker/init/src/config/sdnc/conf/aaiclient.properties b/kubernetes/sdnc/resources/config/conf/aaiclient.properties
index 4f66294c42..81f63ecdde 100755
--- a/kubernetes/config/docker/init/src/config/sdnc/conf/aaiclient.properties
+++ b/kubernetes/sdnc/resources/config/conf/aaiclient.properties
@@ -40,7 +40,7 @@ org.onap.ccsdk.sli.adaptors.aai.application=openECOMP
#
# Configuration file for A&AI Client
#
-org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.onap-aai:8443
+org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.{{.Values.nsPrefix}}:8443
# query
@@ -134,8 +134,8 @@ org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v11/service-design-and
# UBB Notify
org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v11/actions/notify
-org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.onap-aai:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
-org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.onap-aai:8543/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.{{.Values.nsPrefix}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.{{.Values.nsPrefix}}:8543/restconf/config/L3AVPN-EVC-API:services/service-list/{service-instance-id}/service-data/avpn-logicalchannel-information
# Service
org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v11/service-design-and-creation/services/service/{service-id}
diff --git a/kubernetes/config/docker/init/src/config/sdnc/conf/admportal.json b/kubernetes/sdnc/resources/config/conf/admportal.json
index f6f59ae797..ee575c22ac 100755
--- a/kubernetes/config/docker/init/src/config/sdnc/conf/admportal.json
+++ b/kubernetes/sdnc/resources/config/conf/admportal.json
@@ -39,8 +39,8 @@
"dbPassword": "gamma",
"dbName": "sdnctl",
"odlProtocol": "http",
- "odlHost": "sdnhost.onap-sdnc",
- "odlConexusHost": "sdnhost.onap-sdnc",
+ "odlHost": "sdnhost.{{.Values.nsPrefix}}",
+ "odlConexusHost": "sdnhost.{{.Values.nsPrefix}}",
"odlPort": "8181",
"odlConexusPort": "8181",
"odlUser": "admin",
diff --git a/kubernetes/sdnc/resources/config/dmaap/dhcpalert.properties b/kubernetes/sdnc/resources/config/dmaap/dhcpalert.properties
new file mode 100644
index 0000000000..cfc8e130be
--- /dev/null
+++ b/kubernetes/sdnc/resources/config/dmaap/dhcpalert.properties
@@ -0,0 +1,35 @@
+TransportType=HTTPAUTH
+Latitude =50.000000
+Longitude =-100.000000
+Version =1.0
+ServiceName =dmaap-v1.dev.dmaap.dt.saat.acsi.openecomp.org/events
+Environment =TEST
+Partner = BOT_R
+routeOffer=MR1
+SubContextPath =/
+Protocol =http
+MethodType =GET
+username =admin
+password =admin
+contenttype =application/json
+authKey=fxoW4jZrO7mdLWWa:f4KxkoBtToyoEG7suMoV8KhnkwM=
+authDate=2016-02-18T13:57:37-0800
+host=dmaap.{{.Values.nsPrefix}}:3904
+topic=VCPE-DHCP-EVENT
+group=jmsgrp
+id=sdnc1
+timeout=15000
+limit=1000
+filter=
+AFT_DME2_EXCHANGE_REQUEST_HANDLERS=com.att.nsa.test.PreferredRouteRequestHandler
+AFT_DME2_EXCHANGE_REPLY_HANDLERS=com.att.nsa.test.PreferredRouteReplyHandler
+AFT_DME2_REQ_TRACE_ON=true
+AFT_ENVIRONMENT=AFTUAT
+AFT_DME2_EP_CONN_TIMEOUT=15000
+AFT_DME2_ROUNDTRIP_TIMEOUT_MS=240000
+AFT_DME2_EP_READ_TIMEOUT_MS=50000
+sessionstickinessrequired=NO
+DME2preferredRouterFilePath=/opt/onap/sdnc/data/properties/dmaap-listener.preferredRoute.txt
+sdnc.odl.user=admin
+sdnc.odl.password=admin
+sdnc.odl.url-base=https://sdnhost.{{.Values.nsPrefix}}:8443/restconf/operations
diff --git a/kubernetes/sdnc/resources/config/log/filebeat/log4j/filebeat.yml b/kubernetes/sdnc/resources/config/log/filebeat/log4j/filebeat.yml
new file mode 100644
index 0000000000..2cd63e1d98
--- /dev/null
+++ b/kubernetes/sdnc/resources/config/log/filebeat/log4j/filebeat.yml
@@ -0,0 +1,49 @@
+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
+
+ # The below commented properties are for time-based rolling policy. But as the log4j 1.2x does not support time-based rolling these properties are not set
+ #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
+
+ #Multiline properties for log4j xml log events
+ multiline.pattern: '</log4j:event>'
+ multiline.negate: true
+ multiline.match: before
+ #multiline.max_lines: 500
+ #multiline.timeout: 5s
+
+# 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: ["logstash.{{.Values.nsPrefix}}:5044"]
+ #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/config/docker/init/src/config/log/sdnc/org.ops4j.pax.logging.cfg b/kubernetes/sdnc/resources/config/log/org.ops4j.pax.logging.cfg
index 50818a3d18..50818a3d18 100644
--- a/kubernetes/config/docker/init/src/config/log/sdnc/org.ops4j.pax.logging.cfg
+++ b/kubernetes/sdnc/resources/config/log/org.ops4j.pax.logging.cfg
diff --git a/kubernetes/sdnc/resources/config/ueb/ueb-listener.properties b/kubernetes/sdnc/resources/config/ueb/ueb-listener.properties
new file mode 100644
index 0000000000..fb6e26da11
--- /dev/null
+++ b/kubernetes/sdnc/resources/config/ueb/ueb-listener.properties
@@ -0,0 +1,21 @@
+org.onap.ccsdk.sli.northbound.uebclient.asdc-address=sdc-be.{{.Values.nsPrefix}}:8443
+org.onap.ccsdk.sli.northbound.uebclient.consumer-group=sdc-OpenSource-Env1-sdnc-dockero
+org.onap.ccsdk.sli.northbound.uebclient.consumer-id=sdc-COpenSource-Env11-sdnc-dockero
+org.onap.ccsdk.sli.northbound.uebclient.environment-name=AUTO
+org.onap.ccsdk.sli.northbound.uebclient.password=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+org.onap.ccsdk.sli.northbound.uebclient.user=sdnc
+org.onap.ccsdk.sli.northbound.uebclient.sdnc-user=admin
+org.onap.ccsdk.sli.northbound.uebclient.sdnc-passwd=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+org.onap.ccsdk.sli.northbound.uebclient.asdc-api-base-url=http://sdnhost.{{.Values.nsPrefix}}:8282/restconf/operations/
+org.onap.ccsdk.sli.northbound.uebclient.asdc-api-namespace=org:onap:ccsdk
+org.onap.ccsdk.sli.northbound.uebclient.spool.incoming=/opt/onap/sdnc/ueb-listener/spool/incoming
+org.onap.ccsdk.sli.northbound.uebclient.spool.archive=/opt/onap/sdnc/ueb-listener/spool/archive
+org.onap.ccsdk.sli.northbound.uebclient.polling-interval=30
+org.onap.ccsdk.sli.northbound.uebclient.polling-timeout=15
+org.onap.ccsdk.sli.northbound.uebclient.client-startup-timeout=900
+org.onap.ccsdk.sli.northbound.uebclient.relevant-artifact-types=YANG_XML,VF_LICENSE,TOSCA_CSAR,UCPE_LAYER_2_CONFIGURATION
+org.onap.ccsdk.sli.northbound.uebclient.activate-server-tls-auth=false
+org.onap.ccsdk.sli.northbound.uebclient.keystore-path=
+org.onap.ccsdk.sli.northbound.uebclient.keystore-password=
+org.onap.ccsdk.sli.northbound.uebclient.xslt-path-list=
+org.onap.ccsdk.sli.northbound.uebclient.artifact-map=/opt/onap/sdnc/data/properties/artifact.map
diff --git a/kubernetes/sdnc/templates/all-services.yaml b/kubernetes/sdnc/templates/all-services.yaml
index 9425ef4b80..c309f48fb1 100644
--- a/kubernetes/sdnc/templates/all-services.yaml
+++ b/kubernetes/sdnc/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: dbhost
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: sdnc-dbhost
spec:
@@ -19,7 +19,7 @@ apiVersion: v1
kind: Service
metadata:
name: dbhost-read
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: sdnc-dbhost
spec:
@@ -33,7 +33,7 @@ apiVersion: v1
kind: Service
metadata:
name: sdnctldb01
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: sdnc-dbhost
spec:
@@ -47,7 +47,7 @@ apiVersion: v1
kind: Service
metadata:
name: sdnctldb02
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: sdnc-dbhost
spec:
@@ -63,7 +63,7 @@ apiVersion: v1
kind: Service
metadata:
name: sdnc-dgbuilder
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: sdnc-dgbuilder
spec:
@@ -80,7 +80,7 @@ apiVersion: v1
kind: Service
metadata:
name: sdnhost
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: sdnc
annotations:
@@ -117,7 +117,7 @@ kind: Service
apiVersion: v1
metadata:
name: nfs-provisioner
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: nfs-provisioner
spec:
@@ -140,7 +140,7 @@ apiVersion: v1
kind: Service
metadata:
name: sdnc-portal
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: sdnc-portal
annotations:
@@ -169,7 +169,7 @@ apiVersion: v1
kind: Service
metadata:
name: sdnhost-cluster
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: sdnc
annotations:
diff --git a/kubernetes/sdnc/templates/db-statefulset.yaml b/kubernetes/sdnc/templates/db-statefulset.yaml
index f2e079d76e..399eb42239 100644
--- a/kubernetes/sdnc/templates/db-statefulset.yaml
+++ b/kubernetes/sdnc/templates/db-statefulset.yaml
@@ -3,7 +3,7 @@ apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: sdnc-dbhost
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
serviceName: "dbhost"
replicas: {{ .Values.numberOfDbReplicas }}
@@ -61,7 +61,7 @@ spec:
echo ${BASH_REMATCH}
[[ $ordinal -eq 0 ]] && exit 0
# Clone data from previous peer.
- ncat --recv-only sdnc-dbhost-$(($ordinal-1)).dbhost.{{ .Values.nsPrefix }}-sdnc 3307 | xbstream -x -C /var/lib/mysql
+ ncat --recv-only sdnc-dbhost-$(($ordinal-1)).dbhost.{{ .Values.nsPrefix }} 3307 | xbstream -x -C /var/lib/mysql
# Prepare the backup.
xtrabackup --user=root --password=$MYSQL_ROOT_PASSWORD --prepare --target-dir=/var/lib/mysql
ls -l /var/lib/mysql
@@ -150,7 +150,7 @@ spec:
mv change_master_to.sql.in change_master_to.sql.orig
mysql --user=root --password=$MYSQL_ROOT_PASSWORD -h 127.0.0.1 <<EOF
$(<change_master_to.sql.orig),
- MASTER_HOST="sdnc-dbhost-0.dbhost.{{ .Values.nsPrefix }}-sdnc",
+ MASTER_HOST="sdnc-dbhost-0.dbhost.{{ .Values.nsPrefix }}",
MASTER_USER="root",
MASTER_PASSWORD="$MYSQL_ROOT_PASSWORD",
MASTER_CONNECT_RETRY=10;
@@ -176,10 +176,15 @@ spec:
emptyDir: {}
- name: config-map
configMap:
- name: mysql
+ name: sdnc-mysql
- name: localtime
hostPath:
path: /etc/localtime
+#{{ if .Values.disableNfsProvisioner }}
+ - name: sdnc-data
+ hostPath:
+ path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/data
+#{{ else }}
volumeClaimTemplates:
- metadata:
name: sdnc-data
@@ -191,3 +196,4 @@ spec:
requests:
storage: 1Gi
#{{ end }}
+#{{ end }}
diff --git a/kubernetes/sdnc/templates/dgbuilder-deployment.yaml b/kubernetes/sdnc/templates/dgbuilder-deployment.yaml
index e0f8b298e9..78e20dab23 100644
--- a/kubernetes/sdnc/templates/dgbuilder-deployment.yaml
+++ b/kubernetes/sdnc/templates/dgbuilder-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: sdnc-dgbuilder
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.dgbuilderReplicas }}
selector:
matchLabels:
app: sdnc-dgbuilder
diff --git a/kubernetes/sdnc/templates/dmaap-deployment-configmap.yaml b/kubernetes/sdnc/templates/dmaap-deployment-configmap.yaml
new file mode 100644
index 0000000000..c27ae72930
--- /dev/null
+++ b/kubernetes/sdnc/templates/dmaap-deployment-configmap.yaml
@@ -0,0 +1,9 @@
+#{{ if not .Values.disableSdncDmaap }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdnc-dmaap-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/dmaap/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/sdnc/templates/dmaap-deployment.yaml b/kubernetes/sdnc/templates/dmaap-deployment.yaml
new file mode 100644
index 0000000000..97dc7738e2
--- /dev/null
+++ b/kubernetes/sdnc/templates/dmaap-deployment.yaml
@@ -0,0 +1,62 @@
+#{{ if not .Values.disableSdncDmaap }}
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: sdnc-dmaap-listener
+ namespace: "{{ .Values.nsPrefix }}"
+spec:
+ replicas: {{ .Values.dmaapReplicas }}
+ selector:
+ matchLabels:
+ app: dmaap-listener
+ template:
+ metadata:
+ labels:
+ app: dmaap-listener
+ name: sdnc-dmaap-listener
+ spec:
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - sdnc-db-container
+ - --container-name
+ - sdnc-controller-container
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: {{ .Values.image.readiness }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: sdnc-dmaap-readiness
+ containers:
+ - command:
+ - /opt/onap/sdnc/dmaap-listener/bin/start-dmaap-listener.sh
+ env:
+ - name: PROPERTY_DIR
+ value: /opt/onap/sdnc/data/properties
+ - name: SDNC_CONFIG_DIR
+ value: /opt/onap/sdnc/data/properties
+ image: {{ .Values.image.dmaaplistener }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: dmaapp-listener-container
+ volumeMounts:
+ - mountPath: /etc/localtime
+ name: localtime
+ readOnly: true
+ - mountPath: /opt/onap/sdnc/data/properties/dhcpalert.properties
+ subPath: dhcpalert.properties
+ name: dmaap-dhcapalert-config
+ volumes:
+ - name: localtime
+ hostPath:
+ path: /etc/localtime
+ - name: dmaap-dhcapalert-config
+ configMap:
+ name: sdnc-dmaap-configmap
+ imagePullSecrets:
+ - name: "{{ .Values.nsPrefix }}-docker-registry-key"
+#{{ end }}
diff --git a/kubernetes/sdnc/templates/mysql-configmap.yaml b/kubernetes/sdnc/templates/mysql-configmap.yaml
index deaa997f02..6b4cdcbf9c 100644
--- a/kubernetes/sdnc/templates/mysql-configmap.yaml
+++ b/kubernetes/sdnc/templates/mysql-configmap.yaml
@@ -1,8 +1,8 @@
apiVersion: v1
kind: ConfigMap
metadata:
- name: mysql
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ name: sdnc-mysql
+ namespace: "{{ .Values.nsPrefix }}"
labels:
app: mysql
data:
diff --git a/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml b/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml
index 9d3feeff9c..bd161d54a1 100644
--- a/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml
+++ b/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml
@@ -1,17 +1,19 @@
#{{ if not .Values.disableSdncSdncDbhost }}
+#{{ if not .Values.disableNfsProvisioner }}
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
- name: nfs-provisioner
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ name: sdnc-nfs-provisioner
+ namespace: "{{ .Values.nsPrefix }}"
spec:
- replicas: 1
+ replicas: {{ .Values.nfsReplicas }}
strategy:
type: Recreate
template:
metadata:
labels:
app: nfs-provisioner
+ name: sdnc-nfs-provisioner
spec:
containers:
- name: nfs-provisioner
@@ -51,5 +53,6 @@ spec:
volumes:
- name: export-volume
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/data
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdnc/data
+#{{ end }}
#{{ end }}
diff --git a/kubernetes/sdnc/templates/sdnc-conf-configmap.yaml b/kubernetes/sdnc/templates/sdnc-conf-configmap.yaml
new file mode 100644
index 0000000000..d60cae7a3a
--- /dev/null
+++ b/kubernetes/sdnc/templates/sdnc-conf-configmap.yaml
@@ -0,0 +1,9 @@
+#{{ if not .Values.disableSdncSdnc }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdnc-conf-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/conf/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/sdnc/templates/sdnc-data-storageclass.yaml b/kubernetes/sdnc/templates/sdnc-data-storageclass.yaml
index 7c46cf4a68..d6d4eae30d 100644
--- a/kubernetes/sdnc/templates/sdnc-data-storageclass.yaml
+++ b/kubernetes/sdnc/templates/sdnc-data-storageclass.yaml
@@ -1,8 +1,10 @@
#{{ if not .Values.disableSdncSdncDbhost }}
+#{{ if not .Values.disableNfsProvisioner }}
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: "{{ .Values.nsPrefix }}-sdnc-data"
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
provisioner: sdnc/nfs
#{{ end }}
+#{{ end }}
diff --git a/kubernetes/sdnc/templates/sdnc-log-configmap.yaml b/kubernetes/sdnc/templates/sdnc-log-configmap.yaml
new file mode 100644
index 0000000000..a7cada8c81
--- /dev/null
+++ b/kubernetes/sdnc/templates/sdnc-log-configmap.yaml
@@ -0,0 +1,17 @@
+#{{ if not .Values.disableSdncSdnc }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdnc-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/log4j/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdnc-logging-cfg-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/sdnc/templates/sdnc-statefulset.yaml b/kubernetes/sdnc/templates/sdnc-statefulset.yaml
index 3ba37af197..1f020377bd 100644
--- a/kubernetes/sdnc/templates/sdnc-statefulset.yaml
+++ b/kubernetes/sdnc/templates/sdnc-statefulset.yaml
@@ -3,7 +3,7 @@ apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: sdnc
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
serviceName: "sdnhost-cluster"
replicas: {{ .Values.numberOfODLReplicas }}
@@ -37,8 +37,8 @@ spec:
- bash
- "-c"
- |
- sed -i 's/dbhost/sdnc-dbhost-0.dbhost.onap-sdnc.svc.cluster.local/g' /opt/onap/sdnc/data/properties/svclogic.properties
- sed -i 's/^\(org.onap.ccsdk.sli.jdbc.hosts=\).*/\1sdnc-dbhost-0.dbhost.onap-sdnc.svc.cluster.local/' /opt/onap/sdnc/data/properties/dblib.properties
+ sed -i 's/dbhost/sdnc-dbhost-0.dbhost.{{ .Values.nsPrefix }}.svc.cluster.local/g' /opt/onap/sdnc/data/properties/svclogic.properties
+ sed -i 's/^\(org.onap.ccsdk.sli.jdbc.hosts=\).*/\1sdnc-dbhost-0.dbhost.{{ .Values.nsPrefix }}.svc.cluster.local/' /opt/onap/sdnc/data/properties/dblib.properties
/opt/onap/sdnc/bin/startODL.sh
env:
- name: MYSQL_ROOT_PASSWORD
@@ -56,14 +56,17 @@ spec:
- mountPath: /etc/localtime
name: localtime
readOnly: true
- - mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties
- name: sdnc-aaiclient-properties
- mountPath: /opt/onap/sdnc/data/properties/admportal.json
- name: sdnc-admportal-json
+ name: sdnc-conf
+ subPath: admportal.json
+ - mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties
+ name: sdnc-conf
+ subPath: aaiclient.properties
- mountPath: /var/log/onap
name: sdnc-logs
- mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg
- name: sdnc-log-config
+ name: sdnc-logging-cfg-config
+ subPath: org.ops4j.pax.logging.cfg
ports:
- containerPort: 8181
- containerPort: 8101
@@ -80,6 +83,7 @@ spec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: sdnc-logs
- mountPath: /usr/share/filebeat/data
@@ -89,21 +93,25 @@ spec:
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/log4j/filebeat.yml
- - name: sdnc-log-config
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/sdnc/org.ops4j.pax.logging.cfg
+ configMap:
+ name: sdnc-log-configmap
+ - name: sdnc-logging-cfg-config
+ configMap:
+ name: sdnc-logging-cfg-configmap
- name: sdnc-logs
emptyDir: {}
- name: sdnc-data-filebeat
emptyDir: {}
- - name: sdnc-aaiclient-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/conf/aaiclient.properties
- - name: sdnc-admportal-json
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/conf/admportal.json
+ - name: sdnc-conf
+ configMap:
+ name: sdnc-conf-configmap
+ items:
+ - key: admportal.json
+ path: admportal.json
+ mode: 0755
+ - key: aaiclient.properties
+ path: aaiclient.properties
+ mode: 0755
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/sdnc/templates/ueb-deployment-configmap.yaml b/kubernetes/sdnc/templates/ueb-deployment-configmap.yaml
new file mode 100644
index 0000000000..6aeaa9f4c9
--- /dev/null
+++ b/kubernetes/sdnc/templates/ueb-deployment-configmap.yaml
@@ -0,0 +1,9 @@
+#{{ if not .Values.disableSdncUeb }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: sdnc-ueb-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/ueb/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/sdnc/templates/ueb-deployment.yaml b/kubernetes/sdnc/templates/ueb-deployment.yaml
new file mode 100644
index 0000000000..b869ca9b83
--- /dev/null
+++ b/kubernetes/sdnc/templates/ueb-deployment.yaml
@@ -0,0 +1,62 @@
+#{{ if not .Values.disableSdncUeb }}
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: sdnc-ueb-listener
+ namespace: "{{ .Values.nsPrefix }}"
+spec:
+ replicas: {{ .Values.uebReplicas }}
+ selector:
+ matchLabels:
+ app: ueb-listener
+ template:
+ metadata:
+ labels:
+ app: ueb-listener
+ name: sdnc-ueb-listener
+ spec:
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - sdnc-db-container
+ - --container-name
+ - sdnc-controller-container
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: {{ .Values.image.readiness }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: sdnc-ueb-readiness
+ containers:
+ - command:
+ - /opt/onap/sdnc/ueb-listener/bin/start-ueb-listener.sh
+ env:
+ - name: PROPERTY_DIR
+ value: /opt/onap/sdnc/data/properties
+ - name: SDNC_CONFIG_DIR
+ value: /opt/onap/sdnc/data/properties
+ image: {{ .Values.image.ueblistener }}
+ imagePullPolicy: {{ .Values.pullPolicy }}
+ name: ueb-listener-container
+ volumeMounts:
+ - mountPath: /etc/localtime
+ name: localtime
+ readOnly: true
+ - mountPath: /opt/onap/sdnc/data/properties/ueb-listener.properties
+ subPath: ueb-listener.properties
+ name: ueb-config
+ volumes:
+ - name: localtime
+ hostPath:
+ path: /etc/localtime
+ - name: ueb-config
+ configMap:
+ name: sdnc-ueb-configmap
+ imagePullSecrets:
+ - name: "{{ .Values.nsPrefix }}-docker-registry-key"
+#{{ end }}
diff --git a/kubernetes/sdnc/templates/web-deployment.yaml b/kubernetes/sdnc/templates/web-deployment.yaml
index fcd82a40c0..968ec8d443 100644
--- a/kubernetes/sdnc/templates/web-deployment.yaml
+++ b/kubernetes/sdnc/templates/web-deployment.yaml
@@ -3,8 +3,9 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: sdnc-portal
- namespace: "{{ .Values.nsPrefix }}-sdnc"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.portalReplicas }}
selector:
matchLabels:
app: sdnc-portal
@@ -50,10 +51,8 @@ spec:
- name: localtime
mountPath: /etc/localtime
readOnly: true
- - mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties
- name: sdnc-aaiclient-properties
- - mountPath: /opt/onap/sdnc/data/properties/admportal.json
- name: sdnc-admportal-json
+ - mountPath: /opt/onap/sdnc/data/properties/
+ name: sdnc-conf
readinessProbe:
tcpSocket:
port: 8843
@@ -64,12 +63,9 @@ spec:
- name: localtime
hostPath:
path: /etc/localtime
- - name: sdnc-aaiclient-properties
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/conf/aaiclient.properties
- - name: sdnc-admportal-json
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/conf/admportal.json
+ - name: sdnc-conf
+ configMap:
+ name: sdnc-conf-configmap
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/sdnc/values.yaml b/kubernetes/sdnc/values.yaml
index 5272b653b9..b502a7427a 100644
--- a/kubernetes/sdnc/values.yaml
+++ b/kubernetes/sdnc/values.yaml
@@ -1,21 +1,26 @@
nsPrefix: onap
pullPolicy: IfNotPresent
nodePortPrefix: 302
+dataRootDir: /dockerdata-nfs
image:
- readiness: oomk8s/readiness-check:1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
mysql: mysql:5.7
xtrabackup: gcr.io/google-samples/xtrabackup:1.0
dgbuilderSdnc: nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image:v0.1.0
sdnc: nexus3.onap.org:10001/onap/sdnc-image:v1.2.1
admportalSdnc: nexus3.onap.org:10001/onap/admportal-sdnc-image:v1.2.1
+ ueblistener: nexus3.onap.org:10001/onap/sdnc-ueb-listener-image:v1.2.1
+ dmaaplistener: nexus3.onap.org:10001/onap/sdnc-dmaap-listener-image:v1.2.1
filebeat: docker.elastic.co/beats/filebeat:5.5.0
enableODLCluster: false
numberOfODLReplicas: 1
numberOfDbReplicas: 1
+dgbuilderReplicas: 1
+dmaapReplicas: 1
+nfsReplicas: 1
+uebReplicas: 1
+portalReplicas: 1
disableSdncSdncDgbuilder: false
disableSdncSdncPortal: false
+disableNfsProvisioner: false
-# FIXME
-# Missing the following deps
-# nexus3.onap.org:10001/onap/sdnc-dmaap-listener-image:v1.2.1
-# nexus3.onap.org:10001/onap/sdnc-ueb-listener-image:v1.2.1
diff --git a/kubernetes/setup/.helmignore b/kubernetes/setup/.helmignore
new file mode 100644
index 0000000000..f0c1319444
--- /dev/null
+++ b/kubernetes/setup/.helmignore
@@ -0,0 +1,21 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/kubernetes/setup/Chart.yaml b/kubernetes/setup/Chart.yaml
new file mode 100644
index 0000000000..cface1324c
--- /dev/null
+++ b/kubernetes/setup/Chart.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: An ONAP environment setup chart
+name: setup
+version: 2.0.0
diff --git a/kubernetes/setup/requirements.yaml b/kubernetes/setup/requirements.yaml
new file mode 100644
index 0000000000..56029ab047
--- /dev/null
+++ b/kubernetes/setup/requirements.yaml
@@ -0,0 +1,7 @@
+dependencies:
+ - name: common
+ version: ~2.0.0
+ # local reference to common chart, as it is
+ # a part of this chart's package and will not
+ # be published independently to a repo (at this point)
+ repository: '@local' \ No newline at end of file
diff --git a/kubernetes/setup/templates/clusterrolebinding.yaml b/kubernetes/setup/templates/clusterrolebinding.yaml
new file mode 100644
index 0000000000..b2bdc72549
--- /dev/null
+++ b/kubernetes/setup/templates/clusterrolebinding.yaml
@@ -0,0 +1,18 @@
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: ClusterRoleBinding
+metadata:
+ name: {{ include "common.namespace" . }}-binding
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: cluster-admin
+subjects:
+ - kind: ServiceAccount
+ name: default
+ namespace: {{ include "common.namespace" . }} \ No newline at end of file
diff --git a/kubernetes/setup/templates/secrets.yaml b/kubernetes/setup/templates/secrets.yaml
new file mode 100644
index 0000000000..573883a4a0
--- /dev/null
+++ b/kubernetes/setup/templates/secrets.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ include "common.namespace" . }}-docker-registry-key
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+data:
+ .dockercfg: {{ .Values.global.repositorySecret | default .Values.repositorySecret }}
+type: kubernetes.io/dockercfg \ No newline at end of file
diff --git a/kubernetes/setup/values.yaml b/kubernetes/setup/values.yaml
new file mode 100644
index 0000000000..49ec05807c
--- /dev/null
+++ b/kubernetes/setup/values.yaml
@@ -0,0 +1,4 @@
+global:
+ # image repositories
+ repository: nexus3.onap.org:10001
+ repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
diff --git a/kubernetes/so/.helmignore b/kubernetes/so/.helmignore
new file mode 100644
index 0000000000..f0c1319444
--- /dev/null
+++ b/kubernetes/so/.helmignore
@@ -0,0 +1,21 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/kubernetes/so/Chart.yaml b/kubernetes/so/Chart.yaml
new file mode 100644
index 0000000000..62d292de6d
--- /dev/null
+++ b/kubernetes/so/Chart.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP Service Orchestrator
+name: so
+version: 2.0.0 \ No newline at end of file
diff --git a/kubernetes/so/charts/mariadb/.helmignore b/kubernetes/so/charts/mariadb/.helmignore
new file mode 100644
index 0000000000..f0c1319444
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/.helmignore
@@ -0,0 +1,21 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/kubernetes/so/charts/mariadb/Chart.yaml b/kubernetes/so/charts/mariadb/Chart.yaml
new file mode 100644
index 0000000000..da9cab3175
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/Chart.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: MariaDB Service
+name: mariadb
+version: 2.0.0
diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/conf.d/mariadb1.cnf b/kubernetes/so/charts/mariadb/resources/config/mariadb/conf.d/mariadb1.cnf
new file mode 100644
index 0000000000..39ed022489
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/conf.d/mariadb1.cnf
@@ -0,0 +1,193 @@
+# 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
+
+skip-external-locking
+explicit_defaults_for_timestamp = true
+skip-symbolic-links
+local-infile = 0
+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=<host>, MASTER_PORT=<port>,
+# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
+#
+# where you replace <host>, <user>, <password> by quoted strings and
+# <port> 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 = <hostname>
+#
+# The username the slave will use for authentication when connecting
+# to the master - required
+#master-user = <username>
+#
+# The password the slave will authenticate with when connecting to
+# the master - required
+#master-password = <password>
+#
+# The port the master is listening on.
+# optional - defaults to 3306
+#master-port = <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
+
+general_log_file = /var/log/mysql/mysql.log
+general_log = 1
diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh
new file mode 100644
index 0000000000..326f27356c
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/01-load-default-sql-files.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright © 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 and OpenECOMP are trademarks
+# and service marks of AT&T Intellectual Property.
+#
+#
+cd /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw
+mysql -uroot -p$MYSQL_ROOT_PASSWORD -f < create_mso_db-demo-vfw.sql \ No newline at end of file
diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh
new file mode 100644
index 0000000000..a163801083
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/02-load-additional-changes.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright © 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 and OpenECOMP are trademarks
+# and service marks of AT&T Intellectual Property.
+#
+#
+
+# TODO: update this script to work with the new DB schema
+
+# mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "UPDATE heat_environment SET ENVIRONMENT='parameters:\n vfw_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)\n vfw_flavor_name: 4 GB General Purpose v1\n public_net_id: 00000000-0000-0000-0000-000000000000\n unprotected_private_net_id: zdfw1fwl01_unprotected\n protected_private_net_id: zdfw1fwl01_protected\n ecomp_private_net_id: oam_ecomp\n unprotected_private_net_cidr: 192.168.10.0/24\n protected_private_net_cidr: 192.168.20.0/24\n ecomp_private_net_cidr: 192.168.9.0/24\n vfw_private_ip_0: 192.168.10.100\n vfw_private_ip_1: 192.168.20.100\n vfw_private_ip_2: 192.168.9.100\n vpg_private_ip_0: 192.168.10.200\n vpg_private_ip_1: 192.168.9.200\n vsn_private_ip_0: 192.168.20.250\n vsn_private_ip_1: 192.168.9.250\n vfw_name_0: zdfw1fwl01fwl01\n vpg_name_0: zdfw1fwl01pgn01\n vsn_name_0: zdfw1fwl01snk01\n vnf_id: vFirewall_demo_app\n vf_module_id: vFirewall\n webserver_ip: 162.242.237.182\n dcae_collector_ip: 192.168.9.1\n key_name: vfw_key\n pub_key: INSERT YOUR PUBLIC KEY HERE' where id=5;" mso_catalog
diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql
new file mode 100644
index 0000000000..146ad01605
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/create_mso_db-tests.sql
@@ -0,0 +1,49 @@
+SOURCE ../default/create_mso_db-default.sql
+
+USE `mso_requests`;
+DROP USER 'mso';
+CREATE USER 'mso';
+GRANT ALL on mso_requests.* to 'mso' identified by 'mso123' with GRANT OPTION;
+FLUSH PRIVILEGES;
+
+USE `mso_catalog`;
+DROP USER 'catalog';
+CREATE USER 'catalog';
+GRANT ALL on mso_catalog.* to 'catalog' identified by 'catalog123' with GRANT OPTION;
+FLUSH PRIVILEGES;
+
+LOCK TABLES `NETWORK_RESOURCE` WRITE;
+/*!40000 ALTER TABLE `NETWORK_RESOURCE` DISABLE KEYS */;
+/*!40000 ALTER TABLE `NETWORK_RESOURCE` ENABLE KEYS */;
+insert into NETWORK_RESOURCE (id, NETWORK_TYPE, VERSION_STR, ORCHESTRATION_MODE ,DESCRIPTION, TEMPLATE_ID, NEUTRON_NETWORK_TYPE, AIC_VERSION_MIN) values
+(1, "vlan",'1',"NEUTRON","Cool network",1,"BASIC","0");
+UNLOCK TABLES;
+
+LOCK TABLES `NETWORK_RECIPE` WRITE;
+/*!40000 ALTER TABLE `NETWORK_RECIPE` DISABLE KEYS */;
+INSERT INTO `NETWORK_RECIPE`(`NETWORK_TYPE`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`) VALUES
+('vlan','CREATE','1',NULL,'/active-bpel/services/REST/CreateNetwork',NULL,180,NULL),
+('vlan','DELETE','1',NULL,'/active-bpel/services/REST/DeleteNetwork',NULL,180,NULL);
+/*!40000 ALTER TABLE `NETWORK_RECIPE` ENABLE KEYS */;
+UNLOCK TABLES;
+
+LOCK TABLES `VNF_RECIPE` WRITE;
+INSERT INTO `VNF_RECIPE`(`ID`, `VNF_TYPE`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`) VALUES
+(100,'VPE','CREATE','1','','/active-bpel/services/REST/CreateGenericVNF','',180,'SDN-ETHERNET-INTERNET'),
+(101,'VPE','DELETE','1','','/active-bpel/services/REST/DeleteGenericVNF','',180,'SDN-ETHERNET-INTERNET');
+UNLOCK TABLES;
+
+LOCK TABLES `VF_MODULE` WRITE;
+INSERT INTO `VF_MODULE`(`ID`, `TYPE`, `ASDC_SERVICE_MODEL_VERSION`, `MODEL_NAME`, `MODEL_VERSION`, `IS_BASE`, `VNF_RESOURCE_ID`) VALUES
+(100,'dns-servicetest/DNSResource-1::VF_DNS::module-1','1.0','VF_DNS::module-1','1.0','1','7'),
+(101,'dns-servicetest/DNSResource-1::Mog111..mog_psm..module-1','1.0','Mog111..mog_psm..module-1','1.0','1','7');
+UNLOCK TABLES;
+
+LOCK TABLES `VNF_RESOURCE` WRITE;
+INSERT INTO `VNF_RESOURCE`(`ID`, `VNF_TYPE`, `ASDC_SERVICE_MODEL_VERSION`, `ORCHESTRATION_MODE`, `MODEL_VERSION`) VALUES
+(100,'dns-servicetest/DNSResource-1','1.0','VF_DNS::module-1','1.0');
+UNLOCK TABLES;
+
+DELETE FROM HEAT_TEMPLATE_PARAMS;
+DELETE FROM HEAT_TEMPLATE;
+DELETE FROM HEAT_ENVIRONMENT;
diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql
new file mode 100644
index 0000000000..7d2eed16bd
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/create_mso_db-default.sql
@@ -0,0 +1,139 @@
+SOURCE ../../camunda/mariadb_engine_7.7.3-ee.sql
+
+--
+-- Create an admin user automatically for the cockpit
+--
+SOURCE ../../camunda/mysql_create_camunda_admin.sql
+
+--
+-- Current Database: `mso_requests`
+--
+
+DROP DATABASE IF EXISTS `mso_requests`;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mso_requests` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `mso_requests`;
+
+SOURCE ../../main-schemas/MySQL-Requests-schema.sql
+
+--
+-- Current Database: `mso_catalog`
+--
+
+DROP DATABASE IF EXISTS `mso_catalog`;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mso_catalog` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `mso_catalog`;
+
+SOURCE ../../main-schemas/MySQL-Catalog-schema.sql
+
+SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO `heat_template` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `TIMEOUT_MINUTES`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','Contrail30-l2nodhcp','1',NULL,'heat_template_version: 2015-04-30\n\ndescription:\n HOT template that creates a Contrail Virtual Network with L2NODHCP\n\nparameters:\n network_name:\n type: string\n description: Name of direct network (e.g. core, dmz)\n default: ECOMPNetwork\n shared:\n type: boolean\n description: Shared amongst tenants\n default: False\n external:\n type: boolean\n description: router_external for the VirtualNetwork\n default: False\n route_targets:\n type: comma_delimited_list\n description: Network route-targets (RT)\n default: \"\"\n subnet_list:\n type: json\n description: Network subnets\n default: []\n policy_refs:\n type: comma_delimited_list\n description: Policies referenced by Network\n default: \"\"\n policy_refsdata:\n type: json\n description: Policies referenced by Network\n default: []\n route_table_refs:\n type: comma_delimited_list\n description: Route Tables referenced by Network\n default: \"\"\n virtual_network_properties_allow_transit:\n type: boolean\n description: allow_transit for the VirtualNetwork\n default: True\n virtual_network_properties_forwarding_mode:\n type: string\n description: forwarding_mode for the VirtualNetwork\n default: l2\n virtual_network_properties_rpf:\n type: string\n description: rpf for the VirtualNetwork\n default: disable\n flood_unknown_unicast:\n type: boolean\n description: flood_unknown_unicast for the VirtualNetwork\n default: True\n\noutputs:\n network_id:\n description: Openstack network identifier\n value: { get_resource: network }\n network_fqdn:\n description: Openstack network identifier\n value: {list_join: [\':\', { get_attr: [network, fq_name] } ] }\n\nresources:\n networkIpam:\n type: OS::ContrailV2::NetworkIpam\n properties:\n name: { get_param: network_name }\n\n network:\n type: OS::ContrailV2::VirtualNetwork\n properties:\n name: { get_param: network_name }\n is_shared: {get_param: shared}\n router_external: { get_param: external }\n route_target_list:\n {\n route_target_list_route_target: { get_param: route_targets }\n }\n network_ipam_refs: [{ get_resource: networkIpam }]\n network_ipam_refs_data:\n [\n {\n network_ipam_refs_data_ipam_subnets: { get_param: subnet_list }\n }\n ]\n network_policy_refs: { get_param: policy_refs }\n network_policy_refs_data: { get_param: policy_refsdata }\n route_table_refs: { get_param: route_table_refs }\n flood_unknown_unicast: { get_param: flood_unknown_unicast } \n virtual_network_properties:\n {\n virtual_network_properties_allow_transit: { get_param: virtual_network_properties_allow_transit },\n virtual_network_properties_forwarding_mode: { get_param: virtual_network_properties_forwarding_mode },\n virtual_network_properties_rpf: { get_param: virtual_network_properties_rpf },\n }\n',10,'MANUAL RECORD','2017-10-05 18:52:03');
+
+INSERT INTO `heat_template` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `TIMEOUT_MINUTES`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','Contrail30-gndirect','1',NULL,'heat_template_version: 2015-04-30\n\ndescription:\n HOT template that creates a Contrail Virtual Network for GNDIRECT\n\nparameters:\n network_name:\n type: string\n description: Name of direct network (e.g. core, dmz)\n default: ECOMPNetwork\n shared:\n type: boolean\n description: Shared amongst tenants\n default: False\n external:\n type: boolean\n description: router_external for the VirtualNetwork\n default: False\n route_targets:\n type: comma_delimited_list\n description: Network route-targets (RT)\n default: \"\"\n subnet_list:\n type: json\n description: Network subnets\n default: []\n policy_refs:\n type: comma_delimited_list\n description: Policies referenced by Network\n default: \"\"\n policy_refsdata:\n type: json\n description: Policies referenced by Network\n default: []\n route_table_refs:\n type: comma_delimited_list\n description: Route Tables referenced by Network\n default: \"\"\n virtual_network_properties_rpf:\n type: string\n description: rpf for the VirtualNetwork\n default: disable\n\noutputs:\n network_id:\n description: Openstack network identifier\n value: { get_resource: network }\n network_fqdn:\n description: Openstack network identifier\n value: {list_join: [\':\', { get_attr: [network, fq_name] } ] }\n\nresources:\n networkIpam:\n type: OS::ContrailV2::NetworkIpam\n properties:\n name: { get_param: network_name }\n\n network:\n type: OS::ContrailV2::VirtualNetwork\n properties:\n name: { get_param: network_name }\n is_shared: {get_param: shared}\n router_external: { get_param: external }\n route_target_list:\n {\n route_target_list_route_target: { get_param: route_targets }\n }\n network_ipam_refs: [{ get_resource: networkIpam }]\n network_ipam_refs_data:\n [\n {\n network_ipam_refs_data_ipam_subnets: { get_param: subnet_list }\n }\n ]\n network_policy_refs: { get_param: policy_refs }\n network_policy_refs_data: { get_param: policy_refsdata }\n route_table_refs: { get_param: route_table_refs }\n virtual_network_properties:\n {\n virtual_network_properties_rpf: { get_param: virtual_network_properties_rpf }\n }\n',10,'MANUAL RECORD','2017-10-05 18:52:03');
+
+INSERT INTO `heat_template` (`ARTIFACT_UUID`,`NAME`,`VERSION`,`BODY`,`TIMEOUT_MINUTES`,`DESCRIPTION`,`CREATION_TIMESTAMP`,`ARTIFACT_CHECKSUM`) VALUES ('efee1d84-b8ec-11e7-abc4-cec278b6b50a','Generic NeutronNet','1','heat_template_version: 2013-05-23\n\ndescription:\n HOT template that creates a Generic Neutron Network\n\nparameters:\n network_name:\n type: string\n description: Name of direct network (e.g. core, dmz)\n default: ECOMPNetwork\n network_subnet_name:\n type: string\n description: Name of subnet network (e.g. core, dmz)\n default: ECOMPNetwork\n network_subnet_cidr:\n type: string\n description: CIDR of subnet network (e.g. core, dmz)\n default: 10.0.0.0/16\n\noutputs:\n network_id:\n description: Openstack network identifier\n value: { get_resource: network }\n network_fqdn:\n description: Openstack network identifier\n value: {list_join: [\':\', { get_attr: [network, fq_name] } ] }\n\nresources:\n network:\n type: OS::Neutron::Net\n properties:\n name: {get_param: network_name }\n\n subnet:\n type: OS::Neutron::Subnet\n properties:\n name: { get_param: network_subnet_name }\n network_id: { get_resource: network }\n cidr: { get_param: network_subnet_cidr }\n enable_dhcp: false\n',10,'Generic Neutron Template','2017-10-26 14:44:00', 'MANUAL RECORD');
+
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','external','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','flood_unknown_unicast','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','network_name','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','policy_refs','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','policy_refsdata','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','route_table_refs','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','route_targets','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','shared','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','virtual_network_properties_allow_transit','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','virtual_network_properties_forwarding_mode','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c198-a9fe-11e7-8b4b-0242ac120002','virtual_network_properties_rpf','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','external','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','network_name','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','policy_refs','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','policy_refsdata','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','route_table_refs','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','route_targets','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','shared','\0','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('4885c7a1-a9fe-11e7-8b4b-0242ac120002','virtual_network_properties_rpf','\0','string',NULL);
+
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (1,'CONTRAIL_BASIC','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (2,'CONTRAIL_BASIC','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (3,'CONTRAIL_BASIC','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (4,'CONTRAIL_SHARED','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (5,'CONTRAIL_SHARED','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (6,'CONTRAIL_SHARED','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (7,'CONTRAIL_EXTERNAL','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (8,'CONTRAIL_EXTERNAL','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (9,'CONTRAIL_EXTERNAL','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (10,'CONTRAIL30_BASIC','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (11,'CONTRAIL30_BASIC','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (12,'CONTRAIL30_BASIC','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (13,'CONTRAIL30_MPSCE','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (14,'CONTRAIL30_MPSCE','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (15,'CONTRAIL30_MPSCE','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (16,'VID_DEFAULT','createInstance','VID_DEFAULT recipe to create network if no custom BPMN flow is found','/mso/async/services/CreateNetworkInstance',NULL,180,NULL,'2017-10-05 18:52:03','1.0');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (17,'VID_DEFAULT','updateInstance','VID_DEFAULT recipe to update network if no custom BPMN flow is found','/mso/async/services/UpdateNetworkInstance',NULL,180,NULL,'2017-10-05 18:52:03','1.0');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (18,'VID_DEFAULT','deleteInstance','VID_DEFAULT recipe to delete network if no custom BPMN flow is found','/mso/async/services/DeleteNetworkInstance',NULL,180,NULL,'2017-10-05 18:52:03','1.0');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (19,'CONTRAIL30_L2NODHCP','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (20,'CONTRAIL30_L2NODHCP','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (21,'CONTRAIL30_L2NODHCP','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (22,'CONTRAIL30_GNDIRECT','CREATE',NULL,'/mso/async/services/CreateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (23,'CONTRAIL30_GNDIRECT','UPDATE',NULL,'/mso/async/services/UpdateNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+INSERT INTO `network_recipe` (`id`, `MODEL_NAME`, `ACTION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `NETWORK_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`, `CREATION_TIMESTAMP`, `VERSION_STR`) VALUES (24,'CONTRAIL30_GNDIRECT','DELETE',NULL,'/mso/async/services/DeleteNetworkV2',NULL,180,NULL,'2017-10-05 18:52:03','1');
+
+INSERT INTO `service` (`MODEL_UUID`, `MODEL_NAME`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `TOSCA_CSAR_ARTIFACT_UUID`) VALUES ('48cc36cc-a9fe-11e7-8b4b-0242ac120002','VID_DEFAULT','48cd56c8-a9fe-11e7-8b4b-0242ac120002','1.0','Default service for VID to use for infra APIH orchestration1707MIGRATED1707MIGRATED','2017-10-05 18:52:03',NULL);
+INSERT INTO `service` (`MODEL_UUID`, `MODEL_NAME`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `TOSCA_CSAR_ARTIFACT_UUID`) VALUES ('48cc3acd-a9fe-11e7-8b4b-0242ac120002','*','48ce2256-a9fe-11e7-8b4b-0242ac120002','1.0','Default service to use for infra APIH orchestration1707MIGRATED1707MIGRATED','2017-10-05 18:52:03',NULL);
+
+INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (1,'createInstance','1','VID_DEFAULT recipe to create service-instance if no custom BPMN flow is found','/mso/async/services/CreateGenericALaCarteServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','48cc36cc-a9fe-11e7-8b4b-0242ac120002');
+INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (2,'deleteInstance','1','VID_DEFAULT recipe to delete service-instance if no custom BPMN flow is found','/mso/async/services/DeleteGenericALaCarteServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','48cc36cc-a9fe-11e7-8b4b-0242ac120002');
+INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (3,'createInstance','1','DEFAULT recipe to create service-instance if no custom BPMN flow is found','/mso/async/services/CreateGenericALaCarteServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','48cc3acd-a9fe-11e7-8b4b-0242ac120002');
+INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (4,'deleteInstance','1','DEFAULT recipe to delete service-instance if no custom BPMN flow is found','/mso/async/services/DeleteGenericALaCarteServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','48cc3acd-a9fe-11e7-8b4b-0242ac120002');
+
+--
+-- Custom Reciepe for the VoLTE service added temporarily
+--
+
+INSERT INTO `service` (`MODEL_UUID`, `MODEL_NAME`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `TOSCA_CSAR_ARTIFACT_UUID`) VALUES ('dfcd7471-16c7-444e-8268-d4c50d90593a','UUI_DEFAULT','dfcd7471-16c7-444e-8268-d4c50d90593a','1.0','Default service for UUI to use for infra APIH orchestration1707MIGRATED1707MIGRATED','2017-10-23 18:52:03',NULL);
+
+INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (11,'createInstance','1','Custom recipe to create E2E service-instance if no custom BPMN flow is found','/mso/async/services/CreateCustomE2EServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','dfcd7471-16c7-444e-8268-d4c50d90593a');
+INSERT INTO `service_recipe` (`id`, `ACTION`, `VERSION_STR`, `DESCRIPTION`, `ORCHESTRATION_URI`, `SERVICE_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TIMEOUT_INTERIM`, `CREATION_TIMESTAMP`, `SERVICE_MODEL_UUID`) VALUES (12,'deleteInstance','1','Custom recipe to delete E2E service-instance if no custom BPMN flow is found','/mso/async/services/DeleteCustomE2EServiceInstance',NULL,180,NULL,'2017-10-05 18:52:03','dfcd7471-16c7-444e-8268-d4c50d90593a');
+
+INSERT INTO `temp_network_heat_template_lookup` (`NETWORK_RESOURCE_MODEL_NAME`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `AIC_VERSION_MIN`, `AIC_VERSION_MAX`) VALUES ('CONTRAIL30_GNDIRECT','4885c7a1-a9fe-11e7-8b4b-0242ac120002','3.0',NULL);
+INSERT INTO `temp_network_heat_template_lookup` (`NETWORK_RESOURCE_MODEL_NAME`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `AIC_VERSION_MIN`, `AIC_VERSION_MAX`) VALUES ('CONTRAIL30_L2NODHCP','4885c198-a9fe-11e7-8b4b-0242ac120002','3.0',NULL);
+INSERT INTO `temp_network_heat_template_lookup` (`NETWORK_RESOURCE_MODEL_NAME`, `HEAT_TEMPLATE_ARTIFACT_UUID`,`AIC_VERSION_MIN` , `AIC_VERSION_MAX` ) VALUES ('Generic NeutronNet','efee1d84-b8ec-11e7-abc4-cec278b6b50a','2.0','NULL');
+
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (1,'*','VOLUME_GROUP',NULL,'CREATE',NULL,'1','Recipe Match All for','/mso/async/services/createCinderVolumeV1',null,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (2,'*','VOLUME_GROUP',NULL,'DELETE',NULL,'1','Recipe Match All for','/mso/async/services/deleteCinderVolumeV1',null,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (3,'*','VOLUME_GROUP',NULL,'UPDATE',NULL,'1','Recipe Match All for','/mso/async/services/updateCinderVolumeV1',null,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (4,NULL,'VOLUME_GROUP',NULL,'CREATE_VF_MODULE_VOL',NULL,'1','Recipe Match All for','/mso/async/services/CreateVfModuleVolume',null,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (5,NULL,'VOLUME_GROUP',NULL,'DELETE_VF_MODULE_VOL',NULL,'1','Recipe Match All for','/mso/async/services/DeleteVfModuleVolume',null,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (6,NULL,'VOLUME_GROUP',NULL,'UPDATE_VF_MODULE_VOL',NULL,'1','Recipe Match All for','/mso/async/services/UpdateVfModuleVolume',null,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (7,NULL,'volumeGroup','VID_DEFAULT','createInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/CreateVfModuleVolumeInfraV1',null,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (8,NULL,'volumeGroup','VID_DEFAULT','deleteInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/DeleteVfModuleVolumeInfraV1',null,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (9,NULL,'volumeGroup','VID_DEFAULT','updateInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/UpdateVfModuleVolumeInfraV1',null,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (10,NULL,'vfModule','VID_DEFAULT','createInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/CreateVfModuleInfra',null,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (11,NULL,'vfModule','VID_DEFAULT','deleteInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/DeleteVfModuleInfra',null,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_components_recipe` (`id`, `VNF_TYPE`, `VNF_COMPONENT_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `SERVICE_TYPE`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (12,NULL,'vfModule','VID_DEFAULT','updateInstance',NULL,'1','VID_DEFAULT recipe t','/mso/async/services/UpdateVfModuleInfra',null,180,'2017-10-05 18:52:03');
+
+--
+-- Default Reciepe for the VNF componnets added start #SO-334, to unblock the VNF operations
+--
+
+INSERT INTO `vnf_components_recipe` (`VNF_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`,`VNF_COMPONENT_TYPE`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`) VALUES (NULL,'POLICY_DEFAULT','createInstance','1','Recipe Match POLICY_DEFAULT for VF Modules if no custom flow exists','/mso/async/services/CreateVfModuleInfra','vfModule',NULL,180,NULL);
+INSERT INTO `vnf_components_recipe` (`VNF_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`,`VNF_COMPONENT_TYPE`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`) VALUES (NULL,'POLICY_DEFAULT','updateInstance','1','Recipe Match POLICY_DEFAULT for VF Modules if no custom flow exists','/mso/async/services/UpdateVfModuleInfra','vfModule',NULL,180,NULL);
+INSERT INTO `vnf_components_recipe` (`VNF_TYPE`, `VF_MODULE_MODEL_UUID`, `ACTION`, `VERSION`, `DESCRIPTION`, `ORCHESTRATION_URI`,`VNF_COMPONENT_TYPE`, `VNF_COMPONENT_PARAM_XSD`, `RECIPE_TIMEOUT`, `SERVICE_TYPE`) VALUES (NULL,'POLICY_DEFAULT','deleteInstance','1','Recipe Match POLICY_DEFAULT for VF Modules if no custom flow exists','/mso/async/services/DeleteVfModuleInfra','vfModule',NULL,180,NULL);
+--
+-- Default Reciepe for the VNF componnets added End
+--
+
+INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (1,NULL,'CREATE',NULL,'1','*','Recipe Match All for VNFs if no custom flow exists','/mso/workflow/services/CreateGenericVNFV1',NULL,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (2,NULL,'DELETE',NULL,'1','*','Recipe Match All for VNFs if no custom flow exists','/mso/async/services//deleteGenericVNFV1',NULL,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (3,NULL,'UPDATE',NULL,'1','*','Recipe Match All for VNFs if no custom flow exists','/mso/workflow/services/updateGenericVNFV1',NULL,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (4,'*','CREATE_VF_MODULE',NULL,'1',NULL,'Recipe Match All for VNFs if no custom flow exists','/mso/async/services/CreateVfModule',NULL,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (5,'*','DELETE_VF_MODULE',NULL,'1',NULL,'Recipe Match All for VNFs if no custom flow exists','/mso/async/services/DeleteVfModule',NULL,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (6,'*','UPDATE_VF_MODULE',NULL,'1',NULL,'Recipe Match All for VNFs if no custom flow exists','/mso/async/services/UpdateVfModule',NULL,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (7,NULL,'createInstance',NULL,'1','VID_DEFAULT','VID_DEFAULT recipe to create VNF if no custom BPMN flow is found','/mso/async/services/CreateVnfInfra',NULL,180,'2017-10-05 18:52:03');
+INSERT INTO `vnf_recipe` (`id`, `VF_MODULE_ID`, `ACTION`, `SERVICE_TYPE`, `VERSION_STR`, `VNF_TYPE`, `DESCRIPTION`, `ORCHESTRATION_URI`, `VNF_PARAM_XSD`, `RECIPE_TIMEOUT`, `CREATION_TIMESTAMP`) VALUES (8,NULL,'deleteInstance',NULL,'1','VID_DEFAULT','VID_DEFAULT recipe to delete VNF if no custom BPMN flow is found','/mso/async/services/DeleteVnfInfra',NULL,180,'2017-10-05 18:52:03');
+
+SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql
new file mode 100644
index 0000000000..b5063defda
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/create_mso_db-demo-dns.sql
@@ -0,0 +1,77 @@
+SOURCE ../default/create_mso_db-default.sql
+
+USE `mso_requests`;
+DROP USER 'mso';
+CREATE USER 'mso';
+GRANT ALL on mso_requests.* to 'mso' identified by 'mso123' with GRANT OPTION;
+FLUSH PRIVILEGES;
+
+USE `mso_catalog`;
+DROP USER 'catalog';
+CREATE USER 'catalog';
+GRANT ALL on mso_catalog.* to 'catalog' identified by 'catalog123' with GRANT OPTION;
+FLUSH PRIVILEGES;
+
+SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO `heat_environment` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('EnvArtifact-UUID1','base_vlb.env','1.0','BASE VLB ENV file','parameters:\n vlb_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)\n vlb_flavor_name: 4 GB General Purpose v1\n public_net_id: 00000000-0000-0000-0000-000000000000\n vlb_private_net_id: zdfw1lb01_private\n ecomp_private_net_id: oam_ecomp\n vlb_private_net_cidr: 192.168.10.0/24\n ecomp_private_net_cidr: 192.168.9.0/24\n vlb_private_ip_0: 192.168.10.111\n vlb_private_ip_1: 192.168.9.111\n vdns_private_ip_0: 192.168.10.211\n vdns_private_ip_1: 192.168.9.211\n vlb_name_0: zdfw1lb01lb01\n vdns_name_0: zdfw1lb01dns01\n vnf_id: vLoadBalancer_demo_app\n vf_module_id: vLoadBalancer\n webserver_ip: 162.242.237.182\n dcae_collector_ip: 192.168.9.1\n key_name: vlb_key\n pub_key: INSERT YOUR PUBLIC KEY HERE','MANUAL RECORD','2016-11-14 13:04:07');
+
+INSERT INTO `heat_environment` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('EnvArtifact-UUID2','dnsscaling.env','1.0','DNS Scaling ENV file','parameters:\n vlb_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)\n vlb_flavor_name: 4 GB General Purpose v1\n public_net_id: 00000000-0000-0000-0000-000000000000\n vlb_private_net_id: zdfw1lb01_private\n ecomp_private_net_id: oam_ecomp\n vlb_private_ip_0: 192.168.10.111\n vlb_private_ip_1: 192.168.9.111\n vdns_private_ip_0: 192.168.10.222\n vdns_private_ip_1: 192.168.9.222\n vdns_name_0: zdfw1lb01dns02\n vnf_id: vLoadBalancer_demo_app\n vf_module_id: vLoadBalancer\n webserver_ip: 162.242.237.182\n dcae_collector_ip: 192.168.9.1\n key_name: vlb_key\n pub_key: INSERT YOUR PUBLIC KEY HERE','MANUAL RECORD','2016-11-14 13:04:07');
+
+INSERT INTO `heat_template` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `TIMEOUT_MINUTES`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('Artifact-UUID1','base_vlb.yaml','1.0','Base VLB Heat','heat_template_version: 2013-05-23\n\ndescription: Heat template to deploy vLoadBalancer/vDNS demo app for OpenECOMP\n\nparameters:\n vlb_image_name:\n type: string\n label: Image name or ID\n description: Image to be used for compute instance\n vlb_flavor_name:\n type: string\n label: Flavor\n description: Type of instance (flavor) to be used\n public_net_id:\n type: string\n label: Public network name or ID\n description: Public network that enables remote connection to VNF\n vlb_private_net_id:\n type: string\n label: vLoadBalancer private network name or ID\n description: Private network that connects vLoadBalancer with vDNSs\n ecomp_private_net_id:\n type: string\n label: ECOMP management network name or ID\n description: Private network that connects ECOMP component and the VNF\n vlb_private_net_cidr:\n type: string\n label: vLoadBalancer private network CIDR\n description: The CIDR of the vLoadBalancer private network\n ecomp_private_net_cidr:\n type: string\n label: ECOMP private network CIDR\n description: The CIDR of the protected private network\n vlb_private_ip_0:\n type: string\n label: vLoadBalancer private IP address towards the private network\n description: Private IP address that is assigned to the vLoadBalancer to communicate with the vDNSs\n vlb_private_ip_1:\n type: string\n label: vLoadBalancer private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vLoadBalancer to communicate with ECOMP components\n vdns_private_ip_0:\n type: string\n label: vDNS private IP address towards the private network\n description: Private IP address that is assigned to the vDNS to communicate with the vLoadBalancer\n vdns_private_ip_1:\n type: string\n label: vDNS private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vDNS to communicate with ECOMP components\n vlb_name_0:\n type: string\n label: vLoadBalancer name\n description: Name of the vLoadBalancer\n vdns_name_0:\n type: string\n label: vDNS name\n description: Name of the vDNS\n vnf_id:\n type: string\n label: VNF ID\n description: The VNF ID is provided by ECOMP\n vf_module_id:\n type: string\n label: vFirewall module ID\n description: The vLoadBalancer Module ID is provided by ECOMP\n webserver_ip:\n type: string\n label: Webserver IP address\n description: IP address of the webserver that hosts the source code and binaries\n dcae_collector_ip:\n type: string\n label: DCAE collector IP address\n description: IP address of the DCAE collector\n key_name:\n type: string\n label: Key pair name\n description: Public/Private key pair name\n pub_key:\n type: string\n label: Public key\n description: Public key to be installed on the compute instance\n\nresources:\n my_keypair:\n type: OS::Nova::KeyPair\n properties:\n name: { get_param: key_name }\n public_key: { get_param: pub_key }\n save_private_key: false\n\n vlb_private_network:\n type: OS::Neutron::Net\n properties:\n name: { get_param: vlb_private_net_id }\n\n vlb_private_subnet:\n type: OS::Neutron::Subnet\n properties:\n name: { get_param: vlb_private_net_id }\n network_id: { get_resource: vlb_private_network }\n cidr: { get_param: vlb_private_net_cidr }\n\n vlb_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vlb_image_name }\n flavor: { get_param: vlb_flavor_name }\n name: { get_param: vlb_name_0 }\n key_name: { get_resource: my_keypair }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vlb_private_0_port }\n - port: { get_resource: vlb_private_1_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __dcae_collector_ip__: { get_param: dcae_collector_ip }\n __local_private_ipaddr__: { get_param: vlb_private_ip_0 }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n DCAE_COLLECTOR_IP=__dcae_collector_ip__\n LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_lb_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vlb.sh\n chmod +x v_lb_init.sh\n chmod +x vlb.sh\n echo $WEBSERVER_IP > config/webserver_ip.txt\n echo $DCAE_COLLECTOR_IP > config/dcae_collector_ip.txt\n echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt\n echo \"no\" > config/install.txt\n LOCAL_PUBLIC_IPADDR=$(ifconfig eth0 | grep \"inet addr\" | tr -s \' \' | cut -d\' \' -f3 | cut -d\':\' -f2)\n echo $LOCAL_PUBLIC_IPADDR > config/local_public_ipaddr.txt\n mv vlb.sh /etc/init.d\n update-rc.d vlb.sh defaults\n ./v_lb_init.sh\n\n vlb_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: vlb_private_network }\n fixed_ips: [{\"subnet\": { get_resource: vlb_private_subnet }, \"ip_address\": { get_param: vlb_private_ip_0 }}]\n\n vlb_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vlb_private_ip_1 }}]\n\n vdns_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vlb_image_name }\n flavor: { get_param: vlb_flavor_name }\n name: { get_param: vdns_name_0 }\n key_name: { get_resource: my_keypair }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vdns_private_0_port }\n - port: { get_resource: vdns_private_1_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __lb_oam_int__ : { get_param: vlb_private_ip_1 }\n __lb_private_ipaddr__: { get_param: vlb_private_ip_0 }\n __local_private_ipaddr__: { get_param: vdns_private_ip_0 }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n LB_OAM_INT=__lb_oam_int__\n LB_PRIVATE_IPADDR=__lb_private_ipaddr__\n LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_dns_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vdns.sh\n chmod +x v_dns_init.sh\n chmod +x vdns.sh\n echo $WEBSERVER_IP > config/webserver_ip.txt\n echo $LB_OAM_INT > config/lb_oam_int.txt\n echo $LB_PRIVATE_IPADDR > config/lb_private_ipaddr.txt\n echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt\n echo \"no\" > config/install.txt\n mv vdns.sh /etc/init.d\n update-rc.d vdns.sh defaults\n ./v_dns_init.sh\n\n vdns_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: vlb_private_network }\n fixed_ips: [{\"subnet\": { get_resource: vlb_private_subnet }, \"ip_address\": { get_param: vdns_private_ip_0 }}]\n\n vdns_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vdns_private_ip_1 }}]\n',300,'MANUAL RECORD','2016-11-14 13:04:07');
+
+INSERT INTO `heat_template` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `TIMEOUT_MINUTES`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('Artifact-UUID2','dnsscaling.yaml','1.0','DNS Scaling Heat','heat_template_version: 2013-05-23\n\ndescription: Heat template to deploy a vDNS for OpenECOMP (scaling-up scenario)\n\nparameters:\n vlb_image_name:\n type: string\n label: Image name or ID\n description: Image to be used for compute instance\n vlb_flavor_name:\n type: string\n label: Flavor\n description: Type of instance (flavor) to be used\n public_net_id:\n type: string\n label: Public network name or ID\n description: Public network that enables remote connection to VNF\n vlb_private_net_id:\n type: string\n label: vLoadBalancer private network name or ID\n description: Private network that connects vLoadBalancer with vDNSs\n ecomp_private_net_id:\n type: string\n label: ECOMP management network name or ID\n description: Private network that connects ECOMP component and the VNF\n vlb_private_ip_0:\n type: string\n label: vLoadBalancer private IP address towards the private network\n description: Private IP address that is assigned to the vLoadBalancer to communicate with the vDNSs\n vlb_private_ip_1:\n type: string\n label: vLoadBalancer private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vLoadBalancer to communicate with ECOMP components\n vdns_private_ip_0:\n type: string\n label: vDNS private IP address towards the private network\n description: Private IP address that is assigned to the vDNS to communicate with the vLoadBalancer\n vdns_private_ip_1:\n type: string\n label: vDNS private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vDNS to communicate with ECOMP components\n vdns_name_0:\n type: string\n label: vDNS name\n description: Name of the vDNS\n vnf_id:\n type: string\n label: VNF ID\n description: The VNF ID is provided by ECOMP\n vf_module_id:\n type: string\n label: vFirewall module ID\n description: The vLoadBalancer Module ID is provided by ECOMP\n webserver_ip:\n type: string\n label: Webserver IP address\n description: IP address of the webserver that hosts the source code and binaries\n dcae_collector_ip:\n type: string\n label: DCAE collector IP address\n description: IP address of the DCAE collector\n key_name:\n type: string\n label: Key pair name\n description: Public/Private key pair name\n pub_key:\n type: string\n label: Public key\n description: Public key to be installed on the compute instance\n\nresources:\n vdns_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vlb_image_name }\n flavor: { get_param: vlb_flavor_name }\n name: { get_param: vdns_name_0 }\n key_name: { get_param: key_name }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vdns_private_0_port }\n - port: { get_resource: vdns_private_1_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __lb_oam_int__ : { get_param: vlb_private_ip_1 }\n __lb_private_ipaddr__: { get_param: vlb_private_ip_0 }\n __local_private_ipaddr__: { get_param: vdns_private_ip_0 }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n LB_OAM_INT=__lb_oam_int__\n LB_PRIVATE_IPADDR=__lb_private_ipaddr__\n LOCAL_PRIVATE_IPADDR=__local_private_ipaddr__\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_dns_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vdns.sh\n chmod +x v_dns_init.sh\n chmod +x vdns.sh\n echo $WEBSERVER_IP > config/webserver_ip.txt\n echo $LB_OAM_INT > config/lb_oam_int.txt\n echo $LB_PRIVATE_IPADDR > config/lb_private_ipaddr.txt\n echo $LOCAL_PRIVATE_IPADDR > config/local_private_ipaddr.txt\n echo \"no\" > config/install.txt\n mv vdns.sh /etc/init.d\n update-rc.d vdns.sh defaults\n ./v_dns_init.sh\n\n vdns_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: vlb_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: vlb_private_net_id }, \"ip_address\": { get_param: vdns_private_ip_0 }}]\n\n vdns_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vdns_private_ip_1 }}]\n',300,'MANUAL RECORD','2016-11-14 13:04:07');
+
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','dcae_collector_ip','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','ecomp_private_net_cidr','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','ecomp_private_net_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','key_name','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','public_net_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','pub_key','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vdns_private_ip_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vdns_private_ip_1','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vdsn_name_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vf_module_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_flavor_name','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_image_name','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_name_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_private_ip_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_private_ip_1','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_private_net_cidr','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vlb_private_net_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','vnf_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID1','webserver_ip','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','dcae_collector_ip','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','ecomp_private_net_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','key_name','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','public_net_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','pub_key','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vdns_private_ip_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vdns_private_ip_1','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vdsn_name_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vf_module_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vlb_flavor_name','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vlb_image_name','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vlb_private_ip_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vlb_private_net_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','vnf_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID2','webserver_ip','','string',NULL);
+
+INSERT INTO `service` (`MODEL_UUID`, `MODEL_NAME`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `TOSCA_CSAR_ARTIFACT_UUID`) VALUES ('1e34774e-715e-4fd6-bd09-7b654622f35i','dns-service','585822c8-4027-4f84-ba50-e9248606f111','1.0','dns service for unit test','2016-11-14 13:04:07',NULL);
+
+INSERT INTO `service_to_resource_customizations` (`SERVICE_MODEL_UUID`, `RESOURCE_MODEL_CUSTOMIZATION_UUID`, `MODEL_TYPE`, `CREATION_TIMESTAMP`) VALUES ('1e34774e-715e-4fd6-bd09-7b654622f35i','302aa6be-a9fe-11e7-8b4b-0242ac120002','vnf','2017-10-05 18:51:28');
+
+INSERT INTO `vf_module` (`MODEL_UUID`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `DESCRIPTION`, `IS_BASE`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `VOL_HEAT_TEMPLATE_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`) VALUES ('1e34774e-715e-4fd5-bd08-7b654622f33e.VF_RI1_DNS::module-1::module-1.group','585822c7-4027-4f84-ba50-e9248606f132','1.0','VF_RI1_DNS::module-1',NULL,1,'Artifact-UUID1',NULL,'2016-11-14 13:04:07','585822c7-4027-4f84-ba50-e9248606f131');
+INSERT INTO `vf_module` (`MODEL_UUID`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `DESCRIPTION`, `IS_BASE`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `VOL_HEAT_TEMPLATE_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`) VALUES ('1e34774e-715e-4fd5-bd08-7b654622f33e.VF_RI1_DNS::module-2::module-1.group','585822c7-4027-4f84-ba50-e9248606f133','1.0','VF_RI1_DNS::module-2',NULL,0,'Artifact-UUID2',NULL,'2016-11-14 13:04:07','585822c7-4027-4f84-ba50-e9248606f131');
+
+INSERT INTO `vf_module_customization` (`MODEL_CUSTOMIZATION_UUID`, `LABEL`, `INITIAL_COUNT`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_COUNT`, `HEAT_ENVIRONMENT_ARTIFACT_UUID`, `VOL_ENVIRONMENT_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VF_MODULE_MODEL_UUID`) VALUES ('30316d81-a9fe-11e7-8b4b-0242ac120002',NULL,1,0,NULL,NULL,'EnvArtifact-UUID1',NULL,'2017-10-05 18:51:25','1e34774e-715e-4fd5-bd08-7b654622f33e.VF_RI1_DNS::module-1::module-1.group');
+INSERT INTO `vf_module_customization` (`MODEL_CUSTOMIZATION_UUID`, `LABEL`, `INITIAL_COUNT`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_COUNT`, `HEAT_ENVIRONMENT_ARTIFACT_UUID`, `VOL_ENVIRONMENT_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VF_MODULE_MODEL_UUID`) VALUES ('303170ae-a9fe-11e7-8b4b-0242ac120002',NULL,0,0,NULL,NULL,'EnvArtifact-UUID2',NULL,'2017-10-05 18:51:25','1e34774e-715e-4fd5-bd08-7b654622f33e.VF_RI1_DNS::module-2::module-1.group');
+INSERT INTO `vnf_res_custom_to_vf_module_custom` (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID`, `VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID`, `CREATION_TIMESTAMP`) VALUES ('302aa6be-a9fe-11e7-8b4b-0242ac120002','30316d81-a9fe-11e7-8b4b-0242ac120002','2017-10-05 18:51:26');
+
+INSERT INTO `vnf_res_custom_to_vf_module_custom` (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID`, `VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID`, `CREATION_TIMESTAMP`) VALUES ('302aa6be-a9fe-11e7-8b4b-0242ac120002','303170ae-a9fe-11e7-8b4b-0242ac120002','2017-10-05 18:51:26');
+
+INSERT INTO `vnf_resource` (`ORCHESTRATION_MODE`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `MODEL_UUID`, `AIC_VERSION_MIN`, `AIC_VERSION_MAX`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `TOSCA_NODE_TYPE`, `HEAT_TEMPLATE_ARTIFACT_UUID`) VALUES ('HEAT','dns service for unit test1707MIGRATED','2016-11-14 13:04:07','585822c7-4027-4f84-ba50-e9248606f131',NULL,NULL,'585822c7-4027-4f84-ba50-e9248606f112','1.0','DNSResource',NULL,NULL);
+
+INSERT INTO `vnf_resource_customization` (`MODEL_CUSTOMIZATION_UUID`, `MODEL_INSTANCE_NAME`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_MAX_COUNT`, `NF_TYPE`, `NF_ROLE`, `NF_FUNCTION`, `NF_NAMING_CODE`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`) VALUES ('302aa6be-a9fe-11e7-8b4b-0242ac120002','DNSResource-1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2017-10-05 18:51:25','585822c7-4027-4f84-ba50-e9248606f131');
+
+SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql
new file mode 100644
index 0000000000..15001050b2
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/create_mso_db-demo-vfw.sql
@@ -0,0 +1,59 @@
+SOURCE ../default/create_mso_db-default.sql
+
+USE `mso_requests`;
+DROP USER 'mso';
+CREATE USER 'mso';
+GRANT ALL on mso_requests.* to 'mso' identified by 'mso123' with GRANT OPTION;
+FLUSH PRIVILEGES;
+
+USE `mso_catalog`;
+DROP USER 'catalog';
+CREATE USER 'catalog';
+GRANT ALL on mso_catalog.* to 'catalog' identified by 'catalog123' with GRANT OPTION;
+FLUSH PRIVILEGES;
+
+SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
+
+INSERT INTO `heat_environment` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('EnvArtifact-UUID3','base_vfw.env','1.0','base_vfw ENV file','parameters:\n vfw_image_name: Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)\n vfw_flavor_name: 4 GB General Purpose v1\n public_net_id: 00000000-0000-0000-0000-000000000000\n unprotected_private_net_id: zdfw1fwl01_unprotected\n protected_private_net_id: zdfw1fwl01_protected\n ecomp_private_net_id: oam_ecomp\n unprotected_private_net_cidr: 192.168.10.0/24\n protected_private_net_cidr: 192.168.20.0/24\n ecomp_private_net_cidr: 192.168.9.0/24\n vfw_private_ip_0: 192.168.10.100\n vfw_private_ip_1: 192.168.20.100\n vfw_private_ip_2: 192.168.9.100\n vpg_private_ip_0: 192.168.10.200\n vpg_private_ip_1: 192.168.9.200\n vsn_private_ip_0: 192.168.20.250\n vsn_private_ip_1: 192.168.9.250\n vfw_name_0: zdfw1fwl01fwl01\n vpg_name_0: zdfw1fwl01pgn01\n vsn_name_0: zdfw1fwl01snk01\n vnf_id: vFirewall_demo_app\n vf_module_id: vFirewall\n webserver_ip: 162.242.237.182\n dcae_collector_ip: 192.168.9.1\n key_name: vfw_key\n pub_key: INSERT YOUR PUBLIC KEY HERE','MANUAL RECORD','2016-11-14 13:04:07');
+
+INSERT INTO `heat_template` (`ARTIFACT_UUID`, `NAME`, `VERSION`, `DESCRIPTION`, `BODY`, `TIMEOUT_MINUTES`, `ARTIFACT_CHECKSUM`, `CREATION_TIMESTAMP`) VALUES ('Artifact-UUID3','base_vfw.yaml','1.0','Base VFW Heat','heat_template_version: 2013-05-23\n\ndescription: Heat template to deploy vFirewall demo app for OpenECOMP\n\nparameters:\n vfw_image_name:\n type: string\n label: Image name or ID\n description: Image to be used for compute instance\n vfw_flavor_name:\n type: string\n label: Flavor\n description: Type of instance (flavor) to be used\n public_net_id:\n type: string\n label: Public network name or ID\n description: Public network that enables remote connection to VNF\n unprotected_private_net_id:\n type: string\n label: Unprotected private network name or ID\n description: Private network that connects vPacketGenerator with vFirewall\n protected_private_net_id:\n type: string\n label: Protected private network name or ID\n description: Private network that connects vFirewall with vSink\n ecomp_private_net_id:\n type: string\n label: ECOMP management network name or ID\n description: Private network that connects ECOMP component and the VNF\n unprotected_private_net_cidr:\n type: string\n label: Unprotected private network CIDR\n description: The CIDR of the unprotected private network\n protected_private_net_cidr:\n type: string\n label: Protected private network CIDR\n description: The CIDR of the protected private network\n ecomp_private_net_cidr:\n type: string\n label: ECOMP private network CIDR\n description: The CIDR of the protected private network\n vfw_private_ip_0:\n type: string\n label: vFirewall private IP address towards the unprotected network\n description: Private IP address that is assigned to the vFirewall to communicate with the vPacketGenerator\n vfw_private_ip_1:\n type: string\n label: vFirewall private IP address towards the protected network\n description: Private IP address that is assigned to the vFirewall to communicate with the vSink\n vfw_private_ip_2:\n type: string\n label: vFirewall private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vFirewall to communicate with ECOMP components\n vpg_private_ip_0:\n type: string\n label: vPacketGenerator private IP address towards the unprotected network\n description: Private IP address that is assigned to the vPacketGenerator to communicate with the vFirewall\n vpg_private_ip_1:\n type: string\n label: vPacketGenerator private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vPacketGenerator to communicate with ECOMP components\n vsn_private_ip_0:\n type: string\n label: vSink private IP address towards the protected network\n description: Private IP address that is assigned to the vSink to communicate with the vFirewall\n vsn_private_ip_1:\n type: string\n label: vSink private IP address towards the ECOMP management network\n description: Private IP address that is assigned to the vSink to communicate with ECOMP components\n vfw_name_0:\n type: string\n label: vFirewall name\n description: Name of the vFirewall\n vpg_name_0:\n type: string\n label: vPacketGenerator name\n description: Name of the vPacketGenerator\n vsn_name_0:\n type: string\n label: vSink name\n description: Name of the vSink\n vnf_id:\n type: string\n label: VNF ID\n description: The VNF ID is provided by ECOMP\n vf_module_id:\n type: string\n label: vFirewall module ID\n description: The vFirewall Module ID is provided by ECOMP\n webserver_ip:\n type: string\n label: Webserver IP address\n description: IP address of the webserver that hosts the source code and binaries\n dcae_collector_ip:\n type: string\n label: DCAE collector IP address\n description: IP address of the DCAE collector\n key_name:\n type: string\n label: Key pair name\n description: Public/Private key pair name\n pub_key:\n type: string\n label: Public key\n description: Public key to be installed on the compute instance\n\nresources:\n my_keypair:\n type: OS::Nova::KeyPair\n properties:\n name: { get_param: key_name }\n public_key: { get_param: pub_key }\n save_private_key: false\n\n unprotected_private_network:\n type: OS::Neutron::Net\n properties:\n name: { get_param: unprotected_private_net_id }\n\n protected_private_network:\n type: OS::Neutron::Net\n properties:\n name: { get_param: protected_private_net_id }\n\n unprotected_private_subnet:\n type: OS::Neutron::Subnet\n properties:\n network_id: { get_resource: unprotected_private_network }\n cidr: { get_param: unprotected_private_net_cidr }\n\n protected_private_subnet:\n type: OS::Neutron::Subnet\n properties:\n network_id: { get_resource: protected_private_network }\n cidr: { get_param: protected_private_net_cidr }\n\n vfw_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vfw_image_name }\n flavor: { get_param: vfw_flavor_name }\n name: { get_param: vfw_name_0 }\n key_name: { get_resource: my_keypair }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vfw_private_0_port }\n - port: { get_resource: vfw_private_1_port }\n - port: { get_resource: vfw_private_2_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __dcae_collector_ip__ : { get_param: dcae_collector_ip }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n DCAE_COLLECTOR_IP=__dcae_collector_ip__\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_firewall_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vfirewall.sh\n chmod +x v_firewall_init.sh\n chmod +x vfirewall.sh\n echo $WEBSERVER_IP > config/webserver_ip.txt\n echo $DCAE_COLLECTOR_IP > config/dcae_collector_ip.txt\n echo \"no\" > config/install.txt\n mv vfirewall.sh /etc/init.d\n sudo update-rc.d vfirewall.sh defaults\n ./v_firewall_init.sh\n\n vfw_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: unprotected_private_network }\n fixed_ips: [{\"subnet\": { get_resource: unprotected_private_subnet }, \"ip_address\": { get_param: vfw_private_ip_0 }}]\n\n vfw_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: protected_private_network }\n fixed_ips: [{\"subnet\": { get_resource: protected_private_subnet }, \"ip_address\": { get_param: vfw_private_ip_1 }}]\n\n vfw_private_2_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vfw_private_ip_2 }}]\n\n vpg_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vfw_image_name }\n flavor: { get_param: vfw_flavor_name }\n name: { get_param: vpg_name_0 }\n key_name: { get_resource: my_keypair }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vpg_private_0_port }\n - port: { get_resource: vpg_private_1_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __fw_ipaddr__: { get_param: vfw_private_ip_0 }\n __protected_net_cidr__: { get_param: protected_private_net_cidr }\n __sink_ipaddr__: { get_param: vsn_private_ip_0 }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n FW_IPADDR=__fw_ipaddr__\n PROTECTED_NET_CIDR=__protected_net_cidr__\n SINK_IPADDR=__sink_ipaddr__\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_packetgen_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vpacketgen.sh\n chmod +x v_packetgen_init.sh\n chmod +x vpacketgen.sh\n echo $WEBSERVER_IP > config/webserver_ip.txt\n echo $FW_IPADDR > config/fw_ipaddr.txt\n echo $PROTECTED_NET_CIDR > config/protected_net_cidr.txt\n echo $SINK_IPADDR > config/sink_ipaddr.txt\n echo \"no\" > config/install.txt\n mv vpacketgen.sh /etc/init.d\n sudo update-rc.d vpacketgen.sh defaults\n ./v_packetgen_init.sh\n\n vpg_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: unprotected_private_network }\n fixed_ips: [{\"subnet\": { get_resource: unprotected_private_subnet }, \"ip_address\": { get_param: vpg_private_ip_0 }}]\n\n vpg_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vpg_private_ip_1 }}]\n\n vsn_0:\n type: OS::Nova::Server\n properties:\n image: { get_param: vfw_image_name }\n flavor: { get_param: vfw_flavor_name }\n name: { get_param: vsn_name_0 }\n key_name: { get_resource: my_keypair }\n networks:\n - network: { get_param: public_net_id }\n - port: { get_resource: vsn_private_0_port }\n - port: { get_resource: vsn_private_1_port }\n metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}\n user_data_format: RAW\n user_data:\n str_replace:\n params:\n __webserver__: { get_param: webserver_ip }\n __protected_net_gw__: { get_param: vfw_private_ip_1 }\n __unprotected_net__: { get_param: unprotected_private_net_cidr }\n template: |\n #!/bin/bash\n\n WEBSERVER_IP=__webserver__\n PROTECTED_NET_GW=__protected_net_gw__\n UNPROTECTED_NET=__unprotected_net__\n UNPROTECTED_NET=$(echo $UNPROTECTED_NET | cut -d\'/\' -f1)\n\n mkdir /opt/config\n cd /opt\n wget http://$WEBSERVER_IP/demo_repo/v_sink_init.sh\n wget http://$WEBSERVER_IP/demo_repo/vsink.sh\n chmod +x v_sink_init.sh\n chmod +x vsink.sh\n echo $PROTECTED_NET_GW > config/protected_net_gw.txt\n echo $UNPROTECTED_NET > config/unprotected_net.txt\n echo \"no\" > config/install.txt\n mv vsink.sh /etc/init.d\n sudo update-rc.d vsink.sh defaults\n ./v_sink_init.sh\n\n vsn_private_0_port:\n type: OS::Neutron::Port\n properties:\n network: { get_resource: protected_private_network }\n fixed_ips: [{\"subnet\": { get_resource: protected_private_subnet }, \"ip_address\": { get_param: vsn_private_ip_0 }}]\n\n vsn_private_1_port:\n type: OS::Neutron::Port\n properties:\n network: { get_param: ecomp_private_net_id }\n fixed_ips: [{\"subnet\": { get_param: ecomp_private_net_id }, \"ip_address\": { get_param: vsn_private_ip_1 }}]\n \n',300,'MANUAL RECORD','2016-11-14 13:04:07');
+
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','dcae_collector_ip','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','ecomp_private_net_cidr','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','ecomp_private_net_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','key_name','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','protected_private_net_cidr','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','protected_private_net_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','public_net_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','pub_key','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','unprotected_private_net_cidr','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','unprotected_private_net_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_flavor_name','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_image_name','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_name_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_private_ip_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_private_ip_1','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vfw_private_ip_2','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vf_module_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vnf_id','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vpg_name_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vpg_private_ip_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vpg_private_ip_1','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vsn_name_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vsn_private_ip_0','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','vsn_private_ip_1','','string',NULL);
+INSERT INTO `heat_template_params` (`HEAT_TEMPLATE_ARTIFACT_UUID`, `PARAM_NAME`, `IS_REQUIRED`, `PARAM_TYPE`, `PARAM_ALIAS`) VALUES ('Artifact-UUID3','webserver_ip','','string',NULL);
+
+INSERT INTO `service` (`MODEL_UUID`, `MODEL_NAME`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `TOSCA_CSAR_ARTIFACT_UUID`) VALUES ('2e34774e-715e-4fd5-bd09-7b654622f35i','vfw-service','585822c7-4027-4f84-ba50-e9248606f112','1.0','VFW service','2016-11-14 13:04:07',NULL);
+
+INSERT INTO `vf_module` (`MODEL_UUID`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `DESCRIPTION`, `IS_BASE`, `HEAT_TEMPLATE_ARTIFACT_UUID`, `VOL_HEAT_TEMPLATE_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`) VALUES ('1e34774e-715e-4fd5-bd08-7b654622f33f.VF_RI1_VFW::module-1::module-1.group','585822c7-4027-4f84-ba50-e9248606f134','1.0','VF_RI1_VFW::module-1',NULL,1,'Artifact-UUID3',NULL,'2016-11-14 13:04:07','685822c7-4027-4f84-ba50-e9248606f132');
+
+INSERT INTO `vf_module_customization` (`MODEL_CUSTOMIZATION_UUID`, `LABEL`, `INITIAL_COUNT`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_COUNT`, `HEAT_ENVIRONMENT_ARTIFACT_UUID`, `VOL_ENVIRONMENT_ARTIFACT_UUID`, `CREATION_TIMESTAMP`, `VF_MODULE_MODEL_UUID`) VALUES ('5aa23938-a9fe-11e7-8b4b-0242ac120002',NULL,1,0,NULL,NULL,'EnvArtifact-UUID3',NULL,'2017-10-05 18:52:03','1e34774e-715e-4fd5-bd08-7b654622f33f.VF_RI1_VFW::module-1::module-1.group');
+
+INSERT INTO `vnf_res_custom_to_vf_module_custom` (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID`, `VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID`, `CREATION_TIMESTAMP`) VALUES ('5a9bd247-a9fe-11e7-8b4b-0242ac120002','5aa23938-a9fe-11e7-8b4b-0242ac120002','2017-10-05 18:52:03');
+
+INSERT INTO `vnf_resource` (`ORCHESTRATION_MODE`, `DESCRIPTION`, `CREATION_TIMESTAMP`, `MODEL_UUID`, `AIC_VERSION_MIN`, `AIC_VERSION_MAX`, `MODEL_INVARIANT_UUID`, `MODEL_VERSION`, `MODEL_NAME`, `TOSCA_NODE_TYPE`, `HEAT_TEMPLATE_ARTIFACT_UUID`) VALUES ('HEAT','VFW service1707MIGRATED','2016-11-14 13:04:07','685822c7-4027-4f84-ba50-e9248606f132',NULL,NULL,'585822c7-4027-4f84-ba50-e9248606f113','1.0','VFWResource',NULL,NULL);
+
+INSERT INTO `vnf_resource_customization` (`MODEL_CUSTOMIZATION_UUID`, `MODEL_INSTANCE_NAME`, `MIN_INSTANCES`, `MAX_INSTANCES`, `AVAILABILITY_ZONE_MAX_COUNT`, `NF_TYPE`, `NF_ROLE`, `NF_FUNCTION`, `NF_NAMING_CODE`, `CREATION_TIMESTAMP`, `VNF_RESOURCE_MODEL_UUID`) VALUES ('5a9bd247-a9fe-11e7-8b4b-0242ac120002','VFWResource-1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2017-10-05 18:52:03','685822c7-4027-4f84-ba50-e9248606f132');
+
+SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql
new file mode 100644
index 0000000000..b9b8dd62c9
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mariadb_engine_7.7.3-ee.sql
@@ -0,0 +1,1195 @@
+DROP DATABASE IF EXISTS `camundabpmn`;
+
+CREATE DATABASE `camundabpmn`;
+
+USE `camundabpmn`;
+
+# DROP USER IF EXISTS 'camunda';
+delete from mysql.user where User='camunda';
+CREATE USER 'camunda';
+GRANT ALL on camundabpmn.* to 'camunda' identified by 'camunda123' with GRANT OPTION;
+FLUSH PRIVILEGES;
+
+USE `camundabpmn`;
+
+create table ACT_GE_PROPERTY (
+ NAME_ varchar(64),
+ VALUE_ varchar(300),
+ REV_ integer,
+ primary key (NAME_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+insert into ACT_GE_PROPERTY
+values ('schema.version', 'fox', 1);
+
+insert into ACT_GE_PROPERTY
+values ('schema.history', 'create(fox)', 1);
+
+insert into ACT_GE_PROPERTY
+values ('next.dbid', '1', 1);
+
+insert into ACT_GE_PROPERTY
+values ('deployment.lock', '0', 1);
+
+insert into ACT_GE_PROPERTY
+values ('history.cleanup.job.lock', '0', 1);
+
+create table ACT_GE_BYTEARRAY (
+ ID_ varchar(64),
+ REV_ integer,
+ NAME_ varchar(255),
+ DEPLOYMENT_ID_ varchar(64),
+ BYTES_ LONGBLOB,
+ GENERATED_ TINYINT,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RE_DEPLOYMENT (
+ ID_ varchar(64),
+ NAME_ varchar(255),
+ DEPLOY_TIME_ timestamp(3),
+ SOURCE_ varchar(255),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_EXECUTION (
+ ID_ varchar(64),
+ REV_ integer,
+ PROC_INST_ID_ varchar(64),
+ BUSINESS_KEY_ varchar(255),
+ PARENT_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ SUPER_EXEC_ varchar(64),
+ SUPER_CASE_EXEC_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ ACT_ID_ varchar(255),
+ ACT_INST_ID_ varchar(64),
+ IS_ACTIVE_ TINYINT,
+ IS_CONCURRENT_ TINYINT,
+ IS_SCOPE_ TINYINT,
+ IS_EVENT_SCOPE_ TINYINT,
+ SUSPENSION_STATE_ integer,
+ CACHED_ENT_STATE_ integer,
+ SEQUENCE_COUNTER_ bigint,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_JOB (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ TYPE_ varchar(255) NOT NULL,
+ LOCK_EXP_TIME_ timestamp(3) NULL,
+ LOCK_OWNER_ varchar(255),
+ EXCLUSIVE_ boolean,
+ EXECUTION_ID_ varchar(64),
+ PROCESS_INSTANCE_ID_ varchar(64),
+ PROCESS_DEF_ID_ varchar(64),
+ PROCESS_DEF_KEY_ varchar(255),
+ RETRIES_ integer,
+ EXCEPTION_STACK_ID_ varchar(64),
+ EXCEPTION_MSG_ varchar(4000),
+ DUEDATE_ timestamp(3) NULL,
+ REPEAT_ varchar(255),
+ HANDLER_TYPE_ varchar(255),
+ HANDLER_CFG_ varchar(4000),
+ DEPLOYMENT_ID_ varchar(64),
+ SUSPENSION_STATE_ integer NOT NULL DEFAULT 1,
+ JOB_DEF_ID_ varchar(64),
+ PRIORITY_ bigint NOT NULL DEFAULT 0,
+ SEQUENCE_COUNTER_ bigint,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_JOBDEF (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ PROC_DEF_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ ACT_ID_ varchar(255),
+ JOB_TYPE_ varchar(255) NOT NULL,
+ JOB_CONFIGURATION_ varchar(255),
+ SUSPENSION_STATE_ integer,
+ JOB_PRIORITY_ bigint,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RE_PROCDEF (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ NAME_ varchar(255),
+ KEY_ varchar(255) not null,
+ VERSION_ integer not null,
+ DEPLOYMENT_ID_ varchar(64),
+ RESOURCE_NAME_ varchar(4000),
+ DGRM_RESOURCE_NAME_ varchar(4000),
+ HAS_START_FORM_KEY_ TINYINT,
+ SUSPENSION_STATE_ integer,
+ TENANT_ID_ varchar(64),
+ VERSION_TAG_ varchar(64),
+ HISTORY_TTL_ integer,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_TASK (
+ ID_ varchar(64),
+ REV_ integer,
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ CASE_DEF_ID_ varchar(64),
+ NAME_ varchar(255),
+ PARENT_TASK_ID_ varchar(64),
+ DESCRIPTION_ varchar(4000),
+ TASK_DEF_KEY_ varchar(255),
+ OWNER_ varchar(255),
+ ASSIGNEE_ varchar(255),
+ DELEGATION_ varchar(64),
+ PRIORITY_ integer,
+ CREATE_TIME_ timestamp(3),
+ DUE_DATE_ datetime(3),
+ FOLLOW_UP_DATE_ datetime(3),
+ SUSPENSION_STATE_ integer,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_IDENTITYLINK (
+ ID_ varchar(64),
+ REV_ integer,
+ GROUP_ID_ varchar(255),
+ TYPE_ varchar(255),
+ USER_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_VARIABLE (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ TYPE_ varchar(255) not null,
+ NAME_ varchar(255) not null,
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double,
+ LONG_ bigint,
+ TEXT_ LONGBLOB NULL,
+ TEXT2_ LONGBLOB NULL,
+ VAR_SCOPE_ varchar(64) not null,
+ SEQUENCE_COUNTER_ bigint,
+ IS_CONCURRENT_LOCAL_ TINYINT,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_EVENT_SUBSCR (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ EVENT_TYPE_ varchar(255) not null,
+ EVENT_NAME_ varchar(255),
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ ACTIVITY_ID_ varchar(255),
+ CONFIGURATION_ varchar(255),
+ CREATED_ timestamp(3) not null,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_INCIDENT (
+ ID_ varchar(64) not null,
+ REV_ integer not null,
+ INCIDENT_TIMESTAMP_ timestamp(3) not null,
+ INCIDENT_MSG_ varchar(4000),
+ INCIDENT_TYPE_ varchar(255) not null,
+ EXECUTION_ID_ varchar(64),
+ ACTIVITY_ID_ varchar(255),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ CAUSE_INCIDENT_ID_ varchar(64),
+ ROOT_CAUSE_INCIDENT_ID_ varchar(64),
+ CONFIGURATION_ varchar(255),
+ TENANT_ID_ varchar(64),
+ JOB_DEF_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_AUTHORIZATION (
+ ID_ varchar(64) not null,
+ REV_ integer not null,
+ TYPE_ integer not null,
+ GROUP_ID_ varchar(255),
+ USER_ID_ varchar(255),
+ RESOURCE_TYPE_ integer not null,
+ RESOURCE_ID_ varchar(64),
+ PERMS_ integer,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_FILTER (
+ ID_ varchar(64) not null,
+ REV_ integer not null,
+ RESOURCE_TYPE_ varchar(255) not null,
+ NAME_ varchar(255) not null,
+ OWNER_ varchar(255),
+ QUERY_ LONGTEXT not null,
+ PROPERTIES_ LONGTEXT,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_METER_LOG (
+ ID_ varchar(64) not null,
+ NAME_ varchar(64) not null,
+ REPORTER_ varchar(255),
+ VALUE_ bigint,
+ TIMESTAMP_ timestamp(3),
+ MILLISECONDS_ bigint DEFAULT 0,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_EXT_TASK (
+ ID_ varchar(64) not null,
+ REV_ integer not null,
+ WORKER_ID_ varchar(255),
+ TOPIC_NAME_ varchar(255),
+ RETRIES_ integer,
+ ERROR_MSG_ varchar(4000),
+ ERROR_DETAILS_ID_ varchar(64),
+ LOCK_EXP_TIME_ timestamp(3) NULL,
+ SUSPENSION_STATE_ integer,
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ ACT_ID_ varchar(255),
+ ACT_INST_ID_ varchar(64),
+ TENANT_ID_ varchar(64),
+ PRIORITY_ bigint NOT NULL DEFAULT 0,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_RU_BATCH (
+ ID_ varchar(64) not null,
+ REV_ integer not null,
+ TYPE_ varchar(255),
+ TOTAL_JOBS_ integer,
+ JOBS_CREATED_ integer,
+ JOBS_PER_SEED_ integer,
+ INVOCATIONS_PER_JOB_ integer,
+ SEED_JOB_DEF_ID_ varchar(64),
+ BATCH_JOB_DEF_ID_ varchar(64),
+ MONITOR_JOB_DEF_ID_ varchar(64),
+ SUSPENSION_STATE_ integer,
+ CONFIGURATION_ varchar(255),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_);
+create index ACT_IDX_EXEC_TENANT_ID on ACT_RU_EXECUTION(TENANT_ID_);
+create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_);
+create index ACT_IDX_TASK_ASSIGNEE on ACT_RU_TASK(ASSIGNEE_);
+create index ACT_IDX_TASK_TENANT_ID on ACT_RU_TASK(TENANT_ID_);
+create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_);
+create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_);
+create index ACT_IDX_EVENT_SUBSCR_TENANT_ID on ACT_RU_EVENT_SUBSCR(TENANT_ID_);
+create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_);
+create index ACT_IDX_VARIABLE_TENANT_ID on ACT_RU_VARIABLE(TENANT_ID_);
+create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_);
+create index ACT_IDX_INC_CONFIGURATION on ACT_RU_INCIDENT(CONFIGURATION_);
+create index ACT_IDX_INC_TENANT_ID on ACT_RU_INCIDENT(TENANT_ID_);
+-- CAM-5914
+create index ACT_IDX_JOB_EXECUTION_ID on ACT_RU_JOB(EXECUTION_ID_);
+-- this index needs to be limited in mariadb see CAM-6938
+create index ACT_IDX_JOB_HANDLER on ACT_RU_JOB(HANDLER_TYPE_(100),HANDLER_CFG_(155));
+create index ACT_IDX_JOB_PROCINST on ACT_RU_JOB(PROCESS_INSTANCE_ID_);
+create index ACT_IDX_JOB_TENANT_ID on ACT_RU_JOB(TENANT_ID_);
+create index ACT_IDX_JOBDEF_TENANT_ID on ACT_RU_JOBDEF(TENANT_ID_);
+
+-- new metric milliseconds column
+CREATE INDEX ACT_IDX_METER_LOG_MS ON ACT_RU_METER_LOG(MILLISECONDS_);
+CREATE INDEX ACT_IDX_METER_LOG_NAME_MS ON ACT_RU_METER_LOG(NAME_, MILLISECONDS_);
+CREATE INDEX ACT_IDX_METER_LOG_REPORT ON ACT_RU_METER_LOG(NAME_, REPORTER_, MILLISECONDS_);
+
+-- old metric timestamp column
+CREATE INDEX ACT_IDX_METER_LOG_TIME ON ACT_RU_METER_LOG(TIMESTAMP_);
+CREATE INDEX ACT_IDX_METER_LOG ON ACT_RU_METER_LOG(NAME_, TIMESTAMP_);
+
+create index ACT_IDX_EXT_TASK_TOPIC on ACT_RU_EXT_TASK(TOPIC_NAME_);
+create index ACT_IDX_EXT_TASK_TENANT_ID on ACT_RU_EXT_TASK(TENANT_ID_);
+create index ACT_IDX_EXT_TASK_PRIORITY ON ACT_RU_EXT_TASK(PRIORITY_);
+create index ACT_IDX_EXT_TASK_ERR_DETAILS ON ACT_RU_EXT_TASK(ERROR_DETAILS_ID_);
+create index ACT_IDX_AUTH_GROUP_ID ON ACT_RU_AUTHORIZATION(GROUP_ID_);
+create index ACT_IDX_JOB_JOB_DEF_ID on ACT_RU_JOB(JOB_DEF_ID_);
+
+alter table ACT_GE_BYTEARRAY
+ add constraint ACT_FK_BYTEARR_DEPL
+ foreign key (DEPLOYMENT_ID_)
+ references ACT_RE_DEPLOYMENT (ID_);
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_) on delete cascade on update cascade;
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PARENT
+ foreign key (PARENT_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_SUPER
+ foreign key (SUPER_EXEC_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_EXECUTION
+ add constraint ACT_FK_EXE_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_TSKASS_TASK
+ foreign key (TASK_ID_)
+ references ACT_RU_TASK (ID_);
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint ACT_FK_ATHRZ_PROCEDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF(ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION(ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_BYTEARRAY
+ foreign key (BYTEARRAY_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_JOB
+ add constraint ACT_FK_JOB_EXCEPTION
+ foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+alter table ACT_RU_EVENT_SUBSCR
+ add constraint ACT_FK_EVENT_EXEC
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION(ID_);
+
+alter table ACT_RU_INCIDENT
+ add constraint ACT_FK_INC_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_INCIDENT
+ add constraint ACT_FK_INC_PROCINST
+ foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+alter table ACT_RU_INCIDENT
+ add constraint ACT_FK_INC_PROCDEF
+ foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_);
+
+alter table ACT_RU_INCIDENT
+ add constraint ACT_FK_INC_CAUSE
+ foreign key (CAUSE_INCIDENT_ID_)
+ references ACT_RU_INCIDENT (ID_) on delete cascade on update cascade;
+
+alter table ACT_RU_INCIDENT
+ add constraint ACT_FK_INC_RCAUSE
+ foreign key (ROOT_CAUSE_INCIDENT_ID_)
+ references ACT_RU_INCIDENT (ID_) on delete cascade on update cascade;
+
+alter table ACT_RU_EXT_TASK
+ add constraint ACT_FK_EXT_TASK_ERROR_DETAILS
+ foreign key (ERROR_DETAILS_ID_)
+ references ACT_GE_BYTEARRAY (ID_);
+
+create index ACT_IDX_INC_JOB_DEF on ACT_RU_INCIDENT(JOB_DEF_ID_);
+alter table ACT_RU_INCIDENT
+ add constraint ACT_FK_INC_JOB_DEF
+ foreign key (JOB_DEF_ID_)
+ references ACT_RU_JOBDEF (ID_);
+
+alter table ACT_RU_AUTHORIZATION
+ add constraint ACT_UNIQ_AUTH_USER
+ unique (USER_ID_,TYPE_,RESOURCE_TYPE_,RESOURCE_ID_);
+
+alter table ACT_RU_AUTHORIZATION
+ add constraint ACT_UNIQ_AUTH_GROUP
+ unique (GROUP_ID_,TYPE_,RESOURCE_TYPE_,RESOURCE_ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_UNIQ_VARIABLE
+ unique (VAR_SCOPE_, NAME_);
+
+alter table ACT_RU_EXT_TASK
+ add constraint ACT_FK_EXT_TASK_EXE
+ foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_);
+
+create index ACT_IDX_BATCH_SEED_JOB_DEF ON ACT_RU_BATCH(SEED_JOB_DEF_ID_);
+alter table ACT_RU_BATCH
+ add constraint ACT_FK_BATCH_SEED_JOB_DEF
+ foreign key (SEED_JOB_DEF_ID_)
+ references ACT_RU_JOBDEF (ID_);
+
+create index ACT_IDX_BATCH_MONITOR_JOB_DEF ON ACT_RU_BATCH(MONITOR_JOB_DEF_ID_);
+alter table ACT_RU_BATCH
+ add constraint ACT_FK_BATCH_MONITOR_JOB_DEF
+ foreign key (MONITOR_JOB_DEF_ID_)
+ references ACT_RU_JOBDEF (ID_);
+
+create index ACT_IDX_BATCH_JOB_DEF ON ACT_RU_BATCH(BATCH_JOB_DEF_ID_);
+alter table ACT_RU_BATCH
+ add constraint ACT_FK_BATCH_JOB_DEF
+ foreign key (BATCH_JOB_DEF_ID_)
+ references ACT_RU_JOBDEF (ID_);
+
+-- indexes for deadlock problems - https://app.camunda.com/jira/browse/CAM-2567 --
+create index ACT_IDX_INC_CAUSEINCID on ACT_RU_INCIDENT(CAUSE_INCIDENT_ID_);
+create index ACT_IDX_INC_EXID on ACT_RU_INCIDENT(EXECUTION_ID_);
+create index ACT_IDX_INC_PROCDEFID on ACT_RU_INCIDENT(PROC_DEF_ID_);
+create index ACT_IDX_INC_PROCINSTID on ACT_RU_INCIDENT(PROC_INST_ID_);
+create index ACT_IDX_INC_ROOTCAUSEINCID on ACT_RU_INCIDENT(ROOT_CAUSE_INCIDENT_ID_);
+-- index for deadlock problem - https://app.camunda.com/jira/browse/CAM-4440 --
+create index ACT_IDX_AUTH_RESOURCE_ID on ACT_RU_AUTHORIZATION(RESOURCE_ID_);
+-- index to prevent deadlock on fk constraint - https://app.camunda.com/jira/browse/CAM-5440 --
+create index ACT_IDX_EXT_TASK_EXEC on ACT_RU_EXT_TASK(EXECUTION_ID_);
+
+-- indexes to improve deployment
+create index ACT_IDX_BYTEARRAY_NAME on ACT_GE_BYTEARRAY(NAME_);
+create index ACT_IDX_DEPLOYMENT_NAME on ACT_RE_DEPLOYMENT(NAME_);
+create index ACT_IDX_DEPLOYMENT_TENANT_ID on ACT_RE_DEPLOYMENT(TENANT_ID_);
+create index ACT_IDX_JOBDEF_PROC_DEF_ID ON ACT_RU_JOBDEF(PROC_DEF_ID_);
+create index ACT_IDX_JOB_HANDLER_TYPE ON ACT_RU_JOB(HANDLER_TYPE_);
+create index ACT_IDX_EVENT_SUBSCR_EVT_NAME ON ACT_RU_EVENT_SUBSCR(EVENT_NAME_);
+create index ACT_IDX_PROCDEF_DEPLOYMENT_ID ON ACT_RE_PROCDEF(DEPLOYMENT_ID_);
+create index ACT_IDX_PROCDEF_TENANT_ID ON ACT_RE_PROCDEF(TENANT_ID_);
+create index ACT_IDX_PROCDEF_VER_TAG ON ACT_RE_PROCDEF(VERSION_TAG_);
+-- create case definition table --
+create table ACT_RE_CASE_DEF (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ NAME_ varchar(255),
+ KEY_ varchar(255) not null,
+ VERSION_ integer not null,
+ DEPLOYMENT_ID_ varchar(64),
+ RESOURCE_NAME_ varchar(4000),
+ DGRM_RESOURCE_NAME_ varchar(4000),
+ TENANT_ID_ varchar(64),
+ HISTORY_TTL_ integer,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+-- create case execution table --
+create table ACT_RU_CASE_EXECUTION (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ CASE_INST_ID_ varchar(64),
+ SUPER_CASE_EXEC_ varchar(64),
+ SUPER_EXEC_ varchar(64),
+ BUSINESS_KEY_ varchar(255),
+ PARENT_ID_ varchar(64),
+ CASE_DEF_ID_ varchar(64),
+ ACT_ID_ varchar(255),
+ PREV_STATE_ integer,
+ CURRENT_STATE_ integer,
+ REQUIRED_ boolean,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+-- create case sentry part table --
+
+create table ACT_RU_CASE_SENTRY_PART (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ CASE_INST_ID_ varchar(64),
+ CASE_EXEC_ID_ varchar(64),
+ SENTRY_ID_ varchar(255),
+ TYPE_ varchar(255),
+ SOURCE_CASE_EXEC_ID_ varchar(64),
+ STANDARD_EVENT_ varchar(255),
+ SOURCE_ varchar(255),
+ VARIABLE_EVENT_ varchar(255),
+ VARIABLE_NAME_ varchar(255),
+ SATISFIED_ boolean,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+-- create index on business key --
+create index ACT_IDX_CASE_EXEC_BUSKEY on ACT_RU_CASE_EXECUTION(BUSINESS_KEY_);
+
+-- create foreign key constraints on ACT_RU_CASE_EXECUTION --
+alter table ACT_RU_CASE_EXECUTION
+ add constraint ACT_FK_CASE_EXE_CASE_INST
+ foreign key (CASE_INST_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_) on delete cascade on update cascade;
+
+alter table ACT_RU_CASE_EXECUTION
+ add constraint ACT_FK_CASE_EXE_PARENT
+ foreign key (PARENT_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_);
+
+alter table ACT_RU_CASE_EXECUTION
+ add constraint ACT_FK_CASE_EXE_CASE_DEF
+ foreign key (CASE_DEF_ID_)
+ references ACT_RE_CASE_DEF(ID_);
+
+-- create foreign key constraints on ACT_RU_VARIABLE --
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_CASE_EXE
+ foreign key (CASE_EXECUTION_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_);
+
+alter table ACT_RU_VARIABLE
+ add constraint ACT_FK_VAR_CASE_INST
+ foreign key (CASE_INST_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_);
+
+-- create foreign key constraints on ACT_RU_TASK --
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_CASE_EXE
+ foreign key (CASE_EXECUTION_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_);
+
+alter table ACT_RU_TASK
+ add constraint ACT_FK_TASK_CASE_DEF
+ foreign key (CASE_DEF_ID_)
+ references ACT_RE_CASE_DEF(ID_);
+
+-- create foreign key constraints on ACT_RU_CASE_SENTRY_PART --
+alter table ACT_RU_CASE_SENTRY_PART
+ add constraint ACT_FK_CASE_SENTRY_CASE_INST
+ foreign key (CASE_INST_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_);
+
+alter table ACT_RU_CASE_SENTRY_PART
+ add constraint ACT_FK_CASE_SENTRY_CASE_EXEC
+ foreign key (CASE_EXEC_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_);
+
+create index ACT_IDX_CASE_DEF_TENANT_ID on ACT_RE_CASE_DEF(TENANT_ID_);
+create index ACT_IDX_CASE_EXEC_TENANT_ID on ACT_RU_CASE_EXECUTION(TENANT_ID_);
+-- create decision definition table --
+create table ACT_RE_DECISION_DEF (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ NAME_ varchar(255),
+ KEY_ varchar(255) not null,
+ VERSION_ integer not null,
+ DEPLOYMENT_ID_ varchar(64),
+ RESOURCE_NAME_ varchar(4000),
+ DGRM_RESOURCE_NAME_ varchar(4000),
+ DEC_REQ_ID_ varchar(64),
+ DEC_REQ_KEY_ varchar(255),
+ TENANT_ID_ varchar(64),
+ HISTORY_TTL_ integer,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+-- create decision requirements definition table --
+create table ACT_RE_DECISION_REQ_DEF (
+ ID_ varchar(64) NOT NULL,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ NAME_ varchar(255),
+ KEY_ varchar(255) NOT NULL,
+ VERSION_ integer NOT NULL,
+ DEPLOYMENT_ID_ varchar(64),
+ RESOURCE_NAME_ varchar(4000),
+ DGRM_RESOURCE_NAME_ varchar(4000),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+alter table ACT_RE_DECISION_DEF
+ add constraint ACT_FK_DEC_REQ
+ foreign key (DEC_REQ_ID_)
+ references ACT_RE_DECISION_REQ_DEF(ID_);
+
+create index ACT_IDX_DEC_DEF_TENANT_ID on ACT_RE_DECISION_DEF(TENANT_ID_);
+create index ACT_IDX_DEC_DEF_REQ_ID on ACT_RE_DECISION_DEF(DEC_REQ_ID_);
+create index ACT_IDX_DEC_REQ_DEF_TENANT_ID on ACT_RE_DECISION_REQ_DEF(TENANT_ID_);
+create table ACT_HI_PROCINST (
+ ID_ varchar(64) not null,
+ PROC_INST_ID_ varchar(64) not null,
+ BUSINESS_KEY_ varchar(255),
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64) not null,
+ START_TIME_ datetime(3) not null,
+ END_TIME_ datetime(3),
+ DURATION_ bigint,
+ START_USER_ID_ varchar(255),
+ START_ACT_ID_ varchar(255),
+ END_ACT_ID_ varchar(255),
+ SUPER_PROCESS_INSTANCE_ID_ varchar(64),
+ SUPER_CASE_INSTANCE_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ DELETE_REASON_ varchar(4000),
+ TENANT_ID_ varchar(64),
+ STATE_ varchar(255),
+ primary key (ID_),
+ unique (PROC_INST_ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_ACTINST (
+ ID_ varchar(64) not null,
+ PARENT_ACT_INST_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64) not null,
+ PROC_INST_ID_ varchar(64) not null,
+ EXECUTION_ID_ varchar(64) not null,
+ ACT_ID_ varchar(255) not null,
+ TASK_ID_ varchar(64),
+ CALL_PROC_INST_ID_ varchar(64),
+ CALL_CASE_INST_ID_ varchar(64),
+ ACT_NAME_ varchar(255),
+ ACT_TYPE_ varchar(255) not null,
+ ASSIGNEE_ varchar(64),
+ START_TIME_ datetime(3) not null,
+ END_TIME_ datetime(3),
+ DURATION_ bigint,
+ ACT_INST_STATE_ integer,
+ SEQUENCE_COUNTER_ bigint,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_TASKINST (
+ ID_ varchar(64) not null,
+ TASK_DEF_KEY_ varchar(255),
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ CASE_DEF_KEY_ varchar(255),
+ CASE_DEF_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ ACT_INST_ID_ varchar(64),
+ NAME_ varchar(255),
+ PARENT_TASK_ID_ varchar(64),
+ DESCRIPTION_ varchar(4000),
+ OWNER_ varchar(255),
+ ASSIGNEE_ varchar(255),
+ START_TIME_ datetime(3) not null,
+ END_TIME_ datetime(3),
+ DURATION_ bigint,
+ DELETE_REASON_ varchar(4000),
+ PRIORITY_ integer,
+ DUE_DATE_ datetime(3),
+ FOLLOW_UP_DATE_ datetime(3),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_VARINST (
+ ID_ varchar(64) not null,
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ ACT_INST_ID_ varchar(64),
+ CASE_DEF_KEY_ varchar(255),
+ CASE_DEF_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ NAME_ varchar(255) not null,
+ VAR_TYPE_ varchar(100),
+ REV_ integer,
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double,
+ LONG_ bigint,
+ TEXT_ LONGBLOB NULL,
+ TEXT2_ LONGBLOB NULL,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_DETAIL (
+ ID_ varchar(64) not null,
+ TYPE_ varchar(255) not null,
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ CASE_DEF_KEY_ varchar(255),
+ CASE_DEF_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ ACT_INST_ID_ varchar(64),
+ VAR_INST_ID_ varchar(64),
+ NAME_ varchar(255) not null,
+ VAR_TYPE_ varchar(255),
+ REV_ integer,
+ TIME_ datetime(3) not null,
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double,
+ LONG_ bigint,
+ TEXT_ LONGBLOB NULL,
+ TEXT2_ LONGBLOB NULL,
+ SEQUENCE_COUNTER_ bigint,
+ TENANT_ID_ varchar(64),
+ OPERATION_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_IDENTITYLINK (
+ ID_ varchar(64) not null,
+ TIMESTAMP_ timestamp(3) not null,
+ TYPE_ varchar(255),
+ USER_ID_ varchar(255),
+ GROUP_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ OPERATION_TYPE_ varchar(64),
+ ASSIGNER_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_COMMENT (
+ ID_ varchar(64) not null,
+ TYPE_ varchar(255),
+ TIME_ datetime(3) not null,
+ USER_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ ACTION_ varchar(255),
+ MESSAGE_ varchar(4000),
+ FULL_MSG_ LONGBLOB,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_ATTACHMENT (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ USER_ID_ varchar(255),
+ NAME_ varchar(255),
+ DESCRIPTION_ varchar(4000),
+ TYPE_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ URL_ varchar(4000),
+ CONTENT_ID_ varchar(64),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_OP_LOG (
+ ID_ varchar(64) not null,
+ DEPLOYMENT_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ CASE_DEF_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ JOB_ID_ varchar(64),
+ JOB_DEF_ID_ varchar(64),
+ BATCH_ID_ varchar(64),
+ USER_ID_ varchar(255),
+ TIMESTAMP_ timestamp(3) not null,
+ OPERATION_TYPE_ varchar(64),
+ OPERATION_ID_ varchar(64),
+ ENTITY_TYPE_ varchar(30),
+ PROPERTY_ varchar(64),
+ ORG_VALUE_ varchar(4000),
+ NEW_VALUE_ varchar(4000),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_INCIDENT (
+ ID_ varchar(64) not null,
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ CREATE_TIME_ timestamp(3) not null,
+ END_TIME_ timestamp(3) null,
+ INCIDENT_MSG_ varchar(4000),
+ INCIDENT_TYPE_ varchar(255) not null,
+ ACTIVITY_ID_ varchar(255),
+ CAUSE_INCIDENT_ID_ varchar(64),
+ ROOT_CAUSE_INCIDENT_ID_ varchar(64),
+ CONFIGURATION_ varchar(255),
+ INCIDENT_STATE_ integer,
+ TENANT_ID_ varchar(64),
+ JOB_DEF_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_JOB_LOG (
+ ID_ varchar(64) not null,
+ TIMESTAMP_ timestamp(3) not null,
+ JOB_ID_ varchar(64) not null,
+ JOB_DUEDATE_ timestamp(3) NULL,
+ JOB_RETRIES_ integer,
+ JOB_PRIORITY_ bigint NOT NULL DEFAULT 0,
+ JOB_EXCEPTION_MSG_ varchar(4000),
+ JOB_EXCEPTION_STACK_ID_ varchar(64),
+ JOB_STATE_ integer,
+ JOB_DEF_ID_ varchar(64),
+ JOB_DEF_TYPE_ varchar(255),
+ JOB_DEF_CONFIGURATION_ varchar(255),
+ ACT_ID_ varchar(255),
+ EXECUTION_ID_ varchar(64),
+ PROCESS_INSTANCE_ID_ varchar(64),
+ PROCESS_DEF_ID_ varchar(64),
+ PROCESS_DEF_KEY_ varchar(255),
+ DEPLOYMENT_ID_ varchar(64),
+ SEQUENCE_COUNTER_ bigint,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_BATCH (
+ ID_ varchar(64) not null,
+ TYPE_ varchar(255),
+ TOTAL_JOBS_ integer,
+ JOBS_PER_SEED_ integer,
+ INVOCATIONS_PER_JOB_ integer,
+ SEED_JOB_DEF_ID_ varchar(64),
+ MONITOR_JOB_DEF_ID_ varchar(64),
+ BATCH_JOB_DEF_ID_ varchar(64),
+ TENANT_ID_ varchar(64),
+ START_TIME_ datetime(3) not null,
+ END_TIME_ datetime(3),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_EXT_TASK_LOG (
+ ID_ varchar(64) not null,
+ TIMESTAMP_ timestamp(3) not null,
+ EXT_TASK_ID_ varchar(64) not null,
+ RETRIES_ integer,
+ TOPIC_NAME_ varchar(255),
+ WORKER_ID_ varchar(255),
+ PRIORITY_ bigint NOT NULL DEFAULT 0,
+ ERROR_MSG_ varchar(4000),
+ ERROR_DETAILS_ID_ varchar(64),
+ ACT_ID_ varchar(255),
+ ACT_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ TENANT_ID_ varchar(64),
+ STATE_ integer,
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_);
+create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_);
+create index ACT_IDX_HI_PRO_INST_TENANT_ID on ACT_HI_PROCINST(TENANT_ID_);
+create index ACT_IDX_HI_PRO_INST_PROC_DEF_KEY on ACT_HI_PROCINST(PROC_DEF_KEY_);
+
+create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_);
+create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_);
+create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_);
+create index ACT_IDX_HI_ACT_INST_COMP on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_, END_TIME_, ID_);
+create index ACT_IDX_HI_ACT_INST_STATS on ACT_HI_ACTINST(PROC_DEF_ID_, ACT_ID_, END_TIME_, ACT_INST_STATE_);
+create index ACT_IDX_HI_ACT_INST_TENANT_ID on ACT_HI_ACTINST(TENANT_ID_);
+create index ACT_IDX_HI_ACT_INST_PROC_DEF_KEY on ACT_HI_ACTINST(PROC_DEF_KEY_);
+
+create index ACT_IDX_HI_TASK_INST_TENANT_ID on ACT_HI_TASKINST(TENANT_ID_);
+create index ACT_IDX_HI_TASK_INST_PROC_DEF_KEY on ACT_HI_TASKINST(PROC_DEF_KEY_);
+
+create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_);
+create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_);
+create index ACT_IDX_HI_DETAIL_CASE_INST on ACT_HI_DETAIL(CASE_INST_ID_);
+create index ACT_IDX_HI_DETAIL_CASE_EXEC on ACT_HI_DETAIL(CASE_EXECUTION_ID_);
+create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_);
+create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_);
+create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_);
+create index ACT_IDX_HI_DETAIL_TENANT_ID on ACT_HI_DETAIL(TENANT_ID_);
+create index ACT_IDX_HI_DETAIL_PROC_DEF_KEY on ACT_HI_DETAIL(PROC_DEF_KEY_);
+
+create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_);
+create index ACT_IDX_HI_IDENT_LNK_TENANT_ID on ACT_HI_IDENTITYLINK(TENANT_ID_);
+create index ACT_IDX_HI_IDENT_LNK_PROC_DEF_KEY on ACT_HI_IDENTITYLINK(PROC_DEF_KEY_);
+
+create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_);
+create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_);
+create index ACT_IDX_HI_CASEVAR_CASE_INST on ACT_HI_VARINST(CASE_INST_ID_);
+create index ACT_IDX_HI_VAR_INST_TENANT_ID on ACT_HI_VARINST(TENANT_ID_);
+create index ACT_IDX_HI_VAR_INST_PROC_DEF_KEY on ACT_HI_VARINST(PROC_DEF_KEY_);
+
+create index ACT_IDX_HI_INCIDENT_TENANT_ID on ACT_HI_INCIDENT(TENANT_ID_);
+create index ACT_IDX_HI_INCIDENT_PROC_DEF_KEY on ACT_HI_INCIDENT(PROC_DEF_KEY_);
+
+create index ACT_IDX_HI_JOB_LOG_PROCINST on ACT_HI_JOB_LOG(PROCESS_INSTANCE_ID_);
+create index ACT_IDX_HI_JOB_LOG_PROCDEF on ACT_HI_JOB_LOG(PROCESS_DEF_ID_);
+create index ACT_IDX_HI_JOB_LOG_TENANT_ID on ACT_HI_JOB_LOG(TENANT_ID_);
+create index ACT_IDX_HI_JOB_LOG_JOB_DEF_ID on ACT_HI_JOB_LOG(JOB_DEF_ID_);
+create index ACT_IDX_HI_JOB_LOG_PROC_DEF_KEY on ACT_HI_JOB_LOG(PROCESS_DEF_KEY_);
+
+create index ACT_HI_EXT_TASK_LOG_PROCINST on ACT_HI_EXT_TASK_LOG(PROC_INST_ID_);
+create index ACT_HI_EXT_TASK_LOG_PROCDEF on ACT_HI_EXT_TASK_LOG(PROC_DEF_ID_);
+create index ACT_HI_EXT_TASK_LOG_PROC_DEF_KEY on ACT_HI_EXT_TASK_LOG(PROC_DEF_KEY_);
+create index ACT_HI_EXT_TASK_LOG_TENANT_ID on ACT_HI_EXT_TASK_LOG(TENANT_ID_);
+
+create index ACT_IDX_HI_OP_LOG_PROCINST on ACT_HI_OP_LOG(PROC_INST_ID_);
+create index ACT_IDX_HI_OP_LOG_PROCDEF on ACT_HI_OP_LOG(PROC_DEF_ID_);
+create table ACT_HI_CASEINST (
+ ID_ varchar(64) not null,
+ CASE_INST_ID_ varchar(64) not null,
+ BUSINESS_KEY_ varchar(255),
+ CASE_DEF_ID_ varchar(64) not null,
+ CREATE_TIME_ datetime(3) not null,
+ CLOSE_TIME_ datetime(3),
+ DURATION_ bigint,
+ STATE_ integer,
+ CREATE_USER_ID_ varchar(255),
+ SUPER_CASE_INSTANCE_ID_ varchar(64),
+ SUPER_PROCESS_INSTANCE_ID_ varchar(64),
+ TENANT_ID_ varchar(64),
+ primary key (ID_),
+ unique (CASE_INST_ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_HI_CASEACTINST (
+ ID_ varchar(64) not null,
+ PARENT_ACT_INST_ID_ varchar(64),
+ CASE_DEF_ID_ varchar(64) not null,
+ CASE_INST_ID_ varchar(64) not null,
+ CASE_ACT_ID_ varchar(255) not null,
+ TASK_ID_ varchar(64),
+ CALL_PROC_INST_ID_ varchar(64),
+ CALL_CASE_INST_ID_ varchar(64),
+ CASE_ACT_NAME_ varchar(255),
+ CASE_ACT_TYPE_ varchar(255),
+ CREATE_TIME_ datetime(3) not null,
+ END_TIME_ datetime(3),
+ DURATION_ bigint,
+ STATE_ integer,
+ REQUIRED_ boolean,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create index ACT_IDX_HI_CAS_I_CLOSE on ACT_HI_CASEINST(CLOSE_TIME_);
+create index ACT_IDX_HI_CAS_I_BUSKEY on ACT_HI_CASEINST(BUSINESS_KEY_);
+create index ACT_IDX_HI_CAS_I_TENANT_ID on ACT_HI_CASEINST(TENANT_ID_);
+create index ACT_IDX_HI_CAS_A_I_CREATE on ACT_HI_CASEACTINST(CREATE_TIME_);
+create index ACT_IDX_HI_CAS_A_I_END on ACT_HI_CASEACTINST(END_TIME_);
+create index ACT_IDX_HI_CAS_A_I_COMP on ACT_HI_CASEACTINST(CASE_ACT_ID_, END_TIME_, ID_);
+create index ACT_IDX_HI_CAS_A_I_CASEINST on ACT_HI_CASEACTINST(CASE_INST_ID_, CASE_ACT_ID_);
+create index ACT_IDX_HI_CAS_A_I_TENANT_ID on ACT_HI_CASEACTINST(TENANT_ID_);
+-- create history decision instance table --
+create table ACT_HI_DECINST (
+ ID_ varchar(64) NOT NULL,
+ DEC_DEF_ID_ varchar(64) NOT NULL,
+ DEC_DEF_KEY_ varchar(255) NOT NULL,
+ DEC_DEF_NAME_ varchar(255),
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ CASE_DEF_KEY_ varchar(255),
+ CASE_DEF_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ ACT_INST_ID_ varchar(64),
+ ACT_ID_ varchar(255),
+ EVAL_TIME_ datetime(3) not null,
+ COLLECT_VALUE_ double,
+ USER_ID_ varchar(255),
+ ROOT_DEC_INST_ID_ varchar(64),
+ DEC_REQ_ID_ varchar(64),
+ DEC_REQ_KEY_ varchar(255),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+-- create history decision input table --
+create table ACT_HI_DEC_IN (
+ ID_ varchar(64) NOT NULL,
+ DEC_INST_ID_ varchar(64) NOT NULL,
+ CLAUSE_ID_ varchar(64),
+ CLAUSE_NAME_ varchar(255),
+ VAR_TYPE_ varchar(100),
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double,
+ LONG_ bigint,
+ TEXT_ LONGBLOB NULL,
+ TEXT2_ LONGBLOB NULL,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+-- create history decision output table --
+create table ACT_HI_DEC_OUT (
+ ID_ varchar(64) NOT NULL,
+ DEC_INST_ID_ varchar(64) NOT NULL,
+ CLAUSE_ID_ varchar(64),
+ CLAUSE_NAME_ varchar(255),
+ RULE_ID_ varchar(64),
+ RULE_ORDER_ integer,
+ VAR_NAME_ varchar(255),
+ VAR_TYPE_ varchar(100),
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double,
+ LONG_ bigint,
+ TEXT_ LONGBLOB NULL,
+ TEXT2_ LONGBLOB NULL,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+
+create index ACT_IDX_HI_DEC_INST_ID on ACT_HI_DECINST(DEC_DEF_ID_);
+create index ACT_IDX_HI_DEC_INST_KEY on ACT_HI_DECINST(DEC_DEF_KEY_);
+create index ACT_IDX_HI_DEC_INST_PI on ACT_HI_DECINST(PROC_INST_ID_);
+create index ACT_IDX_HI_DEC_INST_CI on ACT_HI_DECINST(CASE_INST_ID_);
+create index ACT_IDX_HI_DEC_INST_ACT on ACT_HI_DECINST(ACT_ID_);
+create index ACT_IDX_HI_DEC_INST_ACT_INST on ACT_HI_DECINST(ACT_INST_ID_);
+create index ACT_IDX_HI_DEC_INST_TIME on ACT_HI_DECINST(EVAL_TIME_);
+create index ACT_IDX_HI_DEC_INST_TENANT_ID on ACT_HI_DECINST(TENANT_ID_);
+create index ACT_IDX_HI_DEC_INST_ROOT_ID on ACT_HI_DECINST(ROOT_DEC_INST_ID_);
+create index ACT_IDX_HI_DEC_INST_REQ_ID on ACT_HI_DECINST(DEC_REQ_ID_);
+create index ACT_IDX_HI_DEC_INST_REQ_KEY on ACT_HI_DECINST(DEC_REQ_KEY_);
+
+
+create index ACT_IDX_HI_DEC_IN_INST on ACT_HI_DEC_IN(DEC_INST_ID_);
+create index ACT_IDX_HI_DEC_IN_CLAUSE on ACT_HI_DEC_IN(DEC_INST_ID_, CLAUSE_ID_);
+
+create index ACT_IDX_HI_DEC_OUT_INST on ACT_HI_DEC_OUT(DEC_INST_ID_);
+create index ACT_IDX_HI_DEC_OUT_RULE on ACT_HI_DEC_OUT(RULE_ORDER_, CLAUSE_ID_);
+
+
+-- mariadb identity:
+
+create table ACT_ID_GROUP (
+ ID_ varchar(64),
+ REV_ integer,
+ NAME_ varchar(255),
+ TYPE_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_ID_MEMBERSHIP (
+ USER_ID_ varchar(64),
+ GROUP_ID_ varchar(64),
+ primary key (USER_ID_, GROUP_ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_ID_USER (
+ ID_ varchar(64),
+ REV_ integer,
+ FIRST_ varchar(255),
+ LAST_ varchar(255),
+ EMAIL_ varchar(255),
+ PWD_ varchar(255),
+ SALT_ varchar(255),
+ PICTURE_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_ID_INFO (
+ ID_ varchar(64),
+ REV_ integer,
+ USER_ID_ varchar(64),
+ TYPE_ varchar(64),
+ KEY_ varchar(255),
+ VALUE_ varchar(255),
+ PASSWORD_ LONGBLOB,
+ PARENT_ID_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_ID_TENANT (
+ ID_ varchar(64),
+ REV_ integer,
+ NAME_ varchar(255),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+create table ACT_ID_TENANT_MEMBER (
+ ID_ varchar(64) not null,
+ TENANT_ID_ varchar(64) not null,
+ USER_ID_ varchar(64),
+ GROUP_ID_ varchar(64),
+ primary key (ID_)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+alter table ACT_ID_MEMBERSHIP
+ add constraint ACT_FK_MEMB_GROUP
+ foreign key (GROUP_ID_)
+ references ACT_ID_GROUP (ID_);
+
+alter table ACT_ID_MEMBERSHIP
+ add constraint ACT_FK_MEMB_USER
+ foreign key (USER_ID_)
+ references ACT_ID_USER (ID_);
+
+alter table ACT_ID_TENANT_MEMBER
+ add constraint ACT_UNIQ_TENANT_MEMB_USER
+ unique (TENANT_ID_, USER_ID_);
+
+alter table ACT_ID_TENANT_MEMBER
+ add constraint ACT_UNIQ_TENANT_MEMB_GROUP
+ unique (TENANT_ID_, GROUP_ID_);
+
+alter table ACT_ID_TENANT_MEMBER
+ add constraint ACT_FK_TENANT_MEMB
+ foreign key (TENANT_ID_)
+ references ACT_ID_TENANT (ID_);
+
+alter table ACT_ID_TENANT_MEMBER
+ add constraint ACT_FK_TENANT_MEMB_USER
+ foreign key (USER_ID_)
+ references ACT_ID_USER (ID_);
+
+alter table ACT_ID_TENANT_MEMBER
+ add constraint ACT_FK_TENANT_MEMB_GROUP
+ foreign key (GROUP_ID_)
+ references ACT_ID_GROUP (ID_);
+
diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql
new file mode 100644
index 0000000000..3658c6c235
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/mysql_create_camunda_admin.sql
@@ -0,0 +1,25 @@
+USE camundabpmn;
+
+INSERT INTO `act_id_group` (`ID_`, `REV_`, `NAME_`, `TYPE_`) VALUES ('camunda-admin',1,'camunda BPM Administrators','SYSTEM');
+
+INSERT INTO `act_id_user` (`ID_`, `REV_`, `FIRST_`, `LAST_`, `EMAIL_`, `PWD_`, `SALT_`, `PICTURE_ID_`) VALUES ('admin',1,'admin','user','camundaadmin@onap.org','{SHA-512}n5jUw7fvXM9sZBcrIkLiAOCqiPHutaqEkbg6IQVQdylVP1im8SczBJf4f2xL7cvWwIAZjkcSSQzgFTsdaJSEiA==','ftTn4gNgMcq07wdSD0lEJQ==',NULL);
+
+INSERT INTO `act_id_membership` (`USER_ID_`, `GROUP_ID_`) VALUES ('admin','camunda-admin');
+
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49b0e028-a3c6-11e7-b0ec-0242ac120003',1,1,NULL,'admin',1,'admin',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49b525e9-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,2,'camunda-admin',2);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49b8814a-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,0,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49baa42b-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,1,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49bd8a5c-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,2,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49bfd44d-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,3,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49c1f72e-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,4,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49c41a0f-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,5,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49c77570-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,6,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49ca5ba1-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,7,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49cca592-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,8,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49ceef83-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,9,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49d11264-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,10,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49d38365-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,11,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49d5a646-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,12,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49d83e57-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,13,'*',2147483647);
+INSERT INTO `act_ru_authorization` (`ID_`, `REV_`, `TYPE_`, `GROUP_ID_`, `USER_ID_`, `RESOURCE_TYPE_`, `RESOURCE_ID_`, `PERMS_`) VALUES ('49da3a28-a3c6-11e7-b0ec-0242ac120003',1,1,'camunda-admin',NULL,14,'*',2147483647);
diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql
new file mode 100644
index 0000000000..ca002fbe6b
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Catalog-schema.sql
@@ -0,0 +1,462 @@
+
+ alter table HEAT_TEMPLATE_PARAMS
+ drop
+ foreign key FK_p3ol1xcvp831glqohrlu6o07o;
+
+ alter table MODEL_RECIPE
+ drop
+ foreign key FK_c23r0puyqug6n44jg39dutm1c;
+
+ alter table SERVICE
+ drop
+ foreign key FK_l3qy594u2xr1tfpmma3uigsna;
+
+ alter table SERVICE_RECIPE
+ drop
+ foreign key FK_i3r1b8j6e7dg9hkp49evnnm5y;
+
+ alter table SERVICE_TO_RESOURCE_CUSTOMIZATIONS
+ drop
+ foreign key FK_kiddaay6cfe0aob1f1jaio1bb;
+
+ alter table VF_MODULE
+ drop
+ foreign key FK_12jptc9it7gs3pru08skobxxc;
+
+ alter table VNF_RESOURCE_CUSTOMIZATION
+ drop
+ foreign key FK_iff1ayhb1hrp5jhea3vvikuni;
+
+ drop table if exists ALLOTTED_RESOURCE;
+
+ drop table if exists ALLOTTED_RESOURCE_CUSTOMIZATION;
+
+ drop table if exists HEAT_ENVIRONMENT;
+
+ drop table if exists HEAT_FILES;
+
+ drop table if exists HEAT_NESTED_TEMPLATE;
+
+ drop table if exists HEAT_TEMPLATE;
+
+ drop table if exists HEAT_TEMPLATE_PARAMS;
+
+ drop table if exists MODEL;
+
+ drop table if exists MODEL_RECIPE;
+
+ drop table if exists NETWORK_RECIPE;
+
+ drop table if exists NETWORK_RESOURCE;
+
+ drop table if exists NETWORK_RESOURCE_CUSTOMIZATION;
+
+ drop table if exists SERVICE;
+
+ drop table if exists SERVICE_RECIPE;
+
+ drop table if exists SERVICE_TO_ALLOTTED_RESOURCES;
+
+ drop table if exists SERVICE_TO_NETWORKS;
+
+ drop table if exists SERVICE_TO_RESOURCE_CUSTOMIZATIONS;
+
+ drop table if exists TEMP_NETWORK_HEAT_TEMPLATE_LOOKUP;
+
+ drop table if exists TOSCA_CSAR;
+
+ drop table if exists VF_MODULE;
+
+ drop table if exists VF_MODULE_CUSTOMIZATION;
+
+ drop table if exists VF_MODULE_TO_HEAT_FILES;
+
+ drop table if exists VNF_COMPONENTS;
+
+ drop table if exists VNF_COMPONENTS_RECIPE;
+
+ drop table if exists VNF_RECIPE;
+
+ drop table if exists VNF_RESOURCE;
+
+ drop table if exists VNF_RESOURCE_CUSTOMIZATION;
+
+ drop table if exists VNF_RES_CUSTOM_TO_VF_MODULE_CUSTOM;
+
+ create table ALLOTTED_RESOURCE (
+ MODEL_UUID varchar(255) not null,
+ MODEL_INVARIANT_UUID varchar(255),
+ MODEL_VERSION varchar(255),
+ MODEL_NAME varchar(255),
+ TOSCA_NODE_TYPE varchar(255),
+ SUBCATEGORY varchar(255),
+ DESCRIPTION varchar(255),
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (MODEL_UUID)
+ );
+
+ create table ALLOTTED_RESOURCE_CUSTOMIZATION (
+ MODEL_CUSTOMIZATION_UUID varchar(200) not null,
+ MODEL_INSTANCE_NAME varchar(255),
+ AR_MODEL_UUID varchar(255),
+ PROVIDING_SERVICE_MODEL_INVARIANT_UUID varchar(255),
+ TARGET_NETWORK_ROLE varchar(255),
+ NF_FUNCTION varchar(255),
+ NF_TYPE varchar(255),
+ NF_ROLE varchar(255),
+ NF_NAMING_CODE varchar(255),
+ MIN_INSTANCES integer,
+ MAX_INSTANCES integer,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (MODEL_CUSTOMIZATION_UUID)
+ );
+
+ create table HEAT_ENVIRONMENT (
+ ARTIFACT_UUID varchar(200) not null,
+ NAME varchar(100) not null,
+ VERSION varchar(20) not null,
+ DESCRIPTION varchar(1200),
+ BODY longtext not null,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ ARTIFACT_CHECKSUM varchar(200) default 'MANUAL RECORD',
+ primary key (ARTIFACT_UUID)
+ );
+
+ create table HEAT_FILES (
+ ARTIFACT_UUID varchar(255) not null,
+ DESCRIPTION varchar(255),
+ NAME varchar(255),
+ VERSION varchar(255),
+ BODY longtext,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ ARTIFACT_CHECKSUM varchar(255),
+ primary key (ARTIFACT_UUID)
+ );
+
+ create table HEAT_NESTED_TEMPLATE (
+ PARENT_HEAT_TEMPLATE_UUID varchar(200) not null,
+ CHILD_HEAT_TEMPLATE_UUID varchar(200) not null,
+ PROVIDER_RESOURCE_FILE varchar(100),
+ primary key (PARENT_HEAT_TEMPLATE_UUID, CHILD_HEAT_TEMPLATE_UUID)
+ );
+
+ create table HEAT_TEMPLATE (
+ ARTIFACT_UUID varchar(200) not null,
+ NAME varchar(200) not null,
+ VERSION varchar(20) not null,
+ BODY longtext not null,
+ TIMEOUT_MINUTES integer,
+ DESCRIPTION varchar(1200),
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ ARTIFACT_CHECKSUM varchar(200) default 'MANUAL RECORD' not null,
+ primary key (ARTIFACT_UUID)
+ );
+
+ create table HEAT_TEMPLATE_PARAMS (
+ HEAT_TEMPLATE_ARTIFACT_UUID varchar(255) not null,
+ PARAM_NAME varchar(255) not null,
+ IS_REQUIRED bit not null,
+ PARAM_TYPE varchar(20),
+ PARAM_ALIAS varchar(45),
+ primary key (HEAT_TEMPLATE_ARTIFACT_UUID, PARAM_NAME)
+ );
+
+ create table MODEL (
+ id integer not null auto_increment,
+ MODEL_TYPE varchar(20) not null,
+ MODEL_VERSION_ID varchar(40) not null,
+ MODEL_INVARIANT_ID varchar(40),
+ MODEL_NAME varchar(40) not null,
+ MODEL_VERSION varchar(20),
+ MODEL_CUSTOMIZATION_ID varchar(40),
+ MODEL_CUSTOMIZATION_NAME varchar(40),
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (id)
+ );
+
+ create table MODEL_RECIPE (
+ id integer not null auto_increment,
+ MODEL_ID integer not null,
+ ACTION varchar(20) not null,
+ SCHEMA_VERSION varchar(20),
+ DESCRIPTION varchar(1200),
+ ORCHESTRATION_URI varchar(256) not null,
+ MODEL_PARAM_XSD varchar(2048),
+ RECIPE_TIMEOUT integer,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (id)
+ );
+
+ create table NETWORK_RECIPE (
+ id integer not null auto_increment,
+ MODEL_NAME varchar(20) not null,
+ ACTION varchar(20) not null,
+ VERSION_STR varchar(20) not null,
+ SERVICE_TYPE varchar(45),
+ DESCRIPTION varchar(1200),
+ ORCHESTRATION_URI varchar(256) not null,
+ NETWORK_PARAM_XSD varchar(2048),
+ RECIPE_TIMEOUT integer,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (id)
+ );
+
+ create table NETWORK_RESOURCE (
+ MODEL_UUID varchar(200) not null,
+ MODEL_NAME varchar(200) not null,
+ MODEL_INVARIANT_UUID varchar(200),
+ MODEL_VERSION varchar(20),
+ TOSCA_NODE_TYPE varchar(200),
+ NEUTRON_NETWORK_TYPE varchar(20),
+ DESCRIPTION varchar(1200),
+ ORCHESTRATION_MODE varchar(20),
+ HEAT_TEMPLATE_ARTIFACT_UUID varchar(200) not null,
+ AIC_VERSION_MIN varchar(20) default 2.5 not null,
+ AIC_VERSION_MAX varchar(20) default 2.5,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (MODEL_UUID)
+ );
+
+ create table NETWORK_RESOURCE_CUSTOMIZATION (
+ MODEL_CUSTOMIZATION_UUID varchar(200) not null,
+ NETWORK_RESOURCE_MODEL_UUID varchar(200) not null,
+ MODEL_INSTANCE_NAME varchar(255),
+ NETWORK_TECHNOLOGY varchar(255),
+ NETWORK_TYPE varchar(255),
+ NETWORK_SCOPE varchar(255),
+ NETWORK_ROLE varchar(255),
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (MODEL_CUSTOMIZATION_UUID)
+ );
+
+ create table SERVICE (
+ MODEL_UUID varchar(200) not null,
+ MODEL_NAME varchar(200) not null,
+ MODEL_VERSION varchar(20) not null,
+ DESCRIPTION varchar(1200),
+ TOSCA_CSAR_ARTIFACT_UUID varchar(200),
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ MODEL_INVARIANT_UUID varchar(200) default 'MANUAL_RECORD' not null,
+ SERVICE_TYPE varchar(20),
+ SERVICE_ROLE varchar(20),
+ primary key (MODEL_UUID)
+ );
+
+ create table SERVICE_RECIPE (
+ id integer not null auto_increment,
+ SERVICE_MODEL_UUID varchar(200) not null,
+ ACTION varchar(40) not null,
+ ORCHESTRATION_URI varchar(256) not null,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ VERSION_STR varchar(20),
+ DESCRIPTION varchar(1200),
+ SERVICE_PARAM_XSD varchar(2048),
+ RECIPE_TIMEOUT integer,
+ SERVICE_TIMEOUT_INTERIM integer,
+ primary key (id)
+ );
+
+ create table SERVICE_TO_ALLOTTED_RESOURCES (
+ SERVICE_MODEL_UUID varchar(200) not null,
+ AR_MODEL_CUSTOMIZATION_UUID varchar(200) not null,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (SERVICE_MODEL_UUID, AR_MODEL_CUSTOMIZATION_UUID)
+ );
+
+ create table SERVICE_TO_NETWORKS (
+ SERVICE_MODEL_UUID varchar(200) not null,
+ NETWORK_MODEL_CUSTOMIZATION_UUID varchar(200) not null,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (SERVICE_MODEL_UUID, NETWORK_MODEL_CUSTOMIZATION_UUID)
+ );
+
+ create table SERVICE_TO_RESOURCE_CUSTOMIZATIONS (
+ MODEL_TYPE varchar(20) not null,
+ RESOURCE_MODEL_CUSTOMIZATION_UUID varchar(200) not null,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ SERVICE_MODEL_UUID varchar(200) not null,
+ primary key (MODEL_TYPE, RESOURCE_MODEL_CUSTOMIZATION_UUID)
+ );
+
+ create table TEMP_NETWORK_HEAT_TEMPLATE_LOOKUP (
+ NETWORK_RESOURCE_MODEL_NAME varchar(200) not null,
+ HEAT_TEMPLATE_ARTIFACT_UUID varchar(200) not null,
+ AIC_VERSION_MIN varchar(20) not null,
+ AIC_VERSION_MAX varchar(20),
+ primary key (NETWORK_RESOURCE_MODEL_NAME)
+ );
+
+ create table TOSCA_CSAR (
+ ARTIFACT_UUID varchar(200) not null,
+ NAME varchar(200) not null,
+ VERSION varchar(20) not null,
+ ARTIFACT_CHECKSUM varchar(200) not null,
+ URL varchar(200) not null,
+ DESCRIPTION varchar(1200),
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (ARTIFACT_UUID)
+ );
+
+ create table VF_MODULE (
+ MODEL_UUID varchar(200) not null,
+ VNF_RESOURCE_MODEL_UUID varchar(200),
+ MODEL_INVARIANT_UUID varchar(200),
+ MODEL_VERSION varchar(20) not null,
+ MODEL_NAME varchar(200) not null,
+ DESCRIPTION varchar(1200),
+ IS_BASE integer not null,
+ HEAT_TEMPLATE_ARTIFACT_UUID varchar(200) not null,
+ VOL_HEAT_TEMPLATE_ARTIFACT_UUID varchar(200),
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (MODEL_UUID)
+ );
+
+ create table VF_MODULE_CUSTOMIZATION (
+ MODEL_CUSTOMIZATION_UUID varchar(200) not null,
+ VF_MODULE_MODEL_UUID varchar(200) not null,
+ VOL_ENVIRONMENT_ARTIFACT_UUID varchar(200),
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ HEAT_ENVIRONMENT_ARTIFACT_UUID varchar(200),
+ MIN_INSTANCES integer,
+ MAX_INSTANCES integer,
+ INITIAL_COUNT integer,
+ AVAILABILITY_ZONE_COUNT integer,
+ LABEL varchar(200),
+ primary key (MODEL_CUSTOMIZATION_UUID)
+ );
+
+ create table VF_MODULE_TO_HEAT_FILES (
+ VF_MODULE_MODEL_UUID varchar(200) not null,
+ HEAT_FILES_ARTIFACT_UUID varchar(200) not null,
+ primary key (VF_MODULE_MODEL_UUID, HEAT_FILES_ARTIFACT_UUID)
+ );
+
+ create table VNF_COMPONENTS (
+ VNF_ID integer not null,
+ COMPONENT_TYPE varchar(20) not null,
+ HEAT_TEMPLATE_ID integer,
+ HEAT_ENVIRONMENT_ID integer,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (VNF_ID, COMPONENT_TYPE)
+ );
+
+ create table VNF_COMPONENTS_RECIPE (
+ id integer not null auto_increment,
+ VNF_TYPE varchar(200),
+ VF_MODULE_MODEL_UUID varchar(100),
+ VNF_COMPONENT_TYPE varchar(45) not null,
+ ACTION varchar(20) not null,
+ SERVICE_TYPE varchar(45),
+ VERSION varchar(20),
+ DESCRIPTION varchar(1200),
+ ORCHESTRATION_URI varchar(256) not null,
+ VNF_COMPONENT_PARAM_XSD varchar(2048),
+ RECIPE_TIMEOUT integer,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (id)
+ );
+
+ create table VNF_RECIPE (
+ id integer not null auto_increment,
+ VF_MODULE_ID varchar(100),
+ ACTION varchar(20) not null,
+ VERSION_STR varchar(20) not null,
+ VNF_TYPE varchar(200),
+ SERVICE_TYPE varchar(45) default null,
+ DESCRIPTION varchar(1200),
+ ORCHESTRATION_URI varchar(256) not null,
+ VNF_PARAM_XSD varchar(2048),
+ RECIPE_TIMEOUT integer,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (id)
+ );
+
+ create table VNF_RESOURCE (
+ MODEL_UUID varchar(200) not null,
+ MODEL_INVARIANT_UUID varchar(200),
+ MODEL_VERSION varchar(20) not null,
+ MODEL_NAME varchar(200),
+ TOSCA_NODE_TYPE varchar(200),
+ DESCRIPTION varchar(1200),
+ ORCHESTRATION_MODE varchar(20) not null,
+ AIC_VERSION_MIN varchar(20),
+ AIC_VERSION_MAX varchar(20),
+ HEAT_TEMPLATE_ARTIFACT_UUID varchar(200),
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (MODEL_UUID)
+ );
+
+ create table VNF_RESOURCE_CUSTOMIZATION (
+ MODEL_CUSTOMIZATION_UUID varchar(200) not null,
+ MODEL_INSTANCE_NAME varchar(200) not null,
+ MIN_INSTANCES integer,
+ MAX_INSTANCES integer,
+ AVAILABILITY_ZONE_MAX_COUNT integer,
+ NF_FUNCTION varchar(200),
+ NF_TYPE varchar(200),
+ NF_ROLE varchar(200),
+ NF_NAMING_CODE varchar(200),
+ VNF_RESOURCE_MODEL_UUID varchar(200) not null,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (MODEL_CUSTOMIZATION_UUID)
+ );
+
+ create table VNF_RES_CUSTOM_TO_VF_MODULE_CUSTOM (
+ VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID varchar(200) not null,
+ VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID varchar(200) not null,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID, VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID)
+ );
+
+ alter table MODEL
+ add constraint UK_rra00f1rk6eyy7g00k9raxh2v unique (MODEL_TYPE, MODEL_VERSION_ID);
+
+ alter table MODEL_RECIPE
+ add constraint UK_b4g8j9wtqrkxfycyi3ursk7gb unique (MODEL_ID, ACTION);
+
+ alter table NETWORK_RECIPE
+ add constraint UK_pbsa8i44m8p10f9529jdgfuk9 unique (MODEL_NAME, ACTION, VERSION_STR);
+
+ alter table SERVICE_RECIPE
+ add constraint UK_2lr377dpqnvl5aqlp5dtj2fcp unique (SERVICE_MODEL_UUID, ACTION);
+
+ alter table VNF_COMPONENTS_RECIPE
+ add constraint UK_g3je95aaxxiuest25f0qoy2u8 unique (VNF_TYPE, VF_MODULE_MODEL_UUID, VNF_COMPONENT_TYPE, ACTION, SERVICE_TYPE, VERSION);
+
+ alter table VNF_RECIPE
+ add constraint UK_f3tvqau498vrifq3cr8qnigkr unique (VF_MODULE_ID, ACTION, VERSION_STR);
+
+ alter table HEAT_TEMPLATE_PARAMS
+ add constraint FK_p3ol1xcvp831glqohrlu6o07o
+ foreign key (HEAT_TEMPLATE_ARTIFACT_UUID)
+ references HEAT_TEMPLATE (ARTIFACT_UUID);
+
+ alter table MODEL_RECIPE
+ add constraint FK_c23r0puyqug6n44jg39dutm1c
+ foreign key (MODEL_ID)
+ references MODEL (id);
+
+ alter table SERVICE
+ add constraint FK_l3qy594u2xr1tfpmma3uigsna
+ foreign key (TOSCA_CSAR_ARTIFACT_UUID)
+ references TOSCA_CSAR (ARTIFACT_UUID);
+
+ alter table SERVICE_RECIPE
+ add constraint FK_i3r1b8j6e7dg9hkp49evnnm5y
+ foreign key (SERVICE_MODEL_UUID)
+ references SERVICE (MODEL_UUID);
+
+ alter table SERVICE_TO_RESOURCE_CUSTOMIZATIONS
+ add constraint FK_kiddaay6cfe0aob1f1jaio1bb
+ foreign key (SERVICE_MODEL_UUID)
+ references SERVICE (MODEL_UUID);
+
+ alter table VF_MODULE
+ add constraint FK_12jptc9it7gs3pru08skobxxc
+ foreign key (VNF_RESOURCE_MODEL_UUID)
+ references VNF_RESOURCE (MODEL_UUID);
+
+ alter table VNF_RESOURCE_CUSTOMIZATION
+ add constraint FK_iff1ayhb1hrp5jhea3vvikuni
+ foreign key (VNF_RESOURCE_MODEL_UUID)
+ references VNF_RESOURCE (MODEL_UUID);
diff --git a/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql
new file mode 100644
index 0000000000..f64548e23d
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/MySQL-Requests-schema.sql
@@ -0,0 +1,84 @@
+
+ drop table if exists INFRA_ACTIVE_REQUESTS;
+
+ drop table if exists SITE_STATUS;
+
+ create table INFRA_ACTIVE_REQUESTS (
+ REQUEST_ID varchar(45) not null,
+ CLIENT_REQUEST_ID varchar(45),
+ ACTION varchar(45) not null,
+ REQUEST_STATUS varchar(20),
+ STATUS_MESSAGE varchar(2000),
+ PROGRESS bigint,
+ START_TIME datetime,
+ END_TIME datetime,
+ SOURCE varchar(45),
+ VNF_ID varchar(45),
+ VNF_NAME varchar(80),
+ VNF_TYPE varchar(200),
+ SERVICE_TYPE varchar(45),
+ AIC_NODE_CLLI varchar(11),
+ TENANT_ID varchar(45),
+ PROV_STATUS varchar(20),
+ VNF_PARAMS longtext,
+ VNF_OUTPUTS longtext,
+ REQUEST_BODY longtext,
+ RESPONSE_BODY longtext,
+ LAST_MODIFIED_BY varchar(50),
+ MODIFY_TIME datetime,
+ REQUEST_TYPE varchar(20),
+ VOLUME_GROUP_ID varchar(45),
+ VOLUME_GROUP_NAME varchar(45),
+ VF_MODULE_ID varchar(45),
+ VF_MODULE_NAME varchar(200),
+ VF_MODULE_MODEL_NAME varchar(200),
+ AAI_SERVICE_ID varchar(50),
+ AIC_CLOUD_REGION varchar(11),
+ CALLBACK_URL varchar(200),
+ CORRELATOR varchar(80),
+ SERVICE_INSTANCE_ID varchar(45),
+ SERVICE_INSTANCE_NAME varchar(80),
+ REQUEST_SCOPE varchar(20),
+ REQUEST_ACTION varchar(45) not null,
+ NETWORK_ID varchar(45),
+ NETWORK_NAME varchar(80),
+ NETWORK_TYPE varchar(80),
+ REQUESTOR_ID varchar(80),
+ primary key (REQUEST_ID)
+ );
+
+ create table SITE_STATUS (
+ SITE_NAME varchar(255) not null,
+ STATUS bit,
+ CREATION_TIMESTAMP datetime default CURRENT_TIMESTAMP,
+ primary key (SITE_NAME)
+ );
+ create table OPERATION_STATUS (
+ SERVICE_ID varchar(255) not null,
+ OPERATION_ID varchar(255) not null,
+ SERVICE_NAME varchar(255),
+ OPERATION_TYPE varchar(255),
+ USER_ID varchar(255),
+ RESULT varchar(255),
+ OPERATION_CONTENT varchar(255),
+ PROGRESS varchar(255),
+ REASON varchar(255),
+ OPERATE_AT datetime,
+ FINISHED_AT datetime,
+ primary key (SERVICE_ID,OPERATION_ID)
+ );
+ create table RESOURCE_OPERATION_STATUS (
+ SERVICE_ID varchar(255) not null,
+ OPERATION_ID varchar(255) not null,
+ RESOURCE_TEMPLATE_UUID varchar(255) not null,
+ OPER_TYPE varchar(255),
+ RESOURCE_INSTANCE_ID varchar(255),
+ JOB_ID varchar(255),
+ STATUS varchar(255),
+ PROGRESS varchar(255),
+ ERROR_CODE varchar(255) ,
+ STATUS_DESCRIPOTION varchar(255) ,
+ primary key (SERVICE_ID,OPERATION_ID,RESOURCE_TEMPLATE_UUID)
+ );
+ alter table INFRA_ACTIVE_REQUESTS
+ add constraint UK_bhu6w8p7wvur4pin0gjw2d5ak unique (CLIENT_REQUEST_ID);
diff --git a/kubernetes/so/charts/mariadb/templates/NOTES.txt b/kubernetes/so/charts/mariadb/templates/NOTES.txt
new file mode 100644
index 0000000000..c60c745ca3
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/templates/NOTES.txt
@@ -0,0 +1,19 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+ http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+ export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }})
+ export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+ echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+ NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+ You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}'
+ export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+ echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+ export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+ echo "Visit http://127.0.0.1:8080 to use your application"
+ kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/so/charts/mariadb/templates/configmap.yaml b/kubernetes/so/charts/mariadb/templates/configmap.yaml
new file mode 100644
index 0000000000..e70563a379
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/templates/configmap.yaml
@@ -0,0 +1,63 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: confd-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/conf.d/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: docker-entry-initd-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: automated-tests-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bulkload-default-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: demo-dns-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: demo-vfw-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: scripts-camunda-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/camunda/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: main-schemas-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/db-sql-scripts/main-schemas/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/charts/mariadb/templates/deployment.yaml b/kubernetes/so/charts/mariadb/templates/deployment.yaml
new file mode 100644
index 0000000000..3d0cd81772
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/templates/deployment.yaml
@@ -0,0 +1,118 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+spec:
+ replicas: {{ .Values.replicaCount }}
+ template:
+ metadata:
+ labels:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }}
+ spec:
+ hostname: mariadb
+ containers:
+ - name: {{ .Chart.Name }}
+ image: {{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ ports:
+ - containerPort: {{ .Values.service.internalPort }}
+ # disable liveness probe when breakpoints set in debugger
+ # so K8s doesn't restart unresponsive container
+ {{- if eq .Values.liveness.enabled true }}
+ livenessProbe:
+ tcpSocket:
+ port: {{ .Values.service.internalPort }}
+ initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.liveness.periodSeconds }}
+ {{end -}}
+ readinessProbe:
+ tcpSocket:
+ port: {{ .Values.service.internalPort }}
+ initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.readiness.periodSeconds }}
+ env:
+ - name: MYSQL_ROOT_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: {{ template "common.fullname" . }}
+ key: db-root-password
+ volumeMounts:
+ - mountPath: /var/lib/mysql
+ name: mariadb-data
+ - mountPath: /etc/localtime
+ name: localtime
+ readOnly: true
+ - mountPath: /etc/mysql/conf.d
+ name: mariadb-conf
+ - mountPath: /docker-entrypoint-initdb.d/02-load-additional-changes.sh
+ name: mariadb-docker-entrypoint-initdb
+ subPath: 02-load-additional-changes.sh
+ - mountPath: /docker-entrypoint-initdb.d/01-load-default-sql-files.sh
+ name: mariadb-docker-entrypoint-initdb
+ subPath: 01-load-default-sql-files.sh
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/automated-tests
+ name: mariadb-docker-entrypoint-automated-tests
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/default
+ name: mariadb-docker-entrypoint-bulkload-default
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-dns
+ name: mariadb-docker-entrypoint-demo-dns
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/bulkload-files/demo-vfw
+ name: mariadb-docker-entrypoint-demo-vfw
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/camunda
+ name: mariadb-docker-entrypoint-camunda
+ - mountPath: /docker-entrypoint-initdb.d/db-sql-scripts/main-schemas
+ name: mariadb-docker-entrypoint-main-schemas
+ resources:
+{{ toYaml .Values.resources | indent 12 }}
+ {{- if .Values.nodeSelector }}
+ nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+ {{- end -}}
+ {{- if .Values.affinity }}
+ affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+ {{- end }}
+ volumes:
+ {{- if .Values.persistence.enabled }}
+ - name: mariadb-data
+ persistentVolumeClaim:
+ claimName: {{ include "common.fullname" . }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ - name: mariadb-conf
+ configMap:
+ name: confd-configmap
+ - name: mariadb-docker-entrypoint-initdb
+ configMap:
+ name: docker-entry-initd-configmap
+ - name: mariadb-docker-entrypoint-automated-tests
+ configMap:
+ name: automated-tests-configmap
+ - name: mariadb-docker-entrypoint-bulkload-default
+ configMap:
+ name: bulkload-default-configmap
+ - name: mariadb-docker-entrypoint-demo-dns
+ configMap:
+ name: demo-dns-configmap
+ - name: mariadb-docker-entrypoint-demo-vfw
+ configMap:
+ name: demo-vfw-configmap
+ - name: mariadb-docker-entrypoint-camunda
+ configMap:
+ name: scripts-camunda-configmap
+ - name: mariadb-docker-entrypoint-main-schemas
+ configMap:
+ name: main-schemas-configmap
+ - name: localtime
+ hostPath:
+ path: /etc/localtime
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/so/charts/mariadb/templates/pv.yaml b/kubernetes/so/charts/mariadb/templates/pv.yaml
new file mode 100644
index 0000000000..31230a9ed7
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/templates/pv.yaml
@@ -0,0 +1,21 @@
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+ release: "{{ .Release.Name }}"
+ heritage: "{{ .Release.Service }}"
+ name: {{ include "common.fullname" . }}
+spec:
+ capacity:
+ storage: {{ .Values.persistence.size}}
+ accessModes:
+ - {{ .Values.persistence.accessMode }}
+ persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+ hostPath:
+ path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+{{- end -}}
diff --git a/kubernetes/so/charts/mariadb/templates/pvc.yaml b/kubernetes/so/charts/mariadb/templates/pvc.yaml
new file mode 100644
index 0000000000..b0cd3bf238
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/templates/pvc.yaml
@@ -0,0 +1,32 @@
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+ release: "{{ .Release.Name }}"
+ heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+ annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+ selector:
+ matchLabels:
+ name: {{ include "common.fullname" . }}
+ accessModes:
+ - {{ .Values.persistence.accessMode }}
+ resources:
+ requests:
+ storage: {{ .Values.persistence.size }}
+{{- if .Values.persistence.storageClass }}
+{{- if (eq "-" .Values.persistence.storageClass) }}
+ storageClassName: ""
+{{- else }}
+ storageClassName: "{{ .Values.persistence.storageClass }}"
+{{- end }}
+{{- end }}
+{{- end -}}
diff --git a/kubernetes/so/charts/mariadb/templates/secrets.yaml b/kubernetes/so/charts/mariadb/templates/secrets.yaml
new file mode 100644
index 0000000000..b96d720778
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/templates/secrets.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Secret
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+type: Opaque
+data:
+ db-root-password: {{ .Values.config.mariadbRootPassword | b64enc | quote }}
diff --git a/kubernetes/so/charts/mariadb/templates/service.yaml b/kubernetes/so/charts/mariadb/templates/service.yaml
new file mode 100644
index 0000000000..0a040bcab5
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/templates/service.yaml
@@ -0,0 +1,24 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+spec:
+ type: {{ .Values.service.type }}
+ ports:
+ {{if eq .Values.service.type "NodePort" -}}
+ - port: {{ .Values.service.internalPort }}
+ nodePort: {{ .Values.global.nodePortPrefix | default "302" }}{{ .Values.service.externalPort }}
+ {{- else -}}
+ - port: {{ .Values.service.externalPort }}
+ targetPort: {{ .Values.service.internalPort }}
+ {{- end}}
+ name: {{ .Values.service.name }}
+ selector:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }} \ No newline at end of file
diff --git a/kubernetes/so/charts/mariadb/values.yaml b/kubernetes/so/charts/mariadb/values.yaml
new file mode 100644
index 0000000000..c3e6ead945
--- /dev/null
+++ b/kubernetes/so/charts/mariadb/values.yaml
@@ -0,0 +1,92 @@
+# Default values for mariadb.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global: # global defaults
+ nodePortPrefix: 302
+ repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+ persistence: {}
+
+
+# application image
+repository: nexus3.onap.org:10001
+image: mariadb:10.1.11
+pullPolicy: Always
+
+# application configuration
+config:
+ mariadbRootPassword: password
+
+# override chart name (mariadb) to share a common namespace
+# suffix with parent chart (so)
+nsSuffix: so
+
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ # necessary to disable liveness probe when setting breakpoints
+ # in debugger so K8s doesn't restart unresponsive container
+ enabled: true
+
+readiness:
+ initialDelaySeconds: 10
+ periodSeconds: 10
+
+## Persist data to a persitent volume
+persistence:
+ enabled: true
+
+ ## A manually managed Persistent Volume and Claim
+ ## Requires persistence.enabled: true
+ ## If defined, PVC must be created manually before volume will be bound
+ # existingClaim:
+ volumeReclaimPolicy: Retain
+
+ ## database data Persistent Volume Storage Class
+ ## If defined, storageClassName: <storageClass>
+ ## If set to "-", storageClassName: "", which disables dynamic provisioning
+ ## If undefined (the default) or set to null, no storageClassName spec is
+ ## set, choosing the default provisioner. (gp2 on AWS, standard on
+ ## GKE, AWS & OpenStack)
+ ##
+ # storageClass: "-"
+ accessMode: ReadWriteMany
+ size: 2Gi
+ mountPath: /dockerdata-nfs
+ mountSubPath: mso/mariadb/data
+
+service:
+ type: NodePort
+ name: mariadb
+ externalPort: 52
+ internalPort: 3306
+
+ingress:
+ enabled: false
+
+resources: {}
+ # We usually recommend not to specify default resources and to leave this as a conscious
+ # choice for the user. This also increases chances charts run on environments with little
+ # resources, such as Minikube. If you do want to specify resources, uncomment the following
+ # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+ #
+ # Example:
+ # Configure resource requests and limits
+ # ref: http://kubernetes.io/docs/user-guide/compute-resources/
+ # Minimum memory for development is 2 CPU cores and 4GB memory
+ # Minimum memory for production is 4 CPU cores and 8GB memory
+#resources:
+# limits:
+# cpu: 2
+# memory: 4Gi
+# requests:
+# cpu: 2
+# memory: 4Gi
diff --git a/kubernetes/so/requirements.yaml b/kubernetes/so/requirements.yaml
new file mode 100644
index 0000000000..56029ab047
--- /dev/null
+++ b/kubernetes/so/requirements.yaml
@@ -0,0 +1,7 @@
+dependencies:
+ - name: common
+ version: ~2.0.0
+ # local reference to common chart, as it is
+ # a part of this chart's package and will not
+ # be published independently to a repo (at this point)
+ repository: '@local' \ No newline at end of file
diff --git a/kubernetes/so/resources/config/docker-files/scripts/start-jboss-server.sh b/kubernetes/so/resources/config/docker-files/scripts/start-jboss-server.sh
new file mode 100755
index 0000000000..3280253743
--- /dev/null
+++ b/kubernetes/so/resources/config/docker-files/scripts/start-jboss-server.sh
@@ -0,0 +1,63 @@
+#!/bin/sh
+# Copyright 2015 AT&T Intellectual Properties
+##############################################################################
+# Script to initialize the chef-repo branch and.chef
+#
+##############################################################################
+# Copy the certificates
+echo 'Copying the *.crt provided in /shared folder'
+cp --verbose /shared/*.crt /usr/local/share/ca-certificates
+update-ca-certificates
+
+echo 'Running in JBOSS'
+su - jboss
+
+DEBUG=''
+if [ "$JBOSS_DEBUG" = true ] ; then
+ DEBUG="--debug"
+fi
+
+#Start the chef-solo if mso-docker.json contains some data.
+if [ -s /var/berks-cookbooks/${CHEF_REPO_NAME}/environments/mso-docker.json ]
+then
+ echo "mso-docker.json has some configuration, replay the recipes."
+ chef-solo -c /var/berks-cookbooks/${CHEF_REPO_NAME}/solo.rb -o recipe[mso-config::apih],recipe[mso-config::bpmn],recipe[mso-config::jra]
+else
+ echo "mso-docker.json is empty, do not replay the recipes."
+fi
+
+JBOSS_PIDFILE=/tmp/jboss-standalone.pid
+$JBOSS_HOME/bin/standalone.sh ${DEBUG} -c standalone-full-ha-mso.xml &
+JBOSS_PID=$!
+# Trap common signals and relay them to the jboss process
+trap "kill -HUP $JBOSS_PID" HUP
+trap "kill -TERM $JBOSS_PID" INT
+trap "kill -QUIT $JBOSS_PID" QUIT
+trap "kill -PIPE $JBOSS_PID" PIPE
+trap "kill -TERM $JBOSS_PID" TERM
+if [ "x$JBOSS_PIDFILE" != "x" ]; then
+ echo $JBOSS_PID > $JBOSS_PIDFILE
+fi
+# Wait until the background process exits
+WAIT_STATUS=128
+while [ "$WAIT_STATUS" -ge 128 ]; do
+ wait $JBOSS_PID 2>/dev/null
+ WAIT_STATUS=$?
+ if [ "$WAIT_STATUS" -gt 128 ]; then
+ SIGNAL=`expr $WAIT_STATUS - 128`
+ SIGNAL_NAME=`kill -l $SIGNAL`
+ echo "*** JBossAS process ($JBOSS_PID) received $SIGNAL_NAME signal ***" >&2
+ fi
+done
+if [ "$WAIT_STATUS" -lt 127 ]; then
+ JBOSS_STATUS=$WAIT_STATUS
+else
+ JBOSS_STATUS=0
+fi
+if [ "$JBOSS_STATUS" -ne 10 ]; then
+ # Wait for a complete shudown
+ wait $JBOSS_PID 2>/dev/null
+fi
+if [ "x$JBOSS_PIDFILE" != "x" ]; then
+ grep "$JBOSS_PID" $JBOSS_PIDFILE && rm $JBOSS_PIDFILE
+fi
diff --git a/kubernetes/so/resources/config/log/filebeat/filebeat.yml b/kubernetes/so/resources/config/log/filebeat/filebeat.yml
new file mode 100644
index 0000000000..9ad559c027
--- /dev/null
+++ b/kubernetes/so/resources/config/log/filebeat/filebeat.yml
@@ -0,0 +1,41 @@
+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: ["logstash.{{ .Release.Name }}-log:5044"]
+ #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/so/resources/config/log/logback.apihandler-infra.xml b/kubernetes/so/resources/config/log/logback.apihandler-infra.xml
new file mode 100644
index 0000000000..3e0ea61ea6
--- /dev/null
+++ b/kubernetes/so/resources/config/log/logback.apihandler-infra.xml
@@ -0,0 +1,139 @@
+<configuration scan="false" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="ApiHandlerInfra"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+<appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration>
diff --git a/kubernetes/so/resources/config/log/logback.appc.xml b/kubernetes/so/resources/config/log/logback.appc.xml
new file mode 100644
index 0000000000..588f6f39d2
--- /dev/null
+++ b/kubernetes/so/resources/config/log/logback.appc.xml
@@ -0,0 +1,138 @@
+<configuration scan="false" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="AppCAdapter"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+<appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration>
diff --git a/kubernetes/so/resources/config/log/logback.asdc.xml b/kubernetes/so/resources/config/log/logback.asdc.xml
new file mode 100644
index 0000000000..b4879e017f
--- /dev/null
+++ b/kubernetes/so/resources/config/log/logback.asdc.xml
@@ -0,0 +1,138 @@
+<configuration scan="false" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="ASDCController"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+<appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration>
diff --git a/kubernetes/so/resources/config/log/logback.bpmn.xml b/kubernetes/so/resources/config/log/logback.bpmn.xml
new file mode 100644
index 0000000000..3bc3ca157b
--- /dev/null
+++ b/kubernetes/so/resources/config/log/logback.bpmn.xml
@@ -0,0 +1,139 @@
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="BPMN"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+ <appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration>
diff --git a/kubernetes/so/resources/config/log/logback.msorequestsdbadapter.xml b/kubernetes/so/resources/config/log/logback.msorequestsdbadapter.xml
new file mode 100644
index 0000000000..64a5022aa6
--- /dev/null
+++ b/kubernetes/so/resources/config/log/logback.msorequestsdbadapter.xml
@@ -0,0 +1,138 @@
+<configuration scan="false" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="RequestDB"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+<appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration>
diff --git a/kubernetes/so/resources/config/log/logback.network.xml b/kubernetes/so/resources/config/log/logback.network.xml
new file mode 100644
index 0000000000..542a8f6f00
--- /dev/null
+++ b/kubernetes/so/resources/config/log/logback.network.xml
@@ -0,0 +1,139 @@
+<configuration scan="false" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="NetworkAdapter"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+<appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration>
diff --git a/kubernetes/so/resources/config/log/logback.sdnc.xml b/kubernetes/so/resources/config/log/logback.sdnc.xml
new file mode 100644
index 0000000000..1323a8961d
--- /dev/null
+++ b/kubernetes/so/resources/config/log/logback.sdnc.xml
@@ -0,0 +1,138 @@
+<configuration scan="false" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="SDNCAdapter"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+<appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration>
diff --git a/kubernetes/so/resources/config/log/logback.tenant.xml b/kubernetes/so/resources/config/log/logback.tenant.xml
new file mode 100644
index 0000000000..a25c182e97
--- /dev/null
+++ b/kubernetes/so/resources/config/log/logback.tenant.xml
@@ -0,0 +1,139 @@
+<configuration scan="false" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="TenantAdapter"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+<appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration>
diff --git a/kubernetes/so/resources/config/log/logback.vfc.xml b/kubernetes/so/resources/config/log/logback.vfc.xml
new file mode 100644
index 0000000000..d0b66be5bb
--- /dev/null
+++ b/kubernetes/so/resources/config/log/logback.vfc.xml
@@ -0,0 +1,138 @@
+<configuration scan="false" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="vfcadapter"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+<appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration>
diff --git a/kubernetes/so/resources/config/log/logback.vnf.xml b/kubernetes/so/resources/config/log/logback.vnf.xml
new file mode 100644
index 0000000000..32f6e69f81
--- /dev/null
+++ b/kubernetes/so/resources/config/log/logback.vnf.xml
@@ -0,0 +1,138 @@
+<configuration scan="false" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="VnfAdapter"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+<appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration>
diff --git a/kubernetes/so/resources/config/log/logback.workflow-message-adapter.xml b/kubernetes/so/resources/config/log/logback.workflow-message-adapter.xml
new file mode 100644
index 0000000000..a7130a103f
--- /dev/null
+++ b/kubernetes/so/resources/config/log/logback.workflow-message-adapter.xml
@@ -0,0 +1,138 @@
+<configuration scan="false" debug="true">
+ <!--<jmxConfigurator /> -->
+ <!-- directory path for all other type logs -->
+ <property name="logDir" value="/var/log/onap" />
+
+ <!-- directory path for debugging type logs -->
+ <property name="debugDir" value="/var/log/onap" />
+
+ <!-- specify the component name
+ <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
+ <property name="componentName" value="MSO"></property>
+ <property name="subComponentName" value="WorkflowMessageAdapter"></property>
+ <!-- log file names -->
+ <property name="errorLogName" value="error" />
+ <property name="metricsLogName" value="metrics" />
+ <property name="auditLogName" value="audit" />
+ <property name="debugLogName" value="debug" />
+
+ <property name="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+ <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
+
+ <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+ <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+ <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
+ <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
+
+ <!-- ============================================================================ -->
+ <!-- EELF Appenders -->
+ <!-- ============================================================================ -->
+
+ <!-- The EELFAppender is used to record events to the general application
+ log -->
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
+ these events as part of the application root log. -->
+
+ <appender name="EELFAudit"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${auditPattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFAudit" />
+ </appender>
+
+ <appender name="EELFMetrics"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ %msg%n"</pattern> -->
+ <pattern>${metricPattern}</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFMetrics"/>
+ </appender>
+
+ <appender name="EELFError"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>INFO</level>
+ </filter>
+ <encoder>
+ <pattern>${errorPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFError"/>
+ </appender>
+
+ <appender name="EELFDebug"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
+ <rollingPolicy
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
+ <!--<maxHistory>30</maxHistory>-->
+ </rollingPolicy>
+ <encoder>
+ <pattern>${debugPattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+ <queueSize>256</queueSize>
+ <appender-ref ref="EELFDebug" />
+ <includeCallerData>true</includeCallerData>
+ </appender>
+
+
+ <!-- ============================================================================ -->
+ <!-- EELF loggers -->
+ <!-- ============================================================================ -->
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="asyncEELFAudit" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="asyncEELFMetrics" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="debug" additivity="false">
+ <appender-ref ref="asyncEELFError" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="asyncEELFDebug" />
+ </root>
+
+</configuration> \ No newline at end of file
diff --git a/kubernetes/so/resources/config/mso/aai.crt b/kubernetes/so/resources/config/mso/aai.crt
new file mode 100755
index 0000000000..d51c05606e
--- /dev/null
+++ b/kubernetes/so/resources/config/mso/aai.crt
@@ -0,0 +1,66 @@
+Bag Attributes
+ friendlyName: aaiopenecomp
+ localKeyID: 54 69 6D 65 20 31 35 31 30 30 33 33 31 37 31 38 39 32
+subject=/C=US/ST=NJ/L=Bedminister/O=ONAP/CN=aai.api.simpledemo.openecomp.org/emailAddress=aai-host@api.simpledemo.openecomp.org
+issuer=/C=US/ST=NJ/L=Bedminster/O=OpenECOMP/OU=simpledemo/CN=OpenECOMP simpledemo Server CA X1/emailAddress=simpledemo@openecomp.org
+-----BEGIN CERTIFICATE-----
+MIIDyzCCArMCCQDrA8zzZKXznDANBgkqhkiG9w0BAQsFADCBrTELMAkGA1UEBhMC
+VVMxCzAJBgNVBAgMAk5KMRMwEQYDVQQHDApCZWRtaW5zdGVyMRIwEAYDVQQKDAlP
+cGVuRUNPTVAxEzARBgNVBAsMCnNpbXBsZWRlbW8xKjAoBgNVBAMMIU9wZW5FQ09N
+UCBzaW1wbGVkZW1vIFNlcnZlciBDQSBYMTEnMCUGCSqGSIb3DQEJARYYc2ltcGxl
+ZGVtb0BvcGVuZWNvbXAub3JnMB4XDTE3MTEwMzIzNDUzNVoXDTE4MTIwNjIzNDUz
+NVowgaAxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJOSjEUMBIGA1UEBwwLQmVkbWlu
+aXN0ZXIxDTALBgNVBAoMBE9OQVAxKTAnBgNVBAMMIGFhaS5hcGkuc2ltcGxlZGVt
+by5vcGVuZWNvbXAub3JnMTQwMgYJKoZIhvcNAQkBFiVhYWktaG9zdEBhcGkuc2lt
+cGxlZGVtby5vcGVuZWNvbXAub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA6gFktbGZVt4o78kU6oeCdqx04yPNTd1qRmJ06CD87fgrIDCTXVC+PE7R
+hHd1V71aNnoElBzn+mwetn4qG4T9IqAJvFIXxrzLpS7WlKBxStFhe4GNXl+RDqWc
+UM+47+s32TwZ3czQrhMVR9VNENUHo2d6XylGaUDcVgrMYWbFYWfmIJ4tO1latW9n
+h+perB0nNBxNDK9nYtjLHQk6ukTmONSnldvCgu/TFX5C34qB49cI0LmCf5Lwk9tv
+8dmTZ6Um8A0EbQen+uPaaHeEXm/EtFy0FSVzoKmxuQS0g4JNhfnfNCHVDO7zGE+N
+pCb9VfUI2fXIZvjNBAemKN/b2i5d6QIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBh
+93eaeAw0aA4ukAPpuWIODxxAnZlFfDH4uzwnv6smDJzO1biRwQ5BBZfL8qSVozrp
+aDKeIPWP7fZvjl3mGfCp8mLkI6WkfXVcZy5IlJGDTnW+G8Cpohq910W/Ibp1J9zx
+Ki4IdgKx7FbSYLpgwH2g2EPshHXQX2qFdxYvnEH0PzJjYBKeyyHV3N2kNr6+kM3Q
+HpXXIiLNbNcqLT+9zOmuJszN8ILLV56vu8Clzwxld+ru0tiO2OJk2eT+mtw2PI1/
+jcYqEEdOIZycrQiytxXgvte7A9VFQP/1Tl22BBYrAW2BhyW67kopATeiSunK1FmO
+DLcT7mR+59F964RV9BJR
+-----END CERTIFICATE-----
+Bag Attributes
+ friendlyName: root
+ 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>
+subject=/C=US/ST=NJ/L=Bedminster/O=OpenECOMP/OU=simpledemo/CN=OpenECOMP simpledemo Server CA X1/emailAddress=simpledemo@openecomp.org
+issuer=/C=US/ST=NJ/L=Bedminster/O=OpenECOMP/OU=simpledemo/CN=OpenECOMP simpledemo Root Certification Authority/emailAddress=simpledemo@openecomp.org
+-----BEGIN CERTIFICATE-----
+MIIFpTCCA42gAwIBAgIJAJqx8dKnCZZoMA0GCSqGSIb3DQEBCwUAMIG9MQswCQYD
+VQQGEwJVUzELMAkGA1UECAwCTkoxEzARBgNVBAcMCkJlZG1pbnN0ZXIxEjAQBgNV
+BAoMCU9wZW5FQ09NUDETMBEGA1UECwwKc2ltcGxlZGVtbzE6MDgGA1UEAwwxT3Bl
+bkVDT01QIHNpbXBsZWRlbW8gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEn
+MCUGCSqGSIb3DQEJARYYc2ltcGxlZGVtb0BvcGVuZWNvbXAub3JnMB4XDTE2MTEy
+ODIxMTQyNloXDTIxMTEyNzIxMTQyNlowga0xCzAJBgNVBAYTAlVTMQswCQYDVQQI
+DAJOSjETMBEGA1UEBwwKQmVkbWluc3RlcjESMBAGA1UECgwJT3BlbkVDT01QMRMw
+EQYDVQQLDApzaW1wbGVkZW1vMSowKAYDVQQDDCFPcGVuRUNPTVAgc2ltcGxlZGVt
+byBTZXJ2ZXIgQ0EgWDExJzAlBgkqhkiG9w0BCQEWGHNpbXBsZWRlbW9Ab3BlbmVj
+b21wLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALr4rivKQuRk
+YNf5Ig40e1nqj6s6LB1vgMOYbKfRziOFpPcUpsHPOhusHowiUsrU1vdFSzPz6Ej7
+PjlmNSg2Qka8YCn9kd6QgM7U0KcPJvIucBp+qjifH3EvP0jgDPhDeVRYxzV454dv
+5kQ9uCpswJP7YAnX51dkWeH8nwPUoagt31bOl9LXENSrgxEThxdLYMJnQJWk2CmV
+otXM4tT1dxyJxFUrZ6uJCEAYw5VtlplqihHf8lHy+sWQavtsLz/4dc+sGeXSTfoI
+voKvoh3uZ5gEhGV8yfJxk1veX5y5/AxP80vQ+smWYjTnQL5QQ57y4bciez4XVBmQ
+SWimWtOi4e8CAwEAAaOBtTCBsjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
+AwIBhjAdBgNVHQ4EFgQUTqdsYgGNGubdJHq9tsaJhM9HE5wwcAYDVR0gBGkwZzBl
+BgRVHSAAMF0wWwYIKwYBBQUHAgIwTxpNSWYgeW91IHRydXN0IHRoaXMgY2VydCB0
+aGVuIHdlIGhhdmUgYSBicmlkZ2UgdGhhdCB5b3UgbWlnaHQgYmUgaW50ZXJlc3Rl
+ZCBpbi4wDQYJKoZIhvcNAQELBQADggIBAKNNlRqFuE/JgV1BHyYK0xoSXH4aZP/7
+IoHtDVcSaZAOOuFOUrwVMUbzRBebbb6RpFwt/X+NLFUGysd+XNLF7W7lzxKtmFNX
+n4OpNkBe0y5O7yurus8rERHzu3jiOSgVo+WzDlGpYSRnG3hI2qPWqD+Puzx/WwI8
+XUTuzEQQ3gUSyVFfXHpay3VpYmLZiLJ9WKY5SDw7Ie6Sxrju4Qm1HwnFY8wHZGcs
+2KMQzorJ1ZNQf523yUTghbT0rKaSFaD8zugPtI2ONfFG/QgrkQXo78opzPsHnHwa
+SxGSiAgeLbwAUCvPNl27zr6k6+7TcNjV0VUivAs0OG3VEAdgi7UWYB+30KfWwHwE
+zGmvd4IAGqIqlqLcSVArN5z8JK1B5nfjQn5UrclU1vK+dnuiKE2X4rKuBTRYRFR/
+km+mj4koYFPKFHndmJl1uv2OCJK9l5CSIuKWeI1qv8BASKqgNdoT/SKBXqxgYlCb
+o+j4IDjxrxChRO+e5vl9lA7INfRrbljCkUjfLRa+v2q9tWQ3+EQUwwnSrSfihh2T
+j0Tksr6b8dDsvMlCdOKG1B+JPcEXORSFKNXVTEfjqpJG8s16kFAocWt3S6xO0k1t
+qbQp+3tWQgW2TGnX0rMZzB6NGRNfWhlYmq2zHgXkiCIZ26Ztgt/LNbwEvN3+VlLo
+z/Rd+SKtlrfb
+-----END CERTIFICATE-----
diff --git a/kubernetes/so/resources/config/mso/encryption.key b/kubernetes/so/resources/config/mso/encryption.key
new file mode 100644
index 0000000000..eb52241e7f
--- /dev/null
+++ b/kubernetes/so/resources/config/mso/encryption.key
@@ -0,0 +1 @@
+aa3871669d893c7fb8abbcda31b88b4f
diff --git a/kubernetes/so/resources/config/mso/mso-docker.json b/kubernetes/so/resources/config/mso/mso-docker.json
new file mode 100755
index 0000000000..7a0c579a97
--- /dev/null
+++ b/kubernetes/so/resources/config/mso/mso-docker.json
@@ -0,0 +1,181 @@
+{
+ "name": "mso-docker",
+ "description": "MSO Docker Images",
+ "chef_type": "environment",
+ "json_class": "Chef::Environment",
+ "default_attributes":
+ {
+ "mso_config_path": "/etc/mso/config.d/",
+
+ "mso-api-handler-infra-config":
+ {
+ "bpelURL": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080",
+ "bpelAuth": "786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1",
+ "camundaURL": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080",
+ "camundaAuth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1"
+ },
+
+ "asdc-connections":
+ {
+ "asdc-controller1":
+ {
+ "user": "mso",
+ "consumerGroup": "sdc-OpenSource-Env1",
+ "consumerId": "sdc-COpenSource-Env11",
+ "environmentName": "{{ .Values.config.dmaapTopic }}",
+ "asdcAddress": "sdc-be.onap-sdc.svc.cluster.local:8443",
+ "password": "613AF3483E695524F9857643B697FA51C7A9A0951094F53791485BF3458F9EADA37DBACCCEBD0CB242B85B4062745247",
+ "pollingInterval": 60,
+ "pollingTimeout": 60,
+ "relevantArtifactTypes": "HEAT,HEAT_ENV,HEAT_VOL",
+ "activateServerTLSAuth": "false",
+ "keyStorePassword": "",
+ "keyStorePath": ""
+ }
+ },
+
+ "mso-sdnc-adapter-config":
+ {
+ "sdncurls":
+ [
+ "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/L3SDN-API:",
+ "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/config/L3SDN-API:",
+ "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/Firewall-API:",
+ "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/config",
+ "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/VNF-API:",
+ "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/NBNC-API:",
+ "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/NORTHBOUND-API:service-topology-operation",
+ "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/GENERIC-RESOURCE-API:",
+ "http://sdnhost.{{ .Release.Name }}-sdnc.svc.cluster.local:8282/restconf/operations/VNFTOPOLOGYAIC-API:"
+ ],
+
+ "bpelurl": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/SDNCAdapterCallbackService",
+ "restbpelurl": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/WorkflowMessage",
+ "myurl": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/adapters/rest/SDNCNotify",
+ "sdncauth": "263f7d5f944d4d0c76db74b4148bec67d0bc796a874bc0d2a2a12aae89a866aa69133f700f391f784719a37f6a68d29bf5a2fbae1dab0402db7788c800c5ba73",
+ "bpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1",
+ "sdncconnecttime": "5000"
+ },
+ "mso-po-adapter-config":
+ {
+ "identity_services":
+ [
+ {
+ "dcp_clli": "DEFAULT_KEYSTONE",
+ "identity_url": "{{ .Values.config.openStackKeyStoneUrl }}/v2.0",
+ "mso_id": "{{ .Values.config.openStackUserName }}",
+ "mso_pass": "{{ .Values.config.openStackEncryptedPasswordHere }}",
+ "admin_tenant":"{{ .Values.config.openStackServiceTenantName }}",
+ "member_role": "admin",
+ "tenant_metadata": "true",
+ "identity_server_type": "KEYSTONE",
+ "identity_authentication_type": "USERNAME_PASSWORD"
+ }
+ ],
+
+ "cloud_sites":
+ [
+ {
+ "id": "{{ .Values.config.openStackRegion }}",
+ "aic_version": "2.5",
+ "lcp_clli": "{{ .Values.config.openStackRegion }}",
+ "region_id": "{{ .Values.config.openStackRegion }}",
+ "identity_service_id": "DEFAULT_KEYSTONE"
+ }
+ ],
+
+ "vnfbpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1",
+ "checkrequiredparameters": "true",
+ "nwbpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1"
+ },
+
+
+ "mso-workflow-message-adapter-config":
+ {
+ "wmbpelurl": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/WorkflowMessage",
+ "wmbpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1"
+ },
+
+ "mso-appc-adapter-config":
+ {
+ "appc_url": "http://localhost:18080",
+ "appc_stub": "/AppC-Simulator/action/execute",
+ "appc_auth": "786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1",
+ "appc_timeout": "30",
+ "ueb_cluster_address": "http://localhost:18080",
+ "ueb_consumer_group": "testgroup",
+ "ueb_consumer_id": "testuser",
+ "ueb_topic": "queuetopic",
+ "ueb_polling_interval": "30",
+ "ueb_polling_interval": "30",
+ "ueb_user": "user",
+ "ueb_password": "1ec0d74615d4e4639f991c0590c83b88",
+ "bpel_url": "http://localhost:18080",
+ "bpel_stub": "/AppC-Simulator/bpmn/appCResponse",
+ "bpel_auth": "786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1",
+ "bpel_timeout": "30"
+ },
+
+ "mso-bpmn-config":
+ {
+ "urnFileSystemLoadingEnabled": "true"
+ },
+
+ "mso-bpmn-urn-config":
+ {
+ "debug":"false",
+ "invariantIdL3ToHigherLayerDeleteBonding": "50359538-066f-4a8d-807f-f2bc8eaa79dc",
+ "versionIdL3ToHigherLayerDeleteBonding": "52dbec20-47aa-42e4-936c-331d8e350d44",
+ "infraCustomerId": "21014aa2-526b-11e6-beb8-9e71128cae77",
+ "sniroAuth": "test:testpwd",
+ "sniroEndpoint": "http://sniro-emulator.{{ .Release.Name }}-mock.svc.cluster.local:8080/sniro/api/v2/placement",
+ "sniroTimeout": "PT30M",
+ "serviceAgnosticSniroHost": "http://sniro-emulator.{{ .Release.Name }}-mock.svc.cluster.local:8080",
+ "serviceAgnosticSniroEndpoint": "/sniro/api/v2/placement",
+ "aaiEndpoint": "https://aai-service.{{ .Release.Name }}-aai.svc.cluster.local:8443",
+ "aaiAuth": "2630606608347B7124C244AB0FE34F6F",
+ "adaptersNamespace": "http://org.openecomp.mso",
+ "adaptersCompletemsoprocessEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/CompleteMsoProcess",
+ "adaptersDbEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/dbadapters/MsoRequestsDbAdapter",
+ "adaptersOpenecompDbEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/dbadapters/RequestsDbAdapter",
+ "catalogDbEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/ecomp/mso/catalog",
+ "adaptersSdncEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/adapters/SDNCAdapter",
+ "adaptersSdncRestEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/adapters/rest/v1/sdnc",
+ "adaptersTenantEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/tenants/TenantAdapter",
+ "adaptersDbAuth": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74",
+ "adaptersWorkflowMessageEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/workflows/messages/message",
+ "workflowMessageEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/WorkflowMessage",
+ "workflowSdncAdapterCallback": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/SDNCAdapterCallbackService",
+ "workflowSdncReplicationDelay": "PT5S",
+ "workflowAaiDistributionDelay": "PT30S",
+ "msoKey": "07a7159d3bf51a0e53be7a8f89699be7",
+ "adaptersPoAuth": "6B0E6863FB8EE010AB6F191B3C0489437601E81DC7C86305CB92DB98AFC53D74",
+ "sdncTimeout": "PT5M",
+ "rollback": "true",
+ "adaptersNetworkEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/networks/NetworkAdapter",
+ "adaptersNetworkRestEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/networks/rest/v1/networks",
+ "adaptersVnfAsyncEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/vnfs/VnfAdapterAsync",
+ "workflowVnfAdapterDeleteCallback": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/vnfAdapterNotify",
+ "workflowVnfAdapterCreateCallback": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/vnfAdapterNotify",
+ "adaptersVnfRestEndpoint": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/vnfs/rest/v1/vnfs",
+ "workflowVnfAdapterRestCallback": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/vnfAdapterRestNotify",
+ "poTimeout": "PT5M",
+ "sdncFirewallYangModel": "http://com/att/svc/mis/firewall-lite-gui",
+ "sdncFirewallYangModelVersion": "2015-05-15",
+ "sdncTimeoutFirewall": "20",
+ "callbackRetryAttempts": "30",
+ "callbackRetrySleepTime": "1000",
+ "workflowL3ToHigherLayerAddBondingModelName" : "WAN Bonding",
+ "workflowL3ToHigherLayerAddBondingModelVersion" : "2.0"
+ }
+ },
+
+ "override_attributes":
+ {
+ },
+
+ "cookbook_versions":
+ {
+ "mso-config": "~> 1.0.0"
+ }
+}
diff --git a/kubernetes/so/resources/config/mso/standalone-full-ha-mso.xml b/kubernetes/so/resources/config/mso/standalone-full-ha-mso.xml
new file mode 100644
index 0000000000..7693736021
--- /dev/null
+++ b/kubernetes/so/resources/config/mso/standalone-full-ha-mso.xml
@@ -0,0 +1,609 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<server xmlns="urn:jboss:domain:4.2">
+
+ <extensions>
+ <extension module="org.jboss.as.clustering.infinispan"/>
+ <extension module="org.jboss.as.clustering.jgroups"/>
+ <extension module="org.jboss.as.connector"/>
+ <extension module="org.jboss.as.deployment-scanner"/>
+ <extension module="org.jboss.as.ee"/>
+ <extension module="org.jboss.as.ejb3"/>
+ <extension module="org.jboss.as.jaxrs"/>
+ <extension module="org.jboss.as.jdr"/>
+ <extension module="org.jboss.as.jmx"/>
+ <extension module="org.jboss.as.jpa"/>
+ <extension module="org.jboss.as.jsf"/>
+ <extension module="org.jboss.as.jsr77"/>
+ <extension module="org.jboss.as.logging"/>
+ <extension module="org.jboss.as.mail"/>
+ <extension module="org.jboss.as.modcluster"/>
+ <extension module="org.jboss.as.naming"/>
+ <extension module="org.jboss.as.pojo"/>
+ <extension module="org.jboss.as.remoting"/>
+ <extension module="org.jboss.as.sar"/>
+ <extension module="org.jboss.as.security"/>
+ <extension module="org.jboss.as.transactions"/>
+ <extension module="org.jboss.as.webservices"/>
+ <extension module="org.jboss.as.weld"/>
+ <extension module="org.wildfly.extension.batch.jberet"/>
+ <extension module="org.wildfly.extension.bean-validation"/>
+ <extension module="org.wildfly.extension.clustering.singleton"/>
+ <extension module="org.wildfly.extension.io"/>
+ <extension module="org.wildfly.extension.messaging-activemq"/>
+ <extension module="org.wildfly.extension.request-controller"/>
+ <extension module="org.wildfly.extension.security.manager"/>
+ <extension module="org.wildfly.extension.undertow"/>
+ <extension module="org.wildfly.iiop-openjdk"/>
+ </extensions>
+
+
+ <management>
+ <security-realms>
+ <security-realm name="ManagementRealm">
+ <authentication>
+ <local default-user="$local" skip-group-loading="true"/>
+ <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>
+ </authentication>
+ <authorization map-groups-to-roles="false">
+ <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>
+ </authorization>
+ </security-realm>
+ <security-realm name="ApplicationRealm">
+ <server-identities>
+ <ssl>
+ <keystore path="application.keystore" relative-to="jboss.server.config.dir" keystore-password="password" alias="server" key-password="password" generate-self-signed-certificate-host="localhost"/>
+ </ssl>
+ </server-identities>
+ <authentication>
+ <local default-user="$local" allowed-users="*" skip-group-loading="true"/>
+ <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>
+ </authentication>
+ <authorization>
+ <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>
+ </authorization>
+ </security-realm>
+ </security-realms>
+ <audit-log>
+ <formatters>
+ <json-formatter name="json-formatter"/>
+ </formatters>
+ <handlers>
+ <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/>
+ </handlers>
+ <logger log-boot="true" log-read-only="false" enabled="false">
+ <handlers>
+ <handler name="file"/>
+ </handlers>
+ </logger>
+ </audit-log>
+ <management-interfaces>
+ <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true">
+ <socket-binding http="management-http"/>
+ </http-interface>
+ </management-interfaces>
+ <access-control provider="simple">
+ <role-mapping>
+ <role name="SuperUser">
+ <include>
+ <user name="$local"/>
+ </include>
+ </role>
+ </role-mapping>
+ </access-control>
+ </management>
+
+ <profile>
+ <subsystem xmlns="urn:jboss:domain:logging:3.0">
+ <console-handler name="CONSOLE">
+ <level name="INFO"/>
+ <formatter>
+ <named-formatter name="COLOR-PATTERN"/>
+ </formatter>
+ </console-handler>
+ <periodic-rotating-file-handler name="FILE" autoflush="true">
+ <formatter>
+ <named-formatter name="PATTERN"/>
+ </formatter>
+ <file relative-to="jboss.server.log.dir" path="server.log"/>
+ <suffix value=".yyyy-MM-dd"/>
+ <append value="true"/>
+ </periodic-rotating-file-handler>
+ <logger category="com.arjuna">
+ <level name="WARN"/>
+ </logger>
+ <logger category="org.jboss.as.config">
+ <level name="DEBUG"/>
+ </logger>
+ <logger category="sun.rmi">
+ <level name="WARN"/>
+ </logger>
+ <root-logger>
+ <level name="INFO"/>
+ <handlers>
+ <handler name="CONSOLE"/>
+ <handler name="FILE"/>
+ </handlers>
+ </root-logger>
+ <formatter name="PATTERN">
+ <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
+ </formatter>
+ <formatter name="COLOR-PATTERN">
+ <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
+ </formatter>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:batch-jberet:1.0">
+ <default-job-repository name="in-memory"/>
+ <default-thread-pool name="batch"/>
+ <job-repository name="in-memory">
+ <in-memory/>
+ </job-repository>
+ <thread-pool name="batch">
+ <max-threads count="10"/>
+ <keepalive-time time="30" unit="seconds"/>
+ </thread-pool>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:datasources:4.0">
+ <datasources>
+ <datasource jndi-name="java:jboss/datasources/mso-requests" pool-name="mso-requests" enabled="true" use-ccm="true">
+ <connection-url>jdbc:mariadb://{{ .Release.Name }}-mariadb:3306/mso_requests?autoReconnect=true&amp;connectTimeout=60000&amp;socketTimeout=60000</connection-url>
+ <driver>mariadb</driver>
+ <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
+ <pool>
+ <min-pool-size>10</min-pool-size>
+ <max-pool-size>100</max-pool-size>
+ <prefill>true</prefill>
+ <use-strict-min>false</use-strict-min>
+ <flush-strategy>FailingConnectionOnly</flush-strategy>
+ </pool>
+ <security>
+ <user-name>mso</user-name>
+ <password>mso123</password>
+ </security>
+ <validation>
+ <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
+ <validate-on-match>false</validate-on-match>
+ <background-validation>true</background-validation>
+ <background-validation-millis>20000</background-validation-millis>
+ <use-fast-fail>true</use-fast-fail>
+ <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
+ </validation>
+ <timeout>
+ <idle-timeout-minutes>15</idle-timeout-minutes>
+ <query-timeout>30</query-timeout>
+ <allocation-retry>1</allocation-retry>
+ <allocation-retry-wait-millis>3000</allocation-retry-wait-millis>
+ </timeout>
+ </datasource>
+ <datasource jndi-name="java:jboss/datasources/mso-catalog" pool-name="mso-catalog" enabled="true" use-ccm="true">
+ <connection-url>jdbc:mariadb://{{ .Release.Name }}-mariadb:3306/mso_catalog?autoReconnect=true&amp;connectTimeout=60000&amp;socketTimeout=60000</connection-url>
+ <driver>mariadb</driver>
+ <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
+ <pool>
+ <min-pool-size>10</min-pool-size>
+ <max-pool-size>100</max-pool-size>
+ <prefill>true</prefill>
+ <use-strict-min>false</use-strict-min>
+ <flush-strategy>FailingConnectionOnly</flush-strategy>
+ </pool>
+ <security>
+ <user-name>catalog</user-name>
+ <password>catalog123</password>
+ </security>
+ <validation>
+ <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
+ <validate-on-match>false</validate-on-match>
+ <background-validation>true</background-validation>
+ <background-validation-millis>20000</background-validation-millis>
+ <use-fast-fail>true</use-fast-fail>
+ <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
+ </validation>
+ <timeout>
+ <idle-timeout-minutes>15</idle-timeout-minutes>
+ <query-timeout>30</query-timeout>
+ <allocation-retry>1</allocation-retry>
+ <allocation-retry-wait-millis>3000</allocation-retry-wait-millis>
+ </timeout>
+ </datasource>
+ <datasource jta="true" jndi-name="java:jboss/datasources/ProcessEngine" pool-name="ProcessEngine" enabled="true" use-java-context="true" use-ccm="true">
+ <connection-url>jdbc:mariadb://{{ .Release.Name }}-mariadb:3306/camundabpmn?autoReconnect=true&amp;connectTimeout=60000&amp;socketTimeout=60000</connection-url>
+ <driver>mariadb</driver>
+ <new-connection-sql>set autocommit=1</new-connection-sql>
+ <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
+ <pool>
+ <min-pool-size>10</min-pool-size>
+ <max-pool-size>100</max-pool-size>
+ <prefill>true</prefill>
+ <use-strict-min>false</use-strict-min>
+ <flush-strategy>FailingConnectionOnly</flush-strategy>
+ </pool>
+ <security>
+ <user-name>camunda</user-name>
+ <password>camunda123</password>
+ </security>
+ <validation>
+ <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
+ <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
+ </validation>
+ <statement>
+ <prepared-statement-cache-size>32</prepared-statement-cache-size>
+ <share-prepared-statements>true</share-prepared-statements>
+ </statement>
+ </datasource>
+ <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
+ <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
+ <driver>h2</driver>
+ <security>
+ <user-name>sa</user-name>
+ <password>sa</password>
+ </security>
+ </datasource>
+ <drivers>
+ <driver name="h2" module="com.h2database.h2">
+ <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
+ </driver>
+ <driver name="mariadb" module="mariadb">
+ <xa-datasource-class>org.mariadb.jdbc.MySQLDataSource</xa-datasource-class>
+ </driver>
+ </drivers>
+ </datasources>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
+ <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:ee:4.0">
+ <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
+ <concurrent>
+ <context-services>
+ <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/>
+ </context-services>
+ <managed-thread-factories>
+ <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/>
+ </managed-thread-factories>
+ <managed-executor-services>
+ <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" keepalive-time="5000"/>
+ </managed-executor-services>
+ <managed-scheduled-executor-services>
+ <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" keepalive-time="3000"/>
+ </managed-scheduled-executor-services>
+ </concurrent>
+ <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" jms-connection-factory="java:jboss/DefaultJMSConnectionFactory" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:ejb3:4.0">
+ <session-bean>
+ <stateless>
+ <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
+ </stateless>
+ <stateful default-access-timeout="5000" cache-ref="distributable" passivation-disabled-cache-ref="simple"/>
+ <singleton default-access-timeout="5000"/>
+ </session-bean>
+ <mdb>
+ <resource-adapter-ref resource-adapter-name="${ejb.resource-adapter-name:activemq-ra.rar}"/>
+ <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
+ </mdb>
+ <pools>
+ <bean-instance-pools>
+ <strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
+ <strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
+ </bean-instance-pools>
+ </pools>
+ <caches>
+ <cache name="simple"/>
+ <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/>
+ </caches>
+ <passivation-stores>
+ <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/>
+ </passivation-stores>
+ <async thread-pool-name="default"/>
+ <timer-service thread-pool-name="default" default-data-store="default-file-store">
+ <data-stores>
+ <file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/>
+ </data-stores>
+ </timer-service>
+ <remote connector-ref="http-remoting-connector" thread-pool-name="default"/>
+ <thread-pools>
+ <thread-pool name="default">
+ <max-threads count="10"/>
+ <keepalive-time time="100" unit="milliseconds"/>
+ </thread-pool>
+ </thread-pools>
+ <iiop enable-by-default="false" use-qualified-name="false"/>
+ <default-security-domain value="other"/>
+ <default-missing-method-permissions-deny-access value="true"/>
+ <log-system-exceptions value="true"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:io:1.1">
+ <worker name="default"/>
+ <buffer-pool name="default"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:infinispan:4.0">
+ <cache-container name="server" aliases="singleton cluster" default-cache="default" module="org.wildfly.clustering.server">
+ <transport lock-timeout="60000"/>
+ <replicated-cache name="default" mode="SYNC">
+ <transaction mode="BATCH"/>
+ </replicated-cache>
+ </cache-container>
+ <cache-container name="web" default-cache="dist" module="org.wildfly.clustering.web.infinispan">
+ <transport lock-timeout="60000"/>
+ <distributed-cache name="dist" mode="ASYNC" l1-lifespan="0" owners="2">
+ <locking isolation="REPEATABLE_READ"/>
+ <transaction mode="BATCH"/>
+ <file-store/>
+ </distributed-cache>
+ <distributed-cache name="concurrent" mode="SYNC" l1-lifespan="0" owners="2">
+ <file-store/>
+ </distributed-cache>
+ </cache-container>
+ <cache-container name="ejb" aliases="sfsb" default-cache="dist" module="org.wildfly.clustering.ejb.infinispan">
+ <transport lock-timeout="60000"/>
+ <distributed-cache name="dist" mode="ASYNC" l1-lifespan="0" owners="2">
+ <locking isolation="REPEATABLE_READ"/>
+ <transaction mode="BATCH"/>
+ <file-store/>
+ </distributed-cache>
+ </cache-container>
+ <cache-container name="hibernate" default-cache="local-query" module="org.hibernate.infinispan">
+ <transport lock-timeout="60000"/>
+ <local-cache name="local-query">
+ <eviction strategy="LRU" max-entries="10000"/>
+ <expiration max-idle="100000"/>
+ </local-cache>
+ <invalidation-cache name="entity" mode="SYNC">
+ <transaction mode="NON_XA"/>
+ <eviction strategy="LRU" max-entries="10000"/>
+ <expiration max-idle="100000"/>
+ </invalidation-cache>
+ <replicated-cache name="timestamps" mode="ASYNC"/>
+ </cache-container>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:iiop-openjdk:1.0">
+ <orb socket-binding="iiop" ssl-socket-binding="iiop-ssl"/>
+ <initializers security="identity" transactions="spec"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:jca:4.0">
+ <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>
+ <bean-validation enabled="true"/>
+ <default-workmanager>
+ <short-running-threads>
+ <core-threads count="50"/>
+ <queue-length count="50"/>
+ <max-threads count="50"/>
+ <keepalive-time time="10" unit="seconds"/>
+ </short-running-threads>
+ <long-running-threads>
+ <core-threads count="50"/>
+ <queue-length count="50"/>
+ <max-threads count="50"/>
+ <keepalive-time time="10" unit="seconds"/>
+ </long-running-threads>
+ </default-workmanager>
+ <cached-connection-manager/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:jdr:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:jgroups:4.0">
+ <channels default="ee">
+ <channel name="ee" stack="udp"/>
+ </channels>
+ <stacks>
+ <stack name="udp">
+ <transport type="UDP" socket-binding="jgroups-udp"/>
+ <protocol type="PING"/>
+ <protocol type="MERGE3"/>
+ <protocol type="FD_SOCK" socket-binding="jgroups-udp-fd"/>
+ <protocol type="FD_ALL"/>
+ <protocol type="VERIFY_SUSPECT"/>
+ <protocol type="pbcast.NAKACK2"/>
+ <protocol type="UNICAST3"/>
+ <protocol type="pbcast.STABLE"/>
+ <protocol type="pbcast.GMS"/>
+ <protocol type="UFC"/>
+ <protocol type="MFC"/>
+ <protocol type="FRAG2"/>
+ </stack>
+ <stack name="tcp">
+ <transport type="TCP" socket-binding="jgroups-tcp"/>
+ <protocol type="MPING" socket-binding="jgroups-mping"/>
+ <protocol type="MERGE3"/>
+ <protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd"/>
+ <protocol type="FD"/>
+ <protocol type="VERIFY_SUSPECT"/>
+ <protocol type="pbcast.NAKACK2"/>
+ <protocol type="UNICAST3"/>
+ <protocol type="pbcast.STABLE"/>
+ <protocol type="pbcast.GMS"/>
+ <protocol type="MFC"/>
+ <protocol type="FRAG2"/>
+ </stack>
+ </stacks>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:jmx:1.3">
+ <expose-resolved-model/>
+ <expose-expression-model/>
+ <remoting-connector/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:jpa:1.1">
+ <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:jsf:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:jsr77:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:mail:2.0">
+ <mail-session name="default" jndi-name="java:jboss/mail/Default">
+ <smtp-server outbound-socket-binding-ref="mail-smtp"/>
+ </mail-session>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0">
+ <server name="default">
+ <cluster password="${jboss.messaging.cluster.password:CHANGE ME!!}"/>
+ <security-setting name="#">
+ <role name="guest" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/>
+ </security-setting>
+ <address-setting name="#" dead-letter-address="jms.queue.DLQ" expiry-address="jms.queue.ExpiryQueue" max-size-bytes="10485760" page-size-bytes="2097152" message-counter-history-day-limit="10" redistribution-delay="1000"/>
+ <http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/>
+ <http-connector name="http-connector-throughput" socket-binding="http" endpoint="http-acceptor-throughput">
+ <param name="batch-delay" value="50"/>
+ </http-connector>
+ <in-vm-connector name="in-vm" server-id="0"/>
+ <http-acceptor name="http-acceptor" http-listener="default"/>
+ <http-acceptor name="http-acceptor-throughput" http-listener="default">
+ <param name="batch-delay" value="50"/>
+ <param name="direct-deliver" value="false"/>
+ </http-acceptor>
+ <in-vm-acceptor name="in-vm" server-id="0"/>
+ <broadcast-group name="bg-group1" jgroups-channel="activemq-cluster" connectors="http-connector"/>
+ <discovery-group name="dg-group1" jgroups-channel="activemq-cluster"/>
+ <cluster-connection name="my-cluster" address="jms" connector-name="http-connector" discovery-group="dg-group1"/>
+ <jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/>
+ <jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/>
+ <connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/>
+ <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector" ha="true" block-on-acknowledge="true" reconnect-attempts="-1"/>
+ <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm" transaction="xa"/>
+ </server>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:modcluster:2.0">
+ <mod-cluster-config advertise-socket="modcluster" connector="ajp">
+ <dynamic-load-provider>
+ <load-metric type="cpu"/>
+ </dynamic-load-provider>
+ </mod-cluster-config>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:naming:2.0">
+ <remote-naming/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:pojo:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:remoting:3.0">
+ <endpoint/>
+ <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:resource-adapters:4.0"/>
+ <subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:sar:1.0"/>
+ <subsystem xmlns="urn:jboss:domain:security-manager:1.0">
+ <deployment-permissions>
+ <maximum-set>
+ <permission class="java.security.AllPermission"/>
+ </maximum-set>
+ </deployment-permissions>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:security:1.2">
+ <security-domains>
+ <security-domain name="other" cache-type="default">
+ <authentication>
+ <login-module code="Remoting" flag="optional">
+ <module-option name="password-stacking" value="useFirstPass"/>
+ </login-module>
+ <login-module code="RealmDirect" flag="required">
+ <module-option name="password-stacking" value="useFirstPass"/>
+ </login-module>
+ </authentication>
+ </security-domain>
+ <security-domain name="jboss-web-policy" cache-type="default">
+ <authorization>
+ <policy-module code="Delegating" flag="required"/>
+ </authorization>
+ </security-domain>
+ <security-domain name="jboss-ejb-policy" cache-type="default">
+ <authorization>
+ <policy-module code="Delegating" flag="required"/>
+ </authorization>
+ </security-domain>
+ <security-domain name="jaspitest" cache-type="default">
+ <authentication-jaspi>
+ <login-module-stack name="dummy">
+ <login-module code="Dummy" flag="optional"/>
+ </login-module-stack>
+ <auth-module code="Dummy"/>
+ </authentication-jaspi>
+ </security-domain>
+ </security-domains>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:singleton:1.0">
+ <singleton-policies default="default">
+ <singleton-policy name="default" cache-container="server">
+ <simple-election-policy/>
+ </singleton-policy>
+ </singleton-policies>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:transactions:3.0">
+ <core-environment>
+ <process-id>
+ <uuid/>
+ </process-id>
+ </core-environment>
+ <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:undertow:3.1">
+ <buffer-cache name="default"/>
+ <server name="default-server">
+ <ajp-listener name="ajp" socket-binding="ajp"/>
+ <http-listener name="default" socket-binding="http" enable-http2="true"/>
+ <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
+ <host name="default-host" alias="localhost">
+ <location name="/" handler="welcome-content"/>
+ <filter-ref name="server-header"/>
+ <filter-ref name="x-powered-by-header"/>
+ </host>
+ </server>
+ <servlet-container name="default">
+ <jsp-config/>
+ <websockets/>
+ </servlet-container>
+ <handlers>
+ <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
+ </handlers>
+ <filters>
+ <response-header name="server-header" header-name="Server" header-value="WildFly/10"/>
+ <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
+ </filters>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:webservices:2.0">
+ <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
+ <endpoint-config name="Standard-Endpoint-Config"/>
+ <endpoint-config name="Recording-Endpoint-Config">
+ <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
+ <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
+ </pre-handler-chain>
+ </endpoint-config>
+ <client-config name="Standard-Client-Config"/>
+ </subsystem>
+ <subsystem xmlns="urn:jboss:domain:weld:3.0"/>
+ </profile>
+
+ <interfaces>
+ <interface name="management">
+ <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
+ </interface>
+ <interface name="public">
+ <inet-address value="${jboss.bind.address:127.0.0.1}"/>
+ </interface>
+ <interface name="private">
+ <inet-address value="${jboss.bind.address.private:127.0.0.1}"/>
+ </interface>
+ <interface name="unsecure">
+ <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
+ </interface>
+ </interfaces>
+
+ <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
+ <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
+ <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
+ <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
+ <socket-binding name="http" port="${jboss.http.port:8080}"/>
+ <socket-binding name="https" port="${jboss.https.port:8443}"/>
+ <socket-binding name="iiop" interface="unsecure" port="3528"/>
+ <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>
+ <socket-binding name="jgroups-mping" interface="private" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
+ <socket-binding name="jgroups-tcp" interface="private" port="7600"/>
+ <socket-binding name="jgroups-tcp-fd" interface="private" port="57600"/>
+ <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
+ <socket-binding name="jgroups-udp-fd" interface="private" port="54200"/>
+ <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>
+ <socket-binding name="txn-recovery-environment" port="4712"/>
+ <socket-binding name="txn-status-manager" port="4713"/>
+ <outbound-socket-binding name="mail-smtp">
+ <remote-destination host="localhost" port="25"/>
+ </outbound-socket-binding>
+ </socket-binding-group>
+
+</server>
diff --git a/kubernetes/so/templates/NOTES.txt b/kubernetes/so/templates/NOTES.txt
new file mode 100644
index 0000000000..91d8ed42f1
--- /dev/null
+++ b/kubernetes/so/templates/NOTES.txt
@@ -0,0 +1,19 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+ http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+ export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }})
+ export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+ echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+ NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+ You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}'
+ export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+ echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+ export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+ echo "Visit http://127.0.0.1:8080 to use your application"
+ kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/so/templates/configmap.yaml b/kubernetes/so/templates/configmap.yaml
new file mode 100644
index 0000000000..c9afd4f71e
--- /dev/null
+++ b/kubernetes/so/templates/configmap.yaml
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: so-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/mso/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: so-docker-file-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/docker-files/scripts/start-jboss-server.sh").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/templates/deployment.yaml b/kubernetes/so/templates/deployment.yaml
new file mode 100644
index 0000000000..b66de44adc
--- /dev/null
+++ b/kubernetes/so/templates/deployment.yaml
@@ -0,0 +1,177 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+spec:
+ replicas: {{ .Values.replicaCount }}
+ template:
+ metadata:
+ labels:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }}
+ spec:
+ initContainers:
+ - command:
+ - /root/ready.py
+ args:
+ - --container-name
+ - mariadb
+ env:
+ - name: NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ name: {{ include "common.name" . }}-readiness
+ containers:
+ - name: {{ .Chart.Name }}
+ command:
+ - /tmp/start-jboss-server.sh
+ image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ ports:
+ - containerPort: {{ .Values.service.internalPort }}
+ - containerPort: {{ .Values.service.internalPort2 }}
+ - containerPort: {{ .Values.service.internalPort3 }}
+ - containerPort: {{ .Values.service.internalPort4 }}
+ - containerPort: {{ .Values.service.internalPort5 }}
+ # disable liveness probe when breakpoints set in debugger
+ # so K8s doesn't restart unresponsive container
+ {{- if eq .Values.liveness.enabled true }}
+ livenessProbe:
+ tcpSocket:
+ port: {{ .Values.service.internalPort }}
+ initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.liveness.periodSeconds }}
+ {{ end -}}
+ readinessProbe:
+ tcpSocket:
+ port: {{ .Values.service.internalPort }}
+ initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+ periodSeconds: {{ .Values.readiness.periodSeconds }}
+ env:
+ - name: JBOSS_DEBUG
+ value: {{ .Values.global.debugEnabled | default .Values.debugEnabled | quote }}
+ volumeMounts:
+ - mountPath: /etc/localtime
+ name: localtime
+ readOnly: true
+ - mountPath: /shared/
+ name: so
+ - mountPath: /tmp/start-jboss-server.sh
+ name: so-docker-files
+ subPath: start-jboss-server.sh
+ - mountPath: /opt/jboss/standalone/configuration/standalone-full-ha-mso.xml
+ name: so-config
+ subPath: standalone-full-ha-mso.xml
+
+ - mountPath: /var/log/onap
+ name: so-logs
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.network.xml
+ name: so-logback
+ subPath: logback.network.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.tenant.xml
+ name: so-logback
+ subPath: logback.tenant.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.vnf.xml
+ name: so-logback
+ subPath: logback.vnf.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-po-adapter-config/logback.vfc.xml
+ name: so-logback
+ subPath: logback.vfc.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-api-handler-infra-config/logback.apihandler-infra.xml
+ name: so-logback
+ subPath: logback.apihandler-infra.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-appc-adapter-config/logback.appc.xml
+ name: so-logback
+ subPath: logback.appc.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-requests-db-adapter-config/logback.msorequestsdbadapter.xml
+ name: so-logback
+ subPath: logback.msorequestsdbadapter.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-asdc-controller-config/logback.asdc.xml
+ name: so-logback
+ subPath: logback.asdc.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-sdnc-adapter-config/logback.sdnc.xml
+ name: so-logback
+ subPath: logback.sdnc.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-bpmn-config/logback.bpmn.xml
+ name: so-logback
+ subPath: logback.bpmn.xml
+ - mountPath: /var/berks-cookbooks/mso-config/files/default/mso-workflow-message-adapter-config/logback.workflow-message-adapter.xml
+ name: so-logback
+ subPath: logback.workflow-message-adapter.xml
+ resources:
+{{ toYaml .Values.resources | indent 12 }}
+ {{- if .Values.nodeSelector }}
+ nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+ {{- end -}}
+ {{- if .Values.affinity }}
+ affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+ {{- end }}
+
+ # side car containers
+ - name: filebeat-onap
+ image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ volumeMounts:
+ - mountPath: /usr/share/filebeat/filebeat.yml
+ name: filebeat-conf
+ subPath: filebeat.yml
+ - mountPath: /var/log/onap
+ name: so-logs
+ - mountPath: /usr/share/filebeat/data
+ name: so-data-filebeat
+
+ volumes:
+ - name: localtime
+ hostPath:
+ path: /etc/localtime
+ - name: so-logback
+ configMap:
+ name: so-log-configmap
+ - name: filebeat-conf
+ configMap:
+ name: so-filebeat-configmap
+ - name: so
+ configMap:
+ name: so-configmap
+ items:
+ - key: mso-docker.json
+ path: mso-docker.json
+ mode: 0755
+ - key: aai.crt
+ path: aai.crt
+ mode: 0755
+ - key: encryption.key
+ path: encryption.key
+ mode: 0644
+ - name: so-config
+ configMap:
+ name: so-configmap
+ items:
+ - key: standalone-full-ha-mso.xml
+ path: standalone-full-ha-mso.xml
+ mode: 0644
+ - name: so-logs
+ emptyDir: {}
+ - name: so-data-filebeat
+ emptyDir: {}
+ - name: so-docker-files
+ configMap:
+ name: so-docker-file-configmap
+ items:
+ - key: start-jboss-server.sh
+ path: start-jboss-server.sh
+ mode: 0755
+ imagePullSecrets:
+ - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/so/templates/log-configmap.yaml b/kubernetes/so/templates/log-configmap.yaml
new file mode 100644
index 0000000000..4d1cc90886
--- /dev/null
+++ b/kubernetes/so/templates/log-configmap.yaml
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: so-log-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: so-filebeat-configmap
+ namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/so/templates/service.yaml b/kubernetes/so/templates/service.yaml
new file mode 100644
index 0000000000..e3e4d48018
--- /dev/null
+++ b/kubernetes/so/templates/service.yaml
@@ -0,0 +1,69 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "common.fullname" . }}
+ namespace: {{ include "common.namespace" . }}
+ labels:
+ app: {{ include "common.name" . }}
+ chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+ annotations:
+ msb.onap.org/service-info: '[
+ {
+ "serviceName": "so",
+ "version": "v1",
+ "url": "/ecomp/mso/infra",
+ "protocol": "REST"
+ "port": "8080",
+ "visualRange":"1"
+ },
+ {
+ "serviceName": "so-deprecated",
+ "version": "v1",
+ "url": "/ecomp/mso/infra",
+ "protocol": "REST"
+ "port": "8080",
+ "visualRange":"1",
+ "path":"/ecomp/mso/infra"
+ }
+ ]'
+spec:
+ type: {{ .Values.service.type }}
+ ports:
+ {{if eq .Values.service.type "NodePort" -}}
+ - port: {{ .Values.service.internalPort }}
+ nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort }}
+ name: {{ .Values.service.name }}
+ - port: {{ .Values.service.internalPort2 }}
+ nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort2 }}
+ name: {{ .Values.service.name }}2
+ - port: {{ .Values.service.internalPort3 }}
+ nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort3 }}
+ name: {{ .Values.service.name }}3
+ - port: {{ .Values.service.internalPort4 }}
+ nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort4 }}
+ name: {{ .Values.service.name }}4
+ - port: {{ .Values.service.internalPort5 }}
+ nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPort5 }}
+ name: {{ .Values.service.name }}5
+ {{- else -}}
+ - port: {{ .Values.service.externalPort }}
+ targetPort: {{ .Values.service.internalPort }}
+ name: {{ .Values.service.name }}
+ - port: {{ .Values.service.externalPort2 }}
+ targetPort: {{ .Values.service.internalPort2 }}
+ name: {{ .Values.service.name }}2
+ - port: {{ .Values.service.externalPort3 }}
+ targetPort: {{ .Values.service.internalPort3 }}
+ name: {{ .Values.service.name }}3
+ - port: {{ .Values.service.externalPort4 }}
+ targetPort: {{ .Values.service.internalPort4 }}
+ name: {{ .Values.service.name }}4
+ - port: {{ .Values.service.externalPort5 }}
+ targetPort: {{ .Values.service.internalPort5 }}
+ name: {{ .Values.service.name }}5
+ {{- end}}
+ selector:
+ app: {{ include "common.name" . }}
+ release: {{ .Release.Name }} \ No newline at end of file
diff --git a/kubernetes/so/values.yaml b/kubernetes/so/values.yaml
new file mode 100644
index 0000000000..4700bb64e5
--- /dev/null
+++ b/kubernetes/so/values.yaml
@@ -0,0 +1,88 @@
+# Default values for so.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global: # global defaults
+ nodePortPrefix: 302
+ repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+ readinessRepository: oomk8s
+ readinessImage: readiness-check:1.0.0
+ loggingRepository: docker.elastic.co
+ loggingImage: beats/filebeat:5.5.0
+
+subChartsOnly:
+ enabled: true
+
+# application image
+repository: nexus3.onap.org:10001
+image: openecomp/mso:1.2-STAGING-latest
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+config:
+ # message router configuration
+ dmaapTopic: "AUTO"
+ # openstack configuration
+ openStackUserName: "vnf_user"
+ openStackRegion: "RegionOne"
+ openStackKeyStoneUrl: "http://1.2.3.4:5000"
+ openStackServiceTenantName: "service"
+ openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
+
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ # necessary to disable liveness probe when setting breakpoints
+ # in debugger so K8s doesn't restart unresponsive container
+ enabled: true
+
+readiness:
+ initialDelaySeconds: 10
+ periodSeconds: 10
+
+service:
+ type: NodePort
+ name: so
+ externalPort: 23
+ internalPort: 8080
+ externalPort2: 25
+ internalPort2: 3904
+ externalPort3: 24
+ internalPort3: 3905
+ externalPort4: 22
+ internalPort4: 9990
+ externalPort5: 50
+ internalPort5: 8787
+
+ingress:
+ enabled: false
+
+resources: {}
+ # We usually recommend not to specify default resources and to leave this as a conscious
+ # choice for the user. This also increases chances charts run on environments with little
+ # resources, such as Minikube. If you do want to specify resources, uncomment the following
+ # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+ #
+ # Example:
+ # Configure resource requests and limits
+ # ref: http://kubernetes.io/docs/user-guide/compute-resources/
+ # Minimum memory for development is 2 CPU cores and 4GB memory
+ # Minimum memory for production is 4 CPU cores and 8GB memory
+#resources:
+# limits:
+# cpu: 2
+# memory: 4Gi
+# requests:
+# cpu: 2
+# memory: 4Gi
diff --git a/kubernetes/uui/templates/all-services.yaml b/kubernetes/uui/templates/all-services.yaml
index 7b23b36808..d66a22fd2e 100644
--- a/kubernetes/uui/templates/all-services.yaml
+++ b/kubernetes/uui/templates/all-services.yaml
@@ -5,13 +5,14 @@ metadata:
labels:
app: uui
name: uui
- namespace: "{{ .Values.nsPrefix }}-uui"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
"serviceName": "usecaseui-gui",
"version": "v1",
- "url": "/iui/usecaseui",
+ "url": "/usecase-ui",
+ "path":"/iui/usecaseui",
"protocol": "UI"
"port": "8080",
"visualRange":"1|0"
@@ -34,7 +35,7 @@ metadata:
labels:
app: uui-server
name: uui-server
- namespace: "{{ .Values.nsPrefix }}-uui"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
diff --git a/kubernetes/uui/templates/uui-deployment.yaml b/kubernetes/uui/templates/uui-deployment.yaml
index db7ac1a9da..668574918b 100644
--- a/kubernetes/uui/templates/uui-deployment.yaml
+++ b/kubernetes/uui/templates/uui-deployment.yaml
@@ -5,8 +5,9 @@ metadata:
labels:
app: uui
name: uui
- namespace: "{{ .Values.nsPrefix }}-uui"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.uuiReplicas }}
selector:
matchLabels:
app: uui
@@ -26,7 +27,7 @@ spec:
name: uui
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: 8080
readinessProbe:
@@ -36,4 +37,4 @@ spec:
periodSeconds: 10
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/uui/templates/uui-server-deployment.yaml b/kubernetes/uui/templates/uui-server-deployment.yaml
index 2462a69be1..01c87e9450 100644
--- a/kubernetes/uui/templates/uui-server-deployment.yaml
+++ b/kubernetes/uui/templates/uui-server-deployment.yaml
@@ -5,8 +5,9 @@ metadata:
labels:
app: uui-server
name: uui-server
- namespace: "{{ .Values.nsPrefix }}-uui"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.uuiServerReplicas }}
selector:
matchLabels:
app: uui-server
@@ -22,9 +23,9 @@ spec:
name: uui-server
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{tpl .Values.msbaddr .}}
- name: MR_ADDR
- value: {{ .Values.mraddr }}
+ value: {{tpl .Values.mraddr .}}
ports:
- containerPort: 8082
readinessProbe:
@@ -34,4 +35,4 @@ spec:
periodSeconds: 10
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/uui/values.yaml b/kubernetes/uui/values.yaml
index 361c68a196..391e338b67 100644
--- a/kubernetes/uui/values.yaml
+++ b/kubernetes/uui/values.yaml
@@ -1,8 +1,10 @@
nsPrefix: onap
pullPolicy: Always
uuiPortPrefix: 303
-msbaddr: msb-iag.onap-msb:80
-mraddr: dmaap.onap-message-router:3904
+msbaddr: msb-iag.{{ .Values.nsPrefix }}:80
+mraddr: dmaap.{{ .Values.nsPrefix }}:3904
+uuiReplicas: 1
+uuiServerReplicas: 1
image:
uuiImage: nexus3.onap.org:10001/onap/usecase-ui
uuiVersion: v1.0.1
diff --git a/kubernetes/vfc/templates/all-services.yaml b/kubernetes/vfc/templates/all-services.yaml
index ff9eea4587..36a8d999ac 100755
--- a/kubernetes/vfc/templates/all-services.yaml
+++ b/kubernetes/vfc/templates/all-services.yaml
@@ -5,7 +5,7 @@ metadata:
labels:
app: vfc-nslcm
name: vfc-nslcm
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -34,7 +34,7 @@ metadata:
labels:
app: vfc-resmgr
name: vfc-resmgr
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -63,7 +63,7 @@ metadata:
labels:
app: vfc-gvnfmdriver
name: vfc-gvnfmdriver
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -92,7 +92,7 @@ metadata:
labels:
app: vfc-ztevnfmdriver
name: vfc-ztevnfmdriver
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -121,7 +121,7 @@ metadata:
labels:
app: vfc-nokiavnfmdriver
name: vfc-nokiavnfmdriver
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -150,7 +150,7 @@ metadata:
labels:
app: vfc-hwvnfmdriver
name: vfc-hwvnfmdriver
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -179,7 +179,7 @@ metadata:
labels:
app: vfc-ztesdncdriver
name: vfc-ztesdncdriver
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -208,7 +208,7 @@ metadata:
labels:
app: vfc-jujudriver
name: vfc-jujudriver
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -237,7 +237,7 @@ metadata:
labels:
app: vfc-vnflcm
name: vfc-vnflcm
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -266,7 +266,7 @@ metadata:
labels:
app: vfc-vnfres
name: vfc-vnfres
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -295,7 +295,7 @@ metadata:
labels:
app: vfc-vnfmgr
name: vfc-vnfmgr
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -324,7 +324,7 @@ metadata:
labels:
app: vfc-emsdriver
name: vfc-emsdriver
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -353,7 +353,7 @@ metadata:
labels:
app: vfc-workflow
name: vfc-workflow
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -382,7 +382,7 @@ metadata:
labels:
app: vfc-workflowengineactiviti
name: vfc-workflowengineactiviti
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
@@ -411,7 +411,7 @@ metadata:
labels:
app: vfc-catalog
name: vfc-catalog
- namespace: "{{ .Values.nsPrefix }}-vfc"
+ namespace: "{{ .Values.nsPrefix }}"
annotations:
msb.onap.org/service-info: '[
{
diff --git a/kubernetes/vfc/templates/vfc-catalog-deployment.yaml b/kubernetes/vfc/templates/vfc-catalog-deployment.yaml
index 1782e24807..0384fefa76 100755
--- a/kubernetes/vfc/templates/vfc-catalog-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-catalog-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-catalog
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.catalog.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-catalog"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.catalog.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml
index 6adc0dc833..548bbe7413 100755
--- a/kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-emsdriver
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.emsdriver.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-emsdriver"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.emsdriver.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml
index 18558afada..02093ce00e 100755
--- a/kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-gvnfmdriver
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.gvnfmdriver.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-gvnfmdriver"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.gvnfmdriver.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml
index e9d3282ef7..9b73626e74 100755
--- a/kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-hwvnfmdriver
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.hwvnfmdriver.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-hwvnfmdriver"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.hwvnfmdriver.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml b/kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml
index 28a3c1e6b6..127612bed2 100755
--- a/kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-jujudriver
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.jujudriver.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-jujudriver"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.jujudriver.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml
index 9a648ca203..4925d1c121 100755
--- a/kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-nokiavnfmdriver
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.nokiavnfmdriver.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-nokiavnfmdriver"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.nokiavnfmdriver.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-nslcm-deployment.yaml b/kubernetes/vfc/templates/vfc-nslcm-deployment.yaml
index 400a680a9a..618968dd9f 100755
--- a/kubernetes/vfc/templates/vfc-nslcm-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-nslcm-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-nslcm
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.nslcm.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-nslcm"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.nslcm.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-resmgr-deployment.yaml b/kubernetes/vfc/templates/vfc-resmgr-deployment.yaml
index 2c6a895518..a6e8125a1e 100755
--- a/kubernetes/vfc/templates/vfc-resmgr-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-resmgr-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-resmgr
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.resmgr.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-resmgr"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.resmgr.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml b/kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml
index 0d8922973b..ef4793dfaf 100755
--- a/kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-vnflcm
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.vnflcm.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-vnflcm"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.vnflcm.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml b/kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml
index 566c3cabbd..e3eb750678 100755
--- a/kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-vnfmgr
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.vnfmgr.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-vnfmgr"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.vnfmgr.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-vnfres-deployment.yaml b/kubernetes/vfc/templates/vfc-vnfres-deployment.yaml
index 50b52b1a77..34f2595ccf 100755
--- a/kubernetes/vfc/templates/vfc-vnfres-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-vnfres-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-vnfres
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.vnfres.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-vnfres"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.vnfres.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-workflow-deployment.yaml b/kubernetes/vfc/templates/vfc-workflow-deployment.yaml
index f19b55fe95..c2a8205d0d 100755
--- a/kubernetes/vfc/templates/vfc-workflow-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-workflow-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-workflow
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.workflow.replicas }}
selector:
@@ -28,7 +28,7 @@ spec:
- name: SERVICE_PORT
value: "{{ .Values.workflow.port }}"
- name: OPENPALETTE_MSB_IP
- value: msb-iag.{{ .Values.nsPrefix }}-msb
+ value: msb-iag.{{ .Values.nsPrefix }}
- name: OPENPALETTE_MSB_PORT
value: "80"
ports:
@@ -41,4 +41,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml b/kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml
index cb18ada997..d22481526c 100755
--- a/kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml
+++ b/kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-workflowengineactiviti
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.workflowengineactiviti.replicas }}
selector:
@@ -28,7 +28,7 @@ spec:
- name: SERVICE_PORT
value: "{{ .Values.workflow.port }}"
- name: OPENPALETTE_MSB_IP
- value: msb-iag.{{ .Values.nsPrefix }}-msb
+ value: msb-iag.{{ .Values.nsPrefix }}
- name: OPENPALETTE_MSB_PORT
value: "80"
ports:
@@ -41,4 +41,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml
index 828e7b32b1..9eae38543c 100755
--- a/kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-ztesdncdriver
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.ztesdncdriver.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-ztesdncdriver"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.ztesdncdriver.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml b/kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml
index aed359eceb..e79a27ef11 100755
--- a/kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml
+++ b/kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: vfc-ztevnfmdriver
- namespace: "{{ .Values.nsPrefix }}-{{ .Chart.Name }}"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
replicas: {{ .Values.ztevnfmdriver.replicas }}
selector:
@@ -22,7 +22,7 @@ spec:
name: "vfc-ztevnfmdriver"
env:
- name: MSB_ADDR
- value: {{ .Values.msbaddr }}
+ value: {{ tpl .Values.msbaddr . }}
ports:
- containerPort: {{ .Values.ztevnfmdriver.port }}
readinessProbe:
@@ -33,4 +33,4 @@ spec:
imagePullPolicy: "{{ .Values.pullPolicy }}"
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vfc/values.yaml b/kubernetes/vfc/values.yaml
index 46aa9b71f8..13fb94f638 100644
--- a/kubernetes/vfc/values.yaml
+++ b/kubernetes/vfc/values.yaml
@@ -1,6 +1,6 @@
nsPrefix: onap
pullPolicy: IfNotPresent
-msbaddr: msb-iag.onap-msb:80
+msbaddr: msb-iag.{{ .Values.nsPrefix }}:80
nslcm:
image: nexus3.onap.org:10001/onap/vfc/nslcm:v1.0.2
port: 8403
@@ -75,4 +75,4 @@ catalog:
image: nexus3.onap.org:10001/onap/vfc/catalog:v1.0.2
port: 8806
nodePort: 30806
- replicas: 1 \ No newline at end of file
+ replicas: 1
diff --git a/kubernetes/config/docker/init/src/config/vid/vid/lf_config/vid-my.cnf b/kubernetes/vid/resources/config/lf_config/vid-my.cnf
index 472bf4698e..472bf4698e 100755
--- a/kubernetes/config/docker/init/src/config/vid/vid/lf_config/vid-my.cnf
+++ b/kubernetes/vid/resources/config/lf_config/vid-my.cnf
diff --git a/kubernetes/config/docker/init/src/config/vid/vid/lf_config/vid-pre-init.sql b/kubernetes/vid/resources/config/lf_config/vid-pre-init.sql
index 57b797d03c..57b797d03c 100755
--- a/kubernetes/config/docker/init/src/config/vid/vid/lf_config/vid-pre-init.sql
+++ b/kubernetes/vid/resources/config/lf_config/vid-pre-init.sql
diff --git a/kubernetes/vid/resources/config/log/filebeat/filebeat.yml b/kubernetes/vid/resources/config/log/filebeat/filebeat.yml
new file mode 100644
index 0000000000..89c6932577
--- /dev/null
+++ b/kubernetes/vid/resources/config/log/filebeat/filebeat.yml
@@ -0,0 +1,41 @@
+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: ["logstash.{{.Values.nsPrefix}}:5044"]
+ #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/config/docker/init/src/config/log/vid/logback.xml b/kubernetes/vid/resources/config/log/vid/logback.xml
index 49db781b3e..49db781b3e 100644
--- a/kubernetes/config/docker/init/src/config/log/vid/logback.xml
+++ b/kubernetes/vid/resources/config/log/vid/logback.xml
diff --git a/kubernetes/vid/templates/all-services.yaml b/kubernetes/vid/templates/all-services.yaml
index 1aa2bb0a0b..cd22b7d095 100644
--- a/kubernetes/vid/templates/all-services.yaml
+++ b/kubernetes/vid/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: vid-mariadb
- namespace: "{{ .Values.nsPrefix }}-vid"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: vid-mariadb
@@ -20,7 +20,7 @@ metadata:
labels:
app: vid-server
name: vid-server
- namespace: "{{ .Values.nsPrefix }}-vid"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
ports:
- name: vid-server
diff --git a/kubernetes/vid/templates/vid-lfconfig-configmap.yaml b/kubernetes/vid/templates/vid-lfconfig-configmap.yaml
new file mode 100644
index 0000000000..1743872ef8
--- /dev/null
+++ b/kubernetes/vid/templates/vid-lfconfig-configmap.yaml
@@ -0,0 +1,9 @@
+#{{ if not .Values.disableVidVidMariadb }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: vid-lfconfig-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/lf_config/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/vid/templates/vid-log-configmap.yaml b/kubernetes/vid/templates/vid-log-configmap.yaml
new file mode 100644
index 0000000000..896f47dded
--- /dev/null
+++ b/kubernetes/vid/templates/vid-log-configmap.yaml
@@ -0,0 +1,17 @@
+#{{ if not .Values.disableVidVidServer }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: vid-log-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/vid/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: vid-filebeat-configmap
+ namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/vid/templates/vid-mariadb-deployment.yaml b/kubernetes/vid/templates/vid-mariadb-deployment.yaml
index 55ef5da872..41bfb90b74 100644
--- a/kubernetes/vid/templates/vid-mariadb-deployment.yaml
+++ b/kubernetes/vid/templates/vid-mariadb-deployment.yaml
@@ -5,8 +5,9 @@ metadata:
labels:
app: vid-mariadb
name: vid-mariadb
- namespace: "{{ .Values.nsPrefix }}-vid"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.vidMariaDbReplicas }}
selector:
matchLabels:
app: vid-mariadb
@@ -36,9 +37,11 @@ spec:
- mountPath: /var/lib/mysql
name: vid-mariadb-data
- mountPath: /docker-entrypoint-initdb.d/vid-pre-init.sql
- name: vid-pre-init
+ name: vid-lfconfig
+ subPath: vid-pre-init.sql
- mountPath: /etc/mysql/my.cnf
- name: my-cnf
+ name: vid-lfconfig
+ subPath: my.cnf
ports:
- containerPort: 3306
readinessProbe:
@@ -53,12 +56,15 @@ spec:
- name: vid-mariadb-data
persistentVolumeClaim:
claimName: vid-db
- - name: vid-pre-init
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/vid/vid/lf_config/vid-pre-init.sql
- - name: my-cnf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/vid/vid/lf_config/vid-my.cnf
+ - name: vid-lfconfig
+ configMap:
+ name: vid-lfconfig-configmap
+ defaultMode: 0755
+ items:
+ - key: vid-my.cnf
+ path: my.cnf
+ - key: vid-pre-init.sql
+ path: vid-pre-init.sql
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vid/templates/vid-pv-pvc.yaml b/kubernetes/vid/templates/vid-pv-pvc.yaml
index f513a87354..df8d99764f 100644
--- a/kubernetes/vid/templates/vid-pv-pvc.yaml
+++ b/kubernetes/vid/templates/vid-pv-pvc.yaml
@@ -2,10 +2,10 @@
apiVersion: v1
kind: PersistentVolume
metadata:
- name: "{{ .Values.nsPrefix }}-vid-db"
- namespace: "{{ .Values.nsPrefix }}-vid"
+ name: "{{ .Values.nsPrefix }}-vid"
+ namespace: "{{ .Values.nsPrefix }}"
labels:
- name: "{{ .Values.nsPrefix }}-vid-db"
+ name: "{{ .Values.nsPrefix }}-vid"
spec:
capacity:
storage: 2Gi
@@ -13,13 +13,13 @@ spec:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/vid/mariadb/data
+ path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/vid/mariadb/data
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: vid-db
- namespace: "{{ .Values.nsPrefix }}-vid"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
accessModes:
- ReadWriteMany
@@ -28,5 +28,5 @@ spec:
storage: 2Gi
selector:
matchLabels:
- name: "{{ .Values.nsPrefix }}-vid-db"
-#{{ end }} \ No newline at end of file
+ name: "{{ .Values.nsPrefix }}-vid"
+#{{ end }}
diff --git a/kubernetes/vid/templates/vid-server-deployment.yaml b/kubernetes/vid/templates/vid-server-deployment.yaml
index 832fdeb93c..a0569abc93 100644
--- a/kubernetes/vid/templates/vid-server-deployment.yaml
+++ b/kubernetes/vid/templates/vid-server-deployment.yaml
@@ -5,8 +5,9 @@ metadata:
labels:
app: vid-server
name: vid-server
- namespace: "{{ .Values.nsPrefix }}-vid"
+ namespace: "{{ .Values.nsPrefix }}"
spec:
+ replicas: {{ .Values.vidServerReplicas }}
selector:
matchLabels:
app: vid-server
@@ -34,19 +35,19 @@ spec:
containers:
- env:
- name: ASDC_CLIENT_REST_HOST
- value: sdc-be.{{ .Values.nsPrefix }}-sdc
+ value: sdc-be.{{ .Values.nsPrefix }}
- name: ASDC_CLIENT_REST_AUTH
value: Basic dmlkOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU=
- name: ASDC_CLIENT_REST_PORT
value: "8080"
- name: VID_AAI_HOST
- value: aai-service.{{ .Values.nsPrefix }}-aai
+ value: aai-service.{{ .Values.nsPrefix }}
- name: VID_AAI_PORT
value: "8443"
- name: VID_ECOMP_SHARED_CONTEXT_REST_URL
- value: http://portalapps.{{ .Values.nsPrefix }}-portal:8989/ONAPPORTAL/context
+ value: http://portalapps.{{ .Values.nsPrefix }}:8989/ONAPPORTAL/context
- name: VID_MSO_SERVER_URL
- value: http://mso.{{ .Values.nsPrefix }}-mso:8080
+ value: http://mso.{{ .Values.nsPrefix }}:8080
- name: VID_MSO_PASS
value: OBF:1ih71i271vny1yf41ymf1ylz1yf21vn41hzj1icz
- name: MSO_DME2_SERVER_URL
@@ -54,13 +55,13 @@ spec:
- name: MSO_DME2_ENABLED
value: "false"
- name: VID_ECOMP_REDIRECT_URL
- value: http://portalapps.{{ .Values.nsPrefix }}-portal:8989/ONAPPORTAL/login.htm
+ value: http://portalapps.{{ .Values.nsPrefix }}:8989/ONAPPORTAL/login.htm
- name: VID_ECOMP_REST_URL
- value: http://portalapps.{{ .Values.nsPrefix }}-portal:8989/ONAPPORTAL/auxapi
+ value: http://portalapps.{{ .Values.nsPrefix }}:8989/ONAPPORTAL/auxapi
- name: VID_CONTACT_US_LINK
value: https://todo_contact_us_link.com
- name: VID_UEB_URL_LIST
- value: dmaap.{{ .Values.nsPrefix }}-message-router
+ value: dmaap.{{ .Values.nsPrefix }}
- name: VID_MYSQL_HOST
value: vid-mariadb
- name: VID_MYSQL_PORT
@@ -73,7 +74,7 @@ spec:
value: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
- name: VID_MYSQL_MAXCONNECTIONS
value: "5"
- image: {{ .Values.image.vid }}
+ image: {{ .Values.image.vid }}
imagePullPolicy: {{ .Values.pullPolicy }}
name: vid-server
lifecycle:
@@ -90,6 +91,7 @@ spec:
name: vid-logs
- mountPath: /tmp/logback.xml
name: vid-logback
+ subPath: logback.xml
readinessProbe:
tcpSocket:
port: 8080
@@ -101,6 +103,7 @@ spec:
volumeMounts:
- mountPath: /usr/share/filebeat/filebeat.yml
name: filebeat-conf
+ subPath: filebeat.yml
- mountPath: /var/log/onap
name: vid-logs
- mountPath: /usr/share/filebeat/data
@@ -110,15 +113,15 @@ spec:
hostPath:
path: /etc/localtime
- name: filebeat-conf
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/filebeat/logback/filebeat.yml
+ configMap:
+ name: vid-filebeat-configmap
- name: vid-logs
emptyDir: {}
- name: vid-data-filebeat
emptyDir: {}
- name: vid-logback
- hostPath:
- path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/vid/logback.xml
+ configMap:
+ name: vid-log-configmap
imagePullSecrets:
- name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
diff --git a/kubernetes/vid/values.yaml b/kubernetes/vid/values.yaml
index 9b1748f507..eef104dea3 100644
--- a/kubernetes/vid/values.yaml
+++ b/kubernetes/vid/values.yaml
@@ -1,8 +1,11 @@
nsPrefix: onap
pullPolicy: Always
nodePortPrefix: 302
+dataRootDir: /dockerdata-nfs
+vidMariaDbReplicas: 1
+vidServerReplicas: 1
image:
- readiness: oomk8s/readiness-check:1.0.0
+ readiness: oomk8s/readiness-check:1.1.0
mariadb: nexus3.onap.org:10001/library/mariadb:10
vid: nexus3.onap.org:10001/openecomp/vid:v1.1.1
- filebeat: docker.elastic.co/beats/filebeat:5.5.0 \ No newline at end of file
+ filebeat: docker.elastic.co/beats/filebeat:5.5.0
diff --git a/kubernetes/vnfsdk/templates/all-services.yaml b/kubernetes/vnfsdk/templates/all-services.yaml
index c78dab8193..759e26dace 100644
--- a/kubernetes/vnfsdk/templates/all-services.yaml
+++ b/kubernetes/vnfsdk/templates/all-services.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: postgres
- namespace: {{ .Values.nsPrefix }}-vnfsdk
+ namespace: {{ .Values.nsPrefix }}
labels:
app: postgres
spec:
@@ -22,7 +22,7 @@ metadata:
labels:
app: refrepo
name: refrepo
- namespace: {{ .Values.nsPrefix }}-vnfsdk
+ namespace: {{ .Values.nsPrefix }}
spec:
ports:
- name: "refrepo-port"
diff --git a/kubernetes/vnfsdk/templates/postgres-deployment.yaml b/kubernetes/vnfsdk/templates/postgres-deployment.yaml
index cdc2ba9572..d0002662c6 100644
--- a/kubernetes/vnfsdk/templates/postgres-deployment.yaml
+++ b/kubernetes/vnfsdk/templates/postgres-deployment.yaml
@@ -2,8 +2,8 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: postgres
- namespace: {{ .Values.nsPrefix }}-vnfsdk
+ name: vnfsdk-postgres
+ namespace: {{ .Values.nsPrefix }}
spec:
replicas: 1
selector:
@@ -13,7 +13,7 @@ spec:
metadata:
labels:
app: postgres
- name: postgres
+ name: vnfsdk-postgres
spec:
hostname: postgres
containers:
@@ -23,4 +23,4 @@ spec:
name: "postgres"
imagePullSecrets:
- name: {{ .Values.nsPrefix }}-docker-registry-key
-#{{ end }} \ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/vnfsdk/templates/refrepo-deployment.yaml b/kubernetes/vnfsdk/templates/refrepo-deployment.yaml
index 0a56c740c1..ba13292f0f 100644
--- a/kubernetes/vnfsdk/templates/refrepo-deployment.yaml
+++ b/kubernetes/vnfsdk/templates/refrepo-deployment.yaml
@@ -4,8 +4,8 @@ kind: Deployment
metadata:
labels:
app: refrepo
- name: refrepo
- namespace: "{{ .Values.nsPrefix }}-vnfsdk"
+ name: vnfsdk-refrepo
+ namespace: "{{ .Values.nsPrefix }}"
spec:
selector:
matchLabels:
@@ -14,7 +14,7 @@ spec:
metadata:
labels:
app: refrepo
- name: refrepo
+ name: vnfsdk-refrepo
spec:
initContainers:
- command:
diff --git a/kubernetes/vnfsdk/values.yaml b/kubernetes/vnfsdk/values.yaml
index e445ef6232..386c61ee11 100644
--- a/kubernetes/vnfsdk/values.yaml
+++ b/kubernetes/vnfsdk/values.yaml
@@ -3,7 +3,7 @@ pullPolicy: Always
nodePortPrefix: 302
image:
readiness: oomk8s/readiness-check
- readinessVersion: 1.0.0
+ readinessVersion: 1.1.0
postgresImage: nexus3.onap.org:10001/onap/refrepo/postgres
postgresVersion: latest
refrepoImage: nexus3.onap.org:10001/onap/refrepo