Merge "Add champ subchart to oom aai"
authorMike Elliott <mike.elliott@amdocs.com>
Wed, 28 Mar 2018 13:17:59 +0000 (13:17 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 28 Mar 2018 13:17:59 +0000 (13:17 +0000)
652 files changed:
INFO.yaml [new file with mode: 0644]
TOSCA/Helm/onap-blueprint.yaml
docs/OOM Project Description/oom_project_description.rst [deleted file]
docs/OOM User Guide/oom_user_guide.rst [deleted file]
docs/consulHealth.png [new file with mode: 0644]
docs/environments_onap_demo.yaml [moved from kubernetes/onap/resources/environments/onap-demo.yaml with 74% similarity]
docs/index.rst
docs/onap_values.yaml [new file with mode: 0644]
docs/oomLogoV2-Configure.png [new file with mode: 0644]
docs/oomLogoV2-Delete.png [new file with mode: 0644]
docs/oomLogoV2-Deploy.png [new file with mode: 0644]
docs/oomLogoV2-Heal.png [new file with mode: 0644]
docs/oomLogoV2-Monitor.png [new file with mode: 0644]
docs/oomLogoV2-Scale.png [new file with mode: 0644]
docs/oomLogoV2-Upgrade.png [new file with mode: 0644]
docs/oomLogoV2-medium.png [new file with mode: 0644]
docs/oom_cloud_setup_guide.rst [new file with mode: 0644]
docs/oom_developer_guide.rst [new file with mode: 0644]
docs/oom_project_description.rst [new file with mode: 0644]
docs/oom_quickstart_guide.rst [new file with mode: 0644]
docs/oom_user_guide.rst [new file with mode: 0644]
kubernetes/Makefile
kubernetes/README.md
kubernetes/README_HELM [deleted file]
kubernetes/aaf/Chart.yaml
kubernetes/aaf/templates/aaf-configmap.yaml
kubernetes/aaf/templates/aaf-cs-deployment.yaml
kubernetes/aaf/templates/aaf-deployment.yaml
kubernetes/aaf/templates/aaf-secret.yaml
kubernetes/aaf/templates/all-services.yaml
kubernetes/aaf/values.yaml
kubernetes/aai/.helmignore [moved from kubernetes/common/common-templates/.helmignore with 100% similarity]
kubernetes/aai/Chart.yaml
kubernetes/aai/charts/aai-data-router/.helmignore [new file with mode: 0644]
kubernetes/aai/charts/aai-data-router/Chart.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-data-router/resources/config/auth/client-cert-onap.p12 [moved from kubernetes/aai/resources/config/data-router/appconfig/auth/client-cert-onap.p12 with 100% similarity]
kubernetes/aai/charts/aai-data-router/resources/config/auth/data-router_policy.json [moved from kubernetes/aai/resources/config/data-router/appconfig/auth/data-router_policy.json with 100% similarity]
kubernetes/aai/charts/aai-data-router/resources/config/auth/tomcat_keystore [moved from kubernetes/aai/resources/config/data-router/appconfig/auth/tomcat_keystore with 100% similarity]
kubernetes/aai/charts/aai-data-router/resources/config/data-router.properties [moved from kubernetes/aai/resources/config/data-router/appconfig/data-router.properties with 100% similarity]
kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v10.xml [moved from kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v10.xml with 100% similarity]
kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v11.xml [moved from kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v11.xml with 100% similarity]
kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v8.xml [moved from kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v8.xml with 100% similarity]
kubernetes/aai/charts/aai-data-router/resources/config/model/aai_oxm_v9.xml [moved from kubernetes/aai/resources/config/data-router/appconfig/model/aai_oxm_v9.xml with 100% similarity]
kubernetes/aai/charts/aai-data-router/resources/dynamic/conf/entity-event-policy.xml [moved from kubernetes/aai/resources/config/data-router/dynamic/conf/entity-event-policy.xml with 100% similarity]
kubernetes/aai/charts/aai-data-router/resources/dynamic/routes/entity-event.route [moved from kubernetes/aai/resources/config/data-router/dynamic/routes/entity-event.route with 68% similarity]
kubernetes/aai/charts/aai-data-router/templates/configmap.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-data-router/templates/deployment.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-data-router/templates/secret.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-data-router/values.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-elasticsearch/.helmignore [new file with mode: 0644]
kubernetes/aai/charts/aai-elasticsearch/Chart.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-elasticsearch/resources/config/elasticsearch.yml [moved from kubernetes/aai/resources/config/elasticsearch/config/elasticsearch.yml with 99% similarity]
kubernetes/aai/charts/aai-elasticsearch/templates/configmap.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-elasticsearch/templates/deployment.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-elasticsearch/templates/service.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-elasticsearch/values.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-hbase/.helmignore [new file with mode: 0644]
kubernetes/aai/charts/aai-hbase/Chart.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-hbase/templates/deployment.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-hbase/templates/service.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-hbase/values.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-modelloader/.helmignore [new file with mode: 0644]
kubernetes/aai/charts/aai-modelloader/Chart.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-modelloader/resources/config/auth/aai-os-cert.p12 [moved from kubernetes/aai/resources/config/model-loader/appconfig/auth/aai-os-cert.p12 with 100% similarity]
kubernetes/aai/charts/aai-modelloader/resources/config/log/logback.xml [moved from kubernetes/aai/resources/config/log/model-loader/logback.xml with 100% similarity]
kubernetes/aai/charts/aai-modelloader/resources/config/model-loader.properties [moved from kubernetes/aai/resources/config/model-loader/appconfig/model-loader.properties with 90% similarity]
kubernetes/aai/charts/aai-modelloader/templates/configmap.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-modelloader/templates/deployment.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-modelloader/templates/secret.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-modelloader/templates/service.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-modelloader/values.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-resources/.helmignore [new file with mode: 0644]
kubernetes/aai/charts/aai-resources/Chart.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-resources/resources/config/log/logback.xml [moved from kubernetes/aai/resources/config/log/resources/logback.xml with 100% similarity]
kubernetes/aai/charts/aai-resources/templates/configmap.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-resources/templates/deployment.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-resources/templates/service.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-resources/values.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-search-data/.helmignore [new file with mode: 0644]
kubernetes/aai/charts/aai-search-data/Chart.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-search-data/resources/config/analysis-config.json [moved from kubernetes/aai/resources/config/search-data-service/appconfig/analysis-config.json with 100% similarity]
kubernetes/aai/charts/aai-search-data/resources/config/auth/search_policy.json [moved from kubernetes/aai/resources/config/search-data-service/appconfig/auth/search_policy.json with 100% similarity]
kubernetes/aai/charts/aai-search-data/resources/config/auth/tomcat_keystore [moved from kubernetes/aai/resources/config/search-data-service/appconfig/auth/tomcat_keystore with 100% similarity]
kubernetes/aai/charts/aai-search-data/resources/config/elastic-search.properties [new file with mode: 0644]
kubernetes/aai/charts/aai-search-data/resources/config/filter-config.json [moved from kubernetes/aai/resources/config/search-data-service/appconfig/filter-config.json with 100% similarity]
kubernetes/aai/charts/aai-search-data/resources/config/log/logback.xml [moved from kubernetes/aai/resources/config/log/search-data-service/logback.xml with 100% similarity]
kubernetes/aai/charts/aai-search-data/templates/configmap.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-search-data/templates/deployment.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-search-data/templates/secret.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-search-data/templates/service.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-search-data/values.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/.helmignore [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/Chart.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/aai.properties [moved from kubernetes/aai/resources/config/sparky-be/appconfig/aai.properties with 98% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/auth/aai-os-cert.p12 [moved from kubernetes/aai/resources/config/sparky-be/appconfig/auth/aai-os-cert.p12 with 100% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/auth/client-cert-onap.p12 [moved from kubernetes/aai/resources/config/sparky-be/appconfig/auth/client-cert-onap.p12 with 100% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/auth/inventory-ui-keystore [moved from kubernetes/aai/resources/config/sparky-be/appconfig/auth/inventory-ui-keystore with 100% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/elasticsearch.properties [moved from kubernetes/aai/resources/config/sparky-be/appconfig/elasticsearch.properties with 96% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/log/logback.xml [moved from kubernetes/aai/resources/config/log/sparky-be/logback.xml with 100% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/model/aai_oxm_v9.xml [moved from kubernetes/aai/resources/config/sparky-be/appconfig/model/aai_oxm_v9.xml with 100% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal-authentication.properties [moved from kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal-authentication.properties with 100% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal.properties [moved from kubernetes/aai/resources/config/sparky-be/appconfig/portal/portal.properties with 83% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/roles.config [moved from kubernetes/aai/resources/config/sparky-be/appconfig/roles.config with 100% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/search-service.properties [moved from kubernetes/aai/resources/config/sparky-be/appconfig/search-service.properties with 94% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/suggestive-search.properties [moved from kubernetes/aai/resources/config/sparky-be/appconfig/suggestive-search.properties with 100% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/synchronizer.properties [moved from kubernetes/aai/resources/config/sparky-be/appconfig/synchronizer.properties with 100% similarity]
kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/templates/secret.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/templates/service.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/values.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-traversal/.helmignore [new file with mode: 0644]
kubernetes/aai/charts/aai-traversal/Chart.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-traversal/resources/config/log/logback.xml [moved from kubernetes/aai/resources/config/log/traversal/logback.xml with 100% similarity]
kubernetes/aai/charts/aai-traversal/templates/configmap.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-traversal/templates/deployment.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-traversal/templates/service.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-traversal/values.yaml [new file with mode: 0644]
kubernetes/aai/requirements.yaml [new file with mode: 0644]
kubernetes/aai/resources/config/aai-data/environments/simpledemo.json
kubernetes/aai/resources/config/haproxy/haproxy.cfg
kubernetes/aai/resources/config/log/filebeat/filebeat.yml
kubernetes/aai/resources/config/search-data-service/appconfig/elastic-search.properties [deleted file]
kubernetes/aai/templates/aai-deployment-configmap.yaml [deleted file]
kubernetes/aai/templates/aai-deployment.yaml [deleted file]
kubernetes/aai/templates/aai-filebeat-configmap.yaml [deleted file]
kubernetes/aai/templates/aai-resources-deployment.yaml [deleted file]
kubernetes/aai/templates/aai-resources-traversal-configmap.yaml [deleted file]
kubernetes/aai/templates/aai-traversal-deployment.yaml [deleted file]
kubernetes/aai/templates/all-services.yaml [deleted file]
kubernetes/aai/templates/configmap.yaml [new file with mode: 0644]
kubernetes/aai/templates/data-router-configmap.yaml [deleted file]
kubernetes/aai/templates/data-router-deployment.yaml [deleted file]
kubernetes/aai/templates/deployment.yaml [new file with mode: 0644]
kubernetes/aai/templates/elasticsearch-configmap.yaml [deleted file]
kubernetes/aai/templates/elasticsearch-deployment.yaml [deleted file]
kubernetes/aai/templates/hbase-deployment.yaml [deleted file]
kubernetes/aai/templates/modelloader-deployment-configmap.yaml [deleted file]
kubernetes/aai/templates/modelloader-deployment.yaml [deleted file]
kubernetes/aai/templates/search-data-service-configmap.yaml [deleted file]
kubernetes/aai/templates/search-data-service-deployment.yaml [deleted file]
kubernetes/aai/templates/service.yaml [new file with mode: 0644]
kubernetes/aai/templates/sparky-be-deployment-configmap.yaml [deleted file]
kubernetes/aai/templates/sparky-be-deployment.yaml [deleted file]
kubernetes/aai/values.yaml
kubernetes/appc/.helmignore [new file with mode: 0644]
kubernetes/appc/Chart.yaml
kubernetes/appc/requirements.yaml [new file with mode: 0644]
kubernetes/appc/resources/config/appc/opt/onap/appc/bin/installAppcDb.sh [moved from kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/installAppcDb.sh with 75% similarity]
kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh [moved from kubernetes/appc/resources/config/appc/opt/openecomp/appc/bin/startODL.sh with 75% similarity]
kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/aaiclient.properties [moved from kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/aaiclient.properties with 97% similarity]
kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties [moved from kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/appc.properties with 87% similarity]
kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/dblib.properties [moved from kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/dblib.properties with 93% similarity]
kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/svclogic.properties [moved from kubernetes/appc/resources/config/appc/opt/openecomp/appc/data/properties/svclogic.properties with 92% similarity]
kubernetes/appc/resources/config/appc/opt/onap/appc/svclogic/bin/showActiveGraphs.sh [moved from kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/bin/showActiveGraphs.sh with 94% similarity]
kubernetes/appc/resources/config/appc/opt/onap/appc/svclogic/config/svclogic.properties [moved from kubernetes/appc/resources/config/appc/opt/openecomp/appc/svclogic/config/svclogic.properties with 91% similarity]
kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/installSdncDb.sh
kubernetes/appc/resources/config/appc/opt/onap/sdnc/bin/startODL.sh
kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/aaiclient.properties
kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/dblib.properties
kubernetes/appc/resources/config/appc/opt/onap/sdnc/data/properties/svclogic.properties
kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh
kubernetes/appc/resources/config/appc/opt/onap/sdnc/svclogic/config/svclogic.properties
kubernetes/appc/resources/config/log/filebeat/log4j/filebeat.yml
kubernetes/appc/templates/NOTES.txt [new file with mode: 0644]
kubernetes/appc/templates/all-services.yaml [deleted file]
kubernetes/appc/templates/appc-configmap.yaml [deleted file]
kubernetes/appc/templates/appc-deployment.yaml [deleted file]
kubernetes/appc/templates/appc-dgbuilder-configmap.yaml [deleted file]
kubernetes/appc/templates/appc-log-configmap.yaml [deleted file]
kubernetes/appc/templates/appc-pv-pvc.yaml [deleted file]
kubernetes/appc/templates/configmap.yaml [new file with mode: 0644]
kubernetes/appc/templates/db-deployment.yaml [deleted file]
kubernetes/appc/templates/dgbuilder-deployment.yaml [deleted file]
kubernetes/appc/templates/secrets.yaml [moved from kubernetes/so/templates/secrets.yaml with 52% similarity]
kubernetes/appc/templates/service.yaml [new file with mode: 0644]
kubernetes/appc/templates/statefulset.yaml [new file with mode: 0644]
kubernetes/appc/values.yaml
kubernetes/clamp/Chart.yaml
kubernetes/clamp/charts/mariadb/Chart.yaml [new file with mode: 0644]
kubernetes/clamp/charts/mariadb/NOTES.txt [new file with mode: 0644]
kubernetes/clamp/charts/mariadb/resources/config/mariadb/conf.d/conf1/my.cnf [moved from kubernetes/clamp/resources/config/mariadb/conf.d/conf1/my.cnf with 100% similarity]
kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql [moved from kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql with 100% similarity]
kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql [moved from kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql with 100% similarity]
kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql [moved from kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql with 100% similarity]
kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh [moved from kubernetes/clamp/resources/config/mariadb/docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh with 100% similarity]
kubernetes/clamp/charts/mariadb/templates/configmap.yaml [moved from kubernetes/clamp/templates/clamp-mariadb-configmap.yaml with 51% similarity]
kubernetes/clamp/charts/mariadb/templates/deployment.yaml [new file with mode: 0644]
kubernetes/clamp/charts/mariadb/templates/pv.yaml [new file with mode: 0644]
kubernetes/clamp/charts/mariadb/templates/pvc.yaml [new file with mode: 0644]
kubernetes/clamp/charts/mariadb/templates/secrets.yaml [new file with mode: 0644]
kubernetes/clamp/charts/mariadb/templates/service.yaml [new file with mode: 0644]
kubernetes/clamp/charts/mariadb/values.yaml [new file with mode: 0644]
kubernetes/clamp/requirements.yaml [new file with mode: 0644]
kubernetes/clamp/templates/NOTES.txt [new file with mode: 0644]
kubernetes/clamp/templates/all-services.yaml [deleted file]
kubernetes/clamp/templates/clamp-deployment.yaml [deleted file]
kubernetes/clamp/templates/clamp-mariadb-deployment.yaml [deleted file]
kubernetes/clamp/templates/clamp-pv-pvc.yaml [deleted file]
kubernetes/clamp/templates/configmap.yaml [new file with mode: 0644]
kubernetes/clamp/templates/deployment.yaml [new file with mode: 0644]
kubernetes/clamp/templates/service.yaml [new file with mode: 0644]
kubernetes/clamp/values.yaml
kubernetes/cli/Chart.yaml
kubernetes/cli/templates/all-service.yaml
kubernetes/cli/templates/cli-deployment.yaml
kubernetes/cli/values.yaml
kubernetes/common/.helmignore [new file with mode: 0644]
kubernetes/common/Makefile
kubernetes/common/common-templates/Chart.yaml [deleted file]
kubernetes/common/common-templates/templates/_name.tpl [deleted file]
kubernetes/common/common-templates/templates/_namespace.tpl [deleted file]
kubernetes/common/common/Chart.yaml [new file with mode: 0644]
kubernetes/common/common/templates/_name.tpl [new file with mode: 0644]
kubernetes/common/common/templates/_namespace.tpl [new file with mode: 0644]
kubernetes/common/common/values.yaml [moved from kubernetes/common/common-templates/values.yaml with 60% similarity]
kubernetes/common/dgbuilder/.helmignore [new file with mode: 0644]
kubernetes/common/dgbuilder/Chart.yaml [new file with mode: 0644]
kubernetes/common/dgbuilder/requirements.yaml [new file with mode: 0644]
kubernetes/common/dgbuilder/resources/config/svclogic.properties [moved from kubernetes/appc/resources/config/dgbuilder/svclogic.properties with 56% similarity]
kubernetes/common/dgbuilder/resources/scripts/createReleaseDir.sh [moved from kubernetes/appc/resources/scripts/dgbuilder/createReleaseDir.sh with 95% similarity]
kubernetes/common/dgbuilder/resources/scripts/customSettings.js [moved from kubernetes/appc/resources/scripts/dgbuilder/customSettings.js with 93% similarity]
kubernetes/common/dgbuilder/templates/NOTES.txt [new file with mode: 0644]
kubernetes/common/dgbuilder/templates/configmap.yaml [new file with mode: 0644]
kubernetes/common/dgbuilder/templates/deployment.yaml [new file with mode: 0644]
kubernetes/common/dgbuilder/templates/secrets.yaml [new file with mode: 0644]
kubernetes/common/dgbuilder/templates/service.yaml [new file with mode: 0644]
kubernetes/common/dgbuilder/values.yaml [new file with mode: 0644]
kubernetes/common/mysql/.helmignore [new file with mode: 0644]
kubernetes/common/mysql/Chart.yaml [new file with mode: 0644]
kubernetes/common/mysql/requirements.yaml [new file with mode: 0644]
kubernetes/common/mysql/templates/configmap.yaml [new file with mode: 0644]
kubernetes/common/mysql/templates/nfs-provisoner.yaml [new file with mode: 0644]
kubernetes/common/mysql/templates/pv.yaml [new file with mode: 0644]
kubernetes/common/mysql/templates/pvc.yaml [new file with mode: 0644]
kubernetes/common/mysql/templates/secrets.yaml [new file with mode: 0644]
kubernetes/common/mysql/templates/service.yaml [new file with mode: 0644]
kubernetes/common/mysql/templates/statefulset.yaml [new file with mode: 0644]
kubernetes/common/mysql/templates/storageclass.yaml [new file with mode: 0644]
kubernetes/common/mysql/values.yaml [new file with mode: 0644]
kubernetes/config/Chart.yaml
kubernetes/config/docker/init/src/config/consul/consul-agent-config/bin/kubectl [deleted file]
kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/aai-search-storage-write-script.sh [deleted file]
kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/appc-dbhost-script.sh [deleted file]
kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/gremlin-script.sh [deleted file]
kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh [deleted file]
kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_properties.py [deleted file]
kubernetes/config/onap-parameters-sample.yaml
kubernetes/config/onap-parameters.yaml
kubernetes/config/templates/pod.yaml
kubernetes/config/values.yaml
kubernetes/consul/Chart.yaml
kubernetes/consul/resources/config/consul-agent-config/aai-data-router-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-data-router-health.json with 78% similarity]
kubernetes/consul/resources/config/consul-agent-config/aai-hbase-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json with 85% similarity]
kubernetes/consul/resources/config/consul-agent-config/aai-model-loader-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-model-loader-health.json with 76% similarity]
kubernetes/consul/resources/config/consul-agent-config/aai-search-data-service-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-search-data-service-health.json with 56% similarity]
kubernetes/consul/resources/config/consul-agent-config/aai-services-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-services-health.json with 71% similarity]
kubernetes/consul/resources/config/consul-agent-config/aai-sparky-be-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-sparky-be-health.json with 77% similarity]
kubernetes/consul/resources/config/consul-agent-config/aai-tabular-backend-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-tabular-backend-health.json with 77% similarity]
kubernetes/consul/resources/config/consul-agent-config/appc-dbbuilder.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-dbbuilder.json with 88% similarity]
kubernetes/consul/resources/config/consul-agent-config/appc-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-health.json with 77% similarity]
kubernetes/consul/resources/config/consul-agent-config/appc-sdnctldb01-healthcheck.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb01-healthcheck.json with 63% similarity]
kubernetes/consul/resources/config/consul-agent-config/appc-sdnctldb02-healthcheck.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnctldb02-healthcheck.json with 63% similarity]
kubernetes/consul/resources/config/consul-agent-config/appc-sdnhost.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/appc-sdnhost.json with 85% similarity]
kubernetes/consul/resources/config/consul-agent-config/certs/client-cert-onap.crt.pem [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/certs/client-cert-onap.crt.pem with 100% similarity]
kubernetes/consul/resources/config/consul-agent-config/certs/client-cert-onap.key.pem [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/certs/client-cert-onap.key.pem with 100% similarity]
kubernetes/consul/resources/config/consul-agent-config/log-elastic-search.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-elastic-search.json with 75% similarity]
kubernetes/consul/resources/config/consul-agent-config/log-kibana.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-kibana.json with 81% similarity]
kubernetes/consul/resources/config/consul-agent-config/log-logstash.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/log-logstash.json with 73% similarity]
kubernetes/consul/resources/config/consul-agent-config/model-loader.properties [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/model-loader.properties with 100% similarity]
kubernetes/consul/resources/config/consul-agent-config/mr-dmaap-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-dmaap-health.json with 68% similarity]
kubernetes/consul/resources/config/consul-agent-config/mr-kafka-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-kafka-health.json with 69% similarity]
kubernetes/consul/resources/config/consul-agent-config/mr-zookeeper-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/mr-zookeeper-health.json with 68% similarity]
kubernetes/consul/resources/config/consul-agent-config/msb-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/msb-health.json with 55% similarity]
kubernetes/consul/resources/config/consul-agent-config/mso-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/mso-health.json with 73% similarity]
kubernetes/consul/resources/config/consul-agent-config/mso-mariabdb.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/mso-mariabdb.json with 77% similarity]
kubernetes/consul/resources/config/consul-agent-config/multicloud-health-check.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/multicloud-health-check.json with 78% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/aai-search-storage-write-doc.txt [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/aai-search-storage-write-doc.txt with 100% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/aai-search-storage-write-script.sh [new file with mode: 0755]
kubernetes/consul/resources/config/consul-agent-config/scripts/appc-dbhost-script.sh [new file with mode: 0755]
kubernetes/consul/resources/config/consul-agent-config/scripts/data-router-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/data-router-script.sh with 50% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/model-loader-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/model-loader-script.sh with 51% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/mr-kafka-health.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-kafka-health.sh with 51% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/mr-zookeeper-health.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mr-zookeeper-health.sh with 52% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/mso-api-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-api-script.sh with 81% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/mso-camunda-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-camunda-script.sh with 83% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/mso-jra-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-jra-script.sh with 82% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/mso-mariadb-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh with 51% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/sdc-be-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-be-script.sh with 87% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/sdc-cs-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-cs-script.sh with 88% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/sdc-fe-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-fe-script.sh with 87% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/sdc-titan-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdc-titan-script.sh with 88% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/sdnc-dbhost-script.sh [new file with mode: 0755]
kubernetes/consul/resources/config/consul-agent-config/scripts/search-data-service-availability.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/search-data-service-availability.sh with 87% similarity, mode: 0644]
kubernetes/consul/resources/config/consul-agent-config/scripts/sparky-be-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sparky-be-script.sh with 53% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/tabular-db-availability.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/tabular-db-availability.sh with 90% similarity]
kubernetes/consul/resources/config/consul-agent-config/scripts/vid-mariadb-script.sh [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/vid-mariadb-script.sh with 51% similarity, mode: 0755]
kubernetes/consul/resources/config/consul-agent-config/sdc-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdc-health.json with 77% similarity]
kubernetes/consul/resources/config/consul-agent-config/sdnc-dbhost.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dbhost.json with 78% similarity]
kubernetes/consul/resources/config/consul-agent-config/sdnc-dgbuilder.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dgbuilder.json with 88% similarity]
kubernetes/consul/resources/config/consul-agent-config/sdnc-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-health.json with 84% similarity]
kubernetes/consul/resources/config/consul-agent-config/sdnc-portal-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json with 86% similarity]
kubernetes/consul/resources/config/consul-agent-config/sdnc-sdnctldb01-healthcheck.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb01-healthcheck.json with 65% similarity]
kubernetes/consul/resources/config/consul-agent-config/sdnc-sdnctldb02-healthcheck.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnctldb02-healthcheck.json with 65% similarity]
kubernetes/consul/resources/config/consul-agent-config/sdnc-sdnhost.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-sdnhost.json with 86% similarity]
kubernetes/consul/resources/config/consul-agent-config/vfc-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/vfc-health.json with 50% similarity]
kubernetes/consul/resources/config/consul-agent-config/vid-health.json [moved from kubernetes/config/docker/init/src/config/consul/consul-agent-config/vid-health.json with 82% similarity]
kubernetes/consul/templates/consul-agent-configmap.yaml [new file with mode: 0644]
kubernetes/consul/templates/consul-agent-deployment.yaml
kubernetes/consul/templates/consul-server-deployment.yaml
kubernetes/consul/templates/consul-server-service.yaml
kubernetes/consul/values.yaml
kubernetes/dcae/Chart.yaml [deleted file]
kubernetes/dcae/README [deleted file]
kubernetes/dcae/cdap/docker/00-provisioning.sh [deleted file]
kubernetes/dcae/cdap/docker/01-entrypoint.sh [deleted file]
kubernetes/dcae/cdap/docker/Dockerfile [deleted file]
kubernetes/dcae/cdap/docker/docker-compose.yaml [deleted file]
kubernetes/dcae/cdap/docker/fs/Dockerfile [deleted file]
kubernetes/dcae/pgaas/Dockerfile [deleted file]
kubernetes/dcae/pgaas/setup.sh [deleted file]
kubernetes/dcae/templates/all-services.yaml [deleted file]
kubernetes/dcae/templates/cdap0-dep.yaml [deleted file]
kubernetes/dcae/templates/cdap1-dep.yaml [deleted file]
kubernetes/dcae/templates/cdap2-dep.yaml [deleted file]
kubernetes/dcae/templates/dcae-collector-common-event.yaml [deleted file]
kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml [deleted file]
kubernetes/dcae/templates/dcae-controller.yaml [deleted file]
kubernetes/dcae/templates/dcae-dmaap.yaml [deleted file]
kubernetes/dcae/templates/dcae-kafka.yaml [deleted file]
kubernetes/dcae/templates/dcae-zookeeper.yaml [deleted file]
kubernetes/dcae/templates/pgaas.yaml [deleted file]
kubernetes/dcae/values.yaml [deleted file]
kubernetes/dcaegen2/Chart.yaml
kubernetes/dcaegen2/dcae-parameters-sample.yaml
kubernetes/dcaegen2/templates/pod.yaml
kubernetes/dcaegen2/values.yaml
kubernetes/esr/.helmignore [new file with mode: 0644]
kubernetes/esr/Chart.yaml
kubernetes/esr/charts/esr-gui/.helmignore [new file with mode: 0644]
kubernetes/esr/charts/esr-gui/Chart.yaml [new file with mode: 0644]
kubernetes/esr/charts/esr-gui/templates/NOTES.txt [new file with mode: 0644]
kubernetes/esr/charts/esr-gui/templates/deployment.yaml [new file with mode: 0644]
kubernetes/esr/charts/esr-gui/templates/service.yaml [new file with mode: 0644]
kubernetes/esr/charts/esr-gui/values.yaml [new file with mode: 0644]
kubernetes/esr/requirements.yaml [new file with mode: 0644]
kubernetes/esr/resources/config/log/esrserver/logback.xml [new file with mode: 0644]
kubernetes/esr/resources/config/log/filebeat/filebeat.yml [new file with mode: 0644]
kubernetes/esr/templates/NOTES.txt [new file with mode: 0644]
kubernetes/esr/templates/all-services.yaml [deleted file]
kubernetes/esr/templates/configmap.yaml [new file with mode: 0644]
kubernetes/esr/templates/deployment.yaml [new file with mode: 0644]
kubernetes/esr/templates/esr-esrgui-deployment.yaml [deleted file]
kubernetes/esr/templates/esr-esrserver-deployment.yaml [deleted file]
kubernetes/esr/templates/service.yaml [new file with mode: 0644]
kubernetes/esr/values.yaml
kubernetes/helm/starters/onap-app/.helmignore [new file with mode: 0644]
kubernetes/helm/starters/onap-app/Chart.yaml [new file with mode: 0644]
kubernetes/helm/starters/onap-app/README.md [new file with mode: 0644]
kubernetes/helm/starters/onap-app/requirements.yaml [new file with mode: 0644]
kubernetes/helm/starters/onap-app/resources/config/README.txt [new file with mode: 0644]
kubernetes/helm/starters/onap-app/resources/config/application.properties [new file with mode: 0644]
kubernetes/helm/starters/onap-app/templates/NOTES.txt [new file with mode: 0644]
kubernetes/helm/starters/onap-app/templates/configmap.yaml [new file with mode: 0644]
kubernetes/helm/starters/onap-app/templates/deployment.yaml [new file with mode: 0644]
kubernetes/helm/starters/onap-app/templates/service.yaml [new file with mode: 0644]
kubernetes/helm/starters/onap-app/values.yaml [new file with mode: 0644]
kubernetes/kube2msb/Chart.yaml [deleted file]
kubernetes/kube2msb/templates/kube2msb-registrator-deployment.yaml [deleted file]
kubernetes/kube2msb/values.yaml [deleted file]
kubernetes/log/.helmignore [new file with mode: 0644]
kubernetes/log/Chart.yaml
kubernetes/log/charts/log-elasticsearch/Chart.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/requirements.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/resources/config/elasticsearch.yml [moved from kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml with 98% similarity]
kubernetes/log/charts/log-elasticsearch/templates/NOTES.txt [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/templates/configmap.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/templates/deployment.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/templates/pv.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/templates/pvc.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/templates/service.yaml [new file with mode: 0644]
kubernetes/log/charts/log-elasticsearch/values.yaml [new file with mode: 0644]
kubernetes/log/charts/log-kibana/Chart.yaml [new file with mode: 0644]
kubernetes/log/charts/log-kibana/requirements.yaml [new file with mode: 0644]
kubernetes/log/charts/log-kibana/resources/config/kibana.yml [moved from kubernetes/log/resources/kibana/conf/kibana.yml with 95% similarity]
kubernetes/log/charts/log-kibana/templates/NOTES.txt [new file with mode: 0644]
kubernetes/log/charts/log-kibana/templates/configmap.yaml [new file with mode: 0644]
kubernetes/log/charts/log-kibana/templates/deployment.yaml [new file with mode: 0644]
kubernetes/log/charts/log-kibana/templates/service.yaml [new file with mode: 0644]
kubernetes/log/charts/log-kibana/values.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/Chart.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/requirements.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/resources/config/logstash.yml [moved from kubernetes/log/resources/logstash/conf/logstash.yml with 99% similarity]
kubernetes/log/charts/log-logstash/resources/config/onap-pipeline.conf [moved from kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf with 95% similarity]
kubernetes/log/charts/log-logstash/templates/NOTES.txt [new file with mode: 0644]
kubernetes/log/charts/log-logstash/templates/configmap.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/templates/deployment.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/templates/service.yaml [new file with mode: 0644]
kubernetes/log/charts/log-logstash/values.yaml [new file with mode: 0644]
kubernetes/log/requirements.yaml [new file with mode: 0644]
kubernetes/log/templates/all-services.yaml [deleted file]
kubernetes/log/templates/elasticsearch-deployment.yaml [deleted file]
kubernetes/log/templates/kibana-deployment.yaml [deleted file]
kubernetes/log/templates/log-pv-pvc.yaml [deleted file]
kubernetes/log/templates/logstash-deployment.yaml [deleted file]
kubernetes/log/values.yaml
kubernetes/message-router/Chart.yaml
kubernetes/message-router/resources/config/dmaap/MsgRtrApi.properties [new file with mode: 0755]
kubernetes/message-router/resources/config/dmaap/cadi.properties [new file with mode: 0755]
kubernetes/message-router/resources/config/dmaap/mykey [new file with mode: 0755]
kubernetes/message-router/templates/all-services.yaml
kubernetes/message-router/templates/dmaap-configmap.yaml [new file with mode: 0644]
kubernetes/message-router/templates/message-router-dmaap.yaml
kubernetes/message-router/templates/message-router-kafka.yaml
kubernetes/message-router/templates/message-router-pv-pvc.yaml
kubernetes/message-router/templates/message-router-zookeeper.yaml
kubernetes/message-router/values.yaml
kubernetes/mock/Chart.yaml
kubernetes/mock/templates/all-services.yaml
kubernetes/mock/templates/sniroemulator-deployment.yaml
kubernetes/mock/values.yaml
kubernetes/msb/.helmignore [new file with mode: 0644]
kubernetes/msb/Chart.yaml
kubernetes/msb/charts/kube2msb/.helmignore [new file with mode: 0644]
kubernetes/msb/charts/kube2msb/Chart.yaml [new file with mode: 0644]
kubernetes/msb/charts/kube2msb/requirements.yaml [new file with mode: 0644]
kubernetes/msb/charts/kube2msb/templates/deployment.yaml [new file with mode: 0644]
kubernetes/msb/charts/kube2msb/values.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/.helmignore [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/Chart.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/requirements.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/templates/NOTES.txt [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/templates/deployment.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/templates/service.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-consul/values.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/.helmignore [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/Chart.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/requirements.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/templates/NOTES.txt [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/templates/deployment.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/templates/service.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-discovery/values.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/.helmignore [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/Chart.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/requirements.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/templates/NOTES.txt [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/templates/deployment.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/templates/service.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-eag/values.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/.helmignore [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/Chart.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/requirements.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/templates/NOTES.txt [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/templates/deployment.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/templates/service.yaml [new file with mode: 0644]
kubernetes/msb/charts/msb-iag/values.yaml [new file with mode: 0644]
kubernetes/msb/requirements.yaml [new file with mode: 0644]
kubernetes/msb/templates/all-services.yaml [deleted file]
kubernetes/msb/templates/msb-consul-deployment.yaml [deleted file]
kubernetes/msb/templates/msb-discovery-deployment.yaml [deleted file]
kubernetes/msb/templates/msb-eag-deployment.yaml [deleted file]
kubernetes/msb/templates/msb-iag-deployment.yaml [deleted file]
kubernetes/msb/values.yaml
kubernetes/mso/Chart.yaml
kubernetes/mso/resources/config/log/filebeat/filebeat.yml
kubernetes/mso/templates/all-services.yaml
kubernetes/mso/templates/db-deployment-configmap.yaml
kubernetes/mso/templates/db-deployment.yaml
kubernetes/mso/templates/mso-deployment-configmap.yaml
kubernetes/mso/templates/mso-deployment.yaml
kubernetes/mso/templates/mso-log-configmap.yaml
kubernetes/mso/templates/mso-pv-pvc.yaml
kubernetes/mso/values.yaml
kubernetes/multicloud/Chart.yaml
kubernetes/multicloud/resources/config/log/filebeat/filebeat.yml [new file with mode: 0644]
kubernetes/multicloud/resources/config/log/framework/log.yml [new file with mode: 0644]
kubernetes/multicloud/resources/config/log/ocata/log.yml [new file with mode: 0644]
kubernetes/multicloud/resources/config/log/vio/log.yml [new file with mode: 0644]
kubernetes/multicloud/resources/config/log/windriver/log.yml [new file with mode: 0644]
kubernetes/multicloud/templates/all-services.yaml
kubernetes/multicloud/templates/framework-deployment.yaml
kubernetes/multicloud/templates/multicloud-log-configmap.yaml [new file with mode: 0644]
kubernetes/multicloud/templates/multicloud-ocata-deployment.yaml
kubernetes/multicloud/templates/multicloud-vio-deployment.yaml
kubernetes/multicloud/templates/multicloud-windriver-deployment.yaml
kubernetes/multicloud/values.yaml
kubernetes/onap/Chart.yaml
kubernetes/onap/requirements.yaml
kubernetes/onap/resources/environments/dev.yaml [new file with mode: 0644]
kubernetes/onap/templates/clusterrolebinding.yaml [new file with mode: 0644]
kubernetes/onap/templates/secrets.yaml [new file with mode: 0644]
kubernetes/onap/values.yaml
kubernetes/oneclick/createAll.bash [deleted file]
kubernetes/oneclick/deleteAll.bash [deleted file]
kubernetes/oneclick/setenv.bash [deleted file]
kubernetes/oneclick/tools/autoCleanConfig.bash [deleted file]
kubernetes/oneclick/tools/autoCreateConfig.bash [deleted file]
kubernetes/oneclick/tools/collectInfo.bash [deleted file]
kubernetes/policy/Chart.yaml
kubernetes/policy/resources/config/log/filebeat/filebeat.yml
kubernetes/policy/templates/all-services.yaml
kubernetes/policy/templates/dep-brmsgw.yaml
kubernetes/policy/templates/dep-drools.yaml
kubernetes/policy/templates/dep-maria.yaml
kubernetes/policy/templates/dep-nexus.yaml
kubernetes/policy/templates/dep-pap.yaml
kubernetes/policy/templates/dep-pdp.yaml
kubernetes/policy/templates/policy-deployment-configmap.yaml
kubernetes/policy/templates/policy-deployment-secret.yaml
kubernetes/policy/templates/policy-log-configmap.yaml
kubernetes/policy/values.yaml
kubernetes/portal/Chart.yaml
kubernetes/portal/resources/config/log/filebeat/filebeat.yml
kubernetes/portal/templates/all-services.yaml
kubernetes/portal/templates/portal-apps-configmap.yaml
kubernetes/portal/templates/portal-apps-deployment.yaml [changed mode: 0755->0644]
kubernetes/portal/templates/portal-logs-configmap.yaml
kubernetes/portal/templates/portal-mariadb-deployment.yaml [changed mode: 0755->0644]
kubernetes/portal/templates/portal-pv-pvc.yaml
kubernetes/portal/templates/portal-vnc-dep.yaml
kubernetes/portal/templates/portal-widgets-deployment.yaml
kubernetes/portal/values.yaml
kubernetes/readiness/dep-health-init.yaml
kubernetes/readiness/docker/init/Dockerfile
kubernetes/readiness/docker/init/job_complete.py [new file with mode: 0644]
kubernetes/robot/.helmignore
kubernetes/robot/Chart.yaml
kubernetes/robot/all-services.yaml [deleted file]
kubernetes/robot/requirements.yaml [new file with mode: 0644]
kubernetes/robot/resources/config/authorization [moved from kubernetes/config/docker/init/src/config/robot/authorization with 100% similarity, mode: 0755]
kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py [moved from kubernetes/config/docker/init/src/config/robot/eteshare/config/integration_preload_parameters.py with 61% similarity]
kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py [moved from kubernetes/config/docker/init/src/config/robot/eteshare/config/integration_robot_properties.py with 96% similarity]
kubernetes/robot/resources/config/eteshare/config/vm_config2robot.sh [moved from kubernetes/config/docker/init/src/config/robot/eteshare/config/vm_config2robot.sh with 100% similarity]
kubernetes/robot/resources/config/eteshare/config/vm_properties.py [new file with mode: 0755]
kubernetes/robot/resources/config/robot/resources/asdc_interface.robot [moved from kubernetes/config/docker/init/src/config/robot/robot/resources/asdc_interface.robot with 99% similarity]
kubernetes/robot/resources/config/robot/resources/policy_interface.robot [moved from kubernetes/config/docker/init/src/config/robot/robot/resources/policy_interface.robot with 96% similarity]
kubernetes/robot/resources/config/robot/resources/sdngc_interface.robot [moved from kubernetes/config/docker/init/src/config/robot/robot/resources/sdngc_interface.robot with 98% similarity]
kubernetes/robot/templates/NOTES.txt [new file with mode: 0644]
kubernetes/robot/templates/all-services.yaml [deleted file]
kubernetes/robot/templates/configmap.yaml [new file with mode: 0644]
kubernetes/robot/templates/deployment.yaml [new file with mode: 0644]
kubernetes/robot/templates/robot-deployment.yaml [deleted file]
kubernetes/robot/templates/service.yaml [new file with mode: 0644]
kubernetes/robot/values.yaml
kubernetes/sdc/Chart.yaml
kubernetes/sdc/resources/config/log/filebeat/filebeat.yml
kubernetes/sdc/templates/all-services.yaml
kubernetes/sdc/templates/sdc-be.yaml
kubernetes/sdc/templates/sdc-cs.yaml
kubernetes/sdc/templates/sdc-environments-configmap.yaml
kubernetes/sdc/templates/sdc-es.yaml
kubernetes/sdc/templates/sdc-fe-configmap.yaml
kubernetes/sdc/templates/sdc-fe.yaml
kubernetes/sdc/templates/sdc-kb.yaml
kubernetes/sdc/templates/sdc-log-configmap.yaml
kubernetes/sdc/templates/sdc-pv-pvc.yaml
kubernetes/sdc/values.yaml
kubernetes/sdnc/Chart.yaml
kubernetes/sdnc/resources/config/log/filebeat/log4j/filebeat.yml
kubernetes/sdnc/templates/all-services.yaml
kubernetes/sdnc/templates/db-statefulset.yaml
kubernetes/sdnc/templates/dgbuilder-deployment.yaml
kubernetes/sdnc/templates/dmaap-deployment-configmap.yaml
kubernetes/sdnc/templates/dmaap-deployment.yaml
kubernetes/sdnc/templates/mysql-configmap.yaml
kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml
kubernetes/sdnc/templates/sdnc-conf-configmap.yaml
kubernetes/sdnc/templates/sdnc-data-storageclass.yaml
kubernetes/sdnc/templates/sdnc-log-configmap.yaml
kubernetes/sdnc/templates/sdnc-statefulset.yaml
kubernetes/sdnc/templates/ueb-deployment-configmap.yaml
kubernetes/sdnc/templates/ueb-deployment.yaml
kubernetes/sdnc/templates/web-deployment.yaml
kubernetes/sdnc/values.yaml
kubernetes/so/Chart.yaml
kubernetes/so/charts/mariadb/Chart.yaml
kubernetes/so/charts/mariadb/templates/NOTES.txt
kubernetes/so/charts/mariadb/templates/clusterrolebinding.yaml [deleted file]
kubernetes/so/charts/mariadb/templates/configmap.yaml
kubernetes/so/charts/mariadb/templates/deployment.yaml
kubernetes/so/charts/mariadb/templates/pv.yaml
kubernetes/so/charts/mariadb/templates/pvc.yaml
kubernetes/so/charts/mariadb/templates/secrets.yaml
kubernetes/so/charts/mariadb/templates/service.yaml
kubernetes/so/charts/mariadb/values.yaml
kubernetes/so/requirements.yaml
kubernetes/so/resources/config/log/filebeat/filebeat.yml
kubernetes/so/resources/config/mso/mso-docker.json
kubernetes/so/templates/NOTES.txt
kubernetes/so/templates/clusterrolebinding.yaml [deleted file]
kubernetes/so/templates/configmap.yaml
kubernetes/so/templates/deployment.yaml
kubernetes/so/templates/log-configmap.yaml
kubernetes/so/templates/namespace.yaml [deleted file]
kubernetes/so/templates/service.yaml
kubernetes/so/values.yaml
kubernetes/uui/Chart.yaml
kubernetes/uui/templates/all-services.yaml
kubernetes/uui/templates/uui-deployment.yaml
kubernetes/uui/templates/uui-server-deployment.yaml
kubernetes/uui/values.yaml
kubernetes/vfc/Chart.yaml
kubernetes/vfc/templates/all-services.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-catalog-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-emsdriver-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-gvnfmdriver-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-hwvnfmdriver-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-jujudriver-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-nokiavnfmdriver-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-nslcm-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-resmgr-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-vnflcm-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-vnfmgr-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-vnfres-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-workflow-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-workflow-engine-activity.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-ztesdncdriver-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/templates/vfc-ztevmanagerdriver-deployment.yaml [changed mode: 0755->0644]
kubernetes/vfc/values.yaml
kubernetes/vid/.helmignore [new file with mode: 0644]
kubernetes/vid/Chart.yaml
kubernetes/vid/charts/mariadb/.helmignore [new file with mode: 0644]
kubernetes/vid/charts/mariadb/Chart.yaml [new file with mode: 0644]
kubernetes/vid/charts/mariadb/resources/config/lf_config/vid-my.cnf [moved from kubernetes/vid/resources/config/lf_config/vid-my.cnf with 100% similarity, mode: 0644]
kubernetes/vid/charts/mariadb/resources/config/lf_config/vid-pre-init.sql [moved from kubernetes/vid/resources/config/lf_config/vid-pre-init.sql with 100% similarity, mode: 0644]
kubernetes/vid/charts/mariadb/templates/NOTES.txt [new file with mode: 0644]
kubernetes/vid/charts/mariadb/templates/configmap.yaml [new file with mode: 0644]
kubernetes/vid/charts/mariadb/templates/deployment.yaml [new file with mode: 0644]
kubernetes/vid/charts/mariadb/templates/pv.yaml [new file with mode: 0644]
kubernetes/vid/charts/mariadb/templates/pvc.yaml [new file with mode: 0644]
kubernetes/vid/charts/mariadb/templates/secrets.yaml [new file with mode: 0644]
kubernetes/vid/charts/mariadb/templates/service.yaml [new file with mode: 0644]
kubernetes/vid/charts/mariadb/values.yaml [new file with mode: 0644]
kubernetes/vid/requirements.yaml [new file with mode: 0644]
kubernetes/vid/resources/config/log/filebeat/filebeat.yml
kubernetes/vid/templates/NOTES.txt [new file with mode: 0644]
kubernetes/vid/templates/all-services.yaml [deleted file]
kubernetes/vid/templates/configmap.yaml [new file with mode: 0644]
kubernetes/vid/templates/deployment.yaml [new file with mode: 0644]
kubernetes/vid/templates/secrets.yaml [new file with mode: 0644]
kubernetes/vid/templates/service.yaml [new file with mode: 0644]
kubernetes/vid/templates/vid-lfconfig-configmap.yaml [deleted file]
kubernetes/vid/templates/vid-log-configmap.yaml [deleted file]
kubernetes/vid/templates/vid-mariadb-deployment.yaml [deleted file]
kubernetes/vid/templates/vid-pv-pvc.yaml [deleted file]
kubernetes/vid/templates/vid-server-deployment.yaml [deleted file]
kubernetes/vid/values.yaml
kubernetes/vnfsdk/Chart.yaml
kubernetes/vnfsdk/templates/all-services.yaml
kubernetes/vnfsdk/templates/postgres-deployment.yaml
kubernetes/vnfsdk/templates/refrepo-deployment.yaml
kubernetes/vnfsdk/values.yaml

diff --git a/INFO.yaml b/INFO.yaml
new file mode 100644 (file)
index 0000000..b5b6f9f
--- /dev/null
+++ b/INFO.yaml
@@ -0,0 +1,87 @@
+---
+project: 'oom'
+project_creation_date: '2017-06-15'
+lifecycle_state: 'Incubation'
+project_lead: &onap_releng_ptl
+    name: 'David Sauvageau'
+    email: 'david.sauvageau@bell.ca'
+    id: 'david.sauvageau'
+    company: 'Bell Canada'
+    timezone: 'Canada/Montreal'
+primary_contact: *onap_releng_ptl
+issue_tracking:
+    type: 'jira'
+    url: 'https://jira.onap.org/projects/OOM'
+    key: 'OOM'
+meetings:
+    - type: 'zoom'
+        agenda: 'https://wiki.onap.org/pages/viewpage.action?pageId=8228913'
+        url: 'https://wiki.onap.org/pages/viewpage.action?pageId=8228913'
+        server: 'n/a'
+        channel: 'n/a'
+        repeats: 'weekly'
+        time: '14:00 UTC'
+committers:
+    - <<: *onap_releng_ptl
+    - name: 'Alexis de Talhouët'
+        email: 'adetalhouet89@gmail.com'
+        company: 'Bell Canada'
+        id: 'adetalhouet'
+        timezone: 'Canada/Montreal'
+    - name: 'Borislav Glozman'
+        email: 'Borislav.Glozman@amdocs.com'
+        company: 'Amdocs'
+        id: 'BorislavG'
+        timezone: 'Israel/Raanana'
+    - name: 'Christophe Closset'
+        email: 'cc697w@intl.att.com'
+        company: 'ATT'
+        id: 'ChrisC'
+        timezone: 'Belgium/Namur'
+    - name: 'Earle West'
+        email: 'ehwest@gmail.com'
+        company: ''
+        id: 'ehwest'
+        timezone: 'Belgium/Namur'
+    - name: 'Hong Guan'
+        email: 'hg4105@att.com'
+        company: 'ATT'
+        id: 'hg4105'
+        timezone: ''
+    - name: 'Rui Hu'
+        email: 'hu.rui2@zte.com.cn'
+        company: 'ZTE'
+        id: 'hu.rui'
+        timezone: ''
+    - name: 'Jerome Doucerain'
+        email: 'jerome.doucerain@bell.ca'
+        company: 'Bell'
+        id: 'jdoucerain'
+        timezone: 'Canada/Montreal'
+    - name: 'Jun (Nicolas) Hu'
+        email: 'jh245g@att.com'
+        company: 'ATT'
+        id: 'jh245g'
+        timezone: 'America/New York'
+    - name: 'Mike Elliott'
+        email: 'mike.elliott@amdocs.com'
+        company: 'Amdocs'
+        id: 'melliott'
+        timezone: 'Canada/Ontario'
+    - name: 'Mandeep Khinda'
+        email: 'Mandeep.Khinda@amdocs.com'
+        company: 'Amdocs'
+        id: 'mkhinda'
+        timezone: 'Canada/Ontario'
+    - name: 'Xue Gao'
+        email: 'xg353y@intl.att.com'
+        company: 'ATT'
+        id: 'xuegao'
+        timezone: 'Belgium/Namur'
+    - name: 'Yury Novitsky'
+        email: 'Yury.Novitsky@Amdocs.com'
+        company: 'Amdocs'
+        id: 'yuryn'
+        timezone: 'Israel/Raanana'
+tsc:
+    approval: 'https://lists.onap.org/pipermail/onap-tsc'
index 73a0390..f86b590 100644 (file)
@@ -279,13 +279,3 @@ node_templates:
     relationships:
       - type: cloudify.relationships.connected_to
         target: k8s_master
-
-  kube2msb:
-    type: cloudify.nodes.Helm
-    properties:
-      args:
-      - { get_input: namespace_perfix }
-      - kube2msb
-    relationships:
-      - type: cloudify.relationships.connected_to
-        target: k8s_master
diff --git a/docs/OOM Project Description/oom_project_description.rst b/docs/OOM Project Description/oom_project_description.rst
deleted file mode 100644 (file)
index ba9de5f..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-.. _onap-operations-manager-project:
-
-ONAP Operations Manager Project
-###############################
-
-.. contents::
-   :depth: 3
-..
-
-Introduction
-============
-
-The ONAP Operations Manager (OOM) is responsible for life-cycle
-management of the ONAP platform itself; components such as MSO, 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
-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.
-OOM ensures that ONAP is easily deployable and maintainable throughout
-its life cycle while using hardware resources efficiently. 
-
-Quick Start Guide
-=================
-
-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.
-
-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.
-
-Deploying multiple ONAP instances within the same Kubernetes cluster
---------------------------------------------------------------------
-
-To deploy multiple ONAP instances, you must specify the number of Instances you would like to create in a Kubernetes cluster using createAllbash.
-
-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.
-
-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:
-
-* 'onap' refers to the name of the instance.
-* ‘i 2’ refers to the number of instances of an ONAP deployment in the cluster.
-
-To delete a deployed instance
------------------------------
-
-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.
-
-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
-----------
-
-If you'd like to see the installation of ONAP by OOM take a look at this
-short video demonstration by Mike Elliott: 
-
-.. raw:: html
-
-   <video controls src="_static/OOM_Demo.mp4"></video>
-
-
-OOM Architecture and Technical Details
-======================================
-
-OOM uses the \ `Kubernetes  <http://kubernetes.io/>`__\ container
-management system to orchestrate the life cycle of the ONAP
-infrastructure components.  If you'd like to learn more about how this
-works or develop the deployment specifications for a project not already
-managed by OOM look here: \ `OOM User
-Guide <http://onap.readthedocs.io/en/latest/submodules/oom.git/docs/OOM%20User%20Guide/oom_user_guide.html>`__.
-
-
-Links to Further Information
-============================
-
--  Configuration data for all of the ONAP sub-projects is distributed by
-   OOM.  For more information on how this is done see: \ `OOM
-   Configuration Management <https://wiki.onap.org/display/DW/OOM+Configuration+Management>`__.
diff --git a/docs/OOM User Guide/oom_user_guide.rst b/docs/OOM User Guide/oom_user_guide.rst
deleted file mode 100644 (file)
index 00ebccb..0000000
+++ /dev/null
@@ -1,956 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-OOM User Guide
-##############
-.. contents::
-   :depth: 3
-..
-
-Introduction
-============
-
-The ONAP Operations Manager (OOM) is responsible for life-cycle
-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
-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.
-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
-   are instantiated with no resource reservations, and
-
--  | *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
-     deployment option requires a single host (32GB memory with 12
-     vCPUs) however further optimization should allow this deployment to
-     target a laptop computer. Production deployments will require more
-     resources as determined by anti-affinity and geo-redundancy
-     requirements.
-
-**OOM deployments of ONAP provide many benefits:**
-
--  *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
-   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
-   and storage overhead nor the associated long term support costs of
-   those guest operating systems. An informal goal of the project is to
-   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
-   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
-   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 changes are required to the components themselves when
-   deployed with 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 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 Upgrades*. Platform upgrades 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.
-   | 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
-     components themselves.
-
-Container Background
---------------------
-
-Linux containers allow for an application and all of its operating
-system dependencies to be packaged and deployed as a single unit without
-including a guest operating system as done with virtual machines. The
-most popular container solution
-is \ `Docker <https://www.docker.com/>`__ which provides tools for
-container management like the Docker Host (dockerd) which can create,
-run, stop, move, or delete a container. Docker has a very popular
-registry of containers images that can be used by any Docker system;
-however, in the ONAP context, Docker images are built by the standard
-CI/CD flow and stored
-in \ `Nexus <https://nexus.onap.org/#welcome>`__ repositories. OOM uses
-the "standard" ONAP docker containers and three new ones specifically
-created for OOM.
-
-Containers are isolated from each other primarily via name spaces within
-the Linux kernel without the need for multiple guest operating systems.
-As such, multiple containers can be deployed with little overhead such
-as all of ONAP can be deployed on a single host. With some optimization
-of the ONAP components (e.g. elimination of redundant database
-instances) it may be possible to deploy ONAP on a single laptop
-computer.
-
-Life Cycle Management via Kubernetes
-====================================
-
-As with the VNFs deployed by ONAP, the components of ONAP have their own
-life-cycle where the components are created, run, healed, scaled,
-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
-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
-state of the ONAP components.
-
-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.
-
--  services - an abstraction of a logical set of pods that provide a
-   micro-service.
-
--  pods - one or more (but typically one) container(s) that provide
-   specific application functionality. 
-
--  persistent volumes - One or more permanent volumes need to be
-   established to hold non-ephemeral configuration and state data.
-
-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
-sections.
-
-Nodes
-~~~~~
-
-OOM works with both physical and virtual worker machines.  
-
--  Virtual Machine Deployments - If ONAP is to be deployed onto a set of
-   virtual machines, the creation of the VMs is outside of the scope of
-   OOM and could be done in many ways, such as:
-
-   -  manually, for example by a user using the OpenStack Horizon
-      dashboard or `AWS
-      EC2 <https://wiki.onap.org/display/DW/ONAP+on+AWS#ONAPonAWS-Option0:DeployOOMKubernetestoaspotVM>`__,
-      or
-
-   -  automatically, for example with the use of a OpenStack Heat
-      Orchestration Template which builds an ONAP stack, or
-
-   -  orchestrated, for example with Cloudify creating the VMs from a
-      TOSCA template and controlling their life cycle for the life of
-      the ONAP deployment.
-
--  Physical Machine Deployments - If ONAP is to be deployed onto
-   physical machines there are several options but the recommendation is
-   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.
-
-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
-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
-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.
-
-Services
-~~~~~~~~
-
-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
-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
-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).
-
-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 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>`__)
-so there are many options as to how storage is configured when deploying
-ONAP via OOM.
-
-OOM Networking with Kubernetes
-------------------------------
-
--  DNS
-
--  Ports - Flattening the containers also expose port conflicts between
-   the containers which need to be resolved.
-
-Name Spaces
-~~~~~~~~~~~
-
-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:
-
--  onap-aai
-
-   -  aai-service
-
-   -  *hbase*
-
-   -  model-loader-service
-
-   -  aai-resources
-
-   -  aai-traversal
-
-   -  data-router
-
-   -  elasticsearch
-
-   -  gremlin
-
-   -  search-data-service
-
-   -  sparky-be
-
--  onap-appc
-
-   -  appc
-
-   -  *appc-dbhost*
-
-   -  appc-dgbuilder
-
--  clamp
-
-   - clamp
-
-   - clamp-mariadb
-
-
--  onap-dcae
-
-   -  cdap0
-
-   -  cdap1
-
-   -  cdap2
-
-   -  dcae-collector-common-event
-
-   -  dcae-collector-dmaapbc
-
-   -  dcae-controller
-
-   -  dcae-pgaas
-
-   -  dmaap
-
-   -  kafka
-
-   -  zookeeper
-
--  onap-message-router
-
-   -  dmaap
-
-   -  *global-kafka*
-
-   -  *zookeeper*
-
--  onap-mso
-
-   -  mso
-
-   -  *mariadb*
-
--  onap-multicloud
-
-   - multicloud-vio
-
-   - framework
-
--  onap-policy
-
-   -  brmsgw
-
-   -  drools
-
-   -  *mariadb*
-
-   -  *nexus*
-
-   -  pap
-
-   -  pdp
-
--  onap-portal
-
-   -  portalapps
-
-   -  *portaldb*
-
-   - portalwidgets
-
-   -  vnc-portal
-
--  onap-robot
-
-   -  robot
-
--  onap-sdc
-
-   -  sdc-be
-
-   -  *sdc-cs*
-
-   -  *sdc-es*
-
-   -  sdc-fe
-
-   -  *sdc-kb*
-
--  onap-sdnc
-
-   -  sdnc
-
-   -  *sdnc-dbhost*
-
-   -  sdnc-dgbuilder
-
-   -  sdnc-portal
-
--  onap-vid
-
-   -  *vid-mariadb*
-
-   -  vid-server
-
-Note that services listed in \ *italics* are local to the namespace
-itself and not accessible from outside of the namespace.
-
-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
-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.
-
-MSO Example
-~~~~~~~~~~~
-
-Within
-the \ `oom/kubernetes/templates/mso <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/templates/mso;h=d8b778a16381d6695f635c14b9dcab72fb9fcfcd;hb=refs/heads/master>`__ repo,
-one will find four files in yaml format:
-
--  `all-services.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob_plain;f=kubernetes/mso/templates/all-services.yaml;hb=refs/heads/master>`__
-
--  `db-deployment.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob_plain;f=kubernetes/mso/templates/db-deployment.yaml;hb=refs/heads/master>`__
-
--  `mso-deployment.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob_plain;f=kubernetes/mso/templates/db-deployment.yaml;hb=refs/heads/master>`__
-
--  `mso-pv-pvc.yaml <https://gerrit.onap.org/r/gitweb?p=oom.git;a=blob_plain;f=kubernetes/mso/templates/mso-pv-pvc.yaml;hb=refs/heads/master>`__
-
-The db-deployment.yaml file describes deployment of the database
-component of mso.  Here is the contents:
-
-**db-deployment.yaml**::
-
-  apiVersion: extensions/v1beta1
-  kind: Deployment
-  metadata:
-    name: mariadb
-    namespace: "{{ .Values.nsPrefix }}-mso"
-  spec:
-    replicas: 1
-    selector:
-      matchLabels:
-        app: mariadb
-    template:
-      metadata:
-        labels:
-          app: mariadb
-        name: mariadb
-      spec:
-        hostname: mariadb
-        containers:
-        - args:
-          image: {{ .Values.image.mariadb }}
-          imagePullPolicy: {{ .Values.pullPolicy }}
-          name: "mariadb"
-          env:
-            - name: MYSQL_ROOT_PASSWORD
-              value: password
-            - name: MARIADB_MAJOR
-              value: "10.1"
-            - name: MARIADB_VERSION
-              value: "10.1.11+maria-1~jessie"
-          volumeMounts:
-          - mountPath: /etc/localtime
-            name: localtime
-            readOnly: true
-          - mountPath: /etc/mysql/conf.d
-            name: mso-mariadb-conf
-          - mountPath: /docker-entrypoint-initdb.d
-            name: mso-mariadb-docker-entrypoint-initdb
-          - mountPath: /var/lib/mysql
-            name: mso-mariadb-data
-          ports:
-          - containerPort: 3306
-            name: 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
-          - name: mso-mariadb-docker-entrypoint-initdb
-            hostPath:
-              path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/mariadb/docker-entrypoint-initdb.d
-          - name: mso-mariadb-data
-            persistentVolumeClaim:
-              claimName: mso-db
-        imagePullSecrets:
-        - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-
-
-The first part of the yaml file simply states that this is a deployment
-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
-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
-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
-
--  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
-   of key/value pairs.  For example, MYSQL\_ROOT\_PASSWORD is set to
-   "password".
-
--  volumeMounts: allow for the creation of custom mount points
-
--  ports: define the networking ports that will be opened on the
-   container.  Note that further in the all-services.yaml file ports
-   that are defined here can be exposed outside of ONAP component's name
-   space by creating a 'nodePort' - a mechanism used to resolve port
-   duplication.
-
--  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.
-
-As one might image, the mso-deployment.yaml file describes the
-deployment artifacts of the mso application.  Here are the contents:
-
-**mso-deployment.yaml**::
-
-  apiVersion: extensions/v1beta1
-  kind: Deployment
-  metadata:
-    name: mso
-    namespace: "{{ .Values.nsPrefix }}-mso"
-  spec:
-    replicas: 1
-    selector:
-      matchLabels:
-        app: mso
-    template:
-      metadata:
-        labels:
-          app: mso
-        name: mso
-        annotations:
-          pod.beta.kubernetes.io/init-containers: '[
-            {
-                "args": [
-                    "--container-name",
-                    "mariadb"
-                ],
-                "command": [
-                    "/root/ready.py"
-                ],
-                "env": [
-                    {
-                        "name": "NAMESPACE",
-                        "valueFrom": {
-                            "fieldRef": {
-                                "apiVersion": "v1",
-                                "fieldPath": "metadata.namespace"
-                            }
-                        }
-                    }
-                ],
-                "image": "{{ .Values.image.readiness }}",
-                "imagePullPolicy": "{{ .Values.pullPolicy }}",
-                "name": "mso-readiness"
-            }
-            ]'
-      spec:
-        containers:
-        - command:
-          - /docker-files/scripts/start-jboss-server.sh
-          image: {{ .Values.image.mso }}
-          imagePullPolicy: {{ .Values.pullPolicy }}
-          name: mso
-          volumeMounts:
-          - mountPath: /etc/localtime
-            name: localtime
-            readOnly: true
-          - mountPath: /shared
-            name: mso
-          - mountPath: /docker-files
-            name: mso-docker-files
-          env:
-          - name: JBOSS_DEBUG
-            value: "false"
-          ports:
-          - containerPort: 3904
-          - containerPort: 3905
-          - containerPort: 8080
-          - containerPort: 9990
-          - containerPort: 8787
-          readinessProbe:
-            tcpSocket:
-              port: 8080
-            initialDelaySeconds: 5
-            periodSeconds: 10
-        volumes:
-          - name: localtime
-            hostPath:
-              path: /etc/localtime
-          - name: mso
-            hostPath:
-              path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/mso
-          - name: mso-docker-files
-            hostPath:
-              path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/docker-files
-        imagePullSecrets:
-        - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-
-Much like the db deployment specification the first and last part of
-this yaml file describe meta-data, replicas, images, volumes, etc.  The
-template section has an important new functionality though, a deployment
-specification for a new "initialization" container .  The entire purpose
-of the init-container is to allow dependencies to be resolved in an
-orderly manner such that the entire ONAP system comes up every time.
-Once the dependencies are met and the init-containers job is complete,
-this container will terminate.  Therefore, when OOM starts up ONAP one
-is able to see a number of init-containers start and then disappear as
-the system stabilizes. Note that more than one init-container may be
-specified, each completing before starting the next, if complex startup
-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.
-
-To ensure that data isn't lost when an ephemeral container undergoes
-life-cycle events (like being restarted), non-volatile or persistent
-volumes can be attached to the service.  The following pv-pvc.yaml
-file defines the persistent volume as 2 GB storage claimed by the
-mso namespace.
-
-**pv-pvc.yaml**::
-
-  apiVersion: v1
-  kind: PersistentVolume
-  metadata:
-    name: "{{ .Values.nsPrefix }}-mso-db"
-    namespace: "{{ .Values.nsPrefix }}-mso"
-    labels:
-      name: "{{ .Values.nsPrefix }}-mso-db"
-  spec:
-    capacity:
-      storage: 2Gi
-    accessModes:
-      - ReadWriteMany
-    persistentVolumeReclaimPolicy: Retain
-    hostPath:
-      path: /dockerdata-nfs/{{ .Values.nsPrefix }}/mso/mariadb/data
-  ---
-  kind: PersistentVolumeClaim
-  apiVersion: v1
-  metadata:
-    name: mso-db
-    namespace: "{{ .Values.nsPrefix }}-mso"
-  spec:
-    accessModes:
-      - ReadWriteMany
-    resources:
-      requests:
-        storage: 2Gi
-    selector:
-      matchLabels:
-        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
-is the contents of the file:
-
-**all-services.yaml**::
-
-  apiVersion: v1
-  kind: Service
-  metadata:
-    name: mariadb
-    namespace: "{{ .Values.nsPrefix }}-mso"
-    labels:
-      app: mariadb
-  spec:
-    ports:
-      - port: 3306
-        nodePort: {{ .Values.nodePortPrefix }}52
-    selector:
-      app: mariadb
-    type: NodePort
-  ---
-  apiVersion: v1
-  kind: Service
-  metadata:
-    name: mso
-    namespace: "{{ .Values.nsPrefix }}-mso"
-    labels:
-      app: mso
-    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:
-    selector:
-      app: mso
-    ports:
-      - name: mso1
-        port: 8080
-        nodePort: {{ .Values.nodePortPrefix }}23
-      - name: mso2
-        port: 3904
-        nodePort: {{ .Values.nodePortPrefix }}25
-      - name: mso3
-        port: 3905
-        nodePort: {{ .Values.nodePortPrefix }}24
-      - name: mso4
-        port: 9990
-        nodePort: {{ .Values.nodePortPrefix }}22
-      - name: mso5
-        port: 8787
-        nodePort: {{ .Values.nodePortPrefix }}50
-    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
-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
-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
-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.
-
-The mso service definition is largely the same as the mariadb service
-with the exception that the ports are named.
-
-Customizing Deployment Specifications
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-For each ONAP component deployed by OOM, a set of deployment
-specifications are required.  Use fortunately there are many examples to
-use as references such that the previous
-'`mso <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/mso;h=d8b778a16381d6695f635c14b9dcab72fb9fcfcd;hb=refs/heads/master>`__'
-example, as well as:
-`aai <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/aai;h=243ff90da714459a07fa33023e6655f5d036bfcd;hb=refs/heads/master>`__,
-`appc <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/appc;h=d34eaca8a17fc28033a491d3b71aaa1e25673f9e;hb=refs/heads/master>`__,
-`message-router <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/message-router;h=51fcb23fb7fbbfab277721483d01c6e3f98ca2cc;hb=refs/heads/master>`__,
-`policy <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/policy;h=8c29597b23876ea2ae17dbf747f4ab1e3b955dd9;hb=refs/heads/master>`__,
-`portal <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/portal;h=371db03ddef92703daa699014e8c1c9623f7994d;hb=refs/heads/master>`__,
-`robot <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/robot;h=46445652d43d93dc599c5108f5c10b303a3c777b;hb=refs/heads/master>`__,
-`sdc <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/sdc;h=1d59f7b5944d4604491e72d0b6def0ff3f10ba4d;hb=refs/heads/master>`__,
-`sdnc <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/sdnc;h=dbaab2ebd62190edcf489b5a5f1f52992847a73a;hb=refs/heads/master>`__
-and
-`vid <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/vid;h=e91788c8504f2da12c086e802e1e7e8648418c66;hb=refs/heads/master>`__.
-If your components isn't already deployed by OOM, you can create your
-own set of deployment specifications that can be easily added to OOM.
-
-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
-will enhance these deployment specifications as follows:
-
--  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.
-
--  Horizontal Scaling - replica sets can be used to dynamically scale
-   the number of pods behind a service to that of the offered load.
-
--  Stateless Pods - using concepts such as DBaaS (database as a service)
-   database technologies could be removed (where appropriate) from the
-   services thus moving to the 'cattle' model so common in cloud
-   deployments.
-
-Kubernetes Under-Cloud Deployments
-==================================
-
-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
-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
-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
-have been customized for your location, ONAP is ready to be installed. 
-
-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. 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
-`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.
-
-**createConfig.sh**::
-
-  > ./createConfig.sh -n onapTrial
-
-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.
-
-**createAll.bash**::
-
-  > ./createAll.bash -n onapTrial
-
-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 editing to match you environment and deployment into the default
-namespace before running createAll.bash.
-
-Integration with MSB
-====================
-
-The \ `Microservices Bus
-Project <https://wiki.onap.org/pages/viewpage.action?pageId=3246982>`__ provides
-facilities to integrate micro-services into ONAP and therefore needs to
-integrate into OOM - primarily through Consul which is the backend of
-MSB service discovery. The following is a brief description of how this
-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
-   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
-
--  When an ONAP component instance has been started/destroyed by OOM,
-   Registrator get the notification from Kubernetes
-
--  Registrator parse the service endpoint info from annotation and
-   register/update/unregister it to MSB service discovery
-
--  MSB API Gateway uses the service endpoint info for service routing
-   and load balancing.
-
-Details of the registration service API can be found at \ `Microservice
-Bus API
-Documentation <https://wiki.onap.org/display/DW/Microservice+Bus+API+Documentation>`__.
-
-How to define the service endpoints using annotation \ `ONAP Services
-List#OOMIntegration <https://wiki.onap.org/display/DW/ONAP+Services+List#ONAPServicesList-OOMIntegration>`__
-
-A preliminary view of the OOM-MSB integration is as follows:
-
-.. figure:: ../MSB-OOM-Diagram.png
-
-A message sequence chart of the registration process:
-
-.. figure:: ../MSB-OOM-MSC.png
-
-MSB Usage Instructions
-----------------------
-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*
-
-MSB and kube2msb can be spun up with all the ONAP components together, or separately using the following commands.
-
-**Start MSB services**::
-
-  createAll.bash -n onap -a msb
-
-**Start kube2msb registrator**::
-
-  createAll.bash -n onap -a kube2msb
-
-More details can be found here `MSB installation <http://onap.readthedocs.io/en/latest/submodules/msb/apigateway.git/docs/platform/installation.html>`__.
-
-FAQ (Frequently Asked Questions)
-================================
-
-Does OOM enable the deployment of VNFs on containers?
-
--  No. OOM provides a mechanism to instantiate and manage the ONAP
-   components themselves with containers but does not provide a
-   Multi-VIM capability such that VNFs can be deployed into containers.
-   The Multi VIM/Cloud Project may provide this functionality at some point.
-
-Configuration Parameters
-========================
-
-Configuration parameters that are specific to the ONAP deployment, for example
-hard coded IP addresses, are parameterized and stored in a OOM specific
-set of configuration files.
-
-More information about ONAP configuration can be found in the Configuration Management
-section.
-
-References
-==========
-
--  Docker - http://docker.com
-
--  Kubernetes - http://kubernetes.io
-
--  Helm - https://helm.sh
diff --git a/docs/consulHealth.png b/docs/consulHealth.png
new file mode 100644 (file)
index 0000000..cd7e730
Binary files /dev/null and b/docs/consulHealth.png differ
similarity index 74%
rename from kubernetes/onap/resources/environments/onap-demo.yaml
rename to docs/environments_onap_demo.yaml
index 67b6f40..9846e37 100644 (file)
@@ -23,7 +23,7 @@ global:
   # override default mount path root directory
   # referenced by persistent volumes and log files
   persistence:
-    mountPath: /dockerdata-nfs
+    mountPath: /dockerdata
 
   # flag to enable debugging - application support required
   debugEnabled: true
@@ -32,17 +32,52 @@ global:
 # Enable/disable and configure helm charts (ie. applications)
 # to customize the ONAP deployment.
 #################################################################
-consul:
+aaf:
+  enabled: false
+aai:
+  enabled: false
+appc:
+  enabled: false
+clamp:
   enabled: true
-
-so:
+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: true
+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
@@ -57,4 +92,12 @@ so:
   # configure embedded mariadb
   mariadb:
     config:
-      mariadbRootPassword: password
\ No newline at end of file
+      mariadbRootPassword: password
+uui:
+  enabled: false
+vfc:
+  enabled: false
+vid:
+  enabled: false
+vnfsdk:
+  enabled: false
index 0fcfad9..bf7cd9e 100644 (file)
@@ -1,9 +1,15 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 Amdocs, Bell Canada
+
 
 OOM Documentation Repository
 ----------------------------
 .. toctree::
   :maxdepth: 2
 
-  OOM Project Description/oom_project_description.rst
-  OOM User Guide/oom_user_guide.rst
+  oom_project_description.rst
+  oom_quickstart_guide.rst
+  oom_user_guide.rst
+  oom_developer_guide.rst
+  oom_cloud_setup_guide.rst
diff --git a/docs/onap_values.yaml b/docs/onap_values.yaml
new file mode 100644 (file)
index 0000000..663b05f
--- /dev/null
@@ -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: true
+aai:
+  enabled: true
+appc:
+  enabled: true
+clamp:
+  enabled: true
+cli:
+  enabled: true
+consul: # Consul Health Check Monitoring
+  enabled: true
+dcaegen2:
+  enabled: true
+esr:
+  enabled: true
+log: # ONAP Logging ElasticStack
+  enabled: true
+message-router:
+  enabled: true
+mock:
+  enabled: true
+msb:
+  enabled: true
+multicloud:
+  enabled: true
+policy:
+  enabled: true
+portal:
+  enabled: true
+robot: # Robot Health Check
+  enabled: true
+sdc:
+  enabled: true
+sdnc:
+  enabled: true
+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: true
+vfc:
+  enabled: true
+vid:
+  enabled: true
+vnfsdk:
+  enabled: true
diff --git a/docs/oomLogoV2-Configure.png b/docs/oomLogoV2-Configure.png
new file mode 100644 (file)
index 0000000..bdb1ece
Binary files /dev/null and b/docs/oomLogoV2-Configure.png differ
diff --git a/docs/oomLogoV2-Delete.png b/docs/oomLogoV2-Delete.png
new file mode 100644 (file)
index 0000000..10c43d2
Binary files /dev/null and b/docs/oomLogoV2-Delete.png differ
diff --git a/docs/oomLogoV2-Deploy.png b/docs/oomLogoV2-Deploy.png
new file mode 100644 (file)
index 0000000..706097c
Binary files /dev/null and b/docs/oomLogoV2-Deploy.png differ
diff --git a/docs/oomLogoV2-Heal.png b/docs/oomLogoV2-Heal.png
new file mode 100644 (file)
index 0000000..97ac58e
Binary files /dev/null and b/docs/oomLogoV2-Heal.png differ
diff --git a/docs/oomLogoV2-Monitor.png b/docs/oomLogoV2-Monitor.png
new file mode 100644 (file)
index 0000000..c9a184a
Binary files /dev/null and b/docs/oomLogoV2-Monitor.png differ
diff --git a/docs/oomLogoV2-Scale.png b/docs/oomLogoV2-Scale.png
new file mode 100644 (file)
index 0000000..140e5ca
Binary files /dev/null and b/docs/oomLogoV2-Scale.png differ
diff --git a/docs/oomLogoV2-Upgrade.png b/docs/oomLogoV2-Upgrade.png
new file mode 100644 (file)
index 0000000..d51f6cf
Binary files /dev/null and b/docs/oomLogoV2-Upgrade.png differ
diff --git a/docs/oomLogoV2-medium.png b/docs/oomLogoV2-medium.png
new file mode 100644 (file)
index 0000000..20aea69
Binary files /dev/null and b/docs/oomLogoV2-medium.png differ
diff --git a/docs/oom_cloud_setup_guide.rst b/docs/oom_cloud_setup_guide.rst
new file mode 100644 (file)
index 0000000..9cccc91
--- /dev/null
@@ -0,0 +1,64 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 Amdocs, Bell Canada
+
+.. figure:: oomLogoV2-medium.png
+   :align: right
+
+.. _cloud-setup-guide-label:
+
+OOM Cloud Setup Guide
+#####################
+
+OOM deploys and manages ONAP on a pre-established Kubernetes_ cluster - the
+creation of this cluster is outside of the scope of the OOM project as there
+are many options including public clouds with pre-established environments.
+However, this guide includes instructions for how to create and use some of the
+more popular environments which could be used to host ONAP. If creation of a
+Kubernetes cluster is required, the life-cycle of this cluster is independent
+of the life-cycle of the ONAP components themselves. Much like an OpenStack
+environment, the Kubernetes environment may be used for an extended period of
+time, possibly spanning multiple ONAP releases.
+
+.. note::
+  Inclusion of a cloud technology or provider in this guide does not imply any
+  endorsement of this technology.
+
+.. _Kubernetes: https://kubernetes.io/
+
+The versions of Kubernetes that are supported by OOM are as follows:
+
+.. table:: OOM Software Requirements
+
+  ==============  ==========  =====  =======  ========
+  Release         Kubernetes  Helm   kubectl  Docker
+  ==============  ==========  =====  =======  ========
+  amsterdam       1.7.x       2.3.x  1.7.x    1.12.x
+  beijing/master  1.8.5       2.7.x  1.8.5    1.12.x
+  ==============  ==========  =====  =======  ========
+
+Minimum Hardware Requirements
+=============================
+
+
+Cloud Installation
+==================
+
+#. OOM supports deployment on major public clouds. The following guides
+   provide instructions on how to deploy ONAP on these clouds:
+
+   - Microsoft Azure,
+   - Amazon AWS,
+   - Google GCD,
+   - VMware VIO,
+   - IBM, and
+   - Openstack
+
+#. Alternatively, OOM can be deployed on a private set of physical hosts or VMs
+   (or even a combination of the two). The following guides describe how to
+   create a Kubernetes cluster with popular tools:
+
+   - Setting up Kubernetes with Rancher (recommended)
+   - Setting up Kubernetes with Kubeadm
+   - Setting up Kubernetes with Cloudify
+
diff --git a/docs/oom_developer_guide.rst b/docs/oom_developer_guide.rst
new file mode 100644 (file)
index 0000000..1c18044
--- /dev/null
@@ -0,0 +1,637 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 Amdocs, Bell Canada
+
+.. Links
+.. _Helm: https://docs.helm.sh/
+.. _Kubernetes: https://Kubernetes.io/
+.. _Docker: https://www.docker.com/
+.. _Nexus: https://nexus.onap.org/#welcome
+.. _AWS Elastic Block Store: https://aws.amazon.com/ebs/
+.. _Azure File: https://docs.microsoft.com/en-us/azure/storage/files/storage-files-introduction
+.. _GCE Persistent Disk: https://cloud.google.com/compute/docs/disks/
+.. _Gluster FS: https://www.gluster.org/
+.. _Kubernetes Storage Class: https://Kubernetes.io/docs/concepts/storage/storage-classes/
+.. _Assigning Pods to Nodes: https://Kubernetes.io/docs/concepts/configuration/assign-pod-node/
+
+.. _developer-guide-label:
+
+OOM Developer Guide
+###################
+
+.. figure:: oomLogoV2-medium.png
+   :align: right
+
+ONAP consists of a large number of components, each of which are substantial
+projects within themselves, which results in a high degree of complexity in
+deployment and management. To cope with this complexity the ONAP Operations
+Manager (OOM) uses a Helm_ model of ONAP - Helm being the primary management
+system for Kubernetes_ container systems - to drive all user driven life-cycle
+management operations. The Helm model of ONAP is composed of a set of
+hierarchical Helm charts that define the structure of the ONAP components and
+the configuration of these components.  These charts are fully parameterized
+such that a single environment file defines all of the parameters needed to
+deploy ONAP.  A user of ONAP may maintain several such environment files to
+control the deployment of ONAP in multiple environments such as development,
+pre-production, and production.
+
+The following sections describe how the ONAP Helm charts are constructed.
+
+.. contents::
+   :depth: 3
+   :local:
+..
+
+Container Background
+====================
+Linux containers allow for an application and all of its operating system
+dependencies to be packaged and deployed as a single unit without including a
+guest operating system as done with virtual machines. The most popular
+container solution is Docker_ which provides tools for container management
+like the Docker Host (dockerd) which can create, run, stop, move, or delete a
+container. Docker has a very popular registry of containers images that can be
+used by any Docker system; however, in the ONAP context, Docker images are
+built by the standard CI/CD flow and stored in Nexus_ repositories. OOM uses
+the "standard" ONAP docker containers and three new ones specifically created
+for OOM.
+
+Containers are isolated from each other primarily via name spaces within the
+Linux kernel without the need for multiple guest operating systems. As such,
+multiple containers can be deployed with little overhead such as all of ONAP
+can be deployed on a single host. With some optimization of the ONAP components
+(e.g. elimination of redundant database instances) it may be possible to deploy
+ONAP on a single laptop computer.
+
+Helm Charts
+===========
+
+Standard Chart Format
+---------------------
+
+Helm charts are available in the open-source community for a wide variety of
+common software components which are used in ONAP and where possible.
+
+
+Chart Hierarchy
+---------------
+
+Dependency Management
+---------------------
+These Helm charts describe the desired state
+of an ONAP deployment and instruct the Kubernetes container manager as to how
+to maintain the deployment in this state.  These dependencies dictate the order
+in-which the containers are started for the first time such that such
+dependencies are always met without arbitrary sleep times between container
+startups.  For example, the SDC back-end container requires the Elastic-Search,
+Cassandra and Kibana containers within SDC to be ready and is also dependent on
+DMaaP (or the message-router) to be ready - where ready implies the built-in
+"readiness" probes succeeded - before becoming fully operational.  When an
+initial deployment of ONAP is requested the current state of the system is NULL
+so ONAP is deployed by the Kubernetes manager as a set of Docker containers on
+one or more predetermined hosts.  The hosts could be physical machines or
+virtual machines.  When deploying on virtual machines the resulting system will
+be very similar to "Heat" based deployments, i.e. Docker containers running
+within a set of VMs, the primary difference being that the allocation of
+containers to VMs is done dynamically with OOM and statically with "Heat".
+Example SO deployment descriptor file shows SO's dependency on its mariadb
+data-base component:
+
+SO deployment specification excerpt:
+
+.. code-block:: yaml
+
+  apiVersion: extensions/v1beta1
+  kind: Deployment
+  metadata:
+    name: {{ include "common.name" . }}
+    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
+          - so-mariadb
+          env:
+  ...
+
+Kubernetes Container Orchestration
+==================================
+The ONAP components are managed by the Kubernetes_ 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 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 state of the ONAP components.
+
+Name Spaces
+-----------
+Within the namespaces are Kubernetes services that provide external connectivity to pods that host Docker containers.
+
+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.
+- **services** - an abstraction of a logical set of pods that provide a
+  micro-service.
+- **pods** - one or more (but typically one) container(s) that provide specific
+  application functionality.
+- **persistent volumes** - One or more permanent volumes need to be established
+  to hold non-ephemeral configuration and state data.
+
+The relationship between these objects is shown in the following figure:
+
+.. .. uml::
+..
+..   @startuml
+..   node PH {
+..      component Service {
+..         component Pod0
+..         component Pod1
+..      }
+..   }
+..
+..   database PV
+..   @enduml
+
+.. figure:: kubernetes_objects.png
+
+OOM uses these Kubernetes objects as described in the following sections.
+
+Nodes
+~~~~~
+OOM works with both physical and virtual worker machines.
+
+* Virtual Machine Deployments - If ONAP is to be deployed onto a set of virtual machines, the creation of the VMs is outside of the scope of OOM and could be done in many ways, such as
+
+  * manually, for example by a user using the OpenStack Horizon dashboard or AWS EC2, or
+  * automatically, for example with the use of a OpenStack Heat Orchestration Template which builds an ONAP stack, Azure ARM template, AWS CloudFormation Template, or
+  * orchestrated, for example with Cloudify creating the VMs from a TOSCA template and controlling their life cycle for the life of the ONAP deployment.
+
+* Physical Machine Deployments - If ONAP is to be deployed onto physical machines there are several options but the recommendation is to use Rancher along with Helm to 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 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 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.
+
+Services
+~~~~~~~~
+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 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 distribute traffic between the pods and even react to dynamic
+changes in the number of pods if they are part of a replica set.
+
+Persistent Volumes
+~~~~~~~~~~~~~~~~~~
+To enable ONAP to be deployed into a wide variety of cloud infrastructures a
+flexible persistent storage architecture, built on Kubernetes persistent
+volumes, provides the ability to define the physical storage in a central
+location and have all ONAP components securely store their data.
+
+When deploying ONAP into a public cloud, available storage services such as
+`AWS Elastic Block Store`_, `Azure File`_, or `GCE Persistent Disk`_ are
+options.  Alternatively, when deploying into a private cloud the storage
+architecture might consist of Fiber Channel, `Gluster FS`_, or iSCSI. Many
+other storage options existing, refer to the `Kubernetes Storage Class`_
+documentation for a full list of the options. The storage architecture may vary
+from deployment to deployment but in all cases a reliable, redundant storage
+system must be provided to ONAP with which the state information of all ONAP
+components will be securely stored. The Storage Class for a given deployment is
+a single parameter listed in the ONAP values.yaml file and therefore is easily
+customized. Operation of this storage system is outside the scope of the OOM.
+
+.. code-block:: yaml
+
+  Insert values.yaml code block with storage block here
+
+Once the storage class is selected and the physical storage is provided, the
+ONAP deployment step creates a pool of persistent volumes within the given
+physical storage that is used by all of the ONAP components. ONAP components
+simply make a claim on these persistent volumes (PV), with a persistent volume
+claim (PVC), to gain access to their storage.
+
+The following figure illustrates the relationships between the persistent
+volume claims, the persistent volumes, the storage class, and the physical
+storage.
+
+.. graphviz::
+
+   digraph PV {
+      label = "Persistance Volume Claim to Physical Storage Mapping"
+      {
+         node [shape=cylinder]
+         D0 [label="Drive0"]
+         D1 [label="Drive1"]
+         Dx [label="Drivex"]
+      }
+      {
+         node [shape=Mrecord label="StorageClass:ceph"]
+         sc
+      }
+      {
+         node [shape=point]
+         p0 p1 p2
+         p3 p4 p5
+      }
+      subgraph clusterSDC {
+         label="SDC"
+         PVC0
+         PVC1
+      }
+      subgraph clusterSDNC {
+         label="SDNC"
+         PVC2
+      }
+      subgraph clusterSO {
+         label="SO"
+         PVCn
+      }
+      PV0 -> sc
+      PV1 -> sc
+      PV2 -> sc
+      PVn -> sc
+
+      sc -> {D0 D1 Dx}
+      PVC0 -> PV0
+      PVC1 -> PV1
+      PVC2 -> PV2
+      PVCn -> PVn
+
+      # force all of these nodes to the same line in the given order
+      subgraph {
+         rank = same; PV0;PV1;PV2;PVn;p0;p1;p2
+         PV0->PV1->PV2->p0->p1->p2->PVn [style=invis]
+      }
+
+      subgraph {
+         rank = same; D0;D1;Dx;p3;p4;p5
+         D0->D1->p3->p4->p5->Dx [style=invis]
+      }
+
+   }
+
+In-order for an ONAP component to use a persistent volume it must make a claim
+against a specific persistent volume defined in the ONAP common charts.  Note
+that there is a one-to-one relationship between a PVC and PV.  The following is
+an excerpt from a component chart that defines a PVC:
+
+.. code-block:: yaml
+
+  Insert PVC example here
+
+OOM Networking with Kubernetes
+------------------------------
+
+- DNS
+- Ports - Flattening the containers also expose port conflicts between the containers which need to be resolved.
+
+Node Ports
+~~~~~~~~~~
+
+Pod Placement Rules
+-------------------
+OOM will use the rich set of Kubernetes node and pod affinity /
+anti-affinity rules to minimize the chance of a single failure resulting in a
+loss of ONAP service. Node affinity / anti-affinity is used to guide the
+Kubernetes orchestrator in the placement of pods on nodes (physical or virtual
+machines).  For example:
+
+- if a container used Intel DPDK technology the pod may state that it as
+  affinity to an Intel processor based node, or
+- geographical based node labels (such as the Kubernetes standard zone or
+  region labels) may be used to ensure placement of a DCAE complex close to the
+  VNFs generating high volumes of traffic thus minimizing networking cost.
+  Specifically, if nodes were pre-assigned labels East and West, the pod
+  deployment spec to distribute pods to these nodes would be:
+
+.. code-block:: yaml
+
+  nodeSelector:
+    failure-domain.beta.Kubernetes.io/region: {{ .Values.location }}
+
+- "location: West" is specified in the values.yaml file used to deploy
+  one DCAE cluster and  "location: East" is specified in a second values.yaml
+  file (see OOM Configuration Management for more information about
+  configuration files like the values.yamlfile).
+
+Node affinity can also be used to achieve geographic redundancy if pods are
+assigned to multiple failure domains. For more information refer to `Assigning
+Pods to Nodes`_.
+
+.. note::
+   One could use Pod to Node assignment to totally constrain Kubernetes when
+   doing initial container assignment to replicate the Amsterdam release
+   OpenStack Heat based deployment. Should one wish to do this, each VM would
+   need a unique node name which would be used to specify a node constaint
+   for every component.  These assignment could be specified in an environment
+   specific values.yaml file. Constraining Kubernetes in this way is not
+   recommended.
+
+Kubernetes has a comprehensive system called Taints and Tolerations that can be
+used to force the container orchestrator to repel pods from nodes based on
+static events (an administrator assigning a taint to a node) or dynamic events
+(such as a node becoming unreachable or running out of disk space). There are
+no plans to use taints or tolerations in the ONAP Beijing release.  Pod
+affinity / anti-affinity is the concept of creating a spacial relationship
+between pods when the Kubernetes orchestrator does assignment (both initially
+an in operation) to nodes as explained in Inter-pod affinity and anti-affinity.
+For example, one might choose to co-located all of the ONAP SDC containers on a
+single node as they are not critical runtime components and co-location
+minimizes overhead. On the other hand, one might choose to ensure that all of
+the containers in an ODL cluster (SDNC and APPC) are placed on separate nodes
+such that a node failure has minimal impact to the operation of the cluster.
+An example of how pod affinity / anti-affinity is shown below:
+
+Pod Affinity / Anti-Affinity
+
+.. code-block:: yaml
+
+  apiVersion: v1
+  kind: Pod
+  metadata:
+    name: with-pod-affinity
+  spec:
+    affinity:
+      podAffinity:
+        requiredDuringSchedulingIgnoredDuringExecution:
+        - labelSelector:
+            matchExpressions:
+        - key: security
+          operator: In
+          values:
+          - S1
+          topologyKey: failure-domain.beta.Kubernetes.io/zone
+      podAntiAffinity:
+        preferredDuringSchedulingIgnoredDuringExecution:
+        - weight: 100
+          podAffinityTerm:
+            labelSelector:
+              matchExpressions:
+              - key: security
+                operator: In
+                values:
+                - S2
+            topologyKey: Kubernetes.io/hostname
+       containers:
+       - name: with-pod-affinity
+         image: gcr.io/google_containers/pause:2.0
+
+This example contains both podAffinity and podAntiAffinity rules, the first
+rule is is a must (requiredDuringSchedulingIgnoredDuringExecution) while the
+second will be met pending other considerations
+(preferredDuringSchedulingIgnoredDuringExecution).  Preemption Another feature
+that may assist in achieving a repeatable deployment in the presence of faults
+that may have reduced the capacity of the cloud is assigning priority to the
+containers such that mission critical components have the ability to evict less
+critical components.  Kubernetes provides this capability with Pod Priority and
+Preemption.  Prior to having more advanced production grade features available,
+the ability to at least be able to re-deploy ONAP (or a subset of) reliably
+provides a level of confidence that should an outage occur the system can be
+brought back on-line predictably.
+
+Health Checks
+-------------
+
+Monitoring of ONAP components is configured in the agents within JSON files and
+stored in gerrit under the consul-agent-config, here is an example from the AAI
+model loader (aai-model-loader-health.json):
+
+.. code-block:: json
+
+  {
+    "service": {
+      "name": "A&AI Model Loader",
+      "checks": [
+        {
+          "id": "model-loader-process",
+          "name": "Model Loader Presence",
+          "script": "/consul/config/scripts/model-loader-script.sh",
+          "interval": "15s",
+          "timeout": "1s"
+        }
+      ]
+    }
+  }
+
+Liveness Probes
+---------------
+
+These liveness probes can simply check that a port is available, that a
+built-in health check is reporting good health, or that the Consul health check
+is positive.  For example, to monitor the SDNC component has following liveness
+probe can be found in the SDNC DB deployment specification:
+
+.. code-block:: yaml
+
+  sdnc db liveness probe
+
+  livenessProbe:
+    exec:
+      command: ["mysqladmin", "ping"]
+      initialDelaySeconds: 30 periodSeconds: 10
+      timeoutSeconds: 5
+
+The 'initialDelaySeconds' control the period of time between the readiness
+probe succeeding and the liveness probe starting. 'periodSeconds' and
+'timeoutSeconds' control the actual operation of the probe.  Note that
+containers are inherently ephemeral so the healing action destroys failed
+containers and any state information within it.  To avoid a loss of state, a
+persistent volume should be used to store all data that needs to be persisted
+over the re-creation of a container.  Persistent volumes have been created for
+the database components of each of the projects and the same technique can be
+used for all persistent state information.
+
+
+Configuration Management
+========================
+
+ONAP is a large system composed of many components - each of which are complex
+systems in themselves - that needs to be deployed in a number of different
+ways.  For example, within a single operator's network there may be R&D
+deployments under active development, pre-production versions undergoing system
+testing and production systems that are operating live networks.  Each of these
+deployments will differ in significant ways, such as the version of the
+software images deployed.  In addition, there may be a number of application
+specific configuration differences, such as operating system environment
+variables.  The following describes how the Helm configuration management
+system is used within the OOM project to manage both ONAP infrastructure
+configuration as well as ONAP components configuration.
+
+One of the artifacts that OOM/Kubernetes uses to deploy ONAP components is the
+deployment specification, yet another yaml file.  Within these deployment specs
+are a number of parameters as shown in the following mariadb example:
+
+.. code-block:: yaml
+
+  apiVersion: extensions/v1beta1
+  kind: Deployment
+  metadata:
+    name: mariadb
+  spec:
+     <...>
+    template:
+      <...>
+      spec:
+        hostname: mariadb
+        containers:
+        - args:
+          image: nexus3.onap.org:10001/mariadb:10.1.11
+          name: "mariadb"
+          env:
+            - name: MYSQL_ROOT_PASSWORD
+              value: password
+            - name: MARIADB_MAJOR
+              value: "10.1"
+          <...>
+        imagePullSecrets:
+        - name: onap-docker-registry-key
+
+Note that within the deployment specification, one of the container arguments
+is the key/value pair image: nexus3.onap.org:10001/mariadb:10.1.11 which
+specifies the version of the mariadb software to deploy.  Although the
+deployment specifications greatly simplify deployment, maintenance of the
+deployment specifications themselves become problematic as software versions
+change over time or as different versions are required for different
+deployments.  For example, if the R&D team needs to deploy a newer version of
+mariadb than what is currently used in the production environment, they would
+need to clone the deployment specification and change this value.  Fortunately,
+this problem has been solved with the templating capabilities of Helm.
+
+The following example shows how the deployment specifications are modified to
+incorporate Helm templates such that key/value pairs can be defined outside of
+the deployment specifications and passed during instantiation of the component.
+
+.. code-block:: yaml
+
+  apiVersion: extensions/v1beta1
+  kind: Deployment
+  metadata:
+    name: mariadb
+    namespace: "{{ .Values.nsPrefix }}-mso"
+  spec:
+    <...>
+    template:
+      <...>
+      spec:
+        hostname: mariadb
+        containers:
+        - args:
+          image: {{ .Values.image.mariadb }}
+          imagePullPolicy: {{ .Values.pullPolicy }}
+          name: "mariadb"
+          env:
+            - name: MYSQL_ROOT_PASSWORD
+              value: password
+            - name: MARIADB_MAJOR
+              value: "10.1"
+        <...>
+        imagePullSecrets:
+        - name: "{{ .Values.nsPrefix }}-docker-registry-key"apiVersion: extensions/v1beta1
+  kind: Deployment
+  metadata:
+    name: mariadb
+    namespace: "{{ .Values.nsPrefix }}-mso"
+  spec:
+    <...>
+    template:
+      <...>
+      spec:
+        hostname: mariadb
+        containers:
+        - args:
+          image: {{ .Values.image.mariadb }}
+          imagePullPolicy: {{ .Values.pullPolicy }}
+          name: "mariadb"
+          env:
+            - name: MYSQL_ROOT_PASSWORD
+              value: password
+            - name: MARIADB_MAJOR
+              value: "10.1"
+        <...>
+        imagePullSecrets:
+        - name: "{{ .Values.nsPrefix }}-docker-registry-key"
+
+This version of the deployment specification has gone through the process of
+templating values that are likely to change between deployments. Note that the
+image is now specified as: image: {{ .Values.image.mariadb }} instead of a
+string used previously.  During the deployment phase, Helm (actually the Helm
+sub-component Tiller) substitutes the {{ .. }} entries with a variable defined
+in a values.yaml file.  The content of this file is as follows:
+
+.. code-block:: yaml
+
+  nsPrefix: onap
+  pullPolicy: IfNotPresent
+  image:
+    readiness: oomk8s/readiness-check:1.0.0
+    mso: nexus3.onap.org:10001/openecomp/mso:1.0-STAGING-latest
+    mariadb: nexus3.onap.org:10001/mariadb:10.1.11
+
+Within the values.yaml file there is an image section with the key/value pair
+mariadb: nexus3.onap.org:10001/mariadb:10.1.11 which is the same value used in
+the non-templated version.  Once all of the substitutions are complete, the
+resulting deployment specification ready to be used by Kubernetes.
+
+Also note that in this example, the namespace key/value pair is specified in
+the values.yaml file.  This key/value pair will be global across the entire
+ONAP deployment and is therefore a prime example of where configuration
+hierarchy can be very useful.
+
+When creating a deployment template consider the use of default values if
+appropriate.  Helm templating has built in support for DEFAULT values, here is
+an example:
+
+.. code-block:: yaml
+
+  imagePullSecrets:
+  - name: "{{ .Values.nsPrefix | default "onap" }}-docker-registry-key"
+
+The pipeline operator ("|") used here hints at that power of Helm templates in
+that much like an operating system command line the pipeline operator allow
+over 60 Helm functions to be embedded directly into the template (note that the
+Helm template language is a superset of the Go template language).  These
+functions include simple string operations like upper and more complex flow
+control operations like if/else.
+
+
+ONAP Application Configuration
+------------------------------
+
+Environment Files
+~~~~~~~~~~~~~~~~~
+
+MSB Integration
+===============
+.. MISC
+.. ====
+.. Note that although OOM uses Kubernetes facilities to minimize the effort
+.. required of the ONAP component owners to implement a successful rolling upgrade
+.. strategy there are other considerations that must be taken into consideration.
+.. For example, external APIs - both internal and external to ONAP - should be
+.. designed to gracefully accept transactions from a peer at a different software
+.. version to avoid deadlock situations. Embedded version codes in messages may
+.. facilitate such capabilities.
+..
+.. Within each of the projects a new configuration repository contains all of the
+.. project specific configuration artifacts.  As changes are made within the
+.. project, it's the responsibility of the project team to make appropriate
+.. changes to the configuration data.
diff --git a/docs/oom_project_description.rst b/docs/oom_project_description.rst
new file mode 100644 (file)
index 0000000..7eb7950
--- /dev/null
@@ -0,0 +1,90 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 Amdocs, Bell Canada
+
+ONAP Operations Manager Project
+###############################
+
+The ONAP Operations Manager (OOM) is responsible for life-cycle 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 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. OOM
+ensures that ONAP is easily deployable and maintainable throughout its life
+cycle while using hardware resources efficiently.
+
+.. figure:: oomLogoV2-medium.png
+   :align: right
+
+In summary OOM provides the following capabilities:
+
+- **Deploy** - with built-in component dependency management
+- **Configure** - unified configuration across all ONAP components
+- **Monitor** - real-time health monitoring feeding to a Consul UI and Kubernetes
+- **Heal**- failed ONAP containers are recreated automatically
+- **Scale** - cluster ONAP services to enable seamless scaling
+- **Upgrade** - change-out containers or configuration with little or no service impact
+- **Delete** - cleanup individual containers or entire deployments
+
+OOM supports a wide variety of Kubernetes private clouds - built with Rancher,
+Kubeadm or Cloudify - and public cloud infrastructures such as: Microsoft Azure,
+Amazon AWS, Google GCD, VMware VIO, and Openstack.
+
+The OOM documentation is broken into three different areas each targeted at a differnet user:
+
+- :ref:`quick-start-label` - deploy ONAP on an existing cloud
+- :ref:`user-guide-label` - a guide for operators of an ONAP instance
+- :ref:`developer-guide-label` - a guide for developers of OOM and ONAP
+- :ref:`cloud-setup-guide-label` - a guide for those setting up cloud environments that ONAP will use
+
+Component Orchestration Overview
+================================
+Multiple technologies, templates, and extensible plug-in frameworks are used in
+ONAP to orchestrate platform instances of software component artifacts. A few
+standard configurations are provide that may be suitable for test, development,
+and some production deployments by substitution of local or platform wide
+parameters. Larger and more automated deployments may require integration the
+component technologies, templates, and frameworks with a higher level of
+automated orchestration and control software. Design guidelines are provided to
+insure the component level templates and frameworks can be easily integrated
+and maintained. The following diagram provides an overview of these with links
+to examples and templates for describing new ones.
+
+.. graphviz::
+
+   digraph COO {
+      rankdir="LR";
+
+      {
+         node      [shape=folder]
+         oValues   [label="values"]
+         cValues   [label="values"]
+         comValues [label="values"]
+         sValues   [label="values"]
+         oCharts   [label="charts"]
+         cCharts   [label="charts"]
+         comCharts [label="charts"]
+         sCharts   [label="charts"]
+         blueprint [label="TOSCA blueprint"]
+      }
+      {oom [label="ONAP Operations Manager"]}
+      {hlo [label="High Level Orchestrator"]}
+
+
+      hlo -> blueprint
+      hlo -> oom
+      oom -> oValues
+      oom -> oCharts
+      oom -> component
+      oom -> common
+      common -> comValues
+      common -> comCharts
+      component -> cValues
+      component -> cCharts
+      component -> subcomponent
+      subcomponent -> sValues
+      subcomponent -> sCharts
+      blueprint -> component
+   }
diff --git a/docs/oom_quickstart_guide.rst b/docs/oom_quickstart_guide.rst
new file mode 100644 (file)
index 0000000..879bbb9
--- /dev/null
@@ -0,0 +1,176 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 Amdocs, Bell Canada
+
+.. _quick-start-label:
+
+OOM Quick Start Guide
+#####################
+
+.. figure:: oomLogoV2-medium.png
+   :align: right
+
+Once a kubernetes environment is available (follow the instructions in
+:ref:`cloud-setup-guide-label` if you don't have a cloud environment
+available), follow the following instructions to deploy ONAP.
+
+**Step 1.** Clone the OOM repository from ONAP gerrit::
+
+  > git clone http://gerrit.onap.org/r/oom
+  > cd oom/kubernetes
+
+
+**Step 2.** Customize the onap/values.yaml file to suit your deployment. You
+may want to selectively enable or disable ONAP components by changing the
+`enabled: true/false` flags as shown below:
+
+.. code-block:: yaml
+
+  #################################################################
+  # 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: true
+  aai:
+    enabled: true
+  appc:
+    enabled: true
+  clamp:
+    enabled: true
+  cli:
+    enabled: true
+  consul: # Consul Health Check Monitoring
+    enabled: true
+  dcaegen2:
+    enabled: true
+  esr:
+    enabled: true
+  log:
+    enabled: true
+  message-router:
+    enabled: true
+  mock:
+    enabled: true
+  msb:
+    enabled: true
+  multicloud:
+    enabled: true
+  policy:
+    enabled: true
+  portal:
+    enabled: true
+  robot: # Robot Health Check
+    enabled: true
+  sdc:
+    enabled: true
+  sdnc:
+    enabled: true
+  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: true
+  vfc:
+    enabled: true
+  vid:
+    enabled: true
+  vnfsdk:
+    enabled: true
+
+**Step 3.** To setup a local Helm server to server up the ONAP charts::
+
+  > helm serve &
+
+Note the port number that is listed and use it in the Helm repo add as
+follows::
+
+  > helm repo add local http://127.0.0.1:8879
+
+**Step 4.** Verify your Helm repository setup with::
+
+  > helm repo list
+  NAME   URL
+  local  http://127.0.0.1:8879
+
+**Step 5.** Build a local Helm repository (from the kubernetes directory)::
+
+  > make all
+
+**Step 6.** Display the charts that available to be deployed::
+
+  > helm search -l
+  NAME                    VERSION    DESCRIPTION
+  local/appc              2.0.0      Application Controller
+  local/clamp             2.0.0      ONAP Clamp
+  local/common            2.0.0      Common templates for inclusion in other charts
+  local/onap              2.0.0      Open Network Automation Platform (ONAP)
+  local/robot             2.0.0      A helm Chart for kubernetes-ONAP Robot
+  local/so                2.0.0      ONAP Service Orchestrator
+
+.. note::
+  The setup of the Helm repository is a one time activity. If you make changes to your deployment charts or values be sure to use `make` to update your local Helm repository.
+
+**Step 7.** Once the repo is setup, installation of ONAP can be done with a
+single command::
+
+  > helm install local/onap -name dev --namespace onap
+
+.. note::
+  The requirement for the use of the `onap` namespace will be lifted once the OOM team completes their Beijing deveivers.
+
+Use the following to monitor your deployment and determine when ONAP is ready for use::
+
+  > kubectl get pods --all-namespaces -o=wide
diff --git a/docs/oom_user_guide.rst b/docs/oom_user_guide.rst
new file mode 100644 (file)
index 0000000..97b2fde
--- /dev/null
@@ -0,0 +1,581 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 Amdocs, Bell Canada
+
+.. Links
+.. _Curated applications for Kubernetes: https://github.com/kubernetes/charts
+.. _Services: https://kubernetes.io/docs/concepts/services-networking/service/
+.. _ReplicaSet: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
+.. _StatefulSet: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
+.. _Helm Documentation: https://docs.helm.sh/helm/
+.. _Helm: https://docs.helm.sh/
+.. _Kubernetes: https://Kubernetes.io/
+
+.. _user-guide-label:
+
+OOM User Guide
+##############
+
+The ONAP Operations Manager (OOM) provide the ability to manage the entire
+life-cycle of an ONAP installation, from the initial deployment to final
+decommissioning. This guide provides instructions for users of ONAP to
+use the Kubernetes_/Helm_ system as a complete ONAP management system.
+
+This guide provides many examples of Helm command line operations.  For a
+complete description of these commands please refer to the `Helm
+Documentation`_.
+
+.. figure:: oomLogoV2-medium.png
+   :align: right
+
+The following sections describe the life-cycle operations:
+
+- Deploy_ - with built-in component dependency management
+- Configure_ - unified configuration across all ONAP components
+- Monitor_ - real-time health monitoring feeding to a Consul UI and Kubernetes
+- Heal_- failed ONAP containers are recreated automatically
+- Scale_ - cluster ONAP services to enable seamless scaling
+- Upgrade_ - change-out containers or configuration with little or no service impact
+- Delete_ - cleanup individual containers or entire deployments
+
+.. figure:: oomLogoV2-Deploy.png
+   :align: right
+
+Deploy
+======
+
+The OOM team with assistance from the ONAP project teams, have built a
+comprehensive set of Helm charts, yaml files very similar to TOSCA files, that
+describe the composition of each of the ONAP components and the relationship
+within and between components. Using this model Helm is able to deploy all of
+ONAP this simple command::
+
+  > helm install osn/onap
+
+.. note::
+  The osn repo is not currently available so creation of a local repository is
+  required.
+
+Helm is able to use charts served up from a repository and comes setup with a
+default CNCF provided `Curated applications for Kubernetes`_ repository called
+stable which should be removed to avoid confusion::
+
+  > helm repo remove stable
+
+.. To setup the Open Source Networking Nexus repository for helm enter::
+..  > helm repo add osn 'https://nexus3.onap.org:10001/helm/helm-repo-in-nexus/master/'
+
+To prepare your system for an installation of ONAP, you'll need to::
+
+  > git clone http://gerrit.onap.org/r/oom
+  > cd kubernetes
+
+To setup a local Helm server to server up the ONAP charts::
+
+  > helm serve &
+
+Note the port number that is listed and use it in the Helm repo add as follows::
+
+  > helm repo add local http://127.0.0.1:8879
+
+To get a list of all of the available Helm chart repositories::
+
+  > helm repo list
+  NAME   URL
+  local  http://127.0.0.1:8879
+
+Then build your local Helm repository::
+
+  > make all
+
+The Helm search command reads through all of the repositories configured on the
+system, and looks for matches::
+
+  > helm search -l
+  NAME                    VERSION    DESCRIPTION
+  local/appc              2.0.0      Application Controller
+  local/clamp             2.0.0      ONAP Clamp
+  local/common            2.0.0      Common templates for inclusion in other charts
+  local/onap              2.0.0      Open Network Automation Platform (ONAP)
+  local/robot             2.0.0      A helm Chart for kubernetes-ONAP Robot
+  local/so                2.0.0      ONAP Service Orchestrator
+
+In any case, setup of the Helm repository is a one time activity.
+
+Once the repo is setup, installation of ONAP can be done with a single command::
+
+  > helm install local/onap -name development
+
+This will install ONAP from a local repository in a 'development' Helm release.
+As described below, to override the default configuration values provided by
+OOM, an environment file can be provided on the command line as follows::
+
+  > helm install local/onap -name development -f onap-development.yaml
+
+To get a summary of the status of all of the pods (containers) running in your
+deployment::
+
+  > kubectl get pods --all-namespaces -o=wide
+
+.. note::
+  The Kubernetes namespace concept allows for multiple instances of a component
+  (such as all of ONAP) to co-exist with other components in the same
+  Kubernetes cluster by isolating them entirely.  Namespaces share only the
+  hosts that form the cluster thus providing isolation between production and
+  development systems as an example.  The OOM deployment of ONAP in Beijing is
+  now done within a single Kubernetes namespace where in Amsterdam a namespace
+  was created for each of the ONAP components.
+
+.. note::
+  The Helm `-name` option refers to a release name and not a Kubernetes namespace.
+
+
+To install a specific version of a single ONAP component (`so` in this example)
+with the given name enter::
+
+  > helm install onap/so --version 2.0.1 -n so
+
+To display details of a specific resource or group of resources type::
+
+  > kubectl describe pod so-1071802958-6twbl
+
+where the pod identifier refers to the auto-generated pod identifier.
+
+.. figure:: oomLogoV2-Configure.png
+   :align: right
+
+Configure
+=========
+
+Each project within ONAP has its own configuration data generally consisting
+of: environment variables, configuration files, and database initial values.
+Many technologies are used across the projects resulting in significant
+operational complexity and an inability to apply global parameters across the
+entire ONAP deployment. OOM solves this problem by introducing a common
+configuration technology, Helm charts, that provide a hierarchical
+configuration configuration with the ability to override values with higher
+level charts or command line options.
+
+The structure of the configuration of ONAP is shown in the following diagram.
+Note that key/value pairs of a parent will always take precedence over those
+of a child. Also note that values set on the command line have the highest
+precedence of all.
+
+.. graphviz::
+
+   digraph config {
+      {
+         node     [shape=folder]
+         oValues  [label="values.yaml"]
+         demo     [label="onap-demo.yaml"]
+         prod     [label="onap-production.yaml"]
+         oReq     [label="requirements.yaml"]
+         soValues [label="values.yaml"]
+         soReq    [label="requirements.yaml"]
+         mdValues [label="values.yaml"]
+      }
+      {
+         oResources  [label="resources"]
+      }
+      onap -> oResources
+      onap -> oValues
+      oResources -> environments
+      oResources -> oReq
+      oReq -> so
+      environments -> demo
+      environments -> prod
+      so -> soValues
+      so -> soReq
+      so -> charts
+      charts -> mariadb
+      mariadb -> mdValues
+
+   }
+
+The top level onap/values.yaml file contains the values required to be set
+before deploying ONAP.  Here is the contents of this file:
+
+.. include:: onap_values.yaml
+   :code: yaml
+
+One may wish to create a value file that is specific to a given deployment such
+that it can be differentiated from other deployments.  For example, a
+onap-development.yaml file may create a minimal environment for development
+while onap-production.yaml might describe a production deployment that operates
+independently of the developer version.
+
+For example, if the production OpenStack instance was different from a
+developer's instance, the onap-production.yaml file may contain a different
+value for the vnfDeployment/openstack/oam_network_cidr key as shown below.
+
+.. code-block:: yaml
+
+  nsPrefix: onap
+  nodePortPrefix: 302
+  apps: consul msb mso message-router sdnc vid robot portal policy appc aai
+  sdc dcaegen2 log cli multicloud clamp vnfsdk aaf kube2msb
+  dataRootDir: /dockerdata-nfs
+
+  # docker repositories
+  repository:
+    onap: nexus3.onap.org:10001
+    oom: oomk8s
+    aai: aaionap
+    filebeat: docker.elastic.co
+
+  image:
+    pullPolicy: Never
+
+  # vnf deployment environment
+  vnfDeployment:
+    openstack:
+      ubuntu_14_image: "Ubuntu_14.04.5_LTS"
+      public_net_id: "e8f51956-00dd-4425-af36-045716781ffc"
+      oam_network_id: "d4769dfb-c9e4-4f72-b3d6-1d18f4ac4ee6"
+      oam_subnet_id: "191f7580-acf6-4c2b-8ec0-ba7d99b3bc4e"
+      oam_network_cidr: "192.168.30.0/24"
+  <...>
+
+
+To deploy ONAP with this environment file, enter::
+
+  > helm install local/onap -n beijing -f environments/onap-production.yaml
+
+.. include:: environments_onap_demo.yaml
+   :code: yaml
+
+When deploying all of ONAP a requirements.yaml file control which and what
+version of the ONAP components are included.  Here is an excerpt of this
+file:
+
+.. code-block:: yaml
+
+  # 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: so
+      version: ~2.0.0
+      repository: '@local'
+      condition: so.enabled
+  <...>
+
+The ~ operator in the `so` version value indicates that the latest "2.X.X"
+version of `so` shall be used thus allowing the chart to allow for minor
+upgrades that don't impact the so API; hence, version 2.0.1 will be installed
+in this case.
+
+The onap/resources/environment/onap-dev.yaml (see the excerpt below) enables
+for fine grained control on what components are included as part of this
+deployment. By changing this `so` line to `enabled: false` the `so` component
+will not be deployed.  If this change is part of an upgrade the existing `so`
+component will be shut down. Other `so` parameters and even `so` child values
+can be modified, for example the `so`'s `liveness` probe could be disabled
+(which is not recommended as this change would disable auto-healing of `so`).
+
+.. code-block:: yaml
+
+  #################################################################
+  # Global configuration overrides.
+  #
+  # These overrides will affect all helm charts (ie. applications)
+  # that are listed below and are 'enabled'.
+  #################################################################
+  global:
+  <...>
+
+  #################################################################
+  # Enable/disable and configure helm charts (ie. applications)
+  # to customize the ONAP deployment.
+  #################################################################
+  aaf:
+    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
+
+  <...>
+
+.. figure:: oomLogoV2-Monitor.png
+   :align: right
+
+Monitor
+=======
+
+All highly available systems include at least one facility to monitor the
+health of components within the system.  Such health monitors are often used as
+inputs to distributed coordination systems (such as etcd, zookeeper, or consul)
+and monitoring systems (such as nagios or zabbix). OOM provides two mechanims
+to monitor the real-time health of an ONAP deployment:
+
+- a Consul GUI for a human operator or downstream monitoring systems and
+  Kubernetes liveness probes that enable automatic healing of failed
+  containers, and
+- a set of liveness probes which feed into the Kubernetes manager which
+  are described in the Heal section.
+
+Within ONAP Consul is the monitoring system of choice and deployed by OOM in two parts:
+
+- a three-way, centralized Consul server cluster is deployed as a highly
+  available monitor of all of the ONAP components,and
+- a number of Consul agents.
+
+The Consul server provides a user interface that allows a user to graphically
+view the current health status of all of the ONAP components for which agents
+have been created - a sample from the ONAP Integration labs follows:
+
+.. figure:: consulHealth.png
+   :align: center
+
+To see the real-time health of a deployment go to: http://<kubernetes IP>:30270/ui/
+where a GUI much like the following will be found:
+
+
+.. figure:: oomLogoV2-Heal.png
+   :align: right
+
+Heal
+====
+
+The ONAP deployment is defined by Helm charts as mentioned earlier.  These Helm
+charts are also used to implement automatic recoverability of ONAP components
+when individual components fail. Once ONAP is deployed, a "liveness" probe
+starts checking the health of the components after a specified startup time.
+
+Should a liveness probe indicate a failed container it will be terminated and a
+replacement will be started in its place - containers are ephemeral. Should the
+deployment specification indicate that there are one or more dependencies to
+this container or component (for example a dependency on a database) the
+dependency will be satisfied before the replacement container/component is
+started. This mechanism ensures that, after a failure, all of the ONAP
+components restart successfully.
+
+To test healing, the following command can be used to delete a pod::
+
+  > kubectl delete pod [pod name] -n [pod namespace]
+
+One could then use the following command to monitor the pods and observe the
+pod being terminated and the service being automatically healed with the
+creation of a replacement pod::
+
+  > kubectl get pods --all-namespaces -o=wide
+
+.. figure:: oomLogoV2-Scale.png
+   :align: right
+
+Scale
+=====
+
+Many of the ONAP components are horizontally scalable which allows them to
+adapt to expected offered load.  During the Beijing release scaling is static,
+that is during deployment or upgrade a cluster size is defined and this cluster
+will be maintained even in the presence of faults. The parameter that controls
+the cluster size of a given component is found in the values.yaml file for that
+component.  Here is an excerpt that shows this parameter:
+
+.. code-block:: yaml
+
+  # default number of instances
+  replicaCount: 1
+
+In order to change the size of a cluster, an operator could use a helm upgrade
+(described in detail in the next section) as follows::
+
+  > helm upgrade --set replicaCount=3 onap/so/mariadb
+
+The ONAP components use Kubernetes provided facilities to build clustered,
+highly available systems including: Services_ with load-balancers, ReplicaSet_,
+and StatefulSet_.  Some of the open-source projects used by the ONAP components
+directly support clustered configurations, for example ODL and MariaDB Galera.
+
+The Kubernetes Services_ 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, SDN-C uses OpenDaylight clustering with a
+default cluster size of three but uses a Kubernetes service to and change the
+number of pods in this abstract this cluster from the other ONAP components
+such that the cluster could change size and this change is isolated from the
+other ONAP components by the load-balancer implemented in the ODL service
+abstraction.
+
+A ReplicaSet_ is a construct that is used to describe the desired state of the
+cluster.  For example 'replicas: 3' indicates to Kubernetes that a cluster of 3
+instances is the desired state.  Should one of the members of the cluster fail,
+a new member will be automatically started to replace it.
+
+Some of the ONAP components many need a more deterministic deployment; for
+example to enable intra-cluster communication. For these applications the
+component can be deployed as a Kubernetes StatefulSet_ which will maintain a
+persistent identifier for the pods and thus a stable network id for the pods.
+For example: the pod names might be web-0, web-1, web-{N-1} for N 'web' pods
+with corresponding DNS entries such that intra service communication is simple
+even if the pods are physically distributed across multiple nodes. An example
+of how these capabilities can be used is described in the Running Consul on
+Kubernetes tutorial.
+
+.. figure:: oomLogoV2-Upgrade.png
+   :align: right
+
+Upgrade
+=======
+
+Helm has built-in capabilities to enable the upgrade of pods without causing a
+loss of the service being provided by that pod or pods (if configured as a
+cluster).  As described in the OOM Developer's Guide, ONAP components provide
+an abstracted 'service' end point with the pods or containers providing this
+service hidden from other ONAP components by a load balancer. This capability
+is used during upgrades to allow a pod with a new image to be added to the
+service before removing the pod with the old image. This 'make before break'
+capability ensures minimal downtime.
+
+Prior to doing an upgrade, determine of the status of the deployed charts::
+
+  > helm list
+  NAME REVISION UPDATED                  STATUS    CHART     NAMESPACE
+  so   1        Mon Feb 5 10:05:22 2018  DEPLOYED  so-2.0.1  default
+
+When upgrading a cluster a parameter controls the minimum size of the cluster
+during the upgrade while another parameter controls the maximum number of nodes
+in the cluster.  For example, SNDC configured as a 3-way ODL cluster might
+require that during the upgrade no fewer than 2 pods are available at all times
+to provide service while no more than 5 pods are ever deployed across the two
+versions at any one time to avoid depleting the cluster of resources. In this
+scenario, the SDNC cluster would start with 3 old pods then Kubernetes may add
+a new pod (3 old, 1 new), delete one old (2 old, 1 new), add two new pods (2
+old, 3 new) and finally delete the 2 old pods (3 new).  During this sequence
+the constraints of the minimum of two pods and maximum of five would be
+maintained while providing service the whole time.
+
+Initiation of an upgrade is triggered by changes in the Helm charts.  For
+example, if the image specified for one of the pods in the SDNC deployment
+specification were to change (i.e. point to a new Docker image in the nexus3
+repository - commonly through the change of a deployment variable), the
+sequence of events described in the previous paragraph would be initiated.
+
+For example, to upgrade a container by changing configuration, specifically an
+environment value::
+
+  > helm upgrade beijing onap/so --version 2.0.1 --set enableDebug=true
+
+Issuing this command will result in the appropriate container being stopped by
+Kubernetes and replaced with a new container with the new environment value.
+
+To upgrade a component to a new version with a new configuration file enter::
+
+  > helm upgrade beijing onap/so --version 2.0.2 -f environments/demo.yaml
+
+To fetch release history enter::
+
+  > helm history so
+  REVISION UPDATED                  STATUS     CHART     DESCRIPTION
+  1        Mon Feb 5 10:05:22 2018  SUPERSEDED so-2.0.1  Install complete
+  2        Mon Feb 5 10:10:55 2018  DEPLOYED   so-2.0.2  Upgrade complete
+
+Unfortunately, not all upgrades are successful.  In recognition of this the
+lineup of pods within an ONAP deployment is tagged such that an administrator
+may force the ONAP deployment back to the previously tagged configuration or to
+a specific configuration, say to jump back two steps if an incompatibility
+between two ONAP components is discovered after the two individual upgrades
+succeeded.
+
+This rollback functionality gives the administrator confidence that in the
+unfortunate circumstance of a failed upgrade the system can be rapidly brought
+back to a known good state.  This process of rolling upgrades while under
+service is illustrated in this short YouTube video showing a Zero Downtime
+Upgrade of a web application while under a 10 million transaction per second
+load.
+
+For example, to roll-back back to previous system revision enter::
+
+  > helm rollback so 1
+
+  > helm history so
+  REVISION UPDATED                  STATUS     CHART     DESCRIPTION
+  1        Mon Feb 5 10:05:22 2018  SUPERSEDED so-2.0.1  Install complete
+  2        Mon Feb 5 10:10:55 2018  SUPERSEDED so-2.0.2  Upgrade complete
+  3        Mon Feb 5 10:14:32 2018  DEPLOYED   so-2.0.1  Rollback to 1
+
+.. note::
+
+  The description field can be overridden to document actions taken or include
+  tracking numbers.
+
+Many of the ONAP components contain their own databases which are used to
+record configuration or state information.  The schemas of these databases may
+change from version to version in such a way that data stored within the
+database needs to be migrated between versions. If such a migration script is
+available it can be invoked during the upgrade (or rollback) by Container
+Lifecycle Hooks. Two such hooks are available, PostStart and PreStop, which
+containers can access by registering a handler against one or both. Note that
+it is the responsibility of the ONAP component owners to implement the hook
+handlers - which could be a shell script or a call to a specific container HTTP
+endpoint - following the guidelines listed on the Kubernetes site. Lifecycle
+hooks are not restricted to database migration or even upgrades but can be used
+anywhere specific operations need to be taken during lifecycle operations.
+
+OOM uses Helm K8S package manager to deploy ONAP components. Each component is
+arranged in a packaging format called a chart - a collection of files that
+describe a set of k8s resources. Helm allows for rolling upgrades of the ONAP
+component deployed. To upgrade a component Helm release you will need an
+updated Helm chart. The chart might have modified, deleted or added values,
+deployment yamls, and more.  To get the release name use::
+
+  > helm ls
+
+To easily upgrade the release use::
+
+  > helm upgrade [RELEASE] [CHART]
+
+To roll back to a previous release version use::
+
+  > helm rollback [flags] [RELEASE] [REVISION]
+
+For example, to upgrade the onap-so helm release to the latest SO container
+release v1.1.2:
+
+- Edit so values.yaml which is part of the chart
+- Change "so: nexus3.onap.org:10001/openecomp/so:v1.1.1" to
+  "so: nexus3.onap.org:10001/openecomp/so:v1.1.2"
+- From the chart location run::
+
+  > helm upgrade onap-so
+
+The previous so pod will be terminated and a new so pod with an updated so
+container will be created.
+
+.. figure:: oomLogoV2-Delete.png
+   :align: right
+
+Delete
+======
+
+Existing deployments can be partially or fully removed once they are no longer
+needed.  To minimize errors it is recommended that before deleting components
+from a running deployment the operator perform a 'dry-run' to display exactly
+what will happen with a given command prior to actually deleting anything.  For
+example::
+
+  > helm delete --dry-run beijing
+
+will display the outcome of deleting the 'beijing' release from the deployment.
+To completely delete a release and remove it from the internal store enter::
+
+  > helm delete --purge beijing
+
+One can also remove individual components from a deployment by changing the
+ONAP configuration values.  For example, to remove `so` from a running
+deployment enter::
+
+  > helm upgrade beijing osn/onap --set so.enabled=false
+
+will remove `so` as the configuration indicates it's no longer part of the
+deployment. This might be useful if a one wanted to replace just `so` by
+installing a custom version.
index 5e83504..4962c82 100644 (file)
@@ -1,18 +1,35 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 PARENT_CHART := onap
 COMMON_CHARTS_DIR := common
-
 # 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 := $(COMMON_CHARTS_DIR) config oneclick readiness test dist $(PARENT_CHART) dcae
-HELM_CHARTS := $(COMMON_CHARTS_DIR) $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.))) $(PARENT_CHART)
+EXCLUDES := config oneclick readiness test dist helm $(PARENT_CHART) dcae
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.))) $(PARENT_CHART)
 
 .PHONY: $(EXCLUDES) $(HELM_CHARTS)
 
-all: $(HELM_CHARTS)
+all: $(COMMON_CHARTS_DIR) $(HELM_CHARTS)
+
+$(COMMON_CHARTS):
+       @echo "\n[$@]"
+       @make package-$@
 
 $(HELM_CHARTS):
        @echo "\n[$@]"
@@ -30,10 +47,23 @@ lint-%: dep-%
 package-%: lint-%
        @mkdir -p $(PACKAGE_DIR)
        @if [ -f $*/Chart.yaml ]; then helm package -d $(PACKAGE_DIR) $*; fi
+       @helm repo index $(PACKAGE_DIR)
 
 clean:
        @rm -f */requirements.lock
        @rm -f *tgz */charts/*tgz
-       @rm -rf $(PACKAGE_DIR)
+       @rm -rf $(PACKAGE_DIR)/*
+
+# start up a local helm repo to serve up helm chart packages
+repo:
+       @mkdir -p $(PACKAGE_DIR)
+       @helm serve --repo-path $(PACKAGE_DIR) &
+       @helm repo index $(PACKAGE_DIR)
+       @helm repo add local http://127.0.0.1:8879
+
+# stop local helm repo
+repo-stop:
+       @pkill helm
+       @helm repo remove local
 %:
-       @:
\ No newline at end of file
+       @:
index dc49e54..9c315cb 100644 (file)
@@ -1,78 +1,87 @@
-## **Quick Start Guide - ONAP on Kubernetes**
+## **Quick Start Guide**
 
 
-This is a quick start guide to help you get started on ONAP installation. Creating an ONAP deployment instance requires creating base configuration on the host node and then deploying the runtime containers.
+This is a quick start guide describing how to deploy ONAP on Kubernetes using Helm.
 
 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.
-
-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.
-
-
-#### **Deploying multiple ONAP instances within the same Kubernetes cluster**
-
-To deploy multiple ONAP instances, you must specify the number of Instances you would like to create in a Kubernetes cluster using createAllbash.
-
-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.
-
-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:
-
--  'onap' refers to the name of the instance.
-
--  \91i 2\92 refers to the number of instances of an ONAP deployment in the cluster.
-
-#### **To delete a deployed instance**
+### **Deploy ONAP Instance**
+
+Step 1. Clone the OOM repository from ONAP gerrit:
+
+```
+> git clone http://gerrit.onap.org/r/oom
+> cd oom/kubernetes
+```
+
+Step 2. Customize the oom/kubernetes/onap parent chart, like the values.yaml file, to suit your deployment. You may want to selectively enable or disable ONAP components by changing the subchart **enabled** flags to *true* or *false*.
+```
+Example:
+...
+robot: # Robot Health Check
+  enabled: true
+sdc:
+  enabled: false
+sdnc:
+  enabled: false
+so: # Service Orchestrator
+  enabled: true
+...
+```
+
+Step 3. To setup a local Helm repository to serve up the local ONAP charts:
+```
+> helm serve &
+```
+Note the port number that is listed and use it in the Helm repo add as follows:
+```
+> helm repo add local http://127.0.0.1:8879
+```
+
+Step 4. Build a local Helm repository (from the kubernetes directory):
+```
+> make all
+```
+
+Step 5. Display the charts that are available to be deployed:
+```
+> helm search -l
+NAME                    VERSION    DESCRIPTION
+local/appc              2.0.0      Application Controller
+local/clamp             2.0.0      ONAP Clamp
+local/onap              2.0.0      Open Network Automation Platform (ONAP)
+local/robot             2.0.0      A helm Chart for kubernetes-ONAP Robot
+local/so                2.0.0      ONAP Service Orchestrator
+...
+```
+
+**Note:**
+Setup of this Helm repository is a one time activity. If you make changes to your deployment charts or values be sure to use **make** to update your local Helm repository.
+
+Step 6. Once the repo is setup, installation of ONAP can be done with a single command:
+```
+> helm install local/onap -name dev --namespace onap
+```
+**Note:** the **--namespace onap** is currently required while all onap helm charts are migrated to version 2.0. After this activity is complete, namespaces will be optional.
+
+Use the following to monitor your deployment and determine when ONAP is ready for use:
+```
+> kubectl get pods --all-namespaces -o=wide
+```
+
+
+#### **Cleanup deployed ONAP instance**
 
 To delete a deployed instance, use the following command:
+```
+> helm del dev --purge
+```
 
-> oom/kubernetes/oneclick/deleteAll.bash -n onap
 
-**Note:** Deleting the runtime containers does not remove the configuration created in step 2.
 
 For more information on OOM project documentation, refer to:
 
diff --git a/kubernetes/README_HELM b/kubernetes/README_HELM
deleted file mode 100644 (file)
index 0f65120..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Prerequisites:
-- K8s
-- Helm
-
-In order to use Helm with Rancher, check the tiller version installed
-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.
-
-charts were tested with the following setup:
-  Rancher Release v1.6.7
-  k8s version 1.7.2
-  Helm/Tiller version v2.3.0
-also tested on:
-  k8s version v1.5.2
-  Helm/Tiller v2.6.0
-
-Download Helm:
-https://github.com/kubernetes/helm
index 60e4370..24cb7fd 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: aaf
index b6e494d..f89ccec 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableAafAaf }}
 apiVersion: v1
 kind: ConfigMap
index 817f876..7f8cdb6 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableAafAafCs }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index c084cd3..0341344 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableAafAaf }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 4b6984a..842d0c4 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableAafAafCs }}
 apiVersion: v1
 kind: Secret
index 0a06d1d..5ccbd25 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableAafAafCs }}
 apiVersion: v1
 kind: Service
index eac5d00..088adfe 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302
index 2046a10..5b36e11 100644 (file)
@@ -1,4 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
-description: A Helm chart for Kubernetes
+description: ONAP Active and Available Inventory
 name: aai
-version: 0.1.0
+version: 2.0.0
diff --git a/kubernetes/aai/charts/aai-data-router/.helmignore b/kubernetes/aai/charts/aai-data-router/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/aai/charts/aai-data-router/Chart.yaml b/kubernetes/aai/charts/aai-data-router/Chart.yaml
new file mode 100644 (file)
index 0000000..59d3c77
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP AAI Data-Router
+name: aai-data-router
+version: 2.0.0
@@ -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.{{.Values.nsPrefix}}:3904"/>
+  <from uri="event-bus:mybus/?eventTopic=AAI-EVENT&amp;groupName=datarouter&amp;groupId=datarouter&amp;url=http://dmaap.{{.Release.Namespace}}:3904"/>
   <to uri="bean:entityEventPolicy?method=process"/>
 </route>
diff --git a/kubernetes/aai/charts/aai-data-router/templates/configmap.yaml b/kubernetes/aai/charts/aai-data-router/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..a8793ac
--- /dev/null
@@ -0,0 +1,48 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-prop
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/data-router.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-model-v8
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/model/aai_oxm_v8.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-model-v9
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/model/aai_oxm_v9.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-model-v10
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/model/aai_oxm_v10.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-model-v11
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/model/aai_oxm_v11.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-dynamic
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/dynamic/routes/entity-event.route").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/dynamic/conf/entity-event-policy.xml").AsConfig . | indent 2 }}
diff --git a/kubernetes/aai/charts/aai-data-router/templates/deployment.yaml b/kubernetes/aai/charts/aai-data-router/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..79bcff3
--- /dev/null
@@ -0,0 +1,154 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+    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.global.dockerhubRepository | default .Values.dockerhubRepository }}/{{ .Values.global.busyboxImage | default .Values.busyboxImage }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: init-sysctl
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /logroot/
+      containers:
+      - name: {{ include "common.name" . }}
+        image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: SERVICE_BEANS
+          value: /opt/app/data-router/dynamic/conf
+        - name: CONFIG_HOME
+          value: /opt/app/data-router/config/
+        - name: KEY_STORE_PASSWORD
+          value: {{ .Values.config.keyStorePassword }}
+        - name: DYNAMIC_ROUTES
+          value: /opt/app/data-router/dynamic/routes
+        - name: KEY_MANAGER_PASSWORD
+          value: {{ .Values.config.keyManagerPassword }}
+        - name: PATH
+          value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+        - name: JAVA_HOME
+          value: usr/lib/jvm/java-8-openjdk-amd64
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - mountPath: /opt/app/data-router/config/model/aai_oxm_v8.xml
+          subPath: aai_oxm_v8.xml
+          name: {{ include "common.fullname" . }}-model-v8
+        - mountPath: /opt/app/data-router/config/model/aai_oxm_v9.xml
+          subPath: aai_oxm_v9.xml
+          name: {{ include "common.fullname" . }}-model-v9
+        - mountPath: /opt/app/data-router/config/model/aai_oxm_v10.xml
+          subPath: aai_oxm_v10.xml
+          name: {{ include "common.fullname" . }}-model-v10
+        - mountPath: /opt/app/data-router/config/model/aai_oxm_v11.xml
+          subPath: aai_oxm_v11.xml
+          name: {{ include "common.fullname" . }}-model-v11
+        - mountPath:  /opt/app/data-router/config/auth
+          name: {{ include "common.fullname" . }}-auth
+        - mountPath:  /opt/app/data-router/config/data-router.properties
+          name: {{ include "common.fullname" . }}-properties
+          subPath: data-router.properties
+        - mountPath: /opt/app/data-router/dynamic/routes/entity-event.route
+          subPath: entity-event.route
+          name: {{ include "common.fullname" . }}-dynamic-route
+        - mountPath: /opt/app/data-router/dynamic/conf/entity-event-policy.xml
+          subPath: entity-event-policy.xml
+          name: {{ include "common.fullname" . }}-dynamic-policy
+        - mountPath: /logs/
+          name: {{ include "common.fullname" . }}-logs
+        ports:
+        - containerPort: {{ .Values.service.internalPort }}
+        {{- 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 }}
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: {{ include "common.fullname" . }}-model-v8
+        configMap:
+          name: {{ include "common.fullname" . }}-model-v8
+      - name: {{ include "common.fullname" . }}-model-v9
+        configMap:
+          name: {{ include "common.fullname" . }}-model-v9
+      - name: {{ include "common.fullname" . }}-model-v10
+        configMap:
+          name: {{ include "common.fullname" . }}-model-v10
+      - name: {{ include "common.fullname" . }}-model-v11
+        configMap:
+          name: {{ include "common.fullname" . }}-model-v11
+      - name: {{ include "common.fullname" . }}-auth
+        secret:
+          secretName: {{ include "common.fullname" . }}
+      - name: {{ include "common.fullname" . }}-properties
+        configMap:
+          name: {{ include "common.fullname" . }}-prop
+      - name: {{ include "common.fullname" . }}-dynamic-route
+        configMap:
+          name: {{ include "common.fullname" . }}-dynamic
+      - name: {{ include "common.fullname" . }}-dynamic-policy
+        configMap:
+          name: {{ include "common.fullname" . }}-dynamic
+      - name: {{ include "common.fullname" . }}-logs
+        hostPath:
+          path: {{ .Values.persistence.mountPath }}/{{ include "common.namespace" . }}/{{ .Values.persistence.mountSubPath }}
+      restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aai/charts/aai-data-router/templates/secret.yaml b/kubernetes/aai/charts/aai-data-router/templates/secret.yaml
new file mode 100644 (file)
index 0000000..69bd3f8
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/auth/*").AsSecrets . | indent 2 }}
diff --git a/kubernetes/aai/charts/aai-data-router/values.yaml b/kubernetes/aai/charts/aai-data-router/values.yaml
new file mode 100644 (file)
index 0000000..3957df1
--- /dev/null
@@ -0,0 +1,86 @@
+# Default values for data-router.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global: # global defaults
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
+
+# application image
+repository: nexus3.onap.org:10001
+image: onap/data-router:v1.1.0
+pullPolicy: Always
+restartPolicy: Always
+
+# application configuration
+config:
+  keyStorePassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
+  keyManagerPassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
+
+
+# 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:
+  name: aai-data-router
+  internalPort: 9502
+
+ingress:
+  enabled: false
+
+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: aai/data-router/logs
+
+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/aai/charts/aai-elasticsearch/.helmignore b/kubernetes/aai/charts/aai-elasticsearch/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/aai/charts/aai-elasticsearch/Chart.yaml b/kubernetes/aai/charts/aai-elasticsearch/Chart.yaml
new file mode 100644 (file)
index 0000000..348e4fa
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP AAI elasticsearch
+name: aai-elasticsearch
+version: 2.0.0
@@ -155,14 +155,14 @@ network.bind_host: 0.0.0.0
 
 
 # Set a custom port for the node to node communication (9300 by default):
-transport.tcp.port: 8443
+transport.tcp.port: {{ .Values.config.tcpPort }}
 
 # Enable compression for all communication between nodes (disabled by default):
 transport.tcp.compress: false
 
 # Set a custom port to listen for HTTP traffic:
 # http.port: 9200
-http.port: 9200
+http.port: {{ .Values.service.internalPort }}
 
 # Set a custom allowed content length:
 # http.max_content_length: 100mb
diff --git a/kubernetes/aai/charts/aai-elasticsearch/templates/configmap.yaml b/kubernetes/aai/charts/aai-elasticsearch/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..991a06a
--- /dev/null
@@ -0,0 +1,23 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#{{ if not .Values.disableAaiElasticsearch }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/elasticsearch.yml").AsConfig . | indent 2 }}
+#{{ end }}
diff --git a/kubernetes/aai/charts/aai-elasticsearch/templates/deployment.yaml b/kubernetes/aai/charts/aai-elasticsearch/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..6792d4c
--- /dev/null
@@ -0,0 +1,96 @@
+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 }}
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+      name: {{ include "common.name" . }}
+    spec:
+      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.global.dockerhubRepository | default .Values.dockerhubRepository }}/{{ .Values.global.busyboxImage | default .Values.busyboxImage }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: init-sysctl
+        volumeMounts:
+        - name: elasticsearch-data
+          mountPath: /logroot/
+      hostname: {{ include "common.name" . }}
+      containers:
+      - name: {{ include "common.name" . }}
+        image: {{ .Values.global.dockerhubRepository | default .Values.dockerhubRepository }}/{{ .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 }}
+        volumeMounts:
+          - name: localtime
+            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
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- end }}
+
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: elasticsearch-config
+        configMap:
+          name: {{ include "common.fullname" . }}
+      - name: elasticsearch-data
+        hostPath:
+          path: {{ .Values.persistence.mountPath }}/{{ include "common.namespace" . }}/{{ .Values.persistence.mountSubPath }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aai/charts/aai-elasticsearch/templates/service.yaml b/kubernetes/aai/charts/aai-elasticsearch/templates/service.yaml
new file mode 100644 (file)
index 0000000..84548ed
--- /dev/null
@@ -0,0 +1,25 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.name" . }}
+  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 .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.fullname" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
diff --git a/kubernetes/aai/charts/aai-elasticsearch/values.yaml b/kubernetes/aai/charts/aai-elasticsearch/values.yaml
new file mode 100644 (file)
index 0000000..af7fd3d
--- /dev/null
@@ -0,0 +1,84 @@
+# Default values for elasticsearch.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global: # global defaults
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
+# application image
+dockerhubRepository: docker.io
+image: elasticsearch:2.4.1
+pullPolicy: Always
+
+# application configuration
+config:
+  tcpPort: 8443
+
+
+# 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: ClusterIP
+  name: aai-elasticsearch
+  internalPort: 9200
+
+ingress:
+  enabled: false
+
+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: aai/elasticsearch/data
+
+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/aai/charts/aai-hbase/.helmignore b/kubernetes/aai/charts/aai-hbase/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/aai/charts/aai-hbase/Chart.yaml b/kubernetes/aai/charts/aai-hbase/Chart.yaml
new file mode 100644 (file)
index 0000000..eaf6bbd
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP AAI hbase
+name: aai-hbase
+version: 2.0.0
diff --git a/kubernetes/aai/charts/aai-hbase/templates/deployment.yaml b/kubernetes/aai/charts/aai-hbase/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..4c92dfd
--- /dev/null
@@ -0,0 +1,72 @@
+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 }}
+      name: {{ include "common.name" . }}
+    spec:
+      hostname: aai-hbase
+      containers:
+      - name: {{ include "common.name" . }}
+        image: {{ .Values.global.dockerhubRepository | default .Values.dockerhubRepository }}/{{ .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 }}
+        - containerPort: {{ .Values.service.internalPort6 }}
+        - containerPort: {{ .Values.service.internalPort7 }}
+        # 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 }}
+        volumeMounts:
+        - name: hbase-data
+          mountPath: /tmp
+        - name: localtime
+          mountPath: /etc/localtime
+          readOnly: true
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- end }}
+
+      volumes:
+      - name: hbase-data
+        hostPath:
+          path: {{ .Values.persistence.mountPath }}/{{ include "common.namespace" . }}/{{ .Values.persistence.mountSubPath }}
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aai/charts/aai-hbase/templates/service.yaml b/kubernetes/aai/charts/aai-hbase/templates/service.yaml
new file mode 100644 (file)
index 0000000..c503e6c
--- /dev/null
@@ -0,0 +1,55 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.name" . }}
+  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 .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.name }}
+  - port: {{ .Values.service.internalPort2 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+    name: {{ .Values.service.name }}2
+  - port: {{ .Values.service.internalPor3t }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }}
+    name: {{ .Values.service.name }}3
+  - port: {{ .Values.service.internalPort4 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort4 }}
+    name: {{ .Values.service.name }}4
+  - port: {{ .Values.service.internalPort5 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort5 }}
+    name: {{ .Values.service.name }}5
+  - port: {{ .Values.service.internalPort6 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort6 }}
+    name: {{ .Values.service.name }}6
+  - port: {{ .Values.service.internalPort7 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort7 }}
+    name: {{ .Values.service.name }}7
+  {{- else -}}
+  - port: {{ .Values.service.internalPort }}
+    name: {{ .Values.service.name }}
+  - port: {{ .Values.service.internalPort2 }}
+    name: {{ .Values.service.name }}2
+  - port: {{ .Values.service.internalPort3 }}
+    name: {{ .Values.service.name }}3
+  - port: {{ .Values.service.internalPort4 }}
+    name: {{ .Values.service.name }}4
+  - port: {{ .Values.service.internalPort5 }}
+    name: {{ .Values.service.name }}5
+  - port: {{ .Values.service.internalPort6 }}
+    name: {{ .Values.service.name }}6
+  - port: {{ .Values.service.internalPort7 }}
+    name: {{ .Values.service.name }}7
+  {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
diff --git a/kubernetes/aai/charts/aai-hbase/values.yaml b/kubernetes/aai/charts/aai-hbase/values.yaml
new file mode 100644 (file)
index 0000000..f1d0c33
--- /dev/null
@@ -0,0 +1,92 @@
+# Default values for hbase.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global: # global defaults
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
+
+# application image
+dockerhubRepository: registry.hub.docker.com
+image: aaionap/hbase:1.2.0
+pullPolicy: Always
+
+# application configuration
+config: {}
+
+
+# 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: ClusterIP
+  name: aai-hbase
+  internalPort: 2181
+  internalPort2: 8080
+  internalPort3: 8085
+  internalPort4: 9090
+  internalPort5: 16000
+  internalPort6: 16010
+  internalPort7: 16201
+
+
+ingress:
+  enabled: false
+
+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: aai/hbase
+
+  
+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/aai/charts/aai-modelloader/.helmignore b/kubernetes/aai/charts/aai-modelloader/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/aai/charts/aai-modelloader/Chart.yaml b/kubernetes/aai/charts/aai-modelloader/Chart.yaml
new file mode 100644 (file)
index 0000000..33558f2
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP AAI modelloader
+name: aai-modelloader
+version: 2.0.0
@@ -1,6 +1,6 @@
 # Model Loader Distribution Client Configuration
 ml.distribution.ACTIVE_SERVER_TLS_AUTH=false
-ml.distribution.ASDC_ADDRESS=sdc-be.{{.Values.nsPrefix}}:8443
+ml.distribution.ASDC_ADDRESS=sdc-be.{{.Release.Namespace}}: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.{{.Values.nsPrefix}}:8443
+ml.aai.BASE_URL=https://aai.{{.Release.Namespace}}: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/aai/charts/aai-modelloader/templates/configmap.yaml b/kubernetes/aai/charts/aai-modelloader/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..8b63cfa
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-prop
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/model-loader.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }}
diff --git a/kubernetes/aai/charts/aai-modelloader/templates/deployment.yaml b/kubernetes/aai/charts/aai-modelloader/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..38ebe76
--- /dev/null
@@ -0,0 +1,97 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+    spec:
+      containers:
+      - name: {{ include "common.name" . }}
+        image: {{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: CONFIG_HOME
+          value: /opt/app/model-loader/config/
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - mountPath: /opt/app/model-loader/config/model-loader.properties
+          subPath: model-loader.properties
+          name: {{ include "common.fullname" . }}-prop-config
+        - mountPath: /opt/app/model-loader/config/auth/
+          name: {{ include "common.fullname" . }}-auth-config
+        - mountPath: /var/log/onap
+          name: {{ include "common.fullname" . }}-logs
+        - mountPath: /opt/app/model-loader/bundleconfig/etc/logback.xml
+          name: {{ include "common.fullname" . }}-log-conf
+          subPath: logback.xml
+        ports:
+        - containerPort: {{ .Values.service.internalPort }}
+        - containerPort: {{ .Values.service.internalPort2 }}
+
+      # 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
+          subPath: filebeat.yml
+          name: filebeat-conf
+        - mountPath: /var/log/onap
+          name: {{ include "common.fullname" . }}-logs
+        - mountPath: /usr/share/filebeat/data
+          name: aai-filebeat
+
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: {{ include "common.fullname" . }}-prop-config
+        configMap:
+          name: {{ include "common.fullname" . }}-prop
+      - name: {{ include "common.fullname" . }}-auth-config
+        secret:
+          secretName: {{ include "common.fullname" . }}
+      - name: filebeat-conf
+        configMap:
+          name: aai-filebeat
+      - name: {{ include "common.fullname" . }}-logs
+        emptyDir: {}
+      - name: aai-filebeat
+        emptyDir: {}
+      - name: {{ include "common.fullname" . }}-log-conf
+        configMap:
+         name: {{ include "common.fullname" . }}-log
+      restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aai/charts/aai-modelloader/templates/secret.yaml b/kubernetes/aai/charts/aai-modelloader/templates/secret.yaml
new file mode 100644 (file)
index 0000000..69bd3f8
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/auth/*").AsSecrets . | indent 2 }}
diff --git a/kubernetes/aai/charts/aai-modelloader/templates/service.yaml b/kubernetes/aai/charts/aai-modelloader/templates/service.yaml
new file mode 100644 (file)
index 0000000..bd59edb
--- /dev/null
@@ -0,0 +1,29 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.name" . }}
+  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 .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.name }}
+  - port: {{ .Values.service.internalPort2 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+    name: {{ .Values.service.name }}2
+  {{- else -}}
+  - port: {{ .Values.service.internalPort }}
+    name: {{ .Values.service.name }}
+  - port: {{ .Values.service.internalPort2 }}
+    name: {{ .Values.service.name }}2
+  {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/aai/charts/aai-modelloader/values.yaml b/kubernetes/aai/charts/aai-modelloader/values.yaml
new file mode 100644 (file)
index 0000000..f44d524
--- /dev/null
@@ -0,0 +1,67 @@
+# Default values for modelloader.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global: # global defaults
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
+
+# application image
+repository: nexus3.onap.org:10001
+image: onap/model-loader:v1.1.0
+pullPolicy: Always
+restartPolicy: Always
+
+# application configuration
+config: {}
+
+# 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: aai-modelloader
+  externalPort: 8080
+  internalPort: 8080
+  nodePort: 10
+  externalPort2: 8443
+  internalPort2: 8443
+  nodePort2: 29
+
+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/aai/charts/aai-resources/.helmignore b/kubernetes/aai/charts/aai-resources/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/aai/charts/aai-resources/Chart.yaml b/kubernetes/aai/charts/aai-resources/Chart.yaml
new file mode 100644 (file)
index 0000000..3ab5c1a
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP AAI resources
+name: aai-resources
+version: 2.0.0
diff --git a/kubernetes/aai/charts/aai-resources/templates/configmap.yaml b/kubernetes/aai/charts/aai-resources/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..97c720a
--- /dev/null
@@ -0,0 +1,7 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }}
diff --git a/kubernetes/aai/charts/aai-resources/templates/deployment.yaml b/kubernetes/aai/charts/aai-resources/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..6aef447
--- /dev/null
@@ -0,0 +1,527 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+      annotations:
+        msb.onap.org/service-info: '[
+          {
+              "serviceName": "_aai-cloudInfrastructure",
+              "version": "v11",
+              "url": "/aai/v11/cloud-infrastructure",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v11/cloud-infrastructure"
+          },
+          {
+              "serviceName": "_aai-cloudInfrastructure",
+              "version": "v12",
+              "url": "/aai/v12/cloud-infrastructure",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v12/cloud-infrastructure"
+          },
+          {
+              "serviceName": "_aai-cloudInfrastructure",
+              "version": "v13",
+              "url": "/aai/v13/cloud-infrastructure",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v13/cloud-infrastructure"
+          },
+          {
+              "serviceName": "_aai-business",
+              "version": "v11",
+              "url": "/aai/v11/business",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v11/business"
+          },
+          {
+              "serviceName": "_aai-business",
+              "version": "v12",
+              "url": "/aai/v12/business",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v12/business"
+          },
+          {
+              "serviceName": "_aai-business",
+              "version": "v13",
+              "url": "/aai/v13/business",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v13/business"
+          },
+          {
+              "serviceName": "_aai-actions",
+              "version": "v11",
+              "url": "/aai/v11/actions",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v11/actions"
+          },
+          {
+              "serviceName": "_aai-actions",
+              "version": "v12",
+              "url": "/aai/v12/actions",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v12/actions"
+          },
+          {
+              "serviceName": "_aai-actions",
+              "version": "v13",
+              "url": "/aai/v13/actions",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v13/actions"
+          },
+          {
+              "serviceName": "_aai-service-design-and-creation",
+              "version": "v11",
+              "url": "/aai/v11/service-design-and-creation",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v11/service-design-and-creation"
+          },
+          {
+              "serviceName": "_aai-service-design-and-creation",
+              "version": "v12",
+              "url": "/aai/v12/service-design-and-creation",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v12/service-design-and-creation"
+          },
+          {
+              "serviceName": "_aai-service-design-and-creation",
+              "version": "v13",
+              "url": "/aai/v13/service-design-and-creation",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v13/service-design-and-creation"
+          },
+          {
+              "serviceName": "_aai-network",
+              "version": "v11",
+              "url": "/aai/v11/network",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v11/network"
+          },
+          {
+              "serviceName": "_aai-network",
+              "version": "v12",
+              "url": "/aai/v12/network",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v12/network"
+          },
+          {
+              "serviceName": "_aai-network",
+              "version": "v13",
+              "url": "/aai/v13/network",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v13/network"
+          },
+          {
+              "serviceName": "_aai-externalSystem",
+              "version": "v11",
+              "url": "/aai/v11/external-system",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v11/external-system"
+          },      
+          {
+              "serviceName": "_aai-externalSystem",
+              "version": "v12",
+              "url": "/aai/v12/external-system",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v12/external-system"
+          },      
+          {
+              "serviceName": "_aai-externalSystem",
+              "version": "v13",
+              "url": "/aai/v13/external-system",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v13/external-system"
+          },
+          {
+              "serviceName": "aai-cloudInfrastructure",
+              "version": "v11",
+              "url": "/aai/v11/cloud-infrastructure",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-cloudInfrastructure",
+              "version": "v12",
+              "url": "/aai/v12/cloud-infrastructure",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-cloudInfrastructure",
+              "version": "v13",
+              "url": "/aai/v13/cloud-infrastructure",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-business",
+              "version": "v11",
+              "url": "/aai/v11/business",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-business",
+              "version": "v12",
+              "url": "/aai/v12/business",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-business",
+              "version": "v13",
+              "url": "/aai/v13/business",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-actions",
+              "version": "v11",
+              "url": "/aai/v11/actions",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-actions",
+              "version": "v12",
+              "url": "/aai/v12/actions",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-actions",
+              "version": "v13",
+              "url": "/aai/v13/actions",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-service-design-and-creation",
+              "version": "v11",
+              "url": "/aai/v11/service-design-and-creation",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-service-design-and-creation",
+              "version": "v12",
+              "url": "/aai/v12/service-design-and-creation",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-service-design-and-creation",
+              "version": "v13",
+              "url": "/aai/v13/service-design-and-creation",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-network",
+              "version": "v11",
+              "url": "/aai/v11/network",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-network",
+              "version": "v12",
+              "url": "/aai/v12/network",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-network",
+              "version": "v13",
+              "url": "/aai/v13/network",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-externalSystem",
+              "version": "v11",
+              "url": "/aai/v11/external-system",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },      
+          {
+              "serviceName": "aai-externalSystem",
+              "version": "v12",
+              "url": "/aai/v12/external-system",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },      
+          {
+              "serviceName": "aai-externalSystem",
+              "version": "v13",
+              "url": "/aai/v13/external-system",
+              "protocol": "REST",
+              "port": "8447",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          }
+          ]'
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - aai-hbase
+        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: {{ include "common.name" . }}
+        image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: CHEF_BRANCH
+          value: master
+        - name: AAI_CHEF_ENV
+          value: simpledemo
+        - name: AAI_CORE_VERSION
+          value: {{ .Values.config.aaicoreversion }}
+        - name: AAI_CHEF_LOC
+          value: /var/chef/aai-data/environments
+        - name: CHEF_GIT_URL
+          value: http://gerrit.onap.org/r/aai
+        - name: HBASE_STARTUP_ARTIFICIAL_DELAY
+          value: "60"
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - 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
+        - mountPath: /opt/app/aai-resources/bundleconfig/etc/logback.xml
+          name: aai-resources-log-conf
+          subPath: logback.xml
+        ports:
+        - containerPort: {{ .Values.service.internalPort }}
+        - containerPort: {{ .Values.service.internalPort2 }}
+        # disable liveness probe when breakpoints set in debugger
+        # so K8s doesn't restart unresponsive container
+        {{ if .Values.liveness.enabled }}
+        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 }}
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- 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
+          subPath: filebeat.yml
+          name: filebeat-conf
+        - mountPath: /var/log/onap
+          name: aai-resources-logs
+        - mountPath: /usr/share/filebeat/data
+          name: aai-resources-filebeat
+
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: aai-chef-config
+        configMap:
+          name: aai-chef-config
+      - name: aai-data
+        configMap:
+          name: aai-resources-environments
+      - name: filebeat-conf
+        configMap:
+          name: aai-filebeat
+      - name: aai-resources-logs
+        emptyDir: {}
+      - name: aai-resources-filebeat
+        emptyDir: {}
+      - name: aai-resources-log-conf
+        configMap:
+         name: {{ include "common.fullname" . }}
+      restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aai/charts/aai-resources/templates/service.yaml b/kubernetes/aai/charts/aai-resources/templates/service.yaml
new file mode 100644 (file)
index 0000000..8cea86c
--- /dev/null
@@ -0,0 +1,30 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.name" . }}
+  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 .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.name }}
+  - port: {{ .Values.service.internalPort2 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+    name: {{ .Values.service.name }}2
+  {{- else -}}
+  - port: {{ .Values.service.internalPort }}
+    name: {{ .Values.service.name }}
+  - port: {{ .Values.service.internalPort2 }}
+    name: {{ .Values.service.name }}2
+  {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
diff --git a/kubernetes/aai/charts/aai-resources/values.yaml b/kubernetes/aai/charts/aai-resources/values.yaml
new file mode 100644 (file)
index 0000000..f72e299
--- /dev/null
@@ -0,0 +1,68 @@
+# Default values for resources.
+# 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.1.0
+
+
+# application image
+repository: nexus3.onap.org:10001
+image: openecomp/aai-resources:v1.1.0
+pullPolicy: Always
+restartPolicy: Always
+
+# application configuration
+config:
+  aaicoreversion: 1.1.0-SNAPSHOT
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 60
+  periodSeconds: 60
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: false
+
+readiness:
+  initialDelaySeconds: 60
+  periodSeconds: 10
+
+
+service:
+  type: ClusterIP
+  name: aai-resources
+  internalPort: 8447
+  internalPort2: 5005
+
+
+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/aai/charts/aai-search-data/.helmignore b/kubernetes/aai/charts/aai-search-data/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/aai/charts/aai-search-data/Chart.yaml b/kubernetes/aai/charts/aai-search-data/Chart.yaml
new file mode 100644 (file)
index 0000000..da911ab
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP AAI search-data
+name: aai-search-data
+version: 2.0.0
diff --git a/kubernetes/aai/charts/aai-search-data/resources/config/elastic-search.properties b/kubernetes/aai/charts/aai-search-data/resources/config/elastic-search.properties
new file mode 100644 (file)
index 0000000..532a9fb
--- /dev/null
@@ -0,0 +1,5 @@
+# ElasticSearch Configuration
+
+es.cluster-name=ES_AAI
+es.ip-address=aai-elasticsearch.{{.Release.Namespace}}
+es.http-port={{ .Values.config.elasticsearchHttpPort }}
diff --git a/kubernetes/aai/charts/aai-search-data/templates/configmap.yaml b/kubernetes/aai/charts/aai-search-data/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..0715f0d
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-service-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }}
diff --git a/kubernetes/aai/charts/aai-search-data/templates/deployment.yaml b/kubernetes/aai/charts/aai-search-data/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..beaee7d
--- /dev/null
@@ -0,0 +1,137 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+    spec:
+      containers:
+      - name: {{ include "common.name" . }}
+        image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: CONFIG_HOME
+          value: /opt/app/search-data-service/config/
+        - name: KEY_STORE_PASSWORD
+          value: {{ .Values.config.keyStorePassword }}
+        - name: KEY_MANAGER_PASSWORD
+          value: {{ .Values.config.keyManagerPassword }}
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - mountPath: /opt/app/search-data-service/config/filter-config.json
+          subPath: filter-config.json
+          name: {{ include "common.fullname" . }}-service-config
+        - mountPath: /opt/app/search-data-service/config/elastic-search.properties
+          subPath: elastic-search.properties
+          name: {{ include "common.fullname" . }}-service-config
+        - mountPath: /opt/app/search-data-service/config/analysis-config.json
+          subPath: filter-config.json
+          name: {{ include "common.fullname" . }}-service-config
+        - mountPath: /opt/app/search-data-service/config/auth/tomcat_keystore
+          subPath: tomcat_keystore
+          name: {{ include "common.fullname" . }}-service-auth-config
+        - mountPath: /opt/app/search-data-service/config/auth/search_policy.json
+          subPath: search_policy.json
+          name: {{ include "common.fullname" . }}-search-policy-config
+        - mountPath: /var/log/onap
+          name: {{ include "common.fullname" . }}-service-logs
+        - mountPath: /opt/app/search-data-service/bundleconfig/etc/logback.xml
+          name: {{ include "common.fullname" . }}-service-log-conf
+          subPath: logback.xml
+        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 }}
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- 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
+          subPath: filebeat.yml
+          name: filebeat-conf
+        - mountPath: /var/log/onap
+          name: {{ include "common.fullname" . }}-service-logs
+        - mountPath: /usr/share/filebeat/data
+          name: {{ include "common.fullname" . }}-service-filebeat
+
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: {{ include "common.fullname" . }}-service-config
+        configMap:
+          name: {{ include "common.fullname" . }}
+      - name: {{ include "common.fullname" . }}-service-auth-config
+        secret:
+          secretName: {{ include "common.fullname" . }}-keystone
+      - name: {{ include "common.fullname" . }}-search-policy-config
+        secret:
+          secretName: {{ include "common.fullname" . }}-policy
+      - name: filebeat-conf
+        configMap:
+          name: aai-filebeat
+      - name: {{ include "common.fullname" . }}-service-logs
+        emptyDir: {}
+      - name: {{ include "common.fullname" . }}-service-filebeat
+        emptyDir: {}
+      - name: {{ include "common.fullname" . }}-service-log-conf
+        configMap:
+         name: {{ include "common.fullname" . }}-service-log
+      restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aai/charts/aai-search-data/templates/secret.yaml b/kubernetes/aai/charts/aai-search-data/templates/secret.yaml
new file mode 100644 (file)
index 0000000..33b058f
--- /dev/null
@@ -0,0 +1,16 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}-keystone
+  namespace: {{ include "common.namespace" . }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/auth/tomcat_keystore").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}-policy
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/auth/search_policy.json").AsSecrets . | indent 2 }}
diff --git a/kubernetes/aai/charts/aai-search-data/templates/service.yaml b/kubernetes/aai/charts/aai-search-data/templates/service.yaml
new file mode 100644 (file)
index 0000000..41bc163
--- /dev/null
@@ -0,0 +1,25 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.name" . }}
+  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 .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.name }}
+  {{- else -}}
+  - port: {{ .Values.service.internalPort }}
+    name: {{ .Values.service.name }}
+  {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
diff --git a/kubernetes/aai/charts/aai-search-data/values.yaml b/kubernetes/aai/charts/aai-search-data/values.yaml
new file mode 100644 (file)
index 0000000..e7bfa6b
--- /dev/null
@@ -0,0 +1,68 @@
+# Default values for search-data.
+# 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.1.0
+
+
+# application image
+repository: nexus3.onap.org:10001
+image: onap/search-data-service:v1.1.0
+pullPolicy: Always
+restartPolicy: Always
+
+# application configuration
+config:
+  elasticsearchHttpPort: 9200
+  keyStorePassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
+  keyManagerPassword: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
+
+
+# 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: ClusterIP
+  name: aai-search-data
+  internalPort: 9509
+
+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/aai/charts/aai-sparky-be/.helmignore b/kubernetes/aai/charts/aai-sparky-be/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/aai/charts/aai-sparky-be/Chart.yaml b/kubernetes/aai/charts/aai-sparky-be/Chart.yaml
new file mode 100644 (file)
index 0000000..4d8a3a4
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP AAI sparky-be
+name: aai-sparky-be
+version: 2.0.0
@@ -6,7 +6,7 @@
 #
 # The ip address/hostname and port to the desired AAI instance
 #
-aai.rest.host=aai-service.{{.Values.nsPrefix}}
+aai.rest.host=aai.{{.Release.Namespace}}
 aai.rest.port=8443
 
 ############################## REST ##############################
@@ -7,8 +7,8 @@
 # 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=aai-elasticsearch.{{.Values.nsPrefix}}
-elasticsearch.httpPort=9200
+elasticsearch.ipAddress=aai-elasticsearch.{{.Release.Namespace}}
+elasticsearch.httpPort={{ .Values.config.elasticsearchHttpPort }}
 elasticsearch.javaApiPort=8443
 
 ############################## Indexes ##############################
@@ -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.{{.Values.nsPrefix}}:8989/ONAPPORTAL/auxapi
+ecomp_rest_url = http://portalapps.{{.Release.Namespace}}:8989/ONAPPORTAL/auxapi
 
 # Standard global logon page
-ecomp_redirect_url = http://portalapps.{{.Values.nsPrefix}}:8989/ONAPPORTAL/login.htm
+ecomp_redirect_url = http://portalapps.{{.Release.Namespace}}:8989/ONAPPORTAL/login.htm
 
 # Name of cookie to extract on login request
 csp_cookie_name = EPService
@@ -6,7 +6,7 @@
 #
 # The ip address/hostname and port to the desired Search Data Service instance
 #
-search-service.ipAddress=search-data-service.{{.Values.nsPrefix}}
+search-service.ipAddress=aai-search-data.{{.Release.Namespace}}
 search-service.httpPort=9509
 
 ############################## Indexes ##############################
diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..68fa1e4
--- /dev/null
@@ -0,0 +1,31 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-model
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/model/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-portal
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/portal/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }}
diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..278a327
--- /dev/null
@@ -0,0 +1,149 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+    spec:
+      containers:
+      - name: {{ include "common.name" . }}
+        image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: CONFIG_HOME
+          value: /opt/app/sparky/config/
+        - name: KEY_MANAGER_PASSWORD
+          value: {{ .Values.config.keyManagerPassword }}
+        - name: KEY_STORE_PASSWORD
+          value: {{ .Values.config.keyStorePassword }}
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - mountPath: /opt/app/sparky/config/auth/
+          name: {{ include "common.fullname" . }}-auth-config
+        - mountPath: /opt/app/sparky/config/synchronizer.properties
+          subPath: synchronizer.properties
+          name: {{ include "common.fullname" . }}-config
+        - mountPath: /opt/app/sparky/config/suggestive-search.properties
+          subPath: suggestive-search.properties
+          name: {{ include "common.fullname" . }}-config
+        - mountPath: /opt/app/sparky/config/search-service.properties
+          subPath: search-service.properties
+          name: {{ include "common.fullname" . }}-config
+        - mountPath: /opt/app/sparky/config/roles.config
+          subPath: roles.config
+          name: {{ include "common.fullname" . }}-config
+        - mountPath: /opt/app/sparky/config/elasticsearch.properties
+          subPath: elasticsearch.properties
+          name: {{ include "common.fullname" . }}-config
+        - mountPath: /opt/app/sparky/config/aai.properties
+          subPath: aai.properties
+          name: {{ include "common.fullname" . }}-config
+        - mountPath: /opt/app/sparky/config/model/
+          name: {{ include "common.fullname" . }}-model-config
+        - mountPath: /opt/app/sparky/config/portal/
+          name: {{ include "common.fullname" . }}-portal-config
+        - mountPath: /var/log/onap
+          name: {{ include "common.fullname" . }}-logs
+        - mountPath: /opt/app/sparky/bundleconfig/etc/logback.xml
+          name: {{ include "common.fullname" . }}-log-conf
+          subPath: logback.xml
+        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 }}
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- 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
+          subPath: filebeat.yml
+          name: filebeat-conf
+        - mountPath: /var/log/onap
+          name: {{ include "common.fullname" . }}-logs
+        - mountPath: /usr/share/filebeat/data
+          name: aai-sparky-filebeat
+
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: {{ include "common.fullname" . }}-config
+        configMap:
+          name: {{ include "common.fullname" . }}
+      - name: {{ include "common.fullname" . }}-model-config
+        configMap:
+          name: {{ include "common.fullname" . }}-model
+      - name: {{ include "common.fullname" . }}-portal-config
+        configMap:
+          name: {{ include "common.fullname" . }}-portal
+      - name: {{ include "common.fullname" . }}-auth-config
+        secret:
+          secretName: {{ include "common.fullname" . }}
+      - name: filebeat-conf
+        configMap:
+          name: aai-filebeat
+      - name: {{ include "common.fullname" . }}-logs
+        emptyDir: {}
+      - name: aai-sparky-filebeat
+        emptyDir: {}
+      - name: {{ include "common.fullname" . }}-log-conf
+        configMap:
+         name: {{ include "common.fullname" . }}-log
+      restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/secret.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/secret.yaml
new file mode 100644 (file)
index 0000000..69bd3f8
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/auth/*").AsSecrets . | indent 2 }}
diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/service.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/service.yaml
new file mode 100644 (file)
index 0000000..41bc163
--- /dev/null
@@ -0,0 +1,25 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.name" . }}
+  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 .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.name }}
+  {{- else -}}
+  - port: {{ .Values.service.internalPort }}
+    name: {{ .Values.service.name }}
+  {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
diff --git a/kubernetes/aai/charts/aai-sparky-be/values.yaml b/kubernetes/aai/charts/aai-sparky-be/values.yaml
new file mode 100644 (file)
index 0000000..34be1be
--- /dev/null
@@ -0,0 +1,70 @@
+# Default values for sparky-be.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global: # global defaults
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
+
+# application image
+repository: nexus3.onap.org:10001
+image: onap/sparky-be:v1.1.0
+pullPolicy: Always
+restartPolicy: Always
+
+# application configuration
+config:
+  elasticsearchHttpPort: 9200
+  keyStorePassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
+  keyManagerPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
+
+# override chart name (sparky-be) to share a common namespace
+# suffix with parent chart (aai)
+nsSuffix: aai
+
+
+# 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: ClusterIP
+  name: aai-sparky-be
+  internalPort: 9517
+
+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/aai/charts/aai-traversal/.helmignore b/kubernetes/aai/charts/aai-traversal/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/aai/charts/aai-traversal/Chart.yaml b/kubernetes/aai/charts/aai-traversal/Chart.yaml
new file mode 100644 (file)
index 0000000..8f79b42
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP AAI traversal
+name: aai-traversal
+version: 2.0.0
diff --git a/kubernetes/aai/charts/aai-traversal/templates/configmap.yaml b/kubernetes/aai/charts/aai-traversal/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..a7e9428
--- /dev/null
@@ -0,0 +1,7 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }}
diff --git a/kubernetes/aai/charts/aai-traversal/templates/deployment.yaml b/kubernetes/aai/charts/aai-traversal/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..b4249ae
--- /dev/null
@@ -0,0 +1,357 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+      annotations:
+        msb.onap.org/service-info: '[
+          {
+              "serviceName": "_aai-generic-query",
+              "version": "v11",
+              "url": "/aai/v11/search/generic-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v11/search/generic-query"
+          },
+          {
+              "serviceName": "_aai-generic-query",
+              "version": "v12",
+              "url": "/aai/v12/search/generic-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v12/search/generic-query"
+          },
+          {
+              "serviceName": "_aai-generic-query",
+              "version": "v13",
+              "url": "/aai/v13/search/generic-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v13/search/generic-query"
+          },
+          {
+              "serviceName": "_aai-nodes-query",
+              "version": "v11",
+              "url": "/aai/v11/search/nodes-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v11/search/nodes-query"
+          },
+          {
+              "serviceName": "_aai-nodes-query",
+              "version": "v12",
+              "url": "/aai/v12/search/nodes-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v12/search/nodes-query"
+          },
+          {
+              "serviceName": "_aai-nodes-query",
+              "version": "v13",
+              "url": "/aai/v13/search/nodes-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v13/search/nodes-query"
+          },
+          {
+              "serviceName": "_aai-query",
+              "version": "v11",
+              "url": "/aai/v11/query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v11/query"
+          },
+          {
+              "serviceName": "_aai-query",
+              "version": "v12",
+              "url": "/aai/v12/query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v12/query"
+          },
+          {
+              "serviceName": "_aai-query",
+              "version": "v13",
+              "url": "/aai/v13/query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/v13/query"
+          },
+          {
+              "serviceName": "_aai-named-query",
+              "url": "/aai/search",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1",
+              "path": "/aai/search"
+          },
+          {
+              "serviceName": "aai-generic-query",
+              "version": "v11",
+              "url": "/aai/v11/search/generic-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-generic-query",
+              "version": "v12",
+              "url": "/aai/v12/search/generic-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-generic-query",
+              "version": "v13",
+              "url": "/aai/v13/search/generic-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-nodes-query",
+              "version": "v11",
+              "url": "/aai/v11/search/nodes-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-nodes-query",
+              "version": "v12",
+              "url": "/aai/v12/search/nodes-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-nodes-query",
+              "version": "v13",
+              "url": "/aai/v13/search/nodes-query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-query",
+              "version": "v11",
+              "url": "/aai/v11/query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-query",
+              "version": "v12",
+              "url": "/aai/v12/query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-query",
+              "version": "v13",
+              "url": "/aai/v13/query",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          },
+          {
+              "serviceName": "aai-named-query",
+              "url": "/aai/search",
+              "protocol": "REST",
+              "port": "8446",
+              "enable_ssl": true,
+              "lb_policy":"ip_hash",
+              "visualRange": "1"
+          }
+          ]'
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - aai-resources
+        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: {{ include "common.name" . }}
+        image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: CHEF_BRANCH
+          value: master
+        - name: AAI_CHEF_ENV
+          value: simpledemo
+        - name: AAI_CORE_VERSION
+          value: {{ .Values.config.aaicoreversion }}
+        - name: AAI_CHEF_LOC
+          value: /var/chef/aai-data/environments
+        - name: CHEF_GIT_URL
+          value: http://gerrit.onap.org/r/aai
+        - name: RESOURCES_HOSTNAME
+          value: aai-resources.{{ include "common.namespace" . }}
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - 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
+        - mountPath: /opt/app/aai-traversal/bundleconfig/etc/logback.xml
+          name: aai-traversal-log-conf
+          subPath: logback.xml
+        ports:
+        - containerPort: {{ .Values.service.internalPort }}
+        - containerPort: {{ .Values.service.internalPort2 }}
+        # disable liveness probe when breakpoints set in debugger
+        # so K8s doesn't restart unresponsive container
+        {{ if .Values.liveness.enabled }}
+        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 }}
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- 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
+          subPath: filebeat.yml
+          name: filebeat-conf
+        - mountPath: /var/log/onap
+          name: aai-traversal-logs
+        - mountPath: /usr/share/filebeat/data
+          name: aai-traversal-filebeat
+
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: aai-chef-config
+        configMap:
+          name: aai-chef-config
+      - name: aai-data
+        configMap:
+          name: aai-resources-environments
+      - name: filebeat-conf
+        configMap:
+          name: aai-filebeat
+      - name: aai-traversal-logs
+        emptyDir: {}
+      - name: aai-traversal-filebeat
+        emptyDir: {}
+      - name: aai-traversal-log-conf
+        configMap:
+         name: {{ include "common.fullname" . }}-log
+      restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aai/charts/aai-traversal/templates/service.yaml b/kubernetes/aai/charts/aai-traversal/templates/service.yaml
new file mode 100644 (file)
index 0000000..8cea86c
--- /dev/null
@@ -0,0 +1,30 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.name" . }}
+  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 .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.name }}
+  - port: {{ .Values.service.internalPort2 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+    name: {{ .Values.service.name }}2
+  {{- else -}}
+  - port: {{ .Values.service.internalPort }}
+    name: {{ .Values.service.name }}
+  - port: {{ .Values.service.internalPort2 }}
+    name: {{ .Values.service.name }}2
+  {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
diff --git a/kubernetes/aai/charts/aai-traversal/values.yaml b/kubernetes/aai/charts/aai-traversal/values.yaml
new file mode 100644 (file)
index 0000000..1764033
--- /dev/null
@@ -0,0 +1,67 @@
+# Default values for traversal.
+# 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.1.0
+
+
+# application image
+repository: nexus3.onap.org:10001
+image: openecomp/aai-traversal:v1.1.0
+pullPolicy: Always
+restartPolicy: Always
+
+# application configuration
+config:
+  aaicoreversion: 1.1.0-SNAPSHOT
+
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 60
+  periodSeconds: 60
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: false
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+service:
+  type: ClusterIP
+  name: aai-traversal
+  internalPort: 8446
+  internalPort2: 5005
+
+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/aai/requirements.yaml b/kubernetes/aai/requirements.yaml
new file mode 100644 (file)
index 0000000..56029ab
--- /dev/null
@@ -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
index 7b299f7..9795975 100644 (file)
                "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-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_SERVER_URL_BASE": "https:/aai.{{.Release.Namespace}}:8443/aai/",
+               "AAI_SERVER_URL": "https:/aai.{{.Release.Namespace}}:8443/aai/v11/",
+               "AAI_GLOBAL_CALLBACK_URL": "https:/aai.{{.Release.Namespace}}: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.{{.Values.nsPrefix}}",
+               "APPLICATION_SERVERS": "aai.{{.Release.Namespace}}",
                "AAI_DMAAP_PROTOCOL": "http",
-               "AAI_DMAAP_HOST_PORT": "dmaap.{{.Values.nsPrefix}}:3904",
+               "AAI_DMAAP_HOST_PORT": "dmaap.{{.Release.Namespace}}:3904",
                "AAI_DMAAP_TOPIC_NAME": "AAI-EVENT",
                "AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS": "UNPROCESSED",
                "AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE": "AAI-EVENT",
                "AAI_NOTIFICATION_CURRENT_VERSION": "v11",
                "RESOURCE_VERSION_ENABLE_FLAG": "true",
                "TXN_HBASE_TABLE_NAME": "aailogging.dev",
-               "TXN_ZOOKEEPER_QUORUM": "hbase.{{.Values.nsPrefix}}",
+               "TXN_ZOOKEEPER_QUORUM": "aai-hbase.{{.Release.Namespace}}",
                "TXN_ZOOKEEPER_PROPERTY_CLIENTPORT": "2181",
                "TXN_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase",
                "AAI_WORKLOAD_PREFERRED_ROUTE_KEY": "MR1",
-               "STORAGE_HOSTNAME": "hbase.{{.Values.nsPrefix}}",
+               "STORAGE_HOSTNAME": "aai-hbase.{{.Release.Namespace}}",
                "STORAGE_HBASE_TABLE": "aaigraph.dev",
                "STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase",
                "DB_CACHE_CLEAN_WAIT": "20",
                "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.{{.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_SERVER_URL_BASE": "https:/aai.{{.Release.Namespace}}:8443/aai/",
+               "AAI_SERVER_URL": "https:/aai.{{.Release.Namespace}}:8443/aai/v11/",
+               "AAI_GLOBAL_CALLBACK_URL": "https:/aai.{{.Release.Namespace}}: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.{{.Values.nsPrefix}}",
+               "APPLICATION_SERVERS": "aai.{{.Release.Namespace}}",
                "AAI_DMAAP_PROTOCOL": "http",
-               "AAI_DMAAP_HOST_PORT": "dmaap.{{.Values.nsPrefix}}:3904",
+               "AAI_DMAAP_HOST_PORT": "dmaap.{{.Release.Namespace}}:3904",
                "AAI_DMAAP_TOPIC_NAME": "AAI-EVENT",
                "AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_STATUS": "UNPROCESSED",
                "AAI_NOTIFICATION_EVENT_DEFAULT_EVENT_TYPE": "AAI-EVENT",
                "AAI_NOTIFICATION_CURRENT_VERSION": "v11",
                "RESOURCE_VERSION_ENABLE_FLAG": "true",
                "TXN_HBASE_TABLE_NAME": "aailogging.dev",
-               "TXN_ZOOKEEPER_QUORUM": "hbase.{{.Values.nsPrefix}}",
+               "TXN_ZOOKEEPER_QUORUM": "aai-hbase.{{.Release.Namespace}}",
                "TXN_ZOOKEEPER_PROPERTY_CLIENTPORT": "2181",
                "TXN_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase",
                "AAI_WORKLOAD_PREFERRED_ROUTE_KEY": "MR1",
-               "STORAGE_HOSTNAME": "hbase.{{.Values.nsPrefix}}",
+               "STORAGE_HOSTNAME": "aai-hbase.{{.Release.Namespace}}",
                "STORAGE_HBASE_TABLE": "aaigraph.dev",
                "STORAGE_HBASE_ZOOKEEPER_ZNODE_PARENT": "/hbase",
                "DB_CACHE_CLEAN_WAIT": "20",
index 6e6f489..b9721ae 100644 (file)
@@ -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.{{.Values.nsPrefix}}  aai-resources.{{.Values.nsPrefix}}:8447  port 8447 ssl verify none
+        server aai-resources.{{.Release.Namespace}} aai-resources.{{.Release.Namespace}}: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.{{.Values.nsPrefix}} aai-traversal.{{.Values.nsPrefix}}:8446  port 8446 ssl verify none
+        server aai-traversal.{{.Release.Namespace}} aai-traversal.{{.Release.Namespace}}:8446  port 8446 ssl verify none
 
 listen IST_AAI_STATS
         mode http
@@ -118,4 +118,3 @@ listen IST_AAI_STATS
         stats show-legends
         stats show-desc IST AAI APPLICATION NODES
         stats admin if TRUE
-
index 89c6932..b0d4690 100644 (file)
@@ -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.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
diff --git a/kubernetes/aai/resources/config/search-data-service/appconfig/elastic-search.properties b/kubernetes/aai/resources/config/search-data-service/appconfig/elastic-search.properties
deleted file mode 100644 (file)
index c19667a..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# ElasticSearch Configuration
-
-es.cluster-name=ES_AAI
-es.ip-address=aai-elasticsearch.{{.Values.nsPrefix}}
-es.http-port=9200
diff --git a/kubernetes/aai/templates/aai-deployment-configmap.yaml b/kubernetes/aai/templates/aai-deployment-configmap.yaml
deleted file mode 100644 (file)
index 6684555..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index db6da64..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-#{{ if not .Values.disableAaiAaiService }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: aai-service
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.aaiServiceReplicas }}
-  selector:
-    matchLabels:
-      app: aai-service
-  template:
-    metadata:
-      labels:
-        app: aai-service
-      name: aai-service
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - aai-resources
-        - --container-name
-        - aai-traversal
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: aai-service-readiness
-      containers:
-      - name: aai-service
-        image: "{{ .Values.image.aaiProxy }}:{{ .Values.image.aaiProxyVersion}}"
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: /etc/localtime
-          name: localtime
-          readOnly: true
-        - mountPath: /dev/log
-          name: aai-service-log
-        - mountPath: /usr/local/etc/haproxy/haproxy.cfg
-          subPath: haproxy.cfg
-          name: haproxy-cfg
-        ports:
-        - containerPort: 8080
-        - containerPort: 8443
-        readinessProbe:
-          tcpSocket:
-            port: 8443
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      volumes:
-        - name: localtime
-          hostPath:
-            path: /etc/localtime
-        - name: aai-service-log
-          hostPath:
-            path: "/dev/log"
-        - name: haproxy-cfg
-          configMap:
-            name: aai-deployment-configmap
-      restartPolicy: Always
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/aai/templates/aai-filebeat-configmap.yaml b/kubernetes/aai/templates/aai-filebeat-configmap.yaml
deleted file mode 100644 (file)
index 2ca1ac2..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index c07214d..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#{{ if not .Values.disableAaiAaiResources }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: aai-resources
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.aaiResourceReplicas }}
-  selector:
-    matchLabels:
-      app: aai-resources
-  template:
-    metadata:
-      labels:
-        app: aai-resources
-      name: aai-resources
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - hbase
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: aai-resources-readiness
-      containers:
-      - name: aai-resources
-        image: "{{ .Values.image.aaiResourcesImage }}:{{ .Values.image.aaiResourcesVersion}}"
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        env:
-        - name: CHEF_BRANCH
-          value: master
-        - name: AAI_CHEF_ENV
-          value: simpledemo
-        - name: AAI_CORE_VERSION
-          value: 1.1.0-SNAPSHOT
-        - name: AAI_CHEF_LOC
-          value: /var/chef/aai-data/environments
-        - name: CHEF_GIT_URL
-          value: http://gerrit.onap.org/r/aai
-        - name: HBASE_STARTUP_ARTIFICIAL_DELAY
-          value: "60"
-        volumeMounts:
-        - mountPath: /etc/localtime
-          name: localtime
-          readOnly: true
-        - 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
-        - mountPath: /opt/app/aai-resources/bundleconfig/etc/logback.xml
-          name: aai-resources-log-conf
-          subPath: logback.xml
-        ports:
-        - containerPort: 8447
-        readinessProbe:
-          tcpSocket:
-            port: 8447
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      - name: filebeat-onap-aai-resources
-        image: {{ .Values.image.filebeat }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: /usr/share/filebeat/filebeat.yml
-          subPath: filebeat.yml
-          name: filebeat-conf
-        - mountPath: /var/log/onap
-          name: aai-resources-logs
-        - mountPath: /usr/share/filebeat/data
-          name: aai-resources-filebeat
-      volumes:
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - name: aai-chef-config
-        configMap:
-          name: aai-chef-config-configmap
-      - name: aai-data
-        configMap:
-          name: aai-resources-environments-configmap
-      - name: filebeat-conf
-        configMap:
-          name: aai-filebeat-configmap
-      - name: aai-resources-logs
-        emptyDir: {}
-      - name: aai-resources-filebeat
-        emptyDir: {}
-      - name: aai-resources-log-conf
-        configMap:
-         name: aai-resources-log-configmap
-      restartPolicy: Always
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml b/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml
deleted file mode 100644 (file)
index cdcaae6..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index 84a0d0f..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#{{ if not .Values.disableAaiAaiTraversal }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: aai-traversal
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.aaiTraversalReplicas }}
-  selector:
-    matchLabels:
-      app: aai-traversal
-  template:
-    metadata:
-      labels:
-        app: aai-traversal
-      name: aai-traversal
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - hbase
-        - --container-name
-        - aai-resources
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: aai-traversal-readiness
-      containers:
-      - name: aai-traversal
-        image: "{{ .Values.image.aaiTraversalImage }}:{{ .Values.image.aaiTraversalVersion }}"
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        env:
-        - name: CHEF_BRANCH
-          value: master
-        - name: AAI_CHEF_ENV
-          value: simpledemo
-        - name: AAI_CORE_VERSION
-          value: 1.1.0-SNAPSHOT
-        - name: AAI_CHEF_LOC
-          value: /var/chef/aai-data/environments
-        - name: CHEF_GIT_URL
-          value: http://gerrit.onap.org/r/aai
-        - name: RESOURCES_HOSTNAME
-          value: aai-resources.{{ .Values.nsPrefix }}
-        volumeMounts:
-        - mountPath: /etc/localtime
-          name: localtime
-          readOnly: true
-        - 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
-        - mountPath: /opt/app/aai-traversal/bundleconfig/etc/logback.xml
-          name: aai-traversal-log-conf
-          subPath: logback.xml
-        ports:
-        - containerPort: 8446
-        readinessProbe:
-          tcpSocket:
-            port: 8446
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      - name: filebeat-onap-aai-traversal
-        image: {{ .Values.image.filebeat }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: /usr/share/filebeat/filebeat.yml
-          subPath: filebeat.yml
-          name: filebeat-conf
-        - mountPath: /var/log/onap
-          name: aai-traversal-logs
-        - mountPath: /usr/share/filebeat/data
-          name: aai-traversal-filebeat
-      volumes:
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - name: aai-chef-config
-        configMap:
-          name: aai-chef-config-configmap
-      - name: aai-data
-        configMap:
-          name: aai-resources-environments-configmap
-      - name: filebeat-conf
-        configMap:
-          name: aai-filebeat-configmap
-      - name: aai-traversal-logs
-        emptyDir: {}
-      - name: aai-traversal-filebeat
-        emptyDir: {}
-      - name: aai-traversal-log-conf
-        configMap:
-         name: aai-traversal-log-configmap
-      restartPolicy: Always
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/aai/templates/all-services.yaml b/kubernetes/aai/templates/all-services.yaml
deleted file mode 100644 (file)
index 01f24a7..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-#{{ if not .Values.disableAaiHbase }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: hbase
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: hbase
-spec:
-  ports:
-  - name: "hbase-port-1"
-    port: 2181
-  - name: "hbase-port-2"
-    port: 8080
-  - name: "hbase-port-3"
-    port: 8085
-  - name: "hbase-port-4"
-    port: 9090
-  - name: "hbase-port-5"
-    port: 16000
-  - name: "hbase-port-6"
-    port: 16010
-  - name: "hbase-port-7"
-    port: 16201
-  selector:
-    app: hbase
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableAaiAaiService }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: aai-service
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: aai-service
-  annotations:
-    msb.onap.org/service-info: '[
-      {
-          "serviceName": "aai-cloudInfrastructure",
-          "version": "v11",
-          "url": "/aai/v11/cloud-infrastructure",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1"
-      },
-      {
-          "serviceName": "aai-cloudInfrastructure-deprecated",
-          "version": "v11",
-          "url": "/aai/v11/cloud-infrastructure",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1",
-          "path": "/aai/v11/cloud-infrastructure"
-      },
-      {
-          "serviceName": "aai-business",
-          "version": "v11",
-          "url": "/aai/v11/business",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1"
-      },
-      {
-          "serviceName": "aai-business-deprecated",
-          "version": "v11",
-          "url": "/aai/v11/business",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1",
-          "path": "/aai/v11/business"
-      },
-      {
-          "serviceName": "aai-search",
-          "version": "v11",
-          "url": "/aai/v11/search",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1"
-      },
-      {
-          "serviceName": "aai-search-deprecated",
-          "version": "v11",
-          "url": "/aai/v11/search",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1",
-          "path": "/aai/v11/search"
-      },
-      {
-          "serviceName": "aai-actions",
-          "version": "v11",
-          "url": "/aai/v11/actions",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1"
-      },
-      {
-          "serviceName": "aai-actions-deprecated",
-          "version": "v11",
-          "url": "/aai/v11/actions",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1",
-          "path": "/aai/v11/actions"
-      },
-      {
-          "serviceName": "aai-service-design-and-creation",
-          "version": "v11",
-          "url": "/aai/v11/service-design-and-creation",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1"
-      },
-      {
-          "serviceName": "aai-service-design-and-creation-deprecated",
-          "version": "v11",
-          "url": "/aai/v11/service-design-and-creation",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1",
-          "path": "/aai/v11/service-design-and-creation"
-      },
-      {
-          "serviceName": "aai-network",
-          "version": "v11",
-          "url": "/aai/v11/network",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1"
-      },
-      {
-          "serviceName": "aai-network-deprecated",
-          "version": "v11",
-          "url": "/aai/v11/network",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1",
-          "path": "/aai/v11/network"
-      },
-      {
-          "serviceName": "aai-externalSystem",
-          "version": "v11",
-          "url": "/aai/v11/external-system",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1"
-      },
-      {
-          "serviceName": "aai-externalSystem-deprecated",
-          "version": "v11",
-          "url": "/aai/v11/external-system",
-          "protocol": "REST",
-          "port": "8443",
-          "enable_ssl": true,
-          "visualRange": "1",
-          "path": "/aai/v11/external-system"
-      }
-      ]'
-spec:
-  ports:
-  - name: "aai-service-port-8443"
-    port: 8443
-    targetPort: 8443
-    nodePort: {{ .Values.nodePortPrefix }}33
-  - name: "aai-service-port-8080"
-    port: 8080
-    targetPort: 8080
-    nodePort: {{ .Values.nodePortPrefix }}32
-  type: NodePort
-  selector:
-    app: aai-service
-  clusterIP: {{ .Values.aaiServiceClusterIp }}
-#{{ end }}
-#{{ if not .Values.disableAaiModelLoaderService }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: model-loader-service
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: model-loader-service
-spec:
-  ports:
-  - name: "model-loader-service-port-8443"
-    port: 8443
-    nodePort: {{ .Values.nodePortPrefix }}29
-  - name: "model-loader-service-port-8080"
-    port: 8080
-    nodePort: {{ .Values.nodePortPrefix }}10
-  type: NodePort
-  selector:
-    app: model-loader-service
-#{{ end }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: gremlin
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: gremlin
-spec:
-  ports:
-  - name: "gremlin-port"
-    port: 8182
-  selector:
-    app: gremlin
-  clusterIP: None
-#{{ if not .Values.disableAaiElasticsearch }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: aai-elasticsearch
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: aai-elasticsearch
-spec:
-  ports:
-  - name: "aai-elasticsearch-port"
-    port: 9200
-  selector:
-    app: aai-elasticsearch
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableAaiSearchDataService }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: search-data-service
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: search-data-service
-spec:
-  ports:
-  - name: "search-data-service-port-9509"
-    port: 9509
-  selector:
-    app: search-data-service
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableAaiAaiTraversal }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: aai-traversal
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: aai-traversal
-spec:
-  ports:
-  - name: "aai-traversal-port-8446"
-    port: 8446
-  - name: aai-traversal-port-debug
-    port: 5005
-  selector:
-    app: aai-traversal
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableAaiAaiResources }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: aai-resources
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: aai-resources
-spec:
-  ports:
-  - name: "aai-resources-port-8447"
-    port: 8447
-  - name: aai-resources-port-debug
-    port: 5005
-  selector:
-    app: aai-resources
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableAaiSparkyBe }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: sparky-be
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: sparky-be
-spec:
-  ports:
-  - name: "sparky-be-port-9517"
-    port: 9517
-  selector:
-    app: sparky-be
-  clusterIP: None
-#{{ end }}
diff --git a/kubernetes/aai/templates/configmap.yaml b/kubernetes/aai/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..78235bc
--- /dev/null
@@ -0,0 +1,35 @@
+# this is a shared resource for subcharts
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: aai-filebeat
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: aai-deployment-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/haproxy/*").AsConfig . | indent 2 }}
+---
+# this is a shared resource for subcharts
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: aai-chef-config
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/aai-data/chef-config/dev/.knife/solo.rb").AsConfig . | indent 2 }}
+---
+# this is a shared resource for subcharts
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: aai-resources-environments
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/aai-data/environments/*").AsConfig . | indent 2 }}
+
diff --git a/kubernetes/aai/templates/data-router-configmap.yaml b/kubernetes/aai/templates/data-router-configmap.yaml
deleted file mode 100644 (file)
index 3de38a7..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index 610ecb6..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-#{{ if not .Values.disableAaiDataRouter }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: aai-data-router
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.dataRouterReplicas }}
-  selector:
-    matchLabels:
-      app: aai-data-router
-  template:
-    metadata:
-      labels:
-        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: aai-data-router
-        image: "{{ .Values.image.dataRouterImage }}:{{ .Values.image.dataRouterVersion }}"
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        env:
-        - name: SERVICE_BEANS
-          value: /opt/app/data-router/dynamic/conf
-        - name: CONFIG_HOME
-          value: /opt/app/data-router/config/
-        - name: KEY_STORE_PASSWORD
-          value: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
-        - name: DYNAMIC_ROUTES
-          value: /opt/app/data-router/dynamic/routes
-        - name: KEY_MANAGER_PASSWORD
-          value: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
-        - name: PATH
-          value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-        - name: JAVA_HOME
-          value: usr/lib/jvm/java-8-openjdk-amd64
-        volumeMounts:
-        - mountPath: /etc/localtime
-          name: localtime
-          readOnly: true
-        - 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: aai-data-router-logs
-        ports:
-        - containerPort: 9502
-        readinessProbe:
-          tcpSocket:
-            port: 9502
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      volumes:
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - 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"
-      restartPolicy: Always
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/aai/templates/deployment.yaml b/kubernetes/aai/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..6216758
--- /dev/null
@@ -0,0 +1,86 @@
+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" . }}
+      name: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - aai-traversal
+        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: {{ include "common.name" . }}
+        image: "{{ .Values.global.dockerhubRepository | default .Values.dockerhubRepository }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - mountPath: /dev/log
+          name: aai-service-log
+        - mountPath: /usr/local/etc/haproxy/haproxy.cfg
+          subPath: haproxy.cfg
+          name: haproxy-cfg
+        ports:
+        - containerPort: {{ .Values.service.internalPort }}
+        - containerPort: {{ .Values.service.internalPort2 }}
+        # 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.internalPort2 }}
+          initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+          periodSeconds: {{ .Values.liveness.periodSeconds }}
+        {{ end -}}
+        readinessProbe:
+          tcpSocket:
+            port: {{ .Values.service.internalPort2 }}
+          initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+          periodSeconds: {{ .Values.readiness.periodSeconds }}
+        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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: aai-service-log
+          hostPath:
+            path: "/dev/log"
+        - name: haproxy-cfg
+          configMap:
+            name: aai-deployment-configmap
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aai/templates/elasticsearch-configmap.yaml b/kubernetes/aai/templates/elasticsearch-configmap.yaml
deleted file mode 100644 (file)
index 56b0252..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index 1babb05..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#{{ if not .Values.disableAaiElasticsearch }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: aai-elasticsearch
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.elasticsearchReplicas }}
-  selector:
-    matchLabels:
-      app: aai-elasticsearch
-  template:
-    metadata:
-      labels:
-        app: aai-elasticsearch
-      name: aai-elasticsearch
-    spec:
-      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: aai-elasticsearch
-        image: "{{ .Values.image.elasticsearchImage }}:{{ .Values.image.elasticsearchVersion }}"
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        ports:
-        - containerPort: 9200
-        readinessProbe:
-          tcpSocket:
-            port: 9200
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        volumeMounts:
-        - name: localtime
-          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
-      volumes:
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - name: elasticsearch-config
-        configMap:
-          name: aai-elasticsearch-configmap
-      - name: elasticsearch-data
-        hostPath:
-          path: "/dockerdata-nfs/{{ .Values.nsPrefix }}/aai/elasticsearch/data"
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/aai/templates/hbase-deployment.yaml b/kubernetes/aai/templates/hbase-deployment.yaml
deleted file mode 100644 (file)
index f8ef613..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#{{ if not .Values.disableAaiHbase }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: aai-hbase
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.hbaseReplicas }}
-  selector:
-    matchLabels:
-      app: hbase
-  template:
-    metadata:
-      labels:
-        app: hbase
-      name: aai-hbase
-    spec:
-      hostname: hbase
-      containers:
-      - name: hbase
-        image: "{{ .Values.image.aaiHbaseImage }}:{{ .Values.image.aaiHbaseVersion }}"
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        ports:
-        - containerPort: 2181
-        - containerPort: 8080
-        - containerPort: 8085
-        - containerPort: 9090
-        - containerPort: 16000
-        - containerPort: 16010
-        - containerPort: 16201
-        readinessProbe:
-          tcpSocket:
-            port: 2181
-          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 }}
diff --git a/kubernetes/aai/templates/modelloader-deployment-configmap.yaml b/kubernetes/aai/templates/modelloader-deployment-configmap.yaml
deleted file mode 100644 (file)
index 9337f55..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index e11df7c..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#{{ if not .Values.disableAaiModelLoaderService }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: aai-model-loader-service
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.modelLoaderReplicas }}
-  selector:
-    matchLabels:
-      app: model-loader-service
-  template:
-    metadata:
-      labels:
-        app: model-loader-service
-      name: aai-model-loader-service
-    spec:
-      containers:
-      - name: model-loader-service
-        image: "{{ .Values.image.modelLoaderImage }}:{{ .Values.image.modelLoaderVersion }}"
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        env:
-        - name: CONFIG_HOME
-          value: /opt/app/model-loader/config/
-        volumeMounts:
-        - mountPath: /etc/localtime
-          name: localtime
-          readOnly: true
-        - 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
-          name: aai-model-loader-log-conf
-          subPath: logback.xml
-        ports:
-        - containerPort: 8080
-        - containerPort: 8443
-      - name: filebeat-onap-aai-model-loader
-        image: {{ .Values.image.filebeat }}
-        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
-        - mountPath: /usr/share/filebeat/data
-          name: aai-model-loader-filebeat
-      volumes:
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - 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
-        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-log-configmap
-      restartPolicy: Always
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/aai/templates/search-data-service-configmap.yaml b/kubernetes/aai/templates/search-data-service-configmap.yaml
deleted file mode 100644 (file)
index 43d9da0..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index fc5a0d2..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-#{{ if not .Values.disableAaiSearchDataService }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: aai-search-data-service
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.searchDataServiceReplicas }}
-  selector:
-    matchLabels:
-      app: search-data-service
-  template:
-    metadata:
-      labels:
-        app: search-data-service
-      name: aai-search-data-service
-    spec:
-      containers:
-      - name: search-data-service
-        image: "{{ .Values.image.searchDataImage }}:{{ .Values.image.searchDataVersion }}"
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        env:
-        - name: CONFIG_HOME
-          value: /opt/app/search-data-service/config/
-        - name: KEY_STORE_PASSWORD
-          value: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
-        - name: KEY_MANAGER_PASSWORD
-          value: OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
-        volumeMounts:
-        - mountPath: /etc/localtime
-          name: localtime
-          readOnly: true
-        - 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
-          name: aai-search-data-service-log-conf
-          subPath: logback.xml
-        ports:
-        - containerPort: 9509
-        readinessProbe:
-          tcpSocket:
-            port: 9509
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      - name: filebeat-onap-aai-search
-        image: {{ .Values.image.filebeat }}
-        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
-        - mountPath: /usr/share/filebeat/data
-          name: aai-search-data-service-filebeat
-      volumes:
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - name: aai-search-data-service-config
-        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
-        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-log-configmap
-      restartPolicy: Always
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/aai/templates/service.yaml b/kubernetes/aai/templates/service.yaml
new file mode 100644 (file)
index 0000000..d21ac7e
--- /dev/null
@@ -0,0 +1,33 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.name" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  ports:
+  {{if eq .Values.service.type "NodePort" -}}
+  - name: {{ .Values.service.name }}
+    port: {{ .Values.service.internalPort }}
+    targetPort: {{ .Values.service.internalPort }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+  - name: {{ .Values.service.name }}2
+    port: {{ .Values.service.internalPort2 }}
+    targetPort: {{ .Values.service.internalPort2 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+  {{- 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
+  {{- end}}
+  type: {{ .Values.service.type }}
+  selector:
+    app: {{ include "common.name" . }}
+  clusterIP: {{ .Values.config.aaiServiceClusterIp }}
diff --git a/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml b/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml
deleted file mode 100644 (file)
index 3a0c7fb..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index e73c7b3..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-#{{ if not .Values.disableAaiSparkyBe }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: aai-sparky-be
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.sparkyReplicas }}
-  selector:
-    matchLabels:
-      app: sparky-be
-  template:
-    metadata:
-      labels:
-        app: sparky-be
-      name: aai-sparky-be
-    spec:
-      containers:
-      - name: sparky-be
-        image: "{{ .Values.image.sparkyBeImage }}:{{ .Values.image.sparkyBeVersion }}"
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        env:
-        - name: CONFIG_HOME
-          value: /opt/app/sparky/config/
-        - name: KEY_MANAGER_PASSWORD
-          value: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
-        - name: KEY_STORE_PASSWORD
-          value: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
-        volumeMounts:
-        - mountPath: /etc/localtime
-          name: localtime
-          readOnly: true
-        - 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
-          name: aai-sparky-be-log-conf
-          subPath: logback.xml
-        ports:
-        - containerPort: 9517
-        readinessProbe:
-          tcpSocket:
-            port: 9517
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      - name: filebeat-onap-aai-sparky
-        image: {{ .Values.image.filebeat }}
-        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
-        - mountPath: /usr/share/filebeat/data
-          name: aai-sparky-filebeat
-      volumes:
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - name: aai-sparky-be-config
-        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
-        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-log-configmap
-      restartPolicy: Always
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
index 4cbd327..b064568 100644 (file)
@@ -1,39 +1,95 @@
-nsPrefix: onap
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Default values for aai.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global: # global defaults
+  nodePortPrefix: 302
+  repository: nexus3.onap.org:10001
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  dockerhubRepository: docker.io
+  busyboxImage: busybox
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+  restartPolicy: Always
+
+# application image
+dockerhubRepository: registry.hub.docker.com
+image: aaionap/haproxy:1.1.0
 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.1.0
-  aaiProxy: aaionap/haproxy
-  aaiProxyVersion: 1.1.0
-  aaiHbaseImage: aaionap/hbase
-  aaiHbaseVersion: 1.2.0
-  modelLoaderImage: nexus3.onap.org:10001/onap/model-loader
-  modelLoaderVersion: v1.1.0
-  aaiResourcesImage: nexus3.onap.org:10001/openecomp/aai-resources
-  aaiResourcesVersion: v1.1.0
-  aaiTraversalImage: nexus3.onap.org:10001/openecomp/aai-traversal
-  aaiTraversalVersion: v1.1.0
-  dataRouterImage: nexus3.onap.org:10001/onap/data-router
-  dataRouterVersion: v1.1.0
-  elasticsearchImage: elasticsearch
-  elasticsearchVersion: 2.4.1
-  searchDataImage: nexus3.onap.org:10001/onap/search-data-service
-  searchDataVersion: v1.1.0
-  sparkyBeImage: nexus3.onap.org:10001/onap/sparky-be
-  sparkyBeVersion: v1.1.0
-  gremlinServerImage: aaionap/gremlin-server
-  filebeat: docker.elastic.co/beats/filebeat:5.5.0
-  es_bb: busybox
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+config:
+  # POLICY hotfix - Note this must be temporary
+  # See https://jira.onap.org/browse/POLICY-510
+  aaiServiceClusterIp:
+  logstashServiceName: log-ls
+  logstashPort: 5044
+
+# 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: aai
+  externalPort: 8080
+  internalPort: 8080
+  nodePort: 32
+  externalPort2: 8443
+  internalPort2: 8443
+  nodePort2: 33
+
+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/appc/.helmignore b/kubernetes/appc/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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
index da4f1b3..ca35cd1 100644 (file)
@@ -1,4 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
-description: A Helm chart for Kubernetes
+description: Application Controller
 name: appc
-version: 0.1.0
+version: 2.0.0
diff --git a/kubernetes/appc/requirements.yaml b/kubernetes/appc/requirements.yaml
new file mode 100644 (file)
index 0000000..1ca4de1
--- /dev/null
@@ -0,0 +1,10 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
+  - name: mysql
+    version: ~2.0.0
+    repository: '@local'
+  - name: dgbuilder
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
@@ -20,7 +20,7 @@
 
 SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
 APPC_HOME=${APPC_HOME:-/opt/openecomp/appc}
-MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0}
+MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}}
 
 APPC_DB_USER=${APPC_DB_USER:-appcctl}
 APPC_DB_PASSWD=${APPC_DB_PASSWD:-appcctl}
@@ -28,7 +28,7 @@ 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
+mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -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}';
@@ -39,16 +39,16 @@ 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
+  mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -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
+  mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -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
+  mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -u root -p${MYSQL_PASSWD} sdnctl < ${APPC_HOME}/data/sqlData.dump
 fi
 
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -x
 
 ###
 # ============LICENSE_START=======================================================
 #  if not already installed, and starts the APPC Docker Container
 #
 
+function enable_odl_cluster(){
+  if [ -z $APPC_REPLICAS ]; then
+     echo "APPC_REPLICAS is not configured in Env field"
+     exit
+  fi
+
+  echo "Installing Opendaylight cluster features"
+  ${ODL_HOME}/bin/client -u karaf feature:install odl-mdsal-clustering
+  ${ODL_HOME}/bin/client -u karaf feature:install odl-jolokia
+
+  echo "Update cluster information statically"
+  hm=$(hostname)
+  echo "Get current Hostname ${hm}"
+
+  node=($(echo ${hm} | sed 's/-[0-9]*$//g'))
+  node_index=($(echo ${hm} | awk -F"-" '{print $NF}'))
+  node_list="${node}-0.{{ .Values.service.name }}-cluster.{{.Release.Namespace}}";
+
+  for ((i=1;i<${APPC_REPLICAS};i++));
+  do
+    node_list="${node_list} ${node}-$i.{{ .Values.service.name }}-cluster.{{.Release.Namespace}}"
+  done
+
+  /opt/opendaylight/current/bin/configure_cluster.sh $((node_index+1)) ${node_list}
+}
+
 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}
+APPC_HOME=${APPC_HOME:-/opt/onap/appc}
 SLEEP_TIME=${SLEEP_TIME:-120}
-MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0}
+MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}}
+ENABLE_ODL_CLUSTER=${ENABLE_ODL_CLUSTER:-false}
 
 #
 # Adding the DMAAP_TOPIC_ENV variable into APPC-ASDC-LISTENER properties
@@ -55,7 +82,7 @@ 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
+until mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -u root -p{{.Values.config.dbRootPassword}} mysql &> /dev/null
 do
   printf "."
   sleep 1
@@ -97,6 +124,8 @@ then
                 ${APPC_HOME}/svclogic/bin/install-converted-dgs.sh
         fi
 
+        if $ENABLE_ODL_CLUSTER ; then enable_odl_cluster ; fi
+
         echo "Restarting OpenDaylight"
         ${ODL_HOME}/bin/stop
         echo "Installed at `date`" > ${SDNC_HOME}/.installed
@@ -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.{{.Values.nsPrefix}}:8443
+org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.{{.Release.Namespace}}: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.{{.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
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.{{.Release.Namespace}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.{{.Release.Namespace}}: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}
@@ -22,7 +22,7 @@
 ###                                            ###
 ### Properties for demo  ###
 ###                                            ###
-appc.demo.poolMembers=dmaap.{{.Values.nsPrefix}}:3904
+appc.demo.poolMembers=dmaap.{{.Release.Namespace}}: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@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/
+appc.provider.vfodl.url=http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@appc-sdnhost.{{.Release.Namespace}}: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://appc-dbhost.{{.Values.nsPrefix}}:3306/appcctl
+org.openecomp.appc.db.url.appcctl=jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}:3306/appcctl
 org.openecomp.appc.db.user.appcctl=appcctl
 org.openecomp.appc.db.pass.appcctl=appcctl
 
-org.openecomp.appc.db.url.sdnctl=jdbc:mysql://appc-dbhost.{{.Values.nsPrefix}}:3306/sdnctl
+org.openecomp.appc.db.url.sdnctl=jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}: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.{{.Values.nsPrefix}}:3904
+dmaap.poolMembers=dmaap.{{.Release.Namespace}}:3904
 
 
 # appc-event-listener-bundle properties (only defined in src/test of default.properties)
-appc.LCM.poolMembers=dmaap.{{.Values.nsPrefix}}:3904
+appc.LCM.poolMembers=dmaap.{{.Release.Namespace}}: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.{{.Values.nsPrefix}}:3904
-event.pool.members=dmaap.{{.Values.nsPrefix}}:3904
+poolMembers=dmaap.{{.Release.Namespace}}:3904
+event.pool.members=dmaap.{{.Release.Namespace}}: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.{{.Values.nsPrefix}}:8443
+appc.sdc.host=sdc-be.{{.Release.Namespace}}: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.{{.Values.nsPrefix}}:3904
+DCAE.dmaap.event.pool.members=dmaap.{{.Release.Namespace}}:3904
 
 #OAM Listener
 appc.OAM.disabled=true
 appc.OAM.provider.url=http://localhost:8181/restconf/operations/appc-oam
-appc.OAM.poolMembers=dmaap.{{.Values.nsPrefix}}:3904
+appc.OAM.poolMembers=dmaap.{{.Release.Namespace}}:3904
 appc.OAM.service=ueb
 appc.OAM.topic.read=testOAM
 appc.OAM.topic.write=testOAM
@@ -22,7 +22,7 @@
 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.url=jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}: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
@@ -20,7 +20,7 @@
 
 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.url=jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}:3306/sdnctl
 org.onap.ccsdk.sli.jdbc.database=sdnctl
 org.onap.ccsdk.sli.jdbc.user=sdnctl
 org.onap.ccsdk.sli.jdbc.password=gamma
@@ -22,7 +22,7 @@
 MYSQL_USER=${MYSQL_USER:-sdnctl}
 MYSQL_PWD=${MYSQL_PWD:-gamma}
 MYSQL_DB=${MYSQL_DB:-sdnctl}
-MYSQL_HOST=${MYSQL_HOST:-appc-dbhost.{{.Values.nsPrefix}}}
+MYSQL_HOST=${MYSQL_HOST:-{{.Values.mysql.service.name}}.{{.Release.Namespace}}}
 
 mysql --user=${MYSQL_USER} --password=${MYSQL_PWD} --host=${MYSQL_HOST} ${MYSQL_DB} <<-END
 SELECT module, rpc, version, mode from SVC_LOGIC where active='Y';
@@ -20,7 +20,7 @@
 ###
 
 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.url = jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}:3306/sdnctl
 org.onap.ccsdk.sli.jdbc.database = sdnctl
 org.onap.ccsdk.sli.jdbc.user = sdnctl
 org.onap.ccsdk.sli.jdbc.password = gamma
index 75680bd..25560fb 100755 (executable)
@@ -22,7 +22,7 @@
 ###
 
 SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
-MYSQL_PASSWD=${MYSQL_PASSWD:-openECOMP1.0}
+MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}}
 
 SDNC_DB_USER=${SDNC_DB_USER:-sdnctl}
 SDNC_DB_PASSWD=${SDNC_DB_PASSWD:-gamma}
@@ -30,7 +30,7 @@ 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
+mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -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}';
@@ -41,6 +41,6 @@ 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
+mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -u root -p${MYSQL_PASSWD} sdnctl < ${SDNC_HOME}/data/odlsli.dump
 fi
 
index 87c95ee..a84893c 100755 (executable)
@@ -28,13 +28,13 @@ 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}
+MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.dbRootPassword}}}
 
 #
 # Wait for database
 #
 echo "Waiting for mysql"
-until mysql -h appc-dbhost.{{.Values.nsPrefix}} -u root -p${MYSQL_PASSWD} mysql &> /dev/null
+until mysql -h {{.Values.mysql.service.name}}.{{.Release.Namespace}} -u root -p{{.Values.config.dbRootPassword}} mysql &> /dev/null
 do
   printf "."
   sleep 1
index 9e29744..b2f7102 100644 (file)
@@ -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.{{.Values.nsPrefix}}:8443
+org.onap.ccsdk.sli.adaptors.aai.uri=https://aai-service.{{.Release.Namespace}}: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.{{.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
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai-service.{{.Release.Namespace}}:8443/restconf/config/L3SDN-API:services/layer3-service-list/{service-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.notify.selflink.avpn=https://aai-service.{{.Release.Namespace}}: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}
index 6107a80..f603977 100644 (file)
@@ -23,7 +23,7 @@
 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.url=jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}: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
index 2954bb0..908d60a 100644 (file)
@@ -21,7 +21,7 @@
 
 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.url=jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}:3306/sdnctl
 org.onap.ccsdk.sli.jdbc.database=sdnctl
 org.onap.ccsdk.sli.jdbc.user=sdnctl
 org.onap.ccsdk.sli.jdbc.password=gamma
index ceeea59..a568dfd 100755 (executable)
@@ -22,7 +22,7 @@
 MYSQL_USER=${MYSQL_USER:-sdnctl}
 MYSQL_PWD=${MYSQL_PWD:-gamma}
 MYSQL_DB=${MYSQL_DB:-sdnctl}
-MYSQL_HOST=${MYSQL_HOST:-appc-dbhost.{{.Values.nsPrefix}}}
+MYSQL_HOST=${MYSQL_HOST:-{{.Values.mysql.service.name}}.{{.Release.Namespace}}}
 
 mysql --user=${MYSQL_USER} --password=${MYSQL_PWD} --host=${MYSQL_HOST} ${MYSQL_DB} <<-END
 SELECT module, rpc, version, mode from SVC_LOGIC where active='Y';
index bcf321c..44ae32f 100644 (file)
@@ -20,7 +20,7 @@
 ###
 
 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.url = jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}:3306/sdnctl
 org.onap.ccsdk.sli.jdbc.database = sdnctl
 org.onap.ccsdk.sli.jdbc.user = sdnctl
 org.onap.ccsdk.sli.jdbc.password = gamma
index 2cd63e1..49d818a 100644 (file)
@@ -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.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
diff --git a/kubernetes/appc/templates/NOTES.txt b/kubernetes/appc/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..24371d0
--- /dev/null
@@ -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 {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.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/appc/templates/all-services.yaml b/kubernetes/appc/templates/all-services.yaml
deleted file mode 100644 (file)
index 181cab9..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-#{{ if not .Values.disableAppcAppcDbhost }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: appc-dbhost
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: appc-dbhost
-spec:
-  ports:
-  - name: "appc-dbhost-port"
-    port: 3306
-  selector:
-    app: appc-dbhost
-  clusterIP: None
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: appc-sdnctldb01
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: appc-dbhost
-spec:
-  ports:
-    - port: 3306
-  selector:
-    app: appc-dbhost
-  clusterIP: None
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: appc-sdnctldb02
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: appc-dbhost
-spec:
-  ports:
-    - port: 3306
-  selector:
-    app: appc-dbhost
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableAppcAppc }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: appc-sdnhost
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: appc
-spec:
-  ports:
-  - name: "appc-port-8282"
-    port: 8282
-    targetPort: 8181
-    nodePort: {{ .Values.nodePortPrefix }}30
-  - name: "appc-port-1830"
-    port: 1830
-    nodePort: {{ .Values.nodePortPrefix }}31
-  type: NodePort
-  selector:
-    app: appc
-#{{ end }}
-#{{ if not .Values.disableAppcAppcDgbuilder }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: appc-dgbuilder
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: appc-dgbuilder
-spec:
-  ports:
-  - name: "appc-dgbuilder-port"
-    port: 3000
-    targetPort: 3100
-    nodePort: {{ .Values.nodePortPrefix }}28
-  type: NodePort
-  selector:
-    app: appc-dgbuilder
-#{{ end }}
diff --git a/kubernetes/appc/templates/appc-configmap.yaml b/kubernetes/appc/templates/appc-configmap.yaml
deleted file mode 100644 (file)
index 8d00842..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index 78bef5e..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-#{{ if not .Values.disableAppcAppc }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: appc
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.appcReplicas }}
-  selector:
-    matchLabels:
-      app: appc
-  template:
-    metadata:
-      labels:
-        app: appc
-      name: appc
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - appc-db-container
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: appc-readiness
-      containers:
-      - command:
-        - /opt/openecomp/appc/bin/startODL.sh
-        env:
-        - name: MYSQL_ROOT_PASSWORD
-          value: openECOMP1.0
-        - name: SDNC_CONFIG_DIR
-          value: /opt/openecomp/appc/data/properties
-        - name: APPC_CONFIG_DIR
-          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
-        volumeMounts:
-        - 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-openecomp-appc-data-properties
-          subPath: appc.properties
-        - mountPath: /opt/openecomp/appc/data/properties/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: 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
-        readinessProbe:
-          tcpSocket:
-            port: 8181
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      - 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: appc-logs
-        - mountPath: /usr/share/filebeat/data
-          name: appc-data-filebeat
-      volumes:
-        - name: localtime
-          hostPath:
-            path: /etc/localtime
-        - name: filebeat-conf
-          configMap:
-            name: appc-filebeat-configmap
-        - name: appc-log-config
-          configMap:
-            name: appc-logging-cfg-configmap
-        - name: appc-logs
-          emptyDir: {}
-        - name: appc-data-filebeat
-          emptyDir: {}
-        - 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
deleted file mode 100644 (file)
index f846c19..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index 9e102e1..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index ff0f89a..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#{{ if not .Values.disableAppcAppcDbhost }}
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: "{{ .Values.nsPrefix }}-appc"
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    name: "{{ .Values.nsPrefix }}-appc"
-spec:
-  capacity:
-    storage: 2Gi
-  accessModes:
-    - ReadWriteMany
-  persistentVolumeReclaimPolicy: Retain
-  hostPath:
-    path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/appc/data
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: appc-db
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  accessModes:
-    - ReadWriteMany
-  resources:
-    requests:
-      storage: 2Gi
-  selector:
-    matchLabels:
-      name: "{{ .Values.nsPrefix }}-appc"
-#{{ end }}
diff --git a/kubernetes/appc/templates/configmap.yaml b/kubernetes/appc/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..0574cfc
--- /dev/null
@@ -0,0 +1,79 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-onap-sdnc-bin
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/bin/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-onap-sdnc-data-properties
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/data/properties/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-bin
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/svclogic/bin/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-config
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/sdnc/svclogic/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-onap-appc-bin
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/appc/bin/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-onap-appc-data-properties
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/appc/data/properties/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-onap-appc-svclogic-bin
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/appc/svclogic/bin/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-onap-appc-svclogic-config
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/appc/opt/onap/appc/svclogic/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-filebeat
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/log4j/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-logging-cfg
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/appc/templates/db-deployment.yaml b/kubernetes/appc/templates/db-deployment.yaml
deleted file mode 100644 (file)
index 41d9d5b..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#{{ if not .Values.disableAppcAppcDbhost }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: appc-dbhost
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.dbReplicas }}
-  selector:
-    matchLabels:
-      app: appc-dbhost
-  template:
-    metadata:
-      labels:
-        app: appc-dbhost
-    spec:
-      containers:
-      - env:
-        - name: MYSQL_ROOT_PASSWORD
-          value: openECOMP1.0
-        - name: MYSQL_ROOT_HOST
-          value: '%'
-        image: {{ .Values.image.mysqlServer }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: appc-db-container
-        volumeMounts:
-        - mountPath: /etc/localtime
-          name: localtime
-          readOnly: true
-        - mountPath: /var/lib/mysql
-          name: appc-data
-        ports:
-        - containerPort: 3306
-        readinessProbe:
-          tcpSocket:
-            port: 3306
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      restartPolicy: Always
-      volumes:
-      - name: localtime
-        hostPath:
-          path: /etc/localtime
-      - name: appc-data
-        persistentVolumeClaim:
-          claimName: appc-db
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/appc/templates/dgbuilder-deployment.yaml b/kubernetes/appc/templates/dgbuilder-deployment.yaml
deleted file mode 100644 (file)
index fe9a198..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-#{{ if not .Values.disableAppcAppcDgbuilder }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: appc-dgbuilder
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.dgbuilderReplicas }}
-  selector:
-    matchLabels:
-      app: appc-dgbuilder
-  template:
-    metadata:
-      labels:
-        app: appc-dgbuilder
-      name: appc-dgbuilder
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - appc-db-container
-        - --container-name
-        - appc-controller-container
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: appc-dgbuilder-readiness
-      containers:
-      - command:
-        - /bin/bash
-        - -c
-        - cd /opt/onap/sdnc/dgbuilder/ && ./start.sh sdnc1.0 && wait
-        env:
-        - name: MYSQL_ROOT_PASSWORD
-          value: openECOMP1.0
-        - name: SDNC_CONFIG_DIR
-          value: /opt/onap/sdnc/data/properties
-        image: {{ .Values.image.dgbuilderSdnc }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: appc-dgbuilder-container
-        ports:
-        - containerPort: 3100
-        readinessProbe:
-          tcpSocket:
-            port: 3100
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        volumeMounts:
-        - 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"
-#{{ end }}
similarity index 52%
rename from kubernetes/so/templates/secrets.yaml
rename to kubernetes/appc/templates/secrets.yaml
index 269d406..345c194 100644 (file)
@@ -1,13 +1,13 @@
 apiVersion: v1
 kind: Secret
 metadata:
-  name: {{ include "common.name" . }}-docker-registry-key
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
-    app: {{ include "common.name" . }}
+    app: {{ include "common.fullname" . }}
     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
+type: Opaque
 data:
-  .dockercfg: {{ .Values.global.repositorySecret | default .Values.repositorySecret }}
-type: kubernetes.io/dockercfg
\ No newline at end of file
+  db-root-password: {{ .Values.config.dbRootPassword | b64enc | quote }}
diff --git a/kubernetes/appc/templates/service.yaml b/kubernetes/appc/templates/service.yaml
new file mode 100644 (file)
index 0000000..6ffef22
--- /dev/null
@@ -0,0 +1,62 @@
+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": "appc",
+          "version": "v1",
+          "url": "/",
+          "protocol": "REST",
+          "port": "{{ .Values.service.externalPort }}",
+          "visualRange":"1",
+          "path": "/"
+      }
+      ]'
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: "{{ .Values.service.name }}-8282"
+    - port: {{ .Values.service.externalPort2 }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+      name: "{{ .Values.service.name }}-1830"
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.service.name }}-cluster
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  annotations:
+    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
+spec:
+  ports:
+   - name: "{{ .Values.service.name }}-cluster-port"
+     port: {{ .Values.service.clusterPort }}
+  clusterIP: None
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  sessionAffinity: None
+  type: ClusterIP
diff --git a/kubernetes/appc/templates/statefulset.yaml b/kubernetes/appc/templates/statefulset.yaml
new file mode 100644 (file)
index 0000000..6ecfc19
--- /dev/null
@@ -0,0 +1,186 @@
+apiVersion: apps/v1beta1
+kind: StatefulSet
+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:
+  serviceName: "{{ .Values.service.name }}-cluster"
+  replicas: {{ .Values.replicaCount }}
+  podManagementPolicy: Parallel
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - {{ .Values.mysql.nameOverride }}
+        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: {{ include "common.name" . }}
+          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          command:
+          - /opt/appc/bin/startODL.sh
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          - containerPort: {{ .Values.service.externalPort2 }}
+          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
+            - name: SDNC_CONFIG_DIR
+              value: "{{ .Values.config.configDir }}"
+            - name: APPC_CONFIG_DIR
+              value: "{{ .Values.config.configDir }}"
+            - name: DMAAP_TOPIC_ENV
+              value: "{{ .Values.config.dmaapTopic }}"
+            - name: ENABLE_ODL_CLUSTER
+              value: "{{ .Values.config.enableClustering }}"
+            - name: APPC_REPLICAS
+              value: "{{ .Values.replicaCount }}"
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /opt/onap/appc/data/properties/dblib.properties
+            name: onap-appc-data-properties
+            subPath: dblib.properties
+          - mountPath: /opt/onap/appc/data/properties/svclogic.properties
+            name: onap-appc-data-properties
+            subPath: svclogic.properties
+          - mountPath: /opt/onap/appc/data/properties/appc.properties
+            name: onap-appc-data-properties
+            subPath: appc.properties
+          - mountPath: /opt/onap/appc/data/properties/aaiclient.properties
+            name: onap-appc-data-properties
+            subPath: aaiclient.properties
+          - mountPath: /opt/onap/appc/svclogic/config/svclogic.properties
+            name: onap-appc-svclogic-config
+            subPath: svclogic.properties
+          - mountPath: /opt/onap/appc/svclogic/bin/showActiveGraphs.sh
+            name: onap-appc-svclogic-bin
+            subPath: showActiveGraphs.sh
+          - mountPath: /opt/onap/appc/bin/startODL.sh
+            name: onap-appc-bin
+            subPath: startODL.sh
+          - mountPath: /opt/onap/appc/bin/installAppcDb.sh
+            name: onap-appc-bin
+            subPath: installAppcDb.sh
+          - mountPath: /opt/onap/sdnc/data/properties/dblib.properties
+            name: onap-sdnc-data-properties
+            subPath: dblib.properties
+          - mountPath: /opt/onap/sdnc/data/properties/svclogic.properties
+            name: onap-sdnc-data-properties
+            subPath: svclogic.properties
+          - mountPath: /opt/onap/sdnc/data/properties/aaiclient.properties
+            name: onap-sdnc-data-properties
+            subPath: aaiclient.properties
+          - mountPath: /opt/onap/sdnc/svclogic/config/svclogic.properties
+            name: onap-sdnc-svclogic-config
+            subPath: svclogic.properties
+          - mountPath: /opt/onap/sdnc/svclogic/bin/showActiveGraphs.sh
+            name: onap-sdnc-svclogic-bin
+            subPath: showActiveGraphs.sh
+          - mountPath: /opt/onap/sdnc/bin/startODL.sh
+            name: onap-sdnc-bin
+            subPath: startODL.sh
+          - mountPath: /opt/onap/sdnc/bin/installSdncDb.sh
+            name: onap-sdnc-bin
+            subPath: installSdncDb.sh
+          - mountPath: /var/log/onap
+            name: logs
+          - mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg
+            name: log-config
+            subPath: org.ops4j.pax.logging.cfg
+          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: logs
+          - mountPath: /usr/share/filebeat/data
+            name: data-filebeat
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: filebeat-conf
+          configMap:
+            name: {{ include "common.fullname" . }}-filebeat
+        - name: log-config
+          configMap:
+            name: {{ include "common.fullname" . }}-logging-cfg
+        - name: logs
+          emptyDir: {}
+        - name: data-filebeat
+          emptyDir: {}
+        - name: onap-appc-data-properties
+          configMap:
+            name: {{ include "common.fullname" . }}-onap-appc-data-properties
+        - name: onap-appc-svclogic-config
+          configMap:
+            name: {{ include "common.fullname" . }}-onap-appc-svclogic-config
+        - name: onap-appc-svclogic-bin
+          configMap:
+            name: {{ include "common.fullname" . }}-onap-appc-svclogic-bin
+            defaultMode: 0755
+        - name: onap-appc-bin
+          configMap:
+            name: {{ include "common.fullname" . }}-onap-appc-bin
+            defaultMode: 0755
+        - name: onap-sdnc-data-properties
+          configMap:
+            name: {{ include "common.fullname" . }}-onap-sdnc-data-properties
+        - name: onap-sdnc-svclogic-config
+          configMap:
+            name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-config
+        - name: onap-sdnc-svclogic-bin
+          configMap:
+            name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-bin
+            defaultMode: 0755
+        - name: onap-sdnc-bin
+          configMap:
+            name: {{ include "common.fullname" . }}-onap-sdnc-bin
+            defaultMode: 0755
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 1a0cc51..b5a13ef 100644 (file)
-nsPrefix: onap
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+# If mountPath is over NFS (e.g. /dockerdata-nfs is NFS mounted between the nodes), uncomment following lines.
+#  persistence:
+#    mountPath: /dockerdata
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/appc-image:1.3.0-SNAPSHOT-latest
 pullPolicy: Always
-nodePortPrefix: 302
-appcReplicas: 1
-dbReplicas: 1
-dgbuilderReplicas: 1
-dataRootDir: /dockerdata-nfs
-image:
-  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
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+config:
+  dbRootPassword: openECOMP1.0
+  enableClustering: true
+  configDir: /opt/onap/appc/data/properties
+  dmaapTopic: SUCCESS
+  logstashServiceName: log-ls
+  logstashPort: 5044
+
+mysql:
+  nameOverride: appc-db
+  service:
+    name: appc-dbhost
+  nfsprovisionerPrefix: appc
+  sdnctlPrefix: appc
+  persistence:
+    mountSubPath: appc/data
+    enabled: true
+  disableNfsProvisioner: true
+
+dgbuilder:
+  nameOverride: appc-dgbuilder
+  dbPodName: appc-db
+  dbServiceName: appc-dbhost
+
+# default number of instances
+replicaCount: 3
+
+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: appc
+  #targetPort
+  internalPort: 8181
+  #port
+  externalPort: 8282
+  nodePort: 30
+
+  externalPort2: 1830
+  nodePort2: 31
+  clusterPort: 2550
+
+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
index a162ca7..11a38c2 100644 (file)
@@ -1,4 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
-description: A Helm chart for Kubernetes
+description: ONAP Clamp
 name: clamp
-version: 1.1.0
+version: 2.0.0
diff --git a/kubernetes/clamp/charts/mariadb/Chart.yaml b/kubernetes/clamp/charts/mariadb/Chart.yaml
new file mode 100644 (file)
index 0000000..6b4471a
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: MariaDB Service
+name: mariadb
+version: 2.0.0
diff --git a/kubernetes/clamp/charts/mariadb/NOTES.txt b/kubernetes/clamp/charts/mariadb/NOTES.txt
new file mode 100644 (file)
index 0000000..91d8ed4
--- /dev/null
@@ -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 }}
@@ -1,9 +1,23 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableClampClampMariadb }}
 apiVersion: v1
 kind: ConfigMap
 metadata:
   name: clamp-entrypoint-initdb-configmap
-  namespace: {{ .Values.nsPrefix }}
+  namespace: {{ include "common.namespace" . }}
 data:
 {{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }}
 ---
@@ -11,7 +25,7 @@ apiVersion: v1
 kind: ConfigMap
 metadata:
   name: clamp-entrypoint-drop-configmap
-  namespace: {{ .Values.nsPrefix }}
+  namespace: {{ include "common.namespace" . }}
 data:
 {{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/drop/*").AsConfig . | indent 2 }}
 ---
@@ -19,7 +33,7 @@ apiVersion: v1
 kind: ConfigMap
 metadata:
   name: clamp-entrypoint-bulkload-configmap
-  namespace: {{ .Values.nsPrefix }}
+  namespace: {{ include "common.namespace" . }}
 data:
 {{ tpl (.Files.Glob "resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/*").AsConfig . | indent 2 }}
 ---
@@ -27,7 +41,7 @@ apiVersion: v1
 kind: ConfigMap
 metadata:
   name: clamp-mariadb-conf-configmap
-  namespace: {{ .Values.nsPrefix }}
+  namespace: {{ include "common.namespace" . }}
 data:
 {{ tpl (.Files.Glob "resources/config/mariadb/conf.d/conf1/*").AsConfig . | indent 2 }}
 #{{ end }}
diff --git a/kubernetes/clamp/charts/mariadb/templates/deployment.yaml b/kubernetes/clamp/charts/mariadb/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..e1db655
--- /dev/null
@@ -0,0 +1,108 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      containers:
+        - name: {{ include "common.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: /docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh
+            name: docker-entrypoint-initdb
+            subPath: load-sql-files-tests-automation.sh
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - 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
+          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: clamp-mariadb-data
+          persistentVolumeClaim:
+            claimName: {{ include "common.fullname" . }}
+      {{- else }}
+          emptyDir: {}
+      {{- end }}
+        - name: docker-entrypoint-initdb
+          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
+          configMap:
+            name: clamp-mariadb-conf-configmap
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/clamp/charts/mariadb/templates/pv.yaml b/kubernetes/clamp/charts/mariadb/templates/pv.yaml
new file mode 100644 (file)
index 0000000..184728f
--- /dev/null
@@ -0,0 +1,37 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+{{- 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/clamp/charts/mariadb/templates/pvc.yaml b/kubernetes/clamp/charts/mariadb/templates/pvc.yaml
new file mode 100644 (file)
index 0000000..e27c331
--- /dev/null
@@ -0,0 +1,48 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+{{- 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/clamp/charts/mariadb/templates/secrets.yaml b/kubernetes/clamp/charts/mariadb/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..3bcaae0
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: 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.mysqlPassword | b64enc | quote }}
diff --git a/kubernetes/clamp/charts/mariadb/templates/service.yaml b/kubernetes/clamp/charts/mariadb/templates/service.yaml
new file mode 100644 (file)
index 0000000..6995f07
--- /dev/null
@@ -0,0 +1,38 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.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.nodePort }}
+    {{- 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/clamp/charts/mariadb/values.yaml b/kubernetes/clamp/charts/mariadb/values.yaml
new file mode 100644 (file)
index 0000000..a35c854
--- /dev/null
@@ -0,0 +1,105 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global: # global defaults
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
+  persistence: {}
+
+# application image
+repository: nexus3.onap.org:10001
+image: mariadb:10.1.11
+pullPolicy: Always
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+config:
+  mysqlPassword: strong_pitchou
+
+# 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: clamp/mariadb/data
+
+service:
+  type: ClusterIP
+  name: mariadb
+  internalPort: 3306
+  externalPort: 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/clamp/requirements.yaml b/kubernetes/clamp/requirements.yaml
new file mode 100644 (file)
index 0000000..9b24f82
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+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/clamp/templates/NOTES.txt b/kubernetes/clamp/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..91d8ed4
--- /dev/null
@@ -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/clamp/templates/all-services.yaml b/kubernetes/clamp/templates/all-services.yaml
deleted file mode 100644 (file)
index b3b9c65..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#{{ if not .Values.disableClampClampMariadb }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: clamp-mariadb
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: clamp-mariadb
-spec:
-  ports:
-  - name: clamp-mariadb
-    port: 3306
-  selector:
-    app: clamp-mariadb
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableClampClamp }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: clamp
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  ports:
-  - name: clamp
-    port: 8080
-    nodePort: {{ .Values.nodePortPrefix }}95
-  selector:
-    app: clamp
-  type: NodePort
-#{{ end }}
\ No newline at end of file
diff --git a/kubernetes/clamp/templates/clamp-deployment.yaml b/kubernetes/clamp/templates/clamp-deployment.yaml
deleted file mode 100644 (file)
index 2c2e13f..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#{{ if not .Values.disableClampClamp }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  labels:
-    app: clamp
-  name: clamp
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.clampReplicas }}
-  selector:
-    matchLabels:
-      app: clamp
-  template:
-    metadata:
-      labels:
-        app: clamp
-      name: clamp
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - clamp-mariadb
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: clamp-readiness
-      containers:
-      - env:
-        - name: SPRING_APPLICATION_JSON
-          value: '{
-  "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 }}
-        name: clamp
-        readinessProbe:
-          tcpSocket:
-            port: 8080
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      imagePullSecrets:
-      - name: {{ .Values.nsPrefix }}-docker-registry-key
-#{{ end }}
diff --git a/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml b/kubernetes/clamp/templates/clamp-mariadb-deployment.yaml
deleted file mode 100644 (file)
index a12489e..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#{{ if not .Values.disableClampClampMariadb }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: clamp-mariadb
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.clampMariaDbReplicas }}
-  selector:
-    matchLabels:
-      app: clamp-mariadb
-  template:
-    metadata:
-      labels:
-        app: clamp-mariadb
-      name: clamp-mariadb
-    spec:
-      hostname: clamp-mariadb
-      containers:
-      - args:
-        image: {{ .Values.image.mariadbImage }}:{{ .Values.image.mariadbVersion }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: "clamp-mariadb"
-        env:
-          - name: MYSQL_ROOT_PASSWORD
-            value: {{ .Values.mysqlPassword }}
-        volumeMounts:
-        - mountPath: /docker-entrypoint-initdb.d/load-sql-files-tests-automation.sh
-          name: docker-entrypoint-initdb
-          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
-        readinessProbe:
-          tcpSocket:
-            port: 3306
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      volumes:
-        - name: docker-entrypoint-initdb
-          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
-          configMap:
-            name: clamp-mariadb-conf-configmap
-        - name: clamp-mariadb-data
-          persistentVolumeClaim:
-            claimName: clamp-db
-      imagePullSecrets:
-      - name: {{ .Values.nsPrefix }}-docker-registry-key
-#{{ end }}
diff --git a/kubernetes/clamp/templates/clamp-pv-pvc.yaml b/kubernetes/clamp/templates/clamp-pv-pvc.yaml
deleted file mode 100644 (file)
index c542de6..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#{{ if not .Values.disableClampClampMariadb }}
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: "{{ .Values.nsPrefix }}-clamp"
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    name: "{{ .Values.nsPrefix }}-clamp"
-spec:
-  capacity:
-    storage: 2Gi
-  accessModes:
-    - ReadWriteMany
-  persistentVolumeReclaimPolicy: Retain
-  hostPath:
-    path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/clamp/mariadb/data
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: clamp-db
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  accessModes:
-    - ReadWriteMany
-  resources:
-    requests:
-      storage: 2Gi
-  selector:
-    matchLabels:
-      name: "{{ .Values.nsPrefix }}-clamp"
-#{{ end }}
diff --git a/kubernetes/clamp/templates/configmap.yaml b/kubernetes/clamp/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..b680487
--- /dev/null
@@ -0,0 +1,26 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+ spring_application_json: {{ .Values.config.springApplicationJson | quote }}
diff --git a/kubernetes/clamp/templates/deployment.yaml b/kubernetes/clamp/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..20beabf
--- /dev/null
@@ -0,0 +1,85 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - {{ .Values.mariadb.nameOverride }}
+        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: {{ include "common.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: SPRING_APPLICATION_JSON
+              valueFrom:
+                configMapKeyRef:
+                  name: {{ template "common.fullname" . }}
+                  key: spring_application_json
+          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 }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/clamp/templates/service.yaml b/kubernetes/clamp/templates/service.yaml
new file mode 100644 (file)
index 0000000..5918722
--- /dev/null
@@ -0,0 +1,39 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.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 .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
index 103472a..8e01f42 100644 (file)
@@ -1,13 +1,99 @@
-nsPrefix: onap
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global: # 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: onap/clamp
 pullPolicy: Always
-nodePortPrefix: 302
-mysqlPassword: strong_pitchou
-dataRootDir: /dockerdata-nfs
-clampReplicas: 1
-clampMariaDbReplicas: 1
-image:
-  readiness: oomk8s/readiness-check:1.1.0
-  clampImage: nexus3.onap.org:10001/onap/clamp
-  clampVersion: v1.1.0
-  mariadbImage: nexus3.onap.org:10001/mariadb
-  mariadbVersion: 10.1.11
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+config:
+  mysqlPassword: strong_pitchou
+  dataRootDir: /dockerdata-nfs
+  springApplicationJson: '{
+  "spring.datasource.camunda.url": "jdbc:mariadb:sequential://clamp-mariadb.{{include "common.namespace" .}}:3306/camundabpm?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647",
+  "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clamp-mariadb.{{include "common.namespace" .}}:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true&retriesAllDown=2147483647&failoverLoopRetries=2147483647"
+  }'
+
+# subchart configuration
+mariadb:
+  nameOverride: clampdb
+
+
+# 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: clamp
+  internalPort: 8080
+  nodePort: 95
+
+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
index 077cc6e..6befea7 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: cli
index e928c67..1ce6d97 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableCliCli }}
 apiVersion: v1
 kind: Service
index d4812fb..5afc6f8 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableCliCli }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 3030237..f10711f 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302
diff --git a/kubernetes/common/.helmignore b/kubernetes/common/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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
index 1900f31..d634a8c 100644 (file)
@@ -1,4 +1,24 @@
-EXCLUDES := test
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# 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 :=
 HELM_CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
 
 .PHONY: $(EXCLUDES) $(HELM_CHARTS)
@@ -7,7 +27,7 @@ all: $(HELM_CHARTS)
 
 $(HELM_CHARTS):
        @echo "\n[$@]"
-       @make lint-$@
+       @make package-$@
 
 make-%:
        @if [ -f $*/Makefile ]; then make -C $*; fi
@@ -18,8 +38,14 @@ dep-%: make-%
 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
+       @helm repo index $(PACKAGE_DIR)
+
 clean:
        @rm -f */requirements.lock
        @rm -f *tgz */charts/*tgz
+       @rm -rf $(PACKAGE_DIR)
 %:
        @:
\ No newline at end of file
diff --git a/kubernetes/common/common-templates/Chart.yaml b/kubernetes/common/common-templates/Chart.yaml
deleted file mode 100644 (file)
index 0113575..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-apiVersion: v1
-description: Common templates for inclusion in other charts
-name: common-templates
-version: 2.0.0
diff --git a/kubernetes/common/common-templates/templates/_name.tpl b/kubernetes/common/common-templates/templates/_name.tpl
deleted file mode 100644 (file)
index f6c221f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{{/*
-  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/common-templates/templates/_namespace.tpl b/kubernetes/common/common-templates/templates/_namespace.tpl
deleted file mode 100644 (file)
index 2964a0f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-{{/*
-  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
-  - .Values.nsSuffix  : override namespace suffix
-*/}}
-{{- define "common.namespace" -}}
-  {{- default .Release.Name .Values.nsPrefix -}}
-{{- end -}}
diff --git a/kubernetes/common/common/Chart.yaml b/kubernetes/common/common/Chart.yaml
new file mode 100644 (file)
index 0000000..7d58e53
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: Common templates for inclusion in other charts
+name: common
+version: 2.0.0
diff --git a/kubernetes/common/common/templates/_name.tpl b/kubernetes/common/common/templates/_name.tpl
new file mode 100644 (file)
index 0000000..4299984
--- /dev/null
@@ -0,0 +1,31 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+{{/*
+  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/common/templates/_namespace.tpl b/kubernetes/common/common/templates/_namespace.tpl
new file mode 100644 (file)
index 0000000..94c9ee7
--- /dev/null
@@ -0,0 +1,26 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+{{/*
+  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 -}}
similarity index 60%
rename from kubernetes/common/common-templates/values.yaml
rename to kubernetes/common/common/values.yaml
index 1128757..c8ded9a 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #################################################################
 # Global configuration default values that can be inherited by
 # all subcharts.
@@ -13,7 +27,7 @@ global:
 
   # readiness check
   readinessRepository: oomk8s
-  readinessImage: readiness-check:1.0.0
+  readinessImage: readiness-check:1.1.0
 
   # logging agent
   loggingRepository: docker.elastic.co
@@ -28,4 +42,4 @@ global:
     mountPath: /dockerdata-nfs
 
   # flag to enable debugging - application support required
-  debugEnabled: true
\ No newline at end of file
+  debugEnabled: true
diff --git a/kubernetes/common/dgbuilder/.helmignore b/kubernetes/common/dgbuilder/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/dgbuilder/Chart.yaml b/kubernetes/common/dgbuilder/Chart.yaml
new file mode 100644 (file)
index 0000000..e1955a1
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: D.G. Builder application
+name: dgbuilder
+version: 2.0.0
\ No newline at end of file
diff --git a/kubernetes/common/dgbuilder/requirements.yaml b/kubernetes/common/dgbuilder/requirements.yaml
new file mode 100644 (file)
index 0000000..acca8ef
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
@@ -1,5 +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.url=jdbc:mysql://{{.Values.dbServiceName}}.{{ include "common.namespace" . }}:3306/sdnctl
 org.onap.ccsdk.sli.jdbc.database=sdnctl
 org.onap.ccsdk.sli.jdbc.user=sdnctl
 org.onap.ccsdk.sli.jdbc.password=gamma
@@ -15,7 +15,7 @@ releaseDir="$1"
 name="Release $releaseDir"
 loginId="$2"
 emailid="$3"
-dbHost="appc-dbhost.{{.Values.nsPrefix}}"
+dbHost="{{.Values.dbServiceName}}.{{.Release.Namespace}}"
 dbPort="3306"
 dbName="sdnctl"
 dbUser="sdnctl"
@@ -96,7 +96,7 @@ 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.url=jdbc:mysql://{{.Values.dbServiceName}}.{{.Release.Namespace}}: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
@@ -14,7 +14,7 @@ module.exports={
         "user": "dguser",
         "pass": "cc03e747a6afbbcbf8be7668acfebee5"
     },
-    "dbHost": "appc-dbhost.{{.Values.nsPrefix}}",
+    "dbHost": "{{.Values.dbServiceName}}.{{ include "common.namespace" . }}",
     "dbPort": "3306",
     "dbName": "sdnctl",
     "dbUser": "sdnctl",
diff --git a/kubernetes/common/dgbuilder/templates/NOTES.txt b/kubernetes/common/dgbuilder/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..2465e03
--- /dev/null
@@ -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.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ 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/common/dgbuilder/templates/configmap.yaml b/kubernetes/common/dgbuilder/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..7ef92d0
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-config
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-scripts
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/scripts/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/common/dgbuilder/templates/deployment.yaml b/kubernetes/common/dgbuilder/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..4e1f101
--- /dev/null
@@ -0,0 +1,98 @@
+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
+        - {{ .Values.dbPodName }}
+        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: {{ include "common.name" . }}
+          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          command:
+          - /bin/bash
+          - -c
+          - cd /opt/onap/sdnc/dgbuilder/ && ./start.sh sdnc1.0 && wait
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          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
+          - name: SDNC_CONFIG_DIR
+            value: /opt/onap/sdnc/data/properties
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - name: config
+            mountPath: /opt/app/application.properties
+            subPath: application.properties
+          - name: config
+            mountPath: /opt/onap/sdnc/dgbuilder/releases/sdnc1.0/conf/svclogic.properties
+            subPath: svclogic.properties
+          - name: config
+            mountPath: /opt/onap/sdnc/dgbuilder/svclogic/svclogic.properties
+            subPath: svclogic.properties
+          - name: scripts
+            mountPath: /opt/onap/sdnc/dgbuilder/createReleaseDir.sh
+            subPath: createReleaseDir.sh
+          - name: scripts
+            mountPath: /opt/onap/sdnc/dgbuilder/releases/sdnc1.0/customSettings.js
+            subPath: customSettings.js
+          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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: config
+          configMap:
+            name: {{ include "common.fullname" . }}-config
+        - name: scripts
+          configMap:
+            name: {{ include "common.fullname" . }}-scripts
+            defaultMode: 0755
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/common/dgbuilder/templates/secrets.yaml b/kubernetes/common/dgbuilder/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..7604be8
--- /dev/null
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.fullname" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+type: Opaque
+data:
+  db-root-password: {{ .Values.config.dbRootPassword | b64enc | quote }}
\ No newline at end of file
diff --git a/kubernetes/common/dgbuilder/templates/service.yaml b/kubernetes/common/dgbuilder/templates/service.yaml
new file mode 100644 (file)
index 0000000..c61cdd5
--- /dev/null
@@ -0,0 +1,26 @@
+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.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
\ No newline at end of file
diff --git a/kubernetes/common/dgbuilder/values.yaml b/kubernetes/common/dgbuilder/values.yaml
new file mode 100644 (file)
index 0000000..23f8eea
--- /dev/null
@@ -0,0 +1,93 @@
+# 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
+  
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/ccsdk-dgbuilder-image:v0.1.0
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+config:
+  dbRootPassword: openECOMP1.0
+
+# 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: dgbuilder
+  externalPort: 3000
+  internalPort: 3100
+  nodePort: 28
+
+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/common/mysql/.helmignore b/kubernetes/common/mysql/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/mysql/Chart.yaml b/kubernetes/common/mysql/Chart.yaml
new file mode 100644 (file)
index 0000000..99e7c44
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: MySQL Server
+name: mysql
+version: 2.0.0
diff --git a/kubernetes/common/mysql/requirements.yaml b/kubernetes/common/mysql/requirements.yaml
new file mode 100644 (file)
index 0000000..acca8ef
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/common/mysql/templates/configmap.yaml b/kubernetes/common/mysql/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..dd2b5b7
--- /dev/null
@@ -0,0 +1,18 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-db-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+  master.cnf: |
+    # Apply this config only on the master.
+    [mysqld]
+    log-bin
+    [localpathprefix]
+    master
+  slave.cnf: |
+    # Apply this config only on slaves.
+    [mysqld]
+    super-read-only
+    [localpathprefix]
+    slave
diff --git a/kubernetes/common/mysql/templates/nfs-provisoner.yaml b/kubernetes/common/mysql/templates/nfs-provisoner.yaml
new file mode 100644 (file)
index 0000000..478224e
--- /dev/null
@@ -0,0 +1,62 @@
+#{{ if not .Values.disableNfsProvisioner }}
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+  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 }}
+  strategy:
+    type: Recreate
+  template:
+    metadata:
+      labels:
+        app: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+        release: {{ .Release.Name }}
+    spec:
+      containers:
+        - name: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+          image: "{{ .Values.global.nfsprovisionerRepository | default .Values.nfsprovisionerRepository }}/{{ .Values.nfsprovisionerImage }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+            - name: nfs
+              containerPort: {{ .Values.service.nfsPort }}
+            - name: mountd
+              containerPort: {{ .Values.service.mountdPort }}
+            - name: rpcbind
+              containerPort: {{ .Values.service.rpcbindPort }}
+            - name: rpcbind-udp
+              containerPort: {{ .Values.service.rpcbindUdpPort }}
+              protocol: UDP
+          securityContext:
+            capabilities:
+              add:
+                - DAC_READ_SEARCH
+                - SYS_RESOURCE
+          args:
+            - "-provisioner={{ include "common.fullname" . }}/nfs"
+          env:
+            - name: POD_IP
+              valueFrom:
+                fieldRef:
+                  fieldPath: status.podIP
+            - name: SERVICE_NAME
+              value: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+            - name: POD_NAMESPACE
+              valueFrom:
+                fieldRef:
+                  fieldPath: metadata.namespace
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          volumeMounts:
+            - name: export-volume
+              mountPath: /export
+      volumes:
+        - name: export-volume
+          hostPath:
+            path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}
+#{{ end }}
diff --git a/kubernetes/common/mysql/templates/pv.yaml b/kubernetes/common/mysql/templates/pv.yaml
new file mode 100644 (file)
index 0000000..ba128b9
--- /dev/null
@@ -0,0 +1,22 @@
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-data
+  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 }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}
+{{- end -}}
diff --git a/kubernetes/common/mysql/templates/pvc.yaml b/kubernetes/common/mysql/templates/pvc.yaml
new file mode 100644 (file)
index 0000000..a2949fe
--- /dev/null
@@ -0,0 +1,23 @@
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-data
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.fullname" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.size }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
+{{- end -}}
\ No newline at end of file
diff --git a/kubernetes/common/mysql/templates/secrets.yaml b/kubernetes/common/mysql/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..7604be8
--- /dev/null
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.fullname" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+type: Opaque
+data:
+  db-root-password: {{ .Values.config.dbRootPassword | b64enc | quote }}
\ No newline at end of file
diff --git a/kubernetes/common/mysql/templates/service.yaml b/kubernetes/common/mysql/templates/service.yaml
new file mode 100644 (file)
index 0000000..c6a28c4
--- /dev/null
@@ -0,0 +1,90 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.service.name }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  ports:
+    - port: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
+#{{ if not .Values.disableNfsProvisioner }}
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+spec:
+  ports:
+    - name: nfs
+      port: {{ .Values.service.nfsPort }}
+    - name: mountd
+      port: {{ .Values.service.mountdPort }}
+    - name: rpcbind
+      port: {{ .Values.service.rpcbindPort }}
+    - name: rpcbind-udp
+      port: {{ .Values.service.rpcbindUdpPort }}
+      protocol: UDP
+  selector:
+    app: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+#{{ end }}
+---
+# Client service for connecting to any MySQL instance for reads.
+# Only master: sdnc-dbhost-0 accepts the write request.
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.service.name }}-read
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+spec:
+  ports:
+    - port: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.sdnctlPrefix }}-sdnctldb01
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+spec:
+  ports:
+    - port: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.sdnctlPrefix }}-sdnctldb02
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+spec:
+  ports:
+    - port: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
diff --git a/kubernetes/common/mysql/templates/statefulset.yaml b/kubernetes/common/mysql/templates/statefulset.yaml
new file mode 100644 (file)
index 0000000..7b55bf2
--- /dev/null
@@ -0,0 +1,238 @@
+apiVersion: apps/v1beta1
+kind: StatefulSet
+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:
+  serviceName: {{ .Values.service.name }}
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+#{{ if not .Values.disableNfsProvisioner }}
+      - name: {{ include "common.name" . }}-readiness
+        command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+#{{ end }}
+      - name: init-mysql
+        image: "{{ .Values.repository | default .Values.repository }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command:
+        - bash
+        - "-c"
+        - |
+          set -ex
+          # Generate mysql server-id from pod ordinal index.
+          [[ `hostname` =~ -([0-9]+)$ ]] || exit 1
+          ordinal=${BASH_REMATCH[1]}
+          echo BASH_REMATCH=${BASH_REMATCH}
+          echo [mysqld] > /mnt/conf.d/server-id.cnf
+          # Add an offset to avoid reserved server-id=0 value.
+          echo server-id=$((100 + $ordinal)) >> /mnt/conf.d/server-id.cnf
+          # Copy appropriate conf.d files from config-map to emptyDir.
+          if [[ $ordinal -eq 0 ]]; then
+            cp /mnt/config-map/master.cnf /mnt/conf.d/
+          else
+            cp /mnt/config-map/slave.cnf /mnt/conf.d/
+          fi
+        volumeMounts:
+        - name: conf
+          mountPath: /mnt/conf.d
+        - name: config-map
+          mountPath: /mnt/config-map
+
+      - name: clone-mysql
+        image: "{{ .Values.global.xtrabackupRepository | default .Values.xtrabackupRepository }}/{{ .Values.xtrabackupImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+          - name: MYSQL_ROOT_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: {{ template "common.fullname" . }}
+                key: db-root-password
+        command:
+        - bash
+        - "-c"
+        - |
+          set -ex
+          # Skip the clone if data already exists.
+          [[ -d /var/lib/mysql/mysql ]] && exit 0
+          # Skip the clone on master (ordinal index 0).
+          [[ `hostname` =~ -([0-9]+)$ ]] || exit 1
+          ordinal=${BASH_REMATCH[1]}
+          echo ${BASH_REMATCH}
+          [[ $ordinal -eq 0 ]] && exit 0
+          # Clone data from previous peer.
+          ncat --recv-only {{ template "common.name" . }}-$(($ordinal-1)).{{ .Values.service.name }}.{{ include "common.namespace" . }} 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
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-data
+          mountPath: /var/lib/mysql
+          subPath: mysql
+        - name: conf
+          mountPath: /etc/mysql/conf.d
+          
+      containers:
+        #sdnc-db-container
+        - name: {{ include "common.name" . }}
+          image: "{{ .Values.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:
+            exec:
+              command: ["mysqladmin", "ping"]
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+            timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
+          {{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
+            - name: MYSQL_ROOT_HOST
+              value: '%'
+            - name: MYSQL_ALLOW_EMPTY_PASSWORD
+              value: {{ .Values.config.dbAllowEmptyPassword | default "0" | quote }}
+          volumeMounts:
+          - mountPath: /var/lib/mysql
+            name: {{ include "common.fullname" . }}-data
+            subPath: mysql
+          - mountPath: /etc/mysql/conf.d
+            name: conf
+          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 }}
+
+        - name: xtrabackup
+          image: "{{ .Values.global.xtrabackupRepository | default .Values.xtrabackupRepository }}/{{ .Values.xtrabackupImage }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          env:
+            - name: MYSQL_ROOT_PASSWORD
+              valueFrom:
+                secretKeyRef:
+                  name: {{ template "common.fullname" . }}
+                  key: db-root-password
+          ports:
+          - containerPort: {{ .Values.xtrabackup.internalPort }}
+            name: xtrabackup
+          command:
+          - bash
+          - "-c"
+          - |
+            set -ex
+            cd /var/lib/mysql
+            ls -l
+            # Determine binlog position of cloned data, if any.
+            if [[ -f xtrabackup_slave_info ]]; then
+              echo "Inside xtrabackup_slave_info"
+              # XtraBackup already generated a partial "CHANGE MASTER TO" query
+              # because we're cloning from an existing slave.
+              mv xtrabackup_slave_info change_master_to.sql.in
+              # Ignore xtrabackup_binlog_info in this case (it's useless).
+              rm -f xtrabackup_binlog_info
+            elif [[ -f xtrabackup_binlog_info ]]; then
+              echo "Inside xtrabackup_binlog_info"
+              # We're cloning directly from master. Parse binlog position.
+              [[ `cat xtrabackup_binlog_info` =~ ^(.*?)[[:space:]]+(.*?)$ ]] || exit 1
+              rm xtrabackup_binlog_info
+              echo "CHANGE MASTER TO MASTER_LOG_FILE='${BASH_REMATCH[1]}',\
+                    MASTER_LOG_POS=${BASH_REMATCH[2]}" > change_master_to.sql.in
+            fi
+
+            # Check if we need to complete a clone by starting replication.
+            if [[ -f change_master_to.sql.in ]]; then
+              echo "Waiting for mysqld to be ready (accepting connections)"
+              [[ `hostname` =~ -([0-9]+)$ ]] || exit 1
+              ordinal=${BASH_REMATCH[1]}
+              echo $ordinal
+              until mysql --user=root --password=$MYSQL_ROOT_PASSWORD -h localhost -e "SELECT 1"; do sleep 1; done
+
+              echo "Initializing replication from clone position"
+              # In case of container restart, attempt this at-most-once.
+              mv change_master_to.sql.in change_master_to.sql.orig
+              mysql --user=root --password=$MYSQL_ROOT_PASSWORD -h localhost <<EOF
+            $(<change_master_to.sql.orig),
+              MASTER_HOST="{{ template "common.name" . }}-0.{{ .Values.service.name }}.{{ include "common.namespace" . }}",
+              MASTER_USER="root",
+              MASTER_PASSWORD="$MYSQL_ROOT_PASSWORD",
+              MASTER_CONNECT_RETRY=10;
+            START SLAVE;
+            EOF
+            fi
+
+            # Start a server to send backups when requested by peers.
+            exec ncat --listen --keep-open --send-only --max-conns=1 3307 -c \
+              "xtrabackup --user=root --password=$MYSQL_ROOT_PASSWORD --backup --slave-info --stream=xbstream --host=localhost"
+          volumeMounts:
+          - name: {{ include "common.fullname" . }}-data
+            mountPath: /var/lib/mysql
+            subPath: mysql
+          - name: conf
+            mountPath: /etc/mysql/conf.d
+      volumes:
+      - name: conf
+        emptyDir: {}
+      - name: config-map
+        configMap:
+          name: {{ include "common.fullname" . }}-db-configmap
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: {{ include "common.fullname" . }}-data
+#{{ if not .Values.disableNfsProvisioner }}
+  volumeClaimTemplates:
+  - metadata:
+      name: {{ include "common.fullname" . }}-data
+      annotations:
+        volume.beta.kubernetes.io/storage-class: "{{ include "common.fullname" . }}-data"
+    spec:
+      accessModes: ["ReadWriteMany"]
+      resources:
+        requests:
+          storage: 1Gi
+#{{ else if .Values.persistence.enabled }}
+        persistentVolumeClaim:
+          claimName: {{ include "common.fullname" . }}-data
+#{{ else }}
+        emptyDir: {}
+#{{ end }}
diff --git a/kubernetes/common/mysql/templates/storageclass.yaml b/kubernetes/common/mysql/templates/storageclass.yaml
new file mode 100644 (file)
index 0000000..1a4e6b6
--- /dev/null
@@ -0,0 +1,6 @@
+kind: StorageClass
+apiVersion: storage.k8s.io/v1
+metadata:
+  name: "{{ include "common.fullname" . }}-data"
+  namespace: {{ include "common.namespace" . }}
+provisioner: {{ include "common.fullname" . }}/nfs
diff --git a/kubernetes/common/mysql/values.yaml b/kubernetes/common/mysql/values.yaml
new file mode 100644 (file)
index 0000000..c0beb6f
--- /dev/null
@@ -0,0 +1,111 @@
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  persistence: {}
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.0.0
+
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+
+#repository: mysql
+repository: registry.hub.docker.com
+image: library/mysql:5.7
+pullPolicy: Always
+
+# application configuration
+config:
+  dbRootPassword: openECOMP1.0
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 30
+  periodSeconds: 10
+  timeoutSeconds: 5
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 5
+  periodSeconds: 10
+
+## Persist data to a persitent volume
+persistence:
+  enabled: false
+  
+  ## 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)
+  accessMode: ReadWriteMany
+  size: 1Gi
+  mountPath: /dockerdata-nfs
+  mountSubPath: mysql/data
+
+service:
+  name: mysql
+  internalPort: 3306
+  # nfs provisioner ports
+  nfsPort: 2049
+  mountdPort: 20048
+  rpcbindPort: 111
+  rpcbindUdpPort: 111
+
+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
+
+#################################################################
+# Sidecar Configuration.
+#
+# xtrabackup configuration defaults.
+#################################################################
+xtrabackupRepository: gcr.io/google-samples
+xtrabackupImage: xtrabackup:1.0
+xtrabackup:
+  internalPort: 3307
+
+nfsprovisionerRepository: quay.io
+nfsprovisionerImage: kubernetes_incubator/nfs-provisioner:v1.0.8
+nfsprovisionerPrefix: mysql
+
+sdnctlPrefix: mysql
index ddad999..5c114e0 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: ONAP configuration pod
 name: config
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/bin/kubectl b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/bin/kubectl
deleted file mode 100755 (executable)
index d53ce5f..0000000
Binary files a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/bin/kubectl and /dev/null differ
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
deleted file mode 100755 (executable)
index fce0a63..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-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
-         echo Failed GET from Search Document Storage 2>&1
-         exit 1
-      fi
-   else
-      echo Failed DELETE from Search Document Storage 2>&1
-      exit 1
-   fi
-else
-   echo Failed PUT from Search Document Storage 2>&1
-   exit 1
-fi
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
deleted file mode 100755 (executable)
index 9abfd49..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-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 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
-      echo Failed. APPC DBHost is not running. 2>&1
-      exit 1
-   fi
-else
-   echo Failed. APPC DBHost is offline. 2>&1
-   exit 1
-fi
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
deleted file mode 100755 (executable)
index e55c90f..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-
-NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "gremlin[^[:space:]]*")
-
-if [ -n "$NAME" ]; 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
-   else
-      echo Failed. Gremlin Server process is not running. 2>&1
-      exit 1
-   fi
-else
-   echo Failed. Gremlin Server container is offline. 2>&1
-   exit 1
-fi
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
deleted file mode 100755 (executable)
index 8a523ce..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-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 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
-      echo Failed. SDNC DBHost is not running. 2>&1
-      exit 1
-   fi
-else
-   echo Failed. SDNC DBHost is offline. 2>&1
-   exit 1
-fi
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
deleted file mode 100755 (executable)
index 1b96b3a..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-# File generated from /opt/config
-#
-GLOBAL_INJECTED_AAI1_IP_ADDR = "aai-service.namespace-placeholder"
-GLOBAL_INJECTED_AAI2_IP_ADDR = "N/A"
-GLOBAL_INJECTED_APPC_IP_ADDR = "appc-sdnhost.namespace-placeholder"
-GLOBAL_INJECTED_ARTIFACTS_VERSION = "1.1.0-SNAPSHOT"
-GLOBAL_INJECTED_CLAMP_IP_ADDR = "clamp.namespace-placeholder"
-GLOBAL_INJECTED_CLOUD_ENV = "openstack"
-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.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.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.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.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.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.namespace-placeholder",
-    "GLOBAL_INJECTED_CLOUD_ENV" : "openstack",
-    "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.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.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.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.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"
-}
index 51d5138..80f05da 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 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"
index 3910b60..cd5154f 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 OPENSTACK_UBUNTU_14_IMAGE: ""
 OPENSTACK_PUBLIC_NET_ID: ""
 OPENSTACK_OAM_NETWORK_ID: ""
index 38d27ee..93c64ab 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 kind: ConfigMap
 metadata:
index 243996d..9fbbbfa 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # Default values for config.
 nsPrefix: onap
 dockerSharePath: /dockerdata-nfs
index 2d2d7ba..b82c39b 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: ONAP Consul Heath Monitor
 name: consul
@@ -5,7 +5,7 @@
       {
         "id": "data-router-process",
         "name": "Synapse Presence",
-        "script": "/consul/config/scripts/data-router-script.sh",
+        "script": "/consul/scripts/data-router-script.sh",
         "interval": "15s",
         "timeout": "1s"
       }
@@ -5,7 +5,7 @@
       {
         "id": "hbase-aai",
         "name": "HBase Health Check",
-        "http": "http://hbase.namespace-placeholder:8080/status/cluster",
+        "http": "http://hbase.{{ .Values.nsPrefix }}:8080/status/cluster",
         "method": "GET",
         "header": {
           "Cache-Control": ["no-cache"],
@@ -5,7 +5,7 @@
       {
         "id": "model-loader-process",
         "name": "Model Loader Presence",
-        "script": "/consul/config/scripts/model-loader-script.sh",
+        "script": "/consul/scripts/model-loader-script.sh",
         "interval": "15s",
         "timeout": "1s"
       }
@@ -5,26 +5,26 @@
       {
         "id": "elasticsearch",
         "name": "Search Data Service Document Store",
-        "http": "http://aai-elasticsearch.namespace-placeholder:9200/_cat/indices?v",
+        "http": "http://aai-elasticsearch.{{ .Values.nsPrefix }}:9200/_cat/indices?v",
         "interval": "15s",
         "timeout": "1s"
       },
       {
         "id": "elasticsearch-write-health",
         "name": "Search Data Service Document Store Write Test",
-        "script": "/consul/config/scripts/aai-search-storage-write-script.sh",
+        "script": "/consul/scripts/aai-search-storage-write-script.sh",
         "interval": "60s"
       },
       {
         "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.namespace-placeholder:9509/services/search-data-service/v1/jaxrsExample/jaxrs-services/echo/up 2>&1 | grep 'Up'",
+        "script": "curl -k  --cert /consul/certs/client-cert-onap.crt.pem --cert-type PEM --key /consul/certs/client-cert-onap.key.pem --key-type PEM https://search-data-service.{{ .Values.nsPrefix }}:9509/services/search-data-service/v1/jaxrsExample/jaxrs-services/echo/up 2>&1 | grep 'Up'",
         "interval": "15s"
       },
       {
         "id": "search-data-service-api",
         "name": "Search Data Service Operational Test",
-        "script": "/consul/config/scripts/search-data-service-availability.sh",
+        "script": "/consul/scripts/search-data-service-availability.sh",
         "interval": "15s",
         "timeout": "1s"
       }
@@ -5,7 +5,7 @@
       {
         "id": "aai-service",
         "name": "Core A&AI",
-        "http": "https://aai-service.namespace-placeholder:8443/aai/util/echo",
+        "http": "https://aai-service.{{ .Values.nsPrefix }}: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.namespace-placeholder:8447/aai/util/echo",
+        "http": "https://aai-resources.{{ .Values.nsPrefix }}: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.namespace-placeholder:8446/aai/util/echo",
+        "http": "https://aai-traversal.{{ .Values.nsPrefix }}:8446/aai/util/echo",
         "header": {
           "Authorization": ["Basic QUFJOkFBSQ=="],
           "X-TransactionId": ["ConsulHealthCheck"],
         "tls_skip_verify": true,
         "interval": "15s",
         "timeout": "1s"
-      },
-      {
-        "id": "gremlin-server",
-        "name": "Graph Data Store",
-        "script": "/consul/config/scripts/gremlin-script.sh",
-        "interval": "15s",
-        "timeout": "1s"
       }
     ]
   }
@@ -5,7 +5,7 @@
       {
         "id": "sparky-be-process",
         "name": "UI Backend Presence",
-        "script": "/consul/config/scripts/sparky-be-script.sh",
+        "script": "/consul/scripts/sparky-be-script.sh",
         "interval": "15s",
         "timeout": "1s"
       }
@@ -5,7 +5,7 @@
       {
         "id": "tabular-backend",
         "name": "Tabular Data Store Operational Test",
-        "script": "/consul/config/scripts/tabular-db-availability.sh",
+        "script": "/consul/scripts/tabular-db-availability.sh",
         "interval": "15s",
         "timeout": "1s"
       }
@@ -5,7 +5,7 @@
       {
         "id": "appc-dgbuilder",
         "name": "APPC-Dgbuilder Server Health Check",
-        "http": "http://appc-dgbuilder.namespace-placeholder:3000/",
+        "http": "http://appc-dgbuilder.{{ .Values.nsPrefix }}:3000/",
         "method": "HEAD",
         "header": {
           "Authorization": ["Basic ZGd1c2VyOnRlc3QxMjM="],
@@ -5,7 +5,7 @@
       {
         "id": "appc-dbhost-healthcheck",
         "name": "APPC DBHost Health Check",
-        "script": "/consul/config/scripts/appc-dbhost-script.sh",
+        "script": "/consul/scripts/appc-dbhost-script.sh",
         "interval": "10s",
         "timeout": "1s"
       }
@@ -3,9 +3,9 @@
     "name": "Health Check: APPC-SDN-CTL-DB-01",
     "checks": [
       {
-        "id": "appc-sdnctldb01.namespace-placeholder",
+        "id": "appc-sdnctldb01.{{ .Values.nsPrefix }}",
         "name": "APPC SDNCTLDB01 Health Check",
-        "tcp": "appc-sdnctldb01.namespace-placeholder:3306",
+        "tcp": "appc-sdnctldb01.{{ .Values.nsPrefix }}:3306",
         "interval": "10s",
         "timeout": "1s"
       }
@@ -3,9 +3,9 @@
     "name": "Health Check: APPC-SDN-CTL-DB-02",
     "checks": [
       {
-        "id": "appc-sdnctldb02.namespace-placeholder",
+        "id": "appc-sdnctldb02.{{ .Values.nsPrefix }}",
         "name": "APPC SDNCTLDB02 Health Check",
-        "tcp": "appc-sdnctldb02.namespace-placeholder:3306",
+        "tcp": "appc-sdnctldb02.{{ .Values.nsPrefix }}:3306",
         "interval": "10s",
         "timeout": "1s"
       }
@@ -5,7 +5,7 @@
       {
         "id": "appc-sdnhost",
         "name": "APPC SDN Host Health Check",
-        "http": "http://appc-sdnhost.namespace-placeholder:8282/apidoc/explorer/index.html",
+        "http": "http://appc-sdnhost.{{ .Values.nsPrefix }}:8282/apidoc/explorer/index.html",
         "method": "HEAD",
         "header": {
           "Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
@@ -5,7 +5,7 @@
       {
         "id": "log-elasticsearch-server",
         "name": "Log Elastic Search Health Check",
-        "http": "http://elasticsearch.namespace-placeholder:9200/_cluster/health?pretty",
+        "http": "http://elasticsearch.{{ .Values.nsPrefix }}:9200/_cluster/health?pretty",
         "method": "GET",
         "tls_skip_verify": true,
         "interval": "15s",
@@ -14,7 +14,7 @@
       {
         "id": "log-elasticsearch-tcp",
         "name": "Log Elastic Search TCP Health Check",
-        "tcp": "elasticsearchtcp.namespace-placeholder:9300",
+        "tcp": "elasticsearchtcp.{{ .Values.nsPrefix }}:9300",
         "interval": "15s",
         "timeout": "1s"
       }
@@ -5,7 +5,7 @@
       {
         "id": "log-kibana-server",
         "name": "Log kibana Health Check",
-        "http": "http://kibana.namespace-placeholder:5601/status",
+        "http": "http://kibana.{{ .Values.nsPrefix }}:5601/status",
         "method": "HEAD",
         "tls_skip_verify": true,
         "interval": "15s",
@@ -5,7 +5,7 @@
       {
         "id": "log-logstash-internal-server-gi",
         "name": "Log Stash Health Check - General Information",
-        "http": "http://logstashinternal.namespace-placeholder:9600/?pretty",
+        "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/?pretty",
         "method": "GET",
         "tls_skip_verify": true,
         "interval": "15s",
@@ -14,7 +14,7 @@
       {
         "id": "log-logstash-internal-server-node-info",
         "name": "Log Stash Health Check - Node Information",
-        "http": "http://logstashinternal.namespace-placeholder:9600/_node/?pretty",
+        "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/?pretty",
         "method": "GET",
         "tls_skip_verify": true,
         "interval": "15s",
@@ -23,7 +23,7 @@
       {
         "id": "log-logstash-internal-server-os-info",
         "name": "Log Stash Health Check - OS Information",
-        "http": "http://logstashinternal.namespace-placeholder:9600/_node/os?pretty",
+        "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/os?pretty",
         "method": "GET",
         "tls_skip_verify": true,
         "interval": "15s",
@@ -32,7 +32,7 @@
       {
         "id": "log-logstash-internal-server-jvm-info",
         "name": "Log Stash Health Check - JVM Information",
-        "http": "http://logstashinternal.namespace-placeholder:9600/_node/jvm?pretty",
+        "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/jvm?pretty",
         "method": "GET",
         "tls_skip_verify": true,
         "interval": "15s",
@@ -41,7 +41,7 @@
       {
         "id": "log-logstash-internal-server-plugin-info",
         "name": "Log Stash Health Check - Plugin Information",
-        "http": "http://logstashinternal.namespace-placeholder:9600/_node/plugins?pretty",
+        "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/plugins?pretty",
         "method": "GET",
         "tls_skip_verify": true,
         "interval": "15s",
@@ -50,7 +50,7 @@
       {
         "id": "log-logstash-internal-server-node-stat",
         "name": "Log Stash Health Check - Node Stats",
-        "http": "http://logstashinternal.namespace-placeholder:9600/_node/stats?pretty",
+        "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/stats?pretty",
         "method": "GET",
         "tls_skip_verify": true,
         "interval": "15s",
@@ -59,7 +59,7 @@
       {
         "id": "log-logstash-internal-server-jvm-stat",
         "name": "Log Stash Health Check - JVM Stats",
-        "http": "http://logstashinternal.namespace-placeholder:9600/_node/stats/jvm?pretty",
+        "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/stats/jvm?pretty",
         "method": "GET",
         "tls_skip_verify": true,
         "interval": "15s",
@@ -68,7 +68,7 @@
       {
         "id": "log-logstash-internal-server-process-stat",
         "name": "Log Stash Health Check - Process Stats",
-        "http": "http://logstashinternal.namespace-placeholder:9600/_node/stats/process?pretty",
+        "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/stats/process?pretty",
         "method": "GET",
         "tls_skip_verify": true,
         "interval": "15s",
@@ -77,7 +77,7 @@
       {
         "id": "log-logstash-internal-server-os-stat",
         "name": "Log Stash Health Check - OS Stats",
-        "http": "http://logstashinternal.namespace-placeholder:9600/_node/stats/os?pretty",
+        "http": "http://logstashinternal.{{ .Values.nsPrefix }}:9600/_node/stats/os?pretty",
         "method": "GET",
         "tls_skip_verify": true,
         "interval": "15s",
@@ -86,7 +86,7 @@
       {
         "id": "log-logstash-tcp",
         "name": "Log Stash File Beat TCP Health Check",
-        "tcp": "logstash.namespace-placeholder:5044",
+        "tcp": "logstash.{{ .Values.nsPrefix }}:5044",
         "interval": "15s",
         "timeout": "1s"
       }
@@ -2,7 +2,7 @@
   "service": {
     "name": "Health Check: Message Router - DMaaP",
     "check": {
-      "http": "http://dmaap.namespace-placeholder:3904/topics",
+      "http": "http://dmaap.{{ .Values.nsPrefix }}:3904/topics",
       "interval": "30s",
       "timeout": "1s"
     }
@@ -2,7 +2,7 @@
  "service": {
    "name": "Health Check: Message Router - Kafka",
    "check": {
-     "script": "/consul/config/scripts/mr-kafka-health.sh",
+     "script": "/consul/scripts/mr-kafka-health.sh",
      "interval": "30s",
      "timeout": "1s"
    }
@@ -2,7 +2,7 @@
  "service": {
    "name": "Health Check: Message Router - ZooKeeper",
    "check": {
-     "script": "/consul/config/scripts/mr-zookeeper-health.sh",
+     "script": "/consul/scripts/mr-zookeeper-health.sh",
      "interval": "30s",
      "timeout": "1s"
    }
@@ -3,34 +3,34 @@
     "name": "Health Check: MSB",
     "checks": [
       {
-        "id": "msb-eag.namespace-placeholder",
+        "id": "msb-eag.{{ .Values.nsPrefix }}",
         "name": "MSB eag Health Check",
-        "http": "http://msb-eag.namespace-placeholder:80/iui/microservices/default.html",
+        "http": "http://msb-eag.{{ .Values.nsPrefix }}:80/iui/microservices/default.html",
         "method": "HEAD",
         "tls_skip_verify": true,
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "msb-iag.namespace-placeholder",
+        "id": "msb-iag.{{ .Values.nsPrefix }}",
         "name": "MSB iag Health Check",
-        "http": "http://msb-iag.namespace-placeholder:80/iui/microservices/default.html",
+        "http": "http://msb-iag.{{ .Values.nsPrefix }}:80/iui/microservices/default.html",
         "method": "HEAD",
         "tls_skip_verify": true,
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "msb-consul.namespace-placeholder",
+        "id": "msb-consul.{{ .Values.nsPrefix }}",
         "name": "MSB consul Health Check",
-        "tcp": "msb-consul.namespace-placeholder:8500",
+        "tcp": "msb-consul.{{ .Values.nsPrefix }}:8500",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "msb-discovery.namespace-placeholder",
+        "id": "msb-discovery.{{ .Values.nsPrefix }}",
         "name": "MSB discovery Health Check",
-        "tcp": "msb-discovery.namespace-placeholder:10081",
+        "tcp": "msb-discovery.{{ .Values.nsPrefix }}:10081",
         "interval": "15s",
         "timeout": "1s"
       }
@@ -5,21 +5,21 @@
       {
         "id": "mso-api-healthcheck",
         "name": "MSO API Health Check",
-        "script": "/consul/config/scripts/mso-api-script.sh",
+        "script": "/consul/scripts/mso-api-script.sh",
         "interval": "10s",
         "timeout": "1s"
       },
       {
         "id": "mso-camunda-healthcheck",
         "name": "MSO Camunda Health Check",
-        "script": "/consul/config/scripts/mso-camunda-script.sh",
+        "script": "/consul/scripts/mso-camunda-script.sh",
         "interval": "10s",
         "timeout": "1s"
       },
       {
         "id": "mso-jra-healthcheck",
         "name": "MSO JRA Health Check",
-        "script": "/consul/config/scripts/mso-jra-script.sh",
+        "script": "/consul/scripts/mso-jra-script.sh",
         "interval": "10s",
         "timeout": "1s"
       }
@@ -5,7 +5,7 @@
       {
           "id": "mso-mariadb",
           "name": "MSO Mariadb Health Check",
-          "script": "/consul/config/scripts/mso-mariadb-script.sh",
+          "script": "/consul/scripts/mso-mariadb-script.sh",
           "interval": "10s",
           "timeout": "1s"
       }
@@ -5,7 +5,7 @@
       {
         "id": "framework",
         "name": "Framework Health Check",
-        "http": "http://framework.namespace-placeholder:9001/api/multicloud/v0/swagger.json",
+        "http": "http://framework.{{ .Values.nsPrefix }}:9001/api/multicloud/v0/swagger.json",
         "method": "HEAD",
         "header": {
           "Cache-Control": ["no-cache"],
@@ -19,7 +19,7 @@
       {
         "id": "multicloud-ocata",
         "name": "Multicloud Ocata Health Check",
-        "http": "http://multicloud-ocata.namespace-placeholder:9006/api/multicloud-ocata/v0/swagger.json",
+        "http": "http://multicloud-ocata.{{ .Values.nsPrefix }}:9006/api/multicloud-ocata/v0/swagger.json",
         "method": "HEAD",
         "header": {
           "Cache-Control": ["no-cache"],
@@ -33,7 +33,7 @@
       {
         "id": "multicloud-vio",
         "name": "Multicloud Vio Health Check",
-        "http": "http://multicloud-vio.namespace-placeholder:9004/api/multicloud-vio/v0/swagger.json",
+        "http": "http://multicloud-vio.{{ .Values.nsPrefix }}:9004/api/multicloud-vio/v0/swagger.json",
         "method": "HEAD",
         "header": {
           "Cache-Control": ["no-cache"],
@@ -47,7 +47,7 @@
       {
         "id": "multicloud-windriver",
         "name": "Multicloud Windriver Health Check",
-        "http": "http://multicloud-windriver.namespace-placeholder:9005/api/multicloud-titanium_cloud/v0/swagger.json",
+        "http": "http://multicloud-windriver.{{ .Values.nsPrefix }}:9005/api/multicloud-titanium_cloud/v0/swagger.json",
         "method": "HEAD",
         "header": {
           "Cache-Control": ["no-cache"],
diff --git a/kubernetes/consul/resources/config/consul-agent-config/scripts/aai-search-storage-write-script.sh b/kubernetes/consul/resources/config/consul-agent-config/scripts/aai-search-storage-write-script.sh
new file mode 100755 (executable)
index 0000000..3d26f6e
--- /dev/null
@@ -0,0 +1,17 @@
+if curl -s -X PUT http://aai-elasticsearch.{{ .Values.nsPrefix }}:9200/searchhealth/stats/testwrite -d @/consul/scripts/aai-search-storage-write-doc.txt | grep '\"created\":true'; then
+   if curl -s -X DELETE http://aai-elasticsearch.{{ .Values.nsPrefix }}:9200/searchhealth/stats/testwrite | grep '\"failed\":0'; then
+      if curl -s -X GET http://aai-elasticsearch.{{ .Values.nsPrefix }}:9200/searchhealth/stats/testwrite | grep '\"found\":false'; then
+         echo Successful PUT, DELETE, GET from Search Document Storage 2>&1
+         exit 0
+      else
+         echo Failed GET from Search Document Storage 2>&1
+         exit 1
+      fi
+   else
+      echo Failed DELETE from Search Document Storage 2>&1
+      exit 1
+   fi
+else
+   echo Failed PUT from Search Document Storage 2>&1
+   exit 1
+fi
diff --git a/kubernetes/consul/resources/config/consul-agent-config/scripts/appc-dbhost-script.sh b/kubernetes/consul/resources/config/consul-agent-config/scripts/appc-dbhost-script.sh
new file mode 100755 (executable)
index 0000000..5f91c5e
--- /dev/null
@@ -0,0 +1,13 @@
+APPC_DBHOST_POD=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }}  get pod | grep -o "appc-dbhost-[^[:space:]]*")
+if [ -n "$APPC_DBHOST_POD" ]; then
+   if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $APPC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then
+      echo Success. APPC DBHost is running. 2>&1
+      exit 0
+   else
+      echo Failed. APPC DBHost is not running. 2>&1
+      exit 1
+   fi
+else
+   echo Failed. APPC DBHost is offline. 2>&1
+   exit 1
+fi
@@ -1,8 +1,8 @@
 
-NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "data-router[^[:space:]]*")
+NAME=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "aai-data-router[^[:space:]]*")
 
 if [ -n "$NAME" ]; then
-   if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- ps -efww | grep 'java' | grep 'data-router' > /dev/null; then
+   if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $NAME -- ps -efww | grep 'java' | grep 'data-router' > /dev/null; then
 
       echo Success. Synapse process is running. 2>&1
       exit 0
@@ -1,8 +1,8 @@
 
-NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "model-loader[^[:space:]]*")
+NAME=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "aai-model-loader[^[:space:]]*")
 
 if [ -n "$NAME" ]; then
-   if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- ps -efww | grep 'java' | grep 'model-loader' > /dev/null; then
+   if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $NAME -- ps -efww | grep 'java' | grep 'model-loader' > /dev/null; then
 
       echo Success. Model Loader process is running. 2>&1
       exit 0
@@ -1,6 +1,6 @@
-kafkapod=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "global-kafka-[^[:space:]]*")
+kafkapod=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "message-router-global-kafka-[^[:space:]]*")
 if [ -n "$kafkapod" ]; then
-   if /consul/config/bin/kubectl -n namespace-placeholder exec -it $kafkapod -- ps ef | grep -i kafka; then
+   if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $kafkapod -- ps ef | grep -i kafka; then
       echo Success. Kafka process is running. 2>&1
       exit 0
    else
@@ -1,6 +1,6 @@
-zkpod=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "zookeeper-[^[:space:]]*")
+zkpod=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "message-router-zookeeper-[^[:space:]]*")
 if [ -n "$zkpod" ]; then
-   if /consul/config/bin/kubectl -n namespace-placeholder exec -it $zkpod -- ps ef | grep -i zookeeper; then
+   if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $zkpod -- ps ef | grep -i zookeeper; then
       echo Success. Zookeeper process is running. 2>&1
       exit 0
    else
@@ -1,5 +1,5 @@
 ## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://mso.namespace-placeholder:8080/ecomp/mso/infra/healthcheck"
+HEALTH_CHECK_ENDPOINT="http://mso.{{ .Values.nsPrefix }}:8080/ecomp/mso/infra/healthcheck"
 HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
 
 READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready")
@@ -1,5 +1,5 @@
 ## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://mso.namespace-placeholder:8080/mso/healthcheck"
+HEALTH_CHECK_ENDPOINT="http://mso.{{ .Values.nsPrefix }}:8080/mso/healthcheck"
 HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
 
 READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready")
@@ -1,5 +1,5 @@
 ## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://mso.namespace-placeholder:8080/networks/rest/healthcheck"
+HEALTH_CHECK_ENDPOINT="http://mso.{{ .Values.nsPrefix }}:8080/networks/rest/healthcheck"
 HEALTH_CHECK_RESPONSE=$(curl -s $HEALTH_CHECK_ENDPOINT)
 
 READY=$(echo $HEALTH_CHECK_RESPONSE | grep "Application ready")
@@ -1,7 +1,7 @@
-NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "mso-mariadb[^[:space:]]*")
+NAME=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "mso-mariadb[^[:space:]]*")
 
    if [ -n "$NAME" ]; 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
+       if /consul/bin/kubectl -n {{ .Values.nsPrefix }} 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
@@ -1,5 +1,5 @@
 ## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe.{{ .Values.nsPrefix }}: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
@@ -1,5 +1,5 @@
 ## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe.{{ .Values.nsPrefix }}: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
@@ -1,5 +1,5 @@
 ## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe.{{ .Values.nsPrefix }}: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
@@ -1,5 +1,5 @@
 ## Query the health check API.
-HEALTH_CHECK_ENDPOINT="http://sdc-fe.namespace-placeholder:8181/sdc1/rest/healthCheck"
+HEALTH_CHECK_ENDPOINT="http://sdc-fe.{{ .Values.nsPrefix }}: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/consul/resources/config/consul-agent-config/scripts/sdnc-dbhost-script.sh b/kubernetes/consul/resources/config/consul-agent-config/scripts/sdnc-dbhost-script.sh
new file mode 100755 (executable)
index 0000000..27b9b9f
--- /dev/null
@@ -0,0 +1,13 @@
+SDNC_DBHOST_POD=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }}  get pod | grep -o "sdnc-dbhost-[^[:space:]]*")
+if [ -n "$SDNC_DBHOST_POD" ]; then
+   if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $SDNC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then
+      echo Success. SDNC DBHost is running. 2>&1
+      exit 0
+   else
+      echo Failed. SDNC DBHost is not running. 2>&1
+      exit 1
+   fi
+else
+   echo Failed. SDNC DBHost is offline. 2>&1
+   exit 1
+fi
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-SEARCH_SERVICE_NAME="search-data-service.namespace-placeholder"
+SEARCH_SERVICE_NAME="search-data-service.{{ .Values.nsPrefix }}"
 SEARCH_SERVICE_PORT=9509
 HEALTH_CHECK_INDEX="healthcheck"
 
@@ -8,13 +8,11 @@ HEALTH_CHECK_INDEX="healthcheck"
 INDEX_URL="https://$SEARCH_SERVICE_NAME:$SEARCH_SERVICE_PORT/services/search-data-service/v1/search/indexes/$HEALTH_CHECK_INDEX"
 INDEX_SCHEMA="{\"fields\":[{\"name\": \"field1\", \"data-type\": \"string\"}]}"
 
-
-SEARCH_CERT_FILE="/consul/config/certs/client-cert-onap.crt.pem"
-SEARCH_KEY_FILE="/consul/config/certs/client-cert-onap.key.pem"
-
+SEARCH_CERT_FILE="/consul/certs/client-cert-onap.crt.pem"
+SEARCH_KEY_FILE="/consul/certs/client-cert-onap.key.pem"
 
 ## Try to create an index via the Search Data Service API.
-CREATE_INDEX_RESP=$(curl -s -o /dev/null -w "%{http_code}" -k --cert $SEARCH_CERT_FILE --cert-type PEM --key $SEARCH_KEY_FILE --key-type PEM -d "$INDEX_SCHEMA" --header "Content-Type: application/json" --header "X-TransactionId: ConsulHealthCheck" -X PUT $INDEX_URL) 
+CREATE_INDEX_RESP=$(curl -s -o /dev/null -w "%{http_code}" -k --cert $SEARCH_CERT_FILE --cert-type PEM --key $SEARCH_KEY_FILE --key-type PEM -d "$INDEX_SCHEMA" --header "Content-Type: application/json" --header "X-TransactionId: ConsulHealthCheck" -X PUT $INDEX_URL)
 
 RESULT_STRING=" "
 
@@ -33,13 +31,13 @@ else
 fi
 
 ## Now, clean up after ourselves.
-DELETE_INDEX_RESP=$(curl -s -o /dev/null -w "%{http_code}" -k --cert $SEARCH_CERT_FILE --cert-type PEM --key $SEARCH_KEY_FILE --key-type PEM -d "{ }" --header "Content-Type: application/json" --header "X-TransactionId: ConsulHealthCheck" -X DELETE $INDEX_URL) 
+DELETE_INDEX_RESP=$(curl -s -o /dev/null -w "%{http_code}" -k --cert $SEARCH_CERT_FILE --cert-type PEM --key $SEARCH_KEY_FILE --key-type PEM -d "{ }" --header "Content-Type: application/json" --header "X-TransactionId: ConsulHealthCheck" -X DELETE $INDEX_URL)
 
 if [ $DELETE_INDEX_RESP -eq 200 ]; then
    RESULT_STRING="Service Is Able To Communicate With Back End"
-else 
+else
    RESULT_STRING="Service API Failure - $DELETE_INDEX_RESP"
-   echo $RESULT_STRING 
+   echo $RESULT_STRING
    exit 1
 fi
 
@@ -1,8 +1,8 @@
 
-NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "aai-sparky-be[^[:space:]]*")
+NAME=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "aai-sparky-be[^[:space:]]*")
 
 if [ -n "$NAME" ]; then
-   if /consul/config/bin/kubectl -n namespace-placeholder exec -it $NAME -- ps -efww | grep 'java' | grep 'sparky' > /dev/null; then
+   if /consul/bin/kubectl -n {{ .Values.nsPrefix }} exec -it $NAME -- ps -efww | grep 'java' | grep 'sparky' > /dev/null; then
 
       echo Success. UI Backend Service process is running. 2>&1
       exit 0
@@ -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://aai-hbase.namespace-placeholder:8080/status/cluster)
+GET_CLUSTER_STATUS_RESPONSE=$(curl -si -X GET -H "Accept: text/xml" http://hbase.{{ .Values.nsPrefix }}:8080/status/cluster)
 
 if [ -z "$GET_CLUSTER_STATUS_RESPONSE" ]; then
   echo "Tabular store is unreachable."
@@ -1,7 +1,7 @@
-NAME=$(/consul/config/bin/kubectl -n namespace-placeholder get pod | grep -o "vid-mariadb[^[:space:]]*")
+NAME=$(/consul/bin/kubectl -n {{ .Values.nsPrefix }} get pod | grep -o "vid-mariadb[^[:space:]]*")
 
    if [ -n "$NAME" ]; 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
+       if /consul/bin/kubectl -n {{ .Values.nsPrefix }} 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
@@ -5,35 +5,35 @@
       {
         "id": "sdc-fe-healthcheck",
         "name": "SDC Front End Health Check",
-        "script": "/consul/config/scripts/sdc-fe-script.sh",
+        "script": "/consul/scripts/sdc-fe-script.sh",
         "interval": "10s",
         "timeout": "1s"
       },
       {
         "id": "sdc-be-healthcheck",
         "name": "SDC Back End Health Check",
-        "script": "/consul/config/scripts/sdc-be-script.sh",
+        "script": "/consul/scripts/sdc-be-script.sh",
         "interval": "10s",
         "timeout": "1s"
       },
       {
         "id": "sdc-titan-healthcheck",
         "name": "SDC Titan Health Check",
-        "script": "/consul/config/scripts/sdc-titan-script.sh",
+        "script": "/consul/scripts/sdc-titan-script.sh",
         "interval": "10s",
         "timeout": "1s"
       },
       {
         "id": "sdc-cs-healthcheck",
         "name": "SDC Cassandra Health Check",
-        "script": "/consul/config/scripts/sdc-cs-script.sh",
+        "script": "/consul/scripts/sdc-cs-script.sh",
         "interval": "10s",
         "timeout": "1s"
       },
       {
         "id": "sdc-catalog-healthcheck",
         "name": "SDC Catalog Health Check",
-        "http": "https://sdc-be.namespace-placeholder:8443/asdc/v1/catalog/services",
+        "http": "https://sdc-be.{{ .Values.nsPrefix }}:8443/asdc/v1/catalog/services",
         "header": {
           "Authorization": ["Basic dmlkOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU="],
           "X-ECOMP-InstanceID": ["VID"],
@@ -5,7 +5,7 @@
       {
         "id": "sdnc-dbhost-healthcheck",
         "name": "SDNC DBHOST Health Check",
-        "script": "/consul/config/scripts/sdnc-dbhost-script.sh",
+        "script": "/consul/scripts/sdnc-dbhost-script.sh",
         "interval": "10s",
         "timeout": "1s"
       }
@@ -5,7 +5,7 @@
       {
         "id": "sdnc-dgbuilder",
         "name": "SDNC-DGbuilder Health Check",
-        "http": "http://sdnc-dgbuilder.namespace-placeholder:3000/",
+        "http": "http://sdnc-dgbuilder.{{ .Values.nsPrefix }}:3000/",
         "method": "HEAD",
         "header": {
           "Authorization": ["Basic ZGd1c2VyOnRlc3QxMjM="],
@@ -5,7 +5,7 @@
       {
         "id": "odl-api-healthcheck",
         "name": "SDNC API Health Check",
-        "http": "http://sdnhost.namespace-placeholder:8282/restconf/operations/SLI-API:healthcheck",
+        "http": "http://sdnhost.{{ .Values.nsPrefix }}:8282/restconf/operations/SLI-API:healthcheck",
         "method": "POST",
         "header": {
           "Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
@@ -5,7 +5,7 @@
       {
         "id": "sdnc-portal",
         "name": "SDNC Portal Health Check",
-        "http": "http://sdnc-portal.namespace-placeholder:8843/login",
+        "http": "http://sdnc-portal.{{ .Values.nsPrefix }}:8843/login",
         "method": "HEAD",
         "header": {
           "Cache-Control": ["no-cache"],
@@ -3,9 +3,9 @@
     "name": "Health Check: SDNC-SDN-CTL-DB-01",
     "checks": [
       {
-        "id": "sdnctldb01.namespace-placeholder",
+        "id": "sdnctldb01.{{ .Values.nsPrefix }}",
         "name": "SDNC SDNCTLDB01 Health Check",
-        "tcp": "sdnctldb01.namespace-placeholder:3306",
+        "tcp": "sdnctldb01.{{ .Values.nsPrefix }}:3306",
         "interval": "10s",
         "timeout": "1s"
       }
@@ -3,9 +3,9 @@
     "name": "Health Check: SDNC-SDN-CTL-DB-02",
     "checks": [
       {
-        "id": "sdnctldb02.namespace-placeholder",
+        "id": "sdnctldb02.{{ .Values.nsPrefix }}",
         "name": "SDNC SDNCTLDB02 Health Check",
-        "tcp": "sdnctldb02.namespace-placeholder:3306",
+        "tcp": "sdnctldb02.{{ .Values.nsPrefix }}:3306",
         "interval": "10s",
         "timeout": "1s"
       }
@@ -5,7 +5,7 @@
       {
         "id": "sdnc-sdnhost",
         "name": "SDNC SDN Host Health Check",
-        "http": "http://sdnhost.namespace-placeholder:8282/apidoc/explorer/index.html",
+        "http": "http://sdnhost.{{ .Values.nsPrefix }}:8282/apidoc/explorer/index.html",
         "method": "HEAD",
         "header": {
           "Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
     "name": "Health Check: VFC",
     "checks": [
       {
-        "id": "vfc-catalog.namespace-placeholder",
+        "id": "vfc-catalog.{{ .Values.nsPrefix }}",
         "name": "VFC catalog Health Check",
-        "tcp": "vfc-catalog.namespace-placeholder:8806",
+        "tcp": "vfc-catalog.{{ .Values.nsPrefix }}:8806",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-emsdriver.namespace-placeholder",
+        "id": "vfc-emsdriver.{{ .Values.nsPrefix }}",
         "name": "VFC emsdriver Health Check",
-        "tcp": "vfc-emsdriver.namespace-placeholder:8206",
+        "tcp": "vfc-emsdriver.{{ .Values.nsPrefix }}:8206",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-gvnfmdriver.namespace-placeholder",
+        "id": "vfc-gvnfmdriver.{{ .Values.nsPrefix }}",
         "name": "VFC gvnfmdriver Health Check",
-        "tcp": "vfc-gvnfmdriver.namespace-placeholder:8484",
+        "tcp": "vfc-gvnfmdriver.{{ .Values.nsPrefix }}:8484",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-hwvnfmdriver.namespace-placeholder",
+        "id": "vfc-hwvnfmdriver.{{ .Values.nsPrefix }}",
         "name": "VFC hwvnfmdriver Health Check",
-        "tcp": "vfc-hwvnfmdriver.namespace-placeholder:8482",
+        "tcp": "vfc-hwvnfmdriver.{{ .Values.nsPrefix }}:8482",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-jujudriver.namespace-placeholder",
+        "id": "vfc-jujudriver.{{ .Values.nsPrefix }}",
         "name": "VFC jujudriver Health Check",
-        "tcp": "vfc-jujudriver.namespace-placeholder:8483",
+        "tcp": "vfc-jujudriver.{{ .Values.nsPrefix }}:8483",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-nokiavnfmdriver.namespace-placeholder",
+        "id": "vfc-nokiavnfmdriver.{{ .Values.nsPrefix }}",
         "name": "VFC nokiavnfmdriver Health Check",
-        "tcp": "vfc-nokiavnfmdriver.namespace-placeholder:8486",
+        "tcp": "vfc-nokiavnfmdriver.{{ .Values.nsPrefix }}:8486",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-nslcm.namespace-placeholder",
+        "id": "vfc-nslcm.{{ .Values.nsPrefix }}",
         "name": "VFC nslcm Health Check",
-        "tcp": "vfc-nslcm.namespace-placeholder:8403",
+        "tcp": "vfc-nslcm.{{ .Values.nsPrefix }}:8403",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-resmgr.namespace-placeholder",
+        "id": "vfc-resmgr.{{ .Values.nsPrefix }}",
         "name": "VFC resmgr Health Check",
-        "tcp": "vfc-resmgr.namespace-placeholder:8480",
+        "tcp": "vfc-resmgr.{{ .Values.nsPrefix }}:8480",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-vnflcm.namespace-placeholder",
+        "id": "vfc-vnflcm.{{ .Values.nsPrefix }}",
         "name": "VFC vnflcm Health Check",
-        "tcp": "vfc-vnflcm.namespace-placeholder:8801",
+        "tcp": "vfc-vnflcm.{{ .Values.nsPrefix }}:8801",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-vnfmgr.namespace-placeholder",
+        "id": "vfc-vnfmgr.{{ .Values.nsPrefix }}",
         "name": "VFC vnfmgr Health Check",
-        "tcp": "vfc-vnfmgr.namespace-placeholder:8803",
+        "tcp": "vfc-vnfmgr.{{ .Values.nsPrefix }}:8803",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-vnfres.namespace-placeholder",
+        "id": "vfc-vnfres.{{ .Values.nsPrefix }}",
         "name": "VFC vnfres Health Check",
-        "tcp": "vfc-vnfres.namespace-placeholder:8802",
+        "tcp": "vfc-vnfres.{{ .Values.nsPrefix }}:8802",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-workflow.namespace-placeholder",
+        "id": "vfc-workflow.{{ .Values.nsPrefix }}",
         "name": "VFC workflow Health Check",
-        "tcp": "vfc-workflow.namespace-placeholder:10550",
+        "tcp": "vfc-workflow.{{ .Values.nsPrefix }}:10550",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-workflowengineactiviti.namespace-placeholder",
+        "id": "vfc-workflowengineactiviti.{{ .Values.nsPrefix }}",
         "name": "VFC workflow-engine Health Check",
-        "tcp": "vfc-workflowengineactiviti.namespace-placeholder:8080",
+        "tcp": "vfc-workflowengineactiviti.{{ .Values.nsPrefix }}:8080",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-ztesdncdriver.namespace-placeholder",
+        "id": "vfc-ztesdncdriver.{{ .Values.nsPrefix }}",
         "name": "VFC ztesdncdriver Health Check",
-        "tcp": "vfc-ztesdncdriver.namespace-placeholder:8411",
+        "tcp": "vfc-ztesdncdriver.{{ .Values.nsPrefix }}:8411",
         "interval": "15s",
         "timeout": "1s"
       },
       {
-        "id": "vfc-ztevnfmdriver.namespace-placeholder",
+        "id": "vfc-ztevnfmdriver.{{ .Values.nsPrefix }}",
         "name": "VFC ztevnfmdriver Health Check",
-        "tcp": "vfc-ztevnfmdriver.namespace-placeholder:8410",
+        "tcp": "vfc-ztevnfmdriver.{{ .Values.nsPrefix }}:8410",
         "interval": "15s",
         "timeout": "1s"
       }
@@ -5,7 +5,7 @@
       {
         "id": "vid-server",
         "name": "VID Server Health Check",
-        "http": "http://vid-server.namespace-placeholder:8080/vid/healthCheck",
+        "http": "http://vid-server.{{ .Values.nsPrefix }}:8080/vid/healthCheck",
         "method": "GET",
         "header": {
           "Authorization": ["Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ=="],
@@ -20,7 +20,7 @@
       {
           "id": "vid-mariadb",
           "name": "Vid Mariadb Health Check",
-          "script": "/consul/config/scripts/vid-mariadb-script.sh",
+          "script": "/consul/scripts/vid-mariadb-script.sh",
           "interval": "10s",
           "timeout": "1s"
       }
diff --git a/kubernetes/consul/templates/consul-agent-configmap.yaml b/kubernetes/consul/templates/consul-agent-configmap.yaml
new file mode 100644 (file)
index 0000000..57d52c4
--- /dev/null
@@ -0,0 +1,39 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#{{ if not .Values.disableConsulConsulAgent }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: consul-agent-configmap
+  namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/consul-agent-config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: consul-agent-scripts-configmap
+  namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/consul-agent-config/scripts/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+  name: consul-agent-certs-secret
+  namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/consul-agent-config/certs/*").AsSecrets . | indent 2 }}
+#{{ end }}
index a2bbe66..2c4a14a 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableConsulConsulAgent }}
 apiVersion: extensions/v1beta1
 kind: Deployment
@@ -18,15 +32,26 @@ spec:
       name: consul-agent
     spec:
       containers:
-      - image: "{{ .Values.consulimageRegistry }}:{{ .Values.consuldockerTag }}"
+      - image: "{{ .Values.consulagentRegistry }}"
         command: ["/usr/local/bin/docker-entrypoint.sh"]
         args: ["agent","-client","0.0.0.0","-enable-script-checks","-join","consul-server.{{ .Values.nsPrefix }}"]
         name: consul-server
         volumeMounts:
         - mountPath: /consul/config
           name: consul-agent-config
+        - mountPath: /consul/scripts
+          name: consul-agent-scripts-config
+        - mountPath: /consul/certs
+          name: consul-agent-certs-config
       volumes:
-      - hostPath:
-          path: {{ .Values.rootHostPath }}/{{ .Values.nsPrefix }}/consul/consul-agent-config
+      - configMap:
+          name: consul-agent-configmap
         name: consul-agent-config
+      - configMap:
+          name: consul-agent-scripts-configmap
+          defaultMode: 0755
+        name: consul-agent-scripts-config
+      - secret:
+          secretName: consul-agent-certs-secret
+        name: consul-agent-certs-config
 #{{ end }}
index 6aafee4..50dfb77 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableConsulConsulServer }}
 apiVersion: extensions/v1beta1
 kind: Deployment
@@ -18,15 +32,8 @@ spec:
       name: consul-server
     spec:
       containers:
-      - image: "{{ .Values.consulimageRegistry }}:{{ .Values.consuldockerTag }}"
+      - image: "{{ .Values.consulserverRegistry }}"
         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 }}"]
         name: consul-server
-        volumeMounts:
-        - mountPath: /consul/config
-          name: consul-server-config
-      volumes:
-      - hostPath:
-          path: {{ .Values.rootHostPath }}/{{ .Values.nsPrefix }}/consul/consul-server-config
-        name: consul-server-config
 #{{ end }}
index a1e0801..1a646b4 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableConsulConsulServer }}
 apiVersion: v1
 kind: Service
index a6909d7..e86937a 100644 (file)
@@ -1,8 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: "onap"
 nodePortPrefix: 302
-consuldockerTag: "latest"
-rootHostPath: "/dockerdata-nfs"
-consulimageRegistry: "docker.io/consul"
+consulserverRegistry: "docker.io/consul:1.0.6"
+consulagentRegistry: "oomk8s/consul:1.0.0"
 consulAgentReplicas: 1
 consulServerReplicas: 3
 service:
diff --git a/kubernetes/dcae/Chart.yaml b/kubernetes/dcae/Chart.yaml
deleted file mode 100644 (file)
index 168a214..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-apiVersion: v1
-description: DCAE Gen 1
-name: DCAE
-version: 1.1.0
diff --git a/kubernetes/dcae/README b/kubernetes/dcae/README
deleted file mode 100644 (file)
index c733355..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-DCAE Port mapping
------------------------------------------------------------------------------------------
-Container name               |     Connector name    |    Node port      |  Target port  |
------------------------------------------------------------------------------------------
-dcae-collector-common-event  |        dcae-ce1       |      30236        |    8080       |
------------------------------------------------------------------------------------------
-                             |        dcae-ce2       |      30237        |    8443       |
------------------------------------------------------------------------------------------
-                             |        dcae-ce3       |      30238        |    9999       |
------------------------------------------------------------------------------------------
-dcae-collector-dmaapbc       |        dcae-bc1       |      30239        |    8080       |
------------------------------------------------------------------------------------------
-                             |        dcae-bc2       |      30240        |    8443       |
------------------------------------------------------------------------------------------
-dcae-ves-collector           |        dcae-ves1      |      30241        |    8080       |
------------------------------------------------------------------------------------------
-                             |        dcae-ves2      |      30242        |    9999       |
------------------------------------------------------------------------------------------
diff --git a/kubernetes/dcae/cdap/docker/00-provisioning.sh b/kubernetes/dcae/cdap/docker/00-provisioning.sh
deleted file mode 100755 (executable)
index 98b67c4..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-#!/bin/bash
-set -x
-
-export DEBIAN_FRONTEND=noninteractive
-
-##############################################################
-################### File provisioning ########################
-##############################################################
-
-cd /tmp
-
-
-## Adding configuration file: mount_config
-cat > /tmp/dcae-mount.conf << EOF_CONFIG
-osType: ubuntu
-volumes:
-  ephemeral:
-    uuid: ephemeral
-    size: 80
-    filesystems:
-      /opt/tools:
-        size: 80
-        type: ext4
-        mount_opts: ''
-  data:
-    uuid: cinder
-    size: 75
-    filesystems:
-      /opt/data:
-        size: 75
-        type: ext4
-        mount_opts: ''
-EOF_CONFIG
-
-
-## Adding configuration file: ecomp-nexus
-cat > /tmp/ecomp-nexus.crt << EOF_CONFIG
------BEGIN CERTIFICATE-----
-MIIFRTCCBC2gAwIBAgIQM/5eM8D0jY3yHTSyN5iO9zANBgkqhkiG9w0BAQsFADCB
-kDELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
-A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNV
-BAMTLUNPTU9ETyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD
-QTAeFw0xNzAzMjgwMDAwMDBaFw0xODAzMjgyMzU5NTlaMFcxITAfBgNVBAsTGERv
-bWFpbiBDb250cm9sIFZhbGlkYXRlZDEdMBsGA1UECxMUUG9zaXRpdmVTU0wgV2ls
-ZGNhcmQxEzARBgNVBAMMCioub25hcC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDIVo+kmG2sGaeIJy5pqP6mzlIwqYUXcFOG2fodsCPg9CEdlsBO
-IECuoPYmCqrJ/MHLfs+F+SjEoBfpJlqyrpLhVj8O/9xCp4Tda/YJ18n59uDJ7Rpq
-omqZlFCj/B4+H6+dkWCFy1FxYBBAIO52iscd4F6YHD1p3xUjJRd9Yf6qnktmSooI
-hbIKzPIpSTsYiN3ArWbrGeucoQUdKX+intRHFLkKay88R7yqoqguPFIEtkXwDoJj
-aV+rC103eZ1RLwtBcS/4UcDXRDfkyQANAYvKGeHiyGuRQqEUyGEmKz2i11m1oyEP
-uD1AK+zPd33wBdOe8iZMr0CxcOGhgcKOWJ7vAgMBAAGjggHRMIIBzTAfBgNVHSME
-GDAWgBSQr2o6lFoL2JDqElZz30O0Oija5zAdBgNVHQ4EFgQUMVkz3DD9qwhzY5WT
-/P1mCVpsauQwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYw
-FAYIKwYBBQUHAwEGCCsGAQUFBwMCME8GA1UdIARIMEYwOgYLKwYBBAGyMQECAgcw
-KzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNvbS9DUFMwCAYG
-Z4EMAQIBMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwuY29tb2RvY2EuY29t
-L0NPTU9ET1JTQURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcmwwgYUG
-CCsGAQUFBwEBBHkwdzBPBggrBgEFBQcwAoZDaHR0cDovL2NydC5jb21vZG9jYS5j
-b20vQ09NT0RPUlNBRG9tYWluVmFsaWRhdGlvblNlY3VyZVNlcnZlckNBLmNydDAk
-BggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMB8GA1UdEQQYMBaC
-Cioub25hcC5vcmeCCG9uYXAub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQAd5mu22sts
-at/bdRlIOz3dbqGwIFOo8XajlAs6ApMpyx/xetcgIKipzvGp9Wc1X8lDZl4boCH6
-KQ1//4tpksYj8RsZSZeac8vQLKggWO107sBa33yFg6Y1Dk2DdgOKZ+lNbvB1iMwK
-hSGtV3HYx1jLyQRoeYby4R7+kTI1lHAiOgT+vn5C9Z3TxqfgWuBf24CFp/95gki6
-vRysJh9Jf7A8JrrMGykC94Tpo6OiUehtQ+f65xtetvwsfNHVp3hsLzR5KwIMDARI
-IgXKyROodILsOXfR9qdA9klcXUSi6qvKF8wAopNuot4Ltyz8chiFKISjxqVrKnY2
-M7En/HyX0s1I
------END CERTIFICATE-----
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-cdap.properties
-cat > /tmp/vm-cdap-cluster-cdap.properties << EOF_CONFIG
-cluster.endpoint= foobar
-cluster.user= foobar
-cluster.password= foobar
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-console.properties
-cat > /tmp/vm-cdap-cluster-console.properties << EOF_CONFIG
-localhost.endpoint=http://localhost:1999
-localhost.user=console
-localhost.password=NTJhYWU1NzAwMzc3OTk1
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-gui.properties
-cat > /tmp/vm-cdap-cluster-gui.properties << EOF_CONFIG
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-log4j.properties
-cat > /tmp/vm-cdap-cluster-log4j.properties << EOF_CONFIG
-#log4j.debug=0
-log4j.rootLogger=warn, file
-log4j.logger.org.openecomp.ncomp=info, file
-log4j.additivity.org.openecomp.ncomp=false
-
-#log4j.logger.org.apache.http.headers=debug, file
-#log4j.logger.org.apache.http.wire=debug, file
-## uploaded logger
-log4j.logger.org.openecomp.ncomp.sirius.manager.uploaded=info, uploaded
-log4j.additivity.org.openecomp.ncomp.sirius.manager.uploaded=false
-## request logging
-log4j.logger.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=info, requests
-log4j.additivity.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=false
-## openstack polling
-log4j.logger.org.openecomp.ncomp.openstack.OpenStackUtil.polling=info, polling
-log4j.additivity.org.openecomp.ncomp.openstack.OpenStackUtil.polling=false
-log4j.appender.file=org.apache.log4j.RollingFileAppender
-log4j.appender.file.File=logs/manager.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.file.MaxFileSize=50MB
-log4j.appender.file.MaxBackupIndex=5
-
-log4j.appender.uploaded=org.apache.log4j.RollingFileAppender
-log4j.appender.uploaded.File=logs/manager-uploaded.log
-log4j.appender.uploaded.layout=org.apache.log4j.PatternLayout
-log4j.appender.uploaded.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.uploaded.MaxFileSize=50MB
-log4j.appender.uploaded.MaxBackupIndex=5
-
-log4j.appender.requests=org.apache.log4j.RollingFileAppender
-log4j.appender.requests.File=logs/manager-requests.log
-log4j.appender.requests.layout=org.apache.log4j.PatternLayout
-log4j.appender.requests.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.requests.MaxFileSize=50MB
-log4j.appender.requests.MaxBackupIndex=5
-log4j.appender.polling=org.apache.log4j.RollingFileAppender
-log4j.appender.polling.File=logs/manager-polling.log
-log4j.appender.polling.layout=org.apache.log4j.PatternLayout
-log4j.appender.polling.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.polling.MaxFileSize=50MB
-log4j.appender.polling.MaxBackupIndex=5
-
-### ECOMP Logging
-log4j.logger.org.openecomp.audit=info, audit
-log4j.additivity.org.openecomp.audit=false
-log4j.logger.org.openecomp.metrics=info, metrics
-log4j.additivity.org.openecomp.metrics=false
-log4j.logger.org.openecomp.error=info, error
-log4j.additivity.org.openecomp.error=false
-log4j.logger.com.att.eelf.debug=info, debug
-log4j.additivity.org.openecomp.debug=false
-log4j.appender.audit=org.apache.log4j.RollingFileAppender
-log4j.appender.audit.File=logs/audit.log
-log4j.appender.audit.layout=org.apache.log4j.PatternLayout
-log4j.appender.audit.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%5p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.audit.MaxFileSize=50MB
-log4j.appender.audit.MaxBackupIndex=5
-log4j.appender.metrics=org.apache.log4j.RollingFileAppender
-log4j.appender.metrics.File=logs/metrics.log
-log4j.appender.metrics.layout=org.apache.log4j.PatternLayout
-log4j.appender.metrics.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.metrics.MaxFileSize=50MB
-log4j.appender.metrics.MaxBackupIndex=5
-log4j.appender.error=org.apache.log4j.RollingFileAppender
-log4j.appender.error.File=logs/error.log
-log4j.appender.error.layout=org.apache.log4j.PatternLayout
-log4j.appender.error.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.error.MaxFileSize=50MB
-log4j.appender.error.MaxBackupIndex=5
-log4j.appender.debug=org.apache.log4j.RollingFileAppender
-log4j.appender.debug.File=logs/debug.log
-log4j.appender.debug.layout=org.apache.log4j.PatternLayout
-log4j.appender.debug.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.debug.MaxFileSize=50MB
-log4j.appender.debug.MaxBackupIndex=5
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-manager.properties
-cat > /tmp/vm-cdap-cluster-manager.properties << EOF_CONFIG
-server.dir = data/resources
-metrics.dir = data/metrics
-properties.dir = data/properties
-server.port = 1999
-server.user.console = NTJhYWU1NzAwMzc3OTk1
-server.user.gui = MDlhZWVjZWEwMmFiOTJi
-server.user.client = YmE2OGE1N2U5NzRmMDg1
-EOF_CONFIG
-
-
-## Adding configuration file: vm-cdap-cluster-runtime.properties
-cat > /tmp/vm-cdap-cluster-runtime.properties << EOF_CONFIG
-factory.vm=org.openecomp.dcae.controller.service.servers.vm.DcaeVmFactory
-
-## Adding configuration file: monitoring-agent-gui.properties
-cat > /tmp/monitoring-agent-gui.properties << EOF_CONFIG
-EOF_CONFIG
-
-
-cat > /tmp/certificate.pkcs12.b64code << EOF_CERT
-EOF_CERT
-
-
-##############################################################
-################## Config Provisioning #######################
-##############################################################
-
-mkdir -p ~/.ssh
-touch ~/.ssh/authorized_keys
-echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBn8Ctt5hJGkTQaffuSeINeABV4viBIM4TcP14kaLiWR1LkyNY+TaUnjxODobtZa4YW1lxFtoMCfZt2A5W9ZZPM+shZr4BOj+wU+xIrzn7ezN/CQjH7c4Wh0mWteuPnJrtdpyGQ/qBI2T+xo5G/Tl++SPUvvN2D4H8vl0miEgVPR47/P7Ba6kl7Bmrf9m0VDPdS69Qr2AhgBq5Qi/fTeGZA4sfKDHHRJxkQIXYmS8R5FISRpBD7ta2NTHapRz9dC6Cw8UttEFiWFUBjN6lwF9LUOkj9MiqiTQaElKKQzMIHr0AhlgIkwBLKAJoDrGQD9GKPwKCdW3OmnODMPxJjXc3 > ~/.ssh/authorized_keys
-
-cp /tmp/ecomp-nexus.crt /usr/local/share/ca-certificates/ ; update-ca-certificates
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-core-utils/1.1.0/dcae-controller-core-utils-1.1.0-runtime.zip -P /opt/app/dcae-controller-core-utils
-
-cd /opt/app/dcae-controller-core-utils
-unzip -o dcae-controller-core-utils*.zip
-
-chown -R dcae:dcae /opt/app/dcae-controller-core-utils
-
-/opt/app/dcae-controller-core-utils/bin/fs-init.py
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-cdap-cluster-manager/1.1.0/dcae-controller-service-cdap-cluster-manager-1.1.0-runtime.zip -P /opt/app/dcae-controller-service-cdap-cluster-manager
-
-cd /opt/app/dcae-controller-service-cdap-cluster-manager
-unzip -o dcae-controller-service-cdap-cluster-manager*.zip
-
-chown -R dcae:dcae /opt/app/dcae-controller-service-cdap-cluster-manager
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-dmaap-drsub/1.1.0/dcae-controller-service-dmaap-drsub-1.1.0.pom -P /opt/app/dcae-controller-service-dmaap-drsub
-
-chown -R dcae:dcae /opt/app/dcae-controller-service-dmaap-drsub
-
-curl -s -k -f -o /tmp/dcae-apod-cdap-small-hadoop_1.1.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.apod.cdap/deb-releases/dcae-apod-cdap-small-hadoop_1.1.0.deb
-
-curl -s -k -f -o /tmp/dcae-apod-analytics-tca_1.1.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.apod.analytics/deb-releases/dcae-apod-analytics-tca_1.1.0.deb
-
-curl -s -k -f -o /tmp/HelloWorld-3.5.1.jar http://repo1.maven.org/maven2/co/cask/cdap/HelloWorld/3.5.1/HelloWorld-3.5.1.jar
-mkdir -p /opt/app/cask-hello-world/lib
-mv /tmp/HelloWorld-3.5.1.jar /opt/app/cask-hello-world/lib
-
-find /opt -type f -exec sed -i 's/sudo//g' {} \;
-
-apt-key adv --keyserver-options --keyserver keyserver.ubuntu.com --recv 07513CAD
-wget -qO - http://repository.cask.co/ubuntu/precise/amd64/cdap/3.5/pubkey.gpg | apt-key add -
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-dmaap-drsub-manager/1.1.0/dcae-controller-service-dmaap-drsub-manager-1.1.0-runtime.zip -P /opt/app/dcae-controller-service-dmaap-drsub-manager
-
-cd /opt/app/dcae-controller-service-dmaap-drsub-manager
-unzip -o dcae-controller-service-dmaap-drsub-manager-1.1.0-runtime.zip
-
-chown -R dcae:dcae /opt/app/dcae-controller-service-dmaap-drsub-manager
-
-mkdir /home/dcae/.ssh
-chmod og-rwx /home/dcae/.ssh
-chown -R dcae:dcae /home/dcae/.ssh
-touch /home/dcae/.ssh/authorized_keys
-chmod og-rwx /home/dcae/.ssh/authorized_keys
-chown -R dcae:dcae /home/dcae/.ssh/authorized_keys
-echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBn8Ctt5hJGkTQaffuSeINeABV4viBIM4TcP14kaLiWR1LkyNY+TaUnjxODobtZa4YW1lxFtoMCfZt2A5W9ZZPM+shZr4BOj+wU+xIrzn7ezN/CQjH7c4Wh0mWteuPnJrtdpyGQ/qBI2T+xo5G/Tl++SPUvvN2D4H8vl0miEgVPR47/P7Ba6kl7Bmrf9m0VDPdS69Qr2AhgBq5Qi/fTeGZA4sfKDHHRJxkQIXYmS8R5FISRpBD7ta2NTHapRz9dC6Cw8UttEFiWFUBjN6lwF9LUOkj9MiqiTQaElKKQzMIHr0AhlgIkwBLKAJoDrGQD9GKPwKCdW3OmnODMPxJjXc3 >> /home/dcae/.ssh/authorized_keys
-
-#bash /opt/app/dcae-cdap-small-hadoop/install.sh
diff --git a/kubernetes/dcae/cdap/docker/01-entrypoint.sh b/kubernetes/dcae/cdap/docker/01-entrypoint.sh
deleted file mode 100755 (executable)
index 952d1d4..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-dpkg --install /tmp/dcae-apod-cdap-small-hadoop_1.1.0.deb
-dpkg --install /tmp/dcae-apod-analytics-tca_1.1.0.deb
-
-bash /opt/app/dcae-cdap-small-hadoop/install.sh
-su dcae -c "/opt/app/dcae-controller-service-cdap-cluster-manager/bin/manager.sh config"
-su dcae -c "/opt/app/dcae-controller-service-cdap-cluster-manager/bin/manager.sh restart"
\ No newline at end of file
diff --git a/kubernetes/dcae/cdap/docker/Dockerfile b/kubernetes/dcae/cdap/docker/Dockerfile
deleted file mode 100644 (file)
index 5b8583e..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-FROM ubuntu:16.04
-
-# Setup apt.conf proxy settings
-#RUN echo 'Acquire::http::proxy "http://some.proxy:8084/";' >> /etc/apt/apt.conf
-
-# Setup Corporate proxy
-#ENV no_proxy "localhost,127.0.0.1,localaddress,.localdomain.com,192.168.141.0/24"
-#ENV https_proxy http://some.proxy:8084/
-#ENV http_proxy http://fsome.proxy:8084/
-#ENV HTTP_PROXY http://some.proxy:8084/
-#ENV HTTPS_PROXY http://some.proxy:8084/
-#ENV FTP_PROXY http://some.proxy:8084/
-#ENV NO_PROXY "localhost,127.0.0.1,localaddress,.localdomain.com,192.168.141.0/24"
-
-# Additional packages
-RUN apt-get update -y
-RUN apt-get install -y git wget unzip curl dnsutils sudo
-RUN apt-get install -y maven unzip
-
-# Install python and pip
-RUN apt-get install -y python
-RUN wget https://bootstrap.pypa.io/get-pip.py
-RUN python get-pip.py
-RUN rm get-pip.py
-RUN pip install pyyaml
-
-# Install Groovy
-RUN mkdir -p /opt/app
-RUN (cd /opt/app ; curl -Lo apache-groovy-binary-2.4.6.zip https://dl.bintray.com/groovy/maven/apache-groovy-binary-2.4.6.zip )
-RUN (cd /opt/app ; unzip apache-groovy-binary-2.4.6.zip )
-RUN mkdir -p /opt/app/java/jdk
-RUN ln -s /usr /opt/app/java/jdk/jdk170
-RUN mkdir -p /opt/app/groovy
-RUN ln -s /opt/app/groovy-2.4.6 /opt/app/groovy/246
-ENV JAVA_HOME /opt/app/java/jdk/jdk170
-
-# Create user dcae
-RUN if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-# Hadoop
-EXPOSE 8020 8025 50070 50075 50010 50020
-
-# Zookeeper
-EXPOSE 3888 2888 2181
-
-VOLUME /opt/tools
-VOLUME /opt/data
-
-# Provisioning
-COPY 00-provisioning.sh /usr/local/bin/00-provisioning.sh
-RUN chmod a+x /usr/local/bin/00-provisioning.sh
-RUN /usr/local/bin/00-provisioning.sh
-
-# define the entrypoint
-COPY 01-entrypoint.sh /usr/local/bin/01-entrypoint.sh
-RUN chmod a+x /usr/local/bin/01-entrypoint.sh
-ENTRYPOINT ["/usr/local/bin/01-entrypoint.sh"]
diff --git a/kubernetes/dcae/cdap/docker/docker-compose.yaml b/kubernetes/dcae/cdap/docker/docker-compose.yaml
deleted file mode 100644 (file)
index 8800c10..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-version: '2'
-services:
-  cdap00:
-    build: .
-    hostname: zldcprivatecloudtruecdap00
-    image: cdap
-    ports:
-      - 8020
-      - 50070
-      - 50075
-      - 50010
-      - 50020
-      - 3888
-      - 2888
-      - 2181
-      - 8025
-  cdap01:
-    build: .
-    hostname: zldcprivatecloudtruecdap01
-    image: cdap
-    ports:
-      - 8020
-      - 50070
-      - 50075
-      - 50010
-      - 50020
-      - 3888
-      - 2888
-      - 2181
-      - 8025
-  cdap02:
-    build: .
-    hostname: zldcprivatecloudtruecdap02
-    image: cdap
-    ports:
-      - 8020
-      - 50070
-      - 50075
-      - 50010
-      - 50020
-      - 3888
-      - 2888
-      - 2181
-      - 8025
\ No newline at end of file
diff --git a/kubernetes/dcae/cdap/docker/fs/Dockerfile b/kubernetes/dcae/cdap/docker/fs/Dockerfile
deleted file mode 100644 (file)
index 4e458dc..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM ubuntu:16.04
-
-RUN mkdir -p /cdap
-VOLUME /cdap
\ No newline at end of file
diff --git a/kubernetes/dcae/pgaas/Dockerfile b/kubernetes/dcae/pgaas/Dockerfile
deleted file mode 100755 (executable)
index e1d147d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-FROM ubuntu:16.04
-
-# Install additional packages
-RUN apt-get update && apt-get -y install maven openjdk-8-jdk unzip python-pip curl dnsutils vim gawk wget openssh-client-ssh1
-RUN pip install pyyaml
-
-RUN apt-get update && apt-get install -y postgresql libpq5 repmgr python-psycopg2 python3-psycopg2 libgetopt-java
-RUN rm -f /usr/sbin/policy-rc.d
-
-# Install Groovy
-RUN mkdir -p /opt/app
-RUN (cd /opt/app ; curl -Lo apache-groovy-binary-2.4.6.zip https://dl.bintray.com/groovy/maven/apache-groovy-binary-2.4.6.zip )
-RUN (cd /opt/app ; unzip apache-groovy-binary-2.4.6.zip )
-RUN mkdir -p /opt/app/java/jdk
-RUN ln -s /usr /opt/app/java/jdk/jdk170
-RUN mkdir -p /opt/app/groovy
-RUN ln -s /opt/app/groovy-2.4.6 /opt/app/groovy/246
-
-# Create user dcae
-RUN if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-# Download required packages
-RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-cdf_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-cdf_1.0.0.deb
-RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-postgresql-prep_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-prep_1.0.0.deb
-RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-postgresql-config_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-config_1.0.0.deb
-RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-pgaas_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas_1.0.0.deb
-RUN curl -s -k -f -o /tmp/org.openecomp.dcae.storage.pgaas-pgaas-post_1.0.0.deb https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas-post_1.0.0.deb
-
-RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
-
-RUN mkdir -p /opt/tools
-RUN mkdir -p /dbroot/pgdata
-RUN mkdir -p /dbroot/pglogs
-
-EXPOSE 5432
-
-VOLUME /opt/tools
-VOLUME /dbroot/pgdata
-VOLUME /dbroot/pglogs
-
-# Setup the entrypoint
-COPY setup.sh /usr/local/bin/entrypoint.sh
-RUN chmod a+x /usr/local/bin/entrypoint.sh
-
-ENTRYPOINT ["usr/local/bin/entrypoint.sh"]
diff --git a/kubernetes/dcae/pgaas/setup.sh b/kubernetes/dcae/pgaas/setup.sh
deleted file mode 100755 (executable)
index a843995..0000000
+++ /dev/null
@@ -1,437 +0,0 @@
-#!/bin/bash
-cat > /tmp/dcae_install.sh << EOF_DCAE_INSTALL
-#!/bin/bash
-set -x
-cd /tmp
-
-export DEBIAN_FRONTEND=noninteractive
-
-#### Using special configuration resource: instances/vm-postgresql/iad4.yaml
-## Adding configuration file: main
-cat | cat > /tmp/postgres.conf << EOF_CONFIG
-master:  zldciad4vipstg00
-secondmaster: notused
-DRTR_NODE_KSTOREFILE: /opt/app/dcae-certificate/keystore.jks
-DRTR_NODE_KSTOREPASS: "No Certificate"
-DRTR_NODE_PVTKEYPASS: "No Certificate"
-PG_NODES : zldciad4vipstg00
-PG_JAVA_HOME : /opt/app/java/jdk/jdk170
-PG_CLUSTER : site
-EOF_CONFIG
-
-## Adding configuration file: mount_config
-cat | cat > /tmp/dcae-mount.conf << EOF_CONFIG
-osType: ubuntu
-volumes:
-  opt:
-    uuid: ephemeral
-    size: 80
-    filesystems:
-      /opt/tools:
-        size: 80
-        type: ext4
-        mount_opts: ''
-  dbroot:
-    uuid: cinder
-    size: 75
-    filesystems:
-      /dbroot/pgdata:
-        size: 50
-        type: ext4
-        mount_opts: ''
-      /dbroot/pglogs:
-        size: 25
-        type: ext4
-        mount_opts: ''
-
-EOF_CONFIG
-
-## Adding configuration file: ecomp-nexus
-cat > /tmp/ecomp-nexus.crt << EOF_CONFIG
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIEet16RjANBgkqhkiG9w0BAQsFADB2MQswCQYDVQQGEwJVUzEUMBIGA1UE
-CBMLVW5zcGVjaWZpZWQxFDASBgNVBAcTC1Vuc3BlY2lmaWVkMREwDwYDVQQKEwhTb25hdHlwZTEQ
-MA4GA1UECxMHRXhhbXBsZTEWMBQGA1UEAwwNKi5lY29tcC1uZXh1czAeFw0xNjExMTQxMDE5NDJa
-Fw0zMDA3MjQxMDE5NDJaMHYxCzAJBgNVBAYTAlVTMRQwEgYDVQQIEwtVbnNwZWNpZmllZDEUMBIG
-A1UEBxMLVW5zcGVjaWZpZWQxETAPBgNVBAoTCFNvbmF0eXBlMRAwDgYDVQQLEwdFeGFtcGxlMRYw
-FAYDVQQDDA0qLmVjb21wLW5leHVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqkDu
-vC91cZxOaRMYGHSyDeuw4hyXjqyD5Etl5L5TNN7+uFKEtvXsRYOxtD62TqWHKozffLE5o6zoRZL4
-8qNTQyAx0LaEfWfR2w0jat+UqtqEtW0xpOD0/O0qRq5Y/XG3Yr8SQ/y84Pr1FIflM7pM4PZTt3kc
-UfqzbaONW5K8t+UG+5jgNXdRk3hln8WMunVZeci0J6TV+tWs9tOeAKBdpI7K7LV+FJBaF8vBAw2x
-8AhlNPXKQUhK+M3DD73c1aLWrZ3mIwJXt2oQUDwgtXGCPR1/Z9f2tTAoDxpzvkwtP/BtH3qvgtpY
-QfDNmWbJVHh6ll39Hapt7V0v4aCRSN21ZQIDAQABo00wSzAMBgNVHRMEBTADAQH/MBwGA1UdEQQV
-MBOCC2Vjb21wLW5leHVzhwQK0MVLMB0GA1UdDgQWBBQxcUlk/lkKkwSz0GuewbXptJxl+zANBgkq
-hkiG9w0BAQsFAAOCAQEAPnNbtdreMZaUSjv+1eqpriLKquwnZhnwWENn1u3sw4hTAWQc+ehhogGg
-eIqPN81Dt3jhr0bYZW+r3gGq7tgrLxdSXso8bTtqHsFLszirgWcQXDlBQGnw9wqp/KBzeDJInJep
-d6aGu3yBXV6459S/mClxZTSvsR+Vz3rRWxx01R3/ft5/myqrRMDnEncqPopTbEamBuUJL3eJDpFO
-xlVqYR3y6AXwwguMaTiHMfFBmDOVaz4K8Qy6AaHH9eoch9fxOJ/7ASvqSwkC9GYTJSnF2vE37rmH
-kPp//Vm4WSnQ2NrBGkH9rUUdYdDdgWJYnTeZ+YFd8J6z9xNiEn9QKQNNcA==
------END CERTIFICATE-----
-
-EOF_CONFIG
-## Adding configuration file: vm-postgresql-console.properties
-cat > /tmp/vm-postgresql-console.properties << EOF_CONFIG
-localhost.endpoint=http://localhost:9999
-localhost.user=console
-localhost.password=MDBmMzE0NTgyMDU1NmVj
-EOF_CONFIG
-
-## Adding configuration file: vm-postgresql-gui.properties
-cat > /tmp/vm-postgresql-gui.properties << EOF_CONFIG
-EOF_CONFIG
-
-## Adding configuration file: vm-postgresql-log4j.properties
-cat > /tmp/vm-postgresql-log4j.properties << EOF_CONFIG
-#log4j.debug=0
-log4j.rootLogger=warn, file
-log4j.logger.org.openecomp.ncomp=info, file
-log4j.additivity.org.openecomp.ncomp=false
-
-#log4j.logger.org.apache.http.headers=debug, file
-#log4j.logger.org.apache.http.wire=debug, file
-## uploaded logger
-log4j.logger.org.openecomp.ncomp.sirius.manager.uploaded=info, uploaded
-log4j.additivity.org.openecomp.ncomp.sirius.manager.uploaded=false
-## request logging
-log4j.logger.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=info, requests
-log4j.additivity.org.openecomp.ncomp.sirius.manager.ManagementServer.requests=false
-## openstack polling
-log4j.logger.org.openecomp.ncomp.openstack.OpenStackUtil.polling=info, polling
-log4j.additivity.org.openecomp.ncomp.openstack.OpenStackUtil.polling=false
-log4j.appender.file=org.apache.log4j.RollingFileAppender
-log4j.appender.file.File=logs/manager.log
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.file.MaxFileSize=50MB
-log4j.appender.file.MaxBackupIndex=5
-
-log4j.appender.uploaded=org.apache.log4j.RollingFileAppender
-log4j.appender.uploaded.File=logs/manager-uploaded.log
-log4j.appender.uploaded.layout=org.apache.log4j.PatternLayout
-log4j.appender.uploaded.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.uploaded.MaxFileSize=50MB
-log4j.appender.uploaded.MaxBackupIndex=5
-
-log4j.appender.requests=org.apache.log4j.RollingFileAppender
-log4j.appender.requests.File=logs/manager-requests.log
-log4j.appender.requests.layout=org.apache.log4j.PatternLayout
-log4j.appender.requests.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.requests.MaxFileSize=50MB
-log4j.appender.requests.MaxBackupIndex=5
-log4j.appender.polling=org.apache.log4j.RollingFileAppender
-log4j.appender.polling.File=logs/manager-polling.log
-log4j.appender.polling.layout=org.apache.log4j.PatternLayout
-log4j.appender.polling.layout.ConversionPattern=%d %5p [%t] %m %C:%L%n
-log4j.appender.polling.MaxFileSize=50MB
-log4j.appender.polling.MaxBackupIndex=5
-
-### ECOMP Logging
-log4j.logger.org.openecomp.audit=info, audit
-log4j.additivity.org.openecomp.audit=false
-log4j.logger.org.openecomp.metrics=info, metrics
-log4j.additivity.org.openecomp.metrics=false
-log4j.logger.org.openecomp.error=info, error
-log4j.additivity.org.openecomp.error=false
-log4j.logger.com.att.eelf.debug=info, debug
-log4j.additivity.org.openecomp.debug=false
-log4j.appender.audit=org.apache.log4j.RollingFileAppender
-log4j.appender.audit.File=logs/audit.log
-log4j.appender.audit.layout=org.apache.log4j.PatternLayout
-log4j.appender.audit.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%5p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.audit.MaxFileSize=50MB
-log4j.appender.audit.MaxBackupIndex=5
-log4j.appender.metrics=org.apache.log4j.RollingFileAppender
-log4j.appender.metrics.File=logs/metrics.log
-log4j.appender.metrics.layout=org.apache.log4j.PatternLayout
-log4j.appender.metrics.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.metrics.MaxFileSize=50MB
-log4j.appender.metrics.MaxBackupIndex=5
-log4j.appender.error=org.apache.log4j.RollingFileAppender
-log4j.appender.error.File=logs/error.log
-log4j.appender.error.layout=org.apache.log4j.PatternLayout
-log4j.appender.error.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.error.MaxFileSize=50MB
-log4j.appender.error.MaxBackupIndex=5
-log4j.appender.debug=org.apache.log4j.RollingFileAppender
-log4j.appender.debug.File=logs/debug.log
-log4j.appender.debug.layout=org.apache.log4j.PatternLayout
-log4j.appender.debug.layout.ConversionPattern=%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%t|%X{ServiceName}|%X{InstanceUUID}|%p|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%m%n
-log4j.appender.debug.MaxFileSize=50MB
-log4j.appender.debug.MaxBackupIndex=5
-EOF_CONFIG
-
-## Adding configuration file: vm-postgresql-manager.properties
-cat > /tmp/vm-postgresql-manager.properties << EOF_CONFIG
-server.dir = data/resources
-metrics.dir = data/metrics
-properties.dir = data/properties
-server.port = 9999
-server.user.console = MDBmMzE0NTgyMDU1NmVj
-server.user.gui = M2NiOTg1YzNiYTI2NTJh
-server.user.client = OTNmMmFkYzkxMzYzNTk0
-EOF_CONFIG
-
-## Adding configuration file: vm-postgresql-runtime.properties
-cat > /tmp/vm-postgresql-runtime.properties << EOF_CONFIG
-factory.vm=org.openecomp.dcae.controller.service.servers.vm.DcaeVmFactory
-factory.postgres=org.openecomp.dcae.controller.service.storage.postgres.service.impl.ServicePackageImpl
-EOF_CONFIG
-
-## Adding configuration file: vm-postgresql-hosts
-cat > /tmp/vm-postgresql-hosts << EOF_CONFIG
-EOF_CONFIG
-
-## Adding configuration file: monitoring-agent-gui.properties
-cat > /tmp/monitoring-agent-gui.properties << EOF_CONFIG
-EOF_CONFIG
-
-cat >> /etc/hosts << HOSTS_EOF
-HOSTS_EOF
-
-cat > /tmp/certificate.pkcs12.b64code << EOF_CERT
-EOF_CERT
-
-##############################################################
-##################### CLOUDINIT ##############################
-##############################################################
-
-## need to fix cloudinit in Centos.
-
-CLOUDHOSTCFG=/etc/cloud/cloud.cfg.d/99_hostname.cfg
-if [ -f /etc/redhat-release ]; then
-   # CentOS/RHEL
-   ( echo "hostname: \$(hostname)"; echo "fqdn: \$(hostname -f)" ) > \$CLOUDHOSTCFG
-fi
-
-mkdir -p ~/.ssh
-touch ~/.ssh/authorized_keys
-
-echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYz++VKcW3Sw0Sh7fFyTIjXED6NUUNYbje7awcnvaHHAC0rUxs7boX6hmWDViXoGZA5xw4Xhk5kIEs+zxMCDlF1q/9rbyq5ndonlBz3aPx7+SBqVR5sPalbSr8dJhGPwpj/0Df+FzqjGVL2p2d4VV7SeT/kKrNcSY6SmYHln6osoGFAHsOZC0d+fiba4zfCI9EI6zHdyCujwayjQ5W5UgA50XQ0KXpI5WtF6MOwO6jPL3SNNDlWobG/nsCAMxTQ04dALpYSoamM12Ps72MfxEwaKkoAcsH6WsFbuvoUSXwNcosmyxYrxNynsUz4C2Tz+PZqelGvm8Y8MtNuhN7oqAD root@ecomp-jumpbox >> /home/ubuntu/.ssh/authorized_keys
-
-######### step-1
-
-cp /tmp/ecomp-nexus.crt /usr/local/share/ca-certificates/ ; update-ca-certificates
-
-######### step-2
-
-echo 162.242.254.138 ecomp-nexus >> /etc/hosts
-
-######### step-3
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-case runtime in
-  %*)
-    A1=org.openecomp.dcae.controller:dcae-controller-core-utils:1.0.0:zip
-    ;;
-  *)
-    A1=org.openecomp.dcae.controller:dcae-controller-core-utils:1.0.0:zip:runtime
-    ;;
-esac
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-core-utils/1.0.0/dcae-controller-core-utils-1.0.0-runtime.zip -P /opt/app/dcae-controller-core-utils
-
-case zip in
-  jar)
-    mkdir /opt/app/dcae-controller-core-utils/lib
-    mv /opt/app/dcae-controller-core-utils/*.jar /opt/app/dcae-controller-core-utils/lib
-    ;;
-  zip)
-    ( cd /opt/app/dcae-controller-core-utils ; unzip -o dcae-controller-core-utils*.zip )
-    ;;
-esac
-
-chown -R dcae:dcae /opt/app/dcae-controller-core-utils
-
-######### step-4
-
-/opt/app/dcae-controller-core-utils/bin/fs-init.py
-
-######### step-5
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-case runtime in
-  %*)
-    A1=org.openecomp.dcae.controller:dcae-controller-service-common-vm-manager:1.0.0:zip
-    ;;
-  *)
-    A1=org.openecomp.dcae.controller:dcae-controller-service-common-vm-manager:1.0.0:zip:runtime
-    ;;
-esac
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-common-vm-manager/1.0.0/dcae-controller-service-common-vm-manager-1.0.0-runtime.zip -P /opt/app/dcae-controller-service-common-vm-manager
-
-case zip in
-  jar)
-    mkdir /opt/app/dcae-controller-service-common-vm-manager/lib
-    mv /opt/app/dcae-controller-service-common-vm-manager/*.jar /opt/app/dcae-controller-service-common-vm-manager/lib
-    ;;
-  zip)
-    ( cd /opt/app/dcae-controller-service-common-vm-manager ; unzip -o dcae-controller-service-common-vm-manager*.zip )
-    ;;
-esac
-
-chown -R dcae:dcae /opt/app/dcae-controller-service-common-vm-manager
-
-######### step-6
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-case %{assemblyId} in
-  %*)
-    A1=org.openecomp.dcae.controller:dcae-controller-service-storage-postgres-model:1.0.0:jar
-    ;;
-  *)
-    A1=org.openecomp.dcae.controller:dcae-controller-service-storage-postgres-model:1.0.0:jar:%{assemblyId}
-    ;;
-esac
-
-wget https://nexus.onap.org/content/repositories/staging/org/openecomp/dcae/controller/dcae-controller-service-storage-postgres-model/1.0.0/dcae-controller-service-storage-postgres-model-1.0.0.jar -P /opt/app/dcae-controller-service-storage-postgres-model
-
-case jar in
-  jar)
-    mkdir /opt/app/dcae-controller-service-storage-postgres-model/lib
-    mv /opt/app/dcae-controller-service-storage-postgres-model/*.jar /opt/app/dcae-controller-service-storage-postgres-model/lib
-    ;;
-  zip)
-    ( cd /opt/app/dcae-controller-service-storage-postgres-model ; unzip -o dcae-controller-service-storage-postgres-model*.zip )
-    ;;
-esac
-
-chown -R dcae:dcae /opt/app/dcae-controller-service-storage-postgres-model
-
-######### step-7
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-cdf_1.0.0.deb`
-
-case deb in
-  deb)
-    dpkg --install \$OUT
-    ;;
-  jar)
-    mkdir -p /opt/app/%{artifactId}/lib
-    mv \$OUT /opt/app/%{artifactId}/lib
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-  zip)
-    mkdir -p /opt/app/%{artifactId}/lib
-    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-esac
-
-######### step-8
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-prep_1.0.0.deb`
-
-case deb in
-  deb)
-    dpkg --install \$OUT
-    ;;
-  jar)
-    mkdir -p /opt/app/%{artifactId}/lib
-    mv \$OUT /opt/app/%{artifactId}/lib
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-  zip)
-    mkdir -p /opt/app/%{artifactId}/lib
-    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-esac
-
-######### step-9
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-postgresql-config_1.0.0.deb`
-
-case deb in
-  deb)
-    dpkg --install \$OUT
-    ;;
-  jar)
-    mkdir -p /opt/app/%{artifactId}/lib
-    mv \$OUT /opt/app/%{artifactId}/lib
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-  zip)
-    mkdir -p /opt/app/%{artifactId}/lib
-    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-esac
-
-######### step-10
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas_1.0.0.deb`
-
-case deb in
-  deb)
-    dpkg --install \$OUT
-    ;;
-  jar)
-    mkdir -p /opt/app/%{artifactId}/lib
-    mv \$OUT /opt/app/%{artifactId}/lib
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-  zip)
-    mkdir -p /opt/app/%{artifactId}/lib
-    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-esac
-
-touch /etc/sudoers.d/dcae-postgres
-echo "dcae ALL=(postgres) NOPASSWD: ALL" > /etc/sudoers.d/dcae-postgres
-
-/opt/app/postgresql-prep/bin/iDNS-responder.py &
-
-/etc/init.d/cron restart
-
-######### step-11
-
-if [ ! -e /home/dcae ]; then useradd -m -s /bin/bash dcae; fi
-
-OUT=/tmp/`basename https://nexus.onap.org/content/sites/raw/org.openecomp.dcae.pgaas/deb-releases/org.openecomp.dcae.storage.pgaas-pgaas-post_1.0.0.deb`
-case deb in
-  deb)
-    dpkg --install \$OUT
-    ;;
-  jar)
-    mkdir -p /opt/app/%{artifactId}/lib
-    mv \$OUT /opt/app/%{artifactId}/lib
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-  zip)
-    mkdir -p /opt/app/%{artifactId}/lib
-    ( cd /opt/app/%{artifactId} ; cp -p \$OUT . ; unzip -o \$OUT )
-    chown -R dcae:dcae /opt/app/%{artifactId}
-    ;;
-esac
-
-######### step-12
-
-find /opt -type f -exec sed -i 's/sudo//g' {} \;
-su dcae -c "/opt/app/dcae-controller-service-common-vm-manager/bin/manager.sh config"
-su dcae -c "/opt/app/dcae-controller-service-common-vm-manager/bin/manager.sh restart"
-
-mkdir /home/dcae/.ssh
-chmod og-rwx /home/dcae/.ssh
-chown -R dcae:dcae /home/dcae/.ssh
-touch /home/dcae/.ssh/authorized_keys
-chmod og-rwx /home/dcae/.ssh/authorized_keys
-chown -R dcae:dcae /home/dcae/.ssh/authorized_keys
-echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCYz++VKcW3Sw0Sh7fFyTIjXED6NUUNYbje7awcnvaHHAC0rUxs7boX6hmWDViXoGZA5xw4Xhk5kIEs+zxMCDlF1q/9rbyq5ndonlBz3aPx7+SBqVR5sPalbSr8dJhGPwpj/0Df+FzqjGVL2p2d4VV7SeT/kKrNcSY6SmYHln6osoGFAHsOZC0d+fiba4zfCI9EI6zHdyCujwayjQ5W5UgA50XQ0KXpI5WtF6MOwO6jPL3SNNDlWobG/nsCAMxTQ04dALpYSoamM12Ps72MfxEwaKkoAcsH6WsFbuvoUSXwNcosmyxYrxNynsUz4C2Tz+PZqelGvm8Y8MtNuhN7oqAD root@ecomp-jumpbox >> /home/dcae/.ssh/authorized_keys
-#no final script: vm-postgresql.userdata
-EOF_DCAE_INSTALL
-echo null > /tmp/.password
-chmod u+x /tmp/dcae_install.sh
-/tmp/dcae_install.sh 2>&1 | tee /tmp/dcae_install.log
diff --git a/kubernetes/dcae/templates/all-services.yaml b/kubernetes/dcae/templates/all-services.yaml
deleted file mode 100644 (file)
index 9423e43..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-#{{ if not .Values.disableDcaeZookeeper }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: zookeeper
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: zookeeper
-spec:
-  ports:
-  - name: zookeeper1
-    port: 2181
-  selector:
-    app: zookeeper
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableDcaeKafka }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: kafka
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: kafka
-spec:
-  ports:
-  - name: kafka1
-    port: 9092
-  selector:
-    app: kafka
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableDcaeDmaap }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: dmaap
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: dmaap
-    version: 1.1.0
-spec:
-  ports:
-  - name: mr1
-    port: 3904
-    #nodePort: {{ .Values.nodePortPrefix }}27
-  - name: mr2
-    port: 3905
-    #nodePort: {{ .Values.nodePortPrefix }}26
-  selector:
-    app: dmaap
-  #type: NodePort
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableDcaeDcaePgaas }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: zldciad4vipstg00
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: dcae-pgaas
-spec:
-  selector:
-    app: dcae-pgaas
-  ports:
-    - port: 5432
-      protocol: TCP
-      targetPort: 5432
-      nodePort: {{ .Values.nodePortPrefix }}45
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableDcaeDcaeCollectorCommonEvent }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: dcae-collector-common-event
-    version: latest
-  name: dcae-collector-common-event
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  ports:
-  - name: dcae-ce1
-    port: 8080
-    protocol: TCP
-    nodePort: {{ .Values.nodePortPrefix }}36
-  - name: dcae-ce2
-    port: 8443
-    protocol: TCP
-    nodePort: {{ .Values.nodePortPrefix }}37
-  - name: dcae-ce3
-    port: 9999
-    protocol: TCP
-    nodePort: {{ .Values.nodePortPrefix }}38
-  selector:
-    app: dcae-collector-common-event
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableDcaeDcaeCollectorDmaapbc }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: dcae-collector-dmaapbc
-    version: latest
-  name: dcae-collector-dmaapbc
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  ports:
-  - name: dcae-bc1
-    port: 8080
-    protocol: TCP
-    targetPort: 8080
-    nodePort: {{ .Values.nodePortPrefix }}39
-  - name: dcae-bc2
-    port: 8443
-    protocol: TCP
-    targetPort: 8443
-    nodePort: {{ .Values.nodePortPrefix }}40
-  selector:
-    app: dcae-collector-dmaapbc
-  type: NodePort
-#{{ end }}
\ No newline at end of file
diff --git a/kubernetes/dcae/templates/cdap0-dep.yaml b/kubernetes/dcae/templates/cdap0-dep.yaml
deleted file mode 100644 (file)
index 208e1ef..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#{{ if not .Values.disableDcaeCdap }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  annotations:
-    deployment.kubernetes.io/revision: "1"
-  labels:
-    app: cdap0
-  name: cdap0
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: cdap0
-  strategy:
-    rollingUpdate:
-      maxSurge: 1
-      maxUnavailable: 1
-    type: RollingUpdate
-  template:
-    metadata:
-      labels:
-        app: cdap0
-      name: cdap0
-    spec:
-      initContainers:
-      - command: ["/bin/bash", "-c", "mkdir -p /cdap/{cdap0-opt-tools,cdap0-opt-data,pod-ip}; grep `hostname` /etc/hosts > /cdap/pod-ip/`hostname`_ip.txt; while [`ls /cdap/pod-ip | wc -l` < 3];  do sleep 1; done"]
-        name: create-fs
-        image: {{ .Values.image.cdapfs }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-      hostname: zldcprivatecloudtruecdap00
-      containers:
-      - image: {{ .Values.image.cdap }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        command: ["/bin/bash"]
-        args: ["-c", "cat /cdap/pod-ip/* >> /etc/hosts; /usr/local/bin/01-entrypoint.sh; sleep infinity;"]
-        name: cdap0
-        ports:
-        - containerPort: 8020
-          protocol: TCP
-        - containerPort: 8025
-          protocol: TCP
-        - containerPort: 50070
-          protocol: TCP
-        - containerPort: 50075
-          protocol: TCP
-        - containerPort: 50010
-          protocol: TCP
-        - containerPort: 50020
-          protocol: TCP
-        - containerPort: 3888
-          protocol: TCP
-        - containerPort: 2888
-          protocol: TCP
-        - containerPort: 2181
-          protocol: TCP
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-        - mountPath: /opt/tools
-          name: dcae-cdap0-opt-tools
-        - mountPath: /opt/data
-          name: dcae-cdap0-opt-data
-      volumes:
-      - name: cdap-root
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap
-      - name: dcae-cdap0-opt-tools
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap0-opt-tools
-      - name: dcae-cdap0-opt-data
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap0-opt-data
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/cdap1-dep.yaml b/kubernetes/dcae/templates/cdap1-dep.yaml
deleted file mode 100644 (file)
index 8aa7721..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#{{ if not .Values.disableDcaeCdap }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  annotations:
-    deployment.kubernetes.io/revision: "1"
-  labels:
-    app: cdap1
-  name: cdap1
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: cdap1
-  strategy:
-    rollingUpdate:
-      maxSurge: 1
-      maxUnavailable: 1
-    type: RollingUpdate
-  template:
-    metadata:
-      labels:
-        app: cdap1
-      name: cdap1
-    spec:
-      initContainers:
-      - command: ["/bin/bash", "-c", "mkdir -p /cdap/{cdap1-opt-tools,cdap1-opt-data}; grep `hostname` /etc/hosts > /cdap/pod-ip/`hostname`_ip.txt; while [`ls /cdap/pod-ip | wc -l` < 3];  do sleep 1; done"]
-        name: create-fs
-        image: {{ .Values.image.cdapfs }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-      hostname: zldcprivatecloudtruecdap01
-      containers:
-      - image: {{ .Values.image.cdap }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        command: ["/bin/bash"]
-        args: ["-c", "cat /cdap/pod-ip/* >> /etc/hosts; /usr/local/bin/01-entrypoint.sh; sleep infinity;"]
-        name: cdap1
-        ports:
-        - containerPort: 8020
-          protocol: TCP
-        - containerPort: 8025
-          protocol: TCP
-        - containerPort: 50070
-          protocol: TCP
-        - containerPort: 50075
-          protocol: TCP
-        - containerPort: 50010
-          protocol: TCP
-        - containerPort: 50020
-          protocol: TCP
-        - containerPort: 3888
-          protocol: TCP
-        - containerPort: 2888
-          protocol: TCP
-        - containerPort: 2181
-          protocol: TCP
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-        - mountPath: /opt/tools
-          name: dcae-cdap1-opt-tools
-        - mountPath: /opt/data
-          name: dcae-cdap1-opt-data
-      volumes:
-      - name: cdap-root
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap
-      - name: dcae-cdap1-opt-tools
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap1-opt-tools
-      - name: dcae-cdap1-opt-data
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap1-opt-data
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/cdap2-dep.yaml b/kubernetes/dcae/templates/cdap2-dep.yaml
deleted file mode 100644 (file)
index 119b8ff..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#{{ if not .Values.disableDcaeCdap }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  annotations:
-    deployment.kubernetes.io/revision: "1"
-  labels:
-    app: cdap2
-  name: cdap2
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: cdap2
-  strategy:
-    rollingUpdate:
-      maxSurge: 1
-      maxUnavailable: 1
-    type: RollingUpdate
-  template:
-    metadata:
-      labels:
-        app: cdap2
-      name: cdap2
-    spec:
-      initContainers:
-      - command: ["/bin/bash", "-c", "mkdir -p /cdap/{cdap2-opt-tools,cdap2-opt-data}; grep `hostname` /etc/hosts > /cdap/pod-ip/`hostname`_ip.txt; while [`ls /cdap/pod-ip | wc -l` < 3];  do sleep 1; done"]
-        name: create-fs
-        image: {{ .Values.image.cdapfs }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-      hostname: zldcprivatecloudtruecdap02
-      containers:
-      - image: {{ .Values.image.cdap }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        command: ["/bin/bash"]
-        args: ["-c", "cat /cdap/pod-ip/* >> /etc/hosts; /usr/local/bin/01-entrypoint.sh; sleep infinity;"]
-        name: cdap2
-        ports:
-        - containerPort: 8020
-          protocol: TCP
-        - containerPort: 8025
-          protocol: TCP
-        - containerPort: 50070
-          protocol: TCP
-        - containerPort: 50075
-          protocol: TCP
-        - containerPort: 50010
-          protocol: TCP
-        - containerPort: 50020
-          protocol: TCP
-        - containerPort: 3888
-          protocol: TCP
-        - containerPort: 2888
-          protocol: TCP
-        - containerPort: 2181
-          protocol: TCP
-        volumeMounts:
-        - mountPath: /cdap
-          name: cdap-root
-        - mountPath: /opt/tools
-          name: dcae-cdap2-opt-tools
-        - mountPath: /opt/data
-          name: dcae-cdap2-opt-data
-      volumes:
-      - name: cdap-root
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap
-      - name: dcae-cdap2-opt-tools
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap2-opt-tools
-      - name: dcae-cdap2-opt-data
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap2-opt-data
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-collector-common-event.yaml b/kubernetes/dcae/templates/dcae-collector-common-event.yaml
deleted file mode 100644 (file)
index a370151..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#{{ if not .Values.disableDcaeDcaeCollectorCommonEvent }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: dcae-collector-common-event
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: dcae-collector-common-event
-  template:
-    metadata:
-      labels:
-        app: dcae-collector-common-event
-      name: dcae-collector-common-event
-    spec:
-      containers:
-      - image: {{ .Values.image.commonevent }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: dcae-collector-common-event
-        ports:
-          - containerPort: 8080
-          - containerPort: 8443
-          - containerPort: 9999
-        env:
-#        - name: KAFKA_ZOOKEEPER_CONNECT
-#          value: "zookeeper:2181"
-#        command:
-#        - start-kafka.sh
-        volumeMounts:
-        - mountPath: /opt/app/manager/config
-          name: dcae-collector-common-event-config
-      restartPolicy: Always
-      volumes:
-      - name: dcae-collector-common-event-config
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/common-event/config
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml b/kubernetes/dcae/templates/dcae-collector-dmaapbc.yaml
deleted file mode 100644 (file)
index 85f671e..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#{{ if not .Values.disableDcaeDcaeCollectorDmaapbc }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: dcae-collector-dmaapbc
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: dcae-collector-dmaapbc
-  template:
-    metadata:
-      labels:
-        app: dcae-collector-dmaapbc
-      name: dcae-collector-dmaapbc
-    spec:
-      containers:
-      - image: {{ .Values.image.dmaapbc }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: dcae-collector-dmaapbc
-        ports:
-          - containerPort: 18080
-          - containerPort: 18443
-        env:
-#        - name: KAFKA_ZOOKEEPER_CONNECT
-#          value: "zookeeper:2181"
-#        command:
-#        - start-kafka.sh
-        volumeMounts:
-        - mountPath: /opt/app/config
-          name: dcae-collector-dmaapbc-config
-      restartPolicy: Always
-      volumes:
-      - name: dcae-collector-dmaapbc-config
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/dmaapbc/config
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-controller.yaml b/kubernetes/dcae/templates/dcae-controller.yaml
deleted file mode 100644 (file)
index e4642c9..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#{{ if not .Values.disableDcaeDcaeController }}
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: dcae-controller
-    version: latest
-  name: dcae-controller
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  ports:
-  - name: dcae-con1
-    port: 8000
-    protocol: TCP
-    targetPort: 8000
-    nodePort: {{ .Values.nodePortPrefix }}34
-  - name: dcae-con2
-    port: 9998
-    protocol: TCP
-    targetPort: 9998
-    nodePort: {{ .Values.nodePortPrefix }}35
-  selector:
-    app: dcae-controller
-  type: NodePort
----
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: dcae-controller
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: dcae-controller
-  template:
-    metadata:
-      labels:
-        app: dcae-controller
-      name: dcae-controller
-    spec:
-      containers:
-      - image: {{ .Values.image.controller }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: dcae-controller
-        ports:
-          - containerPort: 8000
-          - containerPort: 9998
-        env:
-#        - name: KAFKA_ZOOKEEPER_CONNECT
-#          value: "zookeeper:2181"
-#        command:
-#        - start-kafka.sh
-        volumeMounts:
-        - mountPath: /opt/app/config
-          name: dcae-controller-config
-      restartPolicy: Always
-      volumes:
-      - name: dcae-controller-config
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/dcae-controller/config
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-dmaap.yaml b/kubernetes/dcae/templates/dcae-dmaap.yaml
deleted file mode 100644 (file)
index 8545311..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#{{ if not .Values.disableDcaeDmaap }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: dmaap
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: dmaap
-  template:
-    metadata:
-      labels:
-        app: dmaap
-      name: dmaap
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - kafka
-        - --container-name
-        - zookeeper
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: dmaap-readiness
-      containers:
-      - image: {{ .Values.image.dmaap }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: dmaap
-        ports:
-        - containerPort: 3904
-        - containerPort: 3905
-        readinessProbe:
-          tcpSocket:
-            port: 3904
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        volumeMounts:
-        - mountPath: /appl/dmaapMR1/bundleconfig/etc/appprops/MsgRtrApi.properties
-          name: appprops
-        - mountPath: /appl/dmaapMR1/etc/cadi.properties
-          name: cadi
-        - mountPath: /appl/dmaapMR1/etc/keyfile
-          name: mykey
-      restartPolicy: Always
-      volumes:
-      - name: appprops
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dmaap/MsgRtrApi.properties
-      - name: cadi
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dmaap/cadi.properties
-      - name: mykey
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dmaap/mykey
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-kafka.yaml b/kubernetes/dcae/templates/dcae-kafka.yaml
deleted file mode 100644 (file)
index d265272..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#{{ if not .Values.disableDcaeKafka }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: kafka
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: kafka
-  template:
-    metadata:
-      labels:
-        app: kafka
-      name: kafka
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - zookeeper
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: kafka-readiness
-      containers:
-      - image: {{ .Values.image.kafka }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: kafka
-        ports:
-        - containerPort: 9092
-        readinessProbe:
-          tcpSocket:
-            port: 9092
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        env:
-        - name: KAFKA_ZOOKEEPER_CONNECT
-          value: "zookeeper.{{ .Values.nsPrefix }}"
-        - name: KAFKA_ADVERTISED_HOST_NAME
-          value: "kafka"
-        - name: KAFKA_BROKER_ID
-          value: "1"
-        - name: KAFKA_ADVERTISED_PORT
-          value: "9092"
-        - name: KAFKA_PORT
-          value: "9092"
-        volumeMounts:
-        - mountPath: /var/run/docker.sock
-          name: docker-socket
-        - mountPath: /kafka
-          name: kafka-data
-        - mountPath: /start-kafka.sh
-          name: start-kafka
-      restartPolicy: Always
-      volumes:
-      - name: docker-socket
-        hostPath:
-          path: /var/run/docker.sock
-      - name: kafka-data
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dcae-startup-vm-message-router/docker_files/data-kafka/
-      - name: start-kafka
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dcae-startup-vm-message-router/docker_files/start-kafka.sh
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/dcae-zookeeper.yaml b/kubernetes/dcae/templates/dcae-zookeeper.yaml
deleted file mode 100644 (file)
index 9c2d8c7..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#{{ if not .Values.disableDcaeZookeeper }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: zookeeper
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: zookeeper
-  template:
-    metadata:
-      labels:
-        app: zookeeper
-      name: zookeeper
-    spec:
-      containers:
-      - image: {{ .Values.image.zookeeper }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: zookeeper
-        ports:
-        - containerPort: 2181
-        volumeMounts:
-        - mountPath: /opt/zookeeper-3.4.9/data
-          name: zookeeper-data
-      restartPolicy: Always
-      volumes:
-      - name: zookeeper-data
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/message-router/dcae-startup-vm-message-router/docker_files/data-zookeeper
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/templates/pgaas.yaml b/kubernetes/dcae/templates/pgaas.yaml
deleted file mode 100644 (file)
index 16abade..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#{{ if not .Values.disableDcaeDcaePgaas }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  annotations:
-    deployment.kubernetes.io/revision: "1"
-  labels:
-    app: dcae-pgaas
-  name: dcae-pgaas
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: dcae-pgaas
-  template:
-    metadata:
-      labels:
-        app: dcae-pgaas
-    spec:
-      hostname: zldciad4vipstg00
-      containers:
-      - image: {{ .Values.image.pgaas }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        command: ["/bin/bash"]
-        args: ["-c", "/usr/local/bin/entrypoint.sh; sleep infinity;"]
-        name: dcae-pgaas
-        ports:
-        - containerPort: 5432
-        volumeMounts:
-        - mountPath: /dbroot/pgdata
-          name: dcae-pgaas-pgdata
-        - mountPath: /dbroot/pglogs
-          name: dcae-pgaas-pglogs
-        - mountPath: /opt/tools
-          name: dcae-pgaas-tools
-      volumes:
-      - name: dcae-pgaas-pgdata
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/pgaas/pgdata
-      - name: dcae-pgaas-pglogs
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/pgaas/pglogs
-      - name: dcae-pgaas-tools
-        hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/pgaas/tools
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/dcae/values.yaml b/kubernetes/dcae/values.yaml
deleted file mode 100644 (file)
index 8755292..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-nsPrefix: onap
-pullPolicy: Always
-nodePortPrefix: 302
-image:
-  readiness: oomk8s/readiness-check:1.1.0
-  pgaas: oomk8s/pgaas:1
-  cdapfs: oomk8s/cdap-fs:1.0.0
-  cdap: oomk8s/cdap:1.0.7
-  dmaap: attos/dmaap:latest
-  kafka: wurstmeister/kafka:latest
-  zookeeper: wurstmeister/zookeeper:latest
-  dmaapbc: nexus3.onap.org:10001/openecomp/dcae-dmaapbc:1.1-STAGING-latest
-  commonevent: nexus3.onap.org:10001/openecomp/dcae-collector-common-event:1.1-STAGING-latest
-  controller: nexus3.onap.org:10001/openecomp/dcae-controller:1.1-STAGING-latest
index 4ab4f85..3eaca46 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: DCAE Generation 2 bootstrap container
 name: dcaegen2
index 1d6c63d..251de3a 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # UUID of the OpenStack"s CentOS 7 cloud VM image
 # If your Openstack does not have a CentOS 7 cloud image, you will have to add one.
 centos7image_id: '52d4ea09-cc69-4a9a-9961-938a3282d209'
index 1cf5d9b..711ca44 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableDcaegen2 }}
 apiVersion: v1
 kind: Pod
@@ -7,7 +21,7 @@ metadata:
 spec:
   containers:
     - name: {{ .Chart.Name }}
-      image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+      image: "{{ .Values.image.repository }}"
       imagePullPolicy: {{ .Values.image.pullPolicy }}
       volumeMounts:
       - name: installer-config-mount
index c892f69..5443089 100644 (file)
@@ -1,6 +1,19 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 location: dg2
 image:
-  repository: nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.bootstrap
-  tag: v1.1.0
-  pullPolicy: Always
\ No newline at end of file
+  repository: nexus3.onap.org:10001/onap/org.onap.dcaegen2.deployments.bootstrap:v1.1.0
+  pullPolicy: Always
diff --git a/kubernetes/esr/.helmignore b/kubernetes/esr/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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
index 8f55bd6..b47761d 100644 (file)
@@ -1,4 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
-description: A Helm chart for Kubernetes
+description: ONAP External System Register
 name: esr
-version: 1.1.0
+version: 2.0.0
diff --git a/kubernetes/esr/charts/esr-gui/.helmignore b/kubernetes/esr/charts/esr-gui/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/esr/charts/esr-gui/Chart.yaml b/kubernetes/esr/charts/esr-gui/Chart.yaml
new file mode 100644 (file)
index 0000000..ae53f85
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: ONAP External System Register GUI
+name: esr-gui
+version: 2.0.0
diff --git a/kubernetes/esr/charts/esr-gui/templates/NOTES.txt b/kubernetes/esr/charts/esr-gui/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..dde49c1
--- /dev/null
@@ -0,0 +1,16 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+  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
+     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 }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ .Chart.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/esr/charts/esr-gui/templates/deployment.yaml b/kubernetes/esr/charts/esr-gui/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..747df22
--- /dev/null
@@ -0,0 +1,67 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      containers:
+        - name: {{ include "common.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: MSB_ADDR
+              value: {{ tpl .Values.msbaddr . }}
+          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 }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/esr/charts/esr-gui/templates/service.yaml b/kubernetes/esr/charts/esr-gui/templates/service.yaml
new file mode 100644 (file)
index 0000000..6a274b5
--- /dev/null
@@ -0,0 +1,42 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.service.name }} 
+  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": "aai-esr-gui",
+          "version": "v1",
+          "url": "/esr-gui",
+          "protocol": "UI",
+          "port": "{{ .Values.service.internalPort }}",
+          "visualRange":"1"
+      }
+      ]'
+spec:
+  ports:
+    - port: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/esr/charts/esr-gui/values.yaml b/kubernetes/esr/charts/esr-gui/values.yaml
new file mode 100644 (file)
index 0000000..f501399
--- /dev/null
@@ -0,0 +1,74 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  persistence: {}
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/aai/esr-gui:v1.0.0
+pullPolicy: Always
+msbaddr: msb-iag.{{ include "common.namespace" . }}:80
+
+# 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:
+  name: esr-gui
+  internalPort: 8080
+
+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/esr/requirements.yaml b/kubernetes/esr/requirements.yaml
new file mode 100644 (file)
index 0000000..f639633
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+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'
diff --git a/kubernetes/esr/resources/config/log/esrserver/logback.xml b/kubernetes/esr/resources/config/log/esrserver/logback.xml
new file mode 100644 (file)
index 0000000..8b2c310
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="esr" />
+   <!-- specify the sub component name -->
+   <property name="subComponentName" value="xacml-pap-rest" />
+   <!-- 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>
\ No newline at end of file
diff --git a/kubernetes/esr/resources/config/log/filebeat/filebeat.yml b/kubernetes/esr/resources/config/log/filebeat/filebeat.yml
new file mode 100644 (file)
index 0000000..49197d3
--- /dev/null
@@ -0,0 +1,42 @@
+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:
+    - /home/esr/works/logs/*.log
+#    - /var/log/onap/*/*/*/*.log
+#    - /var/log/onap/*/*/*.log
+#    - /var/log/onap/*/*.log
+  #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+  ignore_older: 48h
+  # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+  clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+  #List of logstash server ip addresses with port number.
+  #But, in our case, this will be the loadbalancer IP address.
+  #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
+  #If enable will do load balancing among availabe Logstash, automatically.
+  loadbalance: true
+
+  #The list of root certificates for server verifications.
+  #If certificate_authorities is empty or not set, the trusted
+  #certificate authorities of the host system are used.
+  #ssl.certificate_authorities: $ssl.certificate_authorities
+
+  #The path to the certificate for SSL client authentication. If the certificate is not specified,
+  #client authentication is not available.
+  #ssl.certificate: $ssl.certificate
+
+  #The client certificate key used for client authentication.
+  #ssl.key: $ssl.key
+
+  #The passphrase used to decrypt an encrypted key stored in the configured key file
+  #ssl.key_passphrase: $ssl.key_passphrase
diff --git a/kubernetes/esr/templates/NOTES.txt b/kubernetes/esr/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..c1c46b1
--- /dev/null
@@ -0,0 +1,13 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+     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 }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ .Chart.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/esr/templates/all-services.yaml b/kubernetes/esr/templates/all-services.yaml
deleted file mode 100644 (file)
index e0c5075..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#{{ if not .Values.disableEsrServer }}
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: esr-esrserver
-  name: esr-esrserver
-  namespace: "{{ .Values.nsPrefix }}"
-  annotations:
-    msb.onap.org/service-info: '[
-      {
-          "serviceName": "aai-esr-server",
-          "version": "v1",
-          "url": "/api/aai-esr-server/v1",
-          "protocol": "REST",
-          "port": "{{.Values.esrserver.port}}",
-          "visualRange":"1"
-      }
-      ]'
-spec:
-  ports:
-  - name: esr-esrserver
-    port: {{.Values.esrserver.port}}
-  selector:
-    app: esr-esrserver
-#{{ end }}
-#{{ if not .Values.disableEsrGui }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: esr-esrgui
-  name: esr-esrgui
-  namespace: "{{ .Values.nsPrefix }}"
-  annotations:
-    msb.onap.org/service-info: '[
-      {
-          "serviceName": "aai-esr-gui",
-          "version": "v1",
-          "url": "/esr-gui",
-          "protocol": "UI",
-          "port": "{{.Values.esrgui.port}}",
-          "visualRange":"1"
-      }
-      ]'
-spec:
-  ports:
-  - name: esr-esrgui
-    port: {{.Values.esrgui.port}}
-  selector:
-    app: esr-esrgui
-#{{ end }}
\ No newline at end of file
diff --git a/kubernetes/esr/templates/configmap.yaml b/kubernetes/esr/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..a0c82be
--- /dev/null
@@ -0,0 +1,30 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-esr-filebeat
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-esr-esrserver-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/esrserver/logback.xml").AsConfig . | indent 2 }}
+
diff --git a/kubernetes/esr/templates/deployment.yaml b/kubernetes/esr/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..c2322d3
--- /dev/null
@@ -0,0 +1,99 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      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: MSB_ADDR
+              value: {{ tpl .Values.msbaddr . }}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /home/esr/works/logs
+            name: esr-server-logs
+          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: /home/esr/works/logs
+            name: esr-server-logs
+          - mountPath: /usr/share/filebeat/data
+            name: esr-server-filebeat
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: filebeat-conf
+          configMap:
+            name: {{ include "common.fullname" . }}-esr-filebeat
+        - name: esr-server-logs
+          emptyDir: {}
+        - name: esr-server-filebeat
+          emptyDir: {}
+        - name: esrserver-log
+          configMap:
+            name: {{ include "common.fullname" . }}-esr-esrserver-log
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/esr/templates/esr-esrgui-deployment.yaml b/kubernetes/esr/templates/esr-esrgui-deployment.yaml
deleted file mode 100644 (file)
index f9ec271..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#{{ if not .Values.disableesrgui }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  labels:
-    app: esr-esrgui
-  name: esr-esrgui
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: esr-esrgui
-  template:
-    metadata:
-      labels:
-        app: esr-esrgui
-      name: esr-esrgui
-    spec:
-      containers:
-      - image: {{ .Values.esrgui.image }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: esr-esrgui
-        env:
-        - name: MSB_ADDR
-          value: {{ tpl .Values.msbaddr . }}
-        ports:
-        - containerPort: {{ .Values.esrgui.port }}
-        readinessProbe:
-          tcpSocket:
-            port: 8080
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/esr/templates/esr-esrserver-deployment.yaml b/kubernetes/esr/templates/esr-esrserver-deployment.yaml
deleted file mode 100644 (file)
index 386d401..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#{{ if not .Values.disableUuiUui }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  labels:
-    app: esr-esrserver
-  name: esr-esrserver
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  selector:
-    matchLabels:
-      app: esr-esrserver
-  template:
-    metadata:
-      labels:
-        app: esr-esrserver
-      name: esr-esrserver
-    spec:
-      containers:
-      - image: {{ .Values.esrserver.image }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: esr-esrserver
-        env:
-        - name: MSB_ADDR
-          value: {{ tpl .Values.msbaddr . }}
-        ports:
-        - containerPort: {{ .Values.esrserver.port }}
-        readinessProbe:
-          tcpSocket:
-            port: {{ .Values.esrserver.port }}
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/esr/templates/service.yaml b/kubernetes/esr/templates/service.yaml
new file mode 100644 (file)
index 0000000..312a7bd
--- /dev/null
@@ -0,0 +1,43 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.service.name }}
+  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": "aai-esr-server",
+          "version": "v1",
+          "url": "/api/aai-esr-server/v1",
+          "protocol": "REST",
+          "port": "{{.Values.service.internalPort}}",
+          "enable_ssl": true,
+          "visualRange":"1"
+      }
+      ]'
+spec:
+  ports:
+    - port: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
index b942672..3af4917 100644 (file)
@@ -1,12 +1,83 @@
-nsPrefix: onap
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+
+subChartsOnly:
+  enabled: true
+
+# application image
+repository: nexus3.onap.org:10001
+image: onap/aai/esr-server:v1.0.0
 pullPolicy: Always
-nodePortPrefix: 302
-msbaddr: msb-iag.{{ .Values.nsPrefix }}:80
-esrserver:
-  image: nexus3.onap.org:10001/onap/aai/esr-server:v1.0.0
-  port: 9518
-  replicas: 1
-esrgui:
-  image: nexus3.onap.org:10001/onap/aai/esr-gui:v1.0.0
-  port: 8080
-  replicas: 1
+msbaddr: msb-iag.{{ include "common.namespace" . }}:80
+
+# application configuration
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
+
+# 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:
+  name: esr
+  internalPort: 9518
+
+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/helm/starters/onap-app/.helmignore b/kubernetes/helm/starters/onap-app/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/helm/starters/onap-app/Chart.yaml b/kubernetes/helm/starters/onap-app/Chart.yaml
new file mode 100644 (file)
index 0000000..15a1506
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: <Short application description - this is visible via 'helm search'>
+name: <onap-app>
+version: 2.0.0
\ No newline at end of file
diff --git a/kubernetes/helm/starters/onap-app/README.md b/kubernetes/helm/starters/onap-app/README.md
new file mode 100644 (file)
index 0000000..897a073
--- /dev/null
@@ -0,0 +1,14 @@
+# Starter Helm Chart for ONAP Applications
+
+Clone the onap-app directory and rename it to the name for your new Helm Chart.
+
+Helm Charts for specific applications should be moved into the oom/kubernetes
+directory. If the application is a common reusable Helm Chart (eg. mariadb), a
+more appropriate location might be the oom/kubernetes/common directory.
+
+Edit each yaml file in the new Helm Chart directoy, substituing real values
+for those inside brackets (eg. `<onap-app>`). Some comments have been provided in
+the file to help guide changes that need to be made. This starter Helm Chart is
+in no way complete. It can serve as the basis for creating a new Helm Chart that
+attempts to apply Helm best practices to ONAP applications being configured,
+deployed and managed in Kubernetes.
diff --git a/kubernetes/helm/starters/onap-app/requirements.yaml b/kubernetes/helm/starters/onap-app/requirements.yaml
new file mode 100644 (file)
index 0000000..1e8f788
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/helm/starters/onap-app/resources/config/README.txt b/kubernetes/helm/starters/onap-app/resources/config/README.txt
new file mode 100644 (file)
index 0000000..5cc0149
--- /dev/null
@@ -0,0 +1,10 @@
+This directory contains all external configuration files that
+need to be mounted into an application container.
+
+See the configmap.yaml in the templates directory for an example
+of how to load (ie map) config files from this directory, into
+Kubernetes, for distribution within the k8s cluster.
+
+See deployment.yaml in the templates directory for an example
+of how the 'config mapped' files are then mounted into the
+containers.
diff --git a/kubernetes/helm/starters/onap-app/resources/config/application.properties b/kubernetes/helm/starters/onap-app/resources/config/application.properties
new file mode 100644 (file)
index 0000000..496a15a
--- /dev/null
@@ -0,0 +1 @@
+sampleConfigKey=sampleConfigValue
\ No newline at end of file
diff --git a/kubernetes/helm/starters/onap-app/templates/NOTES.txt b/kubernetes/helm/starters/onap-app/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..2465e03
--- /dev/null
@@ -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.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ 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/helm/starters/onap-app/templates/configmap.yaml b/kubernetes/helm/starters/onap-app/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..4ccc7cc
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
\ No newline at end of file
diff --git a/kubernetes/helm/starters/onap-app/templates/deployment.yaml b/kubernetes/helm/starters/onap-app/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..0125381
--- /dev/null
@@ -0,0 +1,104 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+#Example init container for dependency checking
+#      - 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: {{ include "common.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:
+#Example environment variable passed to container
+#            - name: DEBUG_FLAG
+#              value: {{ .Values.global.debugEnabled | default .Values.debugEnabled | quote }}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+#Example config file mount into container
+#          - mountPath: /opt/app/application.properties
+#            name: {{ include "common.name" . }}-config
+#            subPath: application.properties
+          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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+#Example config file mount into container
+#        - name: {{ include "common.fullname" . }}-config
+#          configMap:
+#            name: {{ include "common.fullname" . }}-configmap
+#            items:
+#            - key: application.properties
+#              path: application.properties
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
diff --git a/kubernetes/helm/starters/onap-app/templates/service.yaml b/kubernetes/helm/starters/onap-app/templates/service.yaml
new file mode 100644 (file)
index 0000000..cab488a
--- /dev/null
@@ -0,0 +1,53 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+# Example MSB registration annotation
+#    msb.onap.org/service-info: '[
+#      {
+#          "serviceName": "so",
+#          "version": "v1",
+#          "url": "/ecomp/mso/infra",
+#          "protocol": "REST"
+#          "port": "8080",
+#          "visualRange":"1"
+#      }
+#      ]'
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      #Example internal target port if required
+      #targetPort: {{ .Values.service.internalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
\ No newline at end of file
diff --git a/kubernetes/helm/starters/onap-app/values.yaml b/kubernetes/helm/starters/onap-app/values.yaml
new file mode 100644 (file)
index 0000000..60b4682
--- /dev/null
@@ -0,0 +1,92 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.0.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: <onap-app>:<1.2-STAGING-latest>
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+# Example:
+config:
+#  username: myusername
+#  password: mypassword
+
+# 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:
+  #Example service definition with external, internal and node ports.
+  #Services may use any combination of ports depending on the 'type' of
+  #service being defined.
+  type: NodePort
+  name: <onap-app>
+  externalPort: <8080>
+  internalPort: <80>
+  nodePort: <replace with unused node port suffix eg. 23>
+
+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/kube2msb/Chart.yaml b/kubernetes/kube2msb/Chart.yaml
deleted file mode 100644 (file)
index b648adc..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-apiVersion: v1
-description: A Helm chart for Kubernetes
-name: kube2msb
-version: 0.1.0
diff --git a/kubernetes/kube2msb/templates/kube2msb-registrator-deployment.yaml b/kubernetes/kube2msb/templates/kube2msb-registrator-deployment.yaml
deleted file mode 100644 (file)
index d6b1940..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#{{ if not .Values.disableKube2MsbKube2MsbRegistrator }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: kube2msb-registrator
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: kube2msb-registrator
-  template:
-    metadata:
-      labels:
-        app: kube2msb-registrator
-      name: kube2msb-registrator
-    spec:
-      hostname: kube2msb-registrator
-      containers:
-      - args:
-        image: {{ .Values.image.kube2msb }}
-        name: kube2msb-registrator
-        env:
-        - name: KUBE_MASTER_URL
-          value: {{ .Values.kubeMasterUrl }}
-        - name: AUTH_TOKEN
-          value: {{ .Values.kubeMasterAuthToken }}
-        - name: MSB_URL
-          value: {{tpl $.Values.discoveryUrl .}}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/kube2msb/values.yaml b/kubernetes/kube2msb/values.yaml
deleted file mode 100644 (file)
index 9269448..0000000
+++ /dev/null
@@ -1,6 +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.{{ .Values.nsPrefix }}:10081
diff --git a/kubernetes/log/.helmignore b/kubernetes/log/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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
index 36d0299..9b902e8 100644 (file)
@@ -1,4 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
-description: A Helm chart for Kubernetes
+description: ONAP Logging ElasticStack
 name: log
-version: 0.1.0
+version: 2.0.0
diff --git a/kubernetes/log/charts/log-elasticsearch/Chart.yaml b/kubernetes/log/charts/log-elasticsearch/Chart.yaml
new file mode 100644 (file)
index 0000000..5d233b4
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: ONAP Logging Elasticsearch
+name: log-elasticsearch
+version: 2.0.0
diff --git a/kubernetes/log/charts/log-elasticsearch/requirements.yaml b/kubernetes/log/charts/log-elasticsearch/requirements.yaml
new file mode 100644 (file)
index 0000000..1e8f788
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
@@ -111,12 +111,12 @@ discovery.zen.minimum_master_nodes: 1
 #action.destructive_requires_name: true
 # Set a custom port for HTTP: If required, default is 9200-9300
 # This is used for REST APIs
-http.port: 9200
+http.port: {{.Values.service.externalPort}}
 # Port to bind for communication between nodes. Accepts a single value or a range.
 # If a range is specified, the node will bind to the first available port in the range.
 # Defaults to 9300-9400.
 # More info:
-transport.tcp.port: 9300
+transport.tcp.port: {{.Values.service.externalPortTcp}}
 
 xpack.graph.enabled: false
 #Set to false to disable X-Pack graph features.
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/NOTES.txt b/kubernetes/log/charts/log-elasticsearch/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..0878f5c
--- /dev/null
@@ -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.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.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/log/charts/log-elasticsearch/templates/configmap.yaml b/kubernetes/log/charts/log-elasticsearch/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..4ccc7cc
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
\ No newline at end of file
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/deployment.yaml b/kubernetes/log/charts/log-elasticsearch/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..13caa7e
--- /dev/null
@@ -0,0 +1,117 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - command:
+        - /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:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        securityContext:
+          privileged: true
+        image: {{ .Values.global.busyboxRepository | default .Values.busyboxRepository }}/{{ .Values.busyboxImage }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: init-sysctl
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /logroot/
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ .Values.global.loggingRepository | default .Values.loggingRepository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+            name: {{ .Values.service.name }}
+          - containerPort: {{ .Values.service.internalPortTcp }}
+            name: {{ .Values.service.name }}-tcp
+# 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.internalPortTcp }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          env:
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
+            name: {{ include "common.fullname" . }}-config
+            subPath: elasticsearch.yml
+          - mountPath: /usr/share/elasticsearch/data/
+            name: {{ include "common.fullname" . }}-data
+          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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: {{ include "common.fullname" . }}-config
+          configMap:
+            name: {{ include "common.fullname" . }}-configmap
+            items:
+            - key: elasticsearch.yml
+              path: elasticsearch.yml
+        - name: {{ include "common.fullname" . }}-data
+          persistentVolumeClaim:
+            claimName: {{ include "common.fullname" . }}
+        - name: {{ include "common.fullname" . }}-logs
+          hostPath:
+            path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPathLogs }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/pv.yaml b/kubernetes/log/charts/log-elasticsearch/templates/pv.yaml
new file mode 100644 (file)
index 0000000..dba12d4
--- /dev/null
@@ -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.Namespace }}/{{ .Values.persistence.mountSubPath }}
+{{- end -}}
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/pvc.yaml b/kubernetes/log/charts/log-elasticsearch/templates/pvc.yaml
new file mode 100644 (file)
index 0000000..c046f46
--- /dev/null
@@ -0,0 +1,25 @@
+{{- 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 }}
+{{- end -}}
diff --git a/kubernetes/log/charts/log-elasticsearch/templates/service.yaml b/kubernetes/log/charts/log-elasticsearch/templates/service.yaml
new file mode 100644 (file)
index 0000000..72dfc7e
--- /dev/null
@@ -0,0 +1,46 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.service.name }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.internalPortTcp }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPortTcp }}
+      name: {{ .Values.service.name }}-tcp
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortTcp }}
+      targetPort: {{ .Values.service.internalPortTcp }}
+      name: {{ .Values.service.name }}-tcp
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/log/charts/log-elasticsearch/values.yaml b/kubernetes/log/charts/log-elasticsearch/values.yaml
new file mode 100644 (file)
index 0000000..2e6e085
--- /dev/null
@@ -0,0 +1,114 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  persistence: {}
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+
+# BusyBox image
+busyboxRepository: registry.hub.docker.com
+busyboxImage: library/busybox:latest
+
+# application image
+loggingRepository: docker.elastic.co
+image: elasticsearch/elasticsearch:5.5.0
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+# Example:
+config: {}
+
+# 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)
+  accessMode: ReadWriteMany
+  size: 1Gi
+  mountPath: /dockerdata-nfs
+  mountSubPath: log/elasticsearch/data
+  mountSubPathLogs: log
+
+service:
+  #Example service definition with external, internal and node ports.
+  #Services may use any combination of ports depending on the 'type' of
+  #service being defined.
+  type: ClusterIP
+  name: log-es
+  externalPort: 9200
+  internalPort: 9200
+  externalPortTcp: 9300
+  internalPortTcp: 9300
+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/log/charts/log-kibana/Chart.yaml b/kubernetes/log/charts/log-kibana/Chart.yaml
new file mode 100644 (file)
index 0000000..74f2c2b
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: ONAP Logging Kibana
+name: log-kibana
+version: 2.0.0
diff --git a/kubernetes/log/charts/log-kibana/requirements.yaml b/kubernetes/log/charts/log-kibana/requirements.yaml
new file mode 100644 (file)
index 0000000..1e8f788
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
@@ -11,7 +11,7 @@ xpack.security.enabled: false
 xpack.watcher.enabled: false
 #Set to false to disable Watcher.
 # Kibana is served by a back end server. This setting specifies the port to use.
-server.port: 5601
+server.port: {{.Values.service.externalPort}}
 
 # Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
 # The default is 'localhost', which usually means remote machines will not be able to connect.
@@ -30,10 +30,7 @@ server.host: "0"
 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.{{.Values.nsPrefix}}:9200"
-#elasticsearch-service.{{.Values.nsPrefix}}:9200"
-#elasticsearch.url: "http://10.247.47.3:9200"
+elasticsearch.url: "http://{{.Values.config.elasticsearchServiceName}}.{{.Release.Namespace}}:{{.Values.config.elasticsearchPort}}"
 # 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
 # that connects to this Kibana instance.
diff --git a/kubernetes/log/charts/log-kibana/templates/NOTES.txt b/kubernetes/log/charts/log-kibana/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..0878f5c
--- /dev/null
@@ -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.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.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/log/charts/log-kibana/templates/configmap.yaml b/kubernetes/log/charts/log-kibana/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..fd8934b
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/log/charts/log-kibana/templates/deployment.yaml b/kubernetes/log/charts/log-kibana/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..bdd5a44
--- /dev/null
@@ -0,0 +1,98 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - log-elasticsearch
+        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: {{ include "common.name" . }}
+          image: "{{ .Values.global.loggingRepository | default .Values.loggingRepository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+            name: {{ .Values.service.name }}
+          readinessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+# 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 -}}
+          env:
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /usr/share/kibana/config/kibana.yml
+            name: {{ include "common.fullname" . }}
+            subPath: kibana.yml
+          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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: {{ include "common.fullname" . }}
+          configMap:
+            name: {{ include "common.fullname" . }}
+            items:
+            - key: kibana.yml
+              path: kibana.yml
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/log/charts/log-kibana/templates/service.yaml b/kubernetes/log/charts/log-kibana/templates/service.yaml
new file mode 100644 (file)
index 0000000..d758c99
--- /dev/null
@@ -0,0 +1,40 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.service.name }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/log/charts/log-kibana/values.yaml b/kubernetes/log/charts/log-kibana/values.yaml
new file mode 100644 (file)
index 0000000..50c6e52
--- /dev/null
@@ -0,0 +1,94 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+  persistence: {}
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+
+# BusyBox image
+busyboxRepository: registry.hub.docker.com
+busyboxImage: library/busybox:latest
+
+# application image
+loggingRepository: docker.elastic.co
+image: kibana/kibana:5.5.0
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+config:
+  elasticsearchServiceName: log-es
+  elasticsearchPort: 9200
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 120
+  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:
+  #Example service definition with external, internal and node ports.
+  #Services may use any combination of ports depending on the 'type' of
+  #service being defined.
+  type: NodePort
+  name: log-kibana
+  externalPort: 5601
+  internalPort: 5601
+  nodePort: 53
+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/log/charts/log-logstash/Chart.yaml b/kubernetes/log/charts/log-logstash/Chart.yaml
new file mode 100644 (file)
index 0000000..3aab337
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: ONAP Logging Logstash
+name: log-logstash
+version: 2.0.0
diff --git a/kubernetes/log/charts/log-logstash/requirements.yaml b/kubernetes/log/charts/log-logstash/requirements.yaml
new file mode 100644 (file)
index 0000000..1e8f788
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
@@ -1,14 +1,14 @@
 http.host: "0.0.0.0"
 ## Path where pipeline configurations reside
 path.config: /usr/share/logstash/pipeline
+
 ## Type of queue : memeory based or file based
 #queue.type: persisted
 ## Size of queue
 #queue.max_bytes: 1024mb
 ## Setting true makes logstash check periodically for change in pipeline configurations
 config.reload.automatic: true
-  
+
 ## xpack configurations
 #xpack.monitoring.elasticsearch.url: ["http://10.247.186.12:9200", "http://10.247.186.13:9200"]
 #xpack.monitoring.elasticsearch.username: elastic
@@ -7,7 +7,7 @@ input {
  ######## Connection configurations ########
 
  ## The port to listen on.
- port => 5044
+ port => {{.Values.service.externalPort}}
 
  ## Close Idle clients after the specified time in seconds. Default is 60 seconds
  #client_inactivity_timeout => 60
@@ -222,10 +222,8 @@ output {
 
  ######### Elasticsearchcluster and host configurations #########
 
-#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.{{.Values.nsPrefix}}:9200"]
+ ##can specify one or a list of hosts. If sniffing is set, one is enough and others will be auto-discovered
+ hosts => ["http://{{.Values.config.elasticsearchServiceName}}.{{.Release.Namespace}}:{{.Values.config.elasticsearchPort}}"]
 
 
  ## 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/charts/log-logstash/templates/NOTES.txt b/kubernetes/log/charts/log-logstash/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..0878f5c
--- /dev/null
@@ -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.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.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/log/charts/log-logstash/templates/configmap.yaml b/kubernetes/log/charts/log-logstash/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..fd8934b
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/log/charts/log-logstash/templates/deployment.yaml b/kubernetes/log/charts/log-logstash/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..682c448
--- /dev/null
@@ -0,0 +1,105 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - log-elasticsearch
+        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: {{ include "common.name" . }}
+          image: "{{ .Values.global.loggingRepository| default .Values.loggingRepository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+            name: {{ .Values.service.name }}
+          - containerPort: {{ .Values.service.internalPortHttp }}
+            name: {{ .Values.service.name }}-http
+          readinessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+# 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 -}}
+          env:
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /usr/share/logstash/config/logstash.yml
+            name: {{ include "common.fullname" . }}
+            subPath: logstash.yml
+          - mountPath: /usr/share/logstash/pipeline/onap-pipeline.conf
+            name: {{ include "common.fullname" . }}
+            subPath: onap-pipeline.conf
+          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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: {{ include "common.fullname" . }}
+          configMap:
+            name: {{ include "common.fullname" . }}
+            items:
+            - key: logstash.yml
+              path: logstash.yml
+            - key: onap-pipeline.conf
+              path: onap-pipeline.conf
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/log/charts/log-logstash/templates/service.yaml b/kubernetes/log/charts/log-logstash/templates/service.yaml
new file mode 100644 (file)
index 0000000..ca71aa2
--- /dev/null
@@ -0,0 +1,46 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.service.name }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.internalPortHttp }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.externalPortHttp }}
+      name: {{ .Values.service.name }}-http
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortHttp }}
+      targetPort: {{ .Values.service.internalPortHttp }}
+      name: {{ .Values.service.name }}-http
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/log/charts/log-logstash/values.yaml b/kubernetes/log/charts/log-logstash/values.yaml
new file mode 100644 (file)
index 0000000..bfe50b5
--- /dev/null
@@ -0,0 +1,91 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+  persistence: {}
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+
+# application image
+loggingRepository: docker.elastic.co
+image: logstash/logstash:5.4.3
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+config:
+  elasticsearchServiceName: log-es
+  elasticsearchPort: 9200
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 120
+  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:
+  #Example service definition with external, internal and node ports.
+  #Services may use any combination of ports depending on the 'type' of
+  #service being defined.
+  type: ClusterIP
+  name: log-ls
+  externalPort: 5044
+  internalPort: 5044
+  externalPortHttp: 9600
+  internalPortHttp: 9600
+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/log/requirements.yaml b/kubernetes/log/requirements.yaml
new file mode 100644 (file)
index 0000000..acca8ef
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/log/templates/all-services.yaml b/kubernetes/log/templates/all-services.yaml
deleted file mode 100644 (file)
index a40a4da..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#{{ if not .Values.disableLogElasticsearch }}
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: elasticsearch
-  name: elasticsearch
-  namespace: {{ .Values.nsPrefix }}
-spec:
-  ports:
-  - name: http
-    port: 9200
-    targetPort: 9200
-    nodePort: {{ .Values.nodePortPrefix }}54
-  selector:
-    app: elasticsearch
-  type: NodePort
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: elasticsearchtcp
-  namespace: {{ .Values.nsPrefix }}
-  labels:
-    app: elasticsearch
-spec:
-  ports:
-  - name: tcp
-    port: 9300
-    targetPort: 9300
-  selector:
-    app: elasticsearch
-#{{ end }}
-#{{ if not .Values.disableLogLogstash }}
----
-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 }}
-  labels:
-    app: logstash
-spec:
-  ports:
-  - name: transport
-    port: 5044
-    targetPort: 5044
-  selector:
-    app: logstash
-#{{ end }}
-#{{ if not .Values.disableLogKibana }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: kibana
-  name: kibana
-  namespace: {{ .Values.nsPrefix }}
-spec:
-  ports:
-  - name: tcp-ks
-    port: 5601
-    targetPort: 5601
-    nodePort: {{ .Values.nodePortPrefix }}53
-  selector:
-    app: kibana
-  type: NodePort
-#{{ end }}
diff --git a/kubernetes/log/templates/elasticsearch-deployment.yaml b/kubernetes/log/templates/elasticsearch-deployment.yaml
deleted file mode 100644 (file)
index cbc19a8..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-#{{ if not .Values.disableLogElasticsearch }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  labels:
-    app: elasticsearch
-  name: log-elasticsearch
-  namespace: {{ .Values.nsPrefix }}
-spec:
-  replicas: {{ .Values.elasticsearchReplicas }}
-  selector:
-    matchLabels:
-      app: elasticsearch
-  template:
-    metadata:
-      labels:
-        app: elasticsearch
-      name: log-elasticsearch
-    spec:
-      initContainers:
-      - command:
-        - /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:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        securityContext:
-          privileged: true
-        image: {{ .Values.image.es_bb }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: init-sysctl
-        volumeMounts:
-        - name: elasticsearch-logs
-          mountPath: /logroot/
-      containers:
-      - name: elasticsearch
-        image: {{ .Values.image.elasticsearch}}
-        ports:
-        - containerPort: 9200
-          name: http
-          protocol: TCP
-        - containerPort: 9300
-          name: transport
-          protocol: TCP
-        readinessProbe:
-          tcpSocket:
-            port: 9300
-        volumeMounts:
-         - mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
-           name: elasticsearch-conf
-           subPath: elasticsearch.yml
-         - mountPath: /usr/share/elasticsearch/data/
-           name: elasticsearch-data
-         - mountPath: /usr/share/elasticsearch/logs/
-           name: elasticsearch-logs
-      volumes:
-        - name: elasticsearch-data
-          persistentVolumeClaim:
-            claimName: elasticsearch-db
-        - name: elasticsearch-logs
-          hostPath:
-            path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/log/
-        - name: elasticsearch-conf
-          configMap:
-            name: log-elasticsearch-configmap
-            items:
-            - key: elasticsearch.yml
-              path: elasticsearch.yml
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  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
deleted file mode 100644 (file)
index 6e5c36c..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#{{ if not .Values.disableLogKibana }}
-apiVersion: extensions/v1beta1 
-kind: Deployment
-metadata:
-  labels:
-    app: kibana
-  name: log-kibana
-  namespace: {{ .Values.nsPrefix }}
-spec:
-  replicas: {{ .Values.kibanaReplicas }}
-  selector:
-    matchLabels:
-      app: kibana
-  template:
-    metadata:
-      labels:
-        app: kibana
-      name: log-kibana
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - elasticsearch
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: kibana-readiness
-      containers:
-      - name: kibana
-        image: {{ .Values.image.kibana }}
-        ports:
-        - containerPort: 5601
-          name: http
-          protocol: TCP
-        readinessProbe:
-          tcpSocket:
-            port: 5601
-        volumeMounts:
-         - name: kibana-conf
-           mountPath: /usr/share/kibana/config/      
-      volumes:
-        - name: kibana-conf
-          configMap:
-            name: log-kibana-configmap
-            items:
-            - key: kibana.yml
-              path: kibana.yml
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: log-kibana-configmap
-  namespace: {{ .Values.nsPrefix }}
-data:
-{{ 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
deleted file mode 100644 (file)
index d0176a5..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#{{ if not .Values.disableLogElasticsearch }}
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: {{ .Values.nsPrefix }}-elasticsearch-db
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    name: {{ .Values.nsPrefix }}-elasticsearch-db
-spec:
-  capacity:
-    storage: 2Gi
-  accessModes:
-    - ReadWriteMany
-  persistentVolumeReclaimPolicy: Retain
-  hostPath:
-    path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/log/elasticsearch/data
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: elasticsearch-db
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  accessModes:
-    - ReadWriteMany
-  resources:
-    requests:
-      storage: 2Gi
-  selector:
-    matchLabels:
-      name: {{ .Values.nsPrefix }}-elasticsearch-db
-#{{ end }}
diff --git a/kubernetes/log/templates/logstash-deployment.yaml b/kubernetes/log/templates/logstash-deployment.yaml
deleted file mode 100644 (file)
index 1d3b945..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#{{ if not .Values.disableLogLogstash }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  labels:
-    app: logstash
-  name: log-logstash
-  namespace: {{ .Values.nsPrefix }}
-spec:
-  replicas: {{ .Values.logstashReplicas }}
-  selector:
-    matchLabels:
-      app: logstash
-  template:
-    metadata:
-      labels:
-        app: logstash
-      name: log-logstash
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - elasticsearch
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: logstash-readiness
-      containers:
-      - name: logstash
-        image: {{ .Values.image.logstash }}
-        ports:
-        - containerPort: 5044
-          name: transport
-          protocol: TCP
-        - containerPort: 9600
-          name: http
-          protocol: TCP
-        readinessProbe:
-          tcpSocket:
-            port: 5044
-        volumeMounts:
-         - mountPath: /usr/share/logstash/config/
-           name: logstash-conf
-         - mountPath: /usr/share/logstash/pipeline/
-           name: logstash-pipeline
-      volumes:
-        - name: logstash-conf
-          configMap:
-            name: log-logstash-configmap
-            items:
-            - key: logstash.yml
-              path: logstash.yml
-        - name: logstash-pipeline
-          configMap:
-            name: log-logstash-configmap
-            items:
-            - key: onap-pipeline.conf
-              path: onap-pipeline.conf
-
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: log-logstash-configmap
-  namespace: {{ .Values.nsPrefix }}
-data:
-{{ tpl (.Files.Glob "resources/logstash/conf/logstash.yml").AsConfig . | indent 2 }}
-{{ tpl (.Files.Glob "resources/logstash/pipeline/onap-pipeline.conf").AsConfig . | indent 2 }}
-#{{ end }}
index 69efa27..088ad5d 100644 (file)
@@ -1,13 +1,21 @@
-nsPrefix: onap
-pullPolicy: Always
-nodePortPrefix: 302
-dataRootDir: /dockerdata-nfs
-elasticsearchReplicas: 1
-kibanaReplicas: 1
-logstashReplicas: 1
-image:
-  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
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
index 6341c5c..109cce2 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: message-router
diff --git a/kubernetes/message-router/resources/config/dmaap/MsgRtrApi.properties b/kubernetes/message-router/resources/config/dmaap/MsgRtrApi.properties
new file mode 100755 (executable)
index 0000000..568d0d4
--- /dev/null
@@ -0,0 +1,141 @@
+###############################################################################
+##
+## Cambria API Server config
+##
+##     - Default values are shown as commented settings.
+##
+
+###############################################################################
+##
+## HTTP service
+##
+##             - 3904 is standard as of 7/29/14.
+#
+## Zookeeper Connection
+##
+##     Both Cambria and Kafka make use of Zookeeper.
+##
+# config.zk.servers=zookeeper.namespace-placeholder:2181
+config.zk.servers=zookeeper:2181
+#config.zk.servers=172.17.0.1:2181
+#dmaap.namespace-placeholder:2181
+#10.208.128.229:2181
+#config.zk.root=/fe3c/cambria/config
+
+
+###############################################################################
+##
+## Kafka Connection
+##
+##     Items below are passed through to Kafka's producer and consumer
+##     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:9092
+#kafka.metadata.broker.list=172.17.0.1:9092
+#dmaap.namespace-placeholder:9092
+#10.208.128.229:9092
+##kafka.request.required.acks=-1
+#kafka.client.zookeeper=${config.zk.servers}
+consumer.timeout.ms=100
+zookeeper.connection.timeout.ms=6000
+zookeeper.session.timeout.ms=6000
+zookeeper.sync.time.ms=2000
+auto.commit.interval.ms=1000
+fetch.message.max.bytes =1000000
+auto.commit.enable=false
+
+
+###############################################################################
+##
+##     Secured Config
+##
+##     Some data stored in the config system is sensitive -- API keys and secrets,
+##     for example. to protect it, we use an encryption layer for this section
+##     of the config.
+##
+## The key is a base64 encode AES key. This must be created/configured for
+## each installation.
+#cambria.secureConfig.key=
+##
+## The initialization vector is a 16 byte value specific to the secured store.
+## This must be created/configured for each installation.
+#cambria.secureConfig.iv=
+
+## Southfield Sandbox
+cambria.secureConfig.key=b/7ouTn9FfEw2PQwL0ov/Q==
+cambria.secureConfig.iv=wR9xP5k5vbz/xD0LmtqQLw==
+authentication.adminSecret=fe3cCompound
+#cambria.secureConfig.key[pc569h]=YT3XPyxEmKCTLI2NK+Sjbw==
+#cambria.secureConfig.iv[pc569h]=rMm2jhR3yVnU+u2V9Ugu3Q==
+
+
+###############################################################################
+##
+## Consumer Caching
+##
+##     Kafka expects live connections from the consumer to the broker, which
+##     obviously doesn't work over connectionless HTTP requests. The Cambria
+##     server proxies HTTP requests into Kafka consumer sessions that are kept
+##     around for later re-use. Not doing so is costly for setup per request,
+##     which would substantially impact a high volume consumer's performance.
+##
+##     This complicates Cambria server failover, because we often need server
+##     A to close its connection before server B brings up the replacement.
+##
+
+## The consumer cache is normally enabled.
+#cambria.consumer.cache.enabled=true
+
+## Cached consumers are cleaned up after a period of disuse. The server inspects
+## consumers every sweepFreqSeconds and will clean up any connections that are
+## dormant for touchFreqMs.
+#cambria.consumer.cache.sweepFreqSeconds=15
+#cambria.consumer.cache.touchFreqMs=120000
+
+## The cache is managed through ZK. The default value for the ZK connection
+## string is the same as config.zk.servers.
+#cambria.consumer.cache.zkConnect=${config.zk.servers}
+
+##
+## Shared cache information is associated with this node's name. The default
+## name is the hostname plus the HTTP service port this host runs on. (The
+## hostname is determined via InetAddress.getLocalHost ().getCanonicalHostName(),
+## which is not always adequate.) You can set this value explicitly here.
+##
+#cambria.api.node.identifier=<use-something-unique-to-this-instance>
+
+###############################################################################
+##
+## Metrics Reporting
+##
+##     This server can report its metrics periodically on a topic.
+##
+#metrics.send.cambria.enabled=true
+#metrics.send.cambria.topic=cambria.apinode.metrics                                  #msgrtr.apinode.metrics.dmaap
+#metrics.send.cambria.sendEverySeconds=60
+
+cambria.consumer.cache.zkBasePath=/fe3c/cambria/consumerCache
+
+##############################################################################
+#100mb
+maxcontentlength=10000
+
+
+##############################################################################
+#AAF Properties
+msgRtr.namespace.aaf=org.openecomp.dcae.dmaap.mtnje2.mr.topic
+msgRtr.topicfactory.aaf=org.openecomp.dcae.dmaap.topicFactory|:org.openecomp.dcae.dmaap.mtnje2.mr.topic:
+enforced.topic.name.AAF=org.openecomp
+forceAAF=false
+transidUEBtopicreqd=false
+defaultNSforUEB=org.openecomp.dmaap.mr.ueb
+##############################################################################
+#Mirror Maker Agent
+msgRtr.mirrormakeradmin.aaf=org.openecomp.dmaap.mr.dev.mirrormaker|*|admin
+msgRtr.mirrormakeruser.aaf=org.openecomp.dmaap.mr.dev.mirrormaker|*|user
+msgRtr.mirrormakeruser.aaf.create=org.openecomp.dmaap.mr.dev.topicFactory|:org.openecomp.dmaap.mr.dev.topic:
+msgRtr.mirrormaker.timeout=15000
+msgRtr.mirrormaker.topic=org.openecomp.dmaap.mr.prod.mm.agent
+msgRtr.mirrormaker.consumergroup=mmagentserver
+msgRtr.mirrormaker.consumerid=1
diff --git a/kubernetes/message-router/resources/config/dmaap/cadi.properties b/kubernetes/message-router/resources/config/dmaap/cadi.properties
new file mode 100755 (executable)
index 0000000..1cb00a5
--- /dev/null
@@ -0,0 +1,21 @@
+basic_realm=openecomp.org
+basic_warn=TRUE
+
+cadi_loglevel=DEBUG
+#cadi_keyfile=target/swm/package/nix/dist_files/appl/${artifactId}/etc/keyfile2
+cadi_keyfile=/appl/dmaapMR1/etc/keyfile
+# Configure AAF
+aaf_url=https://DME2RESOLVE/service=org.openecomp.authz.AuthorizationService/version=2.0/envContext=DEV/routeOffer=BAU_SE
+
+aaf_id=dgl@openecomp.org
+aaf_password=enc:f2u5br1mh29M02-
+aaf_timeout=5000
+aaf_clean_interval=1200000
+aaf_user_expires=60000
+aaf_high_count=1000000
+
+
+# The following properties are being set by the AJSC Container and should NOT need to be set here.
+AFT_LATITUDE=33.823589
+AFT_LONGITUDE=-84.366982
+AFT_ENVIRONMENT=AFTUAT
diff --git a/kubernetes/message-router/resources/config/dmaap/mykey b/kubernetes/message-router/resources/config/dmaap/mykey
new file mode 100755 (executable)
index 0000000..c2b8b87
--- /dev/null
@@ -0,0 +1,27 @@
+_sNOLphPzrU7L0L3oWv0pYwgV_ddGF1XoBsQEIAp34jfP-fGJFPfFYaMpDEZ3gwH59rNw6qyMZHk
+k-4irklvVcWk36lC3twNvc0DueRCVrws1bkuhOLCXdxHJx-YG-1xM8EJfRmzh79WPlPkbAdyPmFF
+Ah44V0GjAnInPOFZA6MHP9rNx9B9qECHRfmvzU13vJCcgTsrmOr-CEiWfRsnzPjsICxpq9OaVT_D
+zn6rNaroGm1OiZNCrCgvRkCUHPOOCw3j9G1GeaImoZNYtozbz9u4sj13PU-MxIIAa64b1bMMMjpz
+Upc8lVPI4FnJKg6axMmEGn5zJ6JUq9mtOVyPj__2GEuDgpx5H4AwodXXVjFsVgR8UJwI_BvS2JVp
+JoQk0J1RqXmAXVamlsMAfzmmbARXgmrBfnuhveZnh9ymFVU-YZeujdANniXAwBGI7c6hG_BXkH7i
+Eyf4Fn41_SV78PskP6qgqJahr9r3bqdjNbKBztIKCOEVrE_w3IM5r02l-iStk_NBRkj6cq_7VCpG
+afxZ2CtZMwuZMiypO_wOgbdpCSKNzsL-NH2b4b08OlKiWb263gz634KJmV5WEfCl-6eH-JUFbWOS
+JwQfActLNT2ZQPl2MyZQNBzJEWoJRgS6k7tPRO-zqeUtYYHGHVMCxMuMHGQcoilNNHEFeBCG_fBh
+yAKb9g9F86Cbx9voMLiyTX2T3rwVHiSJFOzfNxGmfN5JWOthIun_c5hEY1tLQ15BomzkDwk7BAj7
+VbRCrVD45B6xrmSTMBSWYmLyr6mnQxQqeh9cMbD-0ZAncE3roxRnRvPKjFFa208ykYUp2V83r_PJ
+fV5I9ZPKSjk9DwFyrjkcQQEYDhdK6IFqcd6nEthjYVkmunu2fsX0bIOm9GGdIbKGqBnpdgBO5hyT
+rBr9HSlZrHcGdti1R823ckDF0Ekcl6kioDr5NLIpLtg9zUEDRm3QrbX2mv5Zs8W0pYnOqglxy3lz
+bJZTN7oR7VasHUtjmp0RT9nLZkUs5TZ6MHhlIq3ZsQ6w_Q9Rv1-ofxfwfCC4EBrWKbWAGCf6By4K
+Ew8321-2YnodhmsK5BrT4zQ1DZlmUvK8BmYjZe7wTljKjgYcsLTBfX4eMhJ7MIW1kpnl8AbiBfXh
+QzN56Mki51Q8PSQWHm0W9tnQ0z6wKdck6zBJ8JyNzewZahFKueDTn-9DOqIDfr3YHvQLLzeXyJ8e
+h4AgjW-hvlLzRGtkCknjLIgXVa3rMTycseAwbW-mgdCqqkw3SdEG8feAcyntmvE8j2jbtSDStQMB
+9JdvyNLuQdNG4pxpusgvVso0-8NQF0YVa9VFwg9U6IPSx5p8FcW68OAHt_fEgT4ZtiH7o9aur4o9
+oYqUh2lALCY-__9QLq1KkNjMKs33Jz9E8LbRerG9PLclkTrxCjYAeUWBjCwSI7OB7xkuaYDSjkjj
+a46NLpdBN1GNcsFFcZ79GFAK0_DsyxGLX8Tq6q0Bvhs8whD8wlSxpTGxYkyqNX-vcb7SDN_0WkCE
+XSdZWkqTHXcYbOvoCOb_e6SFAztuMenuHWY0utX0gBfx_X5lPDFyoYXErxFQHiA7t27keshXNa6R
+ukQRRS8kMjre1U74sc-fRNXkXpl57rG4rgxaEX0eBeowa53KAsVvUAoSac2aC_nfzXrDvoyf9Xi3
+JpEZNhUDLpFCEycV4I7jGQ9wo9qNaosvlsr6kbLDNdb_1xrGVgjT3xEvRNJNPqslSAu-yD-UFhC3
+AmCdYUnugw_eEFqXCHTARcRkdPPvl2XsmEKY2IqEeO5tz4DyXQFaL-5hEVh6lYEU1EOWHk3UGIXe
+Vc5_Ttp82qNLmlJPbZvgmNTJzYTHDQ_27KBcp7IVVZgPDjVKdWqQvZ18KhxvfF3Idgy82LBZniFV
+IbtxllXiPRxoPQriSXMnXjh3XkvSDI2pFxXfEvLRn1tvcFOwPNCz3QfPIzYg8uYXN5bRt3ZOrR_g
+ZhIlrc7HO0VbNbeqEVPKMZ-cjkqGj4VAuDKoQc0eQ6X_wCoAGO78nPpLeIvZPx1X3z5YoqNA
\ No newline at end of file
index 385b5f4..da6fee1 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMessageRouterZookeeper }}
 apiVersion: v1
 kind: Service
diff --git a/kubernetes/message-router/templates/dmaap-configmap.yaml b/kubernetes/message-router/templates/dmaap-configmap.yaml
new file mode 100644 (file)
index 0000000..bd1e629
--- /dev/null
@@ -0,0 +1,23 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: mr-dmaap-cadi-prop-configmap
+  namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/dmaap/cadi.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: mr-dmaap-msgrtrapi-prop-configmap
+  namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/dmaap/MsgRtrApi.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: mr-dmaap-mykey-configmap
+  namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/dmaap/mykey").AsConfig . | indent 2 }}
index cc13a38..a0c1380 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMessageRouterDmaap }}
 apiVersion: extensions/v1beta1
 kind: Deployment
@@ -49,10 +63,13 @@ spec:
           name: localtime
           readOnly: true
         - mountPath: /appl/dmaapMR1/bundleconfig/etc/appprops/MsgRtrApi.properties
+          subPath: MsgRtrApi.properties
           name: appprops
         - mountPath: /appl/dmaapMR1/etc/cadi.properties
+          subPath: cadi.properties
           name: cadi
         - mountPath: /appl/dmaapMR1/etc/keyfile
+          subPath: mykey
           name: mykey
       restartPolicy: Always
       volumes:
@@ -60,14 +77,15 @@ spec:
         hostPath:
           path: /etc/localtime
       - name: appprops
-        hostPath:
-          path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dmaap/MsgRtrApi.properties
+        configMap:
+          name: mr-dmaap-msgrtrapi-prop-configmap
       - name: cadi
-        hostPath:
-          path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dmaap/cadi.properties
+        configMap:
+          name: mr-dmaap-cadi-prop-configmap
       - name: mykey
-        hostPath:
-          path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/message-router/dmaap/mykey
+        configMap:
+          name: mr-dmaap-mykey-configmap
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
 {{ end }}
+
index ca38da4..844de04 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMessageRouterGlobalKafka }}
 apiVersion: extensions/v1beta1
 kind: Deployment
@@ -16,6 +30,17 @@ spec:
       name: message-router-global-kafka
     spec:
       initContainers:
+      - command:
+        - bash
+        args:
+        - -c
+        - "if [ -d /var/tmp/SDC-DISTR-NOTIF-TOPIC-SDC-OPENSOURCE-ENV1-0 ]; then echo nothing to do; else cp -a /opt/config/src/message-router/dcae-startup-vm-message-router/docker_files/data-kafka/* /var/tmp/; fi"
+        image: {{ .Values.image.config }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        volumeMounts:
+        - mountPath: /var/tmp
+          name: kafka-data
+        name: kafka-primer
       - command:
         - /root/ready.py
         args:
@@ -74,3 +99,4 @@ spec:
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
 #{{ end }}
+
index 1518913..a39a975 100644 (file)
@@ -1,3 +1,19 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
 #{{ if not .Values.disableMessageRouterGlobalKafka }}
 apiVersion: v1
 kind: PersistentVolume
index 0dd8723..1b3e8f8 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMessageRouterZookeeper }}
 apiVersion: extensions/v1beta1
 kind: Deployment
@@ -15,6 +29,18 @@ spec:
         app: zookeeper
       name: message-router-zookeeper
     spec:
+      initContainers:
+      - command:
+        - bash
+        args:
+        - -c
+        - "if [ -d /var/tmp/version-2 ]; then echo nothing to do; else cp -a /opt/config/src/message-router/dcae-startup-vm-message-router/docker_files/data-zookeeper/* /var/tmp/; fi"
+        image: {{ .Values.image.config }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        volumeMounts:
+        - mountPath: /var/tmp
+          name: zookeeper-data
+        name: zookeeper-primer
       containers:
       - image: {{ .Values.image.zookeeper }}
         imagePullPolicy: {{ .Values.pullPolicy }}
@@ -43,3 +69,4 @@ spec:
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
 #{{ end }}
+
index bbc95ab..6825147 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302
@@ -10,3 +24,5 @@ image:
   dmaap: attos/dmaap:latest
   kafka: wurstmeister/kafka:latest
   zookeeper: wurstmeister/zookeeper:latest
+  config: oomk8s/config-init:2.0.0-SNAPSHOT
+
index baf2e3a..e5d38b6 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: mock
index a457d8e..4c566ee 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMockSniroEmulator }}
 apiVersion: v1
 kind: Service
index 9397bfd..cd0da9f 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMockSniroEmulator }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index bd56445..809ad90 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302
diff --git a/kubernetes/msb/.helmignore b/kubernetes/msb/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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
index 7e2ba04..e517d60 100644 (file)
@@ -1,4 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
-description: A Helm chart for Kubernetes
+description: ONAP MicroServices Bus
 name: msb
-version: 0.1.0
+version: 2.0.0
diff --git a/kubernetes/msb/charts/kube2msb/.helmignore b/kubernetes/msb/charts/kube2msb/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/msb/charts/kube2msb/Chart.yaml b/kubernetes/msb/charts/kube2msb/Chart.yaml
new file mode 100644 (file)
index 0000000..4ab40e6
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP MicroServices Bus Kube2MSB Registrator
+name: kube2msb
+version: 2.0.0
diff --git a/kubernetes/msb/charts/kube2msb/requirements.yaml b/kubernetes/msb/charts/kube2msb/requirements.yaml
new file mode 100644 (file)
index 0000000..8cddd30
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/msb/charts/kube2msb/templates/deployment.yaml b/kubernetes/msb/charts/kube2msb/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..94b25a1
--- /dev/null
@@ -0,0 +1,67 @@
+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
+        - msb-discovery
+        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: {{ include "common.name" . }}
+          # TODO: Temporary command:
+          command:
+          - /bin/sh
+          - -c
+          - export AUTH_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token); /bin/kube2msb --kube_master_url=${KUBE_MASTER_URL} --msb_url=${MSB_URL}
+          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          env:
+          - name: KUBE_MASTER_URL
+            value: {{ .Values.config.kubeMasterUrl }}
+          - name: MSB_URL
+            value: {{tpl $.Values.config.discoveryUrl .}}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/msb/charts/kube2msb/values.yaml b/kubernetes/msb/charts/kube2msb/values.yaml
new file mode 100644 (file)
index 0000000..43810a9
--- /dev/null
@@ -0,0 +1,58 @@
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/oom/kube2msb:latest
+pullPolicy: Always
+
+# application configuration
+config:
+  routeLabels: "visualRange:1"
+  kubeMasterUrl: https://kubernetes.default:443
+  discoveryUrl: http://{{.Release.Name}}-msb-discovery.{{include "common.namespace" .}}:10081
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness: {}
+
+readiness: {}
+
+service: {}
+
+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/msb/charts/msb-consul/.helmignore b/kubernetes/msb/charts/msb-consul/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/msb/charts/msb-consul/Chart.yaml b/kubernetes/msb/charts/msb-consul/Chart.yaml
new file mode 100644 (file)
index 0000000..3a1d299
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP MicroServices Bus Consul
+name: msb-consul
+version: 2.0.0
diff --git a/kubernetes/msb/charts/msb-consul/requirements.yaml b/kubernetes/msb/charts/msb-consul/requirements.yaml
new file mode 100644 (file)
index 0000000..8cddd30
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/msb/charts/msb-consul/templates/NOTES.txt b/kubernetes/msb/charts/msb-consul/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..2465e03
--- /dev/null
@@ -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.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ 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/msb/charts/msb-consul/templates/deployment.yaml b/kubernetes/msb/charts/msb-consul/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..74342e7
--- /dev/null
@@ -0,0 +1,59 @@
+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:
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ .Values.global.dockerHubRepository | default .Values.dockerHubRepository }}/{{ .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:
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/msb/charts/msb-consul/templates/service.yaml b/kubernetes/msb/charts/msb-consul/templates/service.yaml
new file mode 100644 (file)
index 0000000..841d349
--- /dev/null
@@ -0,0 +1,26 @@
+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:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/msb/charts/msb-consul/values.yaml b/kubernetes/msb/charts/msb-consul/values.yaml
new file mode 100644 (file)
index 0000000..28df51a
--- /dev/null
@@ -0,0 +1,65 @@
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+dockerHubRepository: registry.hub.docker.com
+image: library/consul:0.9.3
+pullPolicy: Always
+
+# application configuration
+config: {}
+
+# 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: msb-consul
+  externalPort: 8500
+  internalPort: 8500
+  nodePort: 85
+
+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/msb/charts/msb-discovery/.helmignore b/kubernetes/msb/charts/msb-discovery/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/msb/charts/msb-discovery/Chart.yaml b/kubernetes/msb/charts/msb-discovery/Chart.yaml
new file mode 100644 (file)
index 0000000..4a403ba
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP MicroServices Bus Discovery
+name: msb-discovery
+version: 2.0.0
diff --git a/kubernetes/msb/charts/msb-discovery/requirements.yaml b/kubernetes/msb/charts/msb-discovery/requirements.yaml
new file mode 100644 (file)
index 0000000..8cddd30
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/msb/charts/msb-discovery/templates/NOTES.txt b/kubernetes/msb/charts/msb-discovery/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..2465e03
--- /dev/null
@@ -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.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ 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/msb/charts/msb-discovery/templates/deployment.yaml b/kubernetes/msb/charts/msb-discovery/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..f32a5d1
--- /dev/null
@@ -0,0 +1,76 @@
+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
+        - msb-consul
+        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: {{ include "common.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: CONSUL_IP
+            value: {{.Release.Name}}-msb-consul.{{ include "common.namespace" . }}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/msb/charts/msb-discovery/templates/service.yaml b/kubernetes/msb/charts/msb-discovery/templates/service.yaml
new file mode 100644 (file)
index 0000000..841d349
--- /dev/null
@@ -0,0 +1,26 @@
+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:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/msb/charts/msb-discovery/values.yaml b/kubernetes/msb/charts/msb-discovery/values.yaml
new file mode 100644 (file)
index 0000000..d10ba60
--- /dev/null
@@ -0,0 +1,67 @@
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/msb/msb_discovery:1.1.0-SNAPSHOT-latest
+pullPolicy: Always
+
+# application configuration
+config: {}
+
+# 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: msb-discovery
+  externalPort: 10081
+  internalPort: 10081
+  nodePort: 81
+
+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/msb/charts/msb-eag/.helmignore b/kubernetes/msb/charts/msb-eag/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/msb/charts/msb-eag/Chart.yaml b/kubernetes/msb/charts/msb-eag/Chart.yaml
new file mode 100644 (file)
index 0000000..c86decb
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP MicroServices Bus Internal API Gateway
+name: msb-eag
+version: 2.0.0
diff --git a/kubernetes/msb/charts/msb-eag/requirements.yaml b/kubernetes/msb/charts/msb-eag/requirements.yaml
new file mode 100644 (file)
index 0000000..8cddd30
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/msb/charts/msb-eag/templates/NOTES.txt b/kubernetes/msb/charts/msb-eag/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..2465e03
--- /dev/null
@@ -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.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ 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/msb/charts/msb-eag/templates/deployment.yaml b/kubernetes/msb/charts/msb-eag/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..d41518d
--- /dev/null
@@ -0,0 +1,83 @@
+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
+        - msb-discovery
+        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: {{ include "common.name" . }}
+          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+            name: {{ .Values.service.name }}
+          - containerPort: {{ .Values.service.internalPortHttps }}
+            name: {{ .Values.service.name }}-https
+          # 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: CONSUL_IP
+            value: {{.Release.Name}}-msb-consul.{{ include "common.namespace" . }}
+          - name: SDCLIENT_IP
+            value: {{.Release.Name}}-msb-discovery.{{ include "common.namespace" . }}
+          - name: ROUTE_LABELS
+            value: {{ .Values.config.routeLabels }}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/msb/charts/msb-eag/templates/service.yaml b/kubernetes/msb/charts/msb-eag/templates/service.yaml
new file mode 100644 (file)
index 0000000..e438f10
--- /dev/null
@@ -0,0 +1,32 @@
+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:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortHttps }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePortHttps }}
+      name: {{ .Values.service.name }}-https
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortHttps }}
+      targetPort: {{ .Values.service.internalPortHttps }}
+      name: {{ .Values.service.name }}-https
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/msb/charts/msb-eag/values.yaml b/kubernetes/msb/charts/msb-eag/values.yaml
new file mode 100644 (file)
index 0000000..757b467
--- /dev/null
@@ -0,0 +1,71 @@
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/msb/msb_apigateway:1.1.0-SNAPSHOT-latest
+pullPolicy: Always
+
+# application configuration
+config:
+  routeLabels: "visualRange:0"
+
+# 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: msb-eag
+  externalPort: 80
+  internalPort: 80
+  nodePort: 82
+  externalPortHttps: 443
+  internalPortHttps: 443
+  nodePortHttps: 84
+
+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/msb/charts/msb-iag/.helmignore b/kubernetes/msb/charts/msb-iag/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/msb/charts/msb-iag/Chart.yaml b/kubernetes/msb/charts/msb-iag/Chart.yaml
new file mode 100644 (file)
index 0000000..d546bfa
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: ONAP MicroServices Bus Internal API Gateway
+name: msb-iag
+version: 2.0.0
diff --git a/kubernetes/msb/charts/msb-iag/requirements.yaml b/kubernetes/msb/charts/msb-iag/requirements.yaml
new file mode 100644 (file)
index 0000000..8cddd30
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/msb/charts/msb-iag/templates/NOTES.txt b/kubernetes/msb/charts/msb-iag/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..2465e03
--- /dev/null
@@ -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.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ 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/msb/charts/msb-iag/templates/deployment.yaml b/kubernetes/msb/charts/msb-iag/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..d41518d
--- /dev/null
@@ -0,0 +1,83 @@
+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
+        - msb-discovery
+        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: {{ include "common.name" . }}
+          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+            name: {{ .Values.service.name }}
+          - containerPort: {{ .Values.service.internalPortHttps }}
+            name: {{ .Values.service.name }}-https
+          # 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: CONSUL_IP
+            value: {{.Release.Name}}-msb-consul.{{ include "common.namespace" . }}
+          - name: SDCLIENT_IP
+            value: {{.Release.Name}}-msb-discovery.{{ include "common.namespace" . }}
+          - name: ROUTE_LABELS
+            value: {{ .Values.config.routeLabels }}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/msb/charts/msb-iag/templates/service.yaml b/kubernetes/msb/charts/msb-iag/templates/service.yaml
new file mode 100644 (file)
index 0000000..e438f10
--- /dev/null
@@ -0,0 +1,32 @@
+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:
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortHttps }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePortHttps }}
+      name: {{ .Values.service.name }}-https
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPortHttps }}
+      targetPort: {{ .Values.service.internalPortHttps }}
+      name: {{ .Values.service.name }}-https
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/msb/charts/msb-iag/values.yaml b/kubernetes/msb/charts/msb-iag/values.yaml
new file mode 100644 (file)
index 0000000..6e4877b
--- /dev/null
@@ -0,0 +1,71 @@
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/msb/msb_apigateway:1.1.0-SNAPSHOT-latest
+pullPolicy: Always
+
+# application configuration
+config:
+  routeLabels: "visualRange:1"
+
+# 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: msb-iag
+  externalPort: 80
+  internalPort: 80
+  nodePort: 80
+  externalPortHttps: 443
+  internalPortHttps: 443
+  nodePortHttps: 83
+
+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/msb/requirements.yaml b/kubernetes/msb/requirements.yaml
new file mode 100644 (file)
index 0000000..acca8ef
--- /dev/null
@@ -0,0 +1,4 @@
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/msb/templates/all-services.yaml b/kubernetes/msb/templates/all-services.yaml
deleted file mode 100644 (file)
index 0ae94fc..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#{{ if not .Values.disableMsbMsbConsul }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: msb-consul
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: msb-consul
-spec:
-  ports:
-    - port: {{ .Values.consulPort }}
-      nodePort: {{ .Values.consulNodePort }}
-  selector:
-    app: msb-consul
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableMsbMsbDiscovery }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: msb-discovery
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: msb-discovery
-spec:
-  clusterIP: "{{ .Values.discoveryClusterIP }}"
-  ports:
-    - port: {{ .Values.discoveryPort }}
-      nodePort: {{ .Values.discoveryNodePort }}
-  selector:
-    app: msb-discovery
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableMsbMsbIag }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: msb-iag
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: msb-iag
-spec:
-  ports:
-    - name: http
-      port: {{ .Values.iagPort }}
-      nodePort: {{ .Values.iagNodePort }}
-    - name: https
-      port: {{ .Values.iagPort_https }}
-      nodePort: {{ .Values.iagNodePort_https }}
-  selector:
-    app: msb-iag
-  type: NodePort
-#{{ end }}
-#{{ if not .Values.disableMsbMsbEag }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: msb-eag
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    app: msb-eag
-spec:
-  ports:
-    - 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 }}
diff --git a/kubernetes/msb/templates/msb-consul-deployment.yaml b/kubernetes/msb/templates/msb-consul-deployment.yaml
deleted file mode 100644 (file)
index 7d7586c..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#{{ if not .Values.disableMsbMsbConsul }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: msb-consul
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.msbConsulReplicas }}
-  selector:
-    matchLabels:
-      app: msb-consul
-  template:
-    metadata:
-      labels:
-        app: msb-consul
-      name: msb-consul
-    spec:
-      hostname: msb-consul
-      containers:
-      - args:
-        image: {{ .Values.image.consul }}
-        name: msb-consul
-        ports:
-        - containerPort: {{ .Values.consulPort }}
-          name: msb-consul
-        readinessProbe:
-          tcpSocket:
-            port: {{ .Values.consulPort }}
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        imagePullPolicy: {{ .Values.pullPolicy }}
-#{{ end }}
diff --git a/kubernetes/msb/templates/msb-discovery-deployment.yaml b/kubernetes/msb/templates/msb-discovery-deployment.yaml
deleted file mode 100644 (file)
index 280e6c3..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#{{ if not .Values.disableMsbMsbDiscovery }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: msb-discovery
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.discoveryReplicas }}
-  selector:
-    matchLabels:
-      app: msb-discovery
-  template:
-    metadata:
-      labels:
-        app: msb-discovery
-      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 }}
-        ports:
-        - containerPort: {{ .Values.discoveryPort }}
-          name: msb-discovery
-        readinessProbe:
-          tcpSocket:
-            port: {{ .Values.discoveryPort }}
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        imagePullPolicy: {{ .Values.pullPolicy }}
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/msb/templates/msb-eag-deployment.yaml b/kubernetes/msb/templates/msb-eag-deployment.yaml
deleted file mode 100644 (file)
index a24b3b0..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#{{ if not .Values.disableMsbMsbEag }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: msb-eag
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.eagReplicas }}
-  selector:
-    matchLabels:
-      app: msb-eag
-  template:
-    metadata:
-      labels:
-        app: msb-eag
-      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 }}
-        - name: SDCLIENT_IP
-          value:  msb-discovery.{{ .Values.nsPrefix }}
-        - name: ROUTE_LABELS
-          value: "visualRange:0"
-        ports:
-        - containerPort: {{ .Values.eagPort }}
-          name: msb-eag
-        readinessProbe:
-          tcpSocket:
-            port: {{ .Values.eagPort }}
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        imagePullPolicy: {{ .Values.pullPolicy}}
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/msb/templates/msb-iag-deployment.yaml b/kubernetes/msb/templates/msb-iag-deployment.yaml
deleted file mode 100644 (file)
index 8a56a5f..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#{{ if not .Values.disableMsbMsbIag }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: msb-iag
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.iagReplicas }}
-  selector:
-    matchLabels:
-      app: msb-iag
-  template:
-    metadata:
-      labels:
-        app: msb-iag
-      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 }}
-        - name: SDCLIENT_IP
-          value: msb-discovery.{{ .Values.nsPrefix }}
-        - name: ROUTE_LABELS
-          value: "visualRange:1"
-        ports:
-        - containerPort: {{ .Values.iagPort }}
-          name: msb-iag
-        readinessProbe:
-          tcpSocket:
-            port: {{ .Values.iagPort }}
-          initialDelaySeconds: 5
-          periodSeconds: 10
-        imagePullPolicy: "{{ .Values.pullPolicy}}"
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
index 8c50e37..49e5196 100644 (file)
@@ -1,27 +1,20 @@
-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.1.0-SNAPSHOT-latest
-  apigateway: nexus3.onap.org:10001/onap/msb/msb_apigateway:1.1.0-SNAPSHOT-latest
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
 
-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
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
index ab67e0a..b4edecc 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: mso
index 89c6932..b0d4690 100644 (file)
@@ -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.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index 6eefe65..70e67e4 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMsoMariadb }}
 apiVersion: v1
 kind: Service
index 51c106c..2949876 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMsoMariadb }}
 apiVersion: v1
 kind: ConfigMap
index a906c1c..801b7d4 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMsoMariadb }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 15c6141..4704c6c 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMsoMso }}
 apiVersion: v1
 kind: ConfigMap
index 2e5497c..8a099a4 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMsoMso }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 273c22f..ed6b16a 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMsoMso }}
 apiVersion: v1
 kind: ConfigMap
index 04f5c60..1ee4ab0 100644 (file)
@@ -1,3 +1,19 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
 #{{ if not .Values.disableMsoMariadb }}
 apiVersion: v1
 kind: PersistentVolume
index 4cc9146..410246f 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302
@@ -15,3 +29,7 @@ image:
   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
+
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index da92f90..4f9a154 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: multicloud
diff --git a/kubernetes/multicloud/resources/config/log/filebeat/filebeat.yml b/kubernetes/multicloud/resources/config/log/filebeat/filebeat.yml
new file mode 100644 (file)
index 0000000..a6dd579
--- /dev/null
@@ -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: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
+  #If enable will do load balancing among availabe Logstash, automatically.
+  loadbalance: true
+
+  #The list of root certificates for server verifications.
+  #If certificate_authorities is empty or not set, the trusted
+  #certificate authorities of the host system are used.
+  #ssl.certificate_authorities: $ssl.certificate_authorities
+
+  #The path to the certificate for SSL client authentication. If the certificate is not specified,
+  #client authentication is not available.
+  #ssl.certificate: $ssl.certificate
+
+  #The client certificate key used for client authentication.
+  #ssl.key: $ssl.key
+
+  #The passphrase used to decrypt an encrypted key stored in the configured key file
+  #ssl.key_passphrase: $ssl.key_passphrase
diff --git a/kubernetes/multicloud/resources/config/log/framework/log.yml b/kubernetes/multicloud/resources/config/log/framework/log.yml
new file mode 100644 (file)
index 0000000..f548871
--- /dev/null
@@ -0,0 +1,24 @@
+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: 52428800
+        backupCount: 10
+formatters:
+    standard:
+        format: "%(asctime)s|||||%(name)s||%(thread)||%(funcName)s||%(levelname)s||%(message)s"
+    mdcFormat:
+        format: "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t"
+        mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}"
+        datefmt: "%Y-%m-%d %H:%M:%S"
+        (): onaplogging.mdcformatter.MDCFormatter
\ No newline at end of file
diff --git a/kubernetes/multicloud/resources/config/log/ocata/log.yml b/kubernetes/multicloud/resources/config/log/ocata/log.yml
new file mode 100644 (file)
index 0000000..ef71b90
--- /dev/null
@@ -0,0 +1,34 @@
+version: 1
+disable_existing_loggers: False
+
+loggers:
+    ocata:
+      handlers: [ocata_handler]
+      level: "DEBUG"
+      propagate: False
+    newton_base:
+      handlers: [ocata_handler]
+      level: "DEBUG"
+      propagate: False
+    common:
+      handlers: [ocata_handler]
+      level: "DEBUG"
+      propagate: False
+
+handlers:
+    ocata_handler:
+        level: "DEBUG"
+        class: "logging.handlers.RotatingFileHandler"
+        filename: "/var/log/onap/multicloud/openstack/ocata/ocata.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 (file)
index 0000000..9165464
--- /dev/null
@@ -0,0 +1,24 @@
+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: 52428800
+        backupCount: 10
+formatters:
+    standard:
+        format: "%(asctime)s|||||%(name)s||%(thread)||%(funcName)s||%(levelname)s||%(message)s"
+    mdcFormat:
+        format: "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t"
+        mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}"
+        datefmt: "%Y-%m-%d %H:%M:%S"
+        (): onaplogging.mdcformatter.MDCFormatter
\ No newline at end of file
diff --git a/kubernetes/multicloud/resources/config/log/windriver/log.yml b/kubernetes/multicloud/resources/config/log/windriver/log.yml
new file mode 100644 (file)
index 0000000..8e2c5c2
--- /dev/null
@@ -0,0 +1,34 @@
+version: 1
+disable_existing_loggers: False
+
+loggers:
+    titanium_cloud:
+      handlers: [titanium_cloud_handler]
+      level: "DEBUG"
+      propagate: False
+    newton_base:
+      handlers: [titanium_cloud_handler]
+      level: "DEBUG"
+      propagate: False
+    common:
+      handlers: [titanium_cloud_handler]
+      level: "DEBUG"
+      propagate: False
+
+handlers:
+    titanium_cloud_handler:
+        level: "DEBUG"
+        class: "logging.handlers.RotatingFileHandler"
+        filename: "/var/log/onap/multicloud/openstack/windriver/titanium_cloud.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
index 58e67e0..c58cd74 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMulticloudFramework }}
 apiVersion: v1
 kind: Service
index 4f96fbf..b2f0440 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMulticloudFramework }}
 apiVersion: extensions/v1beta1
 kind: Deployment
@@ -15,7 +29,6 @@ spec:
         app: framework
       name: multicloud-framework
     spec:
-     hostname: framework
      containers:
      - env:
        - name: MSB_ADDR
@@ -32,12 +45,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:
@@ -50,11 +66,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: {{ .Values.dataRootDir }}/{{ .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"
+     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 (file)
index 0000000..1050f10
--- /dev/null
@@ -0,0 +1,55 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#{{ 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 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: multicloud-ocata-log-configmap
+  namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/ocata/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: multicloud-windriver-log-configmap
+  namespace: {{ .Values.nsPrefix }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/windriver/*").AsConfig . | indent 2 }}
+#{{ end }}
index 072b3d9..ecbd74b 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMulticloudMulticloudOcata }}
 apiVersion: extensions/v1beta1
 kind: Deployment
@@ -15,7 +29,6 @@ spec:
         app: multicloud-ocata
       name: multicloud-ocata
     spec:
-     hostname: multicloud-ocata
      containers:
      - env:
        - name: MSB_ADDR
@@ -34,8 +47,11 @@ spec:
          value: "AAI"
        name: multicloud-ocata
        volumeMounts:
-       - mountPath: /opt/ocata/logs
+       - mountPath: /var/log/onap
          name: ocata-log
+       - mountPath: /opt/ocata/ocata/pub/config/log.yml
+         name: ocata-logconfig
+         subPath: log.yml
        image: {{ .Values.image.ocata }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        ports:
@@ -50,11 +66,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: ocata-log
+       - mountPath: /usr/share/filebeat/data
+         name: ocata-data-filebeat
      volumes:
      - name: ocata-log
-       hostPath:
-         path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/multicloud/ocata/logs
+       emptyDir: {}
+     - name: ocata-data-filebeat
+       emptyDir: {}
+     - name: filebeat-conf
+       configMap:
+         name: multicloud-filebeat-configmap
+     - name: ocata-logconfig
+       configMap:
+         name: multicloud-ocata-log-configmap
      imagePullSecrets:
      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
+     restartPolicy: Always
 #{{ end }}
index 7919bc8..e151081 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMulticloudMulticloudVio }}
 apiVersion: extensions/v1beta1
 kind: Deployment
@@ -15,7 +29,6 @@ spec:
         app: multicloud-vio
       name: multicloud-vio
     spec:
-     hostname: multicloud-vio
      containers:
      - env:
        - name: MSB_ADDR
@@ -34,8 +47,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:
@@ -50,11 +66,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: {{ .Values.dataRootDir }}/{{ .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"
+     restartPolicy: Always
 #{{ end }}
index 168d1d6..c1b3858 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableMulticloudMulticloudWindriver }}
 apiVersion: extensions/v1beta1
 kind: Deployment
@@ -15,7 +29,6 @@ spec:
         app: multicloud-windriver
       name: multicloud-windriver
     spec:
-     hostname: multicloud-windriver
      containers:
      - env:
        - name: MSB_ADDR
@@ -34,8 +47,11 @@ spec:
          value: "AAI"
        name: multicloud-windriver
        volumeMounts:
-       - mountPath: /opt/windriver/logs
+       - mountPath: /var/log/onap
          name: windriver-log
+       - mountPath: /opt/windriver/titanium_cloud/pub/config/log.yml
+         name: windriver-logconfig
+         subPath: log.yml
        image: {{ .Values.image.windriver }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        ports:
@@ -50,11 +66,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: windriver-log
+       - mountPath: /usr/share/filebeat/data
+         name: windriver-data-filebeat
      volumes:
      - name: windriver-log
-       hostPath:
-         path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/multicloud/windriver/logs
+       emptyDir: {}
+     - name: windriver-data-filebeat
+       emptyDir: {}
+     - name: filebeat-conf
+       configMap:
+         name: multicloud-filebeat-configmap
+     - name: windriver-logconfig
+       configMap:
+         name: multicloud-windriver-log-configmap
      imagePullSecrets:
      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
+     restartPolicy: Always
 #{{ end }}
index a903bae..d43ee61 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302
@@ -8,11 +22,15 @@ vioReplicas: 1
 windRiverReplicas: 1
 image:
   readiness: oomk8s/readiness-check:1.1.0
-  framework: nexus3.onap.org:10001/onap/multicloud/framework:v1.0.0
-  vio: nexus3.onap.org:10001/onap/multicloud/vio:v1.0.0
-  ocata: nexus3.onap.org:10001/onap/multicloud/openstack-ocata:v1.0.0
-  windriver: nexus3.onap.org:10001/onap/multicloud/openstack-windriver:v1.0.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:latest
+  windriver: nexus3.onap.org:10001/onap/multicloud/openstack-windriver:latest
+  filebeat: docker.elastic.co/beats/filebeat:5.5.0
 # domain name of msb gateway
 msbgateway: msb-iag.{{ .Values.nsPrefix }}
 msbPort: 80
+
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index db8a30f..1050e1a 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 name: onap
 version: 2.0.0
index 8f12312..b98096b 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # Referencing a named repo called 'local'.
 # Can add this repo by running commands like:
 # > helm serve
@@ -8,21 +22,24 @@ dependencies:
     repository: '@local'
     condition: aaf.enabled
   - name: aai
-    version: ~0.1.0
+    version: ~2.0.0
     repository: '@local'
     condition: aai.enabled
   - name: appc
-    version: ~0.1.0
+    version: ~2.0.0
     repository: '@local'
     condition: appc.enabled
   - name: clamp
-    version: ~1.1.0
+    version: ~2.0.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'
@@ -32,15 +49,11 @@ dependencies:
     repository: '@local'
     condition: dcaegen2.enabled
   - name: esr
-    version: ~1.1.0
+    version: ~2.0.0
     repository: '@local'
     condition: esr.enabled
-  - name: kube2msb
-    version: ~0.1.0
-    repository: '@local'
-    condition: kube2msb.enabled
   - name: log
-    version: ~0.1.0
+    version: ~2.0.0
     repository: '@local'
     condition: log.enabled
   - name: message-router
@@ -52,7 +65,7 @@ dependencies:
     repository: '@local'
     condition: mock.enabled
   - name: msb
-    version: ~0.1.0
+    version: ~2.0.0
     repository: '@local'
     condition: msb.enabled
   - name: multicloud
@@ -68,7 +81,7 @@ dependencies:
     repository: '@local'
     condition: portal.enabled
   - name: robot
-    version: ~0.1.0
+    version: ~2.0.0
     repository: '@local'
     condition: robot.enabled
   - name: sdc
@@ -92,10 +105,10 @@ dependencies:
     repository: '@local'
     condition: vfc.enabled
   - name: vid
-    version: ~0.1.0
+    version: ~2.0.0
     repository: '@local'
     condition: vid.enabled
   - name: vnfsdk
     version: ~1.1.0
     repository: '@local'
-    condition: vnfsdk.enabled
\ No newline at end of file
+    condition: vnfsdk.enabled
diff --git a/kubernetes/onap/resources/environments/dev.yaml b/kubernetes/onap/resources/environments/dev.yaml
new file mode 100644 (file)
index 0000000..8bbaa27
--- /dev/null
@@ -0,0 +1,117 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration 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
+
+  # flag to enable debugging - application support required
+  debugEnabled: true
+
+#################################################################
+# Enable/disable and configure helm charts (ie. applications)
+# to customize the ONAP deployment.
+#################################################################
+aaf:
+  enabled: false
+aai:
+  enabled: false
+appc:
+  enabled: false
+clamp:
+  enabled: true
+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: true
+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
\ No newline at end of file
diff --git a/kubernetes/onap/templates/clusterrolebinding.yaml b/kubernetes/onap/templates/clusterrolebinding.yaml
new file mode 100644 (file)
index 0000000..fbe9a5b
--- /dev/null
@@ -0,0 +1,32 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: 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/onap/templates/secrets.yaml b/kubernetes/onap/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..2345be1
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: 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
index 5340c95..ee7d00b 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #################################################################
 # Global configuration overrides.
 #
@@ -28,48 +42,47 @@ global:
   # 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
+  enabled: true
 aai:
-  enabled: false
+  enabled: true
 appc:
-  enabled: false
+  enabled: true
 clamp:
-  enabled: false
+  enabled: true
 cli:
-  enabled: false
+  enabled: true
 consul: # Consul Health Check Monitoring
-  enabled: false
+  enabled: true
 dcaegen2:
-  enabled: false
+  enabled: true
 esr:
-  enabled: false
-kube2msb:
-  enabled: false
-log:
-  enabled: false
+  enabled: true
+log: # ONAP Logging ElasticStack
+  enabled: true
 message-router:
-  enabled: false
+  enabled: true
 mock:
-  enabled: false
+  enabled: true
 msb:
-  enabled: false
+  enabled: true
 multicloud:
-  enabled: false
+  enabled: true
 policy:
-  enabled: false
+  enabled: true
 portal:
-  enabled: false
+  enabled: true
 robot: # Robot Health Check
-  enabled: false
+  enabled: true
 sdc:
-  enabled: false
+  enabled: true
 sdnc:
-  enabled: false
+  enabled: true
 so: # Service Orchestrator
   enabled: true
 
@@ -96,10 +109,10 @@ so: # Service Orchestrator
     config:
       mariadbRootPassword: password
 uui:
-  enabled: false
+  enabled: true
 vfc:
-  enabled: false
+  enabled: true
 vid:
-  enabled: false
+  enabled: true
 vnfsdk:
-  enabled: false
\ No newline at end of file
+  enabled: true
diff --git a/kubernetes/oneclick/createAll.bash b/kubernetes/oneclick/createAll.bash
deleted file mode 100755 (executable)
index 488f920..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-#!/bin/bash
-
-. $(dirname "$0")/setenv.bash
-
-
-usage() {
-  cat <<EOF
-Usage: $0 [PARAMs]
--u                  : Display usage
--n [NAMESPACE]      : Kubernetes namespace (required)
--v [VALUES]         : HELM values filepath (usefull when deploying one component at a time)
--l [LOCATION]       : Location of oom project
--i [INSTANCE]       : ONAP deployment instance # (default: 1)
--a [APP]            : Specify a specific ONAP component (default: all)
-                      from the following choices:
-                      sdc, aai ,mso, message-router, robot, vid, aaf, uui
-                      sdnc, portal, policy, appc, multicloud, clamp, consul, vnfsdk
-EOF
-}
-
-check_return_code(){
-  ret=$?
-  if [ $ret -ne 0 ]; then
-    printf "The command $1 returned with error code $ret \n" 1>&2
-    exit $ret
-  fi
-}
-
-create_service_account() {
-  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`
-  eval ${cmd}
-}
-
-create_registry_key() {
-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
-}
-
-configure_dcaegen2() {
-  if [ ! -s "$OPENSTACK_PRIVATE_KEY_PATH" ]
-  then
-    echo "ERROR: $OPENSTACK_PRIVATE_KEY_PATH does not exist or is empty.  Cannot launch dcae gen2."
-    return 1
-  fi
-
-  cmd=`echo kubectl --namespace $1-$2 create secret generic $2-openstack-ssh-private-key --from-file=key=${OPENSTACK_PRIVATE_KEY_PATH}`
-  eval ${cmd}
-  check_return_code $cmd
-
-  if [ ! -s "$DCAEGEN2_CONFIG_INPUT_FILE_PATH" ]
-  then
-    echo "ERROR: $DCAEGEN2_CONFIG_INPUT_FILE_PATH does not exist or is empty.  Cannot launch dcae gen2."
-    return 1
-  fi
-
-  cmd=`echo kubectl --namespace $1-$2 create configmap $2-config-inputs --from-file=inputs.yaml=${DCAEGEN2_CONFIG_INPUT_FILE_PATH}`
-  eval ${cmd}
-  check_return_code $cmd
-}
-
-create_onap_helm() {
-  HELM_VALUES_ADDITION=""
-  if [[ ! -z $HELM_VALUES_FILEPATH ]]; then
-    HELM_VALUES_ADDITION="--values=$HELM_VALUES_FILEPATH"
-  fi
-  # Have to put a check for dcaegen2 because it requires external files to helm
-  # which should not be part of the Chart.
-  if [ "$2" = "dcaegen2" ];
-  then
-    configure_dcaegen2 $1 $2
-    local result=$?
-    if [ $result -ne 0 ]
-    then
-      echo "ERROR: dcaegen2 failed to configure: Pre-requisites not met.  Skipping deploying it and continue"
-      return
-    fi
-  fi
-
-  # 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
-}
-
-#MAINs
-NS=
-HELM_VALUES_FILEPATH=""
-LOCATION="../"
-INCL_SVC=true
-APP=
-INSTANCE=1
-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)
-      usage
-      exit 1
-      ;;
-    n)
-      NS=${OPTARG}
-      ;;
-    v)
-      HELM_VALUES_FILEPATH=${OPTARG}
-      ;;
-    i)
-      INSTANCE=${OPTARG}
-      ;;
-    l)
-      LOCATION=${OPTARG}
-      ;;
-    a)
-      SINGLE_COMPONENT=true
-      APP=${OPTARG}
-      if [[ -z $APP ]]; then
-        usage
-        exit 1
-      fi
-      ;;
-    du)
-      DU=${OPTARG}
-      ;;
-    dp)
-      DP=${OPTARG}
-      ;;
-    ?)
-      usage
-      exit
-      ;;
-  esac
-done
-
-if [[ -z $NS ]]; then
-  usage
-  exit 1
-fi
-
-if [[ ! -z "$APP" ]]; then
-  HELM_APPS=($APP)
-fi
-
-
-if [ "$INSTANCE" -gt "$MAX_INSTANCE" ];then
-  printf "\n********** You choose to create ${INSTANCE}th instance of ONAP \n"
-  printf "\n********** Due to port allocation only ${MAX_INSTANCE} instances of ONAP is allowed per kubernetes deployment\n"
-  exit 1
-fi
-
-start=$((300+2*INSTANCE))
-end=$((start+1))
-
-printf "\n********** Creating instance ${INSTANCE} of ONAP with port range ${start}00 and ${end}99\n"
-
-
-printf "\n********** Creating ONAP: ${ONAP_APPS[*]}\n"
-
-if [ "$SINGLE_COMPONENT" == "false" ]
-then
-    printf "\nCreating namespace **********\n"
-    create_namespace $NS
-
-    printf "\nCreating registry secret **********\n"
-    create_registry_key $NS ${NS}-docker-registry-key $ONAP_DOCKER_REGISTRY $DU $DP $ONAP_DOCKER_MAIL
-
-    printf "\nCreating service account **********\n"
-    create_service_account $NS
-fi
-
-printf "\n\n********** Creating deployments for ${HELM_APPS[*]} ********** \n"
-
-for i in ${HELM_APPS[@]}; do
-
-  printf "\nCreating deployments and services **********\n"
-  create_onap_helm $NS $i $start
-
-  printf "\n"
-done
-
-printf "\n**** Done ****\n"
diff --git a/kubernetes/oneclick/deleteAll.bash b/kubernetes/oneclick/deleteAll.bash
deleted file mode 100755 (executable)
index 9833af7..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/bin/bash
-
-. $(dirname "$0")/setenv.bash
-
-delete_namespace() {
-  kubectl delete namespace $1
-}
-
-delete_service_account() {
-    kubectl delete clusterrolebinding $1-admin-binding
-}
-
-delete_registry_key() {
-  kubectl --namespace $1 delete secret ${1}-docker-registry-key
-}
-
-delete_app_helm() {
-  helm delete $1-$2 --purge
-}
-
-wait_terminate() {
-  printf "Waiting for namespaces termination...\n"
-  while true; do
-    declare -i _STATUS=0
-    for i in ${HELM_APPS[@]}; do
-      kubectl get pods --namespace $1 | grep -w " $i" > /dev/null 2>&1
-      if [ "$?" -ne "0" ]; then
-        _STATUS=1
-        break
-      fi
-    done
-
-    if [ "$SINGLE_COMPONENT" == "false" ]; then
-      kubectl get namespaces $1 > /dev/null 2>&1
-      _STATUS=$?
-    fi
-    if [ "$_STATUS" -ne "0" ]; then
-      break
-    fi
-    sleep 2
-  done
-}
-
-usage() {
-  cat <<EOF
-Usage: $0 [PARAMs]
--u                  : Display usage
--n [NAMESPACE]      : Kubernetes namespace (required)
--c                  : kubectl context (default: current context)
--y                  : Skip interactive confirmation (default: no)
--a [APP]            : Specify a specific ONAP component (default: all)
-                      from the following choices:
-                      sdc, aai ,mso, message-router, robot, vid, aaf, uui
-                      sdnc, portal, policy, appc, multicloud, clamp, consul, vnfsdk
--N                  : Do not wait for deletion of namespace and its objects
-EOF
-}
-
-#MAINs
-NS=
-INCL_SVC=false
-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)
-      usage
-      exit 1
-      ;;
-    n)
-      NS=${OPTARG}
-      ;;
-    a)
-      APP=${OPTARG}
-      if [[ -z $APP ]]; then
-        usage
-        exit 1
-      fi
-      SINGLE_COMPONENT=true
-      ;;
-    N)
-      WAIT_TERMINATE=false
-      ;;
-    y)
-      SKIP_INTERACTIVE_CONFIRMATION=yes
-      ;;
-    c)
-      KUBECTL_CONTEXT=${OPTARG}
-      ;;
-    ?)
-      usage
-      exit
-      ;;
-  esac
-done
-
-if [[ -z $NS ]]; then
-  usage
-  exit 1
-fi
-
-if [[ "$SKIP_INTERACTIVE_CONFIRMATION" != yes ]]; then
-  current_kubectl_context=$(kubectl config get-contexts |grep "*" |awk '{print $2}')
-  if test "$KUBECTL_CONTEXT" != "$current_kubectl_context"; then
-    printf "Current kubectl context does not match context specified:\x1b[31m $current_kubectl_context\x1b[0m\n"
-    if [ ! -z "$KUBECTL_CONTEXT" -a "$KUBECTL_CONTEXT" != " " ]; then
-      read -p "Do you wish to switch context to $KUBECTL_CONTEXT and continue?" yn
-      case $yn in
-        [Yy]* ) kubectl config use-context $KUBECTL_CONTEXT;;
-        * ) printf "Skipping delete...\n"; exit;;
-      esac
-    else
-      printf "You are about to delete deployment from:\x1b[31m $current_kubectl_context\x1b[0m\n"
-      read -p "To continue enter context name: " response
-
-      if test "$response" != "$current_kubectl_context"
-      then
-        printf "Your response does not match current context! Skipping delete ...\n"
-        exit 1
-      fi
-    fi
-  fi
-fi
-
-if [[ ! -z "$APP" ]]; then
-  HELM_APPS=($APP)
-fi
-
-printf "\n********** Cleaning up ONAP: ${ONAP_APPS[*]}\n"
-
-for i in ${HELM_APPS[@]}; do
-  delete_app_helm $NS $i
-done
-
-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
-fi
-
-printf "\n********** Gone **********\n"
diff --git a/kubernetes/oneclick/setenv.bash b/kubernetes/oneclick/setenv.bash
deleted file mode 100644 (file)
index 312d2c4..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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')
-ONAP_DOCKER_REGISTRY=${ONAP_DOCKER_REGISTRY:-nexus3.onap.org:10001}
-ONAP_DOCKER_USER=${ONAP_DOCKER_USER:-docker}
-ONAP_DOCKER_PASS=${ONAP_DOCKER_PASS:-docker}
-ONAP_DOCKER_MAIL=${ONAP_DOCKER_MAIL:-$USERNAME@$USERDOMAIN}
-# Openstack key pair private key file location required to enable dcaegen2 installer CRUD operations in your Openstack
-# Ensure you set the name of your keypair in the dcae-parameters.yaml entry "keypair: "dcae-g2"
-# example: export OPENSTACK_PRIVATE_KEY_PATH=/home/user/Downloads/dcae-g2.pem
-OPENSTACK_PRIVATE_KEY_PATH=${OPENSTACK_PRIVATE_KEY_PATH:-~/.ssh/onap_rsa}
-# dcaegen2 bootstrap configuration input yaml file.  Start from the sample, and set your environments real values:
-# example: export DCAEGEN2_CONFIG_INPUT_FILE_PATH=/tmp/dcae-parameters.yaml
-DCAEGEN2_CONFIG_INPUT_FILE_PATH=${DCAEGEN2_CONFIG_INPUT_FILE_PATH:-../dcaegen2/dcae-parameters-sample.yaml}
diff --git a/kubernetes/oneclick/tools/autoCleanConfig.bash b/kubernetes/oneclick/tools/autoCleanConfig.bash
deleted file mode 100644 (file)
index e274e0d..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-########################################################################################
-# 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
deleted file mode 100644 (file)
index 99ea03e..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-########################################################################################
-# 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
deleted file mode 100644 (file)
index 734c5a6..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/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"
index 0f877a0..b178495 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: policy
index 89c6932..b0d4690 100644 (file)
@@ -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.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index 3971b29..f8e435b 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePolicyMariadb }}
 apiVersion: v1
 kind: Service
index 25bf0c6..54b5565 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePolicyBrmsgw }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index ef9636c..ec0413a 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePolicyDrools }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 9ac17da..302a052 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePolicyMariadb }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index c63e0af..de0aeb0 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePolicyNexus }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 389fc6b..5a0d046 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePolicyPap }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 6740f1d..6b28ed0 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePolicyPdp }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index d59ba61..9998b2c 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePolicyDrools }}
 apiVersion: v1
 kind: ConfigMap
index 6fe52ea..59bfa11 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePolicyDrools }}
 apiVersion: v1
 kind: Secret
index b1a9e09..3a62030 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePolicyPap }}
 apiVersion: v1
 kind: ConfigMap
index 3af4af8..49ad892 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302
@@ -24,3 +38,7 @@ image:
   policyNexusVersion: v1.1.1
   ubuntu: ubuntu:16.04
   filebeat: docker.elastic.co/beats/filebeat:5.5.0
+
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index 706a4f4..b7c9e7b 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: portal
index 89c6932..b0d4690 100644 (file)
@@ -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.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index b676e3c..d6958fc 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePortalPortaldb }}
 apiVersion: v1
 kind: Service
index ec3805d..ee5e4b8 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePortalPortalapps }}
 apiVersion: v1
 kind: ConfigMap
old mode 100755 (executable)
new mode 100644 (file)
index e00151c..ccd086c
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePortalPortalapps }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 60abcb7..068adad 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePortalPortalapps }}
 apiVersion: v1
 kind: ConfigMap
old mode 100755 (executable)
new mode 100644 (file)
index 828779e..e1158a2
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePortalPortaldb }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 1f554bc..1ba5fbb 100644 (file)
@@ -1,3 +1,19 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
 #{{ if not .Values.disablePortalPortaldb }}
 apiVersion: v1
 kind: PersistentVolume
index 0680a8a..f3418e7 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePortalVncPortal }}
 kind: ConfigMap
 metadata:
@@ -47,6 +61,7 @@ spec:
         image: {{ .Values.image.readiness }}
         imagePullPolicy: {{ .Values.pullPolicy }}
         name: portal-vnc-readiness
+{{- if empty .Values.disablePolicyPap  | not }}
       - command:
         - /root/ready.py
         args:
@@ -58,6 +73,7 @@ spec:
         image: {{ .Values.image.readiness }}
         imagePullPolicy: {{ .Values.pullPolicy }}
         name: vnc-pap-readiness
+{{- end }}
       - command:
         - /root/ready.py
         args:
@@ -118,3 +134,4 @@ spec:
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
 #{{ end }}
+
index d5237ca..1b6669e 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disablePortalPortalwidgets }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index abac400..89c2dbc 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302
@@ -17,3 +31,6 @@ image:
   ubuntuInit: oomk8s/ubuntu-init:1.0.0
 onapPortal:
   webappsDir: "/opt/apache-tomcat-8.0.37/webapps"
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index 34bfbaf..63cfc80 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: extensions/v1beta1
 kind: Deployment
 metadata:
index 20f2268..7214e04 100644 (file)
@@ -17,4 +17,8 @@ ENV TOKEN="/var/run/secrets/kubernetes.io/serviceaccount/token"
 
 COPY ready.py /root/ready.py
 RUN chmod a+x /root/ready.py
+
+COPY job_complete.py /root/job_complete.py
+RUN chmod a+x /root/job_complete.py
+
 ENTRYPOINT /root/ready.py
diff --git a/kubernetes/readiness/docker/init/job_complete.py b/kubernetes/readiness/docker/init/job_complete.py
new file mode 100644 (file)
index 0000000..97d22da
--- /dev/null
@@ -0,0 +1,97 @@
+#!/usr/bin/python
+import getopt
+import logging
+import os
+import sys
+import time
+
+from kubernetes import client
+
+# extract env variables.
+namespace = os.environ['NAMESPACE']
+cert = os.environ['CERT']
+host = os.environ['KUBERNETES_SERVICE_HOST']
+token_path = os.environ['TOKEN']
+
+with open(token_path, 'r') as token_file:
+    token = token_file.read().replace('\n', '')
+
+# setup logging
+log = logging.getLogger(__name__)
+handler = logging.StreamHandler(sys.stdout)
+handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
+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'
+batchV1Api = client.BatchV1Api(client.ApiClient(configuration))
+
+
+def is_job_complete(job_name):
+    complete = False
+    log.info("Checking if " + job_name + "  is complete")
+    response = ""
+    try:
+        response = batchV1Api.read_namespaced_job_status(job_name, namespace)
+        if response.status.succeeded == 1:
+            job_status_type = response.status.conditions[0].type
+            if job_status_type == "Complete":
+                complete = True
+            else:
+                log.info(job_name + " is not complete")
+        else:
+            log.info(job_name + " has not succeeded yet")
+        return complete
+    except Exception as e:
+        log.error("Exception when calling read_namespaced_job_status: %s\n" % e)
+
+
+DEF_TIMEOUT = 10
+DESCRIPTION = "Kubernetes container job complete check utility"
+USAGE = "Usage: job_complete.py [-t <timeout>] -j <job_name> [-j <job_name> ...]\n" \
+        "where\n" \
+        "<timeout> - wait for container job complete timeout in min, default is " + str(DEF_TIMEOUT) + "\n" \
+        "<job_name> - name of the job to wait for\n"
+
+def main(argv):
+    # args are a list of job names
+    job_names = []
+    timeout = DEF_TIMEOUT
+    try:
+        opts, args = getopt.getopt(argv, "hj:t:", ["job-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 ("-j", "--job-name"):
+                job_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 job_names.__len__() == 0:
+        print("Missing required input parameter(s)\n")
+        print(USAGE)
+        sys.exit(2)
+
+    for job_name in job_names:
+        timeout = time.time() + timeout * 60
+        while True:
+            complete = is_job_complete(job_name)
+            if complete is True:
+                break
+            elif time.time() > timeout:
+                log.warning("timed out waiting for '" + job_name + "' to be completed")
+                exit(1)
+            else:
+                time.sleep(5)
+
+if __name__ == "__main__":
+    main(sys.argv[1:])
\ No newline at end of file
index 586046a..f0c1319 100644 (file)
@@ -1,7 +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.
-
-# k8s scripts
-ete-k8s.sh
-demo-k8s.sh
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
index 1f59785..46b81dc 100644 (file)
@@ -1,4 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
-description: A Helm chart for Kubernetes
+description: A helm Chart for kubernetes-ONAP Robot
 name: robot
-version: 0.1.0
+version: 2.0.0
diff --git a/kubernetes/robot/all-services.yaml b/kubernetes/robot/all-services.yaml
deleted file mode 100644 (file)
index 1fbabe2..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: robot
-  name: robot
-spec:
-  ports:
-  - port: 88
-    nodePort: {{ .Values.nodePortPrefix }}09
-  selector:
-    app: robot
-  type: NodePort
diff --git a/kubernetes/robot/requirements.yaml b/kubernetes/robot/requirements.yaml
new file mode 100644 (file)
index 0000000..9b24f82
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+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
@@ -5,15 +5,15 @@ GLOBAL_PRELOAD_PARAMETERS = {
         "pub_key" : "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAqqnA9BAiMLtjOPSYBfhzLu4CiBolWoskDg4KVwhTJVTTeB6CqrQNcadlGXxOHhCYuNCKkUmIVF4WTOisVOJ75Z1c4OMoZLL85xVPKSIeH63kgVugwgPYQu55NbbWX+rsbUha3LnElDhNviMM3iTPbD5nnhKixNERAJMTLKXvZZZGqxW94bREknYPQTT2qrk3YRqwldncopp6Nkgv3AnSJz2gc9tjxnWF0poTQnQm/3D6hiJICrzKfAV0EaPN0KdtYjPhKrYoy6Qb/tKOVaaqsvwfKBJGrT9LfcA7D7M/yj292RT1XN63hI84WC383LsaPJ6eWdDTE6zUP1eGTWCoOw== rsa-key-20161026",
         "repo_url_blob" : "https://nexus.onap.org/content/repositories/raw",
         "repo_url_artifacts" : "https://nexus.onap.org/content/groups/staging",
-        "demo_artifacts_version" : "DEMO_ARTIFACTS_VERSION_HERE",
-        "onap_private_net_id" : "OPENSTACK_NETWORK_ID_WITH_ONAP_ROUTE_HERE",
-        "onap_private_subnet_id" : "OPENSTACK_SUBNET_ID_WITH_ONAP_ROUTE_HERE",
-        "onap_private_net_cidr" : "NETWORK_CIDR_WITH_ONAP_ROUTE_HERE",
+        "demo_artifacts_version" : "{{ .Values.demoArtifactsVersion }}",
+        "onap_private_net_id" : "{{ .Values.openStackPrivateNetId }}",
+        "onap_private_subnet_id" : "{{ .Values.openStackPrivateSubnetId }}",
+        "onap_private_net_cidr" : "{{ .Values.openStackPrivateNetCidr }}",
         "dcae_collector_ip" : "10.0.4.102",
         "dcae_collector_port" : "8080",
-        "public_net_id" : "OPENSTACK_PUBLIC_NET_ID_HERE",
+        "public_net_id" : "{{ .Values.openStackPublicNetId }}",
         "cloud_env" : "${cloud_env}",
-           "install_script_version" : "${install_script_version}",
+            "install_script_version" : "${install_script_version}",
 ###
 # vims_preload  same for every instantiation
 ###
@@ -24,28 +24,28 @@ GLOBAL_PRELOAD_PARAMETERS = {
         "ralf_image_name" : "${vm_image_name}",
         "ellis_image_name" : "${vm_image_name}",
         "dns_image_name" : "${vm_image_name}",
-           "bono_flavor_name" : "${vm_flavor_name}",
-           "sprout_flavor_name" : "${vm_flavor_name}",
-           "homer_flavor_name" : "${vm_flavor_name}",
-           "homestead_flavor_name" : "${vm_flavor_name}",
-           "ralf_flavor_name" : "${vm_flavor_name}",
-           "ellis_flavor_name" : "${vm_flavor_name}",
-           "dns_flavor_name" : "${vm_flavor_name}",
-           "repo_url" : "http://repo.cw-ngv.com/stable",
-           "zone" : "me.cw-ngv.com",
-           "dn_range_start" : "2425550000",
-           "dn_range_length" : "10000",
-           "dnssec_key" : "9FPdYTWhk5+LbhrqtTPQKw==",
+            "bono_flavor_name" : "${vm_flavor_name}",
+            "sprout_flavor_name" : "${vm_flavor_name}",
+            "homer_flavor_name" : "${vm_flavor_name}",
+            "homestead_flavor_name" : "${vm_flavor_name}",
+            "ralf_flavor_name" : "${vm_flavor_name}",
+            "ellis_flavor_name" : "${vm_flavor_name}",
+            "dns_flavor_name" : "${vm_flavor_name}",
+            "repo_url" : "http://repo.cw-ngv.com/stable",
+            "zone" : "me.cw-ngv.com",
+            "dn_range_start" : "2425550000",
+            "dn_range_length" : "10000",
+            "dnssec_key" : "9FPdYTWhk5+LbhrqtTPQKw==",
 ###
 # vlb_preload same for every instantiation
 ###
-               "vlb_image_name" : "${vm_image_name}",
-               "vlb_flavor_name" : "${vm_flavor_name}",
+                "vlb_image_name" : "${vm_image_name}",
+                "vlb_flavor_name" : "${vm_flavor_name}",
 ###
 # vlb_preload same for every instantiation
 ###
-               "vfw_image_name" : "${vm_image_name}",
-               "vfw_flavor_name" : "${vm_flavor_name}",
+                "vfw_image_name" : "${vm_image_name}",
+                "vfw_flavor_name" : "${vm_flavor_name}",
 ###
     },
 
@@ -60,11 +60,11 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "protected_private_net_cidr" : "192.168.20.0/24",
             "vfw_private_ip_0" : "192.168.10.100",
             "vfw_private_ip_1" : "192.168.20.100",
-            "vfw_private_ip_2" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.1",
+            "vfw_private_ip_2" : "{{ .Values.openStackOamNetworkCidrPrefix }}.1",
             "vpg_private_ip_0" : "192.168.10.200",
-            "vpg_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.2",
+            "vpg_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.2",
             "vsn_private_ip_0" : "192.168.20.250",
-            "vsn_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.3",
+            "vsn_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.3",
             'vfw_name_0':'vofwl01fwl${hostid}',
             'vpg_name_0':'vofwl01pgn${hostid}',
             'vsn_name_0':'vofwl01snk${hostid}'
@@ -73,41 +73,41 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vlb_private_net_id" : "volb01_private${hostid}",
             "vlb_private_net_cidr" : "192.168.30.0/24",
             "vlb_private_ip_0" : "192.168.30.100",
-            "vlb_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.4",
+            "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.4",
             "vdns_private_ip_0" : "192.168.30.110",
-            "vdns_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.5",
+            "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.5",
             'vlb_name_0':'vovlblb${hostid}',
             'vdns_name_0':'vovlbdns${hostid}',
-           "vlb_private_net_cidr" : "192.168.10.0/24",
-                       "pktgen_private_net_cidr" : "192.168.9.0/24"
-           
+            "vlb_private_net_cidr" : "192.168.10.0/24",
+                        "pktgen_private_net_cidr" : "192.168.9.0/24"
+
         },
         "dnsscaling_preload.template" : {
             "vlb_private_net_id" : "volb01_private${hostid}",
             "vlb_private_ip_0" : "192.168.30.100",
-            "vlb_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.4",
+            "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.4",
             "vdns_private_ip_0" : "192.168.30.222",
-            "vdns_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.6",
+            "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.6",
             'scaling_vdns_name_0':'vovlbscaling${hostid}',
-           "vlb_private_net_cidr" : "192.168.10.0/24"
+            "vlb_private_net_cidr" : "192.168.10.0/24"
         },
         "vvg_preload.template" : {
         }
     },
 # heat template parameter values for heat template instances created during Closed-Loop test cases
     "Closed-Loop" : {
-               "vfw_preload.template": {
+                "vfw_preload.template": {
             "unprotected_private_net_id" : "clfwl01_unprotected${hostid}",
             "unprotected_private_net_cidr" : "192.168.110.0/24",
             "protected_private_net_id" : "clfwl01_protected${hostid}",
             "protected_private_net_cidr" : "192.168.120.0/24",
             "vfw_private_ip_0" : "192.168.110.100",
             "vfw_private_ip_1" : "192.168.120.100",
-            "vfw_private_ip_2" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.11",
+            "vfw_private_ip_2" : "{{ .Values.openStackOamNetworkCidrPrefix }}.11",
             "vpg_private_ip_0" : "192.168.110.200",
-            "vpg_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.12",
+            "vpg_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.12",
             "vsn_private_ip_0" : "192.168.120.250",
-            "vsn_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.13",
+            "vsn_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.13",
             'vfw_name_0':'clfwl01fwl${hostid}',
             'vpg_name_0':'clfwl01pgn${hostid}',
             'vsn_name_0':'clfwl01snk${hostid}'
@@ -116,22 +116,22 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vlb_private_net_id" : "cllb01_private${hostid}",
             "vlb_private_net_cidr" : "192.168.130.0/24",
             "vlb_private_ip_0" : "192.168.130.100",
-            "vlb_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.14",
+            "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14",
             "vdns_private_ip_0" : "192.168.130.110",
-            "vdns_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.15",
+            "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.15",
             'vlb_name_0':'clvlblb${hostid}',
             'vdns_name_0':'clvlbdns${hostid}',
-           "vlb_private_net_cidr" : "192.168.10.0/24",
-                       "pktgen_private_net_cidr" : "192.168.9.0/24"
+            "vlb_private_net_cidr" : "192.168.10.0/24",
+                        "pktgen_private_net_cidr" : "192.168.9.0/24"
         },
         "dnsscaling_preload.template" : {
             "vlb_private_net_id" : "cllb01_private${hostid}",
             "vlb_private_ip_0" : "192.168.130.100",
-            "vlb_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.14",
+            "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14",
             "vdns_private_ip_0" : "192.168.130.222",
-            "vdns_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.16",
+            "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.16",
             'scaling_vdns_name_0':'clvlbscaling${hostid}',
-           "vlb_private_net_cidr" : "192.168.10.0/24"
+            "vlb_private_net_cidr" : "192.168.10.0/24"
         },
         "vvg_preload.template" : {
         }
@@ -145,11 +145,11 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "protected_private_net_cidr" : "192.168.120.0/24",
             "vfw_private_ip_0" : "192.168.110.100",
             "vfw_private_ip_1" : "192.168.120.100",
-            "vfw_private_ip_2" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.11",
+            "vfw_private_ip_2" : "{{ .Values.openStackOamNetworkCidrPrefix }}.11",
             "vpg_private_ip_0" : "192.168.110.200",
-            "vpg_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.12",
+            "vpg_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.12",
             "vsn_private_ip_0" : "192.168.120.250",
-            "vsn_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.13",
+            "vsn_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.13",
             'vfw_name_0':'demofwl01fwl',
             'vpg_name_0':'demofwl01pgn',
             'vsn_name_0':'demofwl01snk'
@@ -158,25 +158,24 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vlb_private_net_id" : "demolb_private",
             "vlb_private_net_cidr" : "192.168.130.0/24",
             "vlb_private_ip_0" : "192.168.130.100",
-            "vlb_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.14",
+            "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14",
             "vdns_private_ip_0" : "192.168.130.110",
-            "vdns_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.15",
+            "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.15",
             'vlb_name_0':'demovlblb',
             'vdns_name_0':'demovlbdns',
-           "vlb_private_net_cidr" : "192.168.10.0/24",
-                       "pktgen_private_net_cidr" : "192.168.9.0/24"
+            "vlb_private_net_cidr" : "192.168.10.0/24",
+                        "pktgen_private_net_cidr" : "192.168.9.0/24"
         },
         "dnsscaling_preload.template" : {
             "vlb_private_net_id" : "demolb_private",
             "vlb_private_ip_0" : "192.168.130.100",
-            "vlb_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.14",
+            "vlb_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.14",
             "vdns_private_ip_0" : "192.168.130.222",
-            "vdns_private_ip_1" : "OPENSTACK_OAM_NETWORK_CIDR_PREFIX_HERE.16",
+            "vdns_private_ip_1" : "{{ .Values.openStackOamNetworkCidrPrefix }}.16",
             'scaling_vdns_name_0':'demovlbscaling',
-           "vlb_private_net_cidr" : "192.168.10.0/24"
+            "vlb_private_net_cidr" : "192.168.10.0/24"
         },
         "vvg_preload.template" : {
         }
     }
 }
-
@@ -74,8 +74,8 @@ GLOBAL_VID_HEALTH_PASSWORD = "AppPassword!1"
 GLOBAL_PROXY_WARNING_TITLE = ""
 GLOBAL_PROXY_WARNING_CONTINUE_XPATH = ""
 # settings for vm to attach vvg too
-GLOBAL_VVGSERVER_IMAGE = "UBUNTU_14_IMAGE_NAME_HERE"
-GLOBAL_VVGSERVER_FLAVOR = "OPENSTACK_FLAVOUR_MEDIUM_HERE"
+GLOBAL_VVGSERVER_IMAGE = "{{ .Values.ubuntuImage }}"
+GLOBAL_VVGSERVER_FLAVOR = "{{ .Values.openStackFlavourMedium }}"
 # dns info
 GLOBAL_DNS_TRAFFIC_DURATION = "600"
 GLOBAL_HEAT_TEMPLATES_FOLDER = "/share/heat"
diff --git a/kubernetes/robot/resources/config/eteshare/config/vm_properties.py b/kubernetes/robot/resources/config/eteshare/config/vm_properties.py
new file mode 100755 (executable)
index 0000000..cd1ce14
--- /dev/null
@@ -0,0 +1,79 @@
+#file generated from /opt/config
+#
+GLOBAL_INJECTED_AAI1_IP_ADDR = "{{.Release.Name}}-aai.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_AAI2_IP_ADDR = "N/A"
+GLOBAL_INJECTED_APPC_IP_ADDR = "{{.Release.Name}}-appc-sdnhost.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_ARTIFACTS_VERSION = "{{.Values.demoArtifactsVersion}}"
+GLOBAL_INJECTED_CLAMP_IP_ADDR = "{{.Release.Name}}-clamp.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_CLOUD_ENV = "openstack"
+GLOBAL_INJECTED_DCAE_IP_ADDR = "{{.Release.Name}}-dcae-controller.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_DNS_IP_ADDR = "10.0.100.1"
+GLOBAL_INJECTED_DOCKER_VERSION = "1.2-STAGING-latest"
+#GLOBAL_INJECTED_EXTERNAL_DNS = "N/A"
+GLOBAL_INJECTED_GERRIT_BRANCH = "master"
+GLOBAL_INJECTED_KEYSTONE = "{{ .Values.openStackKeyStoneUrl }}"
+GLOBAL_INJECTED_MR_IP_ADDR = "{{.Release.Name}}-dmaap.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_MSO_IP_ADDR = "{{.Release.Name}}-so.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_NETWORK = "{{ .Values.openStackPrivateNetId }}"
+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 = "{{.Release.Name}}-msb-iag.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_OPENSTACK_PASSWORD = "{{ .Values.openStackEncryptedPassword }}"
+GLOBAL_INJECTED_OPENSTACK_TENANT_ID = "{{ .Values.openStackTenantId }}"
+GLOBAL_INJECTED_OPENSTACK_USERNAME = "{{ .Values.openStackUserName }}"
+GLOBAL_INJECTED_POLICY_IP_ADDR = "{{.Release.Name}}-pypdp.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR = "{{.Release.Name}}-drools.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_PORTAL_IP_ADDR = "{{.Release.Name}}-portalapps.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_REGION = "{{ .Values.openStackRegion }}"
+GLOBAL_INJECTED_REMOTE_REPO = "http://gerrit.onap.org/r/testsuite/properties.git"
+GLOBAL_INJECTED_SDC_IP_ADDR = "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_SDC_FE_IP_ADDR = "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_SDC_BE_IP_ADDR = "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_SDNC_IP_ADDR = "{{.Release.Name}}-sdnhost.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR = "{{.Release.Name}}-sdnc-portal.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_SO_IP_ADDR = "{{.Release.Name}}-so.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_VID_IP_ADDR = "{{.Release.Name}}-vid-server.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_VM_FLAVOR = "{{ .Values.openStackFlavourMedium }}"
+GLOBAL_INJECTED_VM_IMAGE_NAME = "{{ .Values.ubuntuImage }}"
+GLOBAL_INJECTED_PUBLIC_NET_ID = "{{ .Values.openStackPublicNetId }}"
+GLOBAL_INJECTED_SCRIPT_VERSION = "{{ .Values.scriptVersion }}"
+GLOBAL_INJECTED_PROPERTIES = {
+    "GLOBAL_INJECTED_AAI1_IP_ADDR" : "{{.Release.Name}}-aai.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_APPC_IP_ADDR" : "{{.Release.Name}}-appc-sdnhost.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_ARTIFACTS_VERSION" : "{{.Values.demoArtifactsVersion}}",
+    "GLOBAL_INJECTED_CLAMP_IP_ADDR" : "{{.Release.Name}}-clamp.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_CLOUD_ENV" : "openstack",
+    "GLOBAL_INJECTED_DCAE_IP_ADDR" : "{{.Release.Name}}-dcae-controller.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_DNS_IP_ADDR" : "10.0.100.1",
+    "GLOBAL_INJECTED_DOCKER_VERSION" : "1.2-STAGING-latest",
+    "GLOBAL_INJECTED_GERRIT_BRANCH" : "master",
+    "GLOBAL_INJECTED_KEYSTONE" : "{{ .Values.openStackKeyStoneUrl }}",
+    "GLOBAL_INJECTED_MR_IP_ADDR" : "{{.Release.Name}}-dmaap.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_MSO_IP_ADDR" : "{{.Release.Name}}-so.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_NETWORK" : "{{ .Values.openStackPrivateNetId }}",
+    "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" : "{{.Release.Name}}-msb-iag.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_OPENSTACK_PASSWORD" : "{{ .Values.openStackEncryptedPassword }}",
+    "GLOBAL_INJECTED_OPENSTACK_TENANT_ID" : "{{ .Values.openStackTenantId }}",
+    "GLOBAL_INJECTED_OPENSTACK_USERNAME" : "{{ .Values.openStackUserName }}",
+    "GLOBAL_INJECTED_POLICY_IP_ADDR" : "{{.Release.Name}}-pypdp.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_POLICY_HEALTHCHECK_IP_ADDR" : "{{.Release.Name}}-drools.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_PORTAL_IP_ADDR" : "{{.Release.Name}}-portalapps.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_REGION" : "{{ .Values.openStackRegion }}",
+    "GLOBAL_INJECTED_REMOTE_REPO" : "http://gerrit.onap.org/r/testsuite/properties.git",
+    "GLOBAL_INJECTED_SDC_FE_IP_ADDR" : "{{.Release.Name}}-sdc-fe.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_SDC_BE_IP_ADDR" : "{{.Release.Name}}-sdc-be.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_SDNC_IP_ADDR" : "{{.Release.Name}}-sdnhost.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_SDNC_PORTAL_IP_ADDR" : "{{.Release.Name}}-sdnc-portal.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_SO_IP_ADDR" : "{{.Release.Name}}-so.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_VID_IP_ADDR" : "{{.Release.Name}}-vid-server.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_VM_FLAVOR" : "{{ .Values.openStackFlavourMedium }}",
+    "GLOBAL_INJECTED_VM_IMAGE_NAME" : "{{ .Values.ubuntuImage }}",
+    "GLOBAL_INJECTED_PUBLIC_NET_ID" : "{{ .Values.openStackPublicNetId }}",
+    "GLOBAL_INJECTED_SCRIPT_VERSION" : "{{ .Values.scriptVersion }}"
+}
@@ -53,11 +53,13 @@ Distribute Model From ASDC
     [Arguments]    ${model_zip_path}   ${catalog_service_name}=
     ${catalog_service_id}=    Add ASDC Catalog Service    ${catalog_service_name}
     ${catalog_resource_ids}=    Create List
+    ${catalog_resources}=   Create Dictionary
     : FOR    ${zip}     IN     @{model_zip_path}
     \    ${loop_catalog_resource_id}=    Setup ASDC Catalog Resource    ${zip}
     \    Append To List    ${catalog_resource_ids}   ${loop_catalog_resource_id}
     \    ${loop_catalog_resource_resp}=    Get ASDC Catalog Resource    ${loop_catalog_resource_id}
     \    Add ASDC Resource Instance    ${catalog_service_id}    ${loop_catalog_resource_id}    ${loop_catalog_resource_resp['name']}
+    \    Set To Dictionary    ${catalog_resources}   ${loop_catalog_resource_id}=${loop_catalog_resource_resp}
     ${catalog_service_resp}=    Get ASDC Catalog Service    ${catalog_service_id}
     Checkin ASDC Catalog Service    ${catalog_service_id}
     Request Certify ASDC Catalog Service    ${catalog_service_id}
@@ -69,7 +71,7 @@ Distribute Model From ASDC
        ${catalog_service_resp}=    Get ASDC Catalog Service    ${catalog_service_id}
        ${vf_module}=    Find Element In Array    ${loop_catalog_resource_resp['groups']}    type    org.openecomp.groups.VfModule
        Check Catalog Service Distributed    ${catalog_service_resp['uuid']}
-    [Return]    ${catalog_service_resp['name']}    ${loop_catalog_resource_resp['name']}    ${vf_module}   ${catalog_resource_ids}    ${catalog_service_id}
+    [Return]    ${catalog_service_resp['name']}    ${loop_catalog_resource_resp['name']}    ${vf_module}   ${catalog_resource_ids}    ${catalog_service_id}    ${catalog_resources}
     
 Setup ASDC Catalog Resource
     [Documentation]    Creates all the steps a vf needs for an asdc catalog resource and returns the id
@@ -390,6 +392,7 @@ Check Catalog Service Distributed
     [Arguments]    ${catalog_service_uuid}
     ${dist_resp}=    Get Catalog Service Distribution    ${catalog_service_uuid}
     Should Be Equal As Strings         ${dist_resp['distributionStatusOfServiceList'][0]['deployementStatus']}         Distributed
+    Sleep 3 minutes
     ${det_resp}=    Get Catalog Service Distribution Details    ${dist_resp['distributionStatusOfServiceList'][0]['distributionID']}
     @{ITEMS}=    Copy List    ${det_resp['distributionStatusList']}
     :FOR    ${ELEMENT}    IN    @{ITEMS}
@@ -4,7 +4,7 @@ Library           RequestsClientCert
 Library              RequestsLibrary
 Library           String
 Library           JSONUtils
-Library           Collections      
+Library           Collections
 Resource          global_properties.robot
 
 *** Variables ***
@@ -16,7 +16,7 @@ ${POLICY_HEALTHCHECK_ENDPOINT}     ${GLOBAL_POLICY_SERVER_PROTOCOL}://${GLOBAL_I
 
 Run Policy Health Check
      [Documentation]    Runs Policy Health check
-     ${auth}=    Create List    ${GLOBAL_POLICY_USERNAME}    ${GLOBAL_POLICY_PASSWORD}    
+     ${auth}=    Create List    ${GLOBAL_POLICY_USERNAME}    ${GLOBAL_POLICY_PASSWORD}
      Log    Creating session ${POLICY_ENDPOINT}
      ${session}=    Create Session     policy  ${POLICY_HEALTHCHECK_ENDPOINT}   auth=${auth}
      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
@@ -28,7 +28,6 @@ Run Policy Health Check
      :FOR    ${ELEMENT}    IN    @{ITEMS}
      \    Should Be Equal As Strings   ${ELEMENT['code']}      200
      \    Should Be True    ${ELEMENT['healthy']}
-    
 Run Policy Put Request
      [Documentation]    Runs Policy Put request
      [Arguments]    ${data_path}  ${data}
@@ -38,7 +37,6 @@ Run Policy Put Request
      ${resp}=  Put Request     policy  ${data_path}     data=${data}    headers=${headers}
      Log    Received response from policy ${resp.text}
      [Return]    ${resp}
-     
 Run Policy Delete Request
      [Documentation]    Runs Policy Delete request
      [Arguments]    ${data_path}  ${data}
@@ -48,7 +46,6 @@ Run Policy Delete Request
      ${resp}=  Delete Request  policy  ${data_path}    data=${data}    headers=${headers}
      Log    Received response from policy ${resp.text}
      [Return]    ${resp}
-     
 Run Policy Get Configs Request
     [Documentation]    Runs Policy Get Configs request
     [Arguments]    ${data_path}  ${data}
@@ -57,4 +54,4 @@ Run Policy Get Configs Request
     ${headers}=    Create Dictionary     Accept=application/json    Content-Type=application/json    Authorization=Basic ${GLOBAL_POLICY_AUTH}   ClientAuth=${GLOBAL_POLICY_CLIENTAUTH}    
     ${resp}=   Post Request    policy  ${data_path}    data=${data}    headers=${headers}
     Log    Received response from policy ${resp.text}
-    [Return]    ${resp}
\ No newline at end of file
+    [Return]    ${resp}
@@ -1,7 +1,7 @@
 *** Settings ***
 Documentation     The main interface for interacting with SDN-GC. It handles low level stuff like managing the http request library and SDN-GC required fields
 Library              RequestsLibrary
-Library                  UUID      
+Library                  UUID 
 Library    OperatingSystem
 Library            ExtendedSelenium2Library
 Library         Collections
@@ -137,9 +137,9 @@ Get Template Parameters
     Set To Dictionary   ${valuemap}   network=${GLOBAL_INJECTED_NETWORK} 
     Set To Dictionary   ${valuemap}   public_net_id=${GLOBAL_INJECTED_PUBLIC_NET_ID}
     Set To Dictionary   ${valuemap}   cloud_env=${GLOBAL_INJECTED_CLOUD_ENV}
-    Set To Dictionary   ${valuemap}   install_script_version=${GLOBAL_INJECTED_INSTALL_SCRIPT_VERSION}
+    Set To Dictionary   ${valuemap}   install_script_version=${GLOBAL_INJECTED_SCRIPT_VERSION}
     Set To Dictionary   ${valuemap}   vm_image_name=${GLOBAL_INJECTED_VM_IMAGE_NAME}
-    Set To Dictionary   ${valuemap}   vm_flavor_name=${GLOBAL_INJECTED_VM_FLAVOR_NAME}
+    Set To Dictionary   ${valuemap}   vm_flavor_name=${GLOBAL_INJECTED_VM_FLAVOR}
     # update the value map with unique values.
     Set To Dictionary   ${valuemap}   uuid=${uuid}   hostid=${hostid}    ecompnet=${ecompnet}
     ${parameters}=    Create Dictionary
@@ -201,7 +201,7 @@ Login To SDNGC Admin GUI
     ## Setup Browser is now being managed by the test case 
     ## Setup Browser
     Go To    ${SDNGC_ADMIN_SIGNUP_URL}
-    Maximize Browser Window
+    ##Maximize Browser Window
     Set Selenium Speed    ${GLOBAL_SELENIUM_DELAY}
     Set Browser Implicit Wait    ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
     Log    Logging in to ${SDNGC_ADMIN_LOGIN_URL}
@@ -219,4 +219,4 @@ Login To SDNGC Admin GUI
     Input Password    xpath=//input[@id='password']    ${shortened_uuid}
     Click Button    xpath=//button[@type='submit']
     Title Should Be    SDN-C AdminPortal
-    Log    Logged in to ${SDNGC_ADMIN_LOGIN_URL}
\ No newline at end of file
+    Log    Logged in to ${SDNGC_ADMIN_LOGIN_URL}
diff --git a/kubernetes/robot/templates/NOTES.txt b/kubernetes/robot/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..91d8ed4
--- /dev/null
@@ -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/robot/templates/all-services.yaml b/kubernetes/robot/templates/all-services.yaml
deleted file mode 100644 (file)
index 604982b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#{{ if not .Values.disableRobotRobot }}
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: robot
-  name: robot
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  ports:
-  - port: 88
-    nodePort: {{ .Values.nodePortPrefix }}09
-  selector:
-    app: robot
-  type: NodePort
-#{{ end }}
\ No newline at end of file
diff --git a/kubernetes/robot/templates/configmap.yaml b/kubernetes/robot/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..ab4a10b
--- /dev/null
@@ -0,0 +1,37 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-eteshare-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/eteshare/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-resources-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/robot/resources/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-lighttpd-authorization-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/authorization").AsConfig . | indent 2 }}
diff --git a/kubernetes/robot/templates/deployment.yaml b/kubernetes/robot/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..3403810
--- /dev/null
@@ -0,0 +1,96 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.robotReplicas }}
+  template:
+    metadata:
+       labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      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 }}
+          volumeMounts:
+          - name: localtime
+            mountPath: /etc/localtime
+            readOnly: true
+          - name: robot-eteshare
+            mountPath: /share/config
+          - name: robot-resources
+            mountPath: /var/opt/OpenECOMP_ETE/robot/resources/asdc_interface.robot
+            subPath: asdc_interface.robot
+          - name: robot-resources
+            mountPath: /var/opt/OpenECOMP_ETE/robot/resources/policy_interface.robot
+            subPath: policy_interface.robot
+          - name: robot-resources
+            mountPath: /var/opt/OpenECOMP_ETE/robot/resources/sdngc_interface.robot
+            subPath: sdngc_interface.robot
+          - name: robot-lighttpd-authorization
+            mountPath: /etc/lighttpd/authorization
+            subPath: authorization
+          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:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: robot-eteshare
+          configMap:
+            name: {{ include "common.fullname" . }}-eteshare-configmap
+            defaultMode: 0755
+        - name: robot-resources
+          configMap:
+            name: {{ include "common.fullname" . }}-resources-configmap
+        - name: robot-lighttpd-authorization
+          configMap:
+            name: {{ include "common.fullname" . }}-lighttpd-authorization-configmap
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/robot/templates/robot-deployment.yaml b/kubernetes/robot/templates/robot-deployment.yaml
deleted file mode 100644 (file)
index a978ff4..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#{{ if not .Values.disableRobotRobot }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: robot
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.robotReplicas }}
-  selector:
-    matchLabels:
-      app: robot
-  template:
-    metadata:
-       labels:
-        app: robot
-       name: robot
-    spec:
-      containers:
-      - image: {{ .Values.image.testsuite }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: robot
-        volumeMounts:
-        - name: localtime
-          mountPath: /etc/localtime
-          readOnly: true
-        - name: robot-eteshare
-          mountPath: /share
-        - name: robot-resources-asdc-interface
-          mountPath: /var/opt/OpenECOMP_ETE/robot/resources/asdc_interface.robot
-        - name: robot-resources-policy-interface
-          mountPath: /var/opt/OpenECOMP_ETE/robot/resources/policy_interface.robot
-        - name: robot-resources-sdngc-interface
-          mountPath: /var/opt/OpenECOMP_ETE/robot/resources/sdngc_interface.robot
-        - name: lighttpd-authorization
-          mountPath: /etc/lighttpd/authorization
-        ports:
-        - containerPort: 88
-        readinessProbe:
-          tcpSocket:
-            port: 88
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      volumes:
-        - name: localtime
-          hostPath:
-            path: /etc/localtime
-        - name: robot-eteshare
-          hostPath:
-            path: /dockerdata-nfs/{{ .Values.nsPrefix }}/robot/eteshare
-        - name: robot-resources-asdc-interface
-          hostPath:
-            path: /dockerdata-nfs/{{ .Values.nsPrefix }}/robot/robot/resources/asdc_interface.robot
-        - name: robot-resources-policy-interface
-          hostPath:
-            path: /dockerdata-nfs/{{ .Values.nsPrefix }}/robot/robot/resources/policy_interface.robot
-        - name: robot-resources-sdngc-interface
-          hostPath:
-            path: /dockerdata-nfs/{{ .Values.nsPrefix }}/robot/robot/resources/sdngc_interface.robot
-        - name: lighttpd-authorization
-          hostPath:
-            path: /dockerdata-nfs/{{ .Values.nsPrefix }}/robot/authorization
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
diff --git a/kubernetes/robot/templates/service.yaml b/kubernetes/robot/templates/service.yaml
new file mode 100644 (file)
index 0000000..f9f2805
--- /dev/null
@@ -0,0 +1,39 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.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 .Values.nodePortPrefix }}{{ .Values.service.externalPort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
index 6aadd93..6ef3a21 100644 (file)
@@ -1,7 +1,99 @@
-nsPrefix: onap
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global: # global defaults
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+
+# application image
+repository: nexus3.onap.org:10001
+image: openecomp/testsuite:1.2-STAGING-latest
 pullPolicy: Always
-nodePortPrefix: 302
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+
+# openstack configuration
+
+demoArtifactsVersion: "1.2.0-SNAPSHOT"
+openStackPrivateNetCidr: "192.168.30.0"
+openStackFlavourMedium: "m1.medium"
+openStackKeyStoneUrl: "http://1.2.3.4:5000"
+openStackPublicNetId: "e8f51958045716781ffc"
+openStackPrivateNetId: "e8f51956-00dd-4425-af36-045716781ffc"
+openStackOamNetworkCidrPrefix: "192.168.120"
+openStackEncryptedPassword: "c124921a3a0efbe579782cde8227681e"
+openStackRegion: "RegionOne"
+openStackPrivateSubnetId: "e8f51956-00dd-4425-af36-045716781ffc"
+openStackTenantId: "47899782ed714295b1151681fdfd51f5"
+openStackUserName: "vnf_user"
+ubuntuImage: "Ubuntu_14.04.5_LTS"
+scriptVersion: "1.1.1"
+
+# default number of instances
 robotReplicas: 1
-image:
-  testsuite: nexus3.onap.org:10001/openecomp/testsuite:1.1-STAGING-latest
 
+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: robot
+  externalPort: "09"
+  internalPort: 88
+
+
+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
index 668a9a6..0fa6ac5 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: sdc
index 89c6932..b0d4690 100644 (file)
@@ -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.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index 247ee03..1f0a9a7 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdcSdcEs }}
 apiVersion: v1
 kind: Service
index d075277..9cf036a 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdcSdcBe }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index bf86de6..d41d5f7 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdcSdcCs }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index e1ff558..741c281 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdcSdcBe }}
 apiVersion: v1
 kind: ConfigMap
index 979c70d..0c3f3de 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdcSdcEs }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 05c0a16..648bec4 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdcSdcFe }}
 apiVersion: v1
 kind: ConfigMap
index adcec19..b61e11f 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdcSdcFe }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 90fc6f2..122781b 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdcSdcKb }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index f2b5c09..78312b7 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdcSdcBe }}
 apiVersion: v1
 kind: ConfigMap
index 8d9becf..d4dbc1b 100644 (file)
@@ -1,3 +1,19 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
 #{{ if not .Values.disableSdcSdcCs }}
 apiVersion: v1
 kind: PersistentVolume
index d42abcc..40b3ec3 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302
@@ -11,3 +25,6 @@ image:
   sdcBackend: nexus3.onap.org:10001/openecomp/sdc-backend:v1.1.0
   filebeat: docker.elastic.co/beats/filebeat:5.5.0
   ubuntuInit: oomk8s/ubuntu-init:1.0.0
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index 2daeef2..6e0ec8d 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: sdnc
index 2cd63e1..49d818a 100644 (file)
@@ -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.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index c309f48..14d7b01 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncSdncDbhost }}
 apiVersion: v1
 kind: Service
index 399eb42..29d592a 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncSdncDbhost }}
 apiVersion: apps/v1beta1
 kind: StatefulSet
@@ -68,7 +82,9 @@ spec:
         volumeMounts:
         - name: sdnc-data
           mountPath: /var/lib/mysql
+#{{ if not .Values.disableNfsProvisioner }}
           subPath: mysql
+#{{ end }}
         - name: conf
           mountPath: /etc/mysql/conf.d
       containers:
@@ -85,7 +101,9 @@ spec:
         volumeMounts:
         - mountPath: /var/lib/mysql
           name: sdnc-data
+#{{ if not .Values.disableNfsProvisioner }}
           subPath: mysql
+#{{ end }}
         - name: conf
           mountPath: /etc/mysql/conf.d
         ports:
@@ -164,7 +182,9 @@ spec:
         volumeMounts:
         - name: sdnc-data
           mountPath: /var/lib/mysql
+#{{ if not .Values.disableNfsProvisioner }}
           subPath: mysql
+#{{ end }}
         - name: conf
           mountPath: /etc/mysql/conf.d
         resources:
@@ -183,7 +203,7 @@ spec:
 #{{ if .Values.disableNfsProvisioner }}
       - name: sdnc-data
         hostPath:
-          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/sdnc/data
+          path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/sdnc/data/mysql
 #{{ else }}
   volumeClaimTemplates:
   - metadata:
@@ -197,3 +217,4 @@ spec:
           storage: 1Gi
 #{{ end }}
 #{{ end }}
+
index 78e20da..62f1d00 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncSdncDgbuilder }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index c27ae72..b2b8a45 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncDmaap }}
 apiVersion: v1
 kind: ConfigMap
index 97dc773..ca092ff 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncDmaap }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 6b4cdcb..e8c2672 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 kind: ConfigMap
 metadata:
index bd161d5..12713a1 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncSdncDbhost }}
 #{{ if not .Values.disableNfsProvisioner }}
 kind: Deployment
index d60cae7..3d89f20 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncSdnc }}
 apiVersion: v1
 kind: ConfigMap
index d6d4eae..1e6bf53 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncSdncDbhost }}
 #{{ if not .Values.disableNfsProvisioner }}
 kind: StorageClass
index a7cada8..a0bf0e2 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncSdnc }}
 apiVersion: v1
 kind: ConfigMap
index 1f02037..3b07896 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncSdnc }}
 apiVersion: apps/v1beta1
 kind: StatefulSet
index 6aeaa9f..0e5b3ac 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncUeb }}
 apiVersion: v1
 kind: ConfigMap
index b869ca9..f785cf7 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncUeb }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 968ec8d..ef469ac 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableSdncSdncPortal }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index b502a74..9402917 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: IfNotPresent
 nodePortPrefix: 302
@@ -23,4 +37,6 @@ portalReplicas: 1
 disableSdncSdncDgbuilder: false
 disableSdncSdncPortal: false
 disableNfsProvisioner: false
-
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index 62d292d..27e9161 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: ONAP Service Orchestrator
 name: so
index 1b3b5ff..6b4471a 100644 (file)
@@ -1,4 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: MariaDB Service
-name: so-mariadb
+name: mariadb
 version: 2.0.0
index 87565ad..c60c745 100644 (file)
@@ -4,16 +4,16 @@
   http://{{ . }}
 {{- end }}
 {{- else if contains "NodePort" .Values.service.type }}
-  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }})
-  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  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 {{ .Release.Namespace }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  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 {{ .Release.Namespace }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  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/clusterrolebinding.yaml b/kubernetes/so/charts/mariadb/templates/clusterrolebinding.yaml
deleted file mode 100644 (file)
index df270f5..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-
-apiVersion: rbac.authorization.k8s.io/v1beta1
-kind: ClusterRoleBinding
-metadata:
-  name: {{ include "common.name" . }}
-  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
index e70563a..c19e54a 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 kind: ConfigMap
 metadata:
index 9c9cf09..5267cc0 100644 (file)
@@ -1,7 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: extensions/v1beta1
 kind: Deployment
 metadata:
-  name: {{ include "common.name" . }}
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -41,7 +55,7 @@ spec:
             - name: MYSQL_ROOT_PASSWORD
               valueFrom:
                 secretKeyRef:
-                  name: {{ template "common.name" . }}
+                  name: {{ template "common.fullname" . }}
                   key: db-root-password
           volumeMounts:
           - mountPath: /var/lib/mysql
@@ -83,7 +97,7 @@ spec:
       {{- if .Values.persistence.enabled }}
         - name: mariadb-data
           persistentVolumeClaim:
-            claimName: {{ include "common.name" . }}
+            claimName: {{ include "common.fullname" . }}
       {{- else }}
           emptyDir: {}
       {{- end }}
@@ -115,4 +129,4 @@ spec:
           hostPath:
             path: /etc/localtime
       imagePullSecrets:
-      - name: "{{ include "common.name" . }}-docker-registry-key"
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index d60e075..184728f 100644 (file)
@@ -1,14 +1,31 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ include "common.name" . }}
+  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}}
@@ -17,4 +34,4 @@ spec:
   persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
index 2271d3c..e27c331 100644 (file)
@@ -1,8 +1,24 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
 kind: PersistentVolumeClaim
 apiVersion: v1
 metadata:
-  name: {{ include "common.name" . }}
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -14,6 +30,9 @@ metadata:
 {{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
+  selector:
+    matchLabels:
+      name: {{ include "common.fullname" . }}
   accessModes:
     - {{ .Values.persistence.accessMode }}
   resources:
index dc97610..4d65c07 100644 (file)
@@ -1,7 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 kind: Secret
 metadata:
-  name: {{ include "common.name" . }}
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -11,17 +25,3 @@ metadata:
 type: Opaque
 data:
   db-root-password: {{ .Values.config.mariadbRootPassword | b64enc | quote }}
----
-apiVersion: v1
-kind: Secret
-metadata:
-  name: {{ include "common.name" . }}-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
index 5c133b7..11b3b48 100644 (file)
@@ -1,7 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ include "common.name" . }}
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
index c3e6ead..e957206 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # Default values for mariadb.
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
index fb8f1f6..9b24f82 100644 (file)
@@ -1,7 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 dependencies:
-  - name: common-templates
+  - 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: file://../common/common-templates
\ No newline at end of file
+    repository: '@local'
\ No newline at end of file
index 9ad559c..b0d4690 100644 (file)
@@ -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.{{ .Release.Name }}-log:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index 7a0c579..17f0193 100755 (executable)
@@ -9,9 +9,9 @@
 
     "mso-api-handler-infra-config":
     {
-      "bpelURL": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080",
+      "bpelURL": "http://so:8080",
       "bpelAuth": "786864AA53D0DCD881AED1154230C0C3058D58B9339D2EFB6193A0F0D82530E1",
-      "camundaURL": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080",
+      "camundaURL": "http://so:8080",
       "camundaAuth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1"
     },
 
@@ -23,7 +23,7 @@
         "consumerGroup": "sdc-OpenSource-Env1",
         "consumerId": "sdc-COpenSource-Env11",
         "environmentName": "{{ .Values.config.dmaapTopic }}",
-        "asdcAddress": "sdc-be.onap-sdc.svc.cluster.local:8443",
+        "asdcAddress": "sdc-be:8443",
         "password": "613AF3483E695524F9857643B697FA51C7A9A0951094F53791485BF3458F9EADA37DBACCCEBD0CB242B85B4062745247",
         "pollingInterval": 60,
         "pollingTimeout": 60,
     {
       "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:"
+        "http://sdnhost:8282/restconf/operations/L3SDN-API:",
+        "http://sdnhost:8282/restconf/config/L3SDN-API:",
+        "http://sdnhost:8282/restconf/operations/Firewall-API:",
+        "http://sdnhost:8282/restconf/config",
+        "http://sdnhost:8282/restconf/operations/VNF-API:",
+        "http://sdnhost:8282/restconf/operations/NBNC-API:",
+        "http://sdnhost:8282/restconf/operations/NORTHBOUND-API:service-topology-operation",
+        "http://sdnhost:8282/restconf/operations/GENERIC-RESOURCE-API:",
+        "http://sdnhost: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",
+      "bpelurl": "http://so:8080/mso/SDNCAdapterCallbackService",
+      "restbpelurl": "http://so:8080/mso/WorkflowMessage",
+      "myurl": "http://so:8080/adapters/rest/SDNCNotify",
       "sdncauth": "263f7d5f944d4d0c76db74b4148bec67d0bc796a874bc0d2a2a12aae89a866aa69133f700f391f784719a37f6a68d29bf5a2fbae1dab0402db7788c800c5ba73",
       "bpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1",
       "sdncconnecttime": "5000"
@@ -92,7 +92,7 @@
 
     "mso-workflow-message-adapter-config":
     {
-      "wmbpelurl": "http://mso.{{ .Release.Name }}-mso.svc.cluster.local:8080/mso/WorkflowMessage",
+      "wmbpelurl": "http://so:8080/mso/WorkflowMessage",
       "wmbpelauth": "5119D1AF37F671FC01FFAD2151D93EFB2BBB503E879FD07104D024EDDF118FD1"
     },
 
       "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",
+      "sniroEndpoint": "http://sniro-emulator:8080/sniro/api/v2/placement",
       "sniroTimeout": "PT30M",
-      "serviceAgnosticSniroHost": "http://sniro-emulator.{{ .Release.Name }}-mock.svc.cluster.local:8080",
+      "serviceAgnosticSniroHost": "http://sniro-emulator:8080",
       "serviceAgnosticSniroEndpoint": "/sniro/api/v2/placement",
-      "aaiEndpoint": "https://aai-service.{{ .Release.Name }}-aai.svc.cluster.local:8443",
+      "aaiEndpoint": "https://aai-service: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",
+      "adaptersCompletemsoprocessEndpoint": "http://so:8080/CompleteMsoProcess",
+      "adaptersDbEndpoint": "http://so:8080/dbadapters/MsoRequestsDbAdapter",
+      "adaptersOpenecompDbEndpoint": "http://so:8080/dbadapters/RequestsDbAdapter",
+      "catalogDbEndpoint": "http://so:8080/ecomp/mso/catalog",
+      "adaptersSdncEndpoint": "http://so:8080/adapters/SDNCAdapter",
+      "adaptersSdncRestEndpoint": "http://so:8080/adapters/rest/v1/sdnc",
+      "adaptersTenantEndpoint": "http://so: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",
+      "adaptersWorkflowMessageEndpoint": "http://so:8080/workflows/messages/message",
+      "workflowMessageEndpoint": "http://so:8080/mso/WorkflowMessage",
+      "workflowSdncAdapterCallback": "http://so: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",
+      "adaptersNetworkEndpoint": "http://so:8080/networks/NetworkAdapter",
+      "adaptersNetworkRestEndpoint": "http://so:8080/networks/rest/v1/networks",
+      "adaptersVnfAsyncEndpoint": "http://so:8080/vnfs/VnfAdapterAsync",
+      "workflowVnfAdapterDeleteCallback": "http://so:8080/mso/vnfAdapterNotify",
+      "workflowVnfAdapterCreateCallback": "http://so:8080/mso/vnfAdapterNotify",
+      "adaptersVnfRestEndpoint": "http://so:8080/vnfs/rest/v1/vnfs",
+      "workflowVnfAdapterRestCallback": "http://so:8080/mso/vnfAdapterRestNotify",
       "poTimeout": "PT5M",
       "sdncFirewallYangModel": "http://com/att/svc/mis/firewall-lite-gui",
       "sdncFirewallYangModelVersion": "2015-05-15",
     "mso-config": "~> 1.0.0"
   }
 }
+
index 0fa17a6..91d8ed4 100644 (file)
@@ -4,16 +4,16 @@
   http://{{ . }}
 {{- end }}
 {{- else if contains "NodePort" .Values.service.type }}
-  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }})
-  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  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 {{ .Release.Namespace }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  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 {{ .Release.Namespace }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  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/clusterrolebinding.yaml b/kubernetes/so/templates/clusterrolebinding.yaml
deleted file mode 100644 (file)
index df270f5..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-
-apiVersion: rbac.authorization.k8s.io/v1beta1
-kind: ClusterRoleBinding
-metadata:
-  name: {{ include "common.name" . }}
-  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
index c9afd4f..db83fbb 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 kind: ConfigMap
 metadata:
index 2d25a46..0727ce8 100644 (file)
@@ -1,7 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: extensions/v1beta1
 kind: Deployment
 metadata:
-  name: {{ include "common.name" . }}
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -21,7 +35,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - so-mariadb
+        - mariadb
         env:
         - name: NAMESPACE
           valueFrom:
@@ -35,7 +49,7 @@ spec:
         - name: {{ .Chart.Name }}
           command:
           - /tmp/start-jboss-server.sh
-          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          image: "{{ .Values.repository | default .Values.global.repository }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
@@ -174,4 +188,5 @@ spec:
               path: start-jboss-server.sh
               mode: 0755
       imagePullSecrets:
-      - name: "{{ include "common.name" . }}-docker-registry-key"
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
+
index 4d1cc90..ed55ec0 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 kind: ConfigMap
 metadata:
diff --git a/kubernetes/so/templates/namespace.yaml b/kubernetes/so/templates/namespace.yaml
deleted file mode 100644 (file)
index 83eb8e7..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-apiVersion: v1
-kind: Namespace
-metadata:
-  name: {{ include "common.namespace" . }}
\ No newline at end of file
index f1b5322..63e41ac 100644 (file)
@@ -1,7 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ include "common.name" . }}
+  name: so
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -66,4 +80,5 @@ spec:
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
\ No newline at end of file
+    release: {{ .Release.Name }}
+
index b929fcc..3ca60b0 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # Default values for so.
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
@@ -5,10 +19,12 @@ global: # global defaults
   nodePortPrefix: 302
   repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
   readinessRepository: oomk8s
-  readinessImage: readiness-check:1.0.0
+  readinessImage: readiness-check:1.1.0
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
 
+subChartsOnly:
+  enabled: true
 
 # application image
 repository: nexus3.onap.org:10001
@@ -28,7 +44,8 @@ config:
   openStackKeyStoneUrl: "http://1.2.3.4:5000"
   openStackServiceTenantName: "service"
   openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
-
+  logstashServiceName: log-ls
+  logstashPort: 5044
 
 # default number of instances
 replicaCount: 1
index 1813f6e..65636d2 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: uui
index d66a22f..7f450cd 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableUuiUui }}
 apiVersion: v1
 kind: Service
index 6685749..ad757cb 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableUuiUui }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 01c87e9..2b9c3e9 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableUuiUui }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 391e338..e9033aa 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: Always
 uuiPortPrefix: 303
index b4988d8..2554d16 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: vfc
old mode 100755 (executable)
new mode 100644 (file)
index 36a8d99..819ecff
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcNslcm }}
 apiVersion: v1
 kind: Service
old mode 100755 (executable)
new mode 100644 (file)
index 0384fef..af40cbc
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcCatalog }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index 548bbe7..adfa3be
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcEmsdriver }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index 02093ce..5252c5e
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcGvnfmdriver }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index 9b73626..9725f72
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcHwvnfmdriver }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index 127612b..ea1a42d
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcJujudriver }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index 4925d1c..843090c
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcNokiaVnfmDriver }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index 618968d..88d5cb6
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcNslcm }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index a6e8125..71167d1
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcResmgr }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index ef4793d..c5a3893
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcVnflcm }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index e3eb750..240bc74
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcVnfmgr }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index 34f2595..ea394f3
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcVnfres }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index c2a8205..d6aee58
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcWorkflow }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index d224815..7db0122
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcWorkflowEngineActiviti }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index 9eae385..79e427f
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcZtesdncdriver }}
 apiVersion: extensions/v1beta1
 kind: Deployment
old mode 100755 (executable)
new mode 100644 (file)
index e79a27e..4874970
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVfcVfcztevnfmdriver }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 13fb94f..b301d2d 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: IfNotPresent
 msbaddr: msb-iag.{{ .Values.nsPrefix }}:80
diff --git a/kubernetes/vid/.helmignore b/kubernetes/vid/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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
index 68b43f4..4df4dae 100644 (file)
@@ -1,4 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
-description: A Helm chart for Kubernetes
+description: ONAP Virtual Infrastructure Deployment
 name: vid
-version: 0.1.0
+version: 2.0.0
diff --git a/kubernetes/vid/charts/mariadb/.helmignore b/kubernetes/vid/charts/mariadb/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -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/vid/charts/mariadb/Chart.yaml b/kubernetes/vid/charts/mariadb/Chart.yaml
new file mode 100644 (file)
index 0000000..1f7de32
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: VID MariaDB Service
+name: mariadb
+version: 2.0.0
diff --git a/kubernetes/vid/charts/mariadb/templates/NOTES.txt b/kubernetes/vid/charts/mariadb/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..75f0a7a
--- /dev/null
@@ -0,0 +1,11 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+  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 }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ .Chart.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/vid/charts/mariadb/templates/configmap.yaml b/kubernetes/vid/charts/mariadb/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..8a35df3
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-lfconfig
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/lf_config/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/vid/charts/mariadb/templates/deployment.yaml b/kubernetes/vid/charts/mariadb/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..cafab0c
--- /dev/null
@@ -0,0 +1,109 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      containers:
+        - name: {{ include "common.name" . }}
+          image: {{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          {{- 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_DATABASE
+              value: "{{ .Values.config.mysqldb }}"
+            - name: MYSQL_USER
+              value: "{{ .Values.config.mysqluser }}"
+            - name: MYSQL_PASSWORD
+              valueFrom:
+                secretKeyRef:
+                  name: {{ template "common.fullname" . }}
+                  key: db-password
+            - name: MYSQL_ROOT_PASSWORD
+              valueFrom:
+                secretKeyRef:
+                  name: {{ template "common.fullname" . }}
+                  key: db-root-password
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /var/lib/mysql
+            name: mariadb-data
+          - mountPath: /docker-entrypoint-initdb.d/vid-pre-init.sql
+            name: lfconfig
+            subPath: vid-pre-init.sql
+          - mountPath: /etc/mysql/my.cnf
+            name: lfconfig
+            subPath: my.cnf
+          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:
+        - name: mariadb-data
+        {{- if .Values.persistence.enabled }}
+          persistentVolumeClaim:
+            claimName: {{ include "common.fullname" . }}
+      {{- else }}
+          emptyDir: {}
+      {{- end }}
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: lfconfig
+          configMap:
+            name: {{ include "common.fullname" . }}-lfconfig
+            defaultMode: 0755
+            items:
+            - key: vid-my.cnf
+              path: my.cnf
+            - key: vid-pre-init.sql
+              path: vid-pre-init.sql
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/vid/charts/mariadb/templates/pv.yaml b/kubernetes/vid/charts/mariadb/templates/pv.yaml
new file mode 100644 (file)
index 0000000..184728f
--- /dev/null
@@ -0,0 +1,37 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+{{- 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/vid/charts/mariadb/templates/pvc.yaml b/kubernetes/vid/charts/mariadb/templates/pvc.yaml
new file mode 100644 (file)
index 0000000..e27c331
--- /dev/null
@@ -0,0 +1,48 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+{{- 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/vid/charts/mariadb/templates/secrets.yaml b/kubernetes/vid/charts/mariadb/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..3609692
--- /dev/null
@@ -0,0 +1,28 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: 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 }}
+  db-password: {{ .Values.config.mariadbPassword | b64enc | quote }}
diff --git a/kubernetes/vid/charts/mariadb/templates/service.yaml b/kubernetes/vid/charts/mariadb/templates/service.yaml
new file mode 100644 (file)
index 0000000..88ed09b
--- /dev/null
@@ -0,0 +1,31 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  ports:
+    - port: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/vid/charts/mariadb/values.yaml b/kubernetes/vid/charts/mariadb/values.yaml
new file mode 100644 (file)
index 0000000..567109c
--- /dev/null
@@ -0,0 +1,102 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# 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: library/mariadb:10
+pullPolicy: Always
+
+# application configuration
+config:
+  mysqldb: vid_openecomp_epsdk
+  mysqluser: vidadmin
+  mariadbRootPassword: LF+tp_1WqgSY
+  mariadbPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+
+# 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: vid/mariadb/data
+
+service:
+  name: mariadb
+  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/vid/requirements.yaml b/kubernetes/vid/requirements.yaml
new file mode 100644 (file)
index 0000000..f639633
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+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'
index 89c6932..b0d4690 100644 (file)
@@ -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.{{.Values.nsPrefix}}:5044"]
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
diff --git a/kubernetes/vid/templates/NOTES.txt b/kubernetes/vid/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..6e0b9fc
--- /dev/null
@@ -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={{ .Chart.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/vid/templates/all-services.yaml b/kubernetes/vid/templates/all-services.yaml
deleted file mode 100644 (file)
index cd22b7d..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#{{ if not .Values.disableVidVidMariadb }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: vid-mariadb
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  ports:
-  - name: vid-mariadb
-    port: 3306
-  selector:
-    app: vid-mariadb
-  clusterIP: None
-#{{ end }}
-#{{ if not .Values.disableVidVidServer }}
----
-apiVersion: v1
-kind: Service
-metadata:
-  labels:
-    app: vid-server
-  name: vid-server
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  ports:
-  - name: vid-server
-    nodePort: {{ .Values.nodePortPrefix }}00
-    port: 8080
-  selector:
-    app: vid-server
-  type: NodePort
-#{{ end }}
\ No newline at end of file
diff --git a/kubernetes/vid/templates/configmap.yaml b/kubernetes/vid/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..f7dbf07
--- /dev/null
@@ -0,0 +1,29 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/vid/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-filebeat-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/vid/templates/deployment.yaml b/kubernetes/vid/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..89ed734
--- /dev/null
@@ -0,0 +1,162 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - {{ .Values.mariadb.nameOverride }}
+        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: {{ include "common.name" . }}
+          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          lifecycle:
+            postStart:
+              exec:
+                command: ["/bin/sh", "-c", "export LOG=wait_logback.log; touch $LOG; export SRC=/tmp/logback.xml; export DST=/usr/local/tomcat/webapps/vid/WEB-INF/classes/; while [ ! -e $DST ]; do echo 'Waiting for $DST...' >> $LOG; sleep 5; done; sleep 2; /bin/cp -f $SRC $DST; echo 'Done' >> $LOG"]
+          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: ASDC_CLIENT_REST_HOST
+              value: sdc-be.{{ include "common.namespace" . }}-sdc
+            - name: ASDC_CLIENT_REST_AUTH
+              value: "{{ .Values.config.asdcclientrestauth }}"
+            - name: ASDC_CLIENT_REST_PORT
+              value: "{{ .Values.config.asdcclientrestport }}"
+            - name: VID_AAI_HOST
+              value: aai-service.{{ include "common.namespace" . }}-aai
+            - name: VID_AAI_PORT
+              value: "{{ .Values.config.vidaaiport }}"
+            - name: VID_ECOMP_SHARED_CONTEXT_REST_URL
+              value: http://portalapps.{{ include "common.namespace" . }}-portal:"{{ .Values.config.onapport }}"/ONAPPORTAL/context
+            - name: VID_MSO_SERVER_URL
+              value: http://mso.{{ include "common.namespace" . }}-mso:"{{ .Values.config.msoport }}"
+            - name: VID_MSO_PASS
+              value: "{{ .Values.config.vidmsopass }}"
+            - name: MSO_DME2_SERVER_URL
+              value: "{{ .Values.config.msodme2serverurl }}"
+            - name: MSO_DME2_ENABLED
+              value: {{ .Values.global.debugEnabled | default .Values.debugEnabled | quote }}
+            - name: VID_ECOMP_REDIRECT_URL
+              value: http://portalapps.{{ include "common.namespace" . }}-portal:"{{ .Values.config.onapport }}"/ONAPPORTAL/login.h\tm
+            - name: VID_ECOMP_REST_URL
+              value: http://portalapps.{{ include "common.namespace" . }}-portal:"{{ .Values.config.onapport }}"/ONAPPORTAL/auxapi
+            - name: VID_CONTACT_US_LINK
+              value: "{{ .Values.config.vidcontactuslink }}"
+            - name: VID_UEB_URL_LIST
+              value: dmaap.{{ include "common.namespace" . }}-message-router
+            - name: VID_MYSQL_HOST
+              value: "{{ .Values.config.vidmysqlhost }}"
+            - name: VID_MYSQL_PORT
+              value: "{{ .Values.config.vidmysqlport }}"
+            - name: VID_MYSQL_DBNAME
+              value: "{{ .Values.config.vidmysqldbname }}"
+            - name: VID_MYSQL_USER
+              value: "{{ .Values.config.vidmysqluser }}"
+            - name: VID_MYSQL_PASS
+              valueFrom:
+                secretKeyRef:
+                  name: {{ template "common.fullname" . }}
+                  key: vid-password
+            - name: VID_MYSQL_MAXCONNECTIONS
+              value: "{{ .Values.config.vidmysqlmaxconnections }}"
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /var/log/onap
+            name: vid-logs
+          - mountPath: /tmp/logback.xml
+            name: vid-logback
+            subPath: logback.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: vid-logs
+          - mountPath: /usr/share/filebeat/data
+            name: vid-data-filebeat
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: filebeat-conf
+          configMap:
+            name: {{ include "common.fullname" . }}-filebeat-configmap
+        - name: vid-logs
+          emptyDir: {}
+        - name: vid-data-filebeat
+          emptyDir: {}
+        - name: vid-logback
+          configMap:
+            name: {{ include "common.fullname" . }}-log-configmap
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/vid/templates/secrets.yaml b/kubernetes/vid/templates/secrets.yaml
new file mode 100644 (file)
index 0000000..729e0b1
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: 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:
+  vid-password: {{ .Values.config.vidmysqlpassword | b64enc | quote }}
diff --git a/kubernetes/vid/templates/service.yaml b/kubernetes/vid/templates/service.yaml
new file mode 100644 (file)
index 0000000..3969d21
--- /dev/null
@@ -0,0 +1,39 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.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 .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/vid/templates/vid-lfconfig-configmap.yaml b/kubernetes/vid/templates/vid-lfconfig-configmap.yaml
deleted file mode 100644 (file)
index 1743872..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index 896f47d..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#{{ 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
deleted file mode 100644 (file)
index 41bfb90..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#{{ if not .Values.disableVidVidMariadb }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  labels:
-    app: vid-mariadb
-  name: vid-mariadb
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.vidMariaDbReplicas }}
-  selector:
-    matchLabels:
-      app: vid-mariadb
-  template:
-    metadata:
-      labels:
-        app: vid-mariadb
-      name: vid-mariadb
-    spec:
-      containers:
-      - image: {{ .Values.image.mariadb }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: vid-mariadb
-        env:
-        - name: MYSQL_DATABASE
-          value: vid_openecomp_epsdk
-        - name: MYSQL_USER
-          value: vidadmin
-        - name: MYSQL_PASSWORD
-          value: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
-        - name: MYSQL_ROOT_PASSWORD
-          value: LF+tp_1WqgSY
-        volumeMounts:
-        - mountPath: /etc/localtime
-          name: localtime
-          readOnly: true
-        - mountPath: /var/lib/mysql
-          name: vid-mariadb-data
-        - mountPath: /docker-entrypoint-initdb.d/vid-pre-init.sql
-          name: vid-lfconfig
-          subPath: vid-pre-init.sql
-        - mountPath: /etc/mysql/my.cnf
-          name: vid-lfconfig
-          subPath: my.cnf
-        ports:
-        - containerPort: 3306
-        readinessProbe:
-          tcpSocket:
-            port: 3306
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      volumes:
-        - name: localtime
-          hostPath:
-            path: /etc/localtime
-        - name: vid-mariadb-data
-          persistentVolumeClaim:
-            claimName: vid-db
-        - 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 }}
diff --git a/kubernetes/vid/templates/vid-pv-pvc.yaml b/kubernetes/vid/templates/vid-pv-pvc.yaml
deleted file mode 100644 (file)
index df8d997..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#{{ if not .Values.disableVidVidMariadb }}
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: "{{ .Values.nsPrefix }}-vid"
-  namespace: "{{ .Values.nsPrefix }}"
-  labels:
-    name: "{{ .Values.nsPrefix }}-vid"
-spec:
-  capacity:
-    storage: 2Gi
-  accessModes:
-    - ReadWriteMany
-  persistentVolumeReclaimPolicy: Retain
-  hostPath:
-    path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/vid/mariadb/data
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: vid-db
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  accessModes:
-    - ReadWriteMany
-  resources:
-    requests:
-      storage: 2Gi
-  selector:
-    matchLabels:
-      name: "{{ .Values.nsPrefix }}-vid"
-#{{ end }}
diff --git a/kubernetes/vid/templates/vid-server-deployment.yaml b/kubernetes/vid/templates/vid-server-deployment.yaml
deleted file mode 100644 (file)
index a0569ab..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-#{{ if not .Values.disableVidVidServer }}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  labels:
-    app: vid-server
-  name: vid-server
-  namespace: "{{ .Values.nsPrefix }}"
-spec:
-  replicas: {{ .Values.vidServerReplicas }}
-  selector:
-    matchLabels:
-      app: vid-server
-  template:
-    metadata:
-      labels:
-        app: vid-server
-      name: vid-server
-    spec:
-      initContainers:
-      - command:
-        - /root/ready.py
-        args:
-        - --container-name
-        - vid-mariadb
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: {{ .Values.image.readiness }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: vid-server-readiness
-      containers:
-      - env:
-        - name: ASDC_CLIENT_REST_HOST
-          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 }}
-        - name: VID_AAI_PORT
-          value: "8443"
-        - name: VID_ECOMP_SHARED_CONTEXT_REST_URL
-          value: http://portalapps.{{ .Values.nsPrefix }}:8989/ONAPPORTAL/context
-        - name: VID_MSO_SERVER_URL
-          value: http://mso.{{ .Values.nsPrefix }}:8080
-        - name: VID_MSO_PASS
-          value: OBF:1ih71i271vny1yf41ymf1ylz1yf21vn41hzj1icz
-        - name: MSO_DME2_SERVER_URL
-          value: http://localhost:8081
-        - name: MSO_DME2_ENABLED
-          value: "false"
-        - name: VID_ECOMP_REDIRECT_URL
-          value: http://portalapps.{{ .Values.nsPrefix }}:8989/ONAPPORTAL/login.htm
-        - name: VID_ECOMP_REST_URL
-          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 }}
-        - name: VID_MYSQL_HOST
-          value: vid-mariadb
-        - name: VID_MYSQL_PORT
-          value: "3306"
-        - name: VID_MYSQL_DBNAME
-          value: vid_openecomp_epsdk
-        - name: VID_MYSQL_USER
-          value: vidadmin
-        - name: VID_MYSQL_PASS
-          value: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
-        - name: VID_MYSQL_MAXCONNECTIONS
-          value: "5"
-        image: {{ .Values.image.vid }}
-        imagePullPolicy: {{ .Values.pullPolicy }}
-        name: vid-server
-        lifecycle:
-          postStart:
-            exec:
-              command: ["/bin/sh", "-c", "export LOG=wait_logback.log; touch $LOG; export SRC=/tmp/logback.xml; export DST=/usr/local/tomcat/webapps/vid/WEB-INF/classes/; while [ ! -e $DST ]; do echo 'Waiting for $DST...' >> $LOG; sleep 5; done; sleep 2; /bin/cp -f $SRC $DST; echo 'Done' >> $LOG"]
-        ports:
-        - containerPort: 8080
-        volumeMounts:
-        - mountPath: /etc/localtime
-          name: localtime
-          readOnly: true
-        - mountPath: /var/log/onap
-          name: vid-logs
-        - mountPath: /tmp/logback.xml
-          name: vid-logback
-          subPath: logback.xml
-        readinessProbe:
-          tcpSocket:
-            port: 8080
-          initialDelaySeconds: 5
-          periodSeconds: 10
-      - 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: vid-logs
-        - mountPath: /usr/share/filebeat/data
-          name: vid-data-filebeat
-      volumes:
-        - name: localtime
-          hostPath:
-            path: /etc/localtime
-        - name: filebeat-conf
-          configMap:
-            name: vid-filebeat-configmap
-        - name: vid-logs
-          emptyDir: {}
-        - name: vid-data-filebeat
-          emptyDir: {}
-        - name: vid-logback
-          configMap:
-            name: vid-log-configmap
-      imagePullSecrets:
-      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
index eef104d..b42bceb 100644 (file)
-nsPrefix: onap
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Default values for vid.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+
+subChartsOnly:
+  enabled: true
+
+# application image
+repository: nexus3.onap.org:10001
+image: openecomp/vid:v1.1.1
 pullPolicy: Always
-nodePortPrefix: 302
-dataRootDir: /dockerdata-nfs
-vidMariaDbReplicas: 1
-vidServerReplicas: 1
-image:
-  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
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+config:
+  vidmysqlpassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+  asdcclientrestauth: "Basic dmlkOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU="
+  asdcclientrestport: "8080"
+  vidaaiport: "8443"
+  onapport: "8989"
+  msoport: "8080"
+  vidmsopass: OBF:1ih71i271vny1yf41ymf1ylz1yf21vn41hzj1icz
+  msodme2serverurl: http://localhost:8081
+  vidcontactuslink: https://todo_contact_us_link.com
+  vidmysqlhost: vid-mariadb
+  vidmysqlport: "3306"
+  vidmysqldbname: vid_openecomp_epsdk
+  vidmysqluser: vidadmin
+  vidmysqlmaxconnections: "5"
+  logstashServiceName: log-ls
+  logstashPort: 5044
+
+
+# subchart configuration
+mariadb:
+  nameOverride: vid-db
+
+# 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: vid
+  externalPort: "00"
+  nodePort: "00"
+  internalPort: 8080
+
+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
index 2dee27b..3a1b4ab 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 apiVersion: v1
 description: A Helm chart for Kubernetes
 name: vnfsdk
index 759e26d..b592c47 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVnfsdkPostgres }}
 apiVersion: v1
 kind: Service
index d000266..14eb741 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVnfsdkPostgres }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index ba13292..95d6fed 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #{{ if not .Values.disableVnfsdkRefrepo }}
 apiVersion: extensions/v1beta1
 kind: Deployment
index 386c61e..3c21d5c 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302