Merge "vvp -- VNF Validation Platform"
authorMike Elliott <mike.elliott@amdocs.com>
Tue, 6 Nov 2018 16:45:38 +0000 (16:45 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 6 Nov 2018 16:45:38 +0000 (16:45 +0000)
375 files changed:
docs/oom_project_description.rst
docs/release-notes.rst
kubernetes/aaf/charts/aaf-cm/templates/deployment.yaml
kubernetes/aaf/charts/aaf-cm/values.yaml
kubernetes/aaf/charts/aaf-cs/templates/deployment.yaml
kubernetes/aaf/charts/aaf-cs/values.yaml
kubernetes/aaf/charts/aaf-fs/templates/deployment.yaml
kubernetes/aaf/charts/aaf-fs/values.yaml
kubernetes/aaf/charts/aaf-gui/templates/deployment.yaml
kubernetes/aaf/charts/aaf-gui/values.yaml
kubernetes/aaf/charts/aaf-hello/templates/deployment.yaml
kubernetes/aaf/charts/aaf-hello/values.yaml
kubernetes/aaf/charts/aaf-locate/templates/deployment.yaml
kubernetes/aaf/charts/aaf-locate/values.yaml
kubernetes/aaf/charts/aaf-oauth/templates/deployment.yaml
kubernetes/aaf/charts/aaf-oauth/values.yaml
kubernetes/aaf/charts/aaf-service/templates/deployment.yaml
kubernetes/aaf/charts/aaf-service/values.yaml
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/values.yaml
kubernetes/aaf/charts/aaf-sms/resources/config/has.json [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sms/resources/config/osdf.json [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sms/templates/configmap.yaml
kubernetes/aaf/charts/aaf-sms/templates/job.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sms/values.yaml
kubernetes/aaf/charts/aaf-sshsm/Chart.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/Chart.yaml with 80% similarity]
kubernetes/aaf/charts/aaf-sshsm/README.md [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/Chart.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-zookeeper/Chart.yaml with 80% similarity]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/templates/configmap.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/templates/configmap.yaml with 76% similarity]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/templates/job.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/templates/statefulset.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/values.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/Chart.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-music/Chart.yaml with 78% similarity]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/configmap.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/job.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/pv.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/templates/pv.yaml with 93% similarity]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/pvc.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/templates/pvc.yaml with 94% similarity]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/values.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/Chart.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/templates/job.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/values.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/requirements.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-music/requirements.yaml with 87% similarity]
kubernetes/aaf/charts/aaf-sshsm/resources/config/prk_passwd [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/resources/config/srk_handle [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/templates/pv.yaml [moved from kubernetes/aaf/templates/pv.yaml with 50% similarity]
kubernetes/aaf/charts/aaf-sshsm/templates/pvc.yaml [moved from kubernetes/aaf/templates/pvc.yaml with 51% similarity]
kubernetes/aaf/charts/aaf-sshsm/templates/secret.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sshsm/values.yaml [new file with mode: 0644]
kubernetes/aaf/templates/job.yaml [deleted file]
kubernetes/aaf/values.yaml
kubernetes/aai/charts/aai-babel/values.yaml
kubernetes/aai/charts/aai-cassandra/templates/statefulset.yaml
kubernetes/aai/charts/aai-champ/resources/config/log/logback.xml
kubernetes/aai/charts/aai-champ/templates/deployment.yaml
kubernetes/aai/charts/aai-champ/values.yaml
kubernetes/aai/charts/aai-data-router/values.yaml
kubernetes/aai/charts/aai-elasticsearch/templates/deployment.yaml
kubernetes/aai/charts/aai-gizmo/resources/fproxy/config/auth/client-cert.p12
kubernetes/aai/charts/aai-gizmo/templates/NOTES.txt
kubernetes/aai/charts/aai-gizmo/templates/service.yaml
kubernetes/aai/charts/aai-gizmo/values.yaml
kubernetes/aai/charts/aai-graphadmin/resources/config/application.properties
kubernetes/aai/charts/aai-graphadmin/templates/job.yaml
kubernetes/aai/charts/aai-graphadmin/values.yaml
kubernetes/aai/charts/aai-modelloader/values.yaml
kubernetes/aai/charts/aai-resources/resources/config/aaf/bath_config.csv [new file with mode: 0644]
kubernetes/aai/charts/aai-resources/resources/config/aaf/org.onap.aai.props
kubernetes/aai/charts/aai-resources/resources/config/application.properties
kubernetes/aai/charts/aai-resources/templates/configmap.yaml
kubernetes/aai/charts/aai-resources/templates/deployment.yaml
kubernetes/aai/charts/aai-resources/values.yaml
kubernetes/aai/charts/aai-search-data/values.yaml
kubernetes/aai/charts/aai-sparky-be/values.yaml
kubernetes/aai/charts/aai-traversal/resources/config/aaf/bath_config.csv [new file with mode: 0644]
kubernetes/aai/charts/aai-traversal/resources/config/aaf/org.onap.aai.props
kubernetes/aai/charts/aai-traversal/resources/config/application.properties
kubernetes/aai/charts/aai-traversal/templates/configmap.yaml
kubernetes/aai/charts/aai-traversal/templates/deployment.yaml
kubernetes/aai/charts/aai-traversal/templates/job.yaml
kubernetes/aai/charts/aai-traversal/values.yaml
kubernetes/aai/templates/deployment.yaml
kubernetes/aai/templates/service.yaml
kubernetes/aai/values.yaml
kubernetes/appc/charts/appc-ansible-server/values.yaml
kubernetes/appc/charts/appc-cdt/values.yaml
kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh
kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/aaa-app-config.xml
kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/aaiclient.properties
kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/appc.properties
kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/cadi.properties [new file with mode: 0644]
kubernetes/appc/templates/NOTES.txt
kubernetes/appc/templates/statefulset.yaml
kubernetes/appc/values.yaml
kubernetes/clamp/charts/clamp-dash-kibana/templates/deployment.yaml
kubernetes/clamp/charts/clamp-dash-kibana/values.yaml
kubernetes/clamp/charts/clamp-dash-logstash/templates/deployment.yaml
kubernetes/clamp/charts/clamp-dash-logstash/values.yaml
kubernetes/clamp/charts/mariadb/NOTES.txt
kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-create-db-objects.sql
kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/bulkload/clds-stored-procedures.sql
kubernetes/clamp/charts/mariadb/resources/config/mariadb/docker-entrypoint-initdb.d/drop/clds-drop-db-objects.sql
kubernetes/clamp/values.yaml
kubernetes/cli/templates/NOTES.txt
kubernetes/cli/values.yaml
kubernetes/common/cassandra/Chart.yaml [new file with mode: 0644]
kubernetes/common/cassandra/requirements.yaml [new file with mode: 0644]
kubernetes/common/cassandra/templates/service.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/templates/service.yaml with 97% similarity]
kubernetes/common/cassandra/templates/statefulset.yaml [new file with mode: 0644]
kubernetes/common/cassandra/templates/volumes.yaml [new file with mode: 0644]
kubernetes/common/cassandra/values.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/values.yaml with 56% similarity]
kubernetes/common/common/templates/_repository.tpl
kubernetes/common/dgbuilder/templates/NOTES.txt
kubernetes/common/dgbuilder/values.yaml
kubernetes/common/mariadb-galera/templates/configmap.yaml
kubernetes/common/mariadb-galera/templates/statefulset.yaml
kubernetes/common/mongo/templates/pvc.yaml
kubernetes/common/music/Chart.yaml [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra-job/.helmignore [moved from kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/.helmignore with 100% similarity]
kubernetes/common/music/charts/music-cassandra-job/Chart.yaml [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra-job/resources/LICENSE.txt [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin.cql [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin_pw.cql [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra-job/resources/cql/extra/check.cql [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra-job/templates/configmap.yaml [new file with mode: 0755]
kubernetes/common/music/charts/music-cassandra-job/templates/configmap_extra.yaml [new file with mode: 0755]
kubernetes/common/music/charts/music-cassandra-job/templates/job.yaml [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra-job/values.yaml [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra/.helmignore [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra/Chart.yaml [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra/requirements.yaml [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra/templates/service.yaml [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra/templates/statefulset.yaml [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra/templates/volumes.yaml [new file with mode: 0644]
kubernetes/common/music/charts/music-cassandra/values.yaml [new file with mode: 0644]
kubernetes/common/music/charts/music-tomcat/Chart.yaml [new file with mode: 0755]
kubernetes/common/music/charts/music-tomcat/requirements.yaml [new file with mode: 0755]
kubernetes/common/music/charts/music-tomcat/resources/config/music.properties [new file with mode: 0755]
kubernetes/common/music/charts/music-tomcat/templates/configmap.yaml [new file with mode: 0755]
kubernetes/common/music/charts/music-tomcat/templates/deployment.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-music/templates/deployment.yaml with 62% similarity, mode: 0755]
kubernetes/common/music/charts/music-tomcat/templates/service.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-zookeeper/templates/service.yaml with 78% similarity, mode: 0755]
kubernetes/common/music/charts/music-tomcat/values.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-music/values.yaml with 75% similarity, mode: 0755]
kubernetes/common/music/charts/zookeeper/.helmignore [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/Chart.yaml [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/OWNERS [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/README.md [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/templates/NOTES.txt [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/templates/_helpers.tpl [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/templates/config-jmx-exporter.yaml [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/templates/job-chroots.yaml [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/templates/poddisruptionbudget.yaml [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/templates/service-headless.yaml [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/templates/service.yaml [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/templates/statefulset.yaml [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/templates/volumes.yaml [new file with mode: 0644]
kubernetes/common/music/charts/zookeeper/values.yaml [new file with mode: 0644]
kubernetes/common/music/requirements.yaml [new file with mode: 0644]
kubernetes/common/music/values.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-zookeeper/values.yaml with 51% similarity]
kubernetes/common/mysql/templates/statefulset.yaml
kubernetes/common/network-name-gen/values.yaml
kubernetes/common/postgres/templates/statefulset.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-datafile-collector-inputs.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-inputs.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml
kubernetes/dcaegen2/charts/dcae-cloudify-manager/values.yaml
kubernetes/dcaegen2/charts/dcae-redis/templates/NOTES.txt
kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml
kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/buscontroller.env
kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/dmaapbc.properties [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-bus-controller/resources/dmaap/onap.json
kubernetes/dmaap/charts/dmaap-bus-controller/resources/feeds/DefaultPM.json
kubernetes/dmaap/charts/dmaap-bus-controller/resources/topics/PNF_READY.json
kubernetes/dmaap/charts/dmaap-bus-controller/resources/topics/PNF_REGISTRATION.json
kubernetes/dmaap/charts/dmaap-bus-controller/templates/deployment.yaml
kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml
kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-node/values.yaml
kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-prov/values.yaml
kubernetes/dmaap/charts/message-router/resources/config/dmaap/MsgRtrApi.properties
kubernetes/dmaap/charts/message-router/resources/config/dmaap/cadi.properties
kubernetes/dmaap/charts/message-router/templates/deployment.yaml
kubernetes/dmaap/charts/message-router/values.yaml
kubernetes/esr/charts/esr-gui/values.yaml
kubernetes/esr/charts/esr-server/values.yaml
kubernetes/helm/plugins/deploy/deploy.sh
kubernetes/helm/plugins/undeploy/undeploy.sh
kubernetes/helm/starters/onap-app/README.md
kubernetes/helm/starters/onap-app/templates/NOTES.txt
kubernetes/msb/charts/msb-consul/templates/NOTES.txt
kubernetes/msb/charts/msb-discovery/templates/NOTES.txt
kubernetes/msb/charts/msb-discovery/values.yaml
kubernetes/msb/charts/msb-eag/templates/NOTES.txt
kubernetes/msb/charts/msb-eag/values.yaml
kubernetes/msb/charts/msb-iag/templates/NOTES.txt
kubernetes/msb/charts/msb-iag/values.yaml
kubernetes/multicloud/charts/multicloud-azure/values.yaml
kubernetes/multicloud/charts/multicloud-ocata/templates/service.yaml
kubernetes/multicloud/charts/multicloud-ocata/values.yaml
kubernetes/multicloud/charts/multicloud-pike/values.yaml
kubernetes/multicloud/charts/multicloud-vio/templates/service.yaml
kubernetes/multicloud/charts/multicloud-vio/values.yaml
kubernetes/multicloud/charts/multicloud-windriver/templates/service.yaml
kubernetes/multicloud/charts/multicloud-windriver/values.yaml
kubernetes/multicloud/templates/service.yaml
kubernetes/multicloud/values.yaml
kubernetes/nbi/values.yaml
kubernetes/onap/resources/environments/public-cloud.yaml
kubernetes/onap/values.yaml
kubernetes/oof/Makefile
kubernetes/oof/charts/oof-cmso/Chart.yaml [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/Chart.yaml [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/cmso.properties [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/liquibase.properties [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/logback.xml [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/optimizer.properties [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/ticketmgt.properties [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/templates/NOTES.txt [moved from kubernetes/oof/charts/oof-has/charts/oof-has-zookeeper/templates/NOTES.txt with 89% similarity]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/templates/configmap.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-music/templates/configmap.yaml with 86% similarity]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/templates/deployment.yaml [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/templates/service.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-music/templates/service.yaml with 90% similarity]
kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/values.yaml [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/requirements.yaml [new file with mode: 0644]
kubernetes/oof/charts/oof-cmso/values.yaml [moved from kubernetes/oof/charts/oof-has/charts/oof-has-music/resources/config/music.properties with 52% similarity]
kubernetes/oof/charts/oof-has/charts/oof-has-api/templates/deployment.yaml
kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/resources/config/cassandra/docker-entrypoint-initdb.d/zzz_conductor.cql [deleted file]
kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/templates/NOTES.txt [deleted file]
kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/templates/deployment.yaml [deleted file]
kubernetes/oof/charts/oof-has/charts/oof-has-controller/templates/deployment.yaml
kubernetes/oof/charts/oof-has/charts/oof-has-data/templates/deployment.yaml
kubernetes/oof/charts/oof-has/charts/oof-has-music/resources/config/startup.sh [deleted file]
kubernetes/oof/charts/oof-has/charts/oof-has-music/templates/NOTES.txt [deleted file]
kubernetes/oof/charts/oof-has/charts/oof-has-reservation/templates/deployment.yaml
kubernetes/oof/charts/oof-has/charts/oof-has-solver/templates/deployment.yaml
kubernetes/oof/charts/oof-has/charts/oof-has-zookeeper/templates/deployment.yaml [deleted file]
kubernetes/oof/charts/oof-has/requirements.yaml
kubernetes/oof/charts/oof-has/resources/config/conductor.conf
kubernetes/oof/charts/oof-has/resources/config/healthcheck.json [new file with mode: 0755]
kubernetes/oof/charts/oof-has/resources/config/onboard.json [new file with mode: 0755]
kubernetes/oof/charts/oof-has/templates/job-healthcheck.yaml [new file with mode: 0755]
kubernetes/oof/charts/oof-has/templates/job-onboard.yaml [new file with mode: 0755]
kubernetes/oof/charts/oof-has/values.yaml
kubernetes/oof/resources/config/osdf_config.yaml
kubernetes/oof/templates/NOTES.txt
kubernetes/oof/templates/deployment.yaml
kubernetes/oof/values.yaml
kubernetes/policy/charts/brmsgw/resources/config/pe/brmsgw.conf
kubernetes/policy/charts/brmsgw/values.yaml
kubernetes/policy/charts/drools/resources/config/opt/policy/config/drools/base.conf
kubernetes/policy/charts/drools/values.yaml
kubernetes/policy/charts/pdp/values.yaml
kubernetes/policy/charts/policy-apex-pdp/values.yaml
kubernetes/policy/charts/policy-distribution/templates/deployment.yaml
kubernetes/policy/charts/policy-distribution/values.yaml
kubernetes/policy/resources/config/pe/console.conf
kubernetes/policy/resources/config/pe/push-policies.sh
kubernetes/policy/values.yaml
kubernetes/pomba/charts/pomba-aaictxbuilder/values.yaml
kubernetes/pomba/charts/pomba-contextaggregator/resources/bin/pre_start.sh [new file with mode: 0644]
kubernetes/pomba/charts/pomba-contextaggregator/resources/config/builders/aai.properties
kubernetes/pomba/charts/pomba-contextaggregator/resources/config/builders/sdc.properties
kubernetes/pomba/charts/pomba-contextaggregator/templates/configmap.yaml
kubernetes/pomba/charts/pomba-contextaggregator/templates/deployment.yaml
kubernetes/pomba/charts/pomba-contextaggregator/values.yaml
kubernetes/pomba/charts/pomba-data-router/templates/deployment.yaml
kubernetes/pomba/charts/pomba-data-router/values.yaml
kubernetes/pomba/charts/pomba-elasticsearch/values.yaml
kubernetes/pomba/charts/pomba-kibana/templates/deployment.yaml
kubernetes/pomba/charts/pomba-kibana/values.yaml
kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml
kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/values.yaml
kubernetes/pomba/charts/pomba-sdcctxbuilder/resources/config/application.properties
kubernetes/pomba/charts/pomba-sdcctxbuilder/values.yaml
kubernetes/pomba/charts/pomba-search-data/templates/deployment.yaml
kubernetes/pomba/charts/pomba-search-data/values.yaml
kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/application.properties
kubernetes/pomba/charts/pomba-servicedecomposition/values.yaml
kubernetes/pomba/charts/pomba-validation-service/values.yaml
kubernetes/portal/charts/portal-app/resources/certs/keystoreONAPPortal.p12 [new file with mode: 0644]
kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties
kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties
kubernetes/portal/charts/portal-app/templates/NOTES.txt
kubernetes/portal/charts/portal-app/templates/deployment.yaml
kubernetes/portal/charts/portal-app/templates/service.yaml
kubernetes/portal/charts/portal-app/values.yaml
kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql
kubernetes/portal/charts/portal-mariadb/values.yaml
kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties
kubernetes/portal/charts/portal-sdk/values.yaml
kubernetes/portal/charts/portal-widget/values.yaml
kubernetes/portal/docker/init/mariadb-client/Dockerfile
kubernetes/portal/values.yaml
kubernetes/robot/demo-k8s.sh
kubernetes/robot/ete-k8s.sh
kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py
kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py
kubernetes/robot/resources/config/eteshare/config/vm_properties.py
kubernetes/robot/templates/NOTES.txt
kubernetes/robot/templates/deployment.yaml
kubernetes/robot/values.yaml
kubernetes/sdc/charts/sdc-be/templates/deployment.yaml
kubernetes/sdc/charts/sdc-be/values.yaml
kubernetes/sdc/charts/sdc-cs/values.yaml
kubernetes/sdc/charts/sdc-es/values.yaml
kubernetes/sdc/charts/sdc-fe/values.yaml
kubernetes/sdc/charts/sdc-kb/values.yaml
kubernetes/sdc/charts/sdc-onboarding-be/values.yaml
kubernetes/sdc/charts/sdc-wfd-be/values.yaml
kubernetes/sdc/charts/sdc-wfd-fe/values.yaml
kubernetes/sdnc/charts/dmaap-listener/values.yaml
kubernetes/sdnc/charts/sdnc-ansible-server/values.yaml
kubernetes/sdnc/charts/sdnc-portal/values.yaml
kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties
kubernetes/sdnc/charts/ueb-listener/values.yaml
kubernetes/sdnc/templates/statefulset.yaml
kubernetes/sdnc/values.yaml
kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
kubernetes/so/charts/so-bpmn-infra/templates/deployment.yaml
kubernetes/so/charts/so-bpmn-infra/templates/service.yaml
kubernetes/so/charts/so-bpmn-infra/values.yaml
kubernetes/so/charts/so-catalog-db-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-catalog-db-adapter/templates/deployment.yaml
kubernetes/so/charts/so-catalog-db-adapter/templates/service.yaml
kubernetes/so/charts/so-catalog-db-adapter/values.yaml
kubernetes/so/charts/so-mariadb/templates/service.yaml
kubernetes/so/charts/so-mariadb/values.yaml
kubernetes/so/charts/so-monitoring/resources/config/overrides/override.yaml [new file with mode: 0644]
kubernetes/so/charts/so-monitoring/templates/configmap.yaml
kubernetes/so/charts/so-monitoring/templates/deployment.yaml
kubernetes/so/charts/so-monitoring/values.yaml
kubernetes/so/charts/so-openstack-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-openstack-adapter/templates/deployment.yaml
kubernetes/so/charts/so-openstack-adapter/templates/service.yaml
kubernetes/so/charts/so-openstack-adapter/values.yaml
kubernetes/so/charts/so-request-db-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-request-db-adapter/templates/deployment.yaml
kubernetes/so/charts/so-request-db-adapter/templates/service.yaml
kubernetes/so/charts/so-request-db-adapter/values.yaml
kubernetes/so/charts/so-sdc-controller/resources/config/overrides/override.yaml
kubernetes/so/charts/so-sdc-controller/templates/deployment.yaml
kubernetes/so/charts/so-sdc-controller/templates/service.yaml
kubernetes/so/charts/so-sdc-controller/values.yaml
kubernetes/so/charts/so-sdnc-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-sdnc-adapter/templates/deployment.yaml
kubernetes/so/charts/so-sdnc-adapter/templates/service.yaml
kubernetes/so/charts/so-sdnc-adapter/values.yaml
kubernetes/so/charts/so-vfc-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-vfc-adapter/templates/deployment.yaml
kubernetes/so/charts/so-vfc-adapter/values.yaml
kubernetes/so/resources/config/overrides/override.yaml
kubernetes/so/templates/deployment.yaml
kubernetes/so/templates/service.yaml
kubernetes/so/values.yaml
kubernetes/uui/charts/uui-server/values.yaml
kubernetes/uui/values.yaml
kubernetes/vfc/charts/vfc-catalog/values.yaml
kubernetes/vfc/charts/vfc-db/values.yaml
kubernetes/vfc/charts/vfc-ems-driver/values.yaml
kubernetes/vfc/charts/vfc-generic-vnfm-driver/values.yaml
kubernetes/vfc/charts/vfc-huawei-vnfm-driver/values.yaml
kubernetes/vfc/charts/vfc-juju-vnfm-driver/values.yaml
kubernetes/vfc/charts/vfc-multivim-proxy/values.yaml
kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/templates/deployment.yaml
kubernetes/vfc/charts/vfc-nokia-v2vnfm-driver/values.yaml
kubernetes/vfc/charts/vfc-nslcm/values.yaml
kubernetes/vfc/charts/vfc-resmgr/values.yaml
kubernetes/vfc/charts/vfc-vnflcm/values.yaml
kubernetes/vfc/charts/vfc-vnfmgr/values.yaml
kubernetes/vfc/charts/vfc-vnfres/values.yaml
kubernetes/vfc/charts/vfc-workflow-engine/values.yaml
kubernetes/vfc/charts/vfc-workflow/values.yaml
kubernetes/vfc/charts/vfc-zte-sdnc-driver/values.yaml
kubernetes/vfc/charts/vfc-zte-vnfm-driver/values.yaml
kubernetes/vid/charts/vid-mariadb-galera/templates/statefulset.yaml
kubernetes/vid/templates/deployment.yaml
kubernetes/vid/templates/job.yaml [moved from kubernetes/vid/templates/vid-galera-config-job.yaml with 91% similarity]
kubernetes/vid/values.yaml
kubernetes/vnfsdk/values.yaml

index 5cedf79..6486f4b 100644 (file)
@@ -32,7 +32,7 @@ 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 four different areas each targeted at a differnet user:
+The OOM documentation is broken into four different areas each targeted at a different user:
 
 - :ref:`quick-start-label` - deploy ONAP on an existing cloud
 - :ref:`user-guide-label` - a guide for operators of an ONAP instance
index 3cb547c..c87eee0 100644 (file)
@@ -425,7 +425,7 @@ The Amsterdam release is the first release of the ONAP Operations Manager (OOM).
 
 The main goal of the Amsterdam release was to:
 
-    - Support Flexible Platform Deployment via Kubernetes of fully containerized OMAP components - on any type of environment.
+    - Support Flexible Platform Deployment via Kubernetes of fully containerized ONAP components - on any type of environment.
     - Support State Management of ONAP platform components.
     - Support full production ONAP deployment and any variation of component level deployment for development.
     - Platform Operations Orchestration / Control Loop Actions.
index 3954425..f78dfdc 100644 (file)
@@ -31,20 +31,27 @@ spec:
         release: {{ .Release.Name }}
     spec:
       initContainers:
-      - name: {{ include "common.name" . }}-job-complete
-        command:
-        - /root/job_complete.py
-        args:
-        - --job-name
-        - {{ .Release.Name }}-create-config
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+      - name: {{ include "common.name" . }}-config-container
+        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+          - mountPath: "/opt/app/osaaf"
+            name: {{ include "common.name" . }}-config-vol
+        env:
+          - name: HOSTNAME
+            value: "{{ .Values.global.cadi.hostname }}"
+          - name: AAF_ENV
+            value: "{{ .Values.global.cadi.aaf_env }}"
+          - name: AAF_REGISTER_AS
+            value: "{{ .Values.aaf_register_as }}"
+          - name: LATITUDE
+            value: "{{ .Values.global.cadi.cadi_latitude }}"
+          - name: LONGITUDE
+            value: "{{ .Values.global.cadi.cadi_longitude }}"
+          - name: CASS_HOST
+            value: "{{ .Values.global.cadi.cass_host }}"
+          - name: AAF_LOCATOR_AS
+            value: "{{ .Values.global.cadi.cadi_locator_as }}"
       - name: {{ include "common.name" . }}-readiness
         command:
         - /root/ready.py
@@ -61,12 +68,12 @@ spec:
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/bin/cm"]
+        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_cm","sleep","0","cd /opt/app/aaf;bin/cm"]
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: shared-config-volume
+          name: {{ include "common.name" . }}-config-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
@@ -96,12 +103,7 @@ spec:
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: shared-config-volume
-      {{- if .Values.global.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-config
-      {{- else }}
+      - name: {{ include "common.name" . }}-config-vol
         emptyDir: {}
-      {{- end }}
       imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 9ddb366..6bd03cf 100644 (file)
@@ -25,7 +25,8 @@ flavor: small
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_cm:2.1.2-SNAPSHOT
+image: onap/aaf/aaf_cm:2.1.7-SNAPSHOT
+aaf_register_as: "aaf-cm.onap"
 pullPolicy: Always
 
 
@@ -76,4 +77,4 @@ resources:
     requests:
       cpu: 40m
       memory: 600Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index e0d500c..3abdcb3 100644 (file)
@@ -63,8 +63,8 @@ spec:
           periodSeconds: {{ .Values.liveness.periodSeconds }}
         {{ end -}}
         readinessProbe:
-          exec:
-            command: ["/bin/bash","/opt/app/aaf/cass_init/cmd.sh","wait"]
+          tcpSocket:
+            port: {{ .Values.service.internalPort3 }}
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
@@ -89,4 +89,4 @@ spec:
         emptyDir: {}
       {{- end }}
       imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index a914b54..a81bfed 100644 (file)
@@ -24,7 +24,7 @@ flavor: small
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_cass:2.1.2-SNAPSHOT
+image: onap/aaf/aaf_cass:2.1.7-SNAPSHOT
 pullPolicy: Always
 
 # application configuration
@@ -94,4 +94,4 @@ persistence:
   volumeReclaimPolicy: Retain
   accessMode: ReadWriteOnce
   size: 10Gi
-  storageClass: "manual"
\ No newline at end of file
+  storageClass: "manual"
index 5125eb1..b938448 100644 (file)
@@ -31,20 +31,27 @@ spec:
         release: {{ .Release.Name }}
     spec:
       initContainers:
-      - name: {{ include "common.name" . }}-job-complete
-        command:
-        - /root/job_complete.py
-        args:
-        - --job-name
-        - {{ .Release.Name }}-create-config
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+      - name: {{ include "common.name" . }}-config-container
+        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+          - mountPath: "/opt/app/osaaf"
+            name: {{ include "common.name" . }}-config-vol
+        env:
+          - name: HOSTNAME
+            value: "{{ .Values.global.cadi.hostname }}"
+          - name: AAF_ENV
+            value: "{{ .Values.global.cadi.aaf_env }}"
+          - name: AAF_REGISTER_AS
+            value: "{{ .Values.aaf_register_as }}"
+          - name: LATITUDE
+            value: "{{ .Values.global.cadi.cadi_latitude }}"
+          - name: LONGITUDE
+            value: "{{ .Values.global.cadi.cadi_longitude }}"
+          - name: CASS_HOST
+            value: "{{ .Values.global.cadi.cass_host }}"
+          - name: AAF_LOCATOR_AS
+            value: "{{ .Values.global.cadi.cadi_locator_as }}"
       - name: {{ include "common.name" . }}-readiness
         command:
         - /root/ready.py
@@ -61,12 +68,12 @@ spec:
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/bin/fs"]
+        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_fs","sleep","0","cd /opt/app/aaf;bin/fs"]
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: shared-config-volume
+          name: {{ include "common.name" . }}-config-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
@@ -96,12 +103,7 @@ spec:
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: shared-config-volume
-      {{- if .Values.global.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-config
-      {{- else }}
+      - name: {{ include "common.name" . }}-config-vol
         emptyDir: {}
-      {{- end }}
       imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 0f0d7c4..07e832b 100644 (file)
@@ -25,7 +25,8 @@ flavor: small
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_fs:2.1.2-SNAPSHOT
+image: onap/aaf/aaf_fs:2.1.7-SNAPSHOT
+aaf_register_as: "aaf-fs.onap"
 pullPolicy: Always
 
 
@@ -76,4 +77,4 @@ resources:
     requests:
       cpu: 100m
       memory: 400Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index 24c8e68..9dd8794 100644 (file)
@@ -31,20 +31,27 @@ spec:
         release: {{ .Release.Name }}
     spec:
       initContainers:
-      - name: {{ include "common.name" . }}-job-complete
-        command:
-        - /root/job_complete.py
-        args:
-        - --job-name
-        - {{ .Release.Name }}-create-config
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+      - name: {{ include "common.name" . }}-config-container
+        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+          - mountPath: "/opt/app/osaaf"
+            name: {{ include "common.name" . }}-config-vol
+        env:
+          - name: HOSTNAME
+            value: "{{ .Values.global.cadi.hostname }}"
+          - name: AAF_ENV
+            value: "{{ .Values.global.cadi.aaf_env }}"
+          - name: AAF_REGISTER_AS
+            value: "{{ .Values.aaf_register_as }}"
+          - name: LATITUDE
+            value: "{{ .Values.global.cadi.cadi_latitude }}"
+          - name: LONGITUDE
+            value: "{{ .Values.global.cadi.cadi_longitude }}"
+          - name: CASS_HOST
+            value: "{{ .Values.global.cadi.cass_host }}"
+          - name: AAF_LOCATOR_AS
+            value: "{{ .Values.global.cadi.cadi_locator_as }}"
       - name: {{ include "common.name" . }}-readiness
         command:
         - /root/ready.py
@@ -61,12 +68,12 @@ spec:
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/bin/gui"]
+        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_gui","sleep","0","cd /opt/app/aaf;bin/gui"]
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: shared-config-volume
+          name: {{ include "common.name" . }}-config-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
@@ -96,12 +103,7 @@ spec:
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: shared-config-volume
-      {{- if .Values.global.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-config
-      {{- else }}
+      - name: {{ include "common.name" . }}-config-vol
         emptyDir: {}
-      {{- end }}
       imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index d44ac5e..dd8162b 100644 (file)
@@ -1,3 +1,4 @@
+
 # Copyright Â© 2017 Amdocs, Bell Canada
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,7 +26,8 @@ flavor: small
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_gui:2.1.2-SNAPSHOT
+image: onap/aaf/aaf_gui:2.1.7-SNAPSHOT
+aaf_register_as: "aaf-gui.onap"
 pullPolicy: Always
 
 
@@ -77,4 +79,4 @@ resources:
     requests:
       cpu: 100m
       memory: 500Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index f932228..c57e57f 100644 (file)
@@ -31,20 +31,27 @@ spec:
         release: {{ .Release.Name }}
     spec:
       initContainers:
-      - name: {{ include "common.name" . }}-job-complete
-        command:
-        - /root/job_complete.py
-        args:
-        - --job-name
-        - {{ .Release.Name }}-create-config
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+      - name: {{ include "common.name" . }}-config-container
+        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+          - mountPath: "/opt/app/osaaf"
+            name: {{ include "common.name" . }}-config-vol
+        env:
+          - name: HOSTNAME
+            value: "{{ .Values.global.cadi.hostname }}"
+          - name: AAF_ENV
+            value: "{{ .Values.global.cadi.aaf_env }}"
+          - name: AAF_REGISTER_AS
+            value: "{{ .Values.aaf_register_as }}"
+          - name: LATITUDE
+            value: "{{ .Values.global.cadi.cadi_latitude }}"
+          - name: LONGITUDE
+            value: "{{ .Values.global.cadi.cadi_longitude }}"
+          - name: CASS_HOST
+            value: "{{ .Values.global.cadi.cass_host }}"
+          - name: AAF_LOCATOR_AS
+            value: "{{ .Values.global.cadi.cadi_locator_as }}"
       - name: {{ include "common.name" . }}-readiness
         command:
         - /root/ready.py
@@ -61,12 +68,12 @@ spec:
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/bin/hello"]
+        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_hello","sleep","0","cd /opt/app/aaf;bin/hello"]
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: shared-config-volume
+          name: {{ include "common.name" . }}-config-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
@@ -96,12 +103,7 @@ spec:
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: shared-config-volume
-      {{- if .Values.global.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-config
-      {{- else }}
+      - name: {{ include "common.name" . }}-config-vol
         emptyDir: {}
-      {{- end }}
       imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 9f694be..fb5914d 100644 (file)
@@ -25,7 +25,8 @@ flavor: small
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_hello:2.1.2-SNAPSHOT
+image: onap/aaf/aaf_hello:2.1.7-SNAPSHOT
+aaf_register_as: "aaf-hello.onap"
 pullPolicy: Always
 
 
@@ -76,4 +77,4 @@ resources:
     requests:
       cpu: 20m
       memory: 500Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index a3a9e28..a2f9f55 100644 (file)
@@ -31,20 +31,27 @@ spec:
         release: {{ .Release.Name }}
     spec:
       initContainers:
-      - name: {{ include "common.name" . }}-job-complete
-        command:
-        - /root/job_complete.py
-        args:
-        - --job-name
-        - {{ .Release.Name }}-create-config
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+      - name: {{ include "common.name" . }}-config-container
+        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+          - mountPath: "/opt/app/osaaf"
+            name: {{ include "common.name" . }}-config-vol
+        env:
+          - name: HOSTNAME
+            value: "{{ .Values.global.cadi.hostname }}"
+          - name: AAF_ENV
+            value: "{{ .Values.global.cadi.aaf_env }}"
+          - name: AAF_REGISTER_AS
+            value: "{{ .Values.aaf_register_as }}"
+          - name: LATITUDE
+            value: "{{ .Values.global.cadi.cadi_latitude }}"
+          - name: LONGITUDE
+            value: "{{ .Values.global.cadi.cadi_longitude }}"
+          - name: CASS_HOST
+            value: "{{ .Values.global.cadi.cass_host }}"
+          - name: AAF_LOCATOR_AS
+            value: "{{ .Values.global.cadi.cadi_locator_as }}"
       - name: {{ include "common.name" . }}-readiness
         command:
         - /root/ready.py
@@ -61,12 +68,12 @@ spec:
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/bin/locate"]
+        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_locate","sleep","0","cd /opt/app/aaf;bin/locate"]
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: shared-config-volume
+          name: {{ include "common.name" . }}-config-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
@@ -96,12 +103,7 @@ spec:
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: shared-config-volume
-      {{- if .Values.global.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-config
-      {{- else }}
+      - name: {{ include "common.name" . }}-config-vol
         emptyDir: {}
-      {{- end }}
       imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index ba1e563..e65d6e3 100644 (file)
@@ -25,7 +25,8 @@ flavor: small
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_locate:2.1.2-SNAPSHOT
+image: onap/aaf/aaf_locate:2.1.7-SNAPSHOT
+aaf_register_as: "aaf-locate.onap"
 pullPolicy: Always
 
 
@@ -76,4 +77,4 @@ resources:
     requests:
       cpu: 40m
       memory: 500Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index 06cf273..f7a34f4 100644 (file)
@@ -31,23 +31,30 @@ spec:
         release: {{ .Release.Name }}
     spec:
       initContainers:
-      - name: {{ include "common.name" . }}-job-complete
-        command:
-        - /root/job_complete.py
-        args:
-        - --job-name
-        - {{ .Release.Name }}-create-config
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+      - name: {{ include "common.name" . }}-config-container
+        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+          - mountPath: "/opt/app/osaaf"
+            name: {{ include "common.name" . }}-config-vol
+        env:
+          - name: HOSTNAME
+            value: "{{ .Values.global.cadi.hostname }}"
+          - name: AAF_ENV
+            value: "{{ .Values.global.cadi.aaf_env }}"
+          - name: AAF_REGISTER_AS
+            value: "{{ .Values.aaf_register_as }}"
+          - name: LATITUDE
+            value: "{{ .Values.global.cadi.cadi_latitude }}"
+          - name: LONGITUDE
+            value: "{{ .Values.global.cadi.cadi_longitude }}"
+          - name: CASS_HOST
+            value: "{{ .Values.global.cadi.cass_host }}"
+          - name: AAF_LOCATOR_AS
+            value: "{{ .Values.global.cadi.cadi_locator_as }}"
       - name: {{ include "common.name" . }}-readiness
         command:
-          - /root/ready.py
+        - /root/ready.py
         args:
         - --container-name
         - aaf-locate
@@ -61,12 +68,12 @@ spec:
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/bin/oauth"]
+        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_oauth","sleep","0","cd /opt/app/aaf;bin/oauth"]
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: shared-config-volume
+          name: {{ include "common.name" . }}-config-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
@@ -96,12 +103,7 @@ spec:
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: shared-config-volume
-      {{- if .Values.global.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-config
-      {{- else }}
+      - name: {{ include "common.name" . }}-config-vol
         emptyDir: {}
-      {{- end }}
       imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index e52075a..99de329 100644 (file)
@@ -25,7 +25,8 @@ flavor: small
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_oauth:2.1.2-SNAPSHOT
+image: onap/aaf/aaf_oauth:2.1.7-SNAPSHOT
+aaf_register_as: "aaf-oauth.onap"
 pullPolicy: Always
 
 
@@ -76,4 +77,4 @@ resources:
     requests:
       cpu: 40m
       memory: 200Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index c3c140a..92d2312 100644 (file)
@@ -31,20 +31,27 @@ spec:
         release: {{ .Release.Name }}
     spec:
       initContainers:
-      - name: {{ include "common.name" . }}-job-complete
-        command:
-        - /root/job_complete.py
-        args:
-        - --job-name
-        - {{ .Release.Name }}-create-config
-        env:
-        - name: NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+      - name: {{ include "common.name" . }}-config-container
+        image: "{{ include "common.repository" . }}/{{ .Values.global.configImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+          - mountPath: "/opt/app/osaaf"
+            name: {{ include "common.name" . }}-config-vol
+        env:
+          - name: HOSTNAME
+            value: "{{ .Values.global.cadi.hostname }}"
+          - name: AAF_ENV
+            value: "{{ .Values.global.cadi.aaf_env }}"
+          - name: AAF_REGISTER_AS
+            value: "{{ .Values.aaf_register_as }}"
+          - name: LATITUDE
+            value: "{{ .Values.global.cadi.cadi_latitude }}"
+          - name: LONGITUDE
+            value: "{{ .Values.global.cadi.cadi_longitude }}"
+          - name: CASS_HOST
+            value: "{{ .Values.global.cadi.cass_host }}"
+          - name: AAF_LOCATOR_AS
+            value: "{{ .Values.global.cadi.cadi_locator_as }}"
       - name: {{ include "common.name" . }}-readiness
         command:
         - /root/ready.py
@@ -61,12 +68,12 @@ spec:
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}
-        command: ["/bin/bash","/opt/app/aaf/bin/service"]
+        command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_service","sleep","0","cd /opt/app/aaf;bin/service"]
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: "/opt/app/osaaf"
-          name: shared-config-volume
+          name: {{ include "common.name" . }}-config-vol
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
@@ -96,12 +103,7 @@ spec:
       - name: localtime
         hostPath:
           path: /etc/localtime
-      - name: shared-config-volume
-      {{- if .Values.global.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-config
-      {{- else }}
+      - name: {{ include "common.name" . }}-config-vol
         emptyDir: {}
-      {{- end }}
       imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 7ec6364..a3f1545 100644 (file)
@@ -25,7 +25,8 @@ flavor: small
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/aaf_service:2.1.2-SNAPSHOT
+image: onap/aaf/aaf_service:2.1.7-SNAPSHOT
+aaf_register_as: "aaf-service.onap"
 pullPolicy: Always
 
 
@@ -77,4 +78,4 @@ resources:
     requests:
       cpu: 40m
       memory: 300Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index d6ac1cb..7cd5938 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/smsquorumclient:latest
+image: onap/aaf/smsquorumclient:3.0.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -72,4 +72,4 @@ resources:
     requests:
       cpu: 10m
       memory: 100Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-sms/resources/config/has.json b/kubernetes/aaf/charts/aaf-sms/resources/config/has.json
new file mode 100644 (file)
index 0000000..4f48771
--- /dev/null
@@ -0,0 +1,44 @@
+{
+    "domain": {
+        "name": "has",
+        "secrets": [
+            {
+                "name": "aai",
+                "values": {
+                    "username": "oof@oof.onap.org",
+                    "password": "demo123456!"
+                }
+            },
+            {
+                "name": "conductor_api",
+                "values": {
+                    "username": "admin1",
+                    "password": "plan.15"
+                }
+            },
+            {
+                "name": "sdnc",
+                "values": {
+                    "username": "admin",
+                    "password": "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"
+                }
+            },
+            {
+                "name": "music_api",
+                "values": {
+                    "aafuser": "conductor",
+                    "aafpass": "c0nduct0r",
+                    "aafns": "conductor"
+                }
+            },
+            {
+                "name": "aaf_api",
+                "values": {
+                    "username": "aaf_admin@people.osaaf.org",
+                    "password": "demo123456!",
+                    "aaf_conductor_user": "oof@oof.onap.org"
+                }
+            }
+        ]
+    }
+}
diff --git a/kubernetes/aaf/charts/aaf-sms/resources/config/osdf.json b/kubernetes/aaf/charts/aaf-sms/resources/config/osdf.json
new file mode 100644 (file)
index 0000000..0950957
--- /dev/null
@@ -0,0 +1,98 @@
+{
+    "domain": {
+        "name": "osdf",
+        "secrets": [
+            {
+                "name": "so",
+                "values": {
+                    "UserName": "",
+                    "Password": ""
+                }
+            },
+            {
+                "name": "conductor",
+                "values": {
+                    "UserName": "admin1",
+                    "Password": "plan.15"
+                }
+            },
+            {
+                "name": "policyPlatform",
+                "values": {
+                    "UserName": "testpdp",
+                    "Password": "alpha123"
+                }
+            },
+            {
+                "name": "policyClient",
+                "values": {
+                    "UserName": "python",
+                    "Password": "test"
+                }
+            },
+            {
+                "name": "dmaap",
+                "values": {
+                    "UserName": "NA",
+                    "Password": "NA"
+                }
+            },
+            {
+                "name": "sdc",
+                "values": {
+                    "UserName": "NA",
+                    "Password": "NA"
+                }
+            },
+            {
+                "name": "osdfPlacement",
+                "values": {
+                    "UserName": "test",
+                    "Password": "testpwd"
+                }
+            },
+            {
+                "name": "osdfPlacementSO",
+                "values": {
+                    "UserName": "so_test",
+                    "Password": "so_testpwd"
+                }
+            },
+            {
+                "name": "osdfPlacementVFC",
+                "values": {
+                    "UserName": "vfc_test",
+                    "Password": "vfc_testpwd"
+                }
+            },
+            {
+                "name": "osdfCMScheduler",
+                "values": {
+                    "UserName": "test1",
+                    "Password": "testpwd1"
+                }
+            },
+            {
+                "name": "configDb",
+                "values": {
+                    "UserName": "osdf",
+                    "Password": "passwd"
+                }
+            },
+            {
+                "name": "pciHMS",
+                "values": {
+                    "UserName": "",
+                    "Password": ""
+                }
+            },
+            {
+                "name": "osdfPCIOpt",
+                "values": {
+                    "UserName": "pci_test",
+                    "Password": "pci_testpwd"
+                }
+            }
+        ]
+    }
+}
\ No newline at end of file
index 72ce6fb..b513d99 100644 (file)
@@ -1,3 +1,4 @@
+{{/*
 # Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -11,6 +12,7 @@
 # WITHOUT 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
@@ -25,3 +27,16 @@ metadata:
 data:
   smsconfig.json: |
     {{ .Values.config | toJson }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-preload
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}-preload
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/aaf/charts/aaf-sms/templates/job.yaml b/kubernetes/aaf/charts/aaf-sms/templates/job.yaml
new file mode 100644 (file)
index 0000000..2cee8d5
--- /dev/null
@@ -0,0 +1,92 @@
+{{/*
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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: batch/v1
+kind: Job
+metadata:
+  name: {{ include "common.fullname" . }}-preload
+  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:
+      - image:  "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-readiness
+        command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - "aaf-sms"
+        - --container-name
+        - "aaf-sms-quorumclient"
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+      containers:
+      - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-preload
+        command:
+          - "/sms/bin/preload"
+          - "-cacert"
+          - "/sms/certs/aaf_root_ca.cer"
+          - "-jsondir"
+          - "/preload/config"
+          - "-serviceport"
+          - "{{ .Values.service.internalPort }}"
+          - "-serviceurl"
+          - "https://aaf-sms.{{ include "common.namespace" . }}"
+        workingDir: /sms
+        volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /preload/config
+            name: {{ include "common.name" . }}-preload
+        resources:
+{{ include "common.resources" . | indent 10 }}
+        {{- 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.name" . }}-preload
+        configMap:
+          name: {{ include "common.fullname" . }}-preload
+      restartPolicy: OnFailure
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 7a25581..8e7ea29 100644 (file)
@@ -28,7 +28,7 @@ flavor: small
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aaf/sms:latest
+image: onap/aaf/sms:3.0.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -100,4 +100,4 @@ resources:
     requests:
       cpu: 10m
       memory: 100Mi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: OOF-HAS Cassandra
-name: oof-has-cassandra
+description: ONAP Hardware Security Components
+name: aaf-sshsm
 version: 3.0.0
diff --git a/kubernetes/aaf/charts/aaf-sshsm/README.md b/kubernetes/aaf/charts/aaf-sshsm/README.md
new file mode 100644 (file)
index 0000000..a6f2e62
--- /dev/null
@@ -0,0 +1,24 @@
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Helm Chart for ONAP Hardware Security Components
+
+This includes the following Kubernetes services:
+
+1. dist-center - A service that is used to create and distribute private keys
+2. abrmd - A service that manages access to the TPM device
+
+# Service Dependencies
+
+All services depend on AAF
\ No newline at end of file
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: ONAP OOF Zookeeper
-name: oof-has-zookeeper
+description: ONAP Trusted Platform Module Resource Manager
+name: aaf-sshsm-abrmd
 version: 3.0.0
@@ -1,5 +1,5 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+{{/*
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # WITHOUT 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.global.tpm.enabled .Values.global.abrmd.enabled -}}
 
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ include "common.fullname" . }}-docker-entry-initd
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -24,5 +27,6 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 data:
-{{ tpl (.Files.Glob "resources/config/cassandra/docker-entrypoint-initdb.d/*").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
 
+{{- end -}}
\ No newline at end of file
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/templates/job.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/templates/job.yaml
new file mode 100644 (file)
index 0000000..8b2e0b8
--- /dev/null
@@ -0,0 +1,87 @@
+{{/*
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.global.tpm.enabled .Values.global.abrmd.enabled -}}
+
+apiVersion: batch/v1
+kind: Job
+metadata:
+  name: {{ include "common.fullname" . }}-init
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}-job
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  backoffLimit: 2
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}-job
+        release: {{ .Release.Name }}
+    spec:
+      restartPolicy: Never
+      containers:
+      - name: {{ include "common.name" . }}-job
+        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        command: ["/abrmd/bin/initialize_tpm.sh"]
+        workingDir: /abrmd/bin
+        securityContext:
+          privileged: true
+        env:
+        - name: TPM_NODE_NAME
+          valueFrom:
+            fieldRef:
+              fieldPath: spec.nodeName
+        - name: ABRMD_DATA
+          value: /abrmd/data
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-data
+          mountPath: /abrmd/data
+        - name: {{ include "common.fullname" . }}-tpm-device
+          mountPath: /dev/tpm0
+        - name: {{ include "common.fullname" . }}-tpmconfig
+          mountPath: "/abrmd/cred/"
+          readOnly: true
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      nodeSelector:
+        {{- if .Values.nodeSelector }}
+{{ toYaml .Values.nodeSelector | indent 8 }}
+        {{- end -}}
+        {{- if .Values.global.tpm.enabled }}
+        {{ (printf "%s: \"%s\"" .Values.global.tpm.nodeLabel .Values.global.tpm.nodeLabelValue) }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+        {{- end }}
+      volumes:
+      - name: {{ include "common.fullname" . }}-data
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-sshsm-data
+      - name: {{ include "common.fullname" . }}-tpm-device
+        hostPath:
+          path: /dev/tpm0
+      - name: {{ include "common.fullname" . }}-tpmconfig
+        secret:
+          secretName: {{ .Release.Name }}-aaf-sshsm
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
+
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/templates/statefulset.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/templates/statefulset.yaml
new file mode 100644 (file)
index 0000000..a3a2004
--- /dev/null
@@ -0,0 +1,93 @@
+{{/*
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.global.tpm.enabled .Values.global.abrmd.enabled -}}
+
+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:
+  replicas: {{ .Values.replicaCount }}
+  serviceName:
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+      - image:  "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-job-complete
+        command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ include "common.fullname" . }}-init"
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+      containers:
+      - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        name: {{ include "common.name" . }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        command: ["/abrmd/bin/run_abrmd.sh"]
+        workingDir: /abrmd/bin
+        securityContext:
+          privileged: true
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-dbus
+          mountPath: /var/run/dbus
+        - name: {{ include "common.fullname" . }}-tpm-device
+          mountPath: /dev/tpm0
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      nodeSelector:
+        {{- if .Values.nodeSelector }}
+{{ toYaml .Values.nodeSelector | indent 8 }}
+        {{- end -}}
+        {{- if .Values.global.tpm.enabled }}
+        {{ (printf "%s: \"%s\"" .Values.global.tpm.nodeLabel .Values.global.tpm.nodeLabelValue) }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+        {{- end }}
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: {{ include "common.fullname" . }}-dbus
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-sshsm-dbus
+      - name: {{ include "common.fullname" . }}-tpm-device
+        hostPath:
+          path: /dev/tpm0
+
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/values.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-abrmd/values.yaml
new file mode 100644 (file)
index 0000000..bf64c6d
--- /dev/null
@@ -0,0 +1,60 @@
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.
+#################################################################
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/aaf/abrmd:3.0.0
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+# Example:
+# default number of instances
+replicaCount: 1
+
+# TPM specific node selection is done at parent chart aaf-sshsm
+nodeSelector: {}
+
+affinity: {}
+
+ingress:
+  enabled: false
+
+# Configure resource requests and limits
+flavor: small
+resources:
+  small:
+    limits:
+      cpu: 200m
+      memory: 500Mi
+    requests:
+      cpu: 10m
+      memory: 10Mi
+  large:
+    limits:
+      cpu: 400m
+      memory: 1Gi
+    requests:
+      cpu: 10m
+      memory: 100Mi
+  unlimited: {}
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: ONAP OOF-MUSIC Container
-name: oof-has-music
-version: 2.5.3
+description: ONAP Trusted Platform Module Distribution Center
+name: aaf-sshsm-distcenter
+version: 3.0.0
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/configmap.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..ea0ea60
--- /dev/null
@@ -0,0 +1,32 @@
+{{/*
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 .Values.global.distcenter.enabled -}}
+
+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:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+
+{{- end -}}
\ No newline at end of file
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/job.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/templates/job.yaml
new file mode 100644 (file)
index 0000000..69a9956
--- /dev/null
@@ -0,0 +1,105 @@
+{{/*
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 .Values.global.distcenter.enabled -}}
+
+apiVersion: batch/v1
+kind: Job
+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 }}
+  serviceName:
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      restartPolicy: Never
+      initContainers:
+{{- if .Values.global.tpm.enabled }}
+      - image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-readiness
+        command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-aaf-sshsm-abrmd-init"
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+{{ else }}
+      - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-gen-passphrase
+        command: ["sh", "-c", "/usr/bin/openssl rand -base64 12 >/distcenter/data/passphrase"]
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - name: {{ include "common.fullname" . }}-data
+          mountPath: /distcenter/data
+{{- end }}
+      containers:
+      - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        name: {{ include "common.name" . }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        command: ["/entrypoint.sh"]
+        workingDir: /distcenter
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - name: {{ include "common.fullname" . }}-data
+          mountPath: /distcenter/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: {{ include "common.fullname" . }}-data
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-sshsm-data
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
+
+{{- end -}}
\ No newline at end of file
@@ -1,6 +1,5 @@
 {{/*
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,6 +14,8 @@
 # limitations under the License.
 */}}
 
+{{- if .Values.global.distcenter.enabled -}}
+
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
 kind: PersistentVolume
 apiVersion: v1
@@ -36,3 +37,5 @@ spec:
   hostPath:
     path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
 {{- end -}}
+
+{{- end -}}
\ No newline at end of file
@@ -1,6 +1,5 @@
 {{/*
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,6 +14,8 @@
 # limitations under the License.
 */}}
 
+{{- if .Values.global.distcenter.enabled -}}
+
 {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
 kind: PersistentVolumeClaim
 apiVersion: v1
@@ -47,3 +48,4 @@ spec:
 {{- end }}
 {{- end }}
 {{- end -}}
+{{- end -}}
\ No newline at end of file
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/values.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-distcenter/values.yaml
new file mode 100644 (file)
index 0000000..3993cfc
--- /dev/null
@@ -0,0 +1,69 @@
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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:
+  persistence: {}
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/aaf/distcenter:3.0.0
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+# Example:
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+persistence:
+  enabled: true
+  volumeReclaimPolicy: Retain
+  accessMode: ReadWriteOnce
+  size: 10Mi
+  mountPath: /dockerdata-nfs
+  mountSubPath: sshsm/distcenter/data
+
+ingress:
+  enabled: false
+
+# Configure resource requests and limits
+flavor: small
+resources:
+  small:
+    limits:
+      cpu: 200m
+      memory: 500Mi
+    requests:
+      cpu: 10m
+      memory: 10Mi
+  large:
+    limits:
+      cpu: 400m
+      memory: 1Gi
+    requests:
+      cpu: 10m
+      memory: 100Mi
+  unlimited: {}
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/Chart.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/Chart.yaml
new file mode 100644 (file)
index 0000000..3855b04
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 Trusted Platform Module Test CA Service
+name: aaf-sshsm-testca
+version: 3.0.0
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/templates/job.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/templates/job.yaml
new file mode 100644 (file)
index 0000000..304f974
--- /dev/null
@@ -0,0 +1,130 @@
+{{/*
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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 .Values.global.testca.enabled -}}
+
+apiVersion: batch/v1
+kind: Job
+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 }}
+  serviceName:
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      restartPolicy: Never
+      initContainers:
+      - image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-distcenter-ready
+        command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-aaf-sshsm-distcenter"
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+{{- if .Values.global.tpm.enabled }}
+      - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-abrmd-ready
+        command: ["sh", "/sshsm/bin/abrmd_ready.sh", "300"]
+        workingDir: /testca/bin
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-dbus
+          mountPath: /var/run/dbus
+{{- end }}
+      containers:
+      - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        name: {{ include "common.name" . }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        command: ["./import.sh"]
+        workingDir: /testca/bin
+        env:
+{{- if .Values.global.tpm.enabled }}
+        - name: TPM_NODE_NAME
+          valueFrom:
+            fieldRef:
+              fieldPath: spec.nodeName
+        - name: DATA_FOLDER
+          value: /testca/data/host_$(TPM_NODE_NAME)
+{{ else }}
+        - name: DATA_FOLDER
+          value: /testca/data
+{{- end }}
+        - name: SECRETS_FOLDER
+          value: /testca/secrets
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - name: {{ include "common.fullname" . }}-data
+          mountPath: /testca/data
+        - name: {{ include "common.fullname" . }}-dbus
+          mountPath: /var/run/dbus
+        - name: {{ include "common.fullname" . }}-secrets
+          mountPath: /testca/secrets
+          readOnly: true
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      nodeSelector:
+        {{- if .Values.nodeSelector }}
+{{ toYaml .Values.nodeSelector | indent 8 }}
+        {{- end -}}
+        {{- if .Values.global.tpm.enabled }}
+        {{ (printf "%s: \"%s\"" .Values.global.tpm.nodeLabel .Values.global.tpm.nodeLabelValue) }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+        {{- end }}
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: {{ include "common.fullname" . }}-data
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-sshsm-data
+      - name: {{ include "common.fullname" . }}-dbus
+        persistentVolumeClaim:
+          claimName: {{ .Release.Name }}-aaf-sshsm-dbus
+      - name: {{ include "common.fullname" . }}-secrets
+        secret:
+          secretName: {{ .Release.Name }}-aaf-sshsm
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
+
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/values.yaml b/kubernetes/aaf/charts/aaf-sshsm/charts/aaf-sshsm-testca/values.yaml
new file mode 100644 (file)
index 0000000..3fd53d2
--- /dev/null
@@ -0,0 +1,61 @@
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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.
+#################################################################
+
+enabled: true
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/aaf/testcaservice:3.0.0
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+# Example:
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+ingress:
+  enabled: false
+
+# Configure resource requests and limits
+flavor: small
+resources:
+  small:
+    limits:
+      cpu: 200m
+      memory: 500Mi
+    requests:
+      cpu: 10m
+      memory: 10Mi
+  large:
+    limits:
+      cpu: 400m
+      memory: 1Gi
+    requests:
+      cpu: 10m
+      memory: 100Mi
+  unlimited: {}
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/kubernetes/aaf/charts/aaf-sshsm/resources/config/prk_passwd b/kubernetes/aaf/charts/aaf-sshsm/resources/config/prk_passwd
new file mode 100644 (file)
index 0000000..640b325
--- /dev/null
@@ -0,0 +1 @@
+cHJpbWFyeXBhc3N3b3JkCg==
diff --git a/kubernetes/aaf/charts/aaf-sshsm/resources/config/srk_handle b/kubernetes/aaf/charts/aaf-sshsm/resources/config/srk_handle
new file mode 100644 (file)
index 0000000..b8b9d8d
--- /dev/null
@@ -0,0 +1 @@
+MHg4MTAwMDAyMwo=
similarity index 50%
rename from kubernetes/aaf/templates/pv.yaml
rename to kubernetes/aaf/charts/aaf-sshsm/templates/pv.yaml
index 9d28184..b4d283f 100644 (file)
@@ -1,5 +1,5 @@
 {{/*
-# Copyright Â© 2017 Amdocs, Bell Canada
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # limitations under the License.
 */}}
 
-{{- if and .Values.global.persistence.enabled (not .Values.persistence.config.existingClaim) }}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ .Release.Name }}-config
+  name: {{ include "common.fullname" . }}-data
   namespace: {{ include "common.namespace" . }}
   labels:
-    app: {{ include "common.name" . }}-config
+    app: {{ include "common.name" . }}
     chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
     release: "{{ .Release.Name }}"
     heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
+    name: {{ include "common.fullname" . }}-data
 spec:
   capacity:
-    storage: {{ .Values.persistence.config.size}}
+    storage: {{ .Values.persistence.size}}
   accessModes:
-    - {{ .Values.persistence.config.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.config.volumeReclaimPolicy }}
+    - {{ .Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.config.mountSubPath }}
-{{- if .Values.persistence.config.storageClass }}
-{{- if (eq "-" .Values.persistence.config.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.config.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end }}
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.dataMountSubPath }}
 ---
-{{- if and .Values.global.persistence.enabled (not .Values.persistence.logs.existingClaim) }}
 kind: PersistentVolume
 apiVersion: v1
 metadata:
-  name: {{ .Release.Name }}-logs
+  name: {{ include "common.fullname" . }}-dbus
   namespace: {{ include "common.namespace" . }}
   labels:
-    app: {{ include "common.name" . }}-logs
+    app: {{ include "common.name" . }}
     chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
     release: "{{ .Release.Name }}"
     heritage: "{{ .Release.Service }}"
-    name: {{ include "common.fullname" . }}
+    name: {{ include "common.fullname" . }}-dbus
 spec:
   capacity:
-    storage: {{ .Values.persistence.logs.size}}
+    storage: {{ .Values.persistence.size}}
   accessModes:
-    - {{ .Values.persistence.logs.accessMode }}
-  persistentVolumeReclaimPolicy: {{ .Values.persistence.logs.volumeReclaimPolicy }}
+    - {{ .Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
   hostPath:
-    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.logs.mountSubPath }}
-{{- if .Values.persistence.logs.storageClass }}
-{{- if (eq "-" .Values.persistence.logs.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.logs.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end }}
\ No newline at end of file
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.dbusMountSubPath }}
+{{- end -}}
similarity index 51%
rename from kubernetes/aaf/templates/pvc.yaml
rename to kubernetes/aaf/charts/aaf-sshsm/templates/pvc.yaml
index a9c8b90..c50a0bc 100644 (file)
@@ -1,5 +1,5 @@
 {{/*
-# Copyright Â© 2017 Amdocs, Bell Canada
+# Copyright 2018 Intel Corporation, Inc
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # limitations under the License.
 */}}
 
-{{- if and .Values.global.persistence.enabled (not .Values.persistence.config.existingClaim) }}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
 kind: PersistentVolumeClaim
 apiVersion: v1
 metadata:
-  name: {{ .Release.Name }}-config
+  name: {{ include "common.fullname" . }}-data
   namespace: {{ include "common.namespace" . }}
   labels:
-    app: {{ include "common.name" . }}-config
+    app: {{ include "common.name" . }}
     chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
     release: "{{ .Release.Name }}"
     heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.config.annotations }}
+{{- if .Values.persistence.annotations }}
   annotations:
-{{ toYaml .Values.persistence.config.annotations | indent 4 }}
+{{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
   selector:
     matchLabels:
-      app: {{ include "common.name" . }}-config
+      name: {{ include "common.fullname" . }}-data
   accessModes:
-    - {{ .Values.persistence.config.accessMode }}
+    - {{ .Values.persistence.accessMode }}
   resources:
     requests:
-      storage: {{ .Values.persistence.config.size }}
-{{- if .Values.persistence.config.storageClass }}
-{{- if (eq "-" .Values.persistence.config.storageClass) }}
+      storage: {{ .Values.persistence.size }}
+{{- if .Values.persistence.storageClass }}
+{{- if (eq "-" .Values.persistence.storageClass) }}
   storageClassName: ""
 {{- else }}
-  storageClassName: "{{ .Values.persistence.config.storageClass }}"
-{{- end }}
+  storageClassName: "{{ .Values.persistence.storageClass }}"
 {{- end }}
 {{- end }}
 ---
-{{- if and .Values.global.persistence.enabled (not .Values.persistence.logs.existingClaim) }}
 kind: PersistentVolumeClaim
 apiVersion: v1
 metadata:
-  name: {{ .Release.Name }}-logs
+  name: {{ include "common.fullname" . }}-dbus
   namespace: {{ include "common.namespace" . }}
   labels:
-    app: {{ include "common.name" . }}-logs
+    app: {{ include "common.name" . }}
     chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
     release: "{{ .Release.Name }}"
     heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.logs.annotations }}
+{{- if .Values.persistence.annotations }}
   annotations:
-{{ toYaml .Values.persistence.logs.annotations | indent 4 }}
+{{ toYaml .Values.persistence.annotations | indent 4 }}
 {{- end }}
 spec:
   selector:
     matchLabels:
-      app: {{ include "common.name" . }}-logs
+      name: {{ include "common.fullname" . }}-dbus
   accessModes:
-    - {{ .Values.persistence.logs.accessMode }}
+    - {{ .Values.persistence.accessMode }}
   resources:
     requests:
-      storage: {{ .Values.persistence.logs.size }}
-{{- if .Values.persistence.logs.storageClass }}
-{{- if (eq "-" .Values.persistence.logs.storageClass) }}
+      storage: {{ .Values.persistence.size }}
+{{- if .Values.persistence.storageClass }}
+{{- if (eq "-" .Values.persistence.storageClass) }}
   storageClassName: ""
 {{- else }}
-  storageClassName: "{{ .Values.persistence.logs.storageClass }}"
+  storageClassName: "{{ .Values.persistence.storageClass }}"
 {{- end }}
 {{- end }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sshsm/templates/secret.yaml b/kubernetes/aaf/charts/aaf-sshsm/templates/secret.yaml
new file mode 100644 (file)
index 0000000..50b6f36
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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" . }}
+type: Opaque
+data:
+{{ (.Files.Glob "resources/config/*").AsSecrets | indent 2 }}
\ No newline at end of file
diff --git a/kubernetes/aaf/charts/aaf-sshsm/values.yaml b/kubernetes/aaf/charts/aaf-sshsm/values.yaml
new file mode 100644 (file)
index 0000000..d068846
--- /dev/null
@@ -0,0 +1,65 @@
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+  ubuntuInitRepository: oomk8s
+  ubuntuInitImage: ubuntu-init:1.0.0
+  tpm:
+    enabled: false
+    # if enabled, nodeselector will use the below
+    # values in the nodeselector section of the pod
+    nodeLabel: "tpm-node"
+    nodeLabelValue: "true"
+  abrmd:
+    enabled: true
+  distcenter:
+    enabled: true
+  testca:
+    enabled: true
+  persistence: {}
+
+persistence:
+  enabled: true
+  volumeReclaimPolicy: Retain
+  accessMode: ReadWriteOnce
+  size: 10Mi
+  mountPath: /dockerdata-nfs
+  dataMountSubPath: sshsm/data
+  dbusMountSubPath: sshsm/dbus
+
+# Configure resource requests and limits
+resources:
+  small:
+    limits:
+      cpu: 200m
+      memory: 500Mi
+    requests:
+      cpu: 10m
+      memory: 10Mi
+  large:
+    limits:
+      cpu: 400m
+      memory: 1Gi
+    requests:
+      cpu: 10m
+      memory: 100Mi
+  unlimited: {}
\ No newline at end of file
diff --git a/kubernetes/aaf/templates/job.yaml b/kubernetes/aaf/templates/job.yaml
deleted file mode 100644 (file)
index 103b908..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-# 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: batch/v1
-kind: Job
-metadata:
-  name: {{ .Release.Name }}-create-config
-  namespace: {{ include "common.namespace" . }}
-  labels:
-    app: {{ include "common.name" . }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  template:
-    metadata:
-      labels:
-        app: aaf-init-job
-        release: {{ .Release.Name }}
-    spec:
-      containers:
-      - name: {{ include "common.name" . }}-config-container
-        image: "{{ include "common.repository" . }}/{{ .Values.aaf_config.image }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        volumeMounts:
-        - mountPath: "/opt/app/osaaf"
-          name: {{ include "common.name" . }}-config-vol
-        env:
-          - name: HOSTNAME
-            value: "{{ .Values.global.cadi.hostname }}"
-          - name: AAF_ENV
-            value: "{{ .Values.global.cadi.aaf_env }}"
-          - name: AAF_REGISTER_AS
-            value: "{{ .Values.global.cadi.aaf_register_as }}"
-          - name: LATITUDE
-            value: "{{ .Values.global.cadi.cadi_latitude }}"
-          - name: LONGITUDE
-            value: "{{ .Values.global.cadi.cadi_longitude }}"
-          - name: CASS_HOST
-            value: "{{ .Values.global.cassandraServiceName }}"
-          - name: AAF_LOCATOR_AS
-            value: "{{ .Values.global.locateServiceName }}"
-        resources:
-{{ include "common.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: {{ include "common.name" . }}-config-vol
-      {{- if .Values.global.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ .Release.Name }}-config
-      {{- else }}
-        emptyDir: {}
-      {{- end }}
-      restartPolicy: OnFailure
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 4cc69c2..ea0827f 100644 (file)
@@ -21,6 +21,7 @@ global:
   readinessImage: readiness-check:2.0.0
   ubuntuInitRepository: registry.hub.docker.com
   ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
+  configImage: onap/aaf/aaf_config:2.1.7-SNAPSHOT
   persistence:
     enabled: true
 
@@ -29,16 +30,13 @@ global:
     cadi_latitude: "38.0"
     cadi_longitude: "-72.0"
     aaf_env: "DEV"
-    aaf_register_as: "aaf.onap"
-  cassandraServiceName: aaf-cass
-  locateServiceName: aaf-locate
+    cass_host: "aaf-cass.onap"
+    cadi_locator_as: "aaf-locate.onap"
 
 #################################################################
 # Application configuration defaults.
 #################################################################
 repository: nexus3.onap.org:10001
-aaf_config:
-  image: onap/aaf/aaf_config:2.1.2-SNAPSHOT
 
 flavor: small
 # default number of instances
@@ -92,4 +90,4 @@ aaf-cs:
     size: 10Gi
     storageClass: "manual"
 
-resources: {}
\ No newline at end of file
+resources: {}
index 59c3366..8e55d49 100644 (file)
@@ -25,7 +25,7 @@ global:
 #################################################################
 
 # application image
-image: onap/babel:1.3-STAGING-latest
+image: onap/babel:1.3.0
 
 flavor: small
 
index 891526b..4a8ae39 100644 (file)
@@ -125,4 +125,7 @@ spec:
         resources:
           requests:
             storage: {{ .Values.persistence.size | quote }}
+        selector:
+          matchLabels:
+            release: "{{ .Release.Name }}"
   {{- end }}
index 1fbd913..67f6ac3 100644 (file)
@@ -143,27 +143,12 @@ limitations under the License.
   <logger name="org.springframework.web" level="WARN" />
   <logger name="com.blog.spring.jms" level="WARN" />
 
-  <!-- AJSC Services (bootstrap services) -->
-  <logger name="ajsc" level="WARN" />
-  <logger name="ajsc.RouteMgmtService" level="WARN" />
-  <logger name="ajsc.ComputeService" level="WARN" />
-  <logger name="ajsc.VandelayService" level="WARN" />
-  <logger name="ajsc.FilePersistenceService" level="WARN" />
-  <logger name="ajsc.UserDefinedJarService" level="WARN" />
-  <logger name="ajsc.UserDefinedBeansDefService" level="WARN" />
-  <logger name="ajsc.LoggingConfigurationService" level="WARN" />
-
-  <!-- AJSC related loggers -->
-  <logger name="ajsc.restlet" level="WARN" />
-  <logger name="ajsc.servlet" level="WARN" />
-
   <!-- General loggers -->
-  <logger name="com.att" level="INFO" />
-  <logger name="org.onap" level="INFO" />
-  <logger name="org.openecomp" level="INFO" />
+  <logger name="org.onap" level="WARN" />
 
   <!-- Other Loggers that may help troubleshoot -->
   <logger name="net.sf" level="WARN" />
+  <logger name="org.apache" level="WARN" />
   <logger name="org.apache.commons.httpclient" level="WARN" />
   <logger name="org.apache.commons" level="WARN" />
   <logger name="org.apache.coyote" level="WARN" />
@@ -188,4 +173,4 @@ limitations under the License.
     <!-- <appender-ref ref="asyncEELFDebug" /> -->
   </root>
 
-</configuration>
+</configuration>
\ No newline at end of file
index 0c125b1..4e1866c 100644 (file)
@@ -31,6 +31,21 @@ spec:
         app: {{ include "common.name" . }}
         release: {{ .Release.Name }}
     spec:
+      initContainers:
+        - command:
+          - /root/ready.py
+          args:
+          - --container-name
+          - aai-cassandra
+          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: "{{ include "common.repository" . }}/{{ .Values.image }}"
index 9e1c9bd..c247313 100644 (file)
@@ -25,7 +25,7 @@ global:
 #################################################################
 
 # application image
-image: onap/champ:1.3-STAGING-latest
+image: onap/champ:1.3.0
 
 flavor: small
 
@@ -57,6 +57,7 @@ service:
   type: NodePort
   portName: aai-champ
   internalPort: 9522
+  externalPort: 9522
   nodePort: 78
 
 ingress:
index c1fa49f..64a0fe1 100644 (file)
@@ -21,7 +21,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/data-router:1.3-STAGING-latest
+image: onap/data-router:1.3.0
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
index 24cdb92..586d64f 100644 (file)
@@ -39,6 +39,7 @@ spec:
         - /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
index dbf4fca..7a4979a 100644 (file)
Binary files a/kubernetes/aai/charts/aai-gizmo/resources/fproxy/config/auth/client-cert.p12 and b/kubernetes/aai/charts/aai-gizmo/resources/fproxy/config/auth/client-cert.p12 differ
index 1b36fa7..0def4ed 100644 (file)
@@ -27,7 +27,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "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 }}
index ac34ed9..a584800 100644 (file)
@@ -29,8 +29,9 @@ spec:
   ports:
   {{ if .Values.global.installSidecarSecurity }}
       {{if eq .Values.service.type "NodePort" -}}
-      - port: {{ .Values.global.rproxy.port }}
+      - port: {{ .Values.service.internalPort }}
         nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+        targetPort: {{ .Values.global.rproxy.port }}
         name: {{ .Values.service.portName }}
       {{- else -}}
       - port: {{ .Values.service.externalPort }}
index 6ad25c5..7220cd5 100644 (file)
@@ -23,7 +23,7 @@ global:
 #################################################################
 
 # application image
-image: onap/gizmo:1.3-STAGING-latest
+image: onap/gizmo:1.3.0
 flavor: small
 # application configuration
 config:
@@ -54,6 +54,7 @@ service:
   name: aai-crud-service
   portName: aai-crud-service
   internalPort: 9520
+  externalPort: 9520
   nodePort: 68
 
 ingress:
index 7557247..81a9c7b 100644 (file)
@@ -55,6 +55,7 @@ server.ssl.key-store-type=JKS
 # JMS bind address host port
 jms.bind.address=tcp://localhost:61649
 dmaap.ribbon.listOfServers=message-router.{{.Release.Namespace}}:3905
+dmaap.ribbon.transportType=https
 
 # Schema related attributes for the oxm and edges
 # Any additional schema related attributes should start with prefix schema
index fb2ee00..cdcf2b1 100644 (file)
@@ -68,7 +68,7 @@ spec:
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
       containers:
-      - name: {{ include "common.name" . }}
+      - name: {{ include "common.name" . }}-job
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
index b7af3d0..b1fd98e 100644 (file)
@@ -28,7 +28,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aai-graphadmin:1.0-STAGING-latest
+image: onap/aai-graphadmin:1.0.0
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
index 1617fc0..a2b64f2 100644 (file)
@@ -21,7 +21,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/model-loader:1.3-STAGING-latest
+image: onap/model-loader:1.3.0
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
diff --git a/kubernetes/aai/charts/aai-resources/resources/config/aaf/bath_config.csv b/kubernetes/aai/charts/aai-resources/resources/config/aaf/bath_config.csv
new file mode 100644 (file)
index 0000000..b926dfd
--- /dev/null
@@ -0,0 +1,33 @@
+# AAI -> aai@aai.onap.org
+Basic QUFJOkFBSQ==,Basic YWFpQGFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# ModelLoader -> aai@aai.onap.org
+Basic TW9kZWxMb2FkZXI6TW9kZWxMb2FkZXI=,Basic YWFpQGFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# AaiUI -> aai@aai.onap.org,
+Basic QWFpVUk6QWFpVUk=,Basic YWFpQGFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# MSO -> so@so.onap.org
+Basic TVNPOk1TTw==,Basic c29Ac28ub25hcC5vcmc6ZGVtbzEyMzQ1NiE=,2050-03-03
+
+# SDNC -> sdnc@sdnc.onap.org
+Basic U0ROQzpTRE5D,Basic c2RuY0BzZG5jLm9uYXAub3JnOmRlbW8xMjM0NTYh,2050-03-03
+
+# DCAE -> dcae@dcae.onap.org
+Basic RENBRTpEQ0FF,Basic ZGNhZUBkY2FlLm9uYXAub3JnOmRlbW8xMjMzNDU2IQ==,2050-03-03
+
+# POLICY -> policy@policy.onap.org
+Basic UE9MSUNZOlBPTElDWQ==,Basic cG9saWN5QHBvbGljeS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# ASDC -> sdc@sdc.onap.org
+Basic QVNEQzpBU0RD,Basic c2RjQHNkYy5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# VID -> vid@vid.onap.org
+Basic VklEOlZJRA==,Basic dmlkQHZpZC5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# APPC -> appc@appc.onap.org
+Basic QVBQQzpBUFBD,Basic YXBwY0BhcHBjLm9uYXAub3JnOmRlbW8xMjM0NTYh,2050-03-03
+
+# OOF -> oof@oof.onap.org
+Basic T09GOk9PRg==,Basic b29mQG9vZi5vbmFwLm9yZzpkZW1vMTIzNDQ2IQ==,2050-03-03
+
index 906f170..78e4e71 100644 (file)
@@ -10,4 +10,5 @@ cadi_keystore_password=enc:383RDJRFA6yQz9AOxUxC1iIg3xTJXityw05MswnpnEtelRQy2D4r5
 cadi_alias=aai@aai.onap.org
 cadi_truststore=/opt/app/aai-resources/resources/aaf/truststoreONAPall.jks
 cadi_truststore_password=enc:s77wlnZFoQ08NhnU3OSeWO6uKgRwC6sAK-wTvVubNz2
-cadi_loglevel=INFO
\ No newline at end of file
+cadi_loglevel=INFO
+cadi_bath_convert=/opt/app/aai-resources/resources/aaf/bath_config.csv
index 29a6d23..c8648e4 100644 (file)
@@ -50,6 +50,7 @@ server.ssl.key-store-type=JKS
 # JMS bind address host port
 jms.bind.address=tcp://localhost:61647
 dmaap.ribbon.listOfServers=message-router.{{.Release.Namespace}}:3905
+dmaap.ribbon.transportType=https
 
 # Schema related attributes for the oxm and edges
 # Any additional schema related attributes should start with prefix schema
index 60fb645..001f5ea 100644 (file)
@@ -135,3 +135,4 @@ data:
 {{ tpl (.Files.Glob "resources/config/aaf/org.onap.aai.keyfile").AsSecrets . | indent 2 }}
 {{ tpl (.Files.Glob "resources/config/aaf/org.onap.aai.p12").AsSecrets . | indent 2 }}
 {{ tpl (.Files.Glob "resources/config/aaf/truststoreONAPall.jks").AsSecrets . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/aaf/bath_config.csv").AsSecrets . | indent 2 }}
index 2b124f0..4dcfa2c 100644 (file)
@@ -478,6 +478,9 @@ spec:
         - mountPath: /opt/app/aai-resources/resources/aaf/org.onap.aai.keyfile
           name: {{ include "common.fullname" . }}-aaf-certs
           subPath: org.onap.aai.keyfile
+        - mountPath: /opt/app/aai-resources/resources/aaf/bath_config.csv
+          name: {{ include "common.fullname" . }}-aaf-certs
+          subPath: bath_config.csv
         - mountPath: /opt/app/aai-resources/resources/aaf/org.onap.aai.props
           name: {{ include "common.fullname" . }}-aaf-properties
           subPath: org.onap.aai.props
index 8e50ba0..5055fed 100644 (file)
@@ -22,7 +22,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aai-resources:1.3-STAGING-latest
+image: onap/aai-resources:1.3.1
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
index b58350c..292e23c 100644 (file)
@@ -23,7 +23,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/search-data-service:1.3-STAGING-latest
+image: onap/search-data-service:1.3.1
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
index a323d29..fdcb2ab 100644 (file)
@@ -28,7 +28,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sparky-be:1.3-STAGING-latest
+image: onap/sparky-be:1.3.0
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/aaf/bath_config.csv b/kubernetes/aai/charts/aai-traversal/resources/config/aaf/bath_config.csv
new file mode 100644 (file)
index 0000000..b926dfd
--- /dev/null
@@ -0,0 +1,33 @@
+# AAI -> aai@aai.onap.org
+Basic QUFJOkFBSQ==,Basic YWFpQGFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# ModelLoader -> aai@aai.onap.org
+Basic TW9kZWxMb2FkZXI6TW9kZWxMb2FkZXI=,Basic YWFpQGFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# AaiUI -> aai@aai.onap.org,
+Basic QWFpVUk6QWFpVUk=,Basic YWFpQGFhaS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# MSO -> so@so.onap.org
+Basic TVNPOk1TTw==,Basic c29Ac28ub25hcC5vcmc6ZGVtbzEyMzQ1NiE=,2050-03-03
+
+# SDNC -> sdnc@sdnc.onap.org
+Basic U0ROQzpTRE5D,Basic c2RuY0BzZG5jLm9uYXAub3JnOmRlbW8xMjM0NTYh,2050-03-03
+
+# DCAE -> dcae@dcae.onap.org
+Basic RENBRTpEQ0FF,Basic ZGNhZUBkY2FlLm9uYXAub3JnOmRlbW8xMjMzNDU2IQ==,2050-03-03
+
+# POLICY -> policy@policy.onap.org
+Basic UE9MSUNZOlBPTElDWQ==,Basic cG9saWN5QHBvbGljeS5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# ASDC -> sdc@sdc.onap.org
+Basic QVNEQzpBU0RD,Basic c2RjQHNkYy5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# VID -> vid@vid.onap.org
+Basic VklEOlZJRA==,Basic dmlkQHZpZC5vbmFwLm9yZzpkZW1vMTIzNDU2IQ==,2050-03-03
+
+# APPC -> appc@appc.onap.org
+Basic QVBQQzpBUFBD,Basic YXBwY0BhcHBjLm9uYXAub3JnOmRlbW8xMjM0NTYh,2050-03-03
+
+# OOF -> oof@oof.onap.org
+Basic T09GOk9PRg==,Basic b29mQG9vZi5vbmFwLm9yZzpkZW1vMTIzNDQ2IQ==,2050-03-03
+
index 4596d91..7cb0d49 100644 (file)
@@ -10,4 +10,5 @@ cadi_keystore_password=enc:383RDJRFA6yQz9AOxUxC1iIg3xTJXityw05MswnpnEtelRQy2D4r5
 cadi_alias=aai@aai.onap.org
 cadi_truststore=/opt/app/aai-traversal/resources/aaf/truststoreONAPall.jks
 cadi_truststore_password=enc:s77wlnZFoQ08NhnU3OSeWO6uKgRwC6sAK-wTvVubNz2
-cadi_loglevel=INFO
\ No newline at end of file
+cadi_loglevel=INFO
+cadi_bath_convert=/opt/app/aai-traversal/resources/aaf/bath_config.csv
index 1ad208f..8d35e2f 100644 (file)
@@ -50,6 +50,7 @@ server.ssl.key-store-type=JKS
 # JMS bind address host port
 jms.bind.address=tcp://localhost:61647
 dmaap.ribbon.listOfServers=message-router.{{ include "common.namespace" . }}:3905
+dmaap.ribbon.transportType=https
 
 # Schema related attributes for the oxm and edges
 # Any additional schema related attributes should start with prefix schema
index 8b93e8b..79d6abd 100644 (file)
@@ -134,3 +134,4 @@ data:
 {{ tpl (.Files.Glob "resources/config/aaf/org.onap.aai.keyfile").AsSecrets . | indent 2 }}
 {{ tpl (.Files.Glob "resources/config/aaf/org.onap.aai.p12").AsSecrets . | indent 2 }}
 {{ tpl (.Files.Glob "resources/config/aaf/truststoreONAPall.jks").AsSecrets . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/aaf/bath_config.csv").AsSecrets . | indent 2 }}
index 6a5a7db..834ab32 100644 (file)
@@ -310,6 +310,9 @@ spec:
         - mountPath: /opt/app/aai-traversal/resources/aaf/org.onap.aai.keyfile
           name: {{ include "common.fullname" . }}-aaf-certs
           subPath: org.onap.aai.keyfile
+        - mountPath: /opt/app/aai-traversal/resources/aaf/bath_config.csv
+          name: {{ include "common.fullname" . }}-aaf-certs
+          subPath: bath_config.csv
         - mountPath: /opt/app/aai-traversal/resources/aaf/org.onap.aai.props
           name: {{ include "common.fullname" . }}-aaf-properties
           subPath: org.onap.aai.props
index a018ede..c8efed7 100644 (file)
@@ -58,6 +58,7 @@ spec:
         - |
           set -x
           mkdir -p /opt/aai/logroot/AAI-GQ/misc
+          until nc -w10 -z -v aai.{{.Release.Namespace}} 8443; do echo "Retrying to reach aai on port 8443"; done;
           bash -x /opt/app/aai-traversal/docker-entrypoint.sh install/updateQueryData.sh
         env:
         - name: LOCAL_USER_ID
@@ -77,7 +78,7 @@ spec:
         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties
           name: {{ include "common.fullname" . }}-aaiconfig-conf
           subPath: aaiconfig.properties
-        - mountPath: /var/log/onap
+        - mountPath: /opt/aai/logroot/AAI-GQ/
           name: {{ include "common.fullname" . }}-logs
         - mountPath: /opt/app/aai-traversal/resources/logback.xml
           name: {{ include "common.fullname" . }}-log-conf
index 4e65125..cd496d0 100644 (file)
@@ -23,7 +23,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aai-traversal:1.3-STAGING-latest
+image: onap/aai-traversal:1.3.1
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
index d32db17..3f16e25 100644 (file)
@@ -39,7 +39,11 @@ spec:
         - /root/ready.py
         args:
         - --container-name
+        - aai-resources
+        - --container-name
         - aai-traversal
+        - --container-name
+        - aai-graphadmin
         env:
         - name: NAMESPACE
           valueFrom:
@@ -75,8 +79,17 @@ spec:
           periodSeconds: {{ .Values.liveness.periodSeconds }}
         {{ end -}}
         readinessProbe:
-          tcpSocket:
+          httpGet:
+            path: /aai/util/echo
             port: {{ .Values.service.internalPort2 }}
+            scheme: HTTPS
+            httpHeaders:
+            - name: X-FromAppId
+              value: OOM_ReadinessCheck
+            - name: X-TransactionId
+              value: {{ uuidv4 }}
+            - name: Accept
+              value: application/json
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
index 29c13f9..91bdb2e 100644 (file)
@@ -39,7 +39,7 @@ spec:
     name: {{ .Values.service.portName }}
   - port: {{ .Values.service.externalPort2 }}
     targetPort: {{ .Values.service.internalPort2 }}
-    name: {{ .Values.service.portName }}
+    name: {{ .Values.service.portName2 }}
   {{- end}}
   type: {{ .Values.service.type }}
   selector:
index 0bc707e..e216b35 100644 (file)
@@ -150,7 +150,7 @@ global: # global defaults
 
     # Active spring profiles for the resources microservice
     profiles:
-      active: production,dmaap,one-way-ssl
+      active: production,dmaap,aaf-auth
 
     # Notification event specific properties
     notification:
index d971192..1fb191f 100644 (file)
@@ -29,7 +29,7 @@ flavor: small
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-ansible-server-image:1.4-STAGING-latest
+image: onap/sdnc-ansible-server-image:1.4.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 8818870..dfebe57 100644 (file)
@@ -26,7 +26,7 @@ flavor: small
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/appc-cdt-image:1.4.0-SNAPSHOT-latest
+image: onap/appc-cdt-image:1.4.0
 pullPolicy: Always
 
 # application configuration
index 3cbee8d..705f3ef 100755 (executable)
@@ -50,15 +50,12 @@ function enable_odl_cluster(){
 }
 
 ODL_HOME=${ODL_HOME:-/opt/opendaylight/current}
-ODL_ADMIN_PASSWORD=${ODL_ADMIN_PASSWORD:-admin}
 SDNC_HOME=${SDNC_HOME:-/opt/onap/ccsdk}
 APPC_HOME=${APPC_HOME:-/opt/onap/appc}
 SLEEP_TIME=${SLEEP_TIME:-120}
 MYSQL_PASSWD=${MYSQL_PASSWD:-{{.Values.config.mariadbRootPassword}}}
 ENABLE_ODL_CLUSTER=${ENABLE_ODL_CLUSTER:-false}
-ENABLE_AAF=${ENABLE_AAF:-false}
-AAF_EXT_IP=${AAF_EXT_IP:-{{.Values.config.aafExtIP}}}
-AAF_EXT_FQDN=${AAF_EXT_FQDN:-{{.Values.config.aafExtFQDN}}}
+ENABLE_AAF=${ENABLE_AAF:-true}
 
 appcInstallStartTime=$(date +%s)
 
@@ -149,7 +146,6 @@ then
         echo "Copying the aaa shiro configuration into opendaylight"
         if $ENABLE_AAF
         then
-             echo "${AAF_EXT_IP} ${AAF_EXT_FQDN}" >> /etc/hosts
              cp ${APPC_HOME}/data/properties/aaa-app-config.xml ${ODL_HOME}/etc/opendaylight/datastore/initial/config/aaa-app-config.xml
         else
              cp ${APPC_HOME}/data/aaa-app-config.xml ${ODL_HOME}/etc/opendaylight/datastore/initial/config/aaa-app-config.xml
index 3dd78d3..81834ea 100644 (file)
     <urls>
         <pair-key>/auth/**</pair-key>
 <!--        <pair-value>authcBasic, roles[admin], dynamicAuthorization</pair-value> -->
-        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-admin|*]</pair-value>
+        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-api|*]</pair-value>
     </urls>
     <urls>
         <pair-key>/restconf/config/aaa-cert-mdsal**</pair-key>
 <!--        <pair-value>authcBasic, roles[admin]</pair-value> -->
-        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-admin|*]</pair-value>
+        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-api|*]</pair-value>
     </urls>
     <urls>
         <pair-key>/restconf/operational/aaa-cert-mdsal**</pair-key>
 <!--        <pair-value>authcBasic, roles[admin]</pair-value> -->
-        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-admin|*]</pair-value>
+        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-api|*]</pair-value>
     </urls>
     <urls>
         <pair-key>/restconf/operations/aaa-cert-rpc**</pair-key>
 <!--        <pair-value>authcBasic, roles[admin]</pair-value> -->
-        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-admin|*]</pair-value>
+        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-api|*]</pair-value>
     </urls>
     <urls>
         <pair-key>/restconf/config/aaa-authn-model**</pair-key>
 <!--        <pair-value>authcBasic, roles[admin]</pair-value> -->
-        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-admin|*]</pair-value>
+        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-api|*]</pair-value>
     </urls>
     <urls>
         <pair-key>/restconf/operational/aaa-authn-model**</pair-key>
 <!--        <pair-value>authcBasic, roles[admin]</pair-value> -->
-        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-admin|*]</pair-value>
+        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-api|*]</pair-value>
     </urls>
     <urls>
         <pair-key>/restconf/operations/cluster-admin**</pair-key>
 <!--        <pair-value>authcBasic, roles[admin]</pair-value> -->
-        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-admin|*]</pair-value>
+        <pair-value>authcBasic, roles[org.onap.appc.odl|odl-api|*]</pair-value>
     </urls>
     <urls>
         <pair-key>/**</pair-key>
index 6bd48e3..7028506 100644 (file)
@@ -2,7 +2,7 @@
 # ============LICENSE_START=======================================================
 # APPC
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
 # Modifications Copyright Â© 2018 Amdocs,Bell Canada
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 #
 # Certificate keystore and truststore
 #
-org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/onap/appc/data/stores/ONAPall.p12
+org.onap.ccsdk.sli.adaptors.aai.ssl.trust=/opt/onap/appc/data/stores/truststoreONAPall.jks
 org.onap.ccsdk.sli.adaptors.aai.ssl.trust.psswd=changeit
-org.onap.ccsdk.sli.adaptors.aai.ssl.key=/opt/onap/appc/data/stores/ONAPall.p12
+org.onap.ccsdk.sli.adaptors.aai.ssl.key=/opt/onap/appc/data/stores/truststoreONAPall.jks
 org.onap.ccsdk.sli.adaptors.aai.ssl.key.psswd=changeit
-org.onap.ccsdk.sli.adaptors.aai.host.certificate.ignore=true
 
-org.onap.ccsdk.sli.adaptors.aai.client.name=AAI
-org.onap.ccsdk.sli.adaptors.aai.client.psswd=AAI
+org.onap.ccsdk.sli.adaptors.aai.client.name=appc@appc.onap.org
+org.onap.ccsdk.sli.adaptors.aai.client.psswd=demo123456!
 
 org.onap.ccsdk.sli.adaptors.aai.application=openECOMP
-#connection.timeout=1000
-#read.timeout=2000
+connection.timeout=60000
+read.timeout=60000
 
 #
 # Configuration file for A&AI Client
@@ -45,102 +44,102 @@ org.onap.ccsdk.sli.adaptors.aai.application=openECOMP
 org.onap.ccsdk.sli.adaptors.aai.uri=https://aai.{{.Release.Namespace}}:8443
 
 # query
-org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v13/search/sdn-zone-query
-org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v13/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name}
-org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v13/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3
+org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query
+org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name}
+org.onap.ccsdk.sli.adaptors.aai.query.generic=/aai/v14/search/generic-query?key={identifier}:{value}&start-node-type={start-node-type}&include=complex&depth=3
 
 # named query
 org.onap.ccsdk.sli.adaptors.aai.query.named=/aai/search/named-query
 
 
 #update
-org.onap.ccsdk.sli.adaptors.aai.update=/aai/v13/actions/update
+org.onap.ccsdk.sli.adaptors.aai.update=/aai/v14/actions/update
 
 # vce
-org.onap.ccsdk.sli.adaptors.aai.path.vce =/aai/v13/network/vces/vce/
-org.onap.ccsdk.sli.adaptors.aai.path.vces=/aai/v13/network/vces/
+org.onap.ccsdk.sli.adaptors.aai.path.vce =/aai/v14/network/vces/vce/
+org.onap.ccsdk.sli.adaptors.aai.path.vces=/aai/v14/network/vces/
 
 # vpe
-org.onap.ccsdk.sli.adaptors.aai.path.vpe =/aai/v13/network/vpes/vpe/
-org.onap.ccsdk.sli.adaptors.aai.path.vpes=/aai/v13/network/vpes/
+org.onap.ccsdk.sli.adaptors.aai.path.vpe =/aai/v14/network/vpes/vpe/
+org.onap.ccsdk.sli.adaptors.aai.path.vpes=/aai/v14/network/vpes/
 
 # customer
-org.onap.ccsdk.sli.adaptors.aai.path.customer=/aai/v13/business/customers/customer/{customer-id}
+org.onap.ccsdk.sli.adaptors.aai.path.customer=/aai/v14/business/customers/customer/{customer-id}
 
 # service subscription
-org.onap.ccsdk.sli.adaptors.aai.path.service.subscription=/aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}
+org.onap.ccsdk.sli.adaptors.aai.path.service.subscription=/aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}
 
 # service instance
-org.onap.ccsdk.sli.adaptors.aai.path.svcinst=/aai/v13/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances
-org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v13/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance
-org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v13/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.path.svcinst=/aai/v14/business/customers/customer/{customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances
+org.onap.ccsdk.sli.adaptors.aai.path.svcinst.query=/aai/v14/search/generic-query?key=service-instance.service-instance-id:{svc-instance-id}&start-node-type=service-instance&include=service-instance
+org.onap.ccsdk.sli.adaptors.aai.path.service.instance=/aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances/service-instance/{service-instance-id}
 
 # complex
-org.onap.ccsdk.sli.adaptors.aai.path.complexes=/aai/v13/cloud-infrastructure/complexes
-org.onap.ccsdk.sli.adaptors.aai.path.complex=/aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}
+org.onap.ccsdk.sli.adaptors.aai.path.complexes=/aai/v14/cloud-infrastructure/complexes
+org.onap.ccsdk.sli.adaptors.aai.path.complex=/aai/v14/cloud-infrastructure/complexes/complex/{physical-location-id}
 
 # tenant
-org.onap.ccsdk.sli.adaptors.aai.path.tenant=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}
-org.onap.ccsdk.sli.adaptors.aai.path.tenant.query=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name}
+org.onap.ccsdk.sli.adaptors.aai.path.tenant=/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}
+org.onap.ccsdk.sli.adaptors.aai.path.tenant.query=/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant?tenant-name={tenant-name}
 
 # vservers
-org.onap.ccsdk.sli.adaptors.aai.path.vservers=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/
-org.onap.ccsdk.sli.adaptors.aai.path.vserver=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}
+org.onap.ccsdk.sli.adaptors.aai.path.vservers=/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/
+org.onap.ccsdk.sli.adaptors.aai.path.vserver=/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}
 
 # vpls-pe
-org.onap.ccsdk.sli.adaptors.aai.path.vpls.pes=/aai/v13/network/vpls-pes/
-org.onap.ccsdk.sli.adaptors.aai.path.vpls.pe =/aai/v13/network/vpls-pes/vpls-pe/
+org.onap.ccsdk.sli.adaptors.aai.path.vpls.pes=/aai/v14/network/vpls-pes/
+org.onap.ccsdk.sli.adaptors.aai.path.vpls.pe =/aai/v14/network/vpls-pes/vpls-pe/
 
 # ctag-pool
-org.onap.ccsdk.sli.adaptors.aai.path.ctag.pools=/aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools
-org.onap.ccsdk.sli.adaptors.aai.path.ctag.pool=/aai/v13/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}
+org.onap.ccsdk.sli.adaptors.aai.path.ctag.pools=/aai/v14/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools
+org.onap.ccsdk.sli.adaptors.aai.path.ctag.pool=/aai/v14/cloud-infrastructure/complexes/complex/{physical-location-id}/ctag-pools/ctag-pool/{target-pe}/{availability-zone-name}
 
 #
 #-------------- 1510 ----------------------
 #
 
 # pservers
-org.onap.ccsdk.sli.adaptors.aai.path.pservers=/aai/v13/cloud-infrastructure/pservers
-org.onap.ccsdk.sli.adaptors.aai.path.pserver=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}
+org.onap.ccsdk.sli.adaptors.aai.path.pservers=/aai/v14/cloud-infrastructure/pservers
+org.onap.ccsdk.sli.adaptors.aai.path.pserver=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}
 
 # generic-vnf
-org.onap.ccsdk.sli.adaptors.aai.path.generic.vnfs=/aai/v13/network/generic-vnfs
-org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnfs=/aai/v14/network/generic-vnfs
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf=/aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}
 
 # dvs-switch
-org.onap.ccsdk.sli.adaptors.aai.path.dvsswitches=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches
-org.onap.ccsdk.sli.adaptors.aai.path.dvsswitch=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name}
+org.onap.ccsdk.sli.adaptors.aai.path.dvsswitches=/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches
+org.onap.ccsdk.sli.adaptors.aai.path.dvsswitch=/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/dvs-switches/dvs-switch/{switch-name}
 
 # L3 Networks
-org.onap.ccsdk.sli.adaptors.aai.path.l3networks=/aai/v13/network/l3-networks
-org.onap.ccsdk.sli.adaptors.aai.path.l3network=/aai/v13/network/l3-networks/l3-network/{network-id}
-org.onap.ccsdk.sli.adaptors.aai.path.l3network.query.name=/aai/v13/network/l3-networks/l3-network?network-name={network-name}
+org.onap.ccsdk.sli.adaptors.aai.path.l3networks=/aai/v14/network/l3-networks
+org.onap.ccsdk.sli.adaptors.aai.path.l3network=/aai/v14/network/l3-networks/l3-network/{network-id}
+org.onap.ccsdk.sli.adaptors.aai.path.l3network.query.name=/aai/v14/network/l3-networks/l3-network?network-name={network-name}
 
 # P-Interfaces
-org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces
-org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterfaces=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces
+org.onap.ccsdk.sli.adaptors.aai.path.pserver.pinterface=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}
 
 # Physical Link
-org.onap.ccsdk.sli.adaptors.aai.path.physical.links=/aai/v13/network/physical-links
-org.onap.ccsdk.sli.adaptors.aai.path.physical.link=/aai/v13/network/physical-links/physical-link/{link-name}
+org.onap.ccsdk.sli.adaptors.aai.path.physical.links=/aai/v14/network/physical-links
+org.onap.ccsdk.sli.adaptors.aai.path.physical.link=/aai/v14/network/physical-links/physical-link/{link-name}
 
 # VPN Bindings
-org.onap.ccsdk.sli.adaptors.aai.path.vpn.bindings=/aai/v13/network/vpn-bindings/
-org.onap.ccsdk.sli.adaptors.aai.path.vpn.binding=/aai/v13/network/vpn-bindings/vpn-binding/{vpn-id}
+org.onap.ccsdk.sli.adaptors.aai.path.vpn.bindings=/aai/v14/network/vpn-bindings/
+org.onap.ccsdk.sli.adaptors.aai.path.vpn.binding=/aai/v14/network/vpn-bindings/vpn-binding/{vpn-id}
 
 # VNF IMAGES
-org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v13/service-design-and-creation/vnf-images
-org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v13/service-design-and-creation/vnf-images/vnf-image/{att-uuid}
-org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v13/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor}
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.images=/aai/v14/service-design-and-creation/vnf-images
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.image=/aai/v14/service-design-and-creation/vnf-images/vnf-image/{att-uuid}
+org.onap.ccsdk.sli.adaptors.aai.path.vnf.image.query=/aai/v14/service-design-and-creation/vnf-images/vnf-image?application={application_model}&application-vendor={application_vendor}
 
 # UBB Notify
-org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v13/actions/notify
+org.onap.ccsdk.sli.adaptors.aai.path.notify=/aai/v14/actions/notify
 org.onap.ccsdk.sli.adaptors.aai.notify.selflink.fqdn=https://aai.{{.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.{{.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/v13/service-design-and-creation/services/service/{service-id}
-org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v13/service-design-and-creation/services
+org.onap.ccsdk.sli.adaptors.aai.path.service=/aai/v14/service-design-and-creation/services/service/{service-id}
+org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v14/service-design-and-creation/services
 
 
 #
@@ -148,98 +147,98 @@ org.onap.ccsdk.sli.adaptors.aai.path.services=/aai/v13/service-design-and-creati
 #
 
 # VNFC
-org.onap.ccsdk.sli.adaptors.aai.path.vnfc=/aai/v13/network/vnfcs/vnfc/{vnfc-name}
+org.onap.ccsdk.sli.adaptors.aai.path.vnfc=/aai/v14/network/vnfcs/vnfc/{vnfc-name}
 
 # class-of-service
-org.onap.ccsdk.sli.adaptors.aai.path.class.of.service=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos-id}
+org.onap.ccsdk.sli.adaptors.aai.path.class.of.service=/aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}/classes-of-service/class-of-service/{cos-id}
 
 # site-pair
-org.onap.ccsdk.sli.adaptors.aai.path.site.pair=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}
+org.onap.ccsdk.sli.adaptors.aai.path.site.pair=/aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}/site-pairs/site-pair/{site-pair-id}
 
 # routing-instance
-org.onap.ccsdk.sli.adaptors.aai.path.routing.instance=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.path.routing.instance=/aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}/routing-instances/routing-instance/{routing-instance-id}
 
 # site-pair-set
-org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set=/aai/v13/network/site-pair-sets/site-pair-set/{site-pair-set-id}
+org.onap.ccsdk.sli.adaptors.aai.path.site.pair.set=/aai/v14/network/site-pair-sets/site-pair-set/{site-pair-set-id}
 
 # license key resource
-org.onap.ccsdk.sli.adaptors.aai.path.license.acquire=/aai/v13/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid}
-org.onap.ccsdk.sli.adaptors.aai.path.license=/aai/v13/license-management/license-key-resources/license-key-resource/{att-uuid}
+org.onap.ccsdk.sli.adaptors.aai.path.license.acquire=/aai/v14/actions/assignment/license-management/assignment-group-uuid/{assignment-group-uuid}
+org.onap.ccsdk.sli.adaptors.aai.path.license=/aai/v14/license-management/license-key-resources/license-key-resource/{att-uuid}
 
 # logical-link
-org.onap.ccsdk.sli.adaptors.aai.path.logical.link =/aai/v13/network/logical-links/logical-link/{link-name}
+org.onap.ccsdk.sli.adaptors.aai.path.logical.link =/aai/v14/network/logical-links/logical-link/{link-name}
 
 # virtual-data-center
-org.onap.ccsdk.sli.adaptors.aai.path.virtual.data.center=/aai/v13/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}
+org.onap.ccsdk.sli.adaptors.aai.path.virtual.data.center=/aai/v14/cloud-infrastructure/virtual-data-centers/virtual-data-center/{vdc-id}
 
 # wan-connector
-org.onap.ccsdk.sli.adaptors.aai.path.wan.connector=/aai/v13/business/connectors/connector/{resource-instance-id}
+org.onap.ccsdk.sli.adaptors.aai.path.wan.connector=/aai/v14/business/connectors/connector/{resource-instance-id}
 
 # l-interface
-org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
-org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface=/aai/v13/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface=/aai/v14/cloud-infrastructure/pservers/pserver/{hostname}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
 
 # l-interface pnf
-org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf=/aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
-org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf=/aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.lag.interface.l.interface.pnf=/aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.p.interface.l.interface.pnf=/aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
 
 # subinterface
-org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface=/aai/v13/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
-org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface=/aai/v13/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.pnf.lag.interface.subinterface=/aai/v14/network/pnfs/pnf/{pnf-name}/lag-interfaces/lag-interface/{lag-interface.interface-name}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.pnf.p.interface.l.interface=/aai/v14/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{p-interface.interface-name}/l-interfaces/l-interface/{interface-name}
 
 # vlans
-org.onap.ccsdk.sli.adaptors.aai.path.vlan=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
-org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.vlan=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
+org.onap.ccsdk.sli.adaptors.aai.path.vlan=/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.vlan=/aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}
 
 #  l3-interface-ipv4-address-list
-org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
-org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv4.address.list=/aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv4.address.list=/aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
 
 #  l3-interface-ipv6-address-list
-org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
-org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
+org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list=/aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
+org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list=/aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
 
 # ipsec-configuration
-org.onap.ccsdk.sli.adaptors.aai.path.ipsec.configuration=/aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}
+org.onap.ccsdk.sli.adaptors.aai.path.ipsec.configuration=/aai/v14/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}
 
 # vig server
-org.onap.ccsdk.sli.adaptors.aai.path.vig.server=/aai/v13/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type}
+org.onap.ccsdk.sli.adaptors.aai.path.vig.server=/aai/v14/network/ipsec-configurations/ipsec-configuration/{ipsec-configuration-id}/vig-servers/vig-server/{vig-address-type}
 
 # l3-network
-org.onap.ccsdk.sli.adaptors.aai.path.l3.network=/aai/v13/network/l3-networks/l3-network/{network-id}
+org.onap.ccsdk.sli.adaptors.aai.path.l3.network=/aai/v14/network/l3-networks/l3-network/{network-id}
 
 # subnet
-org.onap.ccsdk.sli.adaptors.aai.path.subnet=/aai/v13/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}
+org.onap.ccsdk.sli.adaptors.aai.path.subnet=/aai/v14/network/l3-networks/l3-network/{network-id}/subnets/subnet/{subnet-id}
 
 # multicast-configuration
-org.onap.ccsdk.sli.adaptors.aai.path.multicast.configuration=/aai/v13/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}
+org.onap.ccsdk.sli.adaptors.aai.path.multicast.configuration=/aai/v14/network/multicast-configurations/multicast-configuration/{multicast-configuration-id}
 
 # org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv4.address.list
-org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv4.address.list=/aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
 
 # org.onap.ccsdk.sli.adaptors.aai.path.l.interface.vlan.ipv4.address.list
-org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
+org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.vlan.ipv4.address.list=/aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
 
 # org.onap.ccsdk.sli.adaptors.aai.path.l.interface.ipv6.address.list
-org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv6.address.list=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
+org.onap.ccsdk.sli.adaptors.aai.path.l3-interface.ipv6.address.list=/aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
 
 # volume.group
-org.onap.ccsdk.sli.adaptors.aai.path.volume.group=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id}
+org.onap.ccsdk.sli.adaptors.aai.path.volume.group=/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/volume-groups/volume-group/{volume-group-id}
 
 #cloud region
-org.onap.ccsdk.sli.adaptors.aai.path.cloud.region=/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}
+org.onap.ccsdk.sli.adaptors.aai.path.cloud.region=/aai/v14/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}
 
 # vf-module
-org.onap.ccsdk.sli.adaptors.aai.path.vf.module=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id}
+org.onap.ccsdk.sli.adaptors.aai.path.vf.module=/aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/vf-modules/vf-module/{vf-module-id}
 
 # l-interface through generic-vnf
-org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.linterface=/aai/v13/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}
+org.onap.ccsdk.sli.adaptors.aai.path.generic.vnf.linterface=/aai/v14/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}
 
 # network-policy
-org.onap.ccsdk.sli.adaptors.aai.path.network.policy=/aai/v13/network/network-policies/network-policy/{network-policy-id}
+org.onap.ccsdk.sli.adaptors.aai.path.network.policy=/aai/v14/network/network-policies/network-policy/{network-policy-id}
 
 # pnf
-org.onap.ccsdk.sli.adaptors.aai.path.pnf=/aai/v13/network/pnfs/pnf/{pnf-name}
+org.onap.ccsdk.sli.adaptors.aai.path.pnf=/aai/v14/network/pnfs/pnf/{pnf-name}
 
 #
 # Formatting
index 47c6788..8553fcd 100644 (file)
@@ -31,10 +31,10 @@ appc.demo.threads.queuesize.min=1
 appc.demo.threads.queuesize.max=1000
 appc.demo.threads.poolsize.min=1
 appc.demo.threads.poolsize.max=2
-appc.demo.provider.user=admin
+appc.demo.provider.user={{.Values.config.odlUser}}
 appc.demo.provider.pass={{.Values.config.odlPassword}}
 appc.demo.provider.url=http://localhost:8181/restconf/operations/appc-provider
-appc.provider.vfodl.url=http://admin:{{.Values.config.odlPassword}}@{{.Values.service.name}}:{{.Values.service.externalPort}}/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://{{.Values.config.odlUser}}:{{.Values.config.odlPassword}}@{{.Values.service.name}}:{{.Values.service.externalPort}}/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
@@ -79,7 +79,7 @@ appc.LCM.poolMembers=message-router.{{.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
-appc.LCM.provider.user=admin
+appc.LCM.provider.user={{.Values.config.odlUser}}
 appc.LCM.provider.pass={{.Values.config.odlPassword}}
 appc.LCM.provider.url=http://localhost:8181/restconf/operations/appc-provider-lcm
 appc.LCM.scopeOverlap.endpoint=http://localhost:8181/restconf/operations/interfaces-service:execute-service
@@ -87,7 +87,7 @@ appc.LCM.scopeOverlap.endpoint=http://localhost:8181/restconf/operations/interfa
 # properties from appc-netconf-adapter-bundle, appc-dg-common, appc-dmaap-adapter-bundle
 poolMembers=message-router.{{.Release.Namespace}}:3904
 event.pool.members=message-router.{{.Release.Namespace}}:3904
-restconf.user=admin
+restconf.user={{.Values.config.odlUser}}
 restconf.pass={{.Values.config.odlPassword}}
 
 
@@ -126,5 +126,5 @@ appc.OAM.service=ueb
 appc.OAM.topic.read=testOAM
 appc.OAM.topic.write=testOAM
 appc.OAM.client.name=testOAM
-appc.OAM.provider.user=admin
+appc.OAM.provider.user={{.Values.config.odlUser}}
 appc.OAM.provider.pass={{.Values.config.odlPassword}}
diff --git a/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/cadi.properties b/kubernetes/appc/resources/config/appc/opt/onap/appc/data/properties/cadi.properties
new file mode 100644 (file)
index 0000000..7ce85c3
--- /dev/null
@@ -0,0 +1,57 @@
+###
+# ============LICENSE_START=======================================================
+# APPC
+# ================================================================================
+# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+###
+#hostname=localhost
+
+cadi_loglevel=INFO
+
+############################################################
+# Properties Generated by AT&T Certificate Manager
+# @copyright 2016, AT&T
+############################################################
+cadi_x509_issuers=CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US
+cadi_keyfile=/opt/onap/appc/data/stores/org.onap.appc.keyfile
+cadi_keystore=/opt/onap/appc/data/stores/org.onap.appc.p12
+cadi_keystore_password=enc:4DVUTKvRCCtebQrKskDsuKFIHLzOf2M9XxNOhVIK4xb
+#cadi_key_password=enc:<KEY PASSWORD (optional if the same as KEYSTORE PASSWORD)>
+cadi_alias=appc@appc.onap.org
+cadi_truststore=/opt/onap/appc/data/stores/truststoreONAPall.jks
+cadi_truststore_password=enc:O3Vtv5e77OQWJ_OiLC9Atj3ngyYfulRK519JYFmbKl7
+
+##
+## org.osaaf.location.props
+##
+## Localized Machine Information
+##
+# Almeda California ?
+cadi_latitude=37.78187
+cadi_longitude=-122.26147
+
+# Locate URL (which AAF Env)
+aaf_locate_url=https://aaf-locate.{{.Release.Namespace}}:8095
+
+# AAF URL
+aaf_url=https://AAF_LOCATE_URL/AAF_NS.service:2.0
+
+# AAF Environment Designation
+aaf_env=DEV
+
+# OAuth2 Endpoints
+aaf_oauth2_token_url=https://AAF_LOCATE_URL/AAF_NS.token:2.0/token
+aaf_oauth2_introspect_url=https://AAF_LOCATE_URL/AAF_NS.introspect:2.0/introspect
index 89c84b7..455b030 100644 (file)
@@ -27,7 +27,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "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 }}
index 8ecda88..6b0373f 100644 (file)
@@ -98,6 +98,9 @@ spec:
           - mountPath: /opt/onap/appc/data/properties/aaiclient.properties
             name: onap-appc-data-properties
             subPath: aaiclient.properties
+          - mountPath: /opt/onap/appc/data/properties/cadi.properties
+            name: onap-appc-data-properties
+            subPath: cadi.properties
           - mountPath: /opt/onap/appc/data/properties/aaa-app-config.xml
             name: onap-appc-data-properties
             subPath: aaa-app-config.xml
index d6a2ddf..ad6070a 100644 (file)
@@ -31,7 +31,7 @@ global:
 flavor: small
 # application image
 repository: nexus3.onap.org:10001
-image: onap/appc-image:1.4.0-SNAPSHOT-latest
+image: onap/appc-image:1.4.1-SNAPSHOT-latest
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -39,8 +39,6 @@ debugEnabled: false
 
 # application configuration
 config:
-  aafExtIP: 127.0.0.1
-  aafExtFQDN: aaf-onap-beijing-test.osaaf.org
   ansibleServiceName: appc-ansible-server
   ansiblePort: 8000
   mariadbRootPassword: secretpassword
@@ -49,13 +47,13 @@ config:
   mysqlDatabase: my-database
   mariadbGaleraSVCName: appc-dbhost
   mariadbGaleraContName: appc-db
-  enableAAF: false
-  enableClustering: true
+  enableAAF: true
+  enableClustering: false
   configDir: /opt/onap/appc/data/properties
   dmaapTopic: SUCCESS
   logstashServiceName: log-ls
   logstashPort: 5044
-  odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+  odlPassword: demo123456!
   openStackType: OpenStackProvider
   openStackName: OpenStack
   openStackKeyStoneUrl: http://localhost:8181/apidoc/explorer/index.html
@@ -63,6 +61,7 @@ config:
   openStackDomain: default
   openStackUserName: admin
   openStackEncryptedPassword: admin
+  odlUser: appc@appc.onap.org
 
 appc-ansible-server:
   service:
index 0f5a933..d29148f 100644 (file)
@@ -48,7 +48,7 @@ spec:
         name: {{ include "common.name" . }}-readiness
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ .Values.global.imageRepository | default .Values.imageRepository }}/{{ .Values.image }}"
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
index 88c541a..d1e85aa 100644 (file)
@@ -32,8 +32,8 @@ busyboxRepository: registry.hub.docker.com
 busyboxImage: library/busybox:latest
 
 # application image
-loggingRepository: nexus3.onap.org:10001
-image: onap/clamp-dashboard-kibana:3.0-STAGING-latest
+repository: nexus3.onap.org:10001
+image: onap/clamp-dashboard-kibana:3.0.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index aff9a0d..6c6331a 100644 (file)
@@ -48,7 +48,7 @@ spec:
         name: {{ include "common.name" . }}-readiness
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ .Values.global.imageRepository| default .Values.imageRepository }}/{{ .Values.image }}"
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           env:
           - name: dmaap_consumer_group
index 52b66c6..a05564a 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 
 # application image
-imageRepository: nexus3.onap.org:10001 
-image: onap/clamp-dashboard-logstash:3.0-STAGING-latest
+repository: nexus3.onap.org:10001
+image: onap/clamp-dashboard-logstash:3.0.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 0a4bd8e..1103aff 100644 (file)
@@ -26,7 +26,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
index 308ec7d..8bb0214 100644 (file)
@@ -129,6 +129,53 @@ CREATE TABLE clds_service_cache (
   PRIMARY KEY (invariant_service_id)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
 
+CREATE TABLE IF NOT EXISTS tosca_model (
+  tosca_model_id VARCHAR(36) NOT NULL,
+  tosca_model_name VARCHAR(80) NOT NULL,
+  policy_type VARCHAR(80) NULL,
+  user_id VARCHAR(80),
+  timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (tosca_model_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+CREATE TABLE IF NOT EXISTS tosca_model_revision (
+  tosca_model_revision_id VARCHAR(36) NOT NULL,
+  tosca_model_id VARCHAR(36) NOT NULL,
+  version DOUBLE NOT NULL DEFAULT 1,
+  tosca_model_yaml MEDIUMTEXT NULL,
+  tosca_model_json MEDIUMTEXT NULL,
+  user_id VARCHAR(80),
+  createdTimestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  lastUpdatedTimestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (tosca_model_revision_id),
+  CONSTRAINT tosca_model_revision_ukey UNIQUE KEY (tosca_model_id, version),
+  CONSTRAINT tosca_model_revision_fkey01 FOREIGN KEY (tosca_model_id) REFERENCES tosca_model (tosca_model_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+CREATE TABLE IF NOT EXISTS dictionary (
+  dictionary_id VARCHAR(36) NOT NULL,
+  dictionary_name VARCHAR(80) NOT NULL,
+  created_by VARCHAR(80),
+  modified_by VARCHAR(80),
+  timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (dictionary_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
+CREATE TABLE IF NOT EXISTS dictionary_elements (
+  dict_element_id VARCHAR(36) NOT NULL,
+  dictionary_id VARCHAR(36) NOT NULL,
+  dict_element_name VARCHAR(250) NOT NULL,
+  dict_element_short_name VARCHAR(80) NOT NULL,
+  dict_element_description VARCHAR(250),
+  dict_element_type VARCHAR(80) NOT NULL,
+  created_by VARCHAR(80),
+  modified_by VARCHAR(80),
+  timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (dict_element_id),
+  CONSTRAINT dictionary_elements_ukey UNIQUE KEY (dict_element_name, dict_element_short_name),
+  CONSTRAINT dictionary_elements_ukey_fkey01 FOREIGN KEY (dictionary_id) REFERENCES dictionary (dictionary_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
+
 ALTER TABLE template
     ADD CONSTRAINT template_bpmn_id_fkey01
     FOREIGN KEY (template_bpmn_id)
index fb131cc..f35d9da 100644 (file)
@@ -29,6 +29,11 @@ DROP PROCEDURE IF EXISTS get_model;
 DROP PROCEDURE IF EXISTS get_model_template;
 DROP PROCEDURE IF EXISTS set_template;
 DROP PROCEDURE IF EXISTS get_template;
+DROP PROCEDURE IF EXISTS del_model;
+DROP PROCEDURE IF EXISTS set_new_tosca_model_version;
+DROP PROCEDURE IF EXISTS set_tosca_model;
+DROP PROCEDURE IF EXISTS set_dictionary;
+DROP PROCEDURE IF EXISTS set_dictionary_elements;
 DELIMITER //
 CREATE PROCEDURE get_template
   (IN v_template_name VARCHAR(80),
@@ -459,6 +464,77 @@ BEGIN
   UPDATE event
        SET process_instance_id = v_process_instance_id
        WHERE event_id = v_event_id;
-END
+END;
+CREATE PROCEDURE del_model
+(IN v_model_name VARCHAR(80))
+BEGIN
+    DECLARE v_model_id VARCHAR(36);
+    SELECT model_id INTO v_model_id from model where model_name = v_model_name;
+    UPDATE model set event_id = null, model_blueprint_id = null, model_prop_id = null where model_id = v_model_id;
+       DELETE from event where model_id = v_model_id;
+       DELETE from model_blueprint where model_id = v_model_id;
+       DELETE from model_properties where model_id = v_model_id;
+    DELETE from model where model_id = v_model_id;
+END;
+
+CREATE PROCEDURE set_new_tosca_model_version
+  (IN v_tosca_model_id VARCHAR(36),
+   IN v_version DOUBLE,
+   IN v_tosca_model_yaml MEDIUMTEXT,
+   IN v_tosca_model_json MEDIUMTEXT,
+   IN v_user_id VARCHAR(80),
+   OUT v_revision_id VARCHAR(36))
+BEGIN
+  SET v_revision_id = UUID();
+  INSERT INTO tosca_model_revision
+    (tosca_model_revision_id, tosca_model_id, version, tosca_model_yaml, tosca_model_json, user_id)
+    VALUES (v_revision_id, v_tosca_model_id, v_version, v_tosca_model_yaml, v_tosca_model_json, v_user_id);
+END;
+
+CREATE PROCEDURE set_tosca_model
+  (IN v_tosca_model_name VARCHAR(80),
+   IN v_policy_type VARCHAR(80),
+   IN v_user_id VARCHAR(80),
+   IN v_tosca_model_yaml MEDIUMTEXT,
+   IN v_tosca_model_json MEDIUMTEXT,
+   IN v_version DOUBLE,
+   OUT v_tosca_model_id VARCHAR(36),
+   OUT v_revision_id VARCHAR(36))
+BEGIN
+  SET v_tosca_model_id = UUID();
+  INSERT INTO tosca_model
+    (tosca_model_id, tosca_model_name, policy_type, user_id)
+    VALUES (v_tosca_model_id, v_tosca_model_name, v_policy_type, v_user_id);
+  SET v_revision_id = UUID();
+  INSERT INTO tosca_model_revision
+    (tosca_model_revision_id, tosca_model_id, version, tosca_model_yaml, tosca_model_json, user_id)
+    VALUES (v_revision_id, v_tosca_model_id, v_version, v_tosca_model_yaml, v_tosca_model_json, v_user_id);
+END;
+
+CREATE PROCEDURE set_dictionary
+  (IN v_dictionary_name VARCHAR(80),
+   IN v_user_id VARCHAR(80),
+   OUT v_dictionary_id VARCHAR(36))
+BEGIN
+  SET v_dictionary_id = UUID();
+  INSERT INTO dictionary
+    (dictionary_id, dictionary_name, created_by, modified_by)
+    VALUES (v_dictionary_id, v_dictionary_name, v_user_id, v_user_id);
+END;
+
+CREATE PROCEDURE set_dictionary_elements
+  (IN v_dictionary_id VARCHAR(36),
+   IN v_dict_element_name VARCHAR(250),
+   IN v_dict_element_short_name VARCHAR(80),
+   IN v_dict_element_description VARCHAR(250),
+   IN v_dict_element_type VARCHAR(80),
+   IN v_user_id VARCHAR(80),
+   OUT v_dict_element_id VARCHAR(36))
+BEGIN
+  SET v_dict_element_id = UUID();
+  INSERT INTO dictionary_elements
+    (dict_element_id, dictionary_id, dict_element_name, dict_element_short_name, dict_element_description, dict_element_type, created_by, modified_by)
+    VALUES (v_dict_element_id, v_dictionary_id, v_dict_element_name, v_dict_element_short_name, v_dict_element_description, v_dict_element_type, v_user_id, v_user_id);
+END;
 //
 DELIMITER ;
index 4dd47a0..24462d8 100644 (file)
@@ -28,7 +28,7 @@ subChartsOnly:
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/clamp:3.0-STAGING-latest
+image: onap/clamp:3.0.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -53,12 +53,12 @@ config:
         "clamp.config.sdc.servicePassword": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981",
         "clamp.config.files.sdcController": "file:/opt/clamp/sdc-controllers-config.json",
         "clamp.config.dcae.inventory.url": "http://inventory.{{ include "common.namespace" . }}:8080",
-        "clamp.config.dcae.dispatcher.url": "http://deployment-handler.{{ include "common.namespace" . }}:8443",
-        "clamp.config.policy.pdpUrl1": "http://pdp.{{ include "common.namespace" . }}:8081/pdp/ , testpdp, alpha123",
-        "clamp.config.policy.pdpUrl2": "http://pdp.{{ include "common.namespace" . }}:8081/pdp/ , testpdp, alpha123",
-        "clamp.config.policy.papUrl": "http://pap.{{ include "common.namespace" . }}:9091/pap/ , testpap, alpha123",
+        "clamp.config.dcae.dispatcher.url": "https://deployment-handler.{{ include "common.namespace" . }}:8443",
+        "clamp.config.policy.pdpUrl1": "https://pdp.{{ include "common.namespace" . }}:8081/pdp/ , testpdp, alpha123",
+        "clamp.config.policy.pdpUrl2": "https://pdp.{{ include "common.namespace" . }}:8081/pdp/ , testpdp, alpha123",
+        "clamp.config.policy.papUrl": "https://pap.{{ include "common.namespace" . }}:9091/pap/ , testpap, alpha123",
         "clamp.config.policy.clientKey": "dGVzdA==",
-        "clamp.config.cadi.aafLocateUrl": "https://aaf-onap-test.osaaf.org:8095",
+        "clamp.config.cadi.aafLocateUrl": "https://aaf-locate.{{ include "common.namespace" . }}:8095",
         "com.att.eelf.logging.path": "/opt/clamp",
         "com.att.eelf.logging.file": "logback.xml"
     }
@@ -93,9 +93,11 @@ service:
   name: clamp
   portName: clamp
   internalPort: 8080
+  externalPort: 8080
   nodePort: 95
   portName2: clamp-ssl
   internalPort2: 8443
+  externalPort2: 8443
   # as of 20180904 port 58 is reserved for clamp from log/logdemonode
   # see https://wiki.onap.org/display/DW/OOM+NodePort+List
   nodePort2: 58
index 21018ae..f3fe9c9 100644 (file)
@@ -27,7 +27,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
index 1c511a3..b20fb77 100644 (file)
@@ -24,7 +24,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/cli:2.0.2
+image: onap/cli:2.0.4
 pullPolicy: Always
 flavor: small
 
diff --git a/kubernetes/common/cassandra/Chart.yaml b/kubernetes/common/cassandra/Chart.yaml
new file mode 100644 (file)
index 0000000..98f8ce0
--- /dev/null
@@ -0,0 +1,19 @@
+# Copyright Â© 2018 Amdocs, Bell Canada, AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+apiVersion: v1
+description: ONAP cassandra
+name: cassandra
+version: 3.0.0
diff --git a/kubernetes/common/cassandra/requirements.yaml b/kubernetes/common/cassandra/requirements.yaml
new file mode 100644 (file)
index 0000000..542342f
--- /dev/null
@@ -0,0 +1,19 @@
+# Copyright Â© 2018 Amdocs, Bell Canada
+# Modifications Copyright Â© 2018 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+  - name: common
+    version: ~3.0.0
+    repository: '@local'
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright Â© 2018 Amdocs, AT&T, Bell Canada
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/kubernetes/common/cassandra/templates/statefulset.yaml b/kubernetes/common/cassandra/templates/statefulset.yaml
new file mode 100644 (file)
index 0000000..960d97e
--- /dev/null
@@ -0,0 +1,149 @@
+# Copyright Â© 2018 Amdocs, AT&T, 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: 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: {{ include "common.servicename" . }}
+  replicas: {{ .Values.replicaCount }}
+  podManagementPolicy: {{ .Values.podManagementPolicy }}
+  updateStrategy:
+    type: {{ .Values.updateStrategy.type }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+    spec:
+      containers:
+      - name: {{ include "common.name" . }}
+        image: {{ .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 }}
+        volumeMounts:
+          - name: {{ .Values.service.name }}
+            mountPath: /var/lib/cassandra
+          {{ if eq .Values.configmapping true }}
+          - name: {{ .Values.service.name }}-docker-entry-initd
+            mountPath: /{{ .Values.service.name }}-docker-entrypoint-initdb.d/cassandra.cql
+            subPath: cassandra.cql
+          {{ end }}
+        {{- if eq .Values.liveness.enabled true }}
+        livenessProbe:
+          exec:
+           command:
+            - /bin/bash
+            - -c
+            - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
+          initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+          periodSeconds: {{ .Values.liveness.periodSeconds }}
+        {{ end -}}
+        readinessProbe:
+          exec:
+            command:
+            - /bin/bash
+            - -c
+            - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
+          initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+          timeoutSeconds: {{ .Values.liveness.periodSeconds }}
+        env:
+        {{- $seed_size := default 1 .Values.replicaCount | int -}}
+        {{- $global := . }}
+          - name: MAX_HEAP_SIZE
+            value: {{ .Values.config.heap.max }}
+          - name: HEAP_NEWSIZE
+            value: {{ .Values.config.heap.min }}
+          - name: JVM_OPTS
+            value: {{ .Values.config.jvmOpts | quote }}
+          - name: CASSANDRA_CLUSTER_NAME
+            value: {{ .Values.config.clusterName | quote }}
+          - name: CASSANDRA_DC
+            value: {{ .Values.config.dataCenter | quote }}
+          - name: CASSANDRA_RACK
+            value: {{ .Values.config.rackName | quote }}
+          - name: CASSANDRA_AUTO_BOOTSTRAP
+            value: {{ .Values.config.autoBootstrap | quote }}
+          - name: POD_IP
+            valueFrom:
+              fieldRef:
+                fieldPath: status.podIP
+        {{ if eq .Values.configmapping true }}
+        lifecycle:
+          postStart:
+            exec:
+              command:
+              - /bin/sh
+              - -c
+              - >
+                /bin/sleep {{ .Values.readiness.initialDelaySeconds }};
+                cd /{{ .Values.service.name }}-docker-entrypoint-initdb.d;
+                cqlsh -u root -p root -f cassandra.cql
+        {{ end }}
+        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
+      {{ if eq .Values.configmapping true }}
+      - name: {{ .Values.service.name }}-docker-entry-initd
+        configMap:
+          name: {{ .Values.service.name }}-docker-entry-initd
+      {{ end }}
+  {{- if not .Values.persistence.enabled }}
+      - name: {{ .Values.service.name }}
+        emptyDir: {}
+  {{- else }}
+  volumeClaimTemplates:
+    - metadata:
+        name: {{ .Values.service.name }}
+        labels:
+          app: {{ template "common.fullname" . }}
+          chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+          release: "{{ .Release.Name }}"
+          heritage: "{{ .Release.Service }}"
+      annotations:
+        volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass }}
+      spec:
+        accessModes:
+          - {{ .Values.persistence.accessMode | quote }}
+        resources:
+          requests:
+            storage: {{ .Values.persistence.size | quote }}
+        selector:
+          matchLabels:
+            release: "{{ .Release.Name }}"
+  {{- end }}
diff --git a/kubernetes/common/cassandra/templates/volumes.yaml b/kubernetes/common/cassandra/templates/volumes.yaml
new file mode 100644 (file)
index 0000000..9640aef
--- /dev/null
@@ -0,0 +1,39 @@
+# Copyright Â© 2018 Amdocs, Bell Canada, AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#{{ if .Values.persistence.enabled }}
+{{- $root := . -}}
+{{ range $i, $e := until (int $root.Values.replicaCount) }}
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: {{ $root.Release.Name }}-{{ $root.Values.service.name }}-{{ $i }}
+  namespace: {{ $root.Release.Namespace }}
+  labels:
+    type: {{ $root.Values.persistence.storageType }}
+    app: {{ $root.Values.service.name }}
+    chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }}
+    release: {{ $root.Release.Name }}
+    heritage: {{ $root.Release.Service }}
+spec:
+  capacity:
+    storage: {{ $root.Values.persistence.size }}
+  accessModes:
+    - {{ $root.Values.persistence.accessMode }}
+  hostPath:
+    path: {{ $root.Values.persistence.mountPath }}/{{ $root.Release.Name }}/{{ $root.Values.persistence.mountSubPath }}-{{ $i }}
+  persistentVolumeReclaimPolicy: {{ $root.Values.persistence.volumeReclaimPolicy }}
+{{ end }}
+#{{ end }}
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright Â© 2018 Amdocs, Bell Canada, AT&T
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Default values for mariadb.
+# Default values for cassandra.
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
 global: # global defaults
   nodePortPrefix: 302
-  persistence: {}
 
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/music/cassandra_music:3.0.0
+image: library/cassandra:3.11
 pullPolicy: Always
 
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# configmapping detail whether it exist locally or not
+# by default it is false, if you wanna configure it then mention
+# locally TRUE value in local values.yaml.
+
+configmapping: false
+
 # application configuration
 config:
+  heap:
+    max: 512M
+    min: 100M
+  jvmOpts: -Dcassandra.consistent.rangemovement=false
+  clusterName: cassandra
+  dataCenter: Pod
+  rackName: Rack
+  autoBootstrap: true
   cassandraUsername: root
-  cassandraPassword: Aa123456
+  cassandraPassword: root
 
 # default number of instances
 replicaCount: 1
@@ -38,38 +53,40 @@ nodeSelector: {}
 
 affinity: {}
 
-# Resource Limit flavor -By Default using small
-flavor: small
-# Segregation for Different environment (Small and Large)
-resources:
-  small:
-    limits:
-      memory: 16Gi
-      cpu: 8000m
-    requests:
-      memory: 8Gi
-      cpu: 4000m
-  large:
-    limits:
-      memory: 32Gi
-      cpu: 16000m
-    requests:
-      memory: 16Gi
-      cpu: 8000m
-  unlimited: {}
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 60
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
 
 readiness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 60
   periodSeconds: 10
 
-## Persist data to a persitent volume
+service:
+  type: ClusterIP
+  name: cassandra
+  portName: cassandra
+  externalPort: 9160
+  internalPort: 9160
+  externalPort2: 7000
+  internalPort2: 7000
+  externalPort3: 7001
+  internalPort3: 7001
+  externalPort4: 7199
+  internalPort4: 7199
+  externalPort5: 9042
+  internalPort5: 9042
+
+podManagementPolicy: OrderedReady
+updateStrategy:
+  type: OnDelete
+
+ingress:
+  enabled: false
+
 persistence:
   enabled: true
 
@@ -86,25 +103,30 @@ persistence:
   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
   ##   GKE, AWS & OpenStack)
   ##
-  # storageClass: "-"
-  accessMode: ReadWriteMany
+  ## storageClass: "-"
+  accessMode: ReadWriteOnce
   size: 2Gi
   mountPath: /dockerdata-nfs
-  mountSubPath: oof/cassandra/data
-service:
-  type: ClusterIP
-  name: oof-has-cassandra
-  portName: oof-has-cassandra
-  externalPort: 9160
-  internalPort: 9160
-  externalPort2: 7000
-  internalPort2: 7000
-  externalPort3: 7001
-  internalPort3: 7001
-  externalPort4: 7199
-  internalPort4: 7199
-  externalPort5: 9042
-  internalPort5: 9042
+  mountSubPath: cassandra
+  storageType: local
+  storageClass: ""
 
-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 364ba7d..272db42 100644 (file)
@@ -41,6 +41,7 @@
 */}}
 {{- define "common.repository.secret" -}}
   {{- $repo := include "common.repository" . }}
+  {{- $repo := default "nexus3.onap.org:10001" $repo }}
   {{- $cred := .Values.global.repositoryCred }}
   {{- $mail := default "@" $cred.mail }}
   {{- $auth := printf "%s:%s" $cred.user $cred.password | b64enc }}
index a70ad10..27db4f3 100644 (file)
@@ -19,7 +19,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
index da71283..7f14d90 100644 (file)
@@ -47,7 +47,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-dgbuilder-image:0.3-STAGING-latest
+image: onap/ccsdk-dgbuilder-image:0.3.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 54096cf..4f99da1 100644 (file)
@@ -24,9 +24,9 @@ data:
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ include "common.fullname" . }}-externalConfig
+  name: {{ include "common.fullname" . }}-external-config
   namespace: {{ include "common.namespace" . }}
 data:
-  my_extra.cnf: |-
-{{ toYaml .Values.externalConfig | indent 4 }}
+  my_extra.cnf: |
+{{ .Values.externalConfig | indent 4 }}
 {{- end -}}
\ No newline at end of file
index d3bad4f..7ca207f 100644 (file)
@@ -40,7 +40,7 @@ spec:
       {{- if .Values.externalConfig }}
         - name: config
           configMap:
-            name: {{ include "common.fullname" . }}-externalConfig
+            name: {{ include "common.fullname" . }}-external-config
       {{- end}}
         - name: localtime
           hostPath:
@@ -126,4 +126,7 @@ spec:
       resources:
         requests:
           storage: {{ .Values.persistence.size | quote }}
+      selector:
+        matchLabels:
+          name: {{ include "common.fullname" . }}
 {{- end }}
index d1558f1..372c106 100644 (file)
@@ -25,6 +25,7 @@ metadata:
     chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
     release: "{{ .Release.Name }}"
     heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
 {{- if .Values.persistence.annotations }}
   annotations:
 {{ toYaml .Values.persistence.annotations | indent 4 }}
@@ -35,5 +36,8 @@ spec:
   resources:
     requests:
       storage: {{ .Values.persistence.size }}
+  selector:
+    matchLabels:
+      name: {{ include "common.fullname" . }}
   storageClassName: "{{ include "common.fullname" . }}-data"
 {{- end -}}
diff --git a/kubernetes/common/music/Chart.yaml b/kubernetes/common/music/Chart.yaml
new file mode 100644 (file)
index 0000000..6802163
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: MUSIC - Multi-site State Coordination Service
+name: music
+version: 3.0.0
diff --git a/kubernetes/common/music/charts/music-cassandra-job/Chart.yaml b/kubernetes/common/music/charts/music-cassandra-job/Chart.yaml
new file mode 100644 (file)
index 0000000..fd42176
--- /dev/null
@@ -0,0 +1,19 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: Cassandra Job - Run CQL Scripts after Cassandra Starts.
+name: music-cassandra-job
+version: 3.0.0
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/resources/LICENSE.txt b/kubernetes/common/music/charts/music-cassandra-job/resources/LICENSE.txt
new file mode 100644 (file)
index 0000000..7f60913
--- /dev/null
@@ -0,0 +1,13 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
\ No newline at end of file
diff --git a/kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin.cql b/kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin.cql
new file mode 100644 (file)
index 0000000..a76d774
--- /dev/null
@@ -0,0 +1,19 @@
+CREATE KEYSPACE IF NOT EXISTS admin
+    WITH REPLICATION = {
+        'class' : '{{.Values.cql.keyspace.replicationClass}}',
+        'replication_factor': {{.Values.cql.keyspace.replicationFactor}}
+    }
+    AND DURABLE_WRITES = true;
+
+CREATE TABLE IF NOT EXISTS admin.keyspace_master (
+    uuid uuid,
+    keyspace_name text,
+    application_name text,
+    is_api boolean,
+    password text,
+    username text,
+    is_aaf boolean,
+    PRIMARY KEY (uuid)
+);
+
+describe keyspaces;
diff --git a/kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin_pw.cql b/kubernetes/common/music/charts/music-cassandra-job/resources/cql/admin_pw.cql
new file mode 100644 (file)
index 0000000..24f2ad7
--- /dev/null
@@ -0,0 +1,8 @@
+CREATE ROLE IF NOT EXISTS {{.Values.cql.adminUser.username}}
+WITH PASSWORD = '{{.Values.cql.adminUser.password}}'
+AND SUPERUSER = true
+AND LOGIN = true;
+
+ALTER ROLE cassandra
+WITH PASSWORD = '{{.Values.cql.adminUser.passwordReplace}}';
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/resources/cql/extra/check.cql b/kubernetes/common/music/charts/music-cassandra-job/resources/cql/extra/check.cql
new file mode 100644 (file)
index 0000000..a516be8
--- /dev/null
@@ -0,0 +1,23 @@
+CREATE KEYSPACE testks
+    WITH REPLICATION = {
+        'class' : '{{.Values.cql.keyspace.replicationClass}}',
+        'replication_factor': {{.Values.cql.keyspace.replicationFactor}}
+    }
+    AND DURABLE_WRITES = true;
+
+CREATE TABLE testks.keyspace_master_table (
+    uuid uuid,
+    keyspace_name text,
+    application_name text,
+    is_api boolean,
+    password text,
+    username text,
+    is_aaf boolean,
+    PRIMARY KEY (uuid)
+);
+
+DESCRIBE KEYSPACES;
+DESCRIBE keyspace testks;
+SELECT * FROM system_auth.roles;
+DROP keyspace testks;
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/templates/configmap.yaml b/kubernetes/common/music/charts/music-cassandra-job/templates/configmap.yaml
new file mode 100755 (executable)
index 0000000..011dccd
--- /dev/null
@@ -0,0 +1,24 @@
+{{/*
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-cql
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/cql/*").AsConfig . | indent 2 }}
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/templates/configmap_extra.yaml b/kubernetes/common/music/charts/music-cassandra-job/templates/configmap_extra.yaml
new file mode 100755 (executable)
index 0000000..72733b3
--- /dev/null
@@ -0,0 +1,24 @@
+{{/*
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-extra-cql
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/cql/extra/*").AsConfig . | indent 2 }}
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/templates/job.yaml b/kubernetes/common/music/charts/music-cassandra-job/templates/job.yaml
new file mode 100644 (file)
index 0000000..6ec282e
--- /dev/null
@@ -0,0 +1,88 @@
+{{/*
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+apiVersion: batch/v1
+kind: Job
+metadata:
+  name: {{ include "common.fullname" . }}-config
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}-job
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}-job
+        release: {{ .Release.Name }}
+    spec:
+      restartPolicy: Never
+      initContainers:
+      - name: {{ include "common.name" . }}-readiness
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - music-cassandra
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+      containers:
+      - name: {{ include "common.name" . }}-update-job
+        image: "{{ .Values.global.repository }}/{{ .Values.job.cassandra.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: CASS_HOSTNAME
+          value: "{{ .Values.job.host }}"
+        - name: USERNAME
+          value: "{{ .Values.cql.adminUser.username }}"
+        - name: PORT
+          value: "{{ .Values.job.port }}"
+        - name: PASSWORD
+          value: "{{ .Values.cql.adminUser.password }}"
+        - name: TIMEOUT
+          value: "{{ .Values.job.timeout }}"
+        - name: DELAY 
+          value: "{{ .Values.job.delay }}"
+        volumeMounts:
+        # Admin cql Files that setup Admin Keyspace and Change Admin user.
+        - name: {{ include "common.name" . }}-cql
+          mountPath: /cql/admin.cql
+          subPath: admin.cql
+        - name: {{ include "common.name" . }}-cql
+          mountPath: /cql/admin_pw.cql
+          subPath: admin_pw.cql
+        # This is where Apps or MISC will put any of their own startup cql scripts.
+        - name: {{ include "common.name" . }}-extra-cql
+          mountPath: /cql/extra
+      volumes:
+      - name: {{ include "common.name" . }}-cql
+        configMap:
+          name: {{ include "common.fullname" . }}-cql
+      - name: {{ include "common.name" . }}-extra-cql
+        configMap:
+          name: {{ include "common.fullname" . }}-extra-cql
+      restartPolicy: Never
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
+
diff --git a/kubernetes/common/music/charts/music-cassandra-job/values.yaml b/kubernetes/common/music/charts/music-cassandra-job/values.yaml
new file mode 100644 (file)
index 0000000..5d9b564
--- /dev/null
@@ -0,0 +1,70 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Default values for cassandra.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global:
+  pullPolicy: Always
+  repository: nexus3.onap.org:10001
+
+  # readiness check
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+
+  # logging agent
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+
+  replicaCount: 3
+
+job:
+  host: music-cassandra
+  port: 9042
+  busybox: 
+    image: library/busybox:latest
+  cassandra: 
+    image: onap/music/cassandra_job:3.0.23
+  timeout: 30
+  delay: 120
+cql:
+  keyspace:
+    replicationClass: "SimpleStrategy"
+    replicationFactor: 3
+  adminUser:
+    username: nelson24 
+    password: nelson24 
+    passwordReplace: A2C4E6G8I0J2L4O6Q8S0U2W4Y6
+    
+podManagementPolicy: OrderedReady
+updateStrategy:
+  type: OnDelete
+
+ingress:
+  enabled: false
+
+tolerations: []
+
+affinity: {}
+
+persistence:
+  enabled: true
+
+resources:
+  limits:
+    cpu: 1
+    memory: 1Gi
+  requests:
+    cpu: 1
+    memory: 1Gi
diff --git a/kubernetes/common/music/charts/music-cassandra/.helmignore b/kubernetes/common/music/charts/music-cassandra/.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/music/charts/music-cassandra/Chart.yaml b/kubernetes/common/music/charts/music-cassandra/Chart.yaml
new file mode 100644 (file)
index 0000000..7aae51a
--- /dev/null
@@ -0,0 +1,19 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: ONAP - Cassandra Database
+name: music-cassandra
+version: 3.0.0
+
diff --git a/kubernetes/common/music/charts/music-cassandra/requirements.yaml b/kubernetes/common/music/charts/music-cassandra/requirements.yaml
new file mode 100644 (file)
index 0000000..a22007c
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+  - name: common
+    version: ~3.0.0
+    repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/common/music/charts/music-cassandra/templates/service.yaml b/kubernetes/common/music/charts/music-cassandra/templates/service.yaml
new file mode 100644 (file)
index 0000000..818c70e
--- /dev/null
@@ -0,0 +1,54 @@
+{{/*
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.servicename" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
+spec:
+  type: {{ .Values.service.type }}
+  # Not working, open k8s bug: https://github.com/kubernetes/kubernetes/issues/58662
+  publishNotReadyAddresses: true
+  ports:
+  {{if eq .Values.service.type "NodePort" -}}
+  - port: {{ .Values.service.internalPort }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.portName }}
+  - port: {{ .Values.service.internalPort2 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+    name: {{ .Values.service.portName3 }}
+  - port: {{ .Values.service.internalPort3 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }}
+    name: {{ .Values.service.portName3 }}
+  {{- else -}}
+  - port: {{ .Values.service.internalPort }}
+    name: {{ .Values.service.portName }}
+  - port: {{ .Values.service.internalPort2 }}
+    name: {{ .Values.service.portName2 }}
+  - port: {{ .Values.service.internalPort3 }}
+    name: {{ .Values.service.portName3 }}
+  {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
diff --git a/kubernetes/common/music/charts/music-cassandra/templates/statefulset.yaml b/kubernetes/common/music/charts/music-cassandra/templates/statefulset.yaml
new file mode 100644 (file)
index 0000000..009c40d
--- /dev/null
@@ -0,0 +1,138 @@
+{{/*
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+
+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:
+  podAntiAffinity:
+    preferredDuringSchedulingIgnoredDuringExecution:
+    - weight: 1
+      podAffinityTerm:
+        labelSelector:
+          matchExpressions:
+            - key: app
+              operator: In
+              values:
+              - {{ .Chart.Name }}
+        topologyKey: kubernetes.io/hostname
+  serviceName: {{ include "common.servicename" . }}
+  replicas: {{ .Values.replicaCount }}
+  podManagementPolicy: {{ .Values.podManagementPolicy }}
+  updateStrategy:
+    type: {{ .Values.updateStrategy.type }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+    spec:
+      containers:
+      - name: {{ include "common.name" . }}
+        image: "{{ .Values.global.repository }}/{{ .Values.image.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        ports:
+        - containerPort: {{ .Values.service.internalPort }}
+        - containerPort: {{ .Values.service.internalPort2 }}
+        - containerPort: {{ .Values.service.internalPort3 }}
+        {{- if eq .Values.liveness.enabled true }}
+        livenessProbe:
+          exec:
+            command:
+            - /bin/bash
+            - -c
+            - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
+          initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+          periodSeconds: {{ .Values.liveness.periodSeconds }}
+        {{ end -}}
+        readinessProbe:
+          exec:
+            command:
+            - /bin/bash
+            - -c
+            - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
+          initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+          timeoutSeconds: {{ .Values.liveness.periodSeconds }}
+        lifecycle:
+          preStop:
+            exec:
+              command: ["/bin/sh", "-c", "PID=$(pidof java) && kill $PID && while ps -p $PID > /dev/null; do sleep 1; done"]
+        env:
+        {{- $seed_size := default 1 .Values.replicaCount | int -}}
+        {{- $global := . }}
+          - name: MAX_HEAP_SIZE
+            value: {{ .Values.config.heap.max }}
+          - name: HEAP_NEWSIZE
+            value: {{ .Values.config.heap.min }}
+          - name: CASSANDRA_SEEDS
+            value: "{{- range $i, $e := until $seed_size }}{{ template "common.fullname" $global }}-{{ $i }}.{{ include "common.servicename" $global }}{{- if (lt ( add 1 $i ) $seed_size ) }},{{- end }}{{- end }}"
+          - name: JVM_OPTS
+            value: {{ .Values.config.jvmOpts | quote }}
+          - name: CASSANDRA_CLUSTER_NAME
+            value: {{ .Values.config.clusterName | quote }}
+          - name: CASSANDRA_DC
+            value: {{ .Values.config.dataCenter | quote }}
+          - name: CASSANDRA_RACK
+            value: {{ .Values.config.rackName | quote }}
+          - name: CASSANDRA_AUTO_BOOTSTRAP
+            value: {{ .Values.config.autoBootstrap | quote }}
+          - name: POD_IP
+            valueFrom:
+              fieldRef:
+                fieldPath: status.podIP
+        volumeMounts:
+          - name: {{ template "common.name" . }}-data
+            mountPath: /var/lib/cassandra
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+  {{- if not .Values.persistence.enabled }}
+      - name: {{ template "common.name" . }}-data
+        emptyDir: {}
+  {{- else }}
+  volumeClaimTemplates:
+    - metadata:
+        name: {{ template "common.name" . }}-data
+        labels:
+          app: {{ template "common.fullname" . }}
+          chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+          release: "{{ .Release.Name }}"
+          heritage: "{{ .Release.Service }}"
+      annotations:
+        volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass }}
+      spec:
+        storageClassName: {{ .Values.persistence.storageClass }}
+        accessModes:
+          - {{ .Values.persistence.accessMode | quote }}
+        resources:
+          requests:
+            storage: {{ .Values.persistence.size | quote }}
+        selector:
+          matchLabels:
+            release: "{{ .Release.Name }}"
+  {{- end }}
diff --git a/kubernetes/common/music/charts/music-cassandra/templates/volumes.yaml b/kubernetes/common/music/charts/music-cassandra/templates/volumes.yaml
new file mode 100644 (file)
index 0000000..83e7e18
--- /dev/null
@@ -0,0 +1,52 @@
+{{/*
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+{{ if .Values.persistence.enabled }}
+{{- $root := . -}}
+{{ range $i, $e := until (atoi (quote $root.Values.replicaCount) | default 3) }}
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: {{ $root.Release.Name }}-{{ $root.Values.service.name }}-{{ $i }}
+  namespace: {{ $root.Release.Namespace }}
+  labels:
+    type: {{ $root.Values.persistence.storageType }}
+    app: {{ $root.Values.service.name }}
+    chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }}
+    release: {{ $root.Release.Name }}
+    heritage: {{ $root.Release.Service }}
+spec:
+  capacity:
+    storage: {{ $root.Values.persistence.size }}
+  accessModes:
+    - {{ $root.Values.persistence.accessMode }}
+  hostPath:
+    path: {{ $root.Values.persistence.mountPath }}/{{ $root.Release.Name }}/{{ $root.Values.persistence.mountSubPath }}-{{$i}}
+  persistentVolumeReclaimPolicy: {{ $root.Values.persistence.volumeReclaimPolicy }}
+  podAntiAffinity:
+    preferredDuringSchedulingIgnoredDuringExecution:
+    - weight: 1
+      podAffinityTerm:
+        labelSelector:
+          matchExpressions:
+            - key: app
+              operator: In
+              values:
+              - "{{ $root.Chart.Name }}"
+        topologyKey: kubernetes.io/hostname
+{{ end }}
+{{ end }}
diff --git a/kubernetes/common/music/charts/music-cassandra/values.yaml b/kubernetes/common/music/charts/music-cassandra/values.yaml
new file mode 100644 (file)
index 0000000..2c75c58
--- /dev/null
@@ -0,0 +1,119 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global:
+  nodePortPrefix: 302
+
+  pullPolicy: Always
+  repository: nexus3.onap.org:10001
+
+  # readiness check
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+
+  # logging agent
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+
+replicaCount: 3
+
+# Cassandra Image - This image is modified from the original on
+# Docker Hub where the Security has been turned on.
+# When logging into DB the default username and password are 'cassandra'
+# kubectl exec -it <cassandra-n> -n <namespace> cqlsh -u cassandra -p cassandra
+image:
+  image: onap/music/cassandra_3_11:3.0.23
+  pullPolicy: Always
+
+# Cassandra ENV configuration
+config:
+  heap:
+    max: 512M
+    min: 100M
+  jvmOpts: -Dcassandra.consistent.rangemovement=false
+  clusterName: music-cluster
+  dataCenter: onap-1
+  rackName: Rack1
+  autoBootstrap: true
+  ports:
+    cql: 9042
+    thrift: 9160
+    # If a JVM Agent is in place
+    # agent: 61621
+
+service:
+  expose: true
+  type: ClusterIP
+  name: music-cassandra
+  internalPort: 9042
+  portName: cql
+  internalPort2: 9160
+  portName2: thrift
+  internalPort3: 61621
+  portName3: agent
+
+# 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
+
+podManagementPolicy: OrderedReady
+updateStrategy:
+  type: OnDelete
+
+ingress:
+  enabled: false
+
+tolerations: []
+
+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: ReadWriteOnce
+  size: 2Gi
+  mountPath: /dockerdata-nfs/
+  mountSubPath: common/cassandra/data
+  storageType: local
+  storageClass: ""
+
+resources:
+  limits:
+    cpu: 4
+    memory: 8Gi
+  requests:
+    cpu: 2
+    memory: 4Gi
diff --git a/kubernetes/common/music/charts/music-tomcat/Chart.yaml b/kubernetes/common/music/charts/music-tomcat/Chart.yaml
new file mode 100755 (executable)
index 0000000..d0fdc60
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: ONAP - MUSIC Tomcat Container
+name: music-tomcat
+version: 3.0.0
diff --git a/kubernetes/common/music/charts/music-tomcat/requirements.yaml b/kubernetes/common/music/charts/music-tomcat/requirements.yaml
new file mode 100755 (executable)
index 0000000..28352e4
--- /dev/null
@@ -0,0 +1,19 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+dependencies:
+  - name: common
+    version: ~3.0.0
+    repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/common/music/charts/music-tomcat/resources/config/music.properties b/kubernetes/common/music/charts/music-tomcat/resources/config/music.properties
new file mode 100755 (executable)
index 0000000..b977ca5
--- /dev/null
@@ -0,0 +1,32 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+my.public.ip=localhost
+all.public.ips=localhost
+my.id=0
+all.ids=0
+### Host Info ###
+zookeeper.host={{.Values.properties.zookeeperHost}}
+cassandra.host={{.Values.properties.cassandraHost}}
+### User Info ###
+cassandra.user={{.Values.properties.cassandraUser}}
+cassandra.password={{.Values.properties.cassandraPassword}}
+### AAF Endpoint ###
+aaf.endpoint.url={{.Values.properties.aafEndpointUrl}}
+### Admin API ###
+# AAF UAT
+aaf.admin.url={{.Values.properties.aafAdminUrl}}
+# AAF PROD
+admin.aaf.role={{.Values.properties.adminAafRole}}
+music.namespace={{.Values.properties.musicNamespace}}
diff --git a/kubernetes/common/music/charts/music-tomcat/templates/configmap.yaml b/kubernetes/common/music/charts/music-tomcat/templates/configmap.yaml
new file mode 100755 (executable)
index 0000000..1585934
--- /dev/null
@@ -0,0 +1,23 @@
+{{/*
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
old mode 100644 (file)
new mode 100755 (executable)
similarity index 62%
rename from kubernetes/oof/charts/oof-has/charts/oof-has-music/templates/deployment.yaml
rename to kubernetes/common/music/charts/music-tomcat/templates/deployment.yaml
index 9dc160f..1fec55c
@@ -1,5 +1,5 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+{{/*
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,6 +12,7 @@
 # WITHOUT 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
@@ -32,22 +33,48 @@ spec:
         release: {{ .Release.Name }}
     spec:
       initContainers:
+      - name: {{ include "common.name" . }}-zookeeper-readiness
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - zookeeper 
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+      - name: {{ include "common.name" . }}-cassandra-readiness
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-music-cassandra-job-config"
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
 # War Container
-       - name: "{{ include "common.name" . }}-war"
-         image: "{{ include "common.repository" . }}/{{ .Values.warImage }}"  #"
-         command: ["cp","/app/MUSIC.war","/webapps"]
-         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-         ports:
-         volumeMounts:
-         - mountPath: /webapps
-           name: shared-data
+      - name: "{{ .Chart.Name }}-war"
+        image: "{{ .Values.repository }}/{{ .Values.warImage }}"
+        command: ["cp","/app/MUSIC.war","/webapps"]
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        ports:
+        volumeMounts:
+        - mountPath: /webapps
+          name: shared-data
       containers:
       # Tomcat Container
-        - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"   #"
+        - name: "{{ include "common.name" . }}"
+          image: "{{ .Values.repository }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          resources:
-{{ include "common.resources" . | indent 12 }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
           # disable liveness probe when breakpoints set in debugger
@@ -73,9 +100,8 @@ spec:
           - name: properties-music
             mountPath: /opt/app/music/etc/music.properties
             subPath: music.properties
-          - name: properties-music
-            mountPath: /opt/app/music/startup.sh
-            subPath: startup.sh
+          resources:
+{{ toYaml .Values.resources | indent 10 }}
       volumes:
         - name: shared-data
           emptyDir: {}
old mode 100644 (file)
new mode 100755 (executable)
similarity index 78%
rename from kubernetes/oof/charts/oof-has/charts/oof-has-zookeeper/templates/service.yaml
rename to kubernetes/common/music/charts/music-tomcat/templates/service.yaml
index f2eed43..f6a086c
@@ -1,5 +1,5 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+{{/*
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,6 +12,7 @@
 # WITHOUT 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
@@ -23,17 +24,19 @@ metadata:
     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.internalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default "302" }}{{ .Values.service.externalPort }}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefixExt | default .Values.nodePortPrefixExt }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.portName }}
     {{- else -}}
     - port: {{ .Values.service.externalPort }}
       targetPort: {{ .Values.service.internalPort }}
-    {{- end}}
       name: {{ .Values.service.portName }}
+    {{- end}}
   selector:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
old mode 100644 (file)
new mode 100755 (executable)
similarity index 75%
rename from kubernetes/oof/charts/oof-has/charts/oof-has-music/values.yaml
rename to kubernetes/common/music/charts/music-tomcat/values.yaml
index f848162..5527800
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+
 #################################################################
 # Global configuration defaults.
 #################################################################
 global:
   nodePortPrefix: 302
+  nodePortPrefixExt: 304
   repository: nexus3.onap.org:10001
+
+  # readiness check
   readinessRepository: oomk8s
   readinessImage: readiness-check:2.0.0
+
+  # logging agent
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
 
@@ -31,7 +36,7 @@ global:
 repository: nexus3.onap.org:10001
 image: library/tomcat:8.5
 pullPolicy: Always
-warImage: onap/music/music:2.5.3
+warImage: onap/music/music:3.0.23
 
 # flag to enable debugging - application support required
 debugEnabled: false
@@ -42,31 +47,18 @@ config:
   passwordCassandra: cassandra1
 
 # default number of instances
-replicaCount: 1
+replicaCount: 3
+
+job:
+  host: cassandra
+  port: 9042
+  busybox:
+    image: library/busybox:latest
 
 nodeSelector: {}
 
 affinity: {}
 
-# Resource Limit flavor -By Default using small
-flavor: small
-# Segregation for Different environment (Small and Large)
-resources:
-  small:
-    limits:
-      memory: 4Gi
-      cpu: 2000m
-    requests:
-      memory: 1Gi
-      cpu: 500m
-  large:
-    limits:
-      memory: 8Gi
-      cpu: 4000m
-    requests:
-      memory: 2Gi
-      cpu: 1000m
-  unlimited: {}
 # probe configuration parameters
 liveness:
   initialDelaySeconds: 10
@@ -81,10 +73,31 @@ readiness:
 
 service:
   type: NodePort
-  name: oof-has-music
+  name: music-tomcat
   externalPort: 8080
   internalPort: 8080
   nodePort: 76
-  portName: oof-has-music
+  portName: tomcat
 ingress:
   enabled: false
+
+#resources: {}
+resources:
+  limits:
+    cpu: 2
+    memory: 2Gi
+  requests:
+    cpu: 2
+    memory: 1Gi
+
+
+properties:
+  zookeeperHost: zookeeper
+  cassandraHost: music-cassandra
+  cassandraUser: nelson24
+  cassandraPassword: nelson24
+
+  # Admin API
+  # ONAP AAF
+  aafAdminUrl:
+
diff --git a/kubernetes/common/music/charts/zookeeper/.helmignore b/kubernetes/common/music/charts/zookeeper/.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/music/charts/zookeeper/Chart.yaml b/kubernetes/common/music/charts/zookeeper/Chart.yaml
new file mode 100644 (file)
index 0000000..01e8173
--- /dev/null
@@ -0,0 +1,15 @@
+name: zookeeper
+home: https://zookeeper.apache.org/
+version: 1.0.2
+appVersion: 3.4.10
+description: Centralized service for maintaining configuration information, naming,
+  providing distributed synchronization, and providing group services.
+icon: https://zookeeper.apache.org/images/zookeeper_small.gif
+sources:
+- https://github.com/apache/zookeeper
+- https://github.com/kubernetes/contrib/tree/master/statefulsets/zookeeper
+maintainers:
+- name: lachie83
+  email: lachlan.evenson@microsoft.com
+- name: kow3ns
+  email: owensk@google.com
diff --git a/kubernetes/common/music/charts/zookeeper/OWNERS b/kubernetes/common/music/charts/zookeeper/OWNERS
new file mode 100644 (file)
index 0000000..dd9facd
--- /dev/null
@@ -0,0 +1,6 @@
+approvers:
+- lachie83
+- kow3ns
+reviewers:
+- lachie83
+- kow3ns
diff --git a/kubernetes/common/music/charts/zookeeper/README.md b/kubernetes/common/music/charts/zookeeper/README.md
new file mode 100644 (file)
index 0000000..22bbac4
--- /dev/null
@@ -0,0 +1,140 @@
+# incubator/zookeeper
+
+This helm chart provides an implementation of the ZooKeeper [StatefulSet](http://kubernetes.io/docs/concepts/abstractions/controllers/statefulsets/) found in Kubernetes Contrib [Zookeeper StatefulSet](https://github.com/kubernetes/contrib/tree/master/statefulsets/zookeeper).
+
+## Prerequisites
+* Kubernetes 1.6+
+* PersistentVolume support on the underlying infrastructure
+* A dynamic provisioner for the PersistentVolumes
+* A familiarity with [Apache ZooKeeper 3.4.x](https://zookeeper.apache.org/doc/current/)
+
+## Chart Components
+This chart will do the following:
+
+* Create a fixed size ZooKeeper ensemble using a [StatefulSet](http://kubernetes.io/docs/concepts/abstractions/controllers/statefulsets/).
+* Create a [PodDisruptionBudget](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-disruption-budget/) so kubectl drain will respect the Quorum size of the ensemble.
+* Create a [Headless Service](https://kubernetes.io/docs/concepts/services-networking/service/) to control the domain of the ZooKeeper ensemble.
+* Create a Service configured to connect to the available ZooKeeper instance on the configured client port.
+* Optionally apply a [Pod Anti-Affinity](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#inter-pod-affinity-and-anti-affinity-beta-feature) to spread the ZooKeeper ensemble across nodes.
+* Optionally start JMX Exporter and Zookeeper Exporter containers inside Zookeeper pods.
+* Optionally create a job which creates Zookeeper chroots (e.g. `/kafka1`).
+
+## Installing the Chart
+You can install the chart with the release name `zookeeper` as below.
+
+```console
+$ helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
+$ helm install --name zookeeper incubator/zookeeper
+```
+
+If you do not specify a name, helm will select a name for you.
+
+### Installed Components
+You can use `kubectl get` to view all of the installed components.
+
+```console{%raw}
+$ kubectl get all -l app=zookeeper
+NAME:   zookeeper
+LAST DEPLOYED: Wed Apr 11 17:09:48 2018
+NAMESPACE: default
+STATUS: DEPLOYED
+
+RESOURCES:
+==> v1beta1/PodDisruptionBudget
+NAME       MIN AVAILABLE  MAX UNAVAILABLE  ALLOWED DISRUPTIONS  AGE
+zookeeper  N/A            1                1                    2m
+
+==> v1/Service
+NAME                TYPE       CLUSTER-IP     EXTERNAL-IP  PORT(S)                     AGE
+zookeeper-headless  ClusterIP  None           <none>       2181/TCP,3888/TCP,2888/TCP  2m
+zookeeper           ClusterIP  10.98.179.165  <none>       2181/TCP                    2m
+
+==> v1beta1/StatefulSet
+NAME       DESIRED  CURRENT  AGE
+zookeeper  3        3        2m
+```
+
+1. `statefulsets/zookeeper` is the StatefulSet created by the chart.
+1. `po/zookeeper-<0|1|2>` are the Pods created by the StatefulSet. Each Pod has a single container running a ZooKeeper server.
+1. `svc/zookeeper-headless` is the Headless Service used to control the network domain of the ZooKeeper ensemble.
+1. `svc/zookeeper` is a Service that can be used by clients to connect to an available ZooKeeper server.
+
+## Configuration
+You can specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
+
+Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
+
+```console
+$ helm install --name my-release -f values.yaml incubator/zookeeper
+```
+
+## Default Values
+
+- You can find all user-configurable settings, their defaults and commentary about them in [values.yaml](values.yaml).
+
+## Deep Dive
+
+## Image Details
+The image used for this chart is based on Ubuntu 16.04 LTS. This image is larger than Alpine or BusyBox, but it provides glibc, rather than ulibc or mucl, and a JVM release that is built against it. You can easily convert this chart to run against a smaller image with a JVM that is built against that image's libc. However, as far as we know, no Hadoop vendor supports, or has verified, ZooKeeper running on such a JVM.
+
+## JVM Details
+The Java Virtual Machine used for this chart is the OpenJDK JVM 8u111 JRE (headless).
+
+## ZooKeeper Details
+The ZooKeeper version is the latest stable version (3.4.10). The distribution is installed into /opt/zookeeper-3.4.10. This directory is symbolically linked to /opt/zookeeper. Symlinks are created to simulate a rpm installation into /usr.
+
+## Failover
+You can test failover by killing the leader. Insert a key:
+```console
+$ kubectl exec zookeeper-0 -- /opt/zookeeper/bin/zkCli.sh create /foo bar;
+$ kubectl exec zookeeper-2 -- /opt/zookeeper/bin/zkCli.sh get /foo;
+```
+
+Watch existing members:
+```console
+$ kubectl run --attach bbox --image=busybox --restart=Never -- sh -c 'while true; do for i in 0 1 2; do echo zk-${i} $(echo stats | nc <pod-name>-${i}.<headless-service-name>:2181 | grep Mode); sleep 1; done; done';
+
+zk-2 Mode: follower
+zk-0 Mode: follower
+zk-1 Mode: leader
+zk-2 Mode: follower
+```
+
+Delete Pods and wait for the StatefulSet controller to bring them back up:
+```console
+$ kubectl delete po -l app=zookeeper
+$ kubectl get po --watch-only
+NAME          READY     STATUS    RESTARTS   AGE
+zookeeper-0   0/1       Running   0          35s
+zookeeper-0   1/1       Running   0         50s
+zookeeper-1   0/1       Pending   0         0s
+zookeeper-1   0/1       Pending   0         0s
+zookeeper-1   0/1       ContainerCreating   0         0s
+zookeeper-1   0/1       Running   0         19s
+zookeeper-1   1/1       Running   0         40s
+zookeeper-2   0/1       Pending   0         0s
+zookeeper-2   0/1       Pending   0         0s
+zookeeper-2   0/1       ContainerCreating   0         0s
+zookeeper-2   0/1       Running   0         19s
+zookeeper-2   1/1       Running   0         41s
+```
+
+Check the previously inserted key:
+```console
+$ kubectl exec zookeeper-1 -- /opt/zookeeper/bin/zkCli.sh get /foo
+ionid = 0x354887858e80035, negotiated timeout = 30000
+
+WATCHER::
+
+WatchedEvent state:SyncConnected type:None path:null
+bar
+```
+
+## Scaling
+ZooKeeper can not be safely scaled in versions prior to 3.5.x. This chart currently uses 3.4.x. There are manual procedures for scaling a 3.4.x ensemble, but as noted in the [ZooKeeper 3.5.2 documentation](https://zookeeper.apache.org/doc/r3.5.2-alpha/zookeeperReconfig.html) these procedures require a rolling restart, are known to be error prone, and often result in a data loss.
+
+While ZooKeeper 3.5.x does allow for dynamic ensemble reconfiguration (including scaling membership), the current status of the release is still alpha, and 3.5.x is therefore not recommended for production use.
+
+## Limitations
+* StatefulSet and PodDisruptionBudget are beta resources.
+* Only supports storage options that have backends for persistent volume claims.
diff --git a/kubernetes/common/music/charts/zookeeper/templates/NOTES.txt b/kubernetes/common/music/charts/zookeeper/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..4f7a27b
--- /dev/null
@@ -0,0 +1,7 @@
+Thank you for installing ZooKeeper on your Kubernetes cluster. More information
+about ZooKeeper can be found at https://zookeeper.apache.org/doc/current/
+
+Your connection string should look like:
+  {{ template "common.fullname" . }}-0.{{ template "common.fullname" . }}-headless:{{ .Values.service.ports.client.port }},{{ template "common.fullname" . }}-1.{{ template "common.fullname" . }}-headless:{{ .Values.service.ports.client.port }},...
+
+You can also use the client service {{ template "common.fullname" . }}:{{ .Values.service.ports.client.port }} to connect to an available ZooKeeper server.
diff --git a/kubernetes/common/music/charts/zookeeper/templates/_helpers.tpl b/kubernetes/common/music/charts/zookeeper/templates/_helpers.tpl
new file mode 100644 (file)
index 0000000..1ef5353
--- /dev/null
@@ -0,0 +1,32 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "common.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "common.fullname" -}}
+{{- if .Values.fullnameOverride -}}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "zookeeper.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/config-jmx-exporter.yaml b/kubernetes/common/music/charts/zookeeper/templates/config-jmx-exporter.yaml
new file mode 100644 (file)
index 0000000..aeb9a2c
--- /dev/null
@@ -0,0 +1,19 @@
+{{- if .Values.exporters.jmx.enabled }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ .Release.Name }}-jmx-exporter
+  labels:
+    app: {{ template "common.name" . }}
+    chart: {{ .Chart.Name }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+  config.yml: |-
+    hostPort: 127.0.0.1:{{ .Values.env.JMXPORT }}
+    lowercaseOutputName: {{ .Values.exporters.jmx.config.lowercaseOutputName }}
+    rules:
+{{ .Values.exporters.jmx.config.rules | toYaml | indent 6 }}
+    ssl: false
+    startDelaySeconds: {{ .Values.exporters.jmx.config.startDelaySeconds }}
+{{- end }}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/job-chroots.yaml b/kubernetes/common/music/charts/zookeeper/templates/job-chroots.yaml
new file mode 100644 (file)
index 0000000..38592dd
--- /dev/null
@@ -0,0 +1,62 @@
+{{- if .Values.jobs.chroots.enabled }}
+{{- $root := . }}
+{{- $job := .Values.jobs.chroots }}
+apiVersion: batch/v1
+kind: Job
+metadata:
+  name: {{ template "common.fullname" . }}-chroots
+  annotations:
+    "helm.sh/hook": post-install,post-upgrade
+    "helm.sh/hook-weight": "-5"
+    "helm.sh/hook-delete-policy": hook-succeeded
+  labels:
+    app: {{ template "common.name" . }}
+    chart: {{ .Chart.Name }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+    component: jobs
+    job: chroots
+spec:
+  activeDeadlineSeconds: {{ $job.activeDeadlineSeconds }}
+  backoffLimit: {{ $job.backoffLimit }}
+  completions: {{ $job.completions }}
+  parallelism: {{ $job.parallelism }}
+  template:
+    metadata:
+      labels:
+        app: {{ template "common.name" . }}
+        release: {{ .Release.Name }}
+        component: jobs
+        job: chroots
+    spec:
+      restartPolicy: {{ $job.restartPolicy }}
+      containers:
+        - name: main
+          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          command:
+            - /bin/bash
+            - -o
+            - pipefail
+            - -euc
+  {{- $port := .Values.service.ports.client.port }}
+            - >
+              sleep 15;
+              export SERVER={{ template "common.fullname" $root }}:{{ $port }};
+  {{- range $job.config.create }}
+              echo '==> {{ . }}';
+              echo '====> Create chroot if does not exist.';
+              zkCli.sh -server {{ template "common.fullname" $root }}:{{ $port }} get {{ . }} 2>&1 >/dev/null | grep 'cZxid'
+              || zkCli.sh -server {{ template "common.fullname" $root }}:{{ $port }} create {{ . }} "";
+              echo '====> Confirm chroot exists.';
+              zkCli.sh -server {{ template "common.fullname" $root }}:{{ $port }} get {{ . }} 2>&1 >/dev/null | grep 'cZxid';
+              echo '====> Chroot exists.';
+  {{- end }}
+          env:
+          {{- range $key, $value := $job.env }}
+            - name: {{ $key | upper | replace "." "_" }}
+              value: {{ $value | quote }}
+          {{- end }}
+          resources:
+{{ toYaml $job.resources | indent 12 }}
+{{- end -}}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/poddisruptionbudget.yaml b/kubernetes/common/music/charts/zookeeper/templates/poddisruptionbudget.yaml
new file mode 100644 (file)
index 0000000..7a9f3fe
--- /dev/null
@@ -0,0 +1,17 @@
+apiVersion: policy/v1beta1
+kind: PodDisruptionBudget
+metadata:
+  name: {{ template "common.fullname" . }}
+  labels:
+    app: {{ template "common.name" . }}
+    chart: {{ .Chart.Name }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+    component: server
+spec:
+  selector:
+    matchLabels:
+      app: {{ template "common.name" . }}
+      release: {{ .Release.Name }}
+      component: server
+{{ toYaml .Values.podDisruptionBudget | indent 2 }}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/service-headless.yaml b/kubernetes/common/music/charts/zookeeper/templates/service-headless.yaml
new file mode 100644 (file)
index 0000000..70ebf60
--- /dev/null
@@ -0,0 +1,21 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ template "common.fullname" . }}-headless
+  labels:
+    app: {{ template "common.name" . }}
+    chart: {{ .Chart.Name }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  clusterIP: None
+  ports:
+{{- range $key, $port := .Values.ports }}
+    - name: {{ $key }}
+      port: {{ $port.containerPort }}
+      targetPort: {{ $port.name }}
+      protocol: {{ $port.protocol }}
+{{- end }}
+  selector:
+    app: {{ template "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/service.yaml b/kubernetes/common/music/charts/zookeeper/templates/service.yaml
new file mode 100644 (file)
index 0000000..6ac3066
--- /dev/null
@@ -0,0 +1,23 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.service.name }}
+  labels:
+    app: {{ template "common.name" . }}
+    chart: {{ .Chart.Name }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+{{- with .Values.service.annotations }}
+{{ toYaml . | indent 4 }}
+{{- end }}
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+  {{- range $key, $value := .Values.service.ports }}
+    - name: {{ $key }}
+{{ toYaml $value | indent 6 }}
+  {{- end }}
+  selector:
+    app: {{ template "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/statefulset.yaml b/kubernetes/common/music/charts/zookeeper/templates/statefulset.yaml
new file mode 100644 (file)
index 0000000..135b59e
--- /dev/null
@@ -0,0 +1,191 @@
+apiVersion: apps/v1beta1
+kind: StatefulSet
+metadata:
+  name: {{ template "common.fullname" . }}
+  labels:
+    app: {{ template "common.name" . }}
+    chart: {{ .Chart.Name }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+    component: server
+spec:
+  podAntiAffinity:
+    preferredDuringSchedulingIgnoredDuringExecution:
+    - weight: 1
+      podAffinityTerm:
+        labelSelector:
+          matchExpressions:
+            - key: app
+              operator: In
+              values:
+              - "{{ .Chart.Name }}"
+  serviceName: {{ template "common.fullname" . }}-headless
+  replicas: {{ .Values.replicaCount }}
+  terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
+  selector:
+    matchLabels:
+      app: {{ template "common.name" . }}
+      release: {{ .Release.Name }}
+      component: server
+  updateStrategy:
+{{ toYaml .Values.updateStrategy | indent 4 }}
+  template:
+    metadata:
+      labels:
+        app: {{ template "common.name" . }}
+        release: {{ .Release.Name }}
+        component: server
+      {{- if .Values.podLabels }}
+        ## Custom pod labels
+        {{- range $key, $value := .Values.podLabels }}
+        {{ $key }}: {{ $value | quote }}
+        {{- end }}
+      {{- end }}
+      annotations:
+      {{- if .Values.podAnnotations }}
+        ## Custom pod annotations
+        {{- range $key, $value := .Values.podAnnotations }}
+        {{ $key }}: {{ $value | quote }}
+        {{- end }}
+      {{- end }}
+    spec:
+{{- if .Values.schedulerName }}
+      schedulerName: "{{ .Values.schedulerName }}"
+{{- end }}
+      securityContext:
+{{ toYaml .Values.securityContext | indent 8 }}
+      containers:
+
+        - name: zookeeper
+          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          command:
+            - /bin/bash
+            - -xec
+            - zkGenConfig.sh && exec zkServer.sh start-foreground
+          ports:
+{{- range $key, $port := .Values.ports }}
+            - name: {{ $key }}
+{{ toYaml $port | indent 14 }}
+{{- end }}
+          livenessProbe:
+{{ toYaml .Values.livenessProbe | indent 12 }}
+          readinessProbe:
+{{ toYaml .Values.readinessProbe | indent 12 }}
+          env:
+            - name: ZK_REPLICAS
+              value: {{ .Values.replicaCount | quote }}
+          {{- range $key, $value := .Values.env }}
+            - name: {{ $key | upper | replace "." "_" }}
+              value: {{ $value | quote }}
+          {{- end }}
+          resources:
+{{ include "common.resources" . }}
+          volumeMounts:
+            - name: zookeeper-data
+              mountPath: /var/lib/zookeeper
+
+{{- if .Values.exporters.jmx.enabled }}
+        - name: jmx-exporter
+          image: "{{ .Values.exporters.jmx.image.repository }}:{{ .Values.exporters.jmx.image.tag }}"
+          imagePullPolicy: {{ .Values.exporters.jmx.image.pullPolicy }}
+          ports:
+  {{- range $key, $port := .Values.exporters.jmx.ports }}
+            - name: {{ $key }}
+{{ toYaml $port | indent 14 }}
+  {{- end }}
+          livenessProbe:
+{{ toYaml .Values.exporters.jmx.livenessProbe | indent 12 }}
+          readinessProbe:
+{{ toYaml .Values.exporters.jmx.readinessProbe | indent 12 }}
+          env:
+            - name: SERVICE_PORT
+              value: {{ .Values.exporters.jmx.ports.jmxxp.containerPort | quote }}
+          {{- with .Values.exporters.jmx.env }}
+            {{- range $key, $value := . }}
+            - name: {{ $key | upper | replace "." "_" }}
+              value: {{ $value | quote }}
+            {{- end }}
+          {{- end }}
+          resources:
+{{ toYaml .Values.exporters.jmx.resources | indent 12 }}
+          volumeMounts:
+            - name: config-jmx-exporter
+              mountPath: /opt/jmx_exporter/config.yml
+              subPath: config.yml
+{{- end }}
+
+{{- if .Values.exporters.zookeeper.enabled }}
+        - name: zookeeper-exporter
+          image: "{{ .Values.exporters.zookeeper.image.repository }}:{{ .Values.exporters.zookeeper.image.tag }}"
+          imagePullPolicy: {{ .Values.exporters.zookeeper.image.pullPolicy }}
+          args:
+            - -bind-addr=:{{ .Values.exporters.zookeeper.ports.zookeeperxp.containerPort }}
+            - -metrics-path={{ .Values.exporters.zookeeper.path }}
+            - -zookeeper=localhost:{{ .Values.ports.client.containerPort }}
+            - -log-level={{ .Values.exporters.zookeeper.config.logLevel }}
+            - -reset-on-scrape={{ .Values.exporters.zookeeper.config.resetOnScrape }}
+          ports:
+  {{- range $key, $port := .Values.exporters.zookeeper.ports }}
+            - name: {{ $key }}
+{{ toYaml $port | indent 14 }}
+  {{- end }}
+          livenessProbe:
+{{ toYaml .Values.exporters.zookeeper.livenessProbe | indent 12 }}
+          readinessProbe:
+{{ toYaml .Values.exporters.zookeeper.readinessProbe | indent 12 }}
+          env:
+          {{- range $key, $value := .Values.exporters.zookeeper.env }}
+            - name: {{ $key | upper | replace "." "_" }}
+              value: {{ $value | quote }}
+          {{- end }}
+          resources:
+{{ toYaml .Values.exporters.zookeeper.resources | indent 12 }}
+{{- end }}
+
+    {{- with .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml . | indent 8 }}
+    {{- end }}
+    {{- with .Values.affinity }}
+      affinity:
+{{ toYaml . | indent 8 }}
+    {{- end }}
+    {{- with .Values.tolerations }}
+      tolerations:
+{{ toYaml . | indent 8 }}
+    {{- end }}
+      {{- if (or .Values.exporters.jmx.enabled (not .Values.persistence.enabled)) }}
+      volumes:
+        {{- if .Values.exporters.jmx.enabled }}
+        - name: config-jmx-exporter
+          configMap:
+            name: {{ .Release.Name }}-jmx-exporter
+        {{- end }}
+        {{- if not .Values.persistence.enabled }}
+        - name: zookeeper-data
+          emptyDir: {}
+        {{- end }}
+      {{- end }}
+  {{- if .Values.persistence.enabled }}
+  volumeClaimTemplates:
+    - metadata:
+        name: zookeeper-data
+        labels:
+          app: {{ .Chart.Name }}
+          chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+          release: "{{ .Release.Name }}"
+          heritage: "{{ .Release.Service }}"
+      annotations:
+        volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass }}
+      spec:
+        storageClassName: {{ .Values.persistence.storageClass }}
+        accessModes:
+          - {{ .Values.persistence.accessMode | quote }}
+        resources:
+          requests:
+            storage: {{ .Values.persistence.size | quote }}
+        selector:
+          matchLabels:
+            release: "{{ .Release.Name }}"
+  {{- end }}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/volumes.yaml b/kubernetes/common/music/charts/zookeeper/templates/volumes.yaml
new file mode 100644 (file)
index 0000000..b0c05fd
--- /dev/null
@@ -0,0 +1,25 @@
+{{ if .Values.persistence.enabled }}
+{{- $root := . -}}
+{{ range $i, $e := until (atoi (quote $root.Values.replicaCount) | default 3) }}
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: {{ $root.Release.Name }}-{{ $root.Values.service.name }}-{{ $i }}
+  namespace: {{ $root.Release.Namespace }}
+  labels:
+    type: {{ $root.Values.persistence.storageType }}
+    app: {{ $root.Values.service.name }}
+    chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }}
+    release: {{ $root.Release.Name }}
+    heritage: {{ $root.Release.Service }}
+spec:
+  capacity:
+    storage: {{ $root.Values.persistence.size }}
+  accessModes:
+    - {{ $root.Values.persistence.accessMode }}
+  hostPath:
+    path: {{ $root.Values.persistence.mountPath }}/{{ $root.Release.Name }}/{{ $root.Values.persistence.mountSubPath }}-{{$i}}
+  persistentVolumeReclaimPolicy: {{ $root.Values.persistence.volumeReclaimPolicy }}
+{{ end }}
+{{ end }}
diff --git a/kubernetes/common/music/charts/zookeeper/values.yaml b/kubernetes/common/music/charts/zookeeper/values.yaml
new file mode 100644 (file)
index 0000000..ea02e61
--- /dev/null
@@ -0,0 +1,284 @@
+## As weighted quorums are not supported, it is imperative that an odd number of replicas
+## be chosen. Moreover, the number of replicas should be either 1, 3, 5, or 7.
+##
+## ref: https://github.com/kubernetes/contrib/tree/master/statefulsets/zookeeper#stateful-set
+replicaCount: 3  # Desired quantity of ZooKeeper pods. This should always be (1,3,5, or 7)
+
+podDisruptionBudget:
+  maxUnavailable: 1  # Limits how many Zokeeper pods may be unavailable due to voluntary disruptions.
+
+terminationGracePeriodSeconds: 1800  # Duration in seconds a Zokeeper pod needs to terminate gracefully.
+
+## OnDelete requires you to manually delete each pod when making updates.
+## This approach is at the moment safer than RollingUpdate because replication
+## may be incomplete when replication source pod is killed.
+##
+## ref: http://blog.kubernetes.io/2017/09/kubernetes-statefulsets-daemonsets.html
+updateStrategy:
+  type: OnDelete  # Pods will only be created when you manually delete old pods.
+
+## refs:
+## - https://github.com/kubernetes/contrib/tree/master/statefulsets/zookeeper
+## - https://github.com/kubernetes/contrib/blob/master/statefulsets/zookeeper/Makefile#L1
+image:
+  #repository: nexus3.onap.org:10001/library/zookeeper
+  #tag: 3.3
+  repository: gcr.io/google_samples/k8szk  # Container image repository for zookeeper container.
+  tag: v3  # Container image tag for zookeeper container.
+  pullPolicy: IfNotPresent  # Image pull criteria for zookeeper container.
+
+service:
+  name: zookeeper
+  type: ClusterIP  # Exposes zookeeper on a cluster-internal IP.
+  annotations: {}  # Arbitrary non-identifying metadata for zookeeper service.
+    ## AWS example for use with LoadBalancer service type.
+    # external-dns.alpha.kubernetes.io/hostname: zookeeper.cluster.local
+    # service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
+    # service.beta.kubernetes.io/aws-load-balancer-internal: "true"
+  ports:
+    client:
+      port: 2181  # Service port number for client port.
+      targetPort: client  # Service target port for client port.
+      protocol: TCP  # Service port protocol for client port.
+
+
+ports:
+  client:
+    containerPort: 2181  # Port number for zookeeper container client port.
+    protocol: TCP  # Protocol for zookeeper container client port.
+  election:
+    containerPort: 3888  # Port number for zookeeper container election port.
+    protocol: TCP  # Protocol for zookeeper container election port.
+  server:
+    containerPort: 2888  # Port number for zookeeper container server port.
+    protocol: TCP  # Protocol for zookeeper container server port.
+
+# Resource Limit flavor -By Default using small
+flavor: large 
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 1 
+      memory: 1Gi 
+    requests:
+      cpu: 500m 
+      memory: 500Mi 
+  large:
+    limits:
+      cpu: 3
+      memory: 2Gi
+    requests:
+      cpu: 2 
+      memory: 1Gi 
+  unlimited: {}
+
+nodeSelector: {}  # Node label-values required to run zookeeper pods.
+
+tolerations: []  # Node taint overrides for zookeeper pods.
+
+affinity: {}  # Criteria by which pod label-values influence scheduling for zookeeper pods.
+affinity: 
+  podAntiAffinity:
+    requiredDuringSchedulingIgnoredDuringExecution:
+    - topologyKey: "kubernetes.io/hostname"
+      labelSelector:
+        matchLabels:
+          release: zookeeper
+
+podAnnotations: {}  # Arbitrary non-identifying metadata for zookeeper pods.
+
+podLabels: {}  # Key/value pairs that are attached to zookeeper pods.
+
+livenessProbe:
+  exec:
+    command:
+      - zkOk.sh
+  initialDelaySeconds: 20
+
+readinessProbe:
+  exec:
+    command:
+      - zkOk.sh
+  initialDelaySeconds: 20
+
+securityContext:
+  fsGroup: 1000
+  #runAsUser: 1000
+
+persistence:
+  enabled: true
+  ## zookeeper 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)
+  ##
+  volumeReclaimPolicy: Retain
+  accessMode: ReadWriteOnce
+  mountPath: /dockerdata-nfs
+  mountSubPath: music/zookeeper
+  storageType: local
+  storageClass: ""
+  size: 4Gi
+
+## Exporters query apps for metrics and make those metrics available for
+## Prometheus to scrape.
+exporters:
+
+  jmx:
+    enabled: false
+    image:
+      repository: sscaling/jmx-prometheus-exporter
+      tag: 0.3.0
+      pullPolicy: IfNotPresent
+    config:
+      lowercaseOutputName: false
+      rules:
+        - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+)><>(\\w+)"
+          name: "zookeeper_$2"
+        - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+)><>(\\w+)"
+          name: "zookeeper_$3"
+          labels:
+            replicaId: "$2"
+        - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+)><>(\\w+)"
+          name: "zookeeper_$4"
+          labels:
+            replicaId: "$2"
+            memberType: "$3"
+        - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+), name3=(\\w+)><>(\\w+)"
+          name: "zookeeper_$4_$5"
+          labels:
+            replicaId: "$2"
+            memberType: "$3"
+      startDelaySeconds: 30
+    env: {}
+    resources: {}
+    path: /metrics
+    ports:
+      jmxxp:
+        containerPort: 9404
+        protocol: TCP
+    livenessProbe:
+      httpGet:
+        path: /metrics
+        port: jmxxp
+      initialDelaySeconds: 30
+      periodSeconds: 15
+      timeoutSeconds: 60
+      failureThreshold: 8
+      successThreshold: 1
+    readinessProbe:
+      httpGet:
+        path: /metrics
+        port: jmxxp
+      initialDelaySeconds: 30
+      periodSeconds: 15
+      timeoutSeconds: 60
+      failureThreshold: 8
+      successThreshold: 1
+
+  zookeeper:
+    enabled: false
+    image:
+      repository: josdotso/zookeeper-exporter
+      tag: v1.1.2
+      pullPolicy: IfNotPresent
+    config:
+      logLevel: info
+      resetOnScrape: "true"
+    env: {}
+    resources: {}
+    path: /metrics
+    ports:
+      zookeeperxp:
+        containerPort: 9141
+        protocol: TCP
+    livenessProbe:
+      httpGet:
+        path: /metrics
+        port: zookeeperxp
+      initialDelaySeconds: 30
+      periodSeconds: 15
+      timeoutSeconds: 60
+      failureThreshold: 8
+      successThreshold: 1
+    readinessProbe:
+      httpGet:
+        path: /metrics
+        port: zookeeperxp
+      initialDelaySeconds: 30
+      periodSeconds: 15
+      timeoutSeconds: 60
+      failureThreshold: 8
+      successThreshold: 1
+
+env:
+
+  ## Options related to JMX exporter.
+  JMXAUTH: "false"
+  JMXDISABLE: "false"
+  JMXPORT: 1099
+  JMXSSL: "false"
+
+  ## The port on which the server will accept client requests.
+  ZK_CLIENT_PORT: 2181
+
+  ## The port on which the ensemble performs leader election.
+  ZK_ELECTION_PORT: 3888
+
+  ## The JVM heap size.
+  ZK_HEAP_SIZE: 2G
+
+  ## The number of Ticks that an ensemble member is allowed to perform leader
+  ## election.
+  ZK_INIT_LIMIT: 5
+
+  ## The Log Level that for the ZooKeeper processes logger.
+  ## Choices are `TRACE,DEBUG,INFO,WARN,ERROR,FATAL`.
+  ZK_LOG_LEVEL: INFO
+
+  ## The maximum number of concurrent client connections that
+  ## a server in the ensemble will accept.
+  ZK_MAX_CLIENT_CNXNS: 60
+
+  ## The maximum session timeout that the ensemble will allow a client to request.
+  ## Upstream default is `20 * ZK_TICK_TIME`
+  ZK_MAX_SESSION_TIMEOUT: 40000
+
+  ## The minimum session timeout that the ensemble will allow a client to request.
+  ## Upstream default is `2 * ZK_TICK_TIME`.
+  ZK_MIN_SESSION_TIMEOUT: 4000
+
+  ## The delay, in hours, between ZooKeeper log and snapshot cleanups.
+  ZK_PURGE_INTERVAL: 0
+
+  ## The port on which the leader will send events to followers.
+  ZK_SERVER_PORT: 2888
+
+  ## The number of snapshots that the ZooKeeper process will retain if
+  ## `ZK_PURGE_INTERVAL` is set to a value greater than `0`.
+  ZK_SNAP_RETAIN_COUNT: 3
+
+  ## The number of Tick by which a follower may lag behind the ensembles leader.
+  ZK_SYNC_LIMIT: 10
+
+  ## The number of wall clock ms that corresponds to a Tick for the ensembles
+  ## internal time.
+  ZK_TICK_TIME: 2000
+
+jobs:
+  chroots:
+    enabled: false
+    activeDeadlineSeconds: 300
+    backoffLimit: 5
+    completions: 1
+    config:
+      create: []
+        # - /kafka
+        # - /ureplicator
+    env: []
+    parallelism: 1
+    resources: {}
+    restartPolicy: Never
diff --git a/kubernetes/common/music/requirements.yaml b/kubernetes/common/music/requirements.yaml
new file mode 100644 (file)
index 0000000..220dc46
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+  - name: common
+    version: ~3.0.0
+    repository: '@local'
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # 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
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
   nodePortPrefix: 302
-  persistence: {}
+  repository: nexus3.onap.org:10001
 
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
 
-# application image
-repository: nexus3.onap.org:10001
-image: zookeeper:3.4
-pullPolicy: Always
+# flag to enable debugging - application support required
+debugEnabled: false
 
 # default number of instances
-replicaCount: 1
+replicaCount: 3
+
 nodeSelector: {}
+
 affinity: {}
-# Resource Limit flavor -By Default using small
-flavor: small
-# Segregation for Different environment (Small and Large)
-resources:
-  small:
-    limits:
-      memory: 4Gi
-      cpu: 2000m
-    requests:
-      memory: 1Gi
-      cpu: 500m
-  large:
-    limits:
-      memory: 8Gi
-      cpu: 4000m
-    requests:
-      memory: 2Gi
-      cpu: 1000m
-  unlimited: {}
+
 # probe configuration parameters
 liveness:
   initialDelaySeconds: 10
@@ -56,14 +41,10 @@ liveness:
   # 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: oof-has-zk
-  externalPort: 2181
-  internalPort: 2181
-  portName: oof-has-zookeeper
-ingress:
-  enabled: false
+
+resources: {}
+
index 1744940..f73b10f 100644 (file)
@@ -251,4 +251,7 @@ spec:
       resources:
         requests:
           storage: {{ .Values.persistence.size }}
+      selector:
+        matchLabels:
+          name: {{ include "common.fullname" . }}
   {{ end }}
index 67ba1ce..7e9ef34 100644 (file)
@@ -54,7 +54,7 @@ mariadb-galera:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-apps-ms-neng:latest
+image: onap/ccsdk-apps-ms-neng:0.3.1
 pullPolicy: IfNotPresent
 
 # application configuration
index 3c7ae65..db4a256 100644 (file)
@@ -149,4 +149,7 @@ spec:
       resources:
         requests:
           storage: {{ .Values.persistence.size }}
+      selector:
+        matchLabels:
+          name: {{ include "common.fullname" . }}
 #{{ end }}
index ce7aa1e..09d0db0 100644 (file)
@@ -20,7 +20,7 @@
 tag_version: {{ include "common.repository" . }}/{{ .Values.componentImages.datafile_collector }}
 {{ end }}
 host_port: 30223
-host_port_secure: 30224
+host_port_secure: 30262
 dmaap_mr_host: "{{ .Values.config.address.message_router }}"
 dmaap_mr_port: 3904
 dmaap_mr_user: "admin"
index 24980e5..f6a4c7c 100644 (file)
@@ -20,7 +20,7 @@
 {{ if .Values.componentImages.holmes_engine }}
   "he_image" : '{{ include "common.repository" . }}/{{ .Values.componentImages.holmes_engine }}',
 {{ end }}
-  "msb_hostname": "{{ .Values.config.address.msb_discovery }}.{{include "common.namespace" . }}",
+  "msb_hostname": "{{ .Values.config.address.msb_iag }}.{{include "common.namespace" . }}",
   "dcae_CL_publish_url": "http://{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}:3904/events/unauthenticated.DCAE_CL_OUTPUT",
   "ves_fault_publish_url": "http://{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}:3904/events/unauthenticated.SEC_FAULT_OUTPUT",
   "pgaas_cluster_name" : "{{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }}",
index c5a73e5..7ede89e 100644 (file)
@@ -21,7 +21,7 @@
   "hr_image" : '{{ include "common.repository" . }}/{{ .Values.componentImages.holmes_rules }}',
 {{ end }}
 
-  "msb_hostname": "{{ .Values.config.address.msb_discovery }}.{{include "common.namespace" . }}",
+  "msb_hostname": "{{ .Values.config.address.msb_iag }}.{{include "common.namespace" . }}",
   "pgaas_cluster_name" : "{{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }}",
   "database_name":"holmes"
 }
index 18632d1..6e4ad08 100644 (file)
@@ -38,6 +38,7 @@ config:
     dmaap_dr_prov: dmaap-dr-prov
     message_router: message-router
     msb_discovery: msb-discovery
+    msb_iag: msb-iag
     policy_pdp: pdp
     sdc: sdc-be
   # redisCaching is a string not a boolean!
@@ -73,24 +74,24 @@ postgres:
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.4.3
+image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.4.5
 
 # DCAE component images to be deployed via Cloudify Manager
 # Use to override default setting in blueprints
 componentImages:
   config_binding_service: onap/org.onap.dcaegen2.platform.configbinding.app-app:2.2.3
-  datafile_collector: onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.0
+  datafile_collector: onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.3
   deployment_handler: onap/org.onap.dcaegen2.platform.deployment-handler:3.0.3
-  holmes_rules: onap/holmes/rule-management:1.2.0-STAGING-latest
-  holmes_engine: onap/holmes/engine-management:1.2.0-STAGING-latest
+  holmes_rules: onap/holmes/rule-management:1.2.0
+  holmes_engine: onap/holmes/engine-management:1.2.0
   inventory: onap/org.onap.dcaegen2.platform.inventory-api:3.0.4
   policy_handler: onap/org.onap.dcaegen2.platform.policy-handler:4.4.0
   service_change_handler: onap/org.onap.dcaegen2.platform.servicechange-handler:1.1.5
   tca: onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0
   ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.1
   snmptrap: onap/org.onap.dcaegen2.collectors.snmptrap:1.4.0
-  prh: onap/org.onap.dcaegen2.services.prh.prh-app-server:1.0.0
-  hv_ves: onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.0.0-SNAPSHOT
+  prh: onap/org.onap.dcaegen2.services.prh.prh-app-server:1.1.1
+  hv_ves: onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.0.0
 
 # Resource Limit flavor -By Default using small
 flavor: small
index cd1b833..08e01d6 100644 (file)
@@ -43,7 +43,7 @@ config:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.deployments.cm-container:1.4.1
+image: onap/org.onap.dcaegen2.deployments.cm-container:1.4.2
 pullPolicy: Always
 
 # probe configuration parameters
@@ -52,7 +52,8 @@ liveness:
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
-  enabled: true
+  # liveness not desirable for Cloudify Manager container
+  enabled: false
 
 readiness:
   initialDelaySeconds: 10
index d333bfc..0a386aa 100644 (file)
@@ -28,7 +28,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
index 3e20e37..5a5b220 100644 (file)
@@ -113,3 +113,6 @@ spec:
       resources:
         requests:
           storage: {{ .Values.persistence.size }}
+      selector:
+        matchLabels:
+          name: {{ include "common.fullname" . }}
index 2a801f0..cde43f9 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+# Environment settings for starting a container
 DMAAPBC_WAIT_TO_EXIT=Y
-DMAAPBC_PG_ENABLED=true
-# Need to connect to PG primary service, designated by service.name2
-DMAAPBC_PGHOST={{ .Values.postgres.service.name2 }}
-DMAAPBC_PGDBNAME={{ .Values.postgres.config.pgDatabase }}
-DMAAPBC_PGCRED={{ .Values.postgres.config.pgUserPassword }}
-DMAAPBC_PGUSER={{ .Values.postgres.config.pgUserName }}
-DMAAPBC_MR_CNAME={{ .Values.dmaapMessageRouterService }}
-DMAAPBC_AAF_URL={{ .Values.aafURL }}
-DMAAPBC_TOPICMGR_USER={{ .Values.topicMgrUser }}
-DMAAPBC_TOPICMGR_PWD={{ .Values.topicMgrPwd }}
-DMAAPBC_ADMIN_USER={{ .Values.adminUser }}
-DMAAPBC_ADMIN_PWD={{ .Values.adminPwd }}
 
diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/dmaapbc.properties b/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/dmaapbc.properties
new file mode 100644 (file)
index 0000000..f2a6dd9
--- /dev/null
@@ -0,0 +1,214 @@
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#####################################################
+#
+# ONAP Casablanca oom configurable deployment params:
+#
+#####################################################
+
+
+#####################################################
+#
+# Hooks for specific environment configurations
+#
+#####################################################
+# Indicator for whether to use AAF
+UseAAF: false
+
+# csit: stubs out some southbound APIs for csit
+csit: No
+
+# name of this DMaaP instance (deprecated)
+DmaapName: demo
+
+#####################################################
+#
+# Settings for Southbound API: Datarouter
+#
+#####################################################
+# FQDN of DR Prov Server (deprecated)
+DR.provhost: dcae-drps.domain.not.set
+
+# URI to retrieve dynamic DR configuration
+ProvisioningURI:  /internal/prov
+
+# indicator for handling feed delete:
+#  DeleteOnDR - means use the DR API to DELETE a feed.  (default for backwards compatibility)
+#  SimulateDelete - means preserve the feed on DR (after cleaning it up), and mark as DELETED in DBCL.  Better for cfy environments.
+Feed.deleteHandling: SimulateDelete
+
+#####################################################
+#
+# Settings for Soutbound API: Postgresql
+#
+#####################################################
+# flag indieonapdemodbates if we are using postgresql
+UsePGSQL: true
+
+# postgres host name
+# Need to connect to PG primary service, designated by service.name2
+DB.host: {{ .Values.postgres.service.name2 }}
+
+# postgres schema name
+#DB.schema: {{ .Values.postgres.config.pgDatabase }}
+
+# postgres user name
+#DB.user: {{ .Values.postgres.config.pgUserName }}
+
+# postgres user password
+DB.cred:  {{ .Values.postgres.config.pgUserPassword }}
+
+
+#####################################################
+#
+# Settings for Soutbound API: Message Router
+#
+#####################################################
+# indicator for multi-site (locations) deployment.  Give clue to buscontroller whether
+# there is a need for message replication between edge and central.
+# ONAP Casablanca is a single site deployment
+MR.multisite: false
+
+# FQDN of primary message router.
+# In ONAP Casablanca, there is only 1 message router service, so use that.
+# In a multi-site, MR cluster deployment, use the CNAME DNS entry which resolves to the primary central MR
+MR.CentralCname: {{ .Values.dmaapMessageRouterService }}
+
+# MR Client Delete Level thoroughness:
+#  0 = don't delete
+#  1 = delete from persistent store
+#  2 = delete from persistent store (DB) and authorization store (AAF)
+MR.ClientDeleteLevel: 1
+
+# namespace of MR Topic Factory
+MR.TopicFactoryNS: org.onap.dmaap.mr.topicFactory
+
+# AAF Role assigned to Topic Manager Identity
+MR.TopicMgrRole: org.onap.dmaap-bc-topic-mgr.client
+
+# MR topic ProjectID (used in certain topic name generation formats)
+MR.projectID:  ONAP
+
+
+#####################################################
+#
+# Settings for Southbound API: CADI
+#
+#####################################################
+# path to cadi.properties
+cadi.properties: /opt/app/osaaf/lcoal/org.onap.dmaap-bc.props
+
+#####################################################
+#
+# Settings for Southbound API: AAF proxy
+#
+#####################################################
+# URL of the AAF server
+aaf.URL: {{ .Values.aafURL }}
+
+# TopicMgr Identity
+aaf.TopicMgrUser: {{ .Values.topicMgrUser }}
+
+# Password for TopicMgr identity
+aaf.TopicMgrPassword: {{ .Values.topicMgrPwd }}
+
+# Buscontroller Admin Identity
+aaf.AdminUser: {{ .Values.adminUser }}
+
+# Admin Password
+aaf.AdminPassword: {{ .Values.adminPwd }}
+
+# location of the codec keyfile used to decrypt passwords in this properties file before they are passed to AAF
+CredentialCodeKeyfile: etc/LocalKey
+
+# this overrides the Class used for Decryption.
+# This allows for a plugin encryption/decryption method if needed.
+# Call this Class for decryption at runtime.
+#AafDecryption.Class: com.company.proprietaryDecryptor
+
+
+#####################################################
+#
+# Settings for authorization of DBCAPI
+#
+#####################################################
+# Namespace for URI values for the API used to create AAF permissions
+# e.g. if ApiNamespace is X.Y.dmaapbc.api then for URI /mr_clients we create AAF perm X.Y.dmaapbc.api.mr_clients
+ApiNamespace: org.onap.dmaap-bc.api
+
+# If API authorization is required, then implement a class to enforce it.
+# This overrides the Class used for API permission check.
+#ApiPermission.Class: com.company.policy.DecisionPolicy
+
+#####################################################
+#
+# Settings for Southbound API: MirrorMaker provisioning
+#
+#####################################################
+# AAF Role of client publishing MM prov cmds
+MM.ProvRole: org.onap.dmaap-bc-mm-prov.prov
+
+# AAF identity when publishing MM prov cmds
+MM.ProvUserMechId: dmaap-bc-mm-prov@dmaap-bc-mm-prov.onap.org
+
+# pwd for Identity used to publish MM prov cmds
+MM.ProvUserPwd: demo123456!
+
+# AAF Role of MirrorMaker agent subscribed to prov cmds
+MM.AgentRole: org.onal.dmaap-bc-mm-prov.agent
+
+#####################################################
+#
+# HTTP Server Configuration
+#
+#####################################################
+
+# Allow http access to dbcapi
+HttpAllowed: true
+
+# listen to http port within this container (server)
+IntHttpPort: 8080
+
+# listen to https port within this container (server)
+# set to 0 if no certificates are available.
+IntHttpsPort: 8443
+
+# external port number for https taking port mapping into account
+ExtHttpsPort: 443
+
+# the type of keystore for https
+KeyStoreType: jks
+
+# path to the keystore file
+KeyStoreFile: etc/keystore
+
+# password for the https keystore
+KeyStorePassword:  *j&Z*Ma;.4My4M]W0eB*fal$
+
+# password for the private key in the https keystore
+KeyPassword: *j&Z*Ma;.4My4M]W0eB*fal$
+
+# type of truststore for https
+TrustStoreType: jks
+
+# path to the truststore for https
+TrustStoreFile: etc/org.onap.dmaap-bc.trust.jks
+
+# password for the https truststore
+TrustStorePassword: pi8HuuSbN03MtQQ7(5TcyQ6;
+
+# path to the file used to trigger an orderly shutdown
+QuiesceFile: etc/SHUTDOWN
+
index 27411c6..9099e04 100644 (file)
@@ -1,5 +1,9 @@
 {
+{{ if eq .Values.fixedTopicNamespace true }}
+  "dmaapName": "mr",
+{{- else -}}
   "dmaapName": "{{ include "common.namespace" . }}",
+{{- end}}
   "drProvUrl": "https://dmaap-dr-prov:8443",
   "version": "1",
   "topicNsRoot": "org.onap.dmaap",
index e807347..411d7f4 100644 (file)
@@ -3,6 +3,14 @@
   "feedVersion": "m1.1",
   "feedDescription": "Default feed provisioned for PM File collector",
   "asprClassification" : "unclassified",
-  "owner": "onap"
+  "owner": "onap",
+  "pubs": [
+      {
+      "dcaeLocationName" : "san-francisco",
+      "username": "dradmin",
+      "userpwd": "dradmin"
+      }
+
+      ]
 }
 
index 0010f22..8f4cf8b 100644 (file)
@@ -2,5 +2,16 @@
   "topicName": "PNF_READY",
   "topicDescription": "This topic will be used to publish the PNF_READY events generated by the PNF REgistration Handler service in the DCAE platform.",
   "owner": "PNFRegistrationHandler",
-  "txenabled": false
+  "txenabled": false,
+  "clients": [
+    {
+      "dcaeLocationName": "san-francisco",
+      "clientRole": "org.onap.dmaap.mr.PNF_READY.pub",
+      "action": [
+        "pub",
+        "view"
+      ]
+
+    }
+  ]
 }
index 2b5c8a5..f0dd2c7 100644 (file)
@@ -2,5 +2,16 @@
   "topicName": "PNF_REGISTRATION",
   "topicDescription": "the VES collector will be publishing pnfRegistration events in this topic",
   "owner": "VEScollector",
-  "txenabled": false
+  "txenabled": false,
+  "clients": [
+    {
+      "dcaeLocationName": "san-francisco",
+      "clientRole": "org.onap.dmaap.mr.PNF_REGISTRATION.sub",
+      "action": [
+        "sub",
+        "view"
+      ]
+
+    }
+  ]
 }
index 778005d..9cf147f 100644 (file)
@@ -59,11 +59,12 @@ spec:
               port: {{ .Values.service.internalPort }}
               path: /webapi/info
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.liveness.periodSeconds }}          
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
           readinessProbe:
             httpGet:
-              port: {{ .Values.service.internalPort }}
-              path: /webapi/info
+              host: {{ .Values.dmaapMessageRouterService }}
+              port: 3904
+              path: /topics
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           {{ end -}}
@@ -71,9 +72,11 @@ spec:
           - mountPath: /etc/localtime
             name: localtime
             readOnly: true
+
+# NOTE: on the following several configMaps, careful to include / at end
+#       since there may be more than one file in each mountPath
           - name: {{ include "common.name" . }}-config
-            mountPath: /opt/app/config/conf
-            subPath: buscontroller.env
+            mountPath: /opt/app/config/conf/
 
 # NOTE: the basename of the subdirectory is important - it matches the DBCL API URI
           - name: {{ include "common.name" . }}-dmaap
index e79a693..0483ce5 100644 (file)
@@ -31,16 +31,21 @@ pullPolicy: Always
 # application images
 repository: nexus3.onap.org:10001
 
-image: onap/dmaap/buscontroller:1.0.19
+image: onap/dmaap/buscontroller:1.0.23
 
 
 # application configuration
 dmaapMessageRouterService: message-router
 aafURL: https://aaf-authz/
-topicMgrUser: m23456@dmaapbc.onap.org
-topicMgrPwd: onapdemo
-adminUser: m12345@dmaapbc.onap.org
-adminPwd: onapdemo
+topicMgrUser: dmaap-bc-topic-mgr@dmaap-bc-topic-mgr.onap.org
+topicMgrPwd: demo123456!
+adminUser: aaf_admin@people.osaaf.org
+adminPwd: demo123456!
+
+# for Casablanca default deployment, leave this true to
+# get a topic namespace that matches MR.  When set to false,
+# it will compose the topic namespace using the kubernetes namespace value
+fixedTopicNamespace: true
 
 nodeSelector: {}
 
index f8600b5..8062a33 100644 (file)
@@ -26,7 +26,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/dmaap/datarouter-node:1.0.2
+image: onap/dmaap/datarouter-node:1.0.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index dfdd38b..25e058d 100644 (file)
@@ -27,7 +27,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/dmaap/datarouter-prov:1.0.2
+image: onap/dmaap/datarouter-prov:1.0.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 4015e94..9d1febe 100755 (executable)
@@ -1,17 +1,24 @@
-# Copyright Â© 2017 Amdocs, Bell Canada, AT&T
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
+###############################################################################
+#  ============LICENSE_START=======================================================
+#  org.onap.dmaap
+#  ================================================================================
+#  Copyright Â© 2017 AT&T Intellectual Property. All rights reserved.
+#  ================================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#        http://www.apache.org/licenses/LICENSE-2.0
+#  
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#  ============LICENSE_END=========================================================
 #
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
+#  ECOMP is a trademark and service mark of AT&T Intellectual Property.
+#  
+###############################################################################
 ###############################################################################
 ##
 ## Cambria API Server config
@@ -19,7 +26,7 @@
 ##     - Default values are shown as commented settings.
 ##
 
-##############################################################################
+###############################################################################
 ##
 ## HTTP service
 ##
@@ -29,7 +36,9 @@
 ##
 ##     Both Cambria and Kafka make use of Zookeeper.
 ##
+#config.zk.servers=172.18.1.1
 config.zk.servers={{.Values.zookeeper.name}}:{{.Values.zookeeper.port}}
+#config.zk.root=/fe3c/cambria/config
 
 
 ###############################################################################
@@ -39,17 +48,22 @@ config.zk.servers={{.Values.zookeeper.name}}:{{.Values.zookeeper.port}}
 ##     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={{.Values.kafka.name}}:{{.Values.kafka.port}}
 ##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.session.timeout.ms=20000
 zookeeper.sync.time.ms=2000
 auto.commit.interval.ms=1000
 fetch.message.max.bytes =1000000
 auto.commit.enable=false
 
+#(backoff*retries > zksessiontimeout)
+kafka.rebalance.backoff.ms=10000
+kafka.rebalance.max.retries=6
+
 
 ###############################################################################
 ##
@@ -86,7 +100,7 @@ authentication.adminSecret=fe3cCompound
 ##     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.
+##     A to close its connection before server B brings up the replacement.    
 ##
 
 ## The consumer cache is normally enabled.
@@ -96,8 +110,8 @@ authentication.adminSecret=fe3cCompound
 ## consumers every sweepFreqSeconds and will clean up any connections that are
 ## dormant for touchFreqMs.
 #cambria.consumer.cache.sweepFreqSeconds=15
-#cambria.consumer.cache.touchFreqMs=120000
-
+cambria.consumer.cache.touchFreqMs=120000
+##stickforallconsumerrequests=false
 ## 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}
@@ -110,6 +124,9 @@ authentication.adminSecret=fe3cCompound
 ##
 #cambria.api.node.identifier=<use-something-unique-to-this-instance>
 
+#cambria.rateLimit.maxEmptyPollsPerMinute=30
+#cambria.rateLimitActual.delay.ms=10
+
 ###############################################################################
 ##
 ## Metrics Reporting
@@ -117,7 +134,7 @@ authentication.adminSecret=fe3cCompound
 ##     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.topic=cambria.apinode.metrics                                  #msgrtr.apinode.metrics.dmaap 
 #metrics.send.cambria.sendEverySeconds=60
 
 cambria.consumer.cache.zkBasePath=/fe3c/cambria/consumerCache
@@ -129,18 +146,23 @@ 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
+msgRtr.namespace.aaf=org.onap.dmaap.mr.topic
+msgRtr.topicfactory.aaf=org.onap.dmaap.mr.topicFactory|:org.onap.dmaap.mr.topic:
+enforced.topic.name.AAF=org.onap
 forceAAF=false
 transidUEBtopicreqd=false
-defaultNSforUEB=org.openecomp.dmaap.mr.ueb
+defaultNSforUEB=org.onap.dmaap.mr
 ##############################################################################
 #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.mirrormakeradmin.aaf=com.onap.dmaap.mr.dev.mirrormaker|*|admin
+msgRtr.mirrormakeruser.aaf=com.onap.dmaap.mr.dev.mirrormaker|*|user
+msgRtr.mirrormakeruser.aaf.create=com.onap.dmaap.mr.dev.topicFactory|:com.onap.dmaap.mr.dev.topic:
 msgRtr.mirrormaker.timeout=15000
-msgRtr.mirrormaker.topic=org.openecomp.dmaap.mr.prod.mm.agent
+msgRtr.mirrormaker.topic=com.onap.dmaap.mr.prod.mm.agent
 msgRtr.mirrormaker.consumergroup=mmagentserver
 msgRtr.mirrormaker.consumerid=1
+
+kafka.max.poll.interval.ms=300000
+kafka.heartbeat.interval.ms=60000
+kafka.session.timeout.ms=240000
+kafka.max.poll.records=1000
\ No newline at end of file
index 9079794..a79bb8d 100755 (executable)
@@ -1,35 +1,20 @@
-# Copyright Â© 2017 Amdocs, Bell Canada, AT&T
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+aaf_locate_url=https://aaf-onap-test.osaaf.org:8095
+aaf_url=https://AAF_LOCATE_URL/AAF_NS.service:2.1
+aaf_env=DEV
+aaf_lur=org.onap.aaf.cadi.aaf.v2_0.AAFLurPerm
 
-basic_realm=openecomp.org
-basic_warn=TRUE
+cadi_truststore=/appl/dmaapMR1/etc/truststoreONAPall.jks
+cadi_truststore_password=changeit
 
-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
+cadi_keyfile=/appl/dmaapMR1/etc/keyfilenew
 
-aaf_id=dgl@openecomp.org
-aaf_password=enc:f2u5br1mh29M02-
-aaf_timeout=5000
-aaf_clean_interval=1200000
-aaf_user_expires=60000
-aaf_high_count=1000000
+cadi_alias=dmaapmr@mr.dmaap.onap.org
+cadi_keystore=/appl/dmaapMR1/etc/org.onap.dmaap.mr.p12
+cadi_keystore_password=Messaging for All
+cadi_x509_issuers=CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US
 
 
-# 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
+cadi_loglevel=INFO
+cadi_protocols=TLSv1.1,TLSv1.2
+cadi_latitude=37.78187
+cadi_longitude=-122.26147
\ No newline at end of file
index 1798092..4e12ded 100644 (file)
@@ -66,6 +66,9 @@ spec:
               port: {{ .Values.service.externalPort }}
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
+          env:
+          - name: enableCadi
+            value: "false"
           volumeMounts:
           - mountPath: /etc/localtime
             name: localtime
index 94b7a44..9ba3488 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/dmaap/dmaap-mr:1.1.6
+image: onap/dmaap/dmaap-mr:1.1.7
 pullPolicy: Always
 
 kafka:
@@ -53,14 +53,14 @@ affinity: {}
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 10
+  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
+  initialDelaySeconds: 120
   periodSeconds: 10
 
 service:
index 9beb17d..004d473 100644 (file)
@@ -24,7 +24,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aai/esr-gui:1.1.0
+image: onap/aai/esr-gui:1.2.1
 pullPolicy: Always
 msbaddr: msb-iag.{{ include "common.namespace" . }}:80
 
index 8f66148..ce5688f 100644 (file)
@@ -27,7 +27,7 @@ subChartsOnly:
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aai/esr-server:1.1.0
+image: onap/aai/esr-server:1.2.1
 pullPolicy: Always
 msbaddr: msb-iag.{{ include "common.namespace" . }}:80
 
index 07455d7..9195f16 100755 (executable)
@@ -38,25 +38,10 @@ Flags:
       --set stringArray          set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
       --set-string stringArray   set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
   -f, --values valueFiles        specify values in a YAML file or a URL(can specify multiple) (default [])
+      --verbose                  enables full helm install/upgrade output during deploy
 EOF
 }
 
-parse_yaml() {
-  local prefix=$2
-  local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034')
-  sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \
-       -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p"  $1 |
-  awk -F$fs '{
-     indent = length($1)/2;
-     vname[indent] = $2;
-     for (i in vname) {if (i > indent) {delete vname[i]}}
-     if (length($3) > 0) {
-        vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("_")}
-        printf("%s%s%s=\"%s\"\n", "'$prefix'",vn, $2, $3);
-     }
-  }'
-}
-
 generate_overrides() {
   SUBCHART_NAMES=($(cat $COMPUTED_OVERRIDES | grep -v '^\s\s'))
 
@@ -66,18 +51,47 @@ generate_overrides() {
     if [[ $START == "global:" ]]; then
       echo "global:" > $GLOBAL_OVERRIDES
       cat $COMPUTED_OVERRIDES | sed '/common:/,/consul:/d' \
-        | sed -n '/'"$START"'/,/'log:'/p' | sed '1d;$d' >> $GLOBAL_OVERRIDES  
+        | sed -n '/'"$START"'/,/'log:'/p' | sed '1d;$d' >> $GLOBAL_OVERRIDES
     else
       SUBCHART_DIR="$CACHE_SUBCHART_DIR/$(cut -d':' -f1 <<<"$START")"
       if [[ -d "$SUBCHART_DIR" ]]; then
-        cat $COMPUTED_OVERRIDES | sed -n '/'"$START"'/,/'"$END"'/p' \
-          | sed '1d;$d' | cut -c3- > $SUBCHART_DIR/subchart-overrides.yaml
+        if [[ -z "$END" ]]; then
+          cat $COMPUTED_OVERRIDES | sed -n '/^'"$START"'/,/'"$END"'/p' \
+            | sed '1d;$d' | cut -c3- > $SUBCHART_DIR/subchart-overrides.yaml
+        else
+          cat $COMPUTED_OVERRIDES | sed -n '/^'"$START"'/,/^'"$END"'/p' \
+            | sed '1d;$d' | cut -c3- > $SUBCHART_DIR/subchart-overrides.yaml
+        fi
       fi
     fi
   done
 }
 
+resolve_deploy_flags() {
+  flags=($1)
+  n=${#flags[*]}
+  for (( i = 0; i < n; i++ )); do
+    PARAM=${flags[i]}
+    if [[ $PARAM == "-f" || \
+          $PARAM == "--values" || \
+          $PARAM == "--set" || \
+          $PARAM == "--set-string" ]]; then
+       # skip param and its value
+       i=$((i + 1))
+    else
+      DEPLOY_FLAGS="$DEPLOY_FLAGS $PARAM"
+    fi
+  done
+  echo "$DEPLOY_FLAGS"
+}
+
 deploy() {
+  # validate params
+  if [[ -z "$1" || -z "$2" ]]; then
+    usage
+    exit 0
+  fi
+
   RELEASE=$1
   CHART_URL=$2
   FLAGS=${@:3}
@@ -86,23 +100,54 @@ deploy() {
   CACHE_DIR=~/.helm/plugins/deploy/cache
   CHART_DIR=$CACHE_DIR/$CHART_NAME
   CACHE_SUBCHART_DIR=$CHART_DIR-subcharts
+  LOG_DIR=$CHART_DIR/logs
+
+  # determine if verbose output is enabled
+  VERBOSE="false"
+  if [[ $FLAGS = *"--verbose"* ]]; then
+    FLAGS="$(echo $FLAGS| sed -n 's/--verbose//p')"
+    VERBOSE="true"
+  fi
+  if [[ $FLAGS = *"--dry-run"* ]]; then
+    VERBOSE="true"
+    FLAGS="$FLAGS --debug"
+  fi
+
   # should pass all flags instead
-  NAMESPACE="$(echo $FLAGS | sed -n 's/.*\(namespace\).\s*/\1/p' | cut -c10-)"
+  NAMESPACE="$(echo $FLAGS | sed -n 's/.*\(namespace\).\s*/\1/p' | cut -c10- | cut -d' ' -f1)"
+
+  # Remove all override values passed in as arguments. These will be used during dry run
+  # to resolve computed override values. Remaining flags will be passed on during
+  # actual upgrade/install of parent and subcharts.
+  DEPLOY_FLAGS=$(resolve_deploy_flags "$FLAGS")
+
+  # determine if upgrading individual subchart or entire parent + subcharts
+  SUBCHART_RELEASE="$(cut -d'-' -f2 <<<"$RELEASE")"
+  if [[ ! -d "$CACHE_SUBCHART_DIR/$SUBCHART_RELEASE" ]]; then
+    SUBCHART_RELEASE=
+  else
+    # update specified subchart without parent
+    RELEASE="$(cut -d'-' -f1 <<<"$RELEASE")"
+  fi
+
   # clear previously cached charts
   rm -rf $CACHE_DIR
 
+  # create log driectory
+  mkdir -p $LOG_DIR
+
   # fetch umbrella chart (parent chart containing subcharts)
   if [[ -d "$CHART_URL" ]]; then
     mkdir -p $CHART_DIR
     cp -R $CHART_URL/* $CHART_DIR/
 
-    cd $CHART_DIR/charts/
-    for subchart in * ; do
-      tar xzf ${subchart}
+    charts=$CHART_DIR/charts/*
+    for subchart in $charts ; do
+      tar xzf ${subchart} -C $CHART_DIR/charts/
     done
-    rm -rf *.tgz
+    rm -rf $CHART_DIR/charts/*.tgz
   else
+    echo "fetching $CHART_URL"
     helm fetch $CHART_URL --untar --untardir $CACHE_DIR
   fi
 
@@ -126,29 +171,57 @@ deploy() {
   generate_overrides $COMPUTED_OVERRIDES $GLOBAL_OVERRIDES
 
   # upgrade/install parent chart first
-  helm upgrade -i $RELEASE $CHART_DIR --namespace $NAMESPACE -f $COMPUTED_OVERRIDES
+  if [[ -z "$SUBCHART_RELEASE" ]]; then
+    LOG_FILE=$LOG_DIR/${RELEASE}.log
+    :> $LOG_FILE
+
+    helm upgrade -i $RELEASE $CHART_DIR $DEPLOY_FLAGS -f $COMPUTED_OVERRIDES \
+     > $LOG_FILE.log 2>&1
 
-  # parse computed overrides - will use to determine if a subchart is "enabled"
-  eval $(parse_yaml $COMPUTED_OVERRIDES "computed_")
+    if [[ $VERBOSE == "true" ]]; then
+      cat $LOG_FILE
+    else
+      echo "release \"$RELEASE\" deployed"
+    fi
+  fi
 
   # upgrade/install each "enabled" subchart
-  cd $CACHE_SUBCHART_DIR
+  cd $CACHE_SUBCHART_DIR/
   for subchart in * ; do
-    VAR="computed_${subchart}_enabled"
-    COMMAND="$"$VAR
-    eval "SUBCHART_ENABLED=$COMMAND"
-    if [[ $SUBCHART_ENABLED == "true" ]]; then
-      SUBCHART_OVERRIDES=$CACHE_SUBCHART_DIR/$subchart/subchart-overrides.yaml
-      helm upgrade -i "${RELEASE}-${subchart}" $CACHE_SUBCHART_DIR/$subchart \
-       --namespace $NAMESPACE -f $GLOBAL_OVERRIDES -f $SUBCHART_OVERRIDES
+    SUBCHART_OVERRIDES=$CACHE_SUBCHART_DIR/$subchart/subchart-overrides.yaml
+
+    SUBCHART_ENABLED=0
+    if [[ -f $SUBCHART_OVERRIDES ]]; then
+      SUBCHART_ENABLED=$(cat $SUBCHART_OVERRIDES | grep -c "^enabled: true")
+    fi
+
+    if [[ $SUBCHART_ENABLED -eq 1 ]]; then
+      if [[ -z "$SUBCHART_RELEASE" || $SUBCHART_RELEASE == "$subchart" ]]; then
+        LOG_FILE=$LOG_DIR/"${RELEASE}-${subchart}".log
+        :> $LOG_FILE
+
+        helm upgrade -i "${RELEASE}-${subchart}" $CACHE_SUBCHART_DIR/$subchart \
+         $DEPLOY_FLAGS -f $GLOBAL_OVERRIDES -f $SUBCHART_OVERRIDES \
+         > $LOG_FILE 2>&1
+
+        if [[ $VERBOSE == "true" ]]; then
+          cat $LOG_FILE
+        else
+          echo "release \"${RELEASE}-${subchart}\" deployed"
+        fi
+      fi
+    else
+      array=($(helm ls -q | grep "${RELEASE}-${subchart}"))
+      n=${#array[*]}
+      for (( i = n-1; i >= 0; i-- )); do
+        helm del "${array[i]}" --purge
+      done
     fi
   done
-}
 
-if [[ $# < 2 ]]; then
-  usage
-  exit 0
-fi
+  # report on success/failures of installs/upgrades
+  helm ls | grep FAILED | grep $RELEASE
+}
 
 case "${1:-"help"}" in
   "help")
index 02b5d34..8191174 100755 (executable)
@@ -21,7 +21,7 @@ undeploy() {
   RELEASE=$1
   FLAGS=$2
 
-  array=($(helm ls -q | grep $RELEASE))
+  array=($(helm ls -q --all | grep $RELEASE))
   n=${#array[*]}
   for (( i = n-1; i >= 0; i-- ))
   do
index edb0a78..41d002b 100644 (file)
@@ -12,8 +12,8 @@ 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
+Edit each yaml file in the new Helm Chart directory, substituting real values
+for those inside brackets (e.g. `<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,
index 4ca95aa..649b388 100644 (file)
@@ -19,7 +19,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
index 1ebb593..e0cea22 100644 (file)
@@ -26,7 +26,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
index 1ebb593..e0cea22 100644 (file)
@@ -26,7 +26,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
index d36c153..42bf084 100644 (file)
@@ -24,7 +24,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/msb/msb_discovery:1.2.0-SNAPSHOT-latest
+image: onap/msb/msb_discovery:1.2.1
 pullPolicy: Always
 istioSidecar: true
 
index 1ebb593..e0cea22 100644 (file)
@@ -26,7 +26,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
index cf20fdc..fabbed2 100644 (file)
@@ -24,7 +24,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/msb/msb_apigateway:1.2.0-SNAPSHOT-latest
+image: onap/msb/msb_apigateway:1.2.1
 pullPolicy: Always
 istioSidecar: true
 
index 1ebb593..e0cea22 100644 (file)
@@ -26,7 +26,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
index b6417de..07eb045 100644 (file)
@@ -24,7 +24,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/msb/msb_apigateway:1.2.0-SNAPSHOT-latest
+image: onap/msb/msb_apigateway:1.2.1
 pullPolicy: Always
 istioSidecar: true
 
index 7b9d9c7..1a168e9 100644 (file)
@@ -24,7 +24,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/multicloud/azure:1.2.0-SNAPSHOT
+image: onap/multicloud/azure:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index cbe426e..fda5ece 100644 (file)
@@ -18,7 +18,7 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .Values.service.name }}
+  name: {{ include "common.servicename" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -34,18 +34,26 @@ metadata:
       "protocol": "REST",
       "port": "{{ .Values.service.externalPort }}",
       "visualRange": "1"
+    },
+    {
+      "serviceName": "multicloud-ocata",
+      "version": "v1",
+      "url": "/api/multicloud-ocata/v1",
+      "protocol": "REST",
+      "port": "{{ .Values.service.externalPort }}",
+      "visualRange": "1"
     }
     ]'
 spec:
   ports:
   {{if eq .Values.service.type "NodePort" -}}
-  - name: http-{{ .Values.service.name }}
-    port: {{ .Values.service.externalPort }}
+  - port: {{ .Values.service.externalPort }}
     nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.portName }}
   {{- else -}}
   - port: {{ .Values.service.externalPort }}
     targetPort: {{ .Values.service.internalPort }}
-    name: http-{{ .Values.service.name }}
+    name: {{ .Values.service.portName }}
   {{- end}}
   selector:
     app: {{ include "common.name" . }}
index 699b908..11baded 100644 (file)
@@ -24,7 +24,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/multicloud/openstack-ocata:1.2.0-STAGING
+image: onap/multicloud/openstack-ocata:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
@@ -59,6 +59,7 @@ liveness:
 service:
   type: NodePort
   name: multicloud-ocata
+  portName: multicloud-ocata
   externalPort: 9006
   internalPort: 9006
   nodePort: 93
@@ -84,4 +85,4 @@ resources:
     requests:
       cpu: 20m
       memory: 2Gi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index ee937ae..47e1406 100644 (file)
@@ -23,7 +23,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/multicloud/openstack-pike:1.2.0-STAGING
+image: onap/multicloud/openstack-pike:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index b53aef4..b34cbec 100644 (file)
@@ -18,7 +18,7 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .Values.service.name }}
+  name: {{ include "common.servicename" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -34,18 +34,26 @@ metadata:
       "protocol": "REST",
       "port": "{{ .Values.service.externalPort }}",
       "visualRange": "1"
+    },
+    {
+      "serviceName": "multicloud-vio",
+      "version": "v1",
+      "url": "/api/multicloud-vio/v1",
+      "protocol": "REST",
+      "port": "{{ .Values.service.externalPort }}",
+      "visualRange": "1"
     }
     ]'
 spec:
   ports:
   {{if eq .Values.service.type "NodePort" -}}
-  - name: http-{{ .Values.service.name }}
-    port: {{ .Values.service.externalPort }}
+  - port: {{ .Values.service.externalPort }}
     nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.portName }}
   {{- else -}}
   - port: {{ .Values.service.externalPort }}
     targetPort: {{ .Values.service.internalPort }}
-    name: http-{{ .Values.service.name }}
+    name: {{ .Values.service.portName }}
   {{- end}}
   selector:
     app: {{ include "common.name" . }}
index 810646d..edd19b8 100644 (file)
@@ -24,7 +24,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/multicloud/vio:1.1.2
+image: onap/multicloud/vio:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
@@ -59,6 +59,7 @@ liveness:
 service:
   type: NodePort
   name: multicloud-vio
+  portName: multicloud-vio
   externalPort: 9004
   internalPort: 9004
   nodePort: 92
@@ -84,4 +85,4 @@ resources:
     requests:
       cpu: 20m
       memory: 2Gi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index f876bb9..c1128bb 100644 (file)
@@ -18,7 +18,7 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .Values.service.name }}
+  name: {{ include "common.servicename" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -32,7 +32,7 @@ metadata:
       "version": "v0",
       "url": "/api/multicloud-titanium_cloud/v0",
       "protocol": "REST",
-      "port": "{{ .Values.service.internalPort }}",
+      "port": "{{ .Values.service.externalPort }}",
       "visualRange": "1"
     },
     {
@@ -40,7 +40,7 @@ metadata:
       "version": "v0",
       "url": "/api/multicloud-titaniumcloud/v0",
       "protocol": "REST",
-      "port": "{{ .Values.service.internalPort }}",
+      "port": "{{ .Values.service.externalPort }}",
       "visualRange": "1"
     },
     {
@@ -48,7 +48,7 @@ metadata:
       "version": "v1",
       "url": "/api/multicloud-titaniumcloud/v1",
       "protocol": "REST",
-      "port": "{{ .Values.service.internalPort }}",
+      "port": "{{ .Values.service.externalPort }}",
       "visualRange": "1"
     }
     ]'
@@ -56,13 +56,13 @@ metadata:
 spec:
   ports:
   {{ if eq .Values.service.type "NodePort" }}
-  - name: http-{{ .Values.service.name }}
-    port: {{ .Values.service.externalPort }}
+  - port: {{ .Values.service.externalPort }}
     nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.portName }}
   {{ else }}
   - port: {{ .Values.service.externalPort }}
     targetPort: {{ .Values.service.internalPort }}
-    name: http-{{ .Values.service.name }}
+    name: {{ .Values.service.portName }}
   {{ end }}
   selector:
     app: {{ include "common.name" . }}
index 4ebf843..ee2143a 100644 (file)
@@ -24,7 +24,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/multicloud/openstack-windriver:1.2.0-STAGING
+image: onap/multicloud/openstack-windriver:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
@@ -43,6 +43,7 @@ config:
 service:
   type: NodePort
   name: multicloud-titaniumcloud
+  portName: multicloud-titaniumcloud
   externalPort: 9005
   internalPort: 9005
   nodePort: 94
@@ -84,4 +85,4 @@ resources:
     requests:
       cpu: 20m
       memory: 2Gi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index 1ad3e51..e34bdf4 100644 (file)
@@ -18,7 +18,7 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .Values.service.name }}
+  name: {{ .Values.service.portName }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -34,18 +34,26 @@ metadata:
       "protocol": "REST",
       "port": "{{ .Values.service.externalPort }}",
       "visualRange": "1"
+    },
+    {
+      "serviceName": "multicloud",
+      "version": "v1",
+      "url": "/api/multicloud/v1",
+      "protocol": "REST",
+      "port": "{{ .Values.service.externalPort }}",
+      "visualRange": "1"
     }
     ]'
 spec:
   ports:
   {{if eq .Values.service.type "NodePort" -}}
-  - name: {{ .Values.service.name }}
-    port: {{ .Values.service.externalPort }}
+  - port: {{ .Values.service.externalPort }}
     nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.portName }}
   {{- else -}}
   - port: {{ .Values.service.externalPort }}
     targetPort: {{ .Values.service.internalPort }}
-    name: {{ .Values.service.name }}
+    name: {{ .Values.service.portName }}
   {{- end}}
   selector:
     app: {{ include "common.name" . }}
index 3f1da7e..79fbb9b 100644 (file)
@@ -26,7 +26,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/multicloud/framework:1.2.0-STAGING
+image: onap/multicloud/framework:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
@@ -63,6 +63,7 @@ liveness:
 service:
   type: NodePort
   name: multicloud
+  portName: multicloud-framework
   externalPort: 9001
   internalPort: 9001
   nodePort: 91
@@ -88,4 +89,4 @@ resources:
     requests:
       cpu: 20m
       memory: 2Gi
-  unlimited: {}
\ No newline at end of file
+  unlimited: {}
index 89a3f4b..ac5d326 100644 (file)
@@ -87,8 +87,8 @@ liveness:
   httpGet:
     path: /nbi/api/v3/status
     port: 8080
-  initialDelaySeconds: 120
-  periodSeconds: 20
+  initialDelaySeconds: 180
+  periodSeconds: 30
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
   enabled: true
@@ -97,8 +97,8 @@ readiness:
   httpGet:
     path: /nbi/api/v3/status
     port: 8080
-  initialDelaySeconds: 125
-  periodSeconds: 20
+  initialDelaySeconds: 185
+  periodSeconds: 30
 
 service:
   type: NodePort
index 35c1642..489176b 100644 (file)
@@ -72,6 +72,17 @@ dmaap:
       initialDelaySeconds: 120
     readiness:
       initialDelaySeconds: 120
+  dmaap-dr-prov:
+    liveness:
+      initialDelaySeconds: 120
+    readiness:
+      initialDelaySeconds: 120
+  dmaap-dr-node:
+    liveness:
+      initialDelaySeconds: 120
+    readiness:
+      initialDelaySeconds: 120
+
 portal:
   portal-app:
     liveness:
index b486f16..4950ae5 100644 (file)
@@ -47,15 +47,11 @@ global:
   persistence:
     mountPath: /dockerdata-nfs
 
-  # flag to enable debugging - application support required
-  debugEnabled: false
-
   # override default resource limit flavor for all charts
   flavor: unlimited
 
-# Repository for creation of nexus3.onap.org secret
-repository: nexus3.onap.org:10001
-
+  # flag to enable debugging - application support required
+  debugEnabled: false
 
 #################################################################
 # Enable/disable and configure helm charts (ie. applications)
index 72f97ef..e27258a 100644 (file)
@@ -14,3 +14,4 @@
 
 make-has:
        cd charts && helm dep up oof-has
+       cd charts && helm dep up oof-cmso
diff --git a/kubernetes/oof/charts/oof-cmso/Chart.yaml b/kubernetes/oof/charts/oof-cmso/Chart.yaml
new file mode 100644 (file)
index 0000000..eb5e97b
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright Â© 2018 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: Chart for Change Management Service Orchestrator (CMSO)
+name: oof-cmso
+version: 3.0.0
diff --git a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/Chart.yaml b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/Chart.yaml
new file mode 100644 (file)
index 0000000..1af0d04
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright Â© 2018 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: Chart for Change Management Service Orchestrator (CMSO) Service
+name: oof-cmso-service
+version: 3.0.0
diff --git a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/cmso.properties b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/cmso.properties
new file mode 100644 (file)
index 0000000..cf1d35e
--- /dev/null
@@ -0,0 +1,104 @@
+
+#-------------------------------------------------------------------------------
+# Copyright Â© 2017-2018 AT&T Intellectual Property.
+# Modifications Copyright Â© 2018 IBM.
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#         http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# 
+# 
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the Ã¢??Licenseâ?\9d);
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#         https://creativecommons.org/licenses/by/4.0/
+# 
+# Unless required by applicable law or agreed to in writing, documentation
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#-------------------------------------------------------------------------------
+###
+
+### MySQL DB.
+spring.datasource.url=jdbc:mariadb://${DB_HOST}:${DB_PORT}/${DB_SCHEMA}
+spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
+spring.datasource.username=${DB_USERNAME}
+spring.datasource.password=${DB_PASSWORD}
+cmso.database.password=${DB_PASSWORD}
+
+spring.datasource.initialize=false
+spring.datasource.tomcat.max-wait=10000
+spring.datasource.tomcat.initialSize=5
+spring.datasource.tomcat.max-active=25
+spring.datasource.tomcat.test-on-borrow=true
+
+spring.jpa.show-sql=true
+spring.jpa.hibernate.ddl-auto=none
+spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.EJB3NamingStrategy
+spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
+spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
+spring.jpa.hibernate.id.new_generator_mappings=false
+hibernate.id.new_generator_mappings=false
+
+logging.level.org.hibernate.SQL=TRACE
+
+logging.level.org.hibernate=TRACE
+
+#
+cmso.aaf.enabled=false
+
+# Enable swagger - Enable in development and test only
+cmso.swagger.enabled=true
+
+# Enable schedule immediate to be dispatched without ticket approvals
+# Has no effect when in vTM loopback mode as always approved.
+cmso.cm.dispatch.immediate.enabled = true
+
+# NUmber of seconds between sniro dispatch jobs
+cmso.optimizer.job.interval.ms=10000
+
+# NUmber of seconds between change management cmso polling jobs
+# Controls frequenct of polling to the ChangeManagementScheduler table...
+cmso.cm.polling.job.interval.ms=10000
+# How many management cmso polling intervals to look ahead to dispatch
+# (To account for possible latency of the polling job)
+cmso.cm.polling.job.lookahead.intervals=5
+# Lead time before event time to enable dispatcher to 
+# test that it is safe to dispatch (i.e. meeting reminder lead time)
+cmso.cm.dispatcher.lead.time.ms=5000
+# Lead time to prepare and call VID to dispatch work to MSO
+# Includes latency from VID call to the start of the workflow
+cmso.cm.dispatch.lead.time.ms=1000
+
+# Interval between polling to check status of schedules in Notifications Initiated status
+cmso.status.job.interval.ms=60000
+
+org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore
+
+loopback.mso.requestId=dummy123
+
+so.polling.interval.ms=10000
+#mso.user=cmso@onap.org
+#mso.pass=enc:bfodXf8qRfCqMvlxVBYNWQ==
+
+## loopback settings
+so.url=http://localhost:8080/cmso/v1/loopbacktest/onap/so/infra/orchestrationRequests/v7
+so.user=cmso@onap.org
+so.pass=enc:bfodXf8qRfCqMvlxVBYNWQ==
+
+mechid.user=cmso@onap.org
+mechid.pass=enc:bfodXf8qRfCqMvlxVBYNWQ==
+
+cmso.dispatch.url=http://localhost:8089
diff --git a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/liquibase.properties b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/liquibase.properties
new file mode 100644 (file)
index 0000000..66dad37
--- /dev/null
@@ -0,0 +1,54 @@
+###
+# Copyright &#194;© 2017-2018 AT&T Intellectual Property. 
+# Modifications Copyright &#194;© 2018 IBM. 
+#  
+# Licensed under the Apache License, Version 2.0 (the "License"); 
+# you may not use this file except in compliance with the License. 
+# You may obtain a copy of the License at 
+#  
+#         http://www.apache.org/licenses/LICENSE-2.0 
+#  
+# Unless required by applicable law or agreed to in writing, software 
+# distributed under the License is distributed on an "AS IS" BASIS, 
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+# See the License for the specific language governing permissions and 
+# limitations under the License. 
+#  
+#  
+# Unless otherwise specified, all documentation contained herein is licensed 
+# under the Creative Commons License, Attribution 4.0 Intl. (the &#195;¢&#226;?&#172;&#197;"License&#195;¢&#226;?&#172;&#157;); 
+# you may not use this documentation except in compliance with the License. 
+# You may obtain a copy of the License at 
+#  
+#         https://creativecommons.org/licenses/by/4.0/ 
+#  
+# Unless required by applicable law or agreed to in writing, documentation 
+# distributed under the License is distributed on an "AS IS" BASIS, 
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+# See the License for the specific language governing permissions and 
+# limitations under the License.
+###
+spring.datasource.jdbcUrl=jdbc:mariadb://${DB_HOST}:${DB_PORT}/${DB_SCHEMA}?createDatabaseIfNotExist=true
+spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
+spring.datasource.username=${DB_USERNAME}
+spring.datasource.password=${DB_PASSWORD}
+
+spring.datasource.initialize=false
+spring.datasource.tomcat.max-wait=10000
+spring.datasource.tomcat.initialSize=5
+spring.datasource.tomcat.max-active=25
+spring.datasource.tomcat.test-on-borrow=true
+
+
+#changeLogFile=calendar-liquibase-changeLog.xml
+changeLogFile=cmso-liquibase-changeLog.xml
+
+
+#spring.main.web-environment=false
+#outputChangeLogFile=src/main/resources/cmso-output-changelog.xml
+#url=jdbc:mariadb://localhost:3306/calendar
+#url=jdbc:mysql://localhost:3306/cmso
+#username=root
+#password=root
+#driver=org.mariadb.jdbc.Driver
+#driver=com.mysql.jdbc.Driver
diff --git a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/logback.xml b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/logback.xml
new file mode 100644 (file)
index 0000000..e4386fd
--- /dev/null
@@ -0,0 +1,253 @@
+<?xml version = "1.0" encoding = "UTF-8" ?>
+<!--
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+-->
+<included>
+       <jmxConfigurator />
+       <!-- Example evaluator filter applied against console appender -->
+<property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
+               <property name="p_lvl" value="%level"/>
+               <property name="p_log" value="%logger"/>
+               <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
+               <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+               <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+               <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+               <property name="p_thr" value="%thread"/>
+               <property name="defaultPattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>
+               <property name="debugPattern" value="%nopexception${p_tim}|${p_lvl}|${p_mdc}|${p_exc}|%msg%n"/>
+
+               <!-- Example evaluator filter applied against console appender -->
+               <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+                               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+                                               <level>INFO</level>
+                               </filter>
+                               <encoder>
+                                       <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n</pattern>
+                               </encoder>
+               </appender>
+
+               <appender name="ERROR"
+                               class="ch.qos.logback.core.rolling.RollingFileAppender">
+                               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+                                               <level>INFO</level>
+                               </filter>
+                               <file>${logDirectory}/error2.log</file>
+                               <append>true</append>
+                               <encoder>
+                                               <pattern>${defaultPattern}</pattern>
+                               </encoder>
+                               <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                                       <fileNamePattern>${outputDirectory}/cmso/error.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
+                                       <maxFileSize>50MB</maxFileSize>
+                                       <maxHistory>30</maxHistory>
+                                       <totalSizeCap>10GB</totalSizeCap>
+                               </rollingPolicy>
+                               <triggeringPolicy
+                                               class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                                               <maxFileSize>10MB</maxFileSize>
+                               </triggeringPolicy>
+               </appender>
+
+               <appender name="DEBUG"
+                               class="ch.qos.logback.core.rolling.RollingFileAppender">
+                               <file>${logDirectory}/debug.log</file>
+                               <append>true</append>
+                               <encoder>
+                                               <pattern>${debugPattern}</pattern>
+                               </encoder>
+                               <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                                       <fileNamePattern>${outputDirectory}/cmso/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
+                                       <maxFileSize>50MB</maxFileSize>
+                                       <maxHistory>30</maxHistory>
+                                       <totalSizeCap>10GB</totalSizeCap>
+                               </rollingPolicy>
+               </appender>
+
+
+       <appender name="AUDIT"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${logDirectory}/audit.log</file>
+               <append>true</append>
+               <encoder>
+                       <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n
+                       </pattern>
+               </encoder>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                       <maxIndex>10</maxIndex>
+                       <FileNamePattern>${logDirectory}/audit.%i.log.zip
+                       </FileNamePattern>
+               </rollingPolicy>
+               <triggeringPolicy
+                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                       <maxFileSize>10MB</maxFileSize>
+               </triggeringPolicy>
+       </appender>
+       <appender name="asyncEELFAudit"
+               class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="AUDIT" />
+       </appender>
+
+       <appender name="METRIC"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${logDirectory}/metric.log</file>
+               <append>true</append>
+               <encoder>
+                       <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|
+                               %msg%n</pattern>
+               </encoder>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                       <maxIndex>10</maxIndex>
+                       <FileNamePattern>${logDirectory}/metric.%i.log.zip
+                       </FileNamePattern>
+               </rollingPolicy>
+               <triggeringPolicy
+                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                       <maxFileSize>10MB</maxFileSize>
+               </triggeringPolicy>
+       </appender>
+       <appender name="asyncEELFMetrics"
+               class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="METRIC" />
+       </appender>
+
+       <!-- SECURITY related loggers -->
+       <appender name="SECURITY"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${logDirectory}/security.log</file>
+               <append>true</append>
+               <encoder>
+                       <pattern>%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n
+                       </pattern>
+               </encoder>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                       <maxIndex>10</maxIndex>
+                       <FileNamePattern>${logDirectory}/security.%i.log.zip
+                       </FileNamePattern>
+               </rollingPolicy>
+               <triggeringPolicy
+                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                       <maxFileSize>10MB</maxFileSize>
+               </triggeringPolicy>
+       </appender>
+       <appender name="asyncEELFSecurity"
+               class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="SECURITY" />
+       </appender>
+       <!-- AAF related loggers -->
+       <logger name="org.onap.aaf" level="INFO" additivity="true">
+               <appender-ref ref="DEBUG" />
+       </logger>
+       <logger name="org.apache.catalina.core" level="INFO"
+               additivity="true">
+               <appender-ref ref="DEBUG" />
+       </logger>
+       <logger name="org.onap.cmso" level="INFO"
+               additivity="true">
+               <appender-ref ref="ERROR" />
+       </logger>
+
+       <!-- CLDS related loggers -->
+       <logger name="com.att.eelf.error" level="OFF" additivity="true">
+               <appender-ref ref="ERROR" />
+       </logger>
+       <!-- EELF related loggers -->
+       <logger name="com.att.eelf.audit" level="INFO"
+               additivity="false">
+               <appender-ref ref="asyncEELFAudit" />
+       </logger>
+       <logger name="com.att.eelf.metrics" level="DEBUG"
+               additivity="false">
+               <appender-ref ref="asyncEELFMetrics" />
+       </logger>
+       <logger name="com.att.eelf.security" level="DEBUG"
+               additivity="false">
+               <appender-ref ref="asyncEELFSecurity" />
+       </logger>
+
+       <!-- Spring related loggers -->
+       <logger name="org.springframework" level="DEBUG" />
+
+       <!-- Other Loggers that may help troubleshoot -->
+       <logger name="org.apache" level="DEBUG" />
+
+       <!-- logback internals logging -->
+       <logger name="ch.qos.logback.classic" level="INFO" />
+       <logger name="ch.qos.logback.core" level="INFO" />
+
+       <!-- logback jms appenders & loggers definition starts here -->
+       <appender name="auditLogs"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+               </filter>
+               <file>${logDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.log</file>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                       <fileNamePattern>${logDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
+                       </fileNamePattern>
+                       <minIndex>1</minIndex>
+                       <maxIndex>9</maxIndex>
+               </rollingPolicy>
+               <triggeringPolicy
+                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                       <maxFileSize>5MB</maxFileSize>
+               </triggeringPolicy>
+               <encoder>
+                       <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+               </encoder>
+       </appender>
+       <appender name="perfLogs"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+               </filter>
+               <file>${logDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.log</file>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+                       <fileNamePattern>${logDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
+                       </fileNamePattern>
+                       <minIndex>1</minIndex>
+                       <maxIndex>9</maxIndex>
+               </rollingPolicy>
+               <triggeringPolicy
+                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                       <maxFileSize>5MB</maxFileSize>
+               </triggeringPolicy>
+               <encoder>
+                       <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+               </encoder>
+       </appender>
+       <logger name="AuditRecord" level="INFO" additivity="FALSE">
+               <appender-ref ref="auditLogs" />
+       </logger>
+       <logger name="AuditRecord_DirectCall" level="INFO"
+               additivity="FALSE">
+               <appender-ref ref="auditLogs" />
+       </logger>
+       <logger name="PerfTrackerRecord" level="INFO" additivity="FALSE">
+               <appender-ref ref="perfLogs" />
+       </logger>
+       <!-- logback jms appenders & loggers definition ends here -->
+
+       <root level="DEBUG">
+               <appender-ref ref="DEBUG" />
+               <appender-ref ref="STDOUT" />
+       </root>
+</included>
+
diff --git a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/optimizer.properties b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/optimizer.properties
new file mode 100644 (file)
index 0000000..b222d7b
--- /dev/null
@@ -0,0 +1,34 @@
+#-------------------------------------------------------------------------------
+# Copyright Â© 2017-2018 AT&T Intellectual Property.
+# Modifications Copyright Â© 2018 IBM.
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#         http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# 
+# 
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the Ã¢??Licenseâ?\9d);
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#         https://creativecommons.org/licenses/by/4.0/
+# 
+# Unless required by applicable law or agreed to in writing, documentation
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#-------------------------------------------------------------------------------
+
+cmso.optimizer.url=http://localhost:8080/cmso/v1/loopbacktest/optimizer
+cmso.optimizer.callbackurl=http://localhost:8080/cmso/v1/optimizerCallback
+
diff --git a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/ticketmgt.properties b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/resources/config/ticketmgt.properties
new file mode 100644 (file)
index 0000000..bfdaec6
--- /dev/null
@@ -0,0 +1,38 @@
+#-------------------------------------------------------------------------------
+# Copyright Â© 2017-2018 AT&T Intellectual Property.
+# Modifications Copyright Â© 2018 IBM.
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#         http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# 
+# 
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the Ã¢??Licenseâ?\9d);
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#         https://creativecommons.org/licenses/by/4.0/
+# 
+# Unless required by applicable law or agreed to in writing, documentation
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#-------------------------------------------------------------------------------
+
+tm.vnfs.per.ticket=1
+tm.getPath=http://localhost:8080/cmso/v1/tm/getChangeRecord
+tm.createPath=http://localhost:8080/cmso/v1/tm/createChangeRecord
+tm.closePath=http://localhost:8080/cmso/v1/tm/closeCancelChangeRecord
+tm.updatePath=http://localhost:8080/cmso/v1/tm/updateChangeRecord
+tm.approvalStatus=Approved|Scheduled,Approved|Assigned
+tm.template.folder=data/templates/tm
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright Â© 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,7 +11,6 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-
 1. Get the application URL by running these commands:
 {{- if .Values.ingress.enabled }}
 {{- range .Values.ingress.hosts }}
@@ -28,7 +26,7 @@
   export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
   echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
 {{- else if contains "ClusterIP" .Values.service.type }}
-  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright (C) 2018 AT&T,VMware
+# Copyright Â© 2018 AT&T
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -16,7 +15,7 @@
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ include "common.fullname" . }}-configmap
+  name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
diff --git a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/templates/deployment.yaml b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..47f732a
--- /dev/null
@@ -0,0 +1,140 @@
+# Copyright Â© 2018 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+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
+      - name: db-init
+        image: "{{ include "common.repository" . }}/{{ .Values.dbinit.image }}"
+        imagePullPolicy: Always
+        env:
+        - name: DB_HOST
+          value: {{ .Values.config.db_host }}.{{.Release.Namespace}}
+        - name: DB_PORT
+          value: {{ .Values.config.db_port | quote}}
+        - name: DB_USERNAME
+          value: {{ .Values.config.db_root }}
+        - name: DB_SCHEMA
+          value: {{ .Values.config.mysqlDatabase }}
+        - name: DB_PASSWORD
+          valueFrom:
+            secretKeyRef:
+              name: {{ .Release.Name}}-cmso-db
+              key: db-root-password
+        terminationMessagePolicy: File
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-config
+          mountPath: /share/etc/config
+        - name: {{ include "common.fullname" . }}-logs   
+          mountPath: /share/logs
+      containers:
+      - name: {{ include "common.name" . }}
+        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: DB_HOST
+          value: {{ .Values.config.db_host }}.{{.Release.Namespace}}
+        - name: DB_PORT
+          value: {{ .Values.config.db_port | quote}}
+        - name: DB_USERNAME
+          value: {{ .Values.config.db_user }}
+        - name: DB_SCHEMA
+          value: {{ .Values.config.mysqlDatabase }}
+        - name: DB_PASSWORD
+          valueFrom:
+            secretKeyRef:
+              name: {{ .Release.Name}}-cmso-db
+              key: user-password
+        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: {{ include "common.fullname" . }}-logs
+          mountPath: /share/logs
+        - name: {{ include "common.fullname" . }}-logs
+          mountPath: /share/debug-logs
+        - name: {{ include "common.fullname" . }}-config
+          mountPath: /share/etc/config 
+        resources:
+{{ include "common.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: {{ include "common.fullname" . }}-config
+          configMap:
+            name: {{ include "common.fullname" . }}
+            items:
+            - key: logback.xml
+              path: logback.xml
+            - key: cmso.properties
+              path: cmso.properties
+            - key: optimizer.properties
+              path: optimizer.properties
+            - key: ticketmgt.properties
+              path: ticketmgt.properties
+            - key: liquibase.properties
+              path: liquibase.properties
+        - name:  {{ include "common.fullname" . }}-logs
+          emptyDir: {}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright Â© 2018 AT&T
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -23,12 +22,11 @@ metadata:
     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 }}
+    - port: {{ .Values.service.internalPort }}
       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
       name: {{ .Values.service.portName }}
     {{- else -}}
diff --git a/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/values.yaml b/kubernetes/oof/charts/oof-cmso/charts/oof-cmso-service/values.yaml
new file mode 100644 (file)
index 0000000..a446929
--- /dev/null
@@ -0,0 +1,102 @@
+# Copyright Â© 2018 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global: # global defaults
+  nodePortPrefix: 302
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+
+subChartsOnly:
+  enabled: true
+
+# application image
+repository: nexus3.onap.org:10001
+image: onap/optf-cmso-service:latest
+pullPolicy: Always
+
+#init container image
+dbinit:
+  image: onap/optf-cmso-dbinit:latest
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# 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:
+  type: ClusterIP
+  name: oof-cmso
+  portName: cmso
+  internalPort: 8080
+  externalPort: 8080
+  #nodePort: 23
+  # as of 20181022 port 23 is reserved for cmso 
+  # see https://wiki.onap.org/display/DW/OOM+NodePort+List
+
+
+config:
+  db_root: root
+  db_user: cmso-admin
+  mysqlDatabase: cmso
+  db_host: oof-cmso-dbhost
+  db_port: 3306
+
+mariadb:
+  nameOverride: cmso-db
+
+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: 1
+    memory: 1.2Gi
+  requests:
+    cpu: 10m
+    memory: 800Mi
diff --git a/kubernetes/oof/charts/oof-cmso/requirements.yaml b/kubernetes/oof/charts/oof-cmso/requirements.yaml
new file mode 100644 (file)
index 0000000..2a3bb70
--- /dev/null
@@ -0,0 +1,24 @@
+# Copyright Â© 2018 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+  - name: common
+    version: ~3.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'
+  - name: mariadb-galera
+    version: ~3.0.0
+    repository: '@local'
@@ -1,5 +1,4 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Copyright Â© 2018 AT&T
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-my.public.ip=localhost
-all.public.ips=localhost
-my.id=0
-all.ids=0
-#######################################
-# Optional current values are defaults
-#######################################
-zookeeper.host=oof-has-zk
-cassandra.host=oof-has-cassandra
-cassandra.user=root
-cassandra.password=Aa123456
-# AAF Endpoint if using AAF
-aaf.endpoint.url=https://aaf.api.simpledemo.onap.org
+mariadb-galera:
+  replicaCount: 1
+  nameOverride: cmso-db
+  service:
+    type: ClusterIP
+    name: oof-cmso-dbhost
+    portName: cmso-dbhost
+  nfsprovisionerPrefix: cmso
+  sdnctlPrefix: cmso
+  persistence:
+    mountSubPath: cmso/data
+    enabled: true
+  disableNfsProvisioner: true
+  config:
+    mariadbRootPassword: beer
+    userName: cmso-admin
+    userPassword: nimda-osmc
+    mysqlDatabase: cmso
+  externalConfig: |
+    [mysqld]
+    lower_case_table_names = 1
\ No newline at end of file
index 12bbeef..9940305 100755 (executable)
@@ -36,7 +36,9 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - oof-has-music
+        - oof-has-controller
+        - --container-name
+        - aaf-service
         env:
         - name: NAMESPACE
           valueFrom:
@@ -46,6 +48,38 @@ spec:
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
+      - command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-oof-has-onboard"
+        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" . }}-onboard-readiness
+      - command:
+        - sh
+        - -c
+        - resp="FAILURE";
+          until [ $resp = "200" ]; do
+          resp=$(curl -s -o /dev/null -k --write-out %{http_code} https://aaf-sms.{{ include "common.namespace" . }}:10443/v1/sms/domain/has/secret);
+          echo $resp;
+          sleep 2;
+          done
+        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" . }}-has-sms-readiness
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
@@ -84,6 +118,9 @@ spec:
           - mountPath: /usr/local/bin/log.conf
             name: {{ .Values.global.commonConfigPrefix  }}-config
             subPath: log.conf
+          - mountPath: /usr/local/bin/AAF_RootCA.cer
+            name: {{ .Values.global.commonConfigPrefix }}-config
+            subPath: AAF_RootCA.cer
           resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -106,5 +143,7 @@ spec:
               path: conductor.conf
             - key: log.conf
               path: log.conf
+            - key: AAF_RootCA.cer
+              path: AAF_RootCA.cer
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/resources/config/cassandra/docker-entrypoint-initdb.d/zzz_conductor.cql b/kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/resources/config/cassandra/docker-entrypoint-initdb.d/zzz_conductor.cql
deleted file mode 100644 (file)
index c2593eb..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright Â© 2017 Amdocs, AT&T, Bell Canada, VMware
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-CREATE KEYSPACE conductor WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;
-
-CREATE TABLE conductor.plans (
-    id text PRIMARY KEY,
-    created bigint,
-    message text,
-    name text,
-    recommend_max int,
-    reservation_counter int,
-    reservation_owner text,
-    solution text,
-    solver_counter int,
-    solver_owner text,
-    status text,
-    template text,
-    timeout int,
-    translation text,
-    translation_counter int,
-    translation_owner text,
-    updated bigint,
-    vector_ts text
-);
-
-CREATE INDEX conductor_plans_index ON conductor.plans(status);
-
-CREATE KEYSPACE conductor_rpc WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;
-
-CREATE TABLE conductor_rpc.controller (
-    id text PRIMARY KEY,
-    action text,
-    args text,
-    created bigint,
-    ctxt text,
-    failure text,
-    method text,
-    owner text,
-    response text,
-    status text,
-    updated bigint,
-    vector_ts text
-);
-
-CREATE TABLE conductor_rpc.data (
-    id text PRIMARY KEY,
-    action text,
-    args text,
-    created bigint,
-    ctxt text,
-    failure text,
-    method text,
-    owner text,
-    response text,
-    status text,
-    updated bigint,
-    vector_ts text
-);
-
-INSERT INTO admin.keyspace_master (
-uuid, application_name, is_aaf, is_api, keyspace_name, password,username)
-VALUES ( now(), 'conductor', False, True, 'conductor', 'c0nduct0r', 'conductor');
-
-INSERT INTO admin.keyspace_master (
-uuid, application_name, is_aaf, is_api, keyspace_name, password, username)
-VALUES( now(), 'conductor', False, True, 'conductor_rpc', 'c0nduct0r', 'conductor');
-
-CREATE ROLE IF NOT EXISTS conductor WITH PASSWORD = 'c0nduct0r' AND LOGIN = true;
-
-GRANT ALL PERMISSIONS on KEYSPACE conductor to 'conductor';
-
-GRANT ALL PERMISSIONS on KEYSPACE conductor_rpc to 'conductor';
-
-INSERT INTO conductor.plans (id, created, message, name, recommend_max, solution, status, template,timeout, translation,updated) VALUES('healthcheck',1479482603641,'','foo',1,'{"healthcheck": " healthcheck"}','solved','{"healthcheck": "healthcheck"}',3600,'{"healthcheck": "healthcheck"}',1484324150629);
-
-
-
diff --git a/kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/templates/NOTES.txt b/kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/templates/NOTES.txt
deleted file mode 100644 (file)
index 974fae4..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-1. Get the application URL by running these commands:
-{{- if .Values.ingress.enabled }}
-{{- range .Values.ingress.hosts }}
-  http://{{ . }}
-{{- end }}
-{{- else if contains "NodePort" .Values.service.type }}
-  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }})
-  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
-  echo http://$NODE_IP:$NODE_PORT
-{{- else if contains "LoadBalancer" .Values.service.type }}
-     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
-           You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}'
-  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
-  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
-{{- else if contains "ClusterIP" .Values.service.type }}
-  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
-  echo "Visit http://127.0.0.1:8080 to use your application"
-  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
-{{- end }}
diff --git a/kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/templates/deployment.yaml b/kubernetes/oof/charts/oof-has/charts/oof-has-cassandra/templates/deployment.yaml
deleted file mode 100644 (file)
index aed92e5..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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 }}
-        - containerPort: {{ .Values.service.internalPort2 }}
-        - containerPort: {{ .Values.service.internalPort3 }}
-        - containerPort: {{ .Values.service.internalPort4 }}
-        - containerPort: {{ .Values.service.internalPort5 }}
-        {{ if eq .Values.liveness.enabled true }}
-        livenessProbe:
-          exec:
-            command:
-            - /bin/bash
-            - -c
-            - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
-          initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-          periodSeconds: {{ .Values.liveness.periodSeconds }}
-        {{ end }}
-        readinessProbe:
-          exec:
-            command:
-            - /bin/bash
-            - -c
-            - nodetool status | grep $POD_IP | awk '$1!="UN" { exit 1; }'
-          initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-          periodSeconds: {{ .Values.readiness.periodSeconds }}
-        env:
-          - name: CASSUSER
-            value: "{{ .Values.config.cassandraUsername }}"
-          - name: CASSPASS
-            value: "{{ .Values.config.cassandraPassword }}"
-          - name: POD_IP
-            valueFrom:
-              fieldRef:
-                fieldPath: status.podIP
-        volumeMounts:
-        - mountPath: /etc/localtime
-          name: localtime
-          readOnly: true
-        - name: cassandra-docker-entrypoint-initdb
-          mountPath: /docker-entrypoint-initdb.d/zzz_conductor.cql
-          subPath: zzz_conductor.cql
-        - name: {{ include "common.fullname" . }}-data
-          mountPath: /var/lib/cassandra/data
-        resources:
-{{ include "common.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: cassandra-docker-entrypoint-initdb
-          configMap:
-            name: {{ include "common.fullname" . }}-docker-entry-initd
-      {{- if .Values.persistence.enabled }}
-        - name: {{ include "common.fullname" . }}-data
-          persistentVolumeClaim:
-            claimName: {{ include "common.fullname" . }}
-      {{- else }}
-          emptyDir: {}
-      {{- end }}
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 00f2625..c5646f6 100755 (executable)
@@ -36,7 +36,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - oof-has-music
+        - music-tomcat
         env:
         - name: NAMESPACE
           valueFrom:
@@ -46,6 +46,38 @@ spec:
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
+      - command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-oof-has-onboard"
+        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" . }}-onboard-readiness
+      - command:
+        - sh
+        - -c
+        - resp="FAILURE";
+          until [ $resp = "200" ]; do
+          resp=$(curl -s -o /dev/null -k --write-out %{http_code} https://aaf-sms.{{ include "common.namespace" . }}:10443/v1/sms/domain/has/secret);
+          echo $resp;
+          sleep 2;
+          done
+        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" . }}-cont-sms-readiness
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
@@ -87,6 +119,9 @@ spec:
           - mountPath: /usr/local/bin/healthy.sh
             name: {{ .Values.global.commonConfigPrefix }}-config
             subPath: healthy.sh
+          - mountPath: /usr/local/bin/AAF_RootCA.cer
+            name: {{ .Values.global.commonConfigPrefix }}-config
+            subPath: AAF_RootCA.cer
           resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -111,5 +146,7 @@ spec:
               path: log.conf
             - key: healthy.sh
               path: healthy.sh
+            - key: AAF_RootCA.cer
+              path: AAF_RootCA.cer
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 3f64923..e4ec820 100755 (executable)
@@ -36,7 +36,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - oof-has-music
+        - music-tomcat
         env:
         - name: NAMESPACE
           valueFrom:
@@ -46,6 +46,52 @@ spec:
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
+      - command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-oof-has-onboard"
+        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" . }}-onboard-readiness
+      - command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-oof-has-healthcheck"
+        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" . }}-health-readiness
+      - command:
+        - sh
+        - -c
+        - resp="FAILURE";
+          until [ $resp = "200" ]; do
+          resp=$(curl -s -o /dev/null -k --write-out %{http_code} https://aaf-sms.{{ include "common.namespace" . }}:10443/v1/sms/domain/has/secret);
+          echo $resp;
+          sleep 2;
+          done
+        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" . }}-data-sms-readiness
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
diff --git a/kubernetes/oof/charts/oof-has/charts/oof-has-music/resources/config/startup.sh b/kubernetes/oof/charts/oof-has/charts/oof-has-music/resources/config/startup.sh
deleted file mode 100755 (executable)
index dd2c550..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-OUT=$(curl -o /dev/null -s -w "%{http_code}\n"  \
-  http://localhost:8080/MUSIC/rest/v2/admin/onboardAppWithMusic \
-  -H 'Cache-Control: no-cache' \
-  -H 'Content-Type: application/json' \
-  -H 'Postman-Token: 705d4a9d-aaf2-40b4-914a-e0ce1a79534c' \
-  -d '{
-   "appname": "conductor",
-   "userId" : "conductor",
-   "isAAF"  : false,
-   "password" : "c0nduct0r"
-}
-')
-
-if [ ${OUT} = "200" ]; then
-    echo "Success"
-    echo 1 > /tmp/onboarded
-    exit 0;
-else
-    echo "Failure"
-    exit 1;
-fi
diff --git a/kubernetes/oof/charts/oof-has/charts/oof-has-music/templates/NOTES.txt b/kubernetes/oof/charts/oof-has/charts/oof-has-music/templates/NOTES.txt
deleted file mode 100644 (file)
index 2088e33..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-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 }}
index a967bb5..7c30360 100755 (executable)
@@ -36,7 +36,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - oof-has-music
+        - music-tomcat
         env:
         - name: NAMESPACE
           valueFrom:
@@ -46,6 +46,52 @@ spec:
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
+      - command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-oof-has-onboard"
+        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" . }}-onboard-readiness
+      - command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-oof-has-healthcheck"
+        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" . }}-health-readiness
+      - command:
+        - sh
+        - -c
+        - resp="FAILURE";
+          until [ $resp = "200" ]; do
+          resp=$(curl -s -o /dev/null -k --write-out %{http_code} https://aaf-sms.{{ include "common.namespace" .}}:10443/v1/sms/domain/has/secret);
+          echo $resp;
+          sleep 2;
+          done
+        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" . }}-resrv-sms-readiness
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
@@ -87,6 +133,9 @@ spec:
           - mountPath: /usr/local/bin/healthy.sh
             name: {{ .Values.global.commonConfigPrefix }}-config
             subPath: healthy.sh
+          - mountPath: /usr/local/bin/AAF_RootCA.cer
+            name: {{ .Values.global.commonConfigPrefix }}-config
+            subPath: AAF_RootCA.cer
           resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -111,5 +160,7 @@ spec:
               path: log.conf
             - key: healthy.sh
               path: healthy.sh
+            - key: AAF_RootCA.cer
+              path: AAF_RootCA.cer
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 26ed7c7..0cc4ded 100755 (executable)
@@ -36,7 +36,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - oof-has-music
+        - music-tomcat
         env:
         - name: NAMESPACE
           valueFrom:
@@ -46,6 +46,52 @@ spec:
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
+      - command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-oof-has-onboard"
+        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" . }}-onboard-readiness
+      - command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-oof-has-healthcheck"
+        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" . }}-health-readiness
+      - command:
+        - sh
+        - -c
+        - resp="FAILURE";
+          until [ $resp = "200" ]; do
+          resp=$(curl -s -o /dev/null -k --write-out %{http_code} https://aaf-sms.{{ include "common.namespace" . }}:10443/v1/sms/domain/has/secret);
+          echo $resp;
+          sleep 2;
+          done
+        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" . }}-solvr-sms-readiness
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
@@ -87,6 +133,9 @@ spec:
           - mountPath: /usr/local/bin/healthy.sh
             name: {{ .Values.global.commonConfigPrefix }}-config
             subPath: healthy.sh
+          - mountPath: /usr/local/bin/AAF_RootCA.cer
+            name: {{ .Values.global.commonConfigPrefix }}-config
+            subPath: AAF_RootCA.cer
           resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -111,5 +160,7 @@ spec:
               path: log.conf
             - key: healthy.sh
               path: healthy.sh
+            - key: AAF_RootCA.cer
+              path: AAF_RootCA.cer
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/oof/charts/oof-has/charts/oof-has-zookeeper/templates/deployment.yaml b/kubernetes/oof/charts/oof-has/charts/oof-has-zookeeper/templates/deployment.yaml
deleted file mode 100644 (file)
index 888bfd0..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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: {{ include "common.repository" . }}/{{ .Values.image }}
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-          - containerPort: {{ .Values.service.internalPort }}
-          {{- 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 }}
-          volumeMounts:
-          - mountPath: /etc/localtime
-            name: localtime
-            readOnly: true
-          resources:
-{{ include "common.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"
index 14f1f9a..cda496b 100755 (executable)
@@ -17,3 +17,6 @@ dependencies:
   - name: common
     version: ~3.0.0
     repository: '@local'
+  - name: music
+    version: ~3.0.0
+    repository: '@local'
index 00a65ce..4db857a 100755 (executable)
@@ -1,5 +1,5 @@
 # Copyright Â© 2017 Amdocs, Bell Canada
-# Modifications Copyright Â© 2018 AT&T,VMware
+# Modifications Copyright Â© 2018 AT&T,VMware, Intel Corporation.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 #api_paste_config = api_paste.ini
 
 # Music keyspace for content (string value)
-keyspace = conductor
+#keyspace = conductor
+
+# Delay time (Seconds) for MUSIC requests. Set it to 2 seconds by default.
+# (integer value)
+#delay_time = 2
+
+# (boolean value)
+#HPA_enabled = true
 
 #
 # From oslo.log
@@ -32,14 +39,9 @@ keyspace = conductor
 # If set to true, the logging level will be set to DEBUG instead of the default
 # INFO level. (boolean value)
 # Note: This option can be changed without restarting.
+#debug = false
 debug = true
 
-# DEPRECATED: If set to false, the logging level will be set to WARNING instead
-# of the default INFO level. (boolean value)
-# This option is deprecated for removal.
-# Its value may be silently ignored in the future.
-#verbose = true
-
 # The name of a logging configuration file. This file is appended to any
 # existing logging configuration files. For details about logging configuration
 # files, see the Python logging module documentation. Note that when logging
@@ -48,7 +50,8 @@ debug = true
 # example, logging_context_format_string). (string value)
 # Note: This option can be changed without restarting.
 # Deprecated group/name - [DEFAULT]/log_config
-# log_config_append = /usr/local/bin/log.conf
+#log_config_append = <None>
+log_config_append = /usr/local/bin/log.conf
 
 # Defines the format string for %%(asctime)s in log records. Default:
 # %(default)s . This option is ignored if log_config_append is set. (string
@@ -78,10 +81,20 @@ debug = true
 # is set. (boolean value)
 #use_syslog = false
 
+# Enable journald for logging. If running in a systemd environment you may wish
+# to enable journal support. Doing so will use the journal native protocol
+# which includes structured metadata in addition to log messages.This option is
+# ignored if log_config_append is set. (boolean value)
+#use_journal = false
+
 # Syslog facility to receive log lines. This option is ignored if
 # log_config_append is set. (string value)
 #syslog_log_facility = LOG_USER
 
+# Use JSON formatting for logging. This option is ignored if log_config_append
+# is set. (boolean value)
+#use_json = false
+
 # Log output to standard error. This option is ignored if log_config_append is
 # set. (boolean value)
 #use_stderr = false
@@ -106,7 +119,7 @@ debug = true
 
 # List of package logging levels in logger=LEVEL pairs. This option is ignored
 # if log_config_append is set. (list value)
-#default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
+#default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,oslo_messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
 
 # Enables or disables publication of error events. (boolean value)
 #publish_errors = false
@@ -135,6 +148,65 @@ debug = true
 #fatal_deprecations = false
 
 
+[aaf_api]
+
+#
+# From conductor
+#
+
+# is_aaf_enabled. (boolean value)
+is_aaf_enabled = true
+
+# aaf_cache_expiry_hrs. (integer value)
+aaf_cache_expiry_hrs = 3
+
+# aaf_url. (string value)
+aaf_url = https://{{.Values.config.aaf.serviceName}}:{{.Values.config.aaf.port}}/authz/perms/user/
+
+# aaf_cert_file. (string value)
+#aaf_cert_file = <None>
+
+# aaf_cert_key_file. (string value)
+#aaf_cert_key_file = <None>
+
+# aaf_ca_bundle_file. (string value)
+#aaf_ca_bundle_file =
+aaf_ca_bundle_file = /usr/local/bin/AAF_RootCA.cer
+
+# aaf_retries. (integer value)
+#aaf_retries = 3
+
+# aaf_timeout. (integer value)
+#aaf_timeout = 100
+
+# aaf_user_roles. (list value)
+#aaf_permissions = {"type": "org.onap.oof.access","instance": "*","action": "*"}
+
+
+[aaf_sms]
+
+#
+# From conductor
+#
+
+# Base URL for SMS, up to and not including the version, and without a trailing
+# slash. (string value)
+aaf_sms_url = https://{{.Values.config.sms.serviceName}}.{{ include "common.namespace" . }}:{{.Values.config.sms.port}}
+
+
+# Timeout for SMS API Call (integer value)
+#aaf_sms_timeout = 30
+
+# Path to the cacert that will be used to verify If this is None, verify will
+# be False and the server certis not verified by the client. (string value)
+#aaf_ca_certs = AAF_RootCA.cer
+aaf_ca_certs = /usr/local/bin/AAF_RootCA.cer
+
+# Domain UUID - A unique UUID generated when the domainfor HAS is created by
+# administrator during deployment (string value)
+#secret_domain = has
+
+
 [aai]
 
 #
@@ -142,7 +214,12 @@ debug = true
 #
 
 # Interval with which to refresh the local cache, in minutes. (integer value)
+#cache_refresh_interval = 1440
 cache_refresh_interval = 1
+
+# Interval with which to refresh the local complex cache, in minutes. (integer
+# value)
+#complex_cache_refresh_interval = 1440
 complex_cache_refresh_interval = 60
 
 # Data Store table prefix. (string value)
@@ -152,6 +229,12 @@ complex_cache_refresh_interval = 60
 # trailing slash. (string value)
 server_url = https://{{.Values.config.aai.serviceName}}.{{ include "common.namespace" . }}:{{.Values.config.aai.port}}/aai
 
+# Timeout for A&AI Rest Call (string value)
+#aai_rest_timeout = 30
+
+# Number of retry for A&AI Rest Call (string value)
+#aai_retries = 3
+
 # The version of A&AI in v# format. (string value)
 server_url_version = v14
 
@@ -164,13 +247,13 @@ certificate_key_file =
 
 # Certificate Authority Bundle file in pem format. Must contain the appropriate
 # trust chain for the Certificate file. (string value)
-#certificate_authority_bundle_file = /opt/app/conductor/etc/certs/ca_bundle.pem
-certificate_authority_bundle_file =/usr/local/bin/AAF_RootCA.cer
+#certificate_authority_bundle_file = certificate_authority_bundle.pem
+certificate_authority_bundle_file = /usr/local/bin/AAF_RootCA.cer
 
-# Basic Authentication Username (string value)
+# Username for AAI. (string value)
 username = OOF
 
-# Basic Authentication Password (string value)
+# Password for AAI. (string value)
 password = OOF
 
 
@@ -189,13 +272,24 @@ password = OOF
 
 [conductor_api]
 
-# Basic Authentication Username (string value)
+#
+# From conductor
+#
+
+# Base URL for plans. (string value)
+#server_url =
+
+# username for plans. (string value)
+#username =
 username = admin1
 
-# Basic Authentication Password (string value)
+# password for plans. (string value)
+#password =
 password = plan.15
 
-basic_auth_secure = False
+# auth toggling. (boolean value)
+basic_auth_secure = true
+
 
 [controller]
 
@@ -205,6 +299,7 @@ basic_auth_secure = False
 
 # Timeout for planning requests. Default value is 10. (integer value)
 # Minimum value: 1
+#timeout = 10
 timeout = 200
 
 # Maximum number of result sets to return. Default value is 1. (integer value)
@@ -215,11 +310,47 @@ timeout = 200
 # Minimum value: 1
 #workers = 1
 
+# Set to True when controller will run in active-active mode. When set to
+# False, controller will flush any abandoned messages at startup. The
+# controller always restarts abandoned template translations at startup.
+# (boolean value)
+#concurrent = false
+concurrent = true
+
 # Time between checking for new plans. Default value is 1. (integer value)
 # Minimum value: 1
 #polling_interval = 1
+
+# (integer value)
+# Minimum value: 1
+#max_translation_counter = 1
+
+
+[data]
+
+#
+# From conductor
+#
+
+# Number of workers for data service. Default value is 1. (integer value)
+# Minimum value: 1
+#workers = 1
+
+# Set to True when data will run in active-active mode. When set to False, data
+# will flush any abandoned messages at startup. (boolean value)
+#concurrent = false
 concurrent = true
 
+# Default value is -8000, which is the diameter of the earth. The distance
+# cannot larger than this value (floating point value)
+#existing_placement_cost = -8000.0
+
+# (floating point value)
+#cloud_candidate_cost = 2.0
+
+# (floating point value)
+#service_candidate_cost = 1.0
+
 
 [inventory_provider]
 
@@ -238,16 +369,21 @@ concurrent = true
 #
 
 # Music keyspace for messages (string value)
-keyspace = conductor_rpc
+#keyspace = conductor_rpc
 
 # Wait interval while checking for a message response. Default value is 1
 # second. (integer value)
 # Minimum value: 1
 #check_interval = 1
 
-# Overall message response timeout. Default value is 10 seconds. (integer
+# Overall message response timeout. Default value is 120 seconds. (integer
 # value)
 # Minimum value: 1
+#response_timeout = 120
+
+# Timeout for detecting a VM is down, and other VMs can pick the plan up.
+# Default value is 5 minutes. (integer value) (integer value)
+# Minimum value: 1
 timeout = 300
 
 # Number of workers for messaging service. Default value is 1. (integer value)
@@ -262,19 +398,36 @@ timeout = 300
 #debug = false
 
 
+[multicloud]
+
+#
+# From conductor
+#
+
+# Base URL for Multicloud without a trailing slash. (string value)
+#server_url = http://msb.onap.org/api/multicloud
+server_url = http://{{.Values.config.msb.serviceName}}.{{ include "common.namespace" . }}:{{.Values.config.msb.port}}/api/multicloud
+
+# Timeout for Multicloud Rest Call (string value)
+#multicloud_rest_timeout = 30
+
+# Number of retry for Multicloud Rest Call (string value)
+#multicloud_retries = 3
+
+# The version of Multicloud API. (string value)
+#server_url_version = v0
+
+
 [music_api]
 
 #
 # From conductor
 #
-music_new_version = True
+
 # Base URL for Music REST API without a trailing slash. (string value)
-server_url = http://oof-has-music:8080/MUSIC/rest/v2
+#server_url = http://oof-has-music:8080/MUSIC/rest/v2
+server_url = http://{{.Values.config.music.serviceName}}.{{ include "common.namespace" . }}:{{.Values.config.music.port}}/MUSIC/rest/v2
 version = v2
-music_version = "2.5.3"
-aafuser = conductor
-aafpass = c0nduct0r
-aafns = conductor
 
 # DEPRECATED: List of hostnames (round-robin access) (list value)
 # This option is deprecated for removal.
@@ -294,21 +447,104 @@ aafns = conductor
 # Reason: Use server_url instead
 #path = <None>
 
+# Socket connection timeout (floating point value)
+#connect_timeout = 3.05
+
+# Socket read timeout (floating point value)
+#read_timeout = 12.05
+
 # Lock timeout (integer value)
 #lock_timeout = 10
+
+# Replication factor (integer value)
+#replication_factor = 1
 replication_factor = 1
-# Log debug messages. Default value is False. (boolean value)
-#debug = false
 
 # Use mock API (boolean value)
 #mock = false
 
-# Socket connection timeout (floating point value)
-connect_timeout = 3.05
+# (string value)
+#music_topology = SimpleStrategy
 
-# Socket read timeout (floating point value)
-read_timeout = 12.05
+# Name of the first data center (string value)
+#first_datacenter_name = <None>
+
+# Number of replicas in first data center (integer value)
+#first_datacenter_replicas = <None>
 
+# Name of the second data center (string value)
+#second_datacenter_name = <None>
+
+# Number of replicas in second data center (integer value)
+#second_datacenter_replicas = <None>
+
+# Name of the third data center (string value)
+#third_datacenter_name = <None>
+
+# Number of replicas in third data center (integer value)
+#third_datacenter_replicas = <None>
+
+# new or old version (boolean value)
+#music_new_version = <None>
+music_new_version = True
+
+# for version (string value)
+#music_version = <None>
+music_version = "3.0.21"
+
+# username value that used for creating basic authorization header (string
+# value)
+#aafuser = <None>
+aafuser = conductor
+
+# password value that used for creating basic authorization header (string
+# value)
+#aafpass = <None>
+aafpass = c0nduct0r
+
+# AAF namespace field used in MUSIC request header (string value)
+#aafns = <None>
+aafns = conductor
+
+
+[prometheus]
+
+#
+# From conductor
+#
+
+# Prometheus Metrics Endpoint (list value)
+#metrics_port = 8000,8001,8002,8003,8004
+
+
+[reservation]
+
+#
+# From conductor
+#
+
+# Number of workers for reservation service. Default value is 1. (integer
+# value)
+# Minimum value: 1
+#workers = 1
+
+# Number of times reservation/release should be attempted. (integer value)
+#reserve_retries = 1
+
+# Timeout for detecting a VM is down, and other VMs can pick the plan up and
+# resereve. Default value is 600 seconds. (integer value) (integer value)
+# Minimum value: 1
+#timeout = 600
+
+# Set to True when reservation will run in active-active mode. When set to
+# False, reservation will restart any orphaned reserving requests at startup.
+# (boolean value)
+#concurrent = false
+concurrent = true
+
+# (integer value)
+# Minimum value: 1
+#max_reservation_counter = 1
 
 
 [sdnc]
@@ -324,13 +560,22 @@ read_timeout = 12.05
 #table_prefix = sdnc
 
 # Base URL for SDN-C, up to and including the version. (string value)
+#server_url = https://controller:8443/restconf/
 server_url = https://sdncodl-conexus-e2e.ecomp.cci.att.com:8543/restconf/
 
 # Basic Authentication Username (string value)
+#username = <None>
 username = admin
 
 # Basic Authentication Password (string value)
-password = sdnc.15
+#password = <None>
+password = Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+
+# Timeout for SDNC Rest Call (string value)
+#sdnc_rest_timeout = 30
+
+# Retry Numbers for SDNC Rest Call (string value)
+#sdnc_retries = 3
 
 
 [service_controller]
@@ -353,41 +598,32 @@ password = sdnc.15
 # Minimum value: 1
 #workers = 1
 
+# The timeout value for solver service. Default value is 480 seconds. (integer
+# value)
+# Minimum value: 1
+#solver_timeout = 480
+
 # Set to True when solver will run in active-active mode. When set to False,
 # solver will restart any orphaned solving requests at startup. (boolean value)
 #concurrent = false
 concurrent = true
 
+# Timeout for detecting a VM is down, and other VMs can pick the plan up. This
+# value should be larger than solver_timeoutDefault value is 10 minutes.
+# (integer value) (integer value)
+# Minimum value: 1
+#timeout = 600
 
-
-[reservation]
-concurrent = true
-
-
-[multicloud]
-
-#
-# From conductor
-#
-
-# Base URL for Multicloud without a trailing slash. (string value)
-server_url = http://{{.Values.config.msb.serviceName}}:{{.Values.config.msb.port}}/api/multicloud
-
-# Timeout for Multicloud Rest Call (string value)
-multicloud_rest_timeout = 30
-
-# Number of retry for Multicloud Rest Call (string value)
-multicloud_retries = 3
-
-# The version of Multicloud API. (string value)
-server_url_version = v0
+# (integer value)
+# Minimum value: 1
+#max_solver_counter = 1
 
 
 [vim_controller]
+
 #
 # From conductor
 #
 
 # Extensions list to use (list value)
-extensions = multicloud
-
+#extensions = multicloud
diff --git a/kubernetes/oof/charts/oof-has/resources/config/healthcheck.json b/kubernetes/oof/charts/oof-has/resources/config/healthcheck.json
new file mode 100755 (executable)
index 0000000..833fa0f
--- /dev/null
@@ -0,0 +1,18 @@
+{
+  "consistencyInfo": {
+    "type": "eventual"
+  },
+  "values": {
+    "id": "healthcheck",
+    "created": 1479482603641,
+    "message": "",
+    "name": "foo",
+    "recommend_max": 1,
+    "solution": "{\"healthcheck\": \" healthcheck\"}",
+    "status": "solved",
+    "template": "{\"healthcheck\": \"healthcheck\"}",
+    "timeout": 3600,
+    "translation": "{\"healthcheck\": \" healthcheck\"}",
+    "updated": 1484324150629
+  }
+}
diff --git a/kubernetes/oof/charts/oof-has/resources/config/onboard.json b/kubernetes/oof/charts/oof-has/resources/config/onboard.json
new file mode 100755 (executable)
index 0000000..2c3d69b
--- /dev/null
@@ -0,0 +1,6 @@
+{
+  "appname": "conductor",
+  "userId": "conductor",
+  "isAAF": "false",
+  "password": "c0nduct0r"
+}
diff --git a/kubernetes/oof/charts/oof-has/templates/job-healthcheck.yaml b/kubernetes/oof/charts/oof-has/templates/job-healthcheck.yaml
new file mode 100755 (executable)
index 0000000..6e38034
--- /dev/null
@@ -0,0 +1,100 @@
+{{/*
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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: batch/v1
+kind: Job
+metadata:
+  name: {{ include "common.fullname" . }}-healthcheck
+  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:
+      - image:  "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-readiness
+        command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - oof-has-api
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+      containers:
+      - image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-healthcheck
+        command:
+          - "/bin/sh"
+          - "-c"
+          - |
+             echo "INSERT HEALTHCHECK PLAN";
+             sleep 15;
+             resp="FAILURE";
+             until [ $resp = "200" ]; do
+             resp=$(curl -s -o /dev/null --write-out %{http_code} -X POST http://{{.Values.config.music.serviceName}}.{{ include "common.namespace" . }}:{{.Values.config.music.port}}/MUSIC/rest/v2/keyspaces/conductor/tables/plans/rows?id=healthcheck \
+             -H "Content-Type: application/json" \
+             -H "ns: conductor" \
+             -H "Authorization: Basic Y29uZHVjdG9yOmMwbmR1Y3Qwcg==" \
+             --data @healthcheck.json);
+             echo $resp;
+             sleep 2;
+             done;
+        workingDir: /has
+        volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /has/healthcheck.json
+            name: {{ .Values.global.commonConfigPrefix }}-config
+            subPath: healthcheck.json
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      nodeSelector:
+        {{- if .Values.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: {{ .Values.global.commonConfigPrefix }}-config
+        configMap:
+          name: {{ .Values.global.commonConfigPrefix }}-configmap
+          items:
+          - key: healthcheck.json
+            path: healthcheck.json
+      restartPolicy: OnFailure
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
diff --git a/kubernetes/oof/charts/oof-has/templates/job-onboard.yaml b/kubernetes/oof/charts/oof-has/templates/job-onboard.yaml
new file mode 100755 (executable)
index 0000000..2b24d40
--- /dev/null
@@ -0,0 +1,108 @@
+{{/*
+# Copyright 2018 Intel Corporation, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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: batch/v1
+kind: Job
+metadata:
+  name: {{ include "common.fullname" . }}-onboard
+  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:
+      - image:  "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-readiness
+        command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - "music-tomcat"
+        - --container-name
+        - "music-cassandra"
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+      - command:
+        - /root/job_complete.py
+        args:
+        - -j
+        - "{{ .Release.Name }}-music-cassandra-job-config"
+        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" . }}-music-db-readiness
+      containers:
+      - image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-onboard
+        command:
+          - "/bin/sh"
+          - "-c"
+          - |
+             curl -X POST http://{{.Values.config.music.serviceName}}.{{ include "common.namespace" . }}:{{.Values.config.music.port}}/MUSIC/rest/v2/admin/onboardAppWithMusic \
+             -H "Content-Type: application/json" \
+             -H "Authorization: Basic Y29uZHVjdG9yOmMwbmR1Y3Qwcg==" \
+             --data @onboard.json
+        workingDir: /has
+        volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /has/onboard.json
+            name: {{ .Values.global.commonConfigPrefix }}-config
+            subPath: onboard.json
+        resources:
+{{ toYaml .Values.resources | indent 10 }}
+      nodeSelector:
+        {{- if .Values.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: {{ .Values.global.commonConfigPrefix }}-config
+        configMap:
+          name: {{ .Values.global.commonConfigPrefix }}-configmap
+          items:
+          - key: onboard.json
+            path: onboard.json
+      restartPolicy: OnFailure
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
index fa6b410..d825e44 100755 (executable)
@@ -1,4 +1,5 @@
 # Copyright Â© 2017 Amdocs, AT&T, Bell Canada, VMware
+# Modifications Copyright Â© 2018 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -24,17 +25,44 @@ global:
   commonConfigPrefix: onap-oof-has
   image:
     readiness: oomk8s/readiness-check:2.0.0
-    optf_has: onap/optf-has:1.2.1
+    optf_has: onap/optf-has:1.2.4
     filebeat: docker.elastic.co/beats/filebeat:5.5.0
 
 pullPolicy: Always
 nodePortPrefix: 302
 dataRootDir: /dockerdata-nfs
 config:
+  aaf:
+    serviceName: aaf-service
+    port: 8100
   aai:
     serviceName: aai
     port: 8443
   msb:
     serviceName: msb-iag
     port: 80
-
+  music:
+    serviceName: music-tomcat
+    port: 8080
+  sms:
+    serviceName: aaf-sms
+    port: 10443
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      memory: 2Gi
+      cpu: 1000m
+    requests:
+      memory: 1Gi
+      cpu: 500m
+  large:
+    limits:
+      memory: 4Gi
+      cpu: 2000m
+    requests:
+      memory: 2Gi
+      cpu: 1000m
+  unlimited: {}
index d39a832..fea3d90 100755 (executable)
@@ -68,7 +68,7 @@ aaf_user_roles:
   {{- end }}
 
 # Secret Management Service from AAF
-aaf_sms_url: {{ .Values.config.aaf_sms_url }}
+aaf_sms_url: {{ .Values.config.aaf_sms_url }}.{{ include "common.namespace" . }}:{{ .Values.config.aaf_sms_port }}
 aaf_sms_timeout: {{ .Values.config.aaf_sms_timeout }}
 secret_domain: {{ .Values.config.secret_domain }}
 aaf_ca_certs: {{ .Values.config.aaf_ca_certs }}
index 682969a..acb7dd9 100644 (file)
@@ -28,7 +28,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
index 07f1ff4..d4558b7 100644 (file)
@@ -37,12 +37,6 @@ spec:
         args:
         - --container-name
         - pdp
-        - --container-name
-        - aaf-service
-        - --container-name
-        - aaf-sms
-        - --container-name
-        - oof-has-api
         env:
         - name: NAMESPACE
           valueFrom:
@@ -52,6 +46,24 @@ spec:
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
+      - command:
+        - sh
+        - -c
+        - resp="FAILURE";
+          until [ $resp = "200" ]; do
+          resp=$(curl -s -o /dev/null -k --write-out %{http_code} https://aaf-sms.{{ include "common.namespace" . }}:10443/v1/sms/domain/osdf/secret);
+          echo $resp;
+          sleep 2;
+          done
+        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" . }}-osdf-sms-readiness
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
index da69c42..24a0333 100644 (file)
@@ -26,7 +26,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/optf-osdf:1.2.1
+image: onap/optf-osdf:1.2.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -36,7 +36,7 @@ debugEnabled: false
 config:
   msbgateway: msb-iag
   msbPort: 80
-  placementVersioningEnabled: False
+  placementVersioningEnabled: True
   # Placement API latest version numbers to be set in HTTP header
   placementMajorVersion: "1"
   placementMinorVersion: "0"
@@ -57,7 +57,7 @@ config:
   # versions to be set in HTTP header
   conductorMinorVersion: 0
   # Url and credentials for the Policy Platform
-  policyPlatformUrl: http://pdp:8081/pdp/api/getConfig # Policy Dev platform URL
+  policyPlatformUrl: https://pdp:8081/pdp/api/getConfig # Policy Dev platform URL
   policyPlatformEnv: TEST # Environment for policy platform
   policyPlatformUsername: testpdp # Policy platform username.
   policyPlatformPassword: alpha123 # Policy platform password.
@@ -92,7 +92,8 @@ config:
   aaf_user_roles:
       - '/api/oof/v1/placement:org.onap.osdf.access|*|read ALL'
   # Secret Management Service from AAF
-  aaf_sms_url: https://aaf-sms:10443
+  aaf_sms_url: https://aaf-sms
+  aaf_sms_port: 10443
   aaf_sms_timeout: 30
   secret_domain: osdf
   aaf_ca_certs: /opt/app/ssl_cert/aaf_root_ca.cer
@@ -118,15 +119,15 @@ flavor: small
 resources:
   small:
     limits:
-      memory: 4Gi
-      cpu: 2000m
+      memory: 2Gi
+      cpu: 1000m
     requests:
       memory: 1Gi
       cpu: 500m
   large:
     limits:
-      memory: 8Gi
-      cpu: 4000m
+      memory: 4Gi
+      cpu: 2000m
     requests:
       memory: 2Gi
       cpu: 1000m
index 2f65c87..b074d48 100644 (file)
@@ -63,5 +63,5 @@ BRMS_UEB_API_KEY=
 BRMS_UEB_API_SECRET=
 
 #Dependency.json file version
-BRMS_DEPENDENCY_VERSION=1.2.0
+BRMS_DEPENDENCY_VERSION=1.3.1
 
index 32059d6..5109465 100644 (file)
@@ -26,7 +26,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-pe:1.3-SNAPSHOT-latest
+image: onap/policy-pe:1.3.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index a67f32f..7afaeae 100644 (file)
@@ -44,6 +44,7 @@ SQL_PASSWORD=policy_user
 
 # AAF
 
+AAF=true
 AAF_NAMESPACE=org.onap.policy
 AAF_HOST=aaf-locate.{{.Release.Namespace}}
 
@@ -90,7 +91,7 @@ AAI_PASSWORD=demo123456!
 
 # MSO
 
-SO_URL=http://so.{{.Release.Namespace}}:8080/ecomp/mso/infra
+SO_URL=http://so.{{.Release.Namespace}}:8080/onap/so/infra
 SO_USERNAME=InfraPortalClient
 SO_PASSWORD=password1$
 
index b4a848a..9dfefae 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-drools:1.3-SNAPSHOT-latest
+image: onap/policy-drools:1.3.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 6559b42..5496123 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-pe:1.3-SNAPSHOT-latest
+image: onap/policy-pe:1.3.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 5d7a4d6..96803cf 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-apex-pdp:2.0-SNAPSHOT-latest
+image: onap/policy-apex-pdp:2.0.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 8722e03..d6a6d21 100644 (file)
@@ -18,7 +18,7 @@ spec:
     spec:
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ .Values.repository }}/{{ .Values.image }}"
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command: ["/opt/app/policy/distribution/bin/policy-dist.sh"]
           args: ["/opt/app/policy/distribution/etc/mounted/config.json"]
index d74d001..cad79df 100644 (file)
@@ -27,7 +27,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-distribution:2.0.0-SNAPSHOT-latest
+image: onap/policy-distribution:2.0.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index deb213e..1cd9290 100644 (file)
@@ -139,8 +139,8 @@ ONAP_REDIRECT_URL=https://portal-app.{{.Release.Namespace}}:30225/ONAPPORTAL/log
 ONAP_REST_URL=https://portal-app:8443/ONAPPORTAL/auxapi
 ONAP_UEB_URL_LIST=
 ONAP_PORTAL_INBOX_NAME=
-ONAP_UEB_APP_KEY=
-ONAP_UEB_APP_SECRET=
+ONAP_UEB_APP_KEY=ueb_key_5
+ONAP_UEB_APP_SECRET=ueb_key_5
 ONAP_UEB_APP_MAILBOX_NAME=
 APP_DISPLAY_NAME=ONAP Policy
 ONAP_SHARED_CONTEXT_REST_URL=http://portal-app.{{.Release.Namespace}}:8989/ONAPPORTAL/context
index 2fe0ecb..bdf5933 100644 (file)
@@ -1,4 +1,5 @@
 # Copyright Â© 2017 Amdocs, Bell Canada, AT&T
+# Modifications Copyright Â© 2018 AT&T. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -22,7 +23,7 @@ echo "Upload BRMS Param Template"
 
 sleep 2
 
-wget -O cl-amsterdam-template.drl https://git.onap.org/policy/drools-applications/plain/controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl
+wget -O cl-amsterdam-template.drl https://git.onap.org/policy/drools-applications/plain/controlloop/templates/archetype-cl-amsterdam/src/main/resources/archetype-resources/src/main/resources/__closedLoopControlName__.drl?h=casablanca
 
 sleep 2
 
@@ -73,7 +74,7 @@ curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'A
         "RULE": {
             "templateName": "ClosedLoopControlName",
             "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
-            "controlLoopYaml": "controlLoop%3A%0D%0A++version%3A+2.0.0%0D%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0D%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0D%0A++timeout%3A+1200%0D%0A++abatement%3A+false%0D%0Apolicies%3A%0D%0A++-+id%3A+unique-policy-id-1-scale-up%0D%0A++++name%3A+Create+a+new+VF+Module%0D%0A++++description%3A%0D%0A++++actor%3A+SO%0D%0A++++recipe%3A+VF+Module+Create%0D%0A++++target%3A%0D%0A++++++type%3A+VNF%0D%0A++++retry%3A+0%0D%0A++++timeout%3A+1200%0D%0A++++success%3A+final_success%0D%0A++++failure%3A+final_failure%0D%0A++++failure_timeout%3A+final_failure_timeout%0D%0A++++failure_retries%3A+final_failure_retries%0D%0A++++failure_exception%3A+final_failure_exception%0D%0A++++failure_guard%3A+final_failure_guard"
+            "controlLoopYaml": "controlLoop%3A%0A++version%3A+2.0.0%0A++controlLoopName%3A+ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3%0A++trigger_policy%3A+unique-policy-id-1-scale-up%0A++timeout%3A+1200%0A++abatement%3A+false%0Apolicies%3A%0A++-+id%3A+unique-policy-id-1-scale-up%0A++++name%3A+Create+a+new+VF+Module%0A++++description%3A%0A++++actor%3A+SO%0A++++recipe%3A+VF+Module+Create%0A++++target%3A%0A++++++type%3A+VNF%0A++++payload%3A%0A++++++requestParameters%3A+%27%7B%22usePreload%22%3Atrue%2C%22userParams%22%3A%5B%5D%7D%27%0A++++++configurationParameters%3A+%27%5B%7B%22ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B9%5D%22%2C%22oam-ip-addr%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B16%5D%22%2C%22enabled%22%3A%22%24.vf-module-topology.vf-module-parameters.param%5B23%5D%22%7D%5D%27%0A++++retry%3A+0%0A++++timeout%3A+1200%0A++++success%3A+final_success%0A++++failure%3A+final_failure%0A++++failure_timeout%3A+final_failure_timeout%0A++++failure_retries%3A+final_failure_retries%0A++++failure_exception%3A+final_failure_exception%0A++++failure_guard%3A+final_failure_guard"
         }
     }
 }' 'https://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/createPolicy'
@@ -476,4 +477,4 @@ curl -k -v --silent -X PUT --header 'Content-Type: application/json' --header 'A
   "pdpGroup": "default",
   "policyName": "com.OOF_PCI_CONFIG_POLICY",
   "policyType": "Base"
-}' 'https://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
\ No newline at end of file
+}' 'https://{{.Values.global.pdp.nameOverride}}:{{.Values.config.pdpPort}}/pdp/api/pushPolicy'
index 0813f4c..8d72d19 100644 (file)
@@ -41,7 +41,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/policy-pe:1.3-SNAPSHOT-latest
+image: onap/policy-pe:1.3.1
 pullPolicy: Always
 
 subChartsOnly:
index 47ad5c3..78c5367 100644 (file)
@@ -24,7 +24,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image:  onap/pomba-aai-context-builder:latest
+image:  onap/pomba-aai-context-builder:1.3.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -38,8 +38,8 @@ config:
   aaiUsername: AAI
   aaiPassword: OBF:1gfr1ev31gg7
   aaiHttpProtocol: https
-  aaiConnectionTimeout: 5000
-  aaiReadTimeout: 1000
+  aaiConnectionTimeout: 60000
+  aaiReadTimeout: 60000
   # HTTP Basic Authorization credentials for Rest Service API
   httpUserId: admin
   httpPassword: OBF:1u2a1toa1w8v1tok1u30
@@ -83,21 +83,22 @@ 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
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 1
+      memory: 800Mi
+    requests:
+      cpu: 100m
+      memory: 400Mi
+  large:
+    limits:
+      cpu: 2
+      memory: 1600Mi
+    requests:
+      cpu: 200m
+      memory: 800Mi
+  unlimited: {}
diff --git a/kubernetes/pomba/charts/pomba-contextaggregator/resources/bin/pre_start.sh b/kubernetes/pomba/charts/pomba-contextaggregator/resources/bin/pre_start.sh
new file mode 100644 (file)
index 0000000..3ef1434
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# Get the list of topic from curl ressult
+dmaap_mr_host=message-router
+dmaap_mr_port=3904
+temp_output_file=".tmpoutput"
+curl -X GET http://$dmaap_mr_host:$dmaap_mr_port/topics  > $temp_output_file
+
+# Test topic POA-AUDIT-INIT, POA-AUDIT-RESULT, POA-RULE-VALIDATION
+TOPICS="POA-AUDIT-INIT POA-RULE-VALIDATION POA-AUDIT-RESULT"
+for i_topic in $TOPICS
+do
+  echo "Looping ... topic: $i_topic"
+  if grep -iFq "$i_topic" $temp_output_file
+  then
+      # code if found
+      echo "$i_topic found."
+  else
+      # code if not found
+      echo "$i_topic NOT found."
+      curl -X POST -H "content-type: application/json" --data "Empty post to create topic" http://$dmaap_mr_host:$dmaap_mr_port/events/$i_topic
+  fi
+done
+
+# remove the temp file
+rm -f $temp_output_file
index 7a119f9..eab3864 100755 (executable)
@@ -23,6 +23,6 @@ key.store.password=70c87528c88dcd9f9c2558d30e817868
 key.store.type=PKCS12
 key.manager.factory.algorithm=SunX509
 security.protocol=TLS
-connection.timeout.ms=15000
-read.timeout.ms=10000
+connection.timeout.ms=60000
+read.timeout.ms=60000
 base.uri=/aaicontextbuilder/service/context
index 80167d2..9a27a6c 100755 (executable)
@@ -22,6 +22,6 @@ key.store.password=70c87528c88dcd9f9c2558d30e817868
 key.store.type=PKCS12
 key.manager.factory.algorithm=SunX509
 security.protocol=TLS
-connection.timeout.ms=15000
-read.timeout.ms=10000
+connection.timeout.ms=60000
+read.timeout.ms=60000
 base.uri=/sdccontextbuilder/service/context
index 767b240..d5ce98e 100755 (executable)
@@ -27,3 +27,11 @@ metadata:
   namespace: {{ include "common.namespace" . }}
 data:
 {{ tpl (.Files.Glob "resources/config/builders/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-pre-start-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/bin/*").AsConfig . | indent 2 }}
\ No newline at end of file
index 44268db..52a28d0 100755 (executable)
@@ -30,6 +30,21 @@ spec:
         app: {{ include "common.name" . }}
         release: {{ .Release.Name }}
     spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - message-router
+        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: "{{ include "common.repository" . }}/{{ .Values.image }}"
@@ -63,6 +78,10 @@ spec:
           - mountPath: /opt/app/config/builders
             name: {{ include "common.fullname" . }}-config-builders
             readOnly: true
+          - mountPath: /opt/app/bin/pre_start.sh
+            name: {{ include "common.fullname" . }}-pre-start
+            subPath: pre_start.sh
+            readOnly: false
           resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -83,5 +102,9 @@ spec:
         - name: {{ include "common.fullname" . }}-config-builders
           configMap:
             name: {{ include "common.fullname" . }}-configmap-builders
+        - name: {{ include "common.fullname" . }}-pre-start
+          configMap:
+            name: {{ include "common.fullname" . }}-pre-start-configmap
+            defaultMode: 0777
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 9535a7e..9c9a6ff 100755 (executable)
 global:
   nodePortPrefix: 302
   repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
 
 #################################################################
 # Application configuration defaults.
 #################################################################
 # application image
-image: onap/pomba-context-aggregator:latest
+image: onap/pomba-context-aggregator:1.3.2
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -83,21 +85,22 @@ 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
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 1
+      memory: 800Mi
+    requests:
+      cpu: 10m
+      memory: 400Mi
+  large:
+    limits:
+      cpu: 2
+      memory: 1600Mi
+    requests:
+      cpu: 20m
+      memory: 800Mi
+  unlimited: {}
index ce62679..3244a74 100644 (file)
@@ -35,6 +35,20 @@ spec:
       name: {{ include "common.name" . }}
     spec:
       initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - pomba-search-data
+        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
       - command:
         - /bin/sh
         - -c
index 3cfcc97..ff7f8a5 100644 (file)
 global:
   nodePortPrefix: 302
   persistence: {}
-
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  
 # application image
 repository: nexus3.onap.org:10001
-image: onap/data-router:1.3-STAGING-latest
+image: onap/data-router:1.3.0
 pullPolicy: Always
 restartPolicy: Always
 
@@ -91,21 +93,22 @@ persistence:
   mountPath: /dockerdata-nfs
   mountSubPath: pomba/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
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 1
+      memory: 1400Mi
+    requests:
+      cpu: 100m
+      memory: 700Mi
+  large:
+    limits:
+      cpu: 2
+      memory: 2800Mi
+    requests:
+      cpu: 200m
+      memory: 1400Mi
+  unlimited: {}
index cdf1568..f3d2aaa 100644 (file)
@@ -93,21 +93,22 @@ 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
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 2
+      memory: 3Gi
+    requests:
+      cpu: 1
+      memory: 1.5Gi
+  large:
+    limits:
+      cpu: 4
+      memory: 6Gi
+    requests:
+      cpu: 2
+      memory: 3Gi
+  unlimited: {}
index e87a04f..a4602e3 100644 (file)
@@ -45,6 +45,7 @@ spec:
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
+      containers:
       - args:
         - --output=http://{{.Values.config.elasticsearchServiceName}}.{{ include "common.namespace" . }}:{{.Values.config.elasticsearchPort}}/.kibana
         - --input=/config/default-mapping.json
index 5f553e4..a6ee772 100644 (file)
@@ -78,21 +78,22 @@ 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
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 2
+      memory: 1200Mi
+    requests:
+      cpu: 1
+      memory: 600Mi
+  large:
+    limits:
+      cpu: 4
+      memory: 2400Mi
+    requests:
+      cpu: 2
+      memory: 1200Mi
+  unlimited: {}
index e10b6db..bb4f24f 100644 (file)
@@ -76,21 +76,22 @@ 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
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 1
+      memory: 800Mi
+    requests:
+      cpu: 10m
+      memory: 400Mi
+  large:
+    limits:
+      cpu: 2
+      memory: 1600Mi
+    requests:
+      cpu: 20m
+      memory: 800Mi
+  unlimited: {}
\ No newline at end of file
index 2394ef1..e1379b8 100644 (file)
@@ -24,7 +24,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image:  onap/pomba-network-discovery-context-builder:latest
+image:  onap/pomba-network-discovery-context-builder:1.3.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -98,21 +98,22 @@ 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
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 1
+      memory: 800Mi
+    requests:
+      cpu: 100m
+      memory: 400Mi
+  large:
+    limits:
+      cpu: 2
+      memory: 1600Mi
+    requests:
+      cpu: 200m
+      memory: 800Mi
+  unlimited: {}
\ No newline at end of file
index 7eacd18..08879c5 100644 (file)
@@ -36,7 +36,7 @@ sdcConnect.consumerID={{ .Values.config.sdcConsumerId }}
 sdcConnect.sdcAddress={{ .Values.config.sdcServiceName }}.{{.Release.Namespace}}:{{ .Values.config.sdcPort }}
 
 # Minimum timeout value is 15 seconds; default is 120000s
-sdcConnect.timeout.seconds=12000
+sdcConnect.timeout.seconds=60000
 
 # {0} = UUID
 sdc.url.template=/sdc/v1/catalog/services/{0}/toscaModel
index 0d17725..b813288 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image:  onap/pomba-sdc-context-builder:latest
+image:  onap/pomba-sdc-context-builder:1.3.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -39,7 +39,7 @@ debugEnabled: false
 config:
   #Application properties
   sdcUsername: pomba
-  sdcPassword: OBF:1uha1uh81w8v1ugi1ugg
+  sdcPassword: OBF:1ks51l8d1o3i1pcc1r2r1e211r391kls1pyj1z7u1njf1lx51go21hnj1y0k1mli1sop1k8o1j651vu91mxw1vun1mze1vv11j8x1k5i1sp11mjc1y161hlr1gm41m111nkj1z781pw31kku1r4p1e391r571pbm1o741l4x1ksp
   sdcConsumerId: pomba
   sdcServiceName: sdc-be
   sdcPort: 8443
@@ -85,21 +85,22 @@ 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
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 1
+      memory: 800Mi
+    requests:
+      cpu: 100m
+      memory: 400Mi
+  large:
+    limits:
+      cpu: 2
+      memory: 1600Mi
+    requests:
+      cpu: 200m
+      memory: 800Mi
+  unlimited: {}
index fd03c6c..0a81e26 100644 (file)
@@ -34,6 +34,21 @@ spec:
         release: {{ .Release.Name }}
       name: {{ include "common.name" . }}
     spec:
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - pomba-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: "{{ include "common.repository" . }}/{{ .Values.image }}"
index c9eb6f9..6a3659e 100644 (file)
@@ -9,7 +9,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/search-data-service:1.3-STAGING-latest
+image: onap/search-data-service:1.3.1
 pullPolicy: Always
 restartPolicy: Always
 
@@ -47,21 +47,22 @@ 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
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 1
+      memory: 1800Mi
+    requests:
+      cpu: 50m
+      memory: 900Mi
+  large:
+    limits:
+      cpu: 2
+      memory: 3600Mi
+    requests:
+      cpu: 100m
+      memory: 1800Mi
+  unlimited: {}
\ No newline at end of file
index bce6710..5b64f84 100644 (file)
@@ -32,14 +32,14 @@ basicAuth.username={{ .Values.config.serviceDecompositionUserId }}
 basicAuth.password={{ .Values.config.serviceDecompositionPassword }}
 
 # AAI REST Client Configuration
-aai.serviceName=127.0.0.1
-aai.servicePort=8443
-aai.username=AAI
-aai.password=OBF:1gfr1ev31gg7
-aai.httpProtocol=https
+aai.serviceName={{ .Values.config.aaiServiceName }}.{{.Release.Namespace}}
+aai.servicePort={{ .Values.config.aaiPort }}
+aai.username={{ .Values.config.aaiUsername }}
+aai.password={{ .Values.config.aaiPassword }}
+aai.httpProtocol={{ .Values.config.aaiHttpProtocol }}
 aai.securityProtocol=TLS
-aai.connectionTimeout=15000
-aai.readTimeout=15000
+aai.connectionTimeout=60000
+aai.readTimeout=60000
 aai.resourceList=vnfc,vserver,l3-network
 aai.serviceInstancePath=/aai/v13/nodes/service-instance/{0}
 
index f43eea1..a1ef272 100644 (file)
@@ -34,6 +34,11 @@ debugEnabled: false
 # Example:
 config:
   # Service Decomposition REST Client Configuration
+  aaiServiceName: aai
+  aaiPort: 8443
+  aaiUsername: AAI
+  aaiPassword: OBF:1gfr1ev31gg7
+  aaiHttpProtocol: https
   # Basic Authorization Client credentials for Service Decomposition REST service
   serviceDecompositionUserId: admin
   serviceDecompositionPassword: OBF:1u2a1toa1w8v1tok1u30
@@ -76,21 +81,22 @@ 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
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 1
+      memory: 800Mi
+    requests:
+      cpu: 100m
+      memory: 400Mi
+  large:
+    limits:
+      cpu: 2
+      memory: 1600Mi
+    requests:
+      cpu: 200m
+      memory: 800Mi
+  unlimited: {}
index 9607671..76f2965 100644 (file)
@@ -29,7 +29,7 @@ global:
 # application image
 #repository: nexus3.onap.org:10001
 repository: nexus3.onap.org:10001
-image:  onap/validation:1.3-STAGING-latest
+image:  onap/validation:1.3.0
 #pullPolicy: Always
 pullPolicy: IfNotPresent
 
@@ -87,21 +87,22 @@ 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
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 1
+      memory: 1400Mi
+    requests:
+      cpu: 50m
+      memory: 700Mi
+  large:
+    limits:
+      cpu: 2
+      memory: 2800Mi
+    requests:
+      cpu: 100m
+      memory: 1400Mi
+  unlimited: {}
diff --git a/kubernetes/portal/charts/portal-app/resources/certs/keystoreONAPPortal.p12 b/kubernetes/portal/charts/portal-app/resources/certs/keystoreONAPPortal.p12
new file mode 100644 (file)
index 0000000..df2f4f6
Binary files /dev/null and b/kubernetes/portal/charts/portal-app/resources/certs/keystoreONAPPortal.p12 differ
index 088dbc1..0672670 100755 (executable)
@@ -19,7 +19,7 @@ max.idle.time = 5
 user.attribute.name = user_attribute
 
 # for single sign on
-ecomp_redirect_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/login.htm
+ecomp_redirect_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalFEPort}}/ONAPPORTAL/login.htm
 
 # URL of the ECOMP Portal REST API
 ecomp_rest_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/auxapi
index c4a2760..8d21859 100755 (executable)
@@ -58,7 +58,7 @@ log_cron                      = 0 * * * * ? *
 sessiontimeout_feed_cron         = 0 0/5 * * * ? *
 
 #Front end URL
-frontend_url                  = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/applicationsHome
+frontend_url                  = https://{{.Values.global.portalHostName}}:{{.Values.global.portalFEPort}}/ONAPPORTAL/applicationsHome
 
 
 # An Unqiue 128-bit value defined to indentify a specific version of
@@ -112,13 +112,13 @@ auditlog_del_day_from = 365
 external_system_notification_url= https://jira.onap.org/browse/
 
 # External Access System Basic Auth Credentials & Rest endpoint(These credentials doesn't work as these are place holders for now)
-ext_central_access_user_name = m00468@portal.onap.org
-ext_central_access_password = ByC0BEX2v5+4HBv2GA4S+Mi2iML+GrGNJ5Gxo/V/iWM=
-ext_central_access_url = https://aaftest.test.onap.org:8095/proxy/authz/
-ext_central_access_user_domain = @csp.onap.org
+ext_central_access_user_name = aaf_admin@people.osaaf.org
+ext_central_access_password = VTCIC7wfMI0Zy61wkqKQC0bF0EK2YmL2JLl1fQU2YC4=
+ext_central_access_url = https://aaf-service:8100/authz/
+ext_central_access_user_domain = @people.osaaf.org
 
 # External Central Auth system access
-remote_centralized_system_access = false
+remote_centralized_system_access = true
 
 #cookie domain
 cookie_domain = onap.org
index 1aa4c41..9a67a4c 100644 (file)
@@ -13,7 +13,7 @@
   export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')\r
   echo http://$SERVICE_IP:{{ .Values.service.externalPort }}\r
 {{- else if contains "ClusterIP" .Values.service.type }}\r
-  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")\r
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")\r
   echo "Visit http://127.0.0.1:8080 to use your application"\r
   kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}\r
 {{- end }}\r
index fb9f35b..5503328 100644 (file)
@@ -56,6 +56,12 @@ spec:
           - -n
           - ""
         env:
+          - name: CATALINA_OPTS
+            value: >
+              -Djavax.net.ssl.keyStore={{ .Values.global.env.tomcatDir }}/{{ .Values.global.truststoreFile}}
+              -Djavax.net.ssl.keyStorePassword={{ .Values.global.trustpass }}
+              -Djavax.net.ssl.trustStore={{ .Values.global.env.tomcatDir }}/{{ .Values.global.truststoreFile}}
+              -Djavax.net.ssl.trustStorePassword={{ .Values.global.trustpass }}
           - name: javax.net.ssl.keyStore
             value: {{ .Values.global.env.tomcatDir }}/{{ .Values.global.truststoreFile}} 
           - name: javax.net.ssl.keyStorePassword
index 9d70732..0813682 100644 (file)
@@ -36,7 +36,7 @@ metadata:
 spec:
   type: {{ .Values.service.type }}
   ports:
-    {{- if or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer") }}
+    {{ if or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer") -}}
     - port: {{ .Values.service.externalPort }}
       targetPort: {{ .Values.service.internalPort }}
       nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
index d34a08b..13d0138 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/portal-app:2.3.0-STAGING-latest
+image: onap/portal-app:2.3.0
 pullPolicy: Always
 
 # default number of instances
index 6b9e8a9..964e3e8 100644 (file)
@@ -23,19 +23,40 @@ while the OOM K8s version has these service split up.
 */\r
 -- app_url is the FE, app_rest_endpoint is the BE\r
 --portal-sdk => TODO: doesn't open a node port yet\r
-update fn_app set app_url = 'http://{{.Values.config.portalSdkHostName}}:{{.Values.config.portalSdkPort}}/ONAPPORTALSDK/welcome.htm', app_rest_endpoint = 'http://portal-sdk:8990/ONAPPORTALSDK/api/v2' where app_name = 'xDemo App';\r
+update fn_app set app_url = 'http://{{.Values.config.portalSdkHostName}}:{{.Values.config.portalSdkPort}}/ONAPPORTALSDK/welcome.htm', app_rest_endpoint = 'http://portal-sdk:8080/ONAPPORTALSDK/api/v3' where app_name = 'xDemo App';\r
 --dmaap-bc => the dmaap-bc doesn't open a node port..\r
 update fn_app set app_url = 'http://{{.Values.config.dmaapBcHostName}}:{{.Values.config.dmaapBcPort}}/ECOMPDBCAPP/dbc#/dmaap', app_rest_endpoint = 'http://dmaap-bc:8989/ECOMPDBCAPP/api/v2' where app_name = 'DMaaP Bus Ctrl';\r
 --sdc-be => 8443:30204, 8080:30205\r
 --sdc-fe => 8181:30206, 9443:30207\r
-update fn_app set app_url = 'http://{{.Values.config.sdcFeHostName}}:{{.Values.config.sdcFePort}}/sdc1/portal', app_rest_endpoint = 'http://sdc-be:8080/api/v2' where app_name = 'SDC';\r
+update fn_app set app_url = 'http://{{.Values.config.sdcFeHostName}}:{{.Values.config.sdcFePort}}/sdc1/portal', app_rest_endpoint = 'http://sdc-be:8080/api/v3' where app_name = 'SDC';\r
 --pap => 8443:30219\r
-update fn_app set app_url = 'https://{{.Values.config.papHostName}}:{{.Values.config.papPort}}/onap/policy', app_rest_endpoint = 'https://pap:8443/onap/api/v2' where app_name = 'Policy';\r
+update fn_app set app_url = 'https://{{.Values.config.papHostName}}:{{.Values.config.papPort}}/onap/policy', app_rest_endpoint = 'https://pap:8443/onap/api/v3' where app_name = 'Policy';\r
 --vid => 8080:30200\r
-update fn_app set app_url = 'https://{{.Values.config.vidHostName}}:{{.Values.config.vidPort}}/vid/welcome.htm', app_rest_endpoint = 'https://vid:8443/vid/api/v2' where app_name = 'Virtual Infrastructure Deployment';\r
+update fn_app set app_url = 'https://{{.Values.config.vidHostName}}:{{.Values.config.vidPort}}/vid/welcome.htm', app_rest_endpoint = 'https://vid:8443/vid/api/v3' where app_name = 'Virtual Infrastructure Deployment';\r
 --sparky => TODO: sparky doesn't open a node port yet\r
 update fn_app set app_url = 'http://{{.Values.config.aaiSparkyHostName}}:{{.Values.config.aaiSparkyPort}}/services/aai/webapp/index.html#/viewInspect', app_rest_endpoint = 'http://aai-sparky-be.{{.Release.Namespace}}:9517/api/v2' where app_name = 'A&AI UI';\r
 --cli => 8080:30260\r
 update fn_app set app_url = 'http://{{.Values.config.cliHostName}}:{{.Values.config.cliPort}}/', app_type = 1 where app_name = 'CLI';\r
---msb-discovery => 10081:30281  this is clearly incorrect\r
-update fn_app set app_url = 'http://{{.Values.config.msbDiscoveryHostName}}:{{.Values.config.msbDiscoveryPort}}/iui/microservices/default.html' where app_name = 'MSB';\r
+--msb-iag => 80:30280\r
+update fn_app set app_url = 'http://{{.Values.config.msbHostName}}:{{.Values.config.msbPort}}/iui/microservices/default.html' where app_name = 'MSB';\r
+\r
+\r
+/*\r
+Additionally, some more update statments; these should be refactored to another SQL file in future releases \r
+*/\r
+\r
+-- portal\r
+update fn_app set auth_central = 'Y' , auth_namespace = 'org.onap.portal' where app_id = 1;\r
+-- portal-sdk\r
+update fn_app set app_username='Default', app_password='2VxipM8Z3SETg32m3Gp0FvKS6zZ2uCbCw46WDyK6T5E=', ueb_key='ueb_key' where app_id = 2;\r
+-- SDC\r
+update fn_app set app_username='sdc', app_password='j85yNhyIs7zKYbR1VlwEfNhS6b7Om4l0Gx5O8931sCI=', ueb_key='ueb_key' where app_id = 4;\r
+-- policy\r
+update fn_app set app_username='Default', app_password='2VxipM8Z3SETg32m3Gp0FvKS6zZ2uCbCw46WDyK6T5E=', ueb_key='ueb_key_5', auth_central = 'Y' , auth_namespace = 'org.onap.policy' where app_id = 5;\r
+-- vid\r
+update fn_app set app_username='Default', app_password='2VxipM8Z3SETg32m3Gp0FvKS6zZ2uCbCw46WDyK6T5E=', ueb_key='2Re7Pvdkgw5aeAUD', auth_central = 'Y' , auth_namespace = 'org.onap.vid' where app_id = 6;\r
+-- aai sparky\r
+update fn_app set app_username='aaiui', app_password='4LK69amiIFtuzcl6Gsv97Tt7MLhzo03aoOx7dTvdjKQ=', ueb_key='ueb_key' where app_id = 7;\r
+\r
+\r
+\r
index bd68f9a..c9acba5 100644 (file)
@@ -24,11 +24,11 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/portal-db:2.3.0-STAGING-latest
+image: onap/portal-db:2.3.0
 pullPolicy: Always
 
 readinessImage: readiness-check:2.0.0
-mariadbInitImage: "mariadb-client-init:2.0.0"
+mariadbInitImage: "mariadb-client-init:3.0.0"
 
 # application configuration
 config:
@@ -64,10 +64,10 @@ config:
   dmaapBcPort: "" # TODO: populate with
   # application's front end hostname.  Must be resolvable on the client side environment
   dmaapBcHostName: "dmaap-bc.simpledemo.onap.org"
-  # msb discovery ui assignment for port ?
-  msbDiscoveryPort: "30281"
+  # msb IAG ui assignment for port 80
+  msbPort: "30280"
   # application's front end hostname.  Must be resolvable on the client side environment
-  msbDiscoveryHostName: "msb.api.discovery.simpledemo.onap.org"
+  msbHostName: "msb.api.simpledemo.onap.org"
 
 # default number of instances
 replicaCount: 1
index e9d1c93..2ccace5 100755 (executable)
@@ -35,7 +35,7 @@ use_rest_for_functional_menu=true
 portal.api.impl.class = org.onap.portalapp.service.OnBoardingApiServiceImpl
 
 # CSP Global Log On for single sign on
-ecomp_redirect_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/login.htm
+ecomp_redirect_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalFEPort}}/ONAPPORTAL/login.htm
 
 # URL of the ECOMP Portal REST API
 
index 89d2e77..772f191 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/portal-sdk:2.3.0-STAGING-latest
+image: onap/portal-sdk:2.3.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -58,6 +58,7 @@ service:
   name: portal-sdk
   portName: portal-sdk
   internalPort: 8080
+  externalPort: 8080
   nodePort: 12
 
 mariadb:
index 0724653..f6581db 100644 (file)
@@ -29,7 +29,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/portal-wms:2.3.0-STAGING-latest
+image: onap/portal-wms:2.3.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index a656d39..5eb5ad1 100644 (file)
 
 FROM boxfuse/flyway:5.0.7-alpine
 
-ARG branch=2.0.0-ONAP
+ARG branch=master
 ENV no_proxy "localhost,127.0.0.1,.cluster.local,$KUBERNETES_SERVICE_HOST"
 # Setup Corporate proxy
 ENV https_proxy ${HTTP_PROXY}
 ENV http_proxy ${HTTPS_PROXY}
 
 RUN apk add --update \
-    mariadb-client=10.1.28-r1 \
+    mariadb-client=10.1.32-r0 \
     git \
   && rm -rf /var/cache/apk/*
 
index 719116b..f8eccf7 100644 (file)
@@ -18,11 +18,12 @@ global:
     tomcatDir: "/opt/apache-tomcat-8.0.37"
   # portal frontend port
   portalPort: "8989"
+  portalFEPort: "30225"
   # application's front end hostname.  Must be resolvable on the client side environment
   portalHostName: "portal.api.simpledemo.onap.org"
-  keystoreFile: "keystoreONAPPortal.jks"
+  keystoreFile: "keystoreONAPPortal.p12"
   truststoreFile: "truststoreONAPall.jks"
-  keypass: "changeit"
+  keypass: ",@{9!OOv%HO@#c+0Z}axu!xV"
   trustpass: "changeit"
 
 config:
index c4124c2..11d41a3 100755 (executable)
@@ -1,4 +1,5 @@
-# Copyright Â© 2018 Amdocs, Bell Canada
+#!/bin/bash
+# Copyright (C) 2018 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.
@@ -11,9 +12,6 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-
-#!/bin/bash
-
 #
 # Execute tags built to support the hands on demo,
 #
@@ -45,8 +43,13 @@ function usage
        echo "       demo.sh <namespace> deleteVNF <module_name from instantiateVFW>"
     echo "               - Delete the module created by instantiateVFW"
        echo " "
-       echo "       demo.sh <namespace> heatbridge <stack_name> <service_instance_id> <service>"
+       echo "       demo.sh <namespace> heatbridge <stack_name> <service_instance_id> <service> <oam-ip-address>"
     echo "               - Run heatbridge against the stack for the given service instance and service"
+       echo " "
+       echo "       demo.sh <namespace> vfwclosedloop <pgn-ip-address>"
+        echo "           - vFWCL: Sets the packet generator to high and low rates, and checks whether the policy "
+        echo "             kicks in to modulate the rates back to medium"
+       echo " "
 }
 
 # Set the defaults
@@ -149,8 +152,8 @@ do
        heatbridge)
                        TAG="heatbridge"
                        shift
-                       if [ $# -ne 3 ];then
-                               echo "Usage: demo.sh <namespace> heatbridge <stack_name> <service_instance_id> <service>"
+                       if [ $# -ne 4 ];then
+                               echo "Usage: demo.sh <namespace> heatbridge <stack_name> <service_instance_id> <service> <oam-ip-address>"
                                exit
                        fi
                        VARIABLES="$VARIABLES -v HB_STACK:$1"
@@ -159,7 +162,23 @@ do
                        shift
                        VARIABLES="$VARIABLES -v HB_SERVICE:$1"
                        shift
+                       VARIABLES="$VARIABLES -v HB_IPV4_OAM_ADDRESS:$1"
+                       shift
+                       ;;
+       cds)
+                       TAG="cds"
+                       shift
                        ;;
+        distributeVFWNG)
+                        TAG="distributeVFWNG"
+                        shift
+                        ;;
+        vfwclosedloop)
+                        TAG="vfwclosedloop"
+                        shift
+                        VARIABLES="$VARIABLES -v pkg_host:$1"
+                        shift
+                        ;;
        *)
                        usage
                        exit
@@ -168,7 +187,15 @@ done
 
 set -x
 
+POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot)
+
 ETEHOME=/var/opt/OpenECOMP_ETE
+
+export GLOBAL_BUILD_NUMBER=$(kubectl --namespace $NAMESPACE exec  ${POD}  -- bash -c "ls -1q /share/logs/ | wc -l")
+OUTPUT_FOLDER=$(printf %04d $GLOBAL_BUILD_NUMBER)_demo_$key
+DISPLAY_NUM=$(($GLOBAL_BUILD_NUMBER + 90))
+
 VARIABLEFILES="-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py"
-POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot)
-kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/demo/${TAG} -i ${TAG} --display 89 2> ${TAG}.out
+
+kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} -i ${TAG} --display $DISPLAY_NUM 2> ${TAG}.out
+
index 22b83e8..c4059b9 100755 (executable)
@@ -20,7 +20,7 @@
 # Note: Do not run multiple concurrent ete.sh as the --display is not parameterized and tests will collide
 #
 if [ "$1" == "" ] || [ "$2" == "" ]; then
-   echo "Usage: ete-k8s.sh [namespace] [ health | ete | closedloop | instantiate | distribute | portal ]"
+   echo "Usage: ete-k8s.sh [namespace] [ health | healthdist | distribute | instantiate | instantiateVFWCL | instantiateDemoVFWCL |  | portal ]"
    exit
 fi
 
@@ -31,15 +31,14 @@ export NAMESPACE="$1"
 POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot)
 
 
-export TAGS="-i $2"
-export ETEHOME=/var/opt/OpenECOMP_ETE
-export GLOBAL_BUILD_NUMBER=$(kubectl --namespace $NAMESPACE exec  ${POD}  -- bash -c "ls -1q /share/logs/ | wc -l")
-export OUTPUT_FOLDER=ETE_$(printf %04d $GLOBAL_BUILD_NUMBER)_$2
+TAGS="-i $2"
 
-#export OUTPUT_FOLDER=ETE_$$
+ETEHOME=/var/opt/OpenECOMP_ETE
+export GLOBAL_BUILD_NUMBER=$(kubectl --namespace $NAMESPACE exec  ${POD}  -- bash -c "ls -1q /share/logs/ | wc -l")
+OUTPUT_FOLDER=$(printf %04d $GLOBAL_BUILD_NUMBER)_ete_$2
+DISPLAY_NUM=$(($GLOBAL_BUILD_NUMBER + 90))
 
 VARIABLEFILES="-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py"
 VARIABLES="-v GLOBAL_BUILD_NUMBER:$$"
 
-kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} ${TAGS} --display 88
-
+kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} ${TAGS} --display $DISPLAY_NUM
index a857e83..dd15e31 100644 (file)
@@ -23,6 +23,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
          "onap_private_net_id" : "${GLOBAL_INJECTED_NETWORK}",
          "onap_private_subnet_id" : "{{ .Values.openStackPrivateSubnetId }}",
          "onap_private_net_cidr" : "{{ .Values.openStackPrivateNetCidr }}",
+         "sec_group" : "{{ .Values.openStackSecurityGroup }}",
          "dcae_collector_ip" : "{{ .Values.dcaeCollectorIp }}",
          "dcae_collector_port" : "30235",
          "public_net_id" : "${GLOBAL_INJECTED_PUBLIC_NET_ID}",
@@ -46,6 +47,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.2",
             "vsn_private_ip_0" : "192.168.20.250",
             "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.3",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vfw_name_0':'vofwl01fwl${hostid}',
             'vpg_name_0':'vofwl01pgn${hostid}',
             "vfw_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
@@ -65,6 +67,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vpg_private_ip_0" : "192.168.10.200",
             "vsn_private_ip_0" : "192.168.20.250",
             "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.102",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vfw_name_0':'vofwl01fwl${hostid}',
             'vsn_name_0':'vofwl01snk${hostid}',
             "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
@@ -79,6 +82,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vpg_private_ip_0" : "192.168.10.200",
             "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.103",
             "vsn_private_ip_0" : "192.168.20.250",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vpg_name_0':'vofwl01pgn${hostid}',
             "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
             "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}",
@@ -93,6 +97,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.4",
             "vdns_private_ip_0" : "192.168.30.110",
             "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.5",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vlb_name_0':'vovlblb${hostid}',
             'vdns_name_0':'vovlbdns${hostid}',
             "pktgen_private_net_cidr" : "192.168.9.0/24",
@@ -113,6 +118,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.4",
             "vdns_private_ip_0" : "192.168.30.222",
             "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.6",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'scaling_vdns_name_0':'vovlbscaling${hostid}',
             "vlb_private_net_cidr" : "192.168.10.0/24"
         },
@@ -155,6 +161,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.12",
             "vsn_private_ip_0" : "192.168.120.250",
             "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.13",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vfw_name_0':'clfwl01fwl${hostid}',
             'vpg_name_0':'clfwl01pgn${hostid}',
             "vfw_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
@@ -174,6 +181,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vpg_private_ip_0" : "192.168.10.200",
             "vsn_private_ip_0" : "192.168.20.250",
             "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.112",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vfw_name_0':'clfwl01fwl${hostid}',
             'vsn_name_0':'clfwl01snk${hostid}',
             "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
@@ -188,6 +196,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vpg_private_ip_0" : "192.168.10.200",
             "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.113",
             "vsn_private_ip_0" : "192.168.20.250",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vpg_name_0':'clfwl01pgn${hostid}',
             "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
             "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}",
@@ -202,6 +211,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.14",
             "vdns_private_ip_0" : "192.168.30.110",
             "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.15",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vlb_name_0':'clvlblb${hostid}',
             'vdns_name_0':'clvlbdns${hostid}',
             "pktgen_private_net_cidr" : "192.168.9.0/24",
@@ -221,6 +231,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.14",
             "vdns_private_ip_0" : "192.168.130.222",
             "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.16",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'scaling_vdns_name_0':'clvlbscaling${hostid}',
             "vlb_private_net_cidr" : "192.168.10.0/24"
         },
@@ -262,6 +273,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.12",
             "vsn_private_ip_0" : "192.168.120.250",
             "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.13",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vfw_name_0':'demofwl01fwl',
             'vpg_name_0':'demofwl01pgn',
             "vfw_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
@@ -281,6 +293,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vpg_private_ip_0" : "192.168.10.200",
             "vsn_private_ip_0" : "192.168.20.250",
             "vsn_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.122",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vfw_name_0':'${generic_vnf_name}',
             'vsn_name_0':'demofwl01snk${hostid}',
             "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
@@ -295,6 +308,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vpg_private_ip_0" : "192.168.10.200",
             "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.123",
             "vsn_private_ip_0" : "192.168.20.250",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vpg_name_0':'demofwl01pgn${hostid}',
             "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
             "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}"
@@ -309,6 +323,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.24",
             "vdns_private_ip_0" : "192.168.30.110",
             "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.25",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'vlb_name_0':'demovlblb${hostid}',
             'vdns_name_0':'demovlbdns${hostid}',
             "pktgen_private_net_cidr" : "192.168.9.0/24",
@@ -328,6 +343,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vlb_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.24",
             "vdns_private_ip_0" : "192.168.130.222",
             "vdns_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.26",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
             'scaling_vdns_name_0':'demovlbscaling${hostid}',
             "vlb_private_net_cidr" : "192.168.10.0/24"
         },
index ad09e44..d8179e1 100644 (file)
 
 # aaf info - everything is from the private oam network (also called onap private network)
 GLOBAL_AAF_SERVER = "https://aaf-service.{{include "common.namespace" .}}:8100"
-GLOBAL_AAF_USERNAME = "demo@people.osaaf.org"
-GLOBAL_AAF_PASSWORD = "demo123456!"
+GLOBAL_AAF_USERNAME = "{{ .Values.aafUsername }}"
+GLOBAL_AAF_PASSWORD = "{{ .Values.aafPassword }}"
 # aai info - everything is from the private oam network (also called onap private network)
 GLOBAL_AAI_SERVER_PROTOCOL = "https"
 GLOBAL_AAI_SERVER_PORT = "8443"
-GLOBAL_AAI_USERNAME = "aai@aai.onap.org"
-GLOBAL_AAI_PASSWORD = "demo123456!"
+GLOBAL_AAI_USERNAME = "{{ .Values.aaiUsername }}"
+GLOBAL_AAI_PASSWORD = "{{ .Values.aaiPassword}}"
 # appc info - everything is from the private oam network (also called onap private network)
 GLOBAL_APPC_SERVER_PROTOCOL = "http"
 GLOBAL_APPC_SERVER_PORT = "8282"
-GLOBAL_APPC_USERNAME = "admin"
-GLOBAL_APPC_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"
+GLOBAL_APPC_USERNAME = "{{ .Values.appcUsername }}"
+GLOBAL_APPC_PASSWORD = "{{ .Values.appcPassword }}"
 GLOBAL_APPC_CDT_SERVER_PROTOCOL = "http"
 GLOBAL_APPC_CDT_SERVER_PORT = "80"
 GLOBAL_APPC_CDT_USERNAME = "demo"
@@ -37,8 +37,8 @@ GLOBAL_ASDC_BE_ONBOARD_PORT = "8081"
 GLOBAL_ASDC_BE_USERNAME = "beep"
 GLOBAL_ASDC_BE_PASSWORD = "boop"
 # clamp info - everything is from the private oam network (also called onap private network)
-GLOBAL_CLAMP_SERVER_PROTOCOL = "http"
-GLOBAL_CLAMP_SERVER_PORT = "8080"
+GLOBAL_CLAMP_SERVER_PROTOCOL = "https"
+GLOBAL_CLAMP_SERVER_PORT = "8443"
 # nbi info - everything is from the private oam network (also called onap private network)
 GLOBAL_NBI_SERVER_PROTOCOL = "http"
 GLOBAL_NBI_SERVER_PORT = "8080"
@@ -48,8 +48,8 @@ GLOBAL_CLI_SERVER_PORT = "8080"
 # dcae info - everything is from the private oam network (also called onap private network)
 GLOBAL_DCAE_SERVER_PROTOCOL = "http"
 GLOBAL_DCAE_HEALTH_SERVER_PORT = "80"
-GLOBAL_DCAE_USERNAME = "console"
-GLOBAL_DCAE_PASSWORD = "ZjJkYjllMjljMTI2M2Iz"
+GLOBAL_DCAE_USERNAME = "{{ .Values.dcaeUsername }}"
+GLOBAL_DCAE_PASSWORD = "{{ .Values.dcaePassword}}"
 # data router info - everything is from the private oam network (also called onap private network)
 GLOBAL_DMAAP_DR_PROV_SERVER_PROTOCOL = "http"
 GLOBAL_DMAAP_DR_PROV_SERVER_PORT = "8080"
@@ -57,8 +57,8 @@ GLOBAL_DMAAP_DR_NODE_SERVER_PROTOCOL = "http"
 GLOBAL_DMAAP_DR_NODE_SERVER_PORT = "8080"
 # DROOL server port and credentials
 GLOBAL_DROOLS_SERVER_PORT = "9696"
-GLOBAL_DROOLS_USERNAME = "demo@people.osaaf.org"
-GLOBAL_DROOLS_PASSWORD = "demo123456!"
+GLOBAL_DROOLS_USERNAME = "{{ .Values.droolsUsername }}"
+GLOBAL_DROOLS_PASSWORD = "{{ .Values.droolsPassword }}"
 # log server config - NOTE: no log server is run in HEAT; only on OOM
 GLOBAL_LOG_SERVER_PROTOCOL = "http"
 GLOBAL_LOG_ELASTICSEARCH_PORT = "9200"
@@ -88,10 +88,10 @@ GLOBAL_MSO_REQDB_SERVER_PORT = "8083"
 GLOBAL_MSO_SDNC_SERVER_PORT =  "8086"
 GLOBAL_MSO_VFC_SERVER_PORT = "8084"
 
-GLOBAL_MSO_USERNAME = "InfraPortalClient"
-GLOBAL_MSO_CATDB_USERNAME = "bpel"
-GLOBAL_MSO_PASSWORD = "password1$"
-
+GLOBAL_MSO_USERNAME = "{{ .Values.soUsername }}"
+GLOBAL_MSO_CATDB_USERNAME = "{{ .Values.soCatdbUsername }}"
+GLOBAL_MSO_PASSWORD = "{{ .Values.soPassword }}"
+# robot uses MSO_PASSWORD for both SO and CATDB
 # music info - everything is from the private oam network (also called onap private network)
 GLOBAL_MUSIC_SERVER_PROTOCOL = "http"
 GLOBAL_MUSIC_SERVER_PORT = "8080"
@@ -101,6 +101,11 @@ GLOBAL_OOF_SERVER_PROTOCOL = "http"
 GLOBAL_OOF_HOMING_SERVER_PORT = "8091"
 # oof-sniro info - everything is from the private oam network (also called onap private network)
 GLOBAL_OOF_SNIRO_SERVER_PORT = "8698"
+# oof cmso global info - everything is from the private oam network (also called onap private network)
+GLOBAL_OOF_CMSO_PROTOCOL = "http"
+GLOBAL_OOF_CMSO_SERVER_PORT = "8080"
+GLOBAL_OOF_CMSO_USERNAME = "none"
+GLOBAL_OOF_CMSO_PASSWORD = "none"
 # openstack info - info to select right info in environment
 # packet generate vnf info - everything is from the private oam network (also called onap private network)
 GLOBAL_PACKET_GENERATOR_PORT = "8183"
@@ -111,32 +116,32 @@ GLOBAL_PGN_PORT = "2831"
 GLOBAL_POLICY_SERVER_PROTOCOL = "https"
 GLOBAL_POLICY_SERVER_PORT = "8081"
 GLOBAL_POLICY_HEALTHCHECK_PORT = "6969"
-GLOBAL_POLICY_AUTH = "dGVzdHBkcDphbHBoYTEyMw=="
-GLOBAL_POLICY_CLIENTAUTH = "cHl0aG9uOnRlc3Q="
-GLOBAL_POLICY_USERNAME = "demo@people.osaaf.org"
-GLOBAL_POLICY_PASSWORD = "demo123456!"
+GLOBAL_POLICY_AUTH = "{{ .Values.policyAuth}}"
+GLOBAL_POLICY_CLIENTAUTH = "{{ .Values.policyClientAuth}}"
+GLOBAL_POLICY_USERNAME = "{{ .Values.policyUsername }}"
+GLOBAL_POLICY_PASSWORD = "{{ .Values.policyPassword }}"
 # portal info - everything is from the private oam network (also called onap private network)
 GLOBAL_PORTAL_SERVER_PROTOCOL = "http"
 GLOBAL_PORTAL_SERVER_PORT = "8989"
-GLOBAL_PORTAL_USERNAME = "demo"
-GLOBAL_PORTAL_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse"
+GLOBAL_PORTAL_USERNAME = "{{ .Values.portalUsername }}"
+GLOBAL_PORTAL_PASSWORD = "{{ .Values.portalPassword }}"
 # sdngc info - everything is from the private oam network (also called onap private network)
 GLOBAL_SDNGC_SERVER_PROTOCOL = "http"
 GLOBAL_SDNGC_REST_PORT = "8282"
 GLOBAL_SDNGC_ADMIN_PORT = "8843"
-GLOBAL_SDNGC_USERNAME = "admin"
-GLOBAL_SDNGC_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"
+GLOBAL_SDNGC_USERNAME = "{{ .Values.sdncUsername }}"
+GLOBAL_SDNGC_PASSWORD = "{{ .Values.sdncPassword }}"
 # sms (AAF)  info
 GLOBAL_SMS_SERVER_PROTOCOL = "https"
 GLOBAL_SMS_SERVER_NAME = "aaf-sms.{{include "common.namespace" .}}"
 GLOBAL_SMS_SERVER_PORT = "10443"
 # vid info - everything is from the private oam network (also called onap private network)
-GLOBAL_VID_SERVER_PROTOCOL = "https"
-GLOBAL_VID_SERVER_PORT = "8443"
-GLOBAL_VID_USERNAME = "demo"
-GLOBAL_VID_PASSWORD = "Kp8bJ4SXszM0WX"
-GLOBAL_VID_HEALTH_USERNAME = "Default"
-GLOBAL_VID_HEALTH_PASSWORD = "AppPassword!1"
+GLOBAL_VID_SERVER_PROTOCOL = "{{ .Values.vidServerProtocol }}"
+GLOBAL_VID_SERVER_PORT = "{{ .Values.vidServerPort }}"
+GLOBAL_VID_USERNAME = "{{ .Values.vidUsername }}"
+GLOBAL_VID_PASSWORD = "{{ .Values.vidPassword}}"
+GLOBAL_VID_HEALTH_USERNAME = "{{ .Values.vidHealthUsername }}"
+GLOBAL_VID_HEALTH_PASSWORD = "{{ .Values.vidHealthPassword }}"
 # vnfsdk info - everything is from the private oam network (also called onap private network)
 GLOBAL_VNFSDK_SERVER_PROTOCOL = "http"
 GLOBAL_VNFSDK_SERVER_PORT = "8702"
@@ -147,4 +152,3 @@ GLOBAL_PROXY_WARNING_CONTINUE_XPATH=""
 GLOBAL_DNS_TRAFFIC_DURATION = "600"
 # location where heat templates are loaded from
 GLOBAL_HEAT_TEMPLATES_FOLDER = "/var/opt/OpenECOMP_ETE/demo/heat"
-
index 55d8f1a..faa890d 100644 (file)
@@ -47,6 +47,7 @@ GLOBAL_INJECTED_NEXUS_USERNAME = "docker"
 GLOBAL_INJECTED_OOF_IP_ADDR = "N/A"
 GLOBAL_INJECTED_OOF_HOMING_IP_ADDR = "oof-has-api.{{include "common.namespace" .}}"
 GLOBAL_INJECTED_OOF_SNIRO_IP_ADDR = "oof-osdf.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_OOF_CMSO_IP_ADDR = "oof-cmso.{{include "common.namespace" .}}"
 GLOBAL_INJECTED_MSB_IP_ADDR = "msb-iag.{{include "common.namespace" .}}"
 GLOBAL_INJECTED_OPENSTACK_API_KEY = "{{ .Values.config.openStackEncryptedPasswordHere}}"
 GLOBAL_INJECTED_OPENSTACK_PASSWORD = "{{ .Values.openStackPassword }}"
@@ -117,6 +118,7 @@ GLOBAL_INJECTED_PROPERTIES = {
     "GLOBAL_INJECTED_OOF_IP_ADDR" : "N/A",
     "GLOBAL_INJECTED_OOF_HOMING_IP_ADDR" : "oof-has-api.{{include "common.namespace" .}}",
     "GLOBAL_INJECTED_OOF_SNIRO_IP_ADDR" : "oof-osdf.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_OOF_CMSO_IP_ADDR" : "oof-cmso.{{include "common.namespace" .}}",
     "GLOBAL_INJECTED_MSB_IP_ADDR" : "msb-iag.{{include "common.namespace" .}}",
     "GLOBAL_INJECTED_OPENSTACK_API_KEY" : "{{ .Values.config.openStackEncryptedPasswordHere}}",
     "GLOBAL_INJECTED_OPENSTACK_PASSWORD" : "{{ .Values.openStackPassword }}",
index 07d876d..fe7c931 100644 (file)
@@ -19,7 +19,7 @@
   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}")
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
index e50620f..e230f4c 100644 (file)
@@ -49,6 +49,8 @@ spec:
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         volumeMounts:
+        - name: dshm
+          mountPath: /dev/shm
         - name: localtime
           mountPath: /etc/localtime
           readOnly: true
@@ -74,6 +76,9 @@ spec:
     {{- else }}
         emptyDir: {}
     {{- end }}
+      - name: dshm
+        emptyDir:
+          medium: Memory
       - name: localtime
         hostPath:
           path: /etc/localtime
index 7fb9885..450adeb 100755 (executable)
@@ -60,7 +60,7 @@ openStackProjectName: "onap"
 # Domain id of openstack where VNFs will be deployed. Maps to GLOBAL_INJECTED_OPENSTACK_DOMAIN_ID
 openStackDomainId: "default"
 # Openstack Keystone API version. Valid values are [ v2.0, v3 ]. Maps to GLOBAL_INJECTED_OPENSTACK_KEYSTONE_API_VERSION
-openStackKeystoneAPIVersion: ""
+openStackKeystoneAPIVersion: "v2.0"
 # Openstack glance image name for Ubuntu 14.  Maps to GLOBAL_INJECTED_UBUNTU_1404_IMAGE
 ubuntu14Image: "Ubuntu_14_trusty"
 # Openstack glance image name for Ubuntu 16.  Maps to GLOBAL_INJECTED_UBUNTU_1604_IMAGE
@@ -69,7 +69,8 @@ ubuntu16Image: "Ubuntu_16_xenial"
 scriptVersion: "1.2.0-SNAPSHOT"
 # Openstack network to which VNFs will bind their primary (first) interface.  Maps to GLOBAL_INJECTED_NETWORK
 openStackPrivateNetId: "e8f51956-00dd-4425-af36-045716781ffc"
-
+# Openstack security group for instantiating VNFs
+openStackSecurityGroup: "onap_sg"
 # SDNC Preload configuration
 # Openstack subnet UUID for the network defined by openStackPrivateNetId.  Maps to onap_private_subnet_id
 openStackPrivateSubnetId: "e8f51956-00dd-4425-af36-045716781ffc"
@@ -78,11 +79,54 @@ openStackPrivateNetCidr: "10.0.0.0/8"
 # The first 2 octets of the private Openstack subnet where VNFs will be spawned.
 # Needed because sdnc preload templates hardcodes things like this 10.0.${ecompnet}.X
 openStackOamNetworkCidrPrefix: "10.0"
+# VID protocol/port until Selenium issue with SSL resolved
+# https/8443 vs http/8080
+vidServerProtocol:  "http"
+vidServerPort:  "8080"
 # Override with Pub Key for access to VNF
 vnfPubKey: "FILL_IN_WITH_PUB_KEY"
 # Override with DCAE VES Collector external IP
 dcaeCollectorIp: "FILL_IN_WITH_DCAE_VES_COLLECTOR_IP"
 
+# Credentials for ONAP Component
+# AAF
+aafUsername: "demo@people.osaaf.org"
+aafPassword: "demo123456!"
+# AAI
+aaiUsername: "aai@aai.onap.org"
+aaiPassword: "demo123456!"
+# APPC
+appcUsername: "appc@appc.onap.org"
+appcPassword: "demo123456!"
+# DCAE
+dcaeUsername: "console"
+dcaePassword: "ZjJkYjllMjljMTI2M2Iz"
+# DROOLS
+droolsUsername: "demo@people.osaaf.org"
+droolsPassword: "demo123456!"
+# POLICY
+policyAuth: "dGVzdHBkcDphbHBoYTEyMw=="
+policyClientAuth: "cHl0aG9uOnRlc3Q="
+policyUsername: "demo@people.osaaf.org"
+policyPassword: "demo123456!"
+# PORTAL
+portalUsername: "demo"
+portalPassword: "Kp8bJ4SXszM0WXlhak3eHlcse"
+# SO
+soUsername: "InfraPortalClient"
+soPassword: "password1$"
+soCatdbUsername: "bpel"
+soCatdbPassword: "password1$"
+# SDNC
+sdncUsername: "admin"
+sdncPassword: "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"
+# VID
+vidUsername: "demo"
+vidPassword: "Kp8bJ4SXszM0WX"
+vidHealthUsername: "Default"
+vidHealthPassword: "AppPassword!1"
+
+
 # default number of instances
 replicaCount: 1
 
index e3e9781..4f8339f 100644 (file)
@@ -53,7 +53,7 @@ spec:
         - /root/job_complete.py
         args:
         - --job-name
-        - {{ .Release.Name }}-sdc-es-config-elasticsearch
+        - {{ .Release.Name }}-sdc-onboarding-be-cassandra-init
         env:
         - name: NAMESPACE
           valueFrom:
index f262525..de1b773 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-backend:1.3-STAGING-latest
-backendInitImage: onap/sdc-backend-init:1.3-STAGING-latest
+image: onap/sdc-backend:1.3.0
+backendInitImage: onap/sdc-backend-init:1.3.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -64,8 +64,10 @@ service:
   portName: sdc-be
   nodePort: "04"
   internalPort: 8443
+  externalPort: 8443
   nodePort2: "05"
   internalPort2: 8080
+  externalPort2: 8080
 
 ingress:
   enabled: false
index 949b47f..cd65383 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-cassandra:1.3-STAGING-latest
-cassandraInitImage: onap/sdc-cassandra-init:1.3-STAGING-latest
+image: onap/sdc-cassandra:1.3.0
+cassandraInitImage: onap/sdc-cassandra-init:1.3.0
 
 pullPolicy: Always
 
index 763fa40..f7487c5 100644 (file)
@@ -31,8 +31,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-elasticsearch:1.3-STAGING-latest
-elasticInitImage: onap/sdc-init-elasticsearch:1.3-STAGING-latest
+image: onap/sdc-elasticsearch:1.3.0
+elasticInitImage: onap/sdc-init-elasticsearch:1.3.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -52,7 +52,7 @@ affinity: {}
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 60
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
index df3d689..bf214ca 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-frontend:1.3-STAGING-latest
+image: onap/sdc-frontend:1.3.0
 pullPolicy: Always
 
 config:
@@ -62,8 +62,10 @@ service:
   portName: sdc-fe
   nodePort: "06"
   internalPort: 8181
+  externalPort: 8181
   nodePort2: "07"
   internalPort2: 9443
+  externalPort2: 9443
 
 
 
index 541ab99..6143214 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-kibana:1.3-STAGING-latest
+image: onap/sdc-kibana:1.3.0
 pullPolicy: Always
 
 config:
index f5f7c3a..c2e270e 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdc-onboard-backend:1.3-STAGING-latest
-onboardingInitImage: onap/sdc-onboard-cassandra-init:1.3-STAGING-latest
+image: onap/sdc-onboard-backend:1.3.0
+onboardingInitImage: onap/sdc-onboard-cassandra-init:1.3.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index e2e1430..1ebc117 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/workflow-backend:1.3.0-SNAPSHOT
-configInitImage: onap/workflow-init:1.3.0-SNAPSHOT
+image: onap/workflow-backend:1.3.0
+configInitImage: onap/workflow-init:1.3.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 076fc11..9d2d7a5 100644 (file)
@@ -27,7 +27,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/workflow-frontend:1.3.0-SNAPSHOT
+image: onap/workflow-frontend:1.3.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index a0ac529..8ba2521 100644 (file)
@@ -27,7 +27,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-dmaap-listener-image:1.4-STAGING-latest
+image: onap/sdnc-dmaap-listener-image:1.4.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index d8e8287..a6ca80e 100644 (file)
@@ -27,7 +27,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-ansible-server-image:1.4-STAGING-latest
+image: onap/sdnc-ansible-server-image:1.4.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 1d56d84..ac183f0 100644 (file)
@@ -27,7 +27,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/admportal-sdnc-image:1.4-STAGING-latest
+image: onap/admportal-sdnc-image:1.3.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 4ff572a..86e5131 100644 (file)
@@ -12,7 +12,7 @@ org.onap.ccsdk.sli.northbound.uebclient.spool.incoming=/opt/onap/sdnc/ueb-listen
 org.onap.ccsdk.sli.northbound.uebclient.spool.archive=/opt/onap/sdnc/ueb-listener/spool/archive
 org.onap.ccsdk.sli.northbound.uebclient.polling-interval=30
 org.onap.ccsdk.sli.northbound.uebclient.polling-timeout=15
-org.onap.ccsdk.sli.northbound.uebclient.client-startup-timeout=900
+org.onap.ccsdk.sli.northbound.uebclient.client-startup-timeout=300
 org.onap.ccsdk.sli.northbound.uebclient.relevant-artifact-types=TOSCA_CSAR
 org.onap.ccsdk.sli.northbound.uebclient.activate-server-tls-auth=false
 org.onap.ccsdk.sli.northbound.uebclient.keystore-path=
index 3560216..d3b4833 100644 (file)
@@ -27,7 +27,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-ueb-listener-image:1.4-STAGING-latest
+image: onap/sdnc-ueb-listener-image:1.4.1
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 32d9884..b30ef38 100644 (file)
@@ -195,4 +195,7 @@ spec:
       resources:
         requests:
           storage: {{ .Values.persistence.size }}
+      selector:
+        matchLabels:
+          name: {{ include "common.fullname" . }}
   {{ end }}
index 8560166..437de3d 100644 (file)
@@ -32,7 +32,7 @@ global:
 # application images
 repository: nexus3.onap.org:10001
 pullPolicy: Always
-image: onap/sdnc-image:1.4-STAGING-latest
+image: onap/sdnc-image:1.4.1
 
 # flag to enable debugging - application support required
 debugEnabled: false
index 7bab7fb..cf554df 100755 (executable)
@@ -16,6 +16,8 @@ aai:
   dme2:
     timeout: '30000'
   endpoint: https://aai.{{ include "common.namespace" . }}:8443
+  workflowAaiDistributionDelay: PT30S
+  pnfEntryNotificationTimeout: P14D
 camunda:
   bpm:
     admin-user:
@@ -27,6 +29,16 @@ camunda:
       core-pool-size: 3
 entitymanager:
   packagesToScan: com
+pnf:
+  dmaap:
+    host: message-router
+    port: 3904
+    protocol: http
+    uriPathPrefix: events
+    topicName: pnfReady
+    consumerGroup: consumerGroup
+    consumerId: consumerId
+    topicListenerDelayInSeconds: 5
 mso:
   msoKey: 07a7159d3bf51a0e53be7a8f89699be7
   correlation:
@@ -62,18 +74,18 @@ mso:
       endpoint: http://so-sdnc-adapter.{{ include "common.namespace" . }}:8086/adapters/SDNCAdapter
       rest:
         endpoint: http://so-sdnc-adapter.{{ include "common.namespace" . }}:8086/adapters/rest/v1/sdnc
-      timeout: PT60S
+      timeout: PT60M
     tenant:
       endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/TenantAdapter
     vnf:
       endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/VnfAdapter
       rest:
-        endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/rest/vnfs/v1/vnfs
+        endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/rest/v1/vnfs
     volume-groups:
       rest:
         endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}g:8087/services/rest/v1/volume-groups
     vnf-async:
-      endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/VnfAsyncAdapter
+      endpoint: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/services/VnfAsync
   bpmn:
     process:
       historyTimeToLive: '30'
@@ -95,7 +107,7 @@ mso:
     customer:
       id: testCustIdInfra
   po:
-    timeout: PT60S
+    timeout: PT60M
   request:
     db:
       endpoint: http://so-request-db-adapter.{{ include "common.namespace" . }}:8083/
@@ -106,13 +118,18 @@ mso:
     agnostic:
       sniro:
         endpoint: /sniro/api/v2/placement
-        host: http://c1.vm1.mso.simpledemo.onap.org:30253
+        host: http://sniro-emulator:80
   site-name: CamundaEngine
   sniro:
     auth: test:testpwd
     callback: http://so-openstack-adapter.{{ include "common.namespace" . }}:8087/adapters/rest/SDNCNotify
     endpoint: http://replaceme:28090/optimizationInstance/V1/create
     timeout: PT30M
+  oof:
+    auth: test:testpwd
+    callbackEndpoint: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/WorkflowMessage
+    endpoint: http://oof-osdf.{{ include "common.namespace" . }}:8698/api/oof/v1/placement
+    timeout: PT30M
   workflow:
     CreateGenericVNFV1:
       aai:
@@ -212,13 +229,13 @@ mso:
       callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/SDNCAdapterCallbackService
     vnfadapter:
       create:
-        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/VNFAdaptercallback
+        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/vnfAdapterNotify
       delete:
-        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/VNFAdaptercallback
+        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/vnfAdapterNotify
       query:
-        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/VNFAdaptercallback
+        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/vnfAdapterNotify
       rollback:
-        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/VNFAdaptercallback
+        callback: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/mso/vnfAdapterNotify
   global:
     dmaap:
       username: testuser
@@ -247,8 +264,7 @@ appc:
         timeout: 360000
       write: APPC-LCM-READ
       sdnc:
-        read:
-          name: SDNC-LCM-WRITE
+        read: SDNC-LCM-WRITE
         write: SDNC-LCM-READ
     response:
       timeout: 360000
@@ -256,8 +272,23 @@ appc:
     secret: 64AG2hF4pYeG2pq7CT6XwUOT
     service: ueb
     poolMembers: message-router.{{ include "common.namespace" . }}:3904,message-router.{{ include "common.namespace" . }}:3904
+sniro:
+  conductor:
+    enabled: true
+    host: http://sniro-emulator:80
+    uri: /v1/release-orders
+    headers.auth: Basic dGVzdDp0ZXN0cHdk
+  manager:
+    timeout: PT30M
+    host: http://sniro-emulator:80
+    uri.v1: /sniro/api/v2/placement
+    uri.v2: /sniro/api/placement/v2
+    headers.auth: Basic dGVzdDp0ZXN0cHdk
+    headers.patchVersion: 1
+    headers.minorVersion: 1
+    headers.latestVersion: 2
 server:
-  port: 8081
+  port: {{ index .Values.containerPort }}
   tomcat:
     max-threads: 50
 spring:
index 20068a8..ad3a19f 100755 (executable)
@@ -34,6 +34,21 @@ spec:
         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: {{ include "common.repository" . }}/{{ .Values.image }}
@@ -73,7 +88,7 @@ spec:
         envFrom:
         - configMapRef:
             name: {{ include "common.fullname" . }}-configmap
-        imagePullPolicy:  {{ index .Values "global" "pullPolicy" }}
+        imagePullPolicy:  {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: logs
           mountPath: /app/logs
index 1ad4786..7416148 100755 (executable)
@@ -21,27 +21,6 @@ metadata:
     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
-  annotations:
-    msb.onap.org/service-info: '[
-         {
-        "serviceName": "so/bpmn",
-        "version": "v1",
-        "url": "/VNFAdaptercallback/",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1" ,
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/bpmn",
-        "version": "v1",
-        "url": "/SDNCAdapterCallbackService",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         }
-         ]'
 spec:
   type: {{ .Values.service.type }}
   ports:
@@ -56,4 +35,4 @@ spec:
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
\ No newline at end of file
+    release: {{ .Release.Name }}
index 6f301b9..732aa15 100755 (executable)
 # WITHOUT 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
+  nodePortPrefixExt: 304
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  persistence:
+    mountPath: /dockerdata-nfs
+
+#################################################################
+# Application configuration defaults.
+#################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/bpmn-infra:1.3.0-STAGING-latest
-pullPolicy: IfNotPresent
+image: onap/so/bpmn-infra:1.3.1
+pullPolicy: Always
+
 replicaCount: 1
 minReadySeconds: 10
 containerPort: 8081
@@ -55,6 +71,8 @@ livenessProbe:
     timeoutSeconds: 10
     successThreshold: 1
     failureThreshold: 3
+mariadb:
+  nameOverride: so-mariadb
 ingress:
   enabled: false
 nodeSelector: {}
index 601cd49..320af61 100755 (executable)
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 server:
-    port: 8082
+    port: {{ index .Values.containerPort }}
     tomcat:
         max-threads: 50
 ssl-enable: false
@@ -26,26 +26,6 @@ mso:
   db:
     auth: Basic YnBlbDpwYXNzd29yZDEk
 spring:
-  datasource:
-    url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    initialize: false
-    initialization-mode: never
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
-  jpa:
-    generate-ddl: false
-    show-sql: false
-    hibernate:
-      ddl-auto: validate
-      naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
-      enable-lazy-load-no-trans: true
-    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
   security:
     usercredentials:
     -
@@ -59,8 +39,3 @@ spring:
 #Actuator
 management:
   context-path: /manage
-flyway:
-  baseline-on-migrate: true
-  url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
-  username: ${DB_USERNAME}
-  password: ${DB_PASSWORD}
index 20068a8..ad3a19f 100755 (executable)
@@ -34,6 +34,21 @@ spec:
         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: {{ include "common.repository" . }}/{{ .Values.image }}
@@ -73,7 +88,7 @@ spec:
         envFrom:
         - configMapRef:
             name: {{ include "common.fullname" . }}-configmap
-        imagePullPolicy:  {{ index .Values "global" "pullPolicy" }}
+        imagePullPolicy:  {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: logs
           mountPath: /app/logs
index db3bb78..7416148 100755 (executable)
@@ -21,108 +21,6 @@ metadata:
     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
-  annotations:
-    msb.onap.org/service-info: '[
-         {
-        "serviceName": "so/catdb",
-        "version": "v1",
-        "url": "/services",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1" ,
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/catdb",
-        "version": "v1",
-        "url": "/{version: v[0-9]+}/vnfResources/{vnfModelCustomizationUuid}",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/catdb",
-        "version": "v1",
-        "url": "/{version: v[0-9]+}/serviceVnfs",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-          {
-        "serviceName": "so/catdb",
-        "version": "v1",
-        "url": "/{version: v[0-9]+}/networkResources/{networkModelCustomizationUuid}",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/catdb",
-        "version": "v1",
-        "url": "/{version: v[0-9]+}/serviceNetworks",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/catdb",
-        "version": "v1",
-        "url": "/{version: v[0-9]+}/serviceResources",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/catdb",
-        "version": "v1",
-        "url": "/{version: v[0-9]+}/allottedResources/{arModelCustomizationUuid}",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/catdb",
-        "version": "v1",
-        "url": "/{version: v[0-9]+}/serviceAllottedResources",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/catdb",
-        "version": "v1",
-        "url": "/{version: v[0-9]+}/vfModules",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/catdb",
-        "version": "v1",
-        "url": "/{version: v[0-9]+}/serviceToscaCsar",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/catdb",
-        "version": "v1",
-        "url": "/{version: v[0-9]+}/resourceRecipe",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         }
-         ]'
 spec:
   type: {{ .Values.service.type }}
   ports:
@@ -137,4 +35,4 @@ spec:
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
\ No newline at end of file
+    release: {{ .Release.Name }}
index 2083633..b4c1a54 100755 (executable)
 # WITHOUT 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
+  nodePortPrefixExt: 304
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  persistence:
+    mountPath: /dockerdata-nfs
+
+#################################################################
+# Application configuration defaults.
+#################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/catalog-db-adapter:1.3.0-STAGING-latest
-pullPolicy: IfNotPresent
+image: onap/so/catalog-db-adapter:1.3.1
+pullPolicy: Always
+
 replicaCount: 1
 minReadySeconds: 10
 containerPort: 8082
@@ -56,6 +72,8 @@ livenessProbe:
     timeoutSeconds: 10
     successThreshold: 1
     failureThreshold: 3
+mariadb:
+  nameOverride: so-mariadb
 ingress:
   enabled: false
 nodeSelector: {}
index c9a3f56..010dc71 100755 (executable)
@@ -25,13 +25,13 @@ spec:
   type: {{ .Values.service.type }}
   ports:
     - name: {{ .Values.service.portName }}
-    {{- if eq .Values.service.type "NodePort" }}
+    {{ if eq .Values.service.type "NodePort" }}
       port: {{ .Values.service.internalPort }}
       nodePort: {{ .Values.global.nodePortPrefix | default "302" }}{{ .Values.service.nodePort }}
-    {{- else -}}
+    {{ else }}
       port: {{ .Values.service.externalPort }}
       targetPort: {{ .Values.service.internalPort }}
-    {{- end}}
+    {{ end }}
   selector:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
\ No newline at end of file
index 9545899..fa16a7b 100755 (executable)
 # Default values for mariadb.
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
-global: # global defaults
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
   nodePortPrefix: 302
-  persistence: {}
+  nodePortPrefixExt: 304
+  repository: nexus3.onap.org:10001
   readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
   ubuntuInitRepository: registry.hub.docker.com
+  persistence:
+    mountPath: /dockerdata-nfs
+
+#################################################################
+# Application configuration defaults.
+#################################################################
 # application image
 repository: nexus3.onap.org:10001
 image: mariadb:10.1.11
 pullPolicy: Always
 ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
+
 # application configuration
 config:
   mariadbRootPassword: password
@@ -69,6 +81,7 @@ service:
   type: NodePort
   portName: mariadb
   internalPort: 3306
+  externalPort: 3306
   nodePort: 52
 ingress:
   enabled: false
diff --git a/kubernetes/so/charts/so-monitoring/resources/config/overrides/override.yaml b/kubernetes/so/charts/so-monitoring/resources/config/overrides/override.yaml
new file mode 100644 (file)
index 0000000..c2e6ad0
--- /dev/null
@@ -0,0 +1,17 @@
+server:
+  port: {{ index .Values.containerPort }}
+  tomcat:
+    max-threads: 50
+ssl-enable: false
+camunda:
+  rest:
+    api:
+      url: http://so-bpmn-infra.{{ include "common.namespace" . }}:8081/sobpmnengine/engine/
+      engine: default
+      auth: Basic YXBpaEJwbW46cGFzc3dvcmQxJA==
+mso:
+  database:
+    rest:
+      api:
+        url: http://so-request-db-adapter.{{ include "common.namespace" . }}:8083/infraActiveRequests/
+        auth: Basic YnBlbDpwYXNzd29yZDEk
index f786010..489d5f4 100644 (file)
@@ -24,3 +24,21 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-app-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/overrides/*").AsConfig . | indent 2 }}
index 79d4662..bfedc05 100644 (file)
@@ -45,7 +45,7 @@ spec:
         volumeMounts:
         - name: logs
           mountPath: /app/logs
-        imagePullPolicy: {{ index .Values.pullPolicy }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command: ["/bin/sh", "-c", "chown -Rf 1000:1000 /app/logs"]
       restartPolicy: Always
       containers:
@@ -84,36 +84,13 @@ spec:
             secretKeyRef:
               name: {{ .Release.Name}}-so-db-secrets
               key: mariadb.admin.password
-        - name: CADI_KEYSTORE_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ .Release.Name}}-so-ssl-pwd-secret
-              key: cadi_keystore_password
-        - name: CADI_TRUSTSTORE_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ .Release.Name}}-so-ssl-pwd-secret
-              key: cadi_truststore_password
-        - name: MSO_KEYSTORE_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ .Release.Name}}-so-ssl-client-secret
-              key: keystore_password
-        - name: MSO_TRUSTSTORE_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ .Release.Name}}-so-ssl-client-secret
-              key: truststore_password
         envFrom:
         - configMapRef:
             name: {{ include "common.fullname" . }}-configmap
-        imagePullPolicy:  {{ index .Values "global" "pullPolicy" }}
+        imagePullPolicy:  {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: logs
           mountPath: /app/logs
-        - name: certs
-          mountPath: /app/certs/
-          readOnly: true
         - name: config
           mountPath: /app/config
           readOnly: true
@@ -137,9 +114,6 @@ spec:
       volumes:
       - name: logs
         emptyDir: {}
-      - name: certs
-        secret:
-            secretName: {{ .Release.Name}}-so-ssl-secret
       - name: config
         configMap:
             name: {{ include "common.fullname" . }}-app-configmap
index 79170eb..6e3578b 100644 (file)
 #  SPDX-License-Identifier: Apache-2.0
 #  ============LICENSE_END=========================================================
 #  @author: gareth.roper@ericsson.com
-image: onap/so/so-monitoring:latest
-pullPolicy: IfNotPresent
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  nodePortPrefixExt: 304
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  persistence:
+    mountPath: /dockerdata-nfs
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+repository: nexus3.onap.org:10001
+image: onap/so/so-monitoring:1.3.1
+pullPolicy: Always
+
 replicaCount: 1
 minReadySeconds: 10
 containerPort: 9091
 logPath: app/logs/
 app: so-monitoring
 service:
-    type: ClusterIP
+    type: NodePort
+    nodePort: 24
     internalPort: 9091
     externalPort: 9091
     portName: so-monitor-port
index c0f7851..98b0976 100755 (executable)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 server:
-  port: 8087
+  port: {{ index .Values.containerPort }}
 spring:
   datasource:
     url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
+    username: ${DB_ADMIN_USERNAME}
+    password: ${DB_ADMIN_PASSWORD}
     driver-class-name: org.mariadb.jdbc.Driver
     dbcp2:
       initial-size: 5
@@ -112,11 +112,20 @@ cloud_config:
       identity_url: "https://identity.api.rackspacecloud.com/v2.0"
       mso_id: "RACKSPACE_ACCOUNT_ID"
       mso_pass: "RACKSPACE_ACCOUNT_APIKEY"
-      admin_tenant: "service"
+      admin_tenant: "{{ .Values.config.openStackServiceTenantName }}"
       member_role: "admin"
       tenant_metadata: true
       identity_server_type: "KEYSTONE"
       identity_authentication_type: "RACKSPACE_APIKEY"
+    DEFAULT_KEYSTONE:
+      identity_url: "{{ .Values.config.openStackKeyStoneUrl }}"
+      mso_id: "{{ .Values.config.openStackUserName }}"
+      mso_pass: "{{ .Values.config.openStackEncryptedPasswordHere }}"
+      admin_tenant: "{{ .Values.config.openStackServiceTenantName }}"
+      member_role: "admin"
+      tenant_metadata: true
+      identity_server_type: "KEYSTONE"
+      identity_authentication_type: "USERNAME_PASSWORD"
   cloud_sites:
     Dallas:
       region_id: "DFW"
@@ -133,8 +142,13 @@ cloud_config:
       clli: "ORD"
       aic_version: "2.5"
       identity_service_id: "RAX_KEYSTONE"
+    RegionOne:
+      region_id: "RegionOne"
+      clli: "RegionOne"
+      aic_version: "2.5"
+      identity_service_id: "DEFAULT_KEYSTONE"
     DEFAULT:
-      region_id: "DFW"
-      clli: "DFW"
+      region_id: "{{ .Values.config.openStackRegion }}"
+      clli: "{{ .Values.config.openStackRegion }}"
       aic_version: "2.5"
-      identity_service_id: "RAX_KEYSTONE"
+      identity_service_id: "DEFAULT_KEYSTONE"
index 20068a8..ad3a19f 100755 (executable)
@@ -34,6 +34,21 @@ spec:
         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: {{ include "common.repository" . }}/{{ .Values.image }}
@@ -73,7 +88,7 @@ spec:
         envFrom:
         - configMapRef:
             name: {{ include "common.fullname" . }}-configmap
-        imagePullPolicy:  {{ index .Values "global" "pullPolicy" }}
+        imagePullPolicy:  {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: logs
           mountPath: /app/logs
index 031616a..7416148 100755 (executable)
@@ -21,54 +21,6 @@ metadata:
     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
-  annotations:
-    msb.onap.org/service-info: '[
-         {
-        "serviceName": "so/openstack",
-        "version": "v1",
-        "url": "/NetworkAdapter",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/openstack",
-        "version": "v1",
-        "url": "/NetworkAdapterAsync",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-          {
-        "serviceName": "so/openstack",
-        "version": "v1",
-        "url": "/TenantAdapter",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/openstack",
-        "version": "v1",
-        "url": "/VnfAdapter",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/openstack",
-        "version": "v1",
-        "url": "/VnfCloudifyAdapterImpl",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         }
-         ]'
 spec:
   type: {{ .Values.service.type }}
   ports:
@@ -83,4 +35,4 @@ spec:
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
\ No newline at end of file
+    release: {{ .Release.Name }}
index 867e599..52790b2 100755 (executable)
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-image: onap/so/openstack-adapter:1.3.0-STAGING-latest
-pullPolicy: IfNotPresent
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  nodePortPrefixExt: 304
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  persistence:
+    mountPath: /dockerdata-nfs
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+image: onap/so/openstack-adapter:1.3.1
+pullPolicy: Always
+repository: nexus3.onap.org:10001
+
 replicaCount: 1
 minReadySeconds: 10
 containerPort: 8087
@@ -55,8 +72,17 @@ livenessProbe:
     timeoutSeconds: 10
     successThreshold: 1
     failureThreshold: 3
+mariadb:
+  nameOverride: so-mariadb
 ingress:
   enabled: false
+config:
+  openStackUserName: "vnf_user"
+  openStackRegion: "RegionOne"
+  openStackKeyStoneUrl: "http://1.2.3.4:5000/v2.0"
+  openStackServiceTenantName: "service"
+  openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
+  openStackTenantId: "d570c718cbc545029f40e50b75eb13df"
 nodeSelector: {}
 tolerations: []
 affinity: {}
index 49ccdeb..2755f94 100755 (executable)
@@ -13,7 +13,7 @@
 # limitations under the License.
 # will be used as entry in DB to say SITE OFF/ON for healthcheck
 server:
-    port: 8083
+    port: {{ index .Values.containerPort }}
     tomcat:
         max-threads: 50
 ssl-enable: false
index 20068a8..ad3a19f 100755 (executable)
@@ -34,6 +34,21 @@ spec:
         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: {{ include "common.repository" . }}/{{ .Values.image }}
@@ -73,7 +88,7 @@ spec:
         envFrom:
         - configMapRef:
             name: {{ include "common.fullname" . }}-configmap
-        imagePullPolicy:  {{ index .Values "global" "pullPolicy" }}
+        imagePullPolicy:  {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: logs
           mountPath: /app/logs
index 085d986..7416148 100755 (executable)
@@ -21,117 +21,6 @@ metadata:
     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
-  annotations:
-    msb.onap.org/service-info: '[
-          {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/services",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1" ,
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/RequestsDbAdapter/updateInfraRequest",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/RequestsDbAdapter/getInfraRequest",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-          {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/RequestsDbAdapter/getSiteStatus",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/RequestsDbAdapter/updateServiceOperationStatus",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/RequestsDbAdapter/initResourceOperationStatus",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/RequestsDbAdapter/getResourceOperationStatus",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/RequestsDbAdapter/updateResourceOperationStatus",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/RequestsDbAdapter/infraActiveRequests/getCloudOrchestrationFiltersFromInfraActive",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/RequestsDbAdapter/infraActiveRequests/getOrchestrationFiltersFromInfraActive",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/RequestsDbAdapter/infraActiveRequests/checkVnfIdStatus/{operationalEnvironmentId}",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/reqdb",
-        "version": "v1",
-        "url": "/RequestsDbAdapter/infraActiveRequests/checkInstanceNameDuplicate",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         }
-         ]'
 spec:
   type: {{ .Values.service.type }}
   ports:
@@ -146,4 +35,4 @@ spec:
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
\ No newline at end of file
+    release: {{ .Release.Name }}
index 50eb7ba..e4906f1 100755 (executable)
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-image: onap/so/request-db-adapter:1.3.0-STAGING-latest
-pullPolicy: IfNotPresent
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  nodePortPrefixExt: 304
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  persistence:
+    mountPath: /dockerdata-nfs
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+repository: nexus3.onap.org:10001
+image: onap/so/request-db-adapter:1.3.1
+pullPolicy: Always
+
 replicaCount: 1
 minReadySeconds: 10
 containerPort: 8083
@@ -55,6 +72,8 @@ livenessProbe:
     timeoutSeconds: 10
     successThreshold: 1
     failureThreshold: 3
+mariadb:
+  nameOverride: so-mariadb
 ingress:
   enabled: false
 nodeSelector: {}
index 8b33067..f45abbb 100755 (executable)
@@ -14,7 +14,7 @@
 aai:
   auth: 2630606608347B7124C244AB0FE34F6F
 server:
-  port: 8085
+  port: {{ index .Values.containerPort }}
 spring:
   datasource:
     url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
index 20068a8..ad3a19f 100755 (executable)
@@ -34,6 +34,21 @@ spec:
         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: {{ include "common.repository" . }}/{{ .Values.image }}
@@ -73,7 +88,7 @@ spec:
         envFrom:
         - configMapRef:
             name: {{ include "common.fullname" . }}-configmap
-        imagePullPolicy:  {{ index .Values "global" "pullPolicy" }}
+        imagePullPolicy:  {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: logs
           mountPath: /app/logs
index 9746e3f..7416148 100755 (executable)
@@ -21,27 +21,6 @@ metadata:
     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
-  annotations:
-    msb.onap.org/service-info: '[
-        {
-        "serviceName": "so/sdc",
-        "version": "v1",
-        "url": "/treatNotification/v1",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/sdc",
-        "version": "v1",
-        "url": "/statusData/v1",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         }
-        ]'
 spec:
   type: {{ .Values.service.type }}
   ports:
@@ -56,4 +35,4 @@ spec:
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
\ No newline at end of file
+    release: {{ .Release.Name }}
index 2981a82..b963b95 100755 (executable)
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-image: onap/so/sdc-controller:1.3.0-STAGING-latest
-pullPolicy: IfNotPresent
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  nodePortPrefixExt: 304
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  persistence:
+    mountPath: /dockerdata-nfs
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+repository: nexus3.onap.org:10001
+image: onap/so/sdc-controller:1.3.1
+pullPolicy: Always
+
 replicaCount: 1
 minReadySeconds: 10
 containerPort: 8085
@@ -55,6 +72,8 @@ livenessProbe:
     timeoutSeconds: 10
     successThreshold: 1
     failureThreshold: 3
+mariadb:
+  nameOverride: so-mariadb
 ingress:
   enabled: false
 nodeSelector: {}
index 6159880..2ebdfb3 100755 (executable)
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 server:
-    port: 8086
+    port: {{ index .Values.containerPort }}
 mso:
     async:
         core-pool-size: 50
index 20068a8..56b628c 100755 (executable)
@@ -73,7 +73,7 @@ spec:
         envFrom:
         - configMapRef:
             name: {{ include "common.fullname" . }}-configmap
-        imagePullPolicy:  {{ index .Values "global" "pullPolicy" }}
+        imagePullPolicy:  {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: logs
           mountPath: /app/logs
index 39f96a7..7416148 100755 (executable)
@@ -21,27 +21,6 @@ metadata:
     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
-  annotations:
-    msb.onap.org/service-info: '[
-         {
-        "serviceName": "so/sdnc",
-        "version": "v1",
-        "url": "/SDNCAdapter",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         },
-         {
-        "serviceName": "so/sdnc",
-        "version": "v1",
-        "url": "/SDNCNotify/SNIROResponse/{correlator}",
-        "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
-        "visualRange":"1",
-        "lb_policy":"ip_hash"
-         }
-         ]'
 spec:
   type: {{ .Values.service.type }}
   ports:
@@ -56,4 +35,4 @@ spec:
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
\ No newline at end of file
+    release: {{ .Release.Name }}
index 4bab856..fb6dfcc 100755 (executable)
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-image: onap/so/sdnc-adapter:1.3.0-STAGING-latest
-pullPolicy: IfNotPresent
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  nodePortPrefixExt: 304
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  persistence:
+    mountPath: /dockerdata-nfs
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+repository: nexus3.onap.org:10001
+image: onap/so/sdnc-adapter:1.3.1
+pullPolicy: Always
+
 replicaCount: 1
 minReadySeconds: 10
 containerPort: 8086
index b8108ab..da26017 100755 (executable)
@@ -25,7 +25,7 @@ spring:
       validation-query: select 1
       test-on-borrow: true
 server:
-    port: 8084
+    port: {{ index .Values.containerPort }}
     tomcat:
         max-threads: 50
 mso:
index 20068a8..ad3a19f 100755 (executable)
@@ -34,6 +34,21 @@ spec:
         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: {{ include "common.repository" . }}/{{ .Values.image }}
@@ -73,7 +88,7 @@ spec:
         envFrom:
         - configMapRef:
             name: {{ include "common.fullname" . }}-configmap
-        imagePullPolicy:  {{ index .Values "global" "pullPolicy" }}
+        imagePullPolicy:  {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: logs
           mountPath: /app/logs
index b0c3b01..4db4950 100755 (executable)
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-image: onap/so/vfc-adapter:1.3.0-STAGING-latest
-pullPolicy: IfNotPresent
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  nodePortPrefixExt: 304
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  persistence:
+    mountPath: /dockerdata-nfs
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+repository: nexus3.onap.org:10001
+image: onap/so/vfc-adapter:1.3.1
+pullPolicy: Always
+
 replicaCount: 1
 minReadySeconds: 10
 containerPort: 8084
@@ -55,6 +72,8 @@ livenessProbe:
     timeoutSeconds: 10
     successThreshold: 1
     failureThreshold: 3
+mariadb:
+  nameOverride: so-mariadb
 ingress:
   enabled: false
 nodeSelector: {}
index 1806b20..6adc212 100755 (executable)
@@ -1,5 +1,5 @@
 server:
-    port: 8080
+    port: {{ index .Values.containerPort }}
     tomcat:
         max-threads: 50
 ssl-enable: false
index 20068a8..ad3a19f 100755 (executable)
@@ -34,6 +34,21 @@ spec:
         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: {{ include "common.repository" . }}/{{ .Values.image }}
@@ -73,7 +88,7 @@ spec:
         envFrom:
         - configMapRef:
             name: {{ include "common.fullname" . }}-configmap
-        imagePullPolicy:  {{ index .Values "global" "pullPolicy" }}
+        imagePullPolicy:  {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: logs
           mountPath: /app/logs
index a813a18..ab58ea6 100755 (executable)
@@ -24,362 +24,362 @@ metadata:
   annotations:
     msb.onap.org/service-info: '[
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/cloudResources/{version:[vV][1]}/operationalEnvironments",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/cloudResources/{version:[vV][1]}/operationalEnvironments/{operationalEnvironmentId}/activate",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/cloudResources/{version:[vV][1]}/operationalEnvironments/{operationalEnvironmentId}/deactivate",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/cloudResourcesRequests/{version:[vV][1]}/{requestId}/unlock",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/cloudResourcesRequests/{version:[vV][1]}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/orchestrationRequests/{version:[vV][4-7]}/{requestId}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/orchestrationRequests/{version:[vV][4-7]}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/orchestrationRequests/{version:[vV][4-7]}/{requestId}/unlock",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/activate",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/deactivate",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][7]}/serviceInstances/assign",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/unassign",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/enablePort",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/disablePort",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/activate",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/configurations/{configurationInstanceId}/deactivate",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/addRelationships",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/removeRelationships",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/replace",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/applyUpdatedConfig",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}/replace",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][6-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/inPlaceSoftwareUpdate",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/{vfmoduleInstanceId}/deactivateAndCloudDelete",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/vfModules/scaleOut",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volumeGroupInstanceId}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
          {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/vnfs/{vnfInstanceId}/volumeGroups/{volumeGroupInstanceId}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiation/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks/{networkInstanceId}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          },
           {
-        "serviceName": "so/apih",
+        "serviceName": "so",
         "version": "v1",
         "url": "/onap/so/infra/serviceInstantiationRequests/{version:[vV][5-7]}/serviceInstances/{serviceInstanceId}/networks/{networkInstanceId}",
         "protocol": "REST",
-        "port": "{{ .Values.service.externalPort }}",
+        "port": "{{ .Values.service.internalPort }}",
         "visualRange":"0",
         "lb_policy":"ip_hash"
          }
@@ -398,4 +398,4 @@ spec:
     {{- end}}
   selector:
     app: {{ include "common.name" . }}
-    release: {{ .Release.Name }}
\ No newline at end of file
+    release: {{ .Release.Name }}
index 60d0424..2ce53db 100755 (executable)
 # WITHOUT 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
+  nodePortPrefixExt: 304
+  repository: nexus3.onap.org:10001
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  persistence:
+    mountPath: /dockerdata-nfs
+
+#################################################################
+# Application configuration defaults.
+#################################################################
 repository: nexus3.onap.org:10001
-image: onap/so/api-handler-infra:1.3.0-STAGING-latest
-pullPolicy: IfNotPresent
+image: onap/so/api-handler-infra:1.3.1
+pullPolicy: Always
+
 replicaCount: 1
 minReadySeconds: 10
 containerPort: 8080
@@ -23,6 +39,7 @@ service:
     type: NodePort
     nodePort: 77
     internalPort: 8080
+    externalPort: 8080
     portName: so-apih-port
 updateStrategy:
     type: RollingUpdate
@@ -55,13 +72,25 @@ livenessProbe:
     timeoutSeconds: 10
     successThreshold: 1
     failureThreshold: 3
-global:
-  nodePortPrefix: 302
-  # docker repository
-  repository: nexus3.onap.org:10001
-  # image pull Policy
-  pullPolicy: IfNotPresent
 mariadb:
-  nameOverride: so-db
+  nameOverride: so-mariadb
+so-bpmn-infra:
+  mariadb:
+    nameOverride: so-mariadb
+so-catalog-db-adapter:
+  mariadb:
+    nameOverride: so-mariadb
+so-openstack-adapter:
+  mariadb:
+    nameOverride: so-mariadb
+so-request-db-adapter:
+  mariadb:
+    nameOverride: so-mariadb
+so-sdc-controller:
+  mariadb:
+    nameOverride: so-mariadb
+so-vfc-adapter:
+  mariadb:
+    nameOverride: so-mariadb
 nodeSelector: {}
 affinity: {}
index 268c6f3..bcf6897 100644 (file)
@@ -25,7 +25,7 @@ flavor: small
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/usecase-ui/usecase-ui-server:1.1.1
+image: onap/usecase-ui-server:1.2.0
 pullPolicy: Always
 
 # application configuration
index 266d17b..faab73a 100644 (file)
@@ -25,7 +25,7 @@ flavor: small
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/usecase-ui:1.1.1
+image: onap/usecase-ui:1.2.0
 pullPolicy: Always
 
 # application configuration
index 8b0561e..58ea5a4 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/catalog:1.1.0
+image: onap/vfc/catalog:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 83071e6..676abd3 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/db:latest
+image: onap/vfc/db:1.2.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 2263bff..219f988 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/emsdriver:1.1.0
+image: onap/vfc/emsdriver:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 6d2e283..b417ef6 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/gvnfmdriver:1.1.0
+image: onap/vfc/gvnfmdriver:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 9c2c8bb..265aa1d 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/nfvo/svnfm/huawei:1.1.0
+image: onap/vfc/nfvo/svnfm/huawei:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index cbdf9a5..8cb406c 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/jujudriver:1.1.0
+image: onap/vfc/jujudriver:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 00fd3b8..8ed83de 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/multivimproxy:1.0.0
+image: onap/vfc/multivimproxy:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index dd61e65..85dc17d 100644 (file)
@@ -69,6 +69,8 @@ spec:
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           env:
+            - name: EXTERNAL_PORT
+              value: "8089"
             - name: MSB_ADDR
               value: "{{ .Values.global.config.msbServiceName }}:{{ .Values.global.config.msbPort }}"
           resources:
index 23fd17b..74f5b67 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/nfvo/svnfm/nokiav2:1.1.0
+image: onap/vfc/nfvo/svnfm/nokiav2:1.3.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 7a9c8bd..1f3617d 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/nslcm:1.1.0
+image: onap/vfc/nslcm:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 36b778b..7d27e8c 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/resmanagement:1.1.0
+image: onap/vfc/resmanagement:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 13f3e2f..6ae0a6f 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/vnflcm:1.1.0
+image: onap/vfc/vnflcm:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 4625127..7a54ba5 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/vnfmgr:1.1.0
+image: onap/vfc/vnfmgr:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 005b8a5..ec8e0a1 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/vnfres:1.1.0
+image: onap/vfc/vnfres:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 2a486da..dd098d6 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/wfengine-activiti:1.1.0
+image: onap/vfc/wfengine-activiti:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 050e58f..6d06d9b 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/wfengine-mgrservice:1.1.0
+image: onap/vfc/wfengine-mgrservice:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 4c9dbaa..8bb0574 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/ztesdncdriver:1.1.0
+image: onap/vfc/ztesdncdriver:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 288d86f..e3c5c23 100644 (file)
@@ -29,7 +29,7 @@ global:
 flavor: small
 
 repository: nexus3.onap.org:10001
-image: onap/vfc/ztevnfmdriver:1.1.0
+image: onap/vfc/ztevnfmdriver:1.2.0
 pullPolicy: Always
 
 #Istio sidecar injection policy
index 0c77a17..e90b156 100644 (file)
@@ -120,6 +120,8 @@ spec:
   volumeClaimTemplates:
   - metadata:
       name: {{ include "common.fullname" . }}-data
+      labels:
+        name: {{ include "common.fullname" . }}
       annotations:
   {{- if .Values.persistence.storageClass }}
         volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass | quote }}
@@ -132,4 +134,7 @@ spec:
       resources:
         requests:
           storage: {{ .Values.persistence.size | quote }}
+      selector:
+        matchLabels:
+          name: {{ include "common.fullname" . }}
 {{- end }}
index 4c635fa..3e6b319 100644 (file)
@@ -35,7 +35,7 @@ spec:
         - /root/job_complete.py
         args:
         - --job-name
-        - vid-config-galera
+        - {{ include "common.fullname" . }}-galera-config
         env:
         - name: NAMESPACE
           valueFrom:
@@ -87,9 +87,11 @@ spec:
             - name: MSO_DME2_ENABLED
               value: {{ .Values.global.debugEnabled | default .Values.debugEnabled | quote }}
             - name: VID_ECOMP_REDIRECT_URL
-              value: http://portal-app.{{ include "common.namespace" . }}:{{ .Values.config.onapport }}/ONAPPORTAL/login.htm
+              value: https://{{ .Values.config.portalhost }}:{{ .Values.config.onapport }}/ONAPPORTAL/login.htm
             - name: VID_ECOMP_REST_URL
-              value: http://portal-app.{{ include "common.namespace" . }}:{{ .Values.config.onapport }}/ONAPPORTAL/auxapi
+              value: https://portal-app:{{ .Values.config.onapportrest }}/ONAPPORTAL/auxapi
+            - name: VID_ROLE_ACCESS_CENTRALIZED
+              value: "{{ .Values.config.roleaccesscentralized }}"
             - name: VID_CONTACT_US_LINK
               value: "{{ .Values.config.vidcontactuslink }}"
             - name: VID_UEB_URL_LIST
similarity index 91%
rename from kubernetes/vid/templates/vid-galera-config-job.yaml
rename to kubernetes/vid/templates/job.yaml
index 2bcf647..7d17e36 100644 (file)
 apiVersion: batch/v1
 kind: Job
 metadata:
-  name: vid-config-galera
+  name: {{ include "common.fullname" . }}-galera-config
   namespace: {{ include "common.namespace" . }}
   labels:
-    app: vid-config-galera
+    app: {{ include "common.name" . }}-job
     release: {{ .Release.Name }}
 spec:
   template:
     metadata:
       labels:
+        app: {{ include "common.name" . }}-job
         release: {{ .Release.Name }}
-      name: vid-galera-init
     spec:
       initContainers:
 #This container checks that all galera instances are up before initializing it.
-      - name: vid-init-galera-readiness
+      - name: {{ include "common.name" . }}-readiness
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
@@ -46,7 +46,7 @@ spec:
               apiVersion: v1
               fieldPath: metadata.namespace
       containers:
-      - name: vid-config-galeradb
+      - name: {{ include "common.name" . }}-job
         image: {{ .Values.mariadb_image }}
         imagePullPolicy: "{{ .Values.pullPolicy }}"
         volumeMounts:
index 79e9440..1527f39 100644 (file)
@@ -27,7 +27,7 @@ subChartsOnly:
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/vid:3.0-STAGING-latest
+image: onap/vid:3.2.0
 pullPolicy: Always
 
 # mariadb image for initializing
@@ -39,7 +39,9 @@ config:
   asdcclientrestauth: "Basic dmlkOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU="
   asdcclientrestport: "8080"
   vidaaiport: "8443"
-  onapport: "8989"
+  onapport: "30225"
+  onapportrest: "8443"
+  portalhost: "portal.api.simpledemo.onap.org"
   msoport: "8080"
   vidmsopass: OBF:1ih71i271vny1yf41ymf1ylz1yf21vn41hzj1icz
   msodme2serverurl: http://localhost:8081
@@ -51,6 +53,7 @@ config:
   vidmysqlmaxconnections: "5"
   logstashServiceName: log-ls
   logstashPort: 5044
+  roleaccesscentralized: remote
 
 # subchart configuration
 vid_mariadb_galera:
index 067b3c5..3247ae0 100644 (file)
@@ -28,7 +28,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/vnfsdk/refrepo:1.1.1
+image: onap/vnfsdk/refrepo:1.2.0
 postgresRepository: crunchydata
 postgresImage: crunchy-postgres:centos7-10.3-1.8.2
 pullPolicy: Always