Merge "Add PV for SDN-C MD-DAL data exports"
authorMandeep Khinda <Mandeep.Khinda@amdocs.com>
Wed, 2 May 2018 14:49:56 +0000 (14:49 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 2 May 2018 14:49:56 +0000 (14:49 +0000)
213 files changed:
TOSCA/Helm/helmdelete.sh
TOSCA/Helm/helminstall.sh
TOSCA/Helm/k8s_delete_env.sh [new file with mode: 0644]
TOSCA/Helm/k8s_setup_env.sh [new file with mode: 0644]
TOSCA/Helm/onap-blueprint.yaml
docs/oom_cloud_setup_guide.rst
kubernetes/Makefile
kubernetes/aaf/charts/aaf-sms/Chart.yaml [moved from kubernetes/aaf/charts/sms/Chart.yaml with 97% similarity]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/Chart.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/configmap.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pv.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pvc.yaml [moved from kubernetes/aaf/charts/sms/charts/vault/templates/pvc.yaml with 100% similarity]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/statefulset.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/values.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/Chart.yaml [moved from kubernetes/aaf/charts/sms/charts/vault/Chart.yaml with 97% similarity]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/configmap.yaml [moved from kubernetes/aaf/charts/sms/charts/vault/templates/configmap.yaml with 100% similarity]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pv.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pvc.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/service.yaml [moved from kubernetes/aaf/charts/sms/templates/service.yaml with 100% similarity]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/statefulset.yaml [moved from kubernetes/aaf/charts/sms/charts/vault/templates/statefulset.yaml with 100% similarity]
kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/values.yaml [moved from kubernetes/aaf/charts/sms/charts/vault/values.yaml with 98% similarity]
kubernetes/aaf/charts/aaf-sms/templates/configmap.yaml [moved from kubernetes/aaf/charts/sms/templates/configmap.yaml with 100% similarity]
kubernetes/aaf/charts/aaf-sms/templates/deployment.yaml [moved from kubernetes/aaf/charts/sms/templates/deployment.yaml with 90% similarity]
kubernetes/aaf/charts/aaf-sms/templates/pv.yaml [moved from kubernetes/aaf/charts/sms/charts/vault/templates/pv.yaml with 100% similarity]
kubernetes/aaf/charts/aaf-sms/templates/pvc.yaml [new file with mode: 0644]
kubernetes/aaf/charts/aaf-sms/templates/service.yaml [moved from kubernetes/aaf/charts/sms/charts/vault/templates/service.yaml with 100% similarity]
kubernetes/aaf/charts/aaf-sms/values.yaml [moved from kubernetes/aaf/charts/sms/values.yaml with 94% similarity]
kubernetes/aai/charts/aai-champ/templates/deployment.yaml
kubernetes/aai/charts/aai-modelloader/resources/config/auth/babel-client-cert.p12 [new file with mode: 0644]
kubernetes/aai/charts/aai-modelloader/resources/config/model-loader.properties
kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties
kubernetes/aai/charts/aai-sparky-be/resources/config/aai.properties [deleted file]
kubernetes/aai/charts/aai-sparky-be/resources/config/auth/csp-cookie-filter.properties [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/auth/inventory-ui-keystore [deleted file]
kubernetes/aai/charts/aai-sparky-be/resources/config/auth/tomcat_keystore [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-filter-aggregation.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-prepareSchema.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-subscriptionService.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unified-search.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unifiedFilterRequest.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/descriptors/aaiEntityNodeDescriptors.json [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/elasticsearch.properties [deleted file]
kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_filters.json [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_views.json [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/filters/subscription_object_inspector_mapping.json [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/log/logback.xml
kubernetes/aai/charts/aai-sparky-be/resources/config/portal/BOOT-INF/classes/portal.properties [moved from kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal.properties with 75% similarity]
kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal-authentication.properties
kubernetes/aai/charts/aai-sparky-be/resources/config/portal/roles.config [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/roles.config
kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestMappings.json [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestSettings.json [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/dynamicMappings.json [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/entityCountHistoryMappings.json [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_mappings.json [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_settings.json [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/search-service.properties [deleted file]
kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-application.properties [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-http-config.properties [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-ssl-config.properties [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-aggregateVnfSearchProvider.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-apigw.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-gizmo.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-sync.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspect.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspectSearchProvider.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-sparky-be/resources/config/suggestive-search.properties [deleted file]
kubernetes/aai/charts/aai-sparky-be/resources/config/synchronizer.properties [deleted file]
kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml
kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml
kubernetes/aai/charts/aai-sparky-be/templates/service.yaml
kubernetes/aai/charts/aai-sparky-be/values.yaml
kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties
kubernetes/aai/charts/aai-traversal/templates/job.yaml
kubernetes/aai/values.yaml
kubernetes/appc/templates/pv.yaml [new file with mode: 0644]
kubernetes/appc/templates/statefulset.yaml
kubernetes/appc/values.yaml
kubernetes/clamp/templates/configmap.yaml
kubernetes/clamp/values.yaml
kubernetes/consul/charts/consul-server/templates/deployment.yaml
kubernetes/consul/charts/consul-server/values.yaml
kubernetes/consul/templates/deployment.yaml
kubernetes/consul/values.yaml
kubernetes/dcaegen2/Makefile [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-bootstrap/requirements.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-input.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml
kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/service.yaml
kubernetes/dcaegen2/charts/dcae-healthcheck/Chart.yaml
kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh
kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml
kubernetes/dmaap/Makefile [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-bus-controller/.helmignore [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-bus-controller/Chart.yaml [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-bus-controller/README.md [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-bus-controller/requirements.yaml [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/buscontroller.env [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-bus-controller/templates/NOTES.txt [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-bus-controller/templates/configmap.yaml [moved from kubernetes/dmaap/templates/configmap.yaml with 78% similarity]
kubernetes/dmaap/charts/dmaap-bus-controller/templates/deployment.yaml [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-bus-controller/templates/service.yaml [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml [new file with mode: 0644]
kubernetes/dmaap/charts/postgresql/Chart.yaml [deleted file]
kubernetes/dmaap/charts/postgresql/templates/Notes.txt [deleted file]
kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl [deleted file]
kubernetes/dmaap/charts/postgresql/templates/deployment.yaml [deleted file]
kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml [deleted file]
kubernetes/dmaap/charts/postgresql/templates/pvc.yaml [deleted file]
kubernetes/dmaap/charts/postgresql/templates/secrets.yaml [deleted file]
kubernetes/dmaap/charts/postgresql/templates/svc.yaml [deleted file]
kubernetes/dmaap/charts/postgresql/values.yaml [deleted file]
kubernetes/dmaap/resources/config/README.txt [deleted file]
kubernetes/dmaap/resources/config/application.properties [deleted file]
kubernetes/dmaap/resources/config/buscontroller.env [deleted file]
kubernetes/dmaap/templates/deployment.yaml [deleted file]
kubernetes/dmaap/templates/service.yaml [deleted file]
kubernetes/dmaap/values.yaml
kubernetes/multicloud/charts/multicloud-ocata/templates/NOTES.txt [new file with mode: 0644]
kubernetes/multicloud/charts/multicloud-ocata/values.yaml
kubernetes/multicloud/charts/multicloud-vio/templates/NOTES.txt [new file with mode: 0644]
kubernetes/multicloud/charts/multicloud-vio/values.yaml
kubernetes/multicloud/charts/multicloud-windriver/templates/NOTES.txt [new file with mode: 0644]
kubernetes/multicloud/charts/multicloud-windriver/values.yaml
kubernetes/multicloud/resources/config/provider-plugin.json [new file with mode: 0644]
kubernetes/multicloud/templates/NOTES.txt [new file with mode: 0644]
kubernetes/multicloud/templates/configmap.yaml
kubernetes/multicloud/templates/deployment.yaml
kubernetes/onap/requirements.yaml
kubernetes/onap/resources/environments/dev.yaml
kubernetes/onap/values.yaml
kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml
kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml [new file with mode: 0644]
kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml [new file with mode: 0644]
kubernetes/policy/charts/drools/charts/nexus/values.yaml
kubernetes/policy/charts/drools/templates/statefulset.yaml
kubernetes/policy/charts/pdp/resources/config/pe/pdp.conf
kubernetes/policy/charts/pdp/resources/config/pe/pdplp.conf
kubernetes/policy/charts/pdp/templates/service.yaml
kubernetes/policy/charts/pdp/templates/statefulset.yaml
kubernetes/policy/charts/pdp/values.yaml
kubernetes/policy/resources/config/pe/pap.conf
kubernetes/policy/resources/config/pe/paplp.conf
kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/fusion.properties
kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties
kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/openid-connect.properties
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/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/music.properties
kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties
kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties
kubernetes/portal/charts/portal-sdk/templates/deployment.yaml
kubernetes/portal/charts/portal-sdk/values.yaml
kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties
kubernetes/portal/charts/portal-widget/templates/deployment.yaml
kubernetes/portal/charts/portal-widget/values.yaml
kubernetes/portal/charts/portal-zookeeper/values.yaml
kubernetes/portal/resources/config/log/filebeat/filebeat.yml
kubernetes/portal/values.yaml
kubernetes/robot/demo-k8s.sh
kubernetes/robot/ete-k8s.sh
kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py
kubernetes/robot/resources/config/eteshare/config/vm_properties.py
kubernetes/sdc/charts/sdc-be/Chart.yaml
kubernetes/sdc/charts/sdc-be/templates/deployment.yaml
kubernetes/sdc/charts/sdc-be/templates/job.yaml
kubernetes/sdc/charts/sdc-be/values.yaml
kubernetes/sdc/charts/sdc-cs/Chart.yaml
kubernetes/sdc/charts/sdc-cs/templates/deployment.yaml
kubernetes/sdc/charts/sdc-cs/templates/job.yaml
kubernetes/sdc/charts/sdc-cs/values.yaml
kubernetes/sdc/charts/sdc-es/Chart.yaml
kubernetes/sdc/charts/sdc-es/templates/deployment.yaml
kubernetes/sdc/charts/sdc-es/templates/job.yaml
kubernetes/sdc/charts/sdc-es/values.yaml
kubernetes/sdc/charts/sdc-fe/Chart.yaml
kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml
kubernetes/sdc/charts/sdc-kb/Chart.yaml
kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml
kubernetes/sdc/charts/sdc-onboarding-be/.helmignore [new file with mode: 0644]
kubernetes/sdc/charts/sdc-onboarding-be/Chart.yaml [new file with mode: 0644]
kubernetes/sdc/charts/sdc-onboarding-be/resources/config/logging/logback.xml [new file with mode: 0644]
kubernetes/sdc/charts/sdc-onboarding-be/templates/NOTES.txt [moved from kubernetes/dmaap/templates/NOTES.txt with 52% similarity]
kubernetes/sdc/charts/sdc-onboarding-be/templates/configmap.yaml [new file with mode: 0644]
kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml [new file with mode: 0644]
kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml [new file with mode: 0644]
kubernetes/sdc/charts/sdc-onboarding-be/templates/pv.yaml [new file with mode: 0644]
kubernetes/sdc/charts/sdc-onboarding-be/templates/pvc.yaml [new file with mode: 0644]
kubernetes/sdc/charts/sdc-onboarding-be/templates/service.yaml [new file with mode: 0644]
kubernetes/sdc/charts/sdc-onboarding-be/values.yaml [new file with mode: 0644]
kubernetes/sdc/charts/sdc-wfd/Chart.yaml
kubernetes/sdc/charts/sdc-wfd/templates/deployment.yaml
kubernetes/sdc/resources/config/environments/AUTO.json
kubernetes/sdc/templates/secrets.yaml [moved from kubernetes/sdc/charts/sdc-cs/templates/secrets.yaml with 81% similarity]
kubernetes/sdc/values.yaml
kubernetes/sdnc/charts/dmaap-listener/resources/config/dhcpalert.properties
kubernetes/sdnc/charts/dmaap-listener/templates/deployment.yaml
kubernetes/sdnc/charts/dmaap-listener/values.yaml
kubernetes/sdnc/charts/ueb-listener/resources/config/dblib.properties [new file with mode: 0644]
kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties
kubernetes/sdnc/charts/ueb-listener/templates/deployment.yaml
kubernetes/sdnc/charts/ueb-listener/values.yaml
kubernetes/sdnc/resources/config/conf/dblib.properties

index e098fbb..201471b 100644 (file)
@@ -16,8 +16,6 @@
 # limitations under the License.
 #============LICENSE_END============================================
 
-helm delete $1-$2 --purge
-kubectl delete namespace $1-$2
-kubectl delete clusterrolebinding $1-$2-admin-binding
+helm delete $2 --purge
 
 
index a6e09c8..f108825 100644 (file)
 printf "%s" "$*"
 printf `pwd`
 printf "%s" "---------------"
-kubectl create namespace $1-$2
-kubectl create clusterrolebinding $1-$2-admin-binding --clusterrole=cluster-admin --serviceaccount=$1-$2:default
-# assign default auth token
-if [[ -z $ONAP_DEFAULT_AUTH_TOKEN ]]; then
-  DEFAULT_SECRET=`kubectl get secrets -n $1-$2 | grep default-token |  awk '{ print $1}'`
-  ONAP_DEFAULT_AUTH_TOKEN=`kubectl get secrets $DEFAULT_SECRET -n $1-$2 -o yaml | grep  'token:'  | awk '{ print $2}' | base64 -d`
-fi
-kubectl --namespace $1-$2 create secret docker-registry $1-docker-registry-key --docker-server=nexus3.onap.org:10001 --docker-username=docker --docker-password=docker --docker-email=@
-helm install ../$2/ --name $1-$2 --namespace $1 --set nsPrefix=$1,nodePortPrefix=302,kubeMasterAuthToken=$ONAP_DEFAULT_AUTH_TOKEN
\ No newline at end of file
+
+helm install local/$2 --name $2 --namespace $1
\ No newline at end of file
diff --git a/TOSCA/Helm/k8s_delete_env.sh b/TOSCA/Helm/k8s_delete_env.sh
new file mode 100644 (file)
index 0000000..c715e22
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/bash
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#============LICENSE_END============================================
+
+kubectl delete secret $1-docker-registry-key
+kubectl delete clusterrolebinding $1-admin-binding
+kubectl delete namespace $1
+
+
+
diff --git a/TOSCA/Helm/k8s_setup_env.sh b/TOSCA/Helm/k8s_setup_env.sh
new file mode 100644 (file)
index 0000000..1e226f2
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/bash
+# ============LICENSE_START==========================================
+# ===================================================================
+# Copyright (c) 2017 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#============LICENSE_END============================================
+
+printf "%s" "$*"
+printf `pwd`
+printf "%s" "---------------"
+
+kubectl create namespace $1
+kubectl create clusterrolebinding $1-admin-binding --clusterrole=cluster-admin --serviceaccount=$1:default
+kubectl --namespace $1 create secret docker-registry $1-docker-registry-key --docker-server=nexus3.onap.org:10001 --docker-username=docker --docker-password=docker --docker-email=@
\ No newline at end of file
index f86b590..d11597f 100644 (file)
@@ -28,7 +28,7 @@ inputs:
   ip:
   user:
     default: centos
-  namespace_perfix:
+  namespace:
     default: onap
 
 node_types:
@@ -36,7 +36,7 @@ node_types:
     derived_from: cloudify.nodes.SoftwareComponent
     properties:
       cwd:
-        default: /home/centos/oom/kubernetes/oneclick
+        default: /home/centos/oom/kubernetes
       args:
         default:
         - onap
@@ -79,203 +79,261 @@ node_templates:
          key: { get_secret: agent_key_private }
          user: { get_input: user }
 
+  k8s_env:
+    type: cloudify.nodes.SoftwareComponent
+    properties:
+    interfaces:
+      cloudify.interfaces.lifecycle:
+         start:
+          implementation: fabric.fabric_plugin.tasks.run_script
+          inputs:
+            script_path: k8s_setup_env.sh
+            process:
+              args:  [{ get_input: namespace }]
+            fabric_env:
+              host_string: { get_input: ip }
+              user: { get_input: user }
+              key: { get_secret: agent_key_private }
+         stop:
+          implementation: fabric.fabric_plugin.tasks.run_script
+          inputs:
+            script_path: k8s_delete_env.sh
+            process:
+              args:  [{ get_input: namespace }]
+            fabric_env:
+              host_string: { get_input: ip }
+              user: { get_input: user }
+              key: { get_secret: agent_key_private }
+    relationships:
+      - type: cloudify.relationships.connected_to
+        target: k8s_master
+
   consul:
      type: cloudify.nodes.Helm
      properties:
        args:
-       - { get_input: namespace_perfix }
+       - { get_input: namespace }
        - consul
      relationships:
        - type: cloudify.relationships.connected_to
-         target: k8s_master
+         target: k8s_env
 
   msb:
      type: cloudify.nodes.Helm
      properties:
        args:
-       - { get_input: namespace_perfix }
+       - { get_input: namespace }
        - msb
      relationships:
        - type: cloudify.relationships.connected_to
-         target: k8s_master
+         target: k8s_env
 
-
-  mso:
+  so:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
-      - mso
+      - { get_input: namespace }
+      - so
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   appc:
      type: cloudify.nodes.Helm
      properties:
        args:
-       - { get_input: namespace_perfix }
+       - { get_input: namespace }
        - appc
      relationships:
        - type: cloudify.relationships.connected_to
-         target: k8s_master
+         target: k8s_env
 
   message-router:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - message-router
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   sdnc:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - sdnc
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   vid:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - vid
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   robot:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - robot
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   policy:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - policy
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   portal:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - portal
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   aai:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - aai
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   sdc:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - sdc
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   log:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - log
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   cli:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - cli
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   multicloud:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - multicloud
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   clamp:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - clamp
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   vnfsdk:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - vnfsdk
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   uui:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - uui
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   aaf:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - aaf
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
 
   vfc:
     type: cloudify.nodes.Helm
     properties:
       args:
-      - { get_input: namespace_perfix }
+      - { get_input: namespace }
       - vfc
     relationships:
       - type: cloudify.relationships.connected_to
-        target: k8s_master
+        target: k8s_env
+
+  dcaegen2:
+    type: cloudify.nodes.Helm
+    properties:
+      args:
+      - { get_input: namespace }
+      - dcaegen2
+    relationships:
+      - type: cloudify.relationships.connected_to
+        target: k8s_env
+
+  esr:
+    type: cloudify.nodes.Helm
+    properties:
+      args:
+      - { get_input: namespace }
+      - esr
+    relationships:
+      - type: cloudify.relationships.connected_to
+        target: k8s_env
+
+  mock:
+    type: cloudify.nodes.Helm
+    properties:
+      args:
+      - { get_input: namespace }
+      - mock
+    relationships:
+      - type: cloudify.relationships.connected_to
+        target: k8s_env
\ No newline at end of file
index 3de125b..f967931 100644 (file)
@@ -47,7 +47,7 @@ The versions of Kubernetes that are supported by OOM are as follows:
   Release         Kubernetes  Helm   kubectl  Docker
   ==============  ==========  =====  =======  ========
   amsterdam       1.7.x       2.3.x  1.7.x    1.12.x
-  beijing/master  1.8.5       2.7.x  1.8.5    1.12.x
+  beijing/master  1.8.10      2.7.x  1.8.10   17.03.x
   ==============  ==========  =====  =======  ========
 
 Minimum Hardware Configuration
index 4962c82..7b19e6e 100644 (file)
@@ -51,7 +51,7 @@ package-%: lint-%
 
 clean:
        @rm -f */requirements.lock
-       @rm -f *tgz */charts/*tgz
+       @find . -type f -name '*.tgz' -delete
        @rm -rf $(PACKAGE_DIR)/*
 
 # start up a local helm repo to serve up helm chart packages
similarity index 97%
rename from kubernetes/aaf/charts/sms/Chart.yaml
rename to kubernetes/aaf/charts/aaf-sms/Chart.yaml
index 962ef38..7141875 100644 (file)
@@ -14,5 +14,5 @@
 
 apiVersion: v1
 description: ONAP Secret Management Service
-name: sms
+name: aaf-sms
 version: 2.0.0
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/Chart.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/Chart.yaml
new file mode 100644 (file)
index 0000000..4e279e7
--- /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 Secret Management Service Quorum Client
+name: aaf-sms-quorumclient
+version: 2.0.0
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/configmap.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..cacc368
--- /dev/null
@@ -0,0 +1,27 @@
+# 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: 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:
+  config.json: |
+    {{ .Values.config | toJson }}
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/pv.yaml
new file mode 100644 (file)
index 0000000..da09498
--- /dev/null
@@ -0,0 +1,37 @@
+{{/*
+# 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.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size}}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/statefulset.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/templates/statefulset.yaml
new file mode 100644 (file)
index 0000000..483d6c5
--- /dev/null
@@ -0,0 +1,70 @@
+# 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: 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:
+      containers:
+      - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        name: {{ include "common.name" . }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        command: ["/quorumclient/bin/quorumclient"]
+        workingDir: /quorumclient/
+        volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /quorumclient/config.json
+            name: {{ include "common.name" .}}
+            subPath: config.json
+          - mountPath: /quorumclient/auth
+            name: {{ include "common.fullname" . }}-auth
+        resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      volumes:
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name : {{ include "common.name" . }}
+        configMap:
+          name: {{ include "common.fullname" . }}
+      - name: {{ include "common.fullname" . }}-auth
+        persistentVolumeClaim:
+          claimName: {{ include "common.fullname" . }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/values.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-quorumclient/values.yaml
new file mode 100644 (file)
index 0000000..d09d492
--- /dev/null
@@ -0,0 +1,83 @@
+# 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
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.1
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+  persistence: {}
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/aaf/smsquorumclient
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+# Example:
+config:
+  url: "http://aaf-sms:10443"
+  cafile: "selfsignedca.pem"
+  clientcert: "server.cert"
+  clientkey: "server.key"
+  timeout: "60s"
+  disable_tls: true
+
+# default number of instances
+replicaCount: 3
+
+nodeSelector: {}
+
+affinity: {}
+
+persistence:
+  enabled: true
+  volumeReclaimPolicy: Retain
+  accessMode: ReadWriteOnce
+  size: 10Mi
+  mountPath: /dockerdata-nfs
+  mountSubPath: sms/quorum/data
+
+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
@@ -14,6 +14,6 @@
 
 apiVersion: v1
 description: Chart to launch Vault as SMS backend
-name: vault
+name: aaf-sms-vault
 appVersion: 0.9.5
 version: 2.0.0
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pv.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pv.yaml
new file mode 100644 (file)
index 0000000..da09498
--- /dev/null
@@ -0,0 +1,37 @@
+{{/*
+# 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.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size}}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+{{- end -}}
diff --git a/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-sms/charts/aaf-sms-vault/templates/pvc.yaml
new file mode 100644 (file)
index 0000000..e6aacd1
--- /dev/null
@@ -0,0 +1,48 @@
+{{/*
+# 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.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  selector:
+    matchLabels:
+      name: {{ include "common.fullname" . }}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.size }}
+{{- if .Values.persistence.storageClass }}
+{{- if (eq "-" .Values.persistence.storageClass) }}
+  storageClassName: ""
+{{- else }}
+  storageClassName: "{{ .Values.persistence.storageClass }}"
+{{- end }}
+{{- end }}
+{{- end -}}
@@ -24,7 +24,7 @@ global:
 repository: docker.io
 image:
   consul: consul:1.0.6
-  vault: vault:0.9.6
+  vault: vault:0.10.0
 pullPolicy: Always
 
 # flag to enable debugging - application support required
@@ -75,10 +75,8 @@ readiness:
 
 persistence:
   enabled: true
-
   volumeReclaimPolicy: Retain
-
-  accessMode: ReadWriteMany
+  accessMode: ReadWriteOnce
   size: 2Gi
   mountPath: /dockerdata-nfs
   mountSubPath: sms/consul/data
@@ -31,7 +31,7 @@ spec:
         release: {{ .Release.Name }}
     spec:
       containers:
-      - image: "{{ .Values.repository }}/{{ .Values.image }}"
+      - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         name: {{ include "common.name" . }}
         imagePullPolicy: {{ .Values.pullPolicy }}
         command: ["/sms/bin/sms"]
@@ -57,6 +57,8 @@ spec:
           - mountPath: /sms/smsconfig.json
             name: {{ include "common.name" .}}
             subPath: smsconfig.json
+          - mountPath: /sms/auth
+            name: {{ include "common.fullname" . }}-auth
         resources:
 {{ toYaml .Values.resources | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -74,5 +76,8 @@ spec:
       - name : {{ include "common.name" . }}
         configMap:
           name: {{ include "common.fullname" . }}
+      - name: {{ include "common.fullname" . }}-auth
+        persistentVolumeClaim:
+          claimName: {{ include "common.fullname" . }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aaf/charts/aaf-sms/templates/pvc.yaml b/kubernetes/aaf/charts/aaf-sms/templates/pvc.yaml
new file mode 100644 (file)
index 0000000..e6aacd1
--- /dev/null
@@ -0,0 +1,48 @@
+{{/*
+# 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.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  selector:
+    matchLabels:
+      name: {{ include "common.fullname" . }}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.size }}
+{{- if .Values.persistence.storageClass }}
+{{- if (eq "-" .Values.persistence.storageClass) }}
+  storageClassName: ""
+{{- else }}
+  storageClassName: "{{ .Values.persistence.storageClass }}"
+{{- end }}
+{{- end }}
+{{- end -}}
similarity index 94%
rename from kubernetes/aaf/charts/sms/values.yaml
rename to kubernetes/aaf/charts/aaf-sms/values.yaml
index 05d4e79..cd32539 100644 (file)
@@ -22,6 +22,7 @@ global:
   readinessImage: readiness-check:2.0.0
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
+  persistence: {}
 
 #################################################################
 # Application configuration defaults.
@@ -73,6 +74,14 @@ service:
   internalPort: 10443
   nodePort: 43
 
+persistence:
+  enabled: true
+  volumeReclaimPolicy: Retain
+  accessMode: ReadWriteOnce
+  size: 1Gi
+  mountPath: /dockerdata-nfs
+  mountSubPath: sms/auth
+
 ingress:
   enabled: false
 
index 7176d09..9a5d0ee 100644 (file)
@@ -36,6 +36,8 @@ spec:
         args:
         - --container-name
         - aai-resources
+        - --container-name
+        - global-kafka
         env:
         - name: NAMESPACE
           valueFrom:
diff --git a/kubernetes/aai/charts/aai-modelloader/resources/config/auth/babel-client-cert.p12 b/kubernetes/aai/charts/aai-modelloader/resources/config/auth/babel-client-cert.p12
new file mode 100644 (file)
index 0000000..dbf4fca
Binary files /dev/null and b/kubernetes/aai/charts/aai-modelloader/resources/config/auth/babel-client-cert.p12 differ
index 5604c1f..e9b24b6 100644 (file)
@@ -10,14 +10,21 @@ ml.distribution.PASSWORD=OBF:1ks51l8d1o3i1pcc1r2r1e211r391kls1pyj1z7u1njf1lx51go
 ml.distribution.POLLING_INTERVAL=30
 ml.distribution.POLLING_TIMEOUT=20
 ml.distribution.USER=aai
-ml.distribution.ARTIFACT_TYPES=MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG
+ml.distribution.ARTIFACT_TYPES=MODEL_QUERY_SPEC,TOSCA_CSAR
+ml.distribution.MSG_BUS_ADDRESSES=message-router.{{.Release.Namespace}}
 
 # Model Loader AAI REST Client Configuration
 ml.aai.BASE_URL=https://aai.{{.Release.Namespace}}:8443
-ml.aai.MODEL_URL=/aai/v10/service-design-and-creation/models/model/
-ml.aai.NAMED_QUERY_URL=/aai/v10/service-design-and-creation/named-queries/named-query/
-ml.aai.VNF_IMAGE_URL=/aai/v8/service-design-and-creation/vnf-images
+ml.aai.MODEL_URL=/aai/v*/service-design-and-creation/models/model/
+ml.aai.NAMED_QUERY_URL=/aai/v*/service-design-and-creation/named-queries/named-query/
+ml.aai.VNF_IMAGE_URL=/aai/v*/service-design-and-creation/vnf-images
 ml.aai.KEYSTORE_FILE=aai-os-cert.p12
 ml.aai.KEYSTORE_PASSWORD=OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
 ml.aai.AUTH_USER=ModelLoader
 ml.aai.AUTH_PASSWORD=OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw
+
+# Model Loader Babel REST Client Configuration\r
+ml.babel.BASE_URL=https://aai-babel.{{.Release.Namespace}}:9516
+ml.babel.GENERATE_ARTIFACTS_URL=/services/babel-service/v1/app/generateArtifacts
+ml.babel.KEYSTORE_FILE=babel-client-cert.p12
+ml.babel.KEYSTORE_PASSWORD=OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
index 7e94ae4..e3128b8 100644 (file)
@@ -24,10 +24,10 @@ query.fast-property=true
 query.smart-limit=false
 
 {{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}}
+{{- $global := . }}
 
-# the following parameters are not reloaded automatically and require a manual bounce
 storage.backend=cassandra
-storage.hostname={{- range $i, $e := until $seed_size }}aai-cassandra-{{ $i }},{{- end }}
+storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }}
 
 storage.cassandra.keyspace=aaigraph
 
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/aai.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/aai.properties
deleted file mode 100644 (file)
index 813a263..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-################################################################################################################
-############################## ActiveInventoryDataCollector TLS/SSL configuration ##############################
-################################################################################################################
-
-############################## Networking ##############################
-#
-# The ip address/hostname and port to the desired AAI instance
-#
-aai.rest.host=aai.{{.Release.Namespace}}
-aai.rest.port=8443
-
-############################## REST ##############################
-# OXM version
-aai.rest.resourceBasePath=/aai/v9
-aai.rest.connectTimeoutInMs=30000
-aai.rest.readTimeoutInMs=60000
-aai.rest.numRequestRetries=5
-# HTTP_NOAUTH - straight HTTP no user/pass
-# SSL_BASIC   - HTTP/S with user/pass
-# SSL_CERT    - HTTP/S with client cert
-aai.rest.authenticationMode=SSL_BASIC
-
-############################## Cache ##############################
-# Experimental caching feature that is NOT production ready.
-# Enable at your own risk... it might not work.
-aai.rest.cache.enabled=false
-aai.rest.cache.numWorkers=10
-aai.rest.cache.cacheFailures=false
-aai.rest.cache.useCacheOnly=false
-aai.rest.cache.storageFolderOverride=
-aai.rest.cache.maxTimeToLiveInMs=-1
-
-# The shallowEntity filter will display the entity in a visualization
-# but will not collect it's relationships or complex attributes.
-aai.rest.shallowEntities=cloud-region,complex,vnf-image,att-aic,image
-
-############################## Certs, Auth, and SSL Settings ##############################
-aai.ssl.keystore.filename=aai-os-cert.p12
-aai.ssl.keystore.pass=OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
-aai.ssl.keystore.type=pkcs12
-# Enable debug on the SSL connections
-aai.ssl.enableDebug=false
-# Degree of strictness to SSL connection standards
-aai.ssl.validateServerHostName=false;
-aai.ssl.validateServerCertificateChain=false;
-# If basic auth is implemented, username and password as required
-aai.ssl.basicAuth.username=AaiUI
-aai.ssl.basicAuth.password=OBF:1gfr1p571unz1p4j1gg7
-
-############################## Statistics Report Formatting ##############################
-#
-# During synchronization, a formatted statisitics log is generated
-#
-# Response size in bytes histogram
-aai.taskProcessor.bytesHistogramLabel="[Response Size In Bytes]"
-aai.taskProcessor.bytesHistogramMaxYAxis=1000000
-aai.taskProcessor.bytesHistogramNumBins=20
-aai.taskProcessor.bytesHistogramNumDecimalPoints=2
-# "Work on Hand" statisitcs for external resource requests
-aai.taskProcessor.queueLengthHistogramLabel="[Queue Item Length]"
-aai.taskProcessor.queueLengthHistogramMaxYAxis=20000
-aai.taskProcessor.queueLengthHistogramNumBins=20
-aai.taskProcessor.queueLengthHistogramNumDecimalPoints=2
-# Time on queue (how long does a task stay on the work queue)
-aai.taskProcessor.taskAgeHistogramLabel="[Task Age In Ms]"
-aai.taskProcessor.taskAgeHistogramMaxYAxis=600000
-aai.taskProcessor.taskAgeHistogramNumBins=20
-aai.taskProcessor.taskAgeHistogramNumDecimalPoints=2
-# Per transaction response time for external resource requests
-aai.taskProcessor.responseTimeHistogramLabel="[Response Time In Ms]"
-aai.taskProcessor.responseTimeHistogramMaxYAxis=10000
-aai.taskProcessor.responseTimeHistogramNumBins=20
-aai.taskProcessor.responseTimeHistogramNumDecimalPoints=2
-# Transaction throughput velocity
-aai.taskProcessor.tpsHistogramLabel="[Transactions Per Second]"
-aai.taskProcessor.tpsHistogramMaxYAxis=100
-aai.taskProcessor.tpsHistogramNumBins=20
-aai.taskProcessor.tpsHistogramNumDecimalPoints=2
-
-############################## Deprecated, to be removed or updated ##############################
-aai.rest.numResolverWorkers=15
-aai.ssl.truststore.filename=asdc-client.jks
-aai.ssl.truststore.type=jks
-aai.taskProcessor.maxConcurrentWorkers=5
-aai.taskProcessor.transactionRateControllerEnabled=false
-aai.taskProcessor.numSamplesPerThreadForRunningAverage=100
-aai.taskProcessor.targetTPS=100
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/csp-cookie-filter.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/csp-cookie-filter.properties
new file mode 100644 (file)
index 0000000..2315b9f
--- /dev/null
@@ -0,0 +1,12 @@
+global.login.url=aaiportal.onap.org
+
+# MOTS ID of the application
+application.id=12345
+
+# valid domains for open redirect
+redirect-domain=domain.com
+
+# Required by esGateKeeper. Valid values are:
+# DEVL - used during development
+# PROD - used in production
+gatekeeper.environment=TEST
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/inventory-ui-keystore b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/inventory-ui-keystore
deleted file mode 100644 (file)
index efa01f8..0000000
Binary files a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/inventory-ui-keystore and /dev/null differ
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/tomcat_keystore b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/tomcat_keystore
new file mode 100644 (file)
index 0000000..9eec841
Binary files /dev/null and b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/tomcat_keystore differ
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-filter-aggregation.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-filter-aggregation.xml
new file mode 100644 (file)
index 0000000..e4e02ba
--- /dev/null
@@ -0,0 +1,7 @@
+<rests xmlns="http://camel.apache.org/schema/spring">
+   <rest>
+      <post uri="/search/filterAggregation">
+         <to uri="bean:aggregateSummaryProcessor?method=getFilteredAggregation"/>
+      </post>
+   </rest>
+</rests>
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-prepareSchema.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-prepareSchema.xml
new file mode 100644 (file)
index 0000000..20dba6f
--- /dev/null
@@ -0,0 +1,11 @@
+<rests xmlns="http://camel.apache.org/schema/spring">
+       <rest>
+               <post uri="/visualization/prepareVisualization">
+                       <route>
+                               <to uri="bean:schemaVisualizationProcessor?method=processVisualizationRequest" />
+                       </route>
+               </post>
+       </rest>
+</rests>
+
+         
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-subscriptionService.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-subscriptionService.xml
new file mode 100644 (file)
index 0000000..f6a2953
--- /dev/null
@@ -0,0 +1,7 @@
+<rests xmlns="http://camel.apache.org/schema/spring">
+   <rest>
+      <get uri="/subscription/getsubscription">
+         <to uri="bean:subscriptionServiceProcessor?method=getSubscription"/>
+      </get>
+   </rest>
+</rests>
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unified-search.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unified-search.xml
new file mode 100644 (file)
index 0000000..61fd9ad
--- /dev/null
@@ -0,0 +1,7 @@
+<rests xmlns="http://camel.apache.org/schema/spring">
+   <rest>
+      <post uri="/search/querysearch">
+         <to uri="bean:unifiedSearchProcessor?method=search"/>
+      </post>
+   </rest>
+</rests>
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unifiedFilterRequest.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unifiedFilterRequest.xml
new file mode 100644 (file)
index 0000000..1b975e9
--- /dev/null
@@ -0,0 +1,7 @@
+<rests xmlns="http://camel.apache.org/schema/spring">
+   <rest>
+      <post uri="/search/unifiedFilterRequest">
+         <to uri="bean:filterProcessor?method=getFiltersWithValues"/>
+      </post>
+   </rest>
+</rests>
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/descriptors/aaiEntityNodeDescriptors.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/descriptors/aaiEntityNodeDescriptors.json
new file mode 100644 (file)
index 0000000..e72bab0
--- /dev/null
@@ -0,0 +1,218 @@
+{
+       "generalNodeClass": {
+               "class": "aai-entity-node general-node",
+               "visualElements": [{
+                       "type": "circle",
+                       "class": "outer",
+                       "svgAttributes": {
+                               "r": "16"
+                       }
+               },
+               {
+                       "type": "circle",
+                       "class": "inner",
+                       "svgAttributes": {
+                               "r": "10"
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-type-label",
+                       "displayKey": "itemType",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "33"
+                               }
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-value-label",
+                       "displayKey": "itemNameValue",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "48"
+                               }
+                       }
+               }]
+       },
+       "searchedNodeClass": {
+               "class": "aai-entity-node search-node",
+               "visualElements": [{
+                       "type": "circle",
+                       "class": "outer",
+                       "svgAttributes": {
+                               "r": "16"
+                       }
+               },
+               {
+                       "type": "circle",
+                       "class": "inner",
+                       "svgAttributes": {
+                               "r": "10"
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-type-label",
+                       "displayKey": "itemType",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "33"
+                               }
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-value-label",
+                       "displayKey": "itemNameValue",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "48"
+                               }
+                       }
+               }]
+       },
+       "selectedSearchedNodeClass": {
+               "class": "aai-entity-node selected-search-node",
+               "visualElements": [{
+                       "type": "circle",
+                       "class": "outer",
+                       "svgAttributes": {
+                               "r": "31"
+                       }
+               },
+               {
+                       "type": "circle",
+                       "class": "inner",
+                       "svgAttributes": {
+                               "r": "20"
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-type-label",
+                       "displayKey": "itemType",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "48"
+                               }
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-value-label",
+                       "displayKey": "itemNameValue",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "63"
+                               }
+                       }
+               },
+               {
+                       "type": "button",
+                       "name": "icon_ellipses",
+                       "class": "node-button",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "33",
+                                       "y": "-35"
+                               }
+                       },
+                       "svgAttributes": {
+                               "className": "node-button",
+                               "r": "10"
+                       }
+               },
+               {
+                       "type": "button",
+                       "name": "icon_triangle_warning",
+                       "class": "node-button",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "46",
+                                       "y": "-12"
+                               }
+                       },
+                       "svgAttributes": {
+                               "className": "node-button",
+                               "r": "10"
+                       }
+               }]
+       },
+       "selectedNodeClass": {
+               "class": "aai-entity-node selected-node",
+               "visualElements": [{
+                       "type": "circle",
+                       "class": "outer",
+                       "svgAttributes": {
+                               "r": "31"
+                       }
+               },
+               {
+                       "type": "circle",
+                       "class": "inner",
+                       "svgAttributes": {
+                               "r": "20"
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-type-label",
+                       "displayKey": "itemType",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "48"
+                               }
+                       }
+               },
+               {
+                       "type": "text",
+                       "class": "id-value-label",
+                       "displayKey": "itemNameValue",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "0",
+                                       "y": "63"
+                               }
+                       }
+               },
+               {
+                       "type": "button",
+                       "name": "icon_ellipses",
+                       "class": "node-button",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "33",
+                                       "y": "-35"
+                               }
+                       },
+                       "svgAttributes": {
+                               "className": "node-button",
+                               "r": "10"
+                       }
+               },
+               {
+                       "type": "button",
+                       "name": "icon_triangle_warning",
+                       "class": "node-button",
+                       "shapeAttributes": {
+                               "offset": {
+                                       "x": "46",
+                                       "y": "-12"
+                               }
+                       },
+                       "svgAttributes": {
+                               "className": "node-button",
+                               "r": "10"
+                       }
+               }]
+       }
+}
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/elasticsearch.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/elasticsearch.properties
deleted file mode 100644 (file)
index 082744b..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#######################################################################################
-############################## ElasticSearch Config ###################################
-#######################################################################################
-
-############################## Networking ##############################
-#
-# The ip address/hostname and port to the desired AAI instance
-# For development it's recommended to use a local instance of ES
-#
-elasticsearch.ipAddress=aai-elasticsearch.{{.Release.Namespace}}
-elasticsearch.httpPort={{ .Values.config.elasticsearchHttpPort }}
-elasticsearch.javaApiPort=8443
-
-############################## Indexes ##############################
-#
-# Index names for various searches.
-#
-elasticsearch.indexName=entitysearchindex
-elasticsearch.topographicalIndexName=topographicalsearchindex
-elasticsearch.entityCountHistoryIndexName=entitycounthistoryindex
-elasticsearch.autosuggestIndexname=entityautosuggestindex
-
-# Default document type
-elasticsearch.type=default
-
-############################## Index Mappings and Settings ##############################
-#
-# JSON files for sparky elasticsearch indexes.
-#
-elasticsearch.mappingsFileName=/etc/es_mappings.json
-elasticsearch.settingsFileName=/etc/es_settings.json
-elasticsearch.autosuggestSettingsFileName=/etc/autoSuggestSettings.json
-elasticsearch.autosuggestMappingsFileName=/etc/autoSuggestMappings.json
-elasticsearch.dynamicMappingsFileName=/etc/dynamicMappings.json
-elasticsearch.entityCountHistoryMappingsFileName=/etc/entityCountHistoryMappings.json
-
-############################## Statistics Report Formatting ##############################
-#
-# During synchronization, a formatted statisitics log is generated.
-#
-# Response size in bytes histogram
-elasticsearch.taskProcessor.bytesHistogramLabel="[Response Size In Bytes]"
-elasticsearch.taskProcessor.bytesHistogramMaxYAxis=1000000
-elasticsearch.taskProcessor.bytesHistogramNumBins=20
-elasticsearch.taskProcessor.bytesHistogramNumDecimalPoints=2
-# "Work on Hand" statisitcs for external resource requests
-elasticsearch.taskProcessor.queueLengthHistogramLabel="[Queue Item Length]"
-elasticsearch.taskProcessor.queueLengthHistogramMaxYAxis=20000
-elasticsearch.taskProcessor.queueLengthHistogramNumBins=20
-elasticsearch.taskProcessor.queueLengthHistogramNumDecimalPoints=2
-# Time on queue (how long does a task stay on the work queue)
-elasticsearch.taskProcessor.taskAgeHistogramLabel="[Task Age In Ms]"
-elasticsearch.taskProcessor.taskAgeHistogramMaxYAxis=600000
-elasticsearch.taskProcessor.taskAgeHistogramNumBins=20
-elasticsearch.taskProcessor.taskAgeHistogramNumDecimalPoints=2
-# Per transaction response time for external resource requests
-elasticsearch.taskProcessor.responseTimeHistogramLabel="[Response Time In Ms]"
-elasticsearch.taskProcessor.responseTimeHistogramMaxYAxis=1000
-elasticsearch.taskProcessor.responseTimeHistogramNumBins=20
-elasticsearch.taskProcessor.responseTimeHistogramNumDecimalPoints=2
-# Transaction throughput velocity
-elasticsearch.taskProcessor.tpsHistogramLabel="[Transactions Per Second]"
-elasticsearch.taskProcessor.tpsHistogramMaxYAxis=100
-elasticsearch.taskProcessor.tpsHistogramNumBins=20
-elasticsearch.taskProcessor.tpsHistogramNumDecimalPoints=2
-
-############################## Deprecated, to be removed or updated ##############################
-elasticsearch.taskProcessor.maxConcurrentWorkers=5
-elasticsearch.taskProcessor.transactionRateControllerEnabled=false
-elasticsearch.taskProcessor.numSamplesPerThreadForRunningAverage=100
-elasticsearch.taskProcessor.targetTPS=100
-elasticsearch.clusterName=ES_AAI_LOCALHOST
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_filters.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_filters.json
new file mode 100644 (file)
index 0000000..62b6811
--- /dev/null
@@ -0,0 +1,79 @@
+{
+       "filters": [
+       {
+               "filterId": "1",
+               "filterName": "Orchestration-Status",
+               "displayName": "Orchestration Status",
+               "dataType": "dropDown",
+        "multiSelect": "false",
+        "watermark": "Any Orchestration Status",
+        "optionsType": "options",
+               "dataSource": {
+                       "indexName": "aggregate_generic-vnf_index",
+                       "docType": "default",
+                       "fieldName": "orchestration-status"
+               }
+       },
+       {
+               "filterId": "2",
+               "filterName": "Prov-Status",
+               "displayName": "Provisioning Status",
+               "dataType": "dropDown",
+        "multiSelect": "false",
+        "watermark": "Any Provisioning Status",
+        "optionsType": "options",
+               "dataSource": {
+                       "indexName": "aggregate_generic-vnf_index",
+                       "docType": "default",
+                       "fieldName": "prov-status"
+               }
+       },
+       {
+               "filterId": "5",
+               "filterName": "Date",
+               "displayName": "Date",
+               "dataType": "date",
+        "multiSelect": "false",
+        "watermark": "Choose Date Range",
+        "defaultValue" : {"decode": "Today", "code": "last_0_hours"},
+        "optionsType": "dynamicOptions",
+        "optionsValues": [
+               {"decode": "Today", "code": "last_0_hours"},
+               {"decode": "Since Yesterday", "code": "last_1_days"},
+               {"decode": "Since Last Week", "code": "last_1_weeks"},
+               {"decode": "Since Last Month", "code": "last_1_months"},
+               {"decode": "Since Last Year", "code": "last_1_years"},
+               {"decode": "Custom Range", "code": "custom_range"}
+        ]
+       },
+    {
+        "filterId": "7",
+               "filterName": "NF-Type",
+               "displayName": "Network Function Type",
+               "dataType": "dropDown",
+        "multiSelect": "false",
+        "watermark": "Any Network Function Type",
+        "optionsType": "options",
+               "dataSource": {
+                       "indexName": "aggregate_generic-vnf_index",
+                       "docType": "default",
+                       "fieldName": "nf-type"
+               }    
+       },
+    {
+        "filterId": "8",
+               "filterName": "NF-Role",
+               "displayName": "Network Function Role",
+               "dataType": "dropDown",
+        "multiSelect": "false",
+        "watermark": "Any Network Function Role",
+        "optionsType": "options",
+               "dataSource": {
+                       "indexName": "aggregate_generic-vnf_index",
+                       "docType": "default",
+                       "fieldName": "nf-role"
+               }    
+       }       
+       
+  ]
+}
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_views.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_views.json
new file mode 100644 (file)
index 0000000..9ca0119
--- /dev/null
@@ -0,0 +1,21 @@
+{
+    "views": [
+    {
+        "viewName" : "vnfSearch",
+        "filters" : [
+          {
+             "filterId": "1"
+          },
+          {
+             "filterId": "2"
+          },
+          {
+             "filterId": "7"
+          },
+          {
+             "filterId": "8"
+          }
+         ]
+    }
+   ]
+}
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/subscription_object_inspector_mapping.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/subscription_object_inspector_mapping.json
new file mode 100644 (file)
index 0000000..ad2ab7a
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "target": "",
+    "origin": "",
+    "messageType": "",
+    "topic": "",
+    "message": {
+        "applicationName": "",
+        "payload": {
+            "action": "",
+            "params": {
+                "objectName": "",
+                "externalClassId": ""
+            }
+        }
+    }
+}
index c1b99c1..3f96497 100644 (file)
-<?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="3 seconds" debug="false">
-   <!--<jmxConfigurator /> -->
-   <!-- directory path for all other type logs -->
-   <property name="logDir" value="/var/log/onap" />
-   <property name="componentName" value="AAI-UI" />
-   <property name="logDirectory" value="${logDir}/${componentName}" />
-   <!--  default eelf log file names -->
-   <property name="generalLogName" value="application" />
-   <property name="errorLogName" value="error" />
-   <property name="metricsLogName" value="metrics" />
-   <property name="auditLogName" value="audit" />
-   <property name="debugLogName" value="debug" />
-   <property name="queueSize" value="256" />
-   <property name="maxFileSize" value="50MB" />
-   <property name="maxHistory" value="30" />
-   <property name="totalSizeCap" value="10GB" />
-   <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />
-
-   <!-- Example evaluator filter applied against console appender -->
-   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-      <encoder>
-         <pattern>${pattern}</pattern>
-      </encoder>
-   </appender>
-   <!-- ============================================================================ -->
-   <!-- EELF Appenders -->
-   <!-- ============================================================================ -->
-   <!-- The EELFAppender is used to record events to the general application 
-       log -->
-   <appender name="EELF" class="ch.qos.logback.core.rolling.RollingFileAppender">
-      <file>${logDirectory}/${generalLogName}.log</file>
-      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-         <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-            <maxFileSize>${maxFileSize}</maxFileSize>
-         </timeBasedFileNamingAndTriggeringPolicy>
-         <maxHistory>${maxHistory}</maxHistory>
-         <totalSizeCap>${totalSizeCap}</totalSizeCap>
-      </rollingPolicy>
-      <encoder>
-         <pattern>${pattern}</pattern>
-      </encoder>
-   </appender>
-   <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
-      <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
-      <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-         <level>INFO</level>
-      </filter>
-      <queueSize>${queueSize}</queueSize>
-      <appender-ref ref="EELF" />
-   </appender>
-   <!-- EELF Audit Appender. This appender is used to record audit engine 
-       related logging events. The audit logger and appender are specializations 
-       of the EELF application root logger and appender. This can be used to segregate 
-       Policy engine events from other components, or it can be eliminated to record 
-       these events as part of the application root log. -->
-   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
-      <file>${logDirectory}/${auditLogName}.log</file>
-      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-         <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-            <maxFileSize>${maxFileSize}</maxFileSize>
-         </timeBasedFileNamingAndTriggeringPolicy>
-         <maxHistory>${maxHistory}</maxHistory>
-         <totalSizeCap>${totalSizeCap}</totalSizeCap>
-      </rollingPolicy>
-      <encoder>
-         <pattern>${pattern}</pattern>
-      </encoder>
-   </appender>
-   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
-      <queueSize>${queueSize}</queueSize>
-      <appender-ref ref="EELFAudit" />
-   </appender>
-   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">
-      <file>${logDirectory}/${metricsLogName}.log</file>
-      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-         <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-            <maxFileSize>${maxFileSize}</maxFileSize>
-         </timeBasedFileNamingAndTriggeringPolicy>
-         <maxHistory>${maxHistory}</maxHistory>
-         <totalSizeCap>${totalSizeCap}</totalSizeCap>
-      </rollingPolicy>
-      <encoder>
-         <pattern>${pattern}</pattern>
-      </encoder>
-   </appender>
-   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
-      <queueSize>${queueSize}</queueSize>
-      <appender-ref ref="EELFMetrics" />
-   </appender>
-   
-      <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">
-      <file>${logDirectory}/${errorLogName}.log</file>
-      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-         <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-            <maxFileSize>${maxFileSize}</maxFileSize>
-         </timeBasedFileNamingAndTriggeringPolicy>
-         <maxHistory>${maxHistory}</maxHistory>
-         <totalSizeCap>${totalSizeCap}</totalSizeCap>
-      </rollingPolicy>
-      <encoder>
-         <pattern>${pattern}</pattern>
-      </encoder>
-      <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-         <level>INFO</level>
-      </filter>
-   </appender>
-   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
-      <queueSize>${queueSize}</queueSize>
-      <appender-ref ref="EELFError" />
-   </appender>
-   
-   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-      <file>${logDirectory}/${debugLogName}.log</file>
-      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-         <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
-         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-            <maxFileSize>${maxFileSize}</maxFileSize>
-         </timeBasedFileNamingAndTriggeringPolicy>
-         <maxHistory>${maxHistory}</maxHistory>
-         <totalSizeCap>${totalSizeCap}</totalSizeCap>
-      </rollingPolicy>
-      <encoder>
-         <pattern>${pattern}</pattern>
-      </encoder>
-   </appender>
-   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
-      <queueSize>${queueSize}</queueSize>
-      <appender-ref ref="EELFDebug" />
-      <includeCallerData>false</includeCallerData>
-   </appender>
-   <!-- ============================================================================ -->
-   <!--  EELF loggers -->
-   <!-- ============================================================================ -->
-   <logger name="com.att.eelf" level="INFO" additivity="false" />
-   <logger name="org.elasticsearch.plugins" level="WARN" />
-   <logger name="com.att.eelf.debug" level="debug" additivity="false">
-      <appender-ref ref="asyncEELFDebug" />
-   </logger>
-   <logger name="com.att.eelf.audit" level="info" additivity="false">
-      <appender-ref ref="asyncEELFAudit" />
-   </logger>
-   <logger name="com.att.eelf.metrics" level="info" additivity="false">
-      <appender-ref ref="asyncEELFMetrics" />
-   </logger>
-   <logger name="com.att.eelf.error" level="info" additivity="false">
-      <appender-ref ref="asyncEELFError" />
-   </logger>
-   <!-- Spring related loggers -->
-   <logger name="org.springframework" level="WARN" />
-   <logger name="org.springframework.beans" level="WARN" />
-   <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" />
-   <logger name="ajsc.ErrorMessageLookupService" level="WARN" />
-   <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet
-            logging) -->
-   <logger name="ajsc.utils" level="WARN" />
-   <logger name="ajsc.utils.DME2Helper" level="WARN" />
-   <logger name="ajsc.filters" level="WARN" />
-   <logger name="ajsc.beans.interceptors" level="WARN" />
-   <logger name="ajsc.restlet" level="WARN" />
-   <logger name="ajsc.servlet" level="WARN" />
-   <logger name="com.att" level="WARN" />
-   <logger name="com.att.ajsc.csi.logging" level="WARN" />
-   <logger name="com.att.ajsc.filemonitor" level="WARN" />
-   <!-- Other Loggers that may help troubleshoot -->
-   <logger name="net.sf" level="WARN" />
-   <logger name="org.apache.commons.httpclient" level="WARN" />
-   <logger name="org.apache.commons" level="WARN" />
-   <logger name="org.apache.coyote" level="WARN" />
-   <logger name="org.apache.jasper" level="WARN" />
-   <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging.
-            May aid in troubleshooting) -->
-   <logger name="org.apache.camel" level="WARN" />
-   <logger name="org.apache.cxf" level="WARN" />
-   <logger name="org.apache.camel.processor.interceptor" level="WARN" />
-   <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" />
-   <logger name="org.apache.cxf.service" level="WARN" />
-   <logger name="org.restlet" level="WARN" />
-   <logger name="org.apache.camel.component.restlet" level="WARN" />
-   <!-- logback internals logging -->
-   <logger name="ch.qos.logback.classic" level="INFO" />
-   <logger name="ch.qos.logback.core" level="INFO" />
-   <root level="INFO">
-      <appender-ref ref="asyncEELFDebug" />
-   </root>
-</configuration>
\ No newline at end of file
+       <!--<jmxConfigurator /> -->
+       <!-- directory path for all other type logs -->
+
+       <property name="logDir" value="/var/log/onap" />
+
+       <!-- <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" 
+               | "SDNC" | "AC" -->
+       <property name="componentName" value="AAI-UI"></property>
+
+       <!-- default eelf log file names -->
+       <property name="generalLogName" value="error" />
+       <property name="metricsLogName" value="metrics" />
+       <property name="auditLogName" value="audit" />
+       <property name="debugLogName" value="debug" />
+
+       <property name="errorLogPattern"
+               value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{RequestId}|%thread|AAIUI|%mdc{PartnerName}|%logger|%.-5level|%msg%n" />
+       <property name="auditMetricPattern" value="%m%n" />
+
+       <property name="logDirectory" value="${logDir}/${componentName}" />
+
+
+       <!-- Example evaluator filter applied against console appender -->
+       <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+               <encoder>
+                       <pattern>${errorLogPattern}</pattern>
+               </encoder>
+       </appender>
+
+       <!-- ============================================================================ -->
+       <!-- EELF Appenders -->
+       <!-- ============================================================================ -->
+
+       <!-- The EELFAppender is used to record events to the general application 
+               log -->
+
+       <appender name="EELF"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${logDirectory}/${generalLogName}.log</file>
+               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                       <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip
+                       </fileNamePattern>
+                       <maxHistory>60</maxHistory>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${errorLogPattern}</pattern>
+               </encoder>
+       </appender>
+       <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+               <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
+               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+                       <level>INFO</level>
+               </filter>
+               <queueSize>256</queueSize>
+               <appender-ref ref="EELF" />
+       </appender>
+
+
+       <!-- EELF Audit Appender. This appender is used to record audit engine related 
+               logging events. The audit logger and appender are specializations of the 
+               EELF application root logger and appender. This can be used to segregate 
+               Policy engine events from other components, or it can be eliminated to record 
+               these events as part of the application root log. -->
+
+       <appender name="EELFAudit"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${logDirectory}/${auditLogName}.log</file>
+               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                       <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip
+                       </fileNamePattern>
+                       <maxHistory>60</maxHistory>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${auditMetricPattern}</pattern>
+               </encoder>
+       </appender>
+       <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="EELFAudit" />
+       </appender>
+
+       <appender name="EELFMetrics"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${logDirectory}/${metricsLogName}.log</file>
+               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                       <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip
+                       </fileNamePattern>
+                       <maxHistory>60</maxHistory>
+               </rollingPolicy>
+               <encoder>
+                       <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n"</pattern> -->
+                       <pattern>${auditMetricPattern}</pattern>
+               </encoder>
+       </appender>
+
+
+       <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="EELFMetrics" />
+       </appender>
+
+       <appender name="EELFDebug"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${logDirectory}/${debugLogName}.log</file>
+               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                       <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.log.zip
+                       </fileNamePattern>
+                       <maxHistory>60</maxHistory>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${errorLogPattern}</pattern>
+               </encoder>
+       </appender>
+
+       <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="EELFDebug" />
+               <includeCallerData>false</includeCallerData>
+       </appender>
+
+       <!-- ============================================================================ -->
+       <!-- EELF loggers -->
+       <!-- ============================================================================ -->
+       <logger name="com.att.eelf" level="info" additivity="false">
+               <appender-ref ref="asyncEELF" />
+               <appender-ref ref="asyncEELFDebug" />
+       </logger>
+
+       <logger name="com.att.eelf.audit" level="info" additivity="false">
+               <appender-ref ref="asyncEELFAudit" />
+       </logger>
+       <logger name="com.att.eelf.metrics" level="info" additivity="false">
+               <appender-ref ref="asyncEELFMetrics" />
+       </logger>
+
+       <!-- Spring related loggers -->
+       <logger name="org.springframework" level="WARN" />
+       <logger name="org.springframework.beans" level="WARN" />
+       <logger name="org.springframework.web" level="WARN" />
+       <logger name="com.blog.spring.jms" level="WARN" />
+
+       <!-- Sparky loggers -->
+       <logger name="org.onap" level="INFO" />
+
+       <!-- Other Loggers that may help troubleshoot -->
+       <logger name="net.sf" level="WARN" />
+       <logger name="org.apache.commons.httpclient" level="WARN" />
+       <logger name="org.apache.commons" level="WARN" />
+       <logger name="org.apache.coyote" level="WARN" />
+       <logger name="org.apache.jasper" level="WARN" />
+
+       <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. 
+               May aid in troubleshooting) -->
+       <logger name="org.apache.camel" level="WARN" />
+       <logger name="org.apache.cxf" level="WARN" />
+       <logger name="org.apache.camel.processor.interceptor" level="WARN" />
+       <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" />
+       <logger name="org.apache.cxf.service" level="WARN" />
+       <logger name="org.restlet" level="WARN" />
+       <logger name="org.apache.camel.component.restlet" level="WARN" />
+
+       <!-- logback internals logging -->
+       <logger name="ch.qos.logback.classic" level="WARN" />
+       <logger name="ch.qos.logback.core" level="WARN" />
+
+       <root>
+               <appender-ref ref="asyncEELF" />
+               <!-- <appender-ref ref="asyncEELFDebug" /> -->
+       </root>
+
+</configuration>
@@ -1,9 +1,9 @@
-######################################################################################
-############################## eCOMP Portal properties ###############################
-######################################################################################
+################################################################################
+############################## Portal properties ###############################
+################################################################################
 
 # Java class that implements the ECOMP role and user mgt API
-portal.api.impl.class = org.openecomp.sparky.security.portal.PortalRestAPIServiceImpl
+portal.api.impl.class = org.onap.aai.sparky.security.portal.PortalRestAPIServiceImpl
 
 # Instance of ECOMP Portal where the app has been on-boarded
 # use insecure http for dev purposes to avoid self-signed certificate
@@ -20,4 +20,4 @@ csp_gate_keeper_prod_key = PROD
 # Toggles use of UEB
 ueb_listeners_enable = false
 # IDs application withing UEB flow
-ueb_app_key = qFKles9N8gDTV0Zc 
+ueb_app_key = qFKles9N8gDTV0Zc
index 0873fc1..a0e3308 100644 (file)
@@ -1,14 +1,14 @@
-##########################################################################################
-############################## eCOMP Portal Auth Properties ##############################
-##########################################################################################
-
-############################## Auth ##############################
-username=aaiui
-password=1t2v1vfv1unz1vgz1t3b
-
-##############################  ##############################
-#
-# ONAP Cookie Processing - During initial development, this flag, if true, will
-# prevent the portal interface's login processing from searching for a user
-# specific cookie, and will instead allow passage if a valid session cookie is discovered.
-onap_enabled=true
\ No newline at end of file
+#####################################################################################\r
+##############################  Portal Auth Properties ##############################\r
+#####################################################################################\r
+\r
+############################## Auth ##############################\r
+username={{.Values.config.portalUsername}}\r
+password={{.Values.config.portalPassword}}\r
+\r
+##############################  ##############################\r
+#\r
+# ONAP Cookie Processing - During initial development, this flag, if true, will\r
+# prevent the portal interface's login processing from searching for a user\r
+# specific cookie, and will instead allow passage if a valid session cookie is discovered.\r
+onap_enabled={{.Values.config.portalOnapEnabled}}\r
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/roles.config b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/roles.config
new file mode 100644 (file)
index 0000000..b8313bd
--- /dev/null
@@ -0,0 +1,6 @@
+[
+  {
+    "id":1,
+    "name":"View"
+  }
+]
\ No newline at end of file
index b8313bd..4d5d43e 100644 (file)
@@ -1,6 +1,6 @@
-[
-  {
-    "id":1,
-    "name":"View"
-  }
+[\r
+  {\r
+    "id":1,\r
+    "name":"View"\r
+  }\r
 ]
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestMappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestMappings.json
new file mode 100644 (file)
index 0000000..7857617
--- /dev/null
@@ -0,0 +1,10 @@
+{
+       "properties" : {
+               "entity_suggest" : {
+               "type" : "completion",
+                     "payloads" : true,
+                         "analyzer" : "custom_analyzer",
+                         "preserve_position_increments": false
+               }
+       }
+}
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestSettings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestSettings.json
new file mode 100644 (file)
index 0000000..4525be1
--- /dev/null
@@ -0,0 +1,21 @@
+{
+        "analysis": {
+               "filter": {
+                "eng_stop": {
+                    "type":       "stop",
+                    "stopwords": "_english_"
+                }
+            },
+               "analyzer": {
+                   "custom_analyzer": {
+                       "type": "custom",
+                       "tokenizer": "standard",
+                       "filter": [
+                               "lowercase",
+                           "asciifolding",
+                           "eng_stop"
+                       ]
+                   }
+               }
+       }
+   }
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/dynamicMappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/dynamicMappings.json
new file mode 100644 (file)
index 0000000..09a00ac
--- /dev/null
@@ -0,0 +1,14 @@
+{
+  "dynamic_templates": [
+       {
+         "strings": {
+               "match_mapping_type": "string",
+               "match": "*",
+               "mapping": {
+                 "type": "string",
+                 "index": "not_analyzed"
+               }
+         }
+       }
+  ]
+}
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/entityCountHistoryMappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/entityCountHistoryMappings.json
new file mode 100644 (file)
index 0000000..84e3aec
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "properties": {
+        "count": {
+           "type": "long"
+        },
+        "entityType": {
+            "type": "string",
+            "index": "not_analyzed"
+        },
+        "timestamp": {
+            "type": "date",
+            "format": "MMM d y HH:m:s||dd-MM-yyyy HH:mm:ss||yyyy-MM-dd'T'HH:mm:ss.SSSZZ||MM/dd/yyyy||yyyyMMdd'T'HHmmssZ"
+        }
+    }
+}
+
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_mappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_mappings.json
new file mode 100644 (file)
index 0000000..216e3d9
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "properties": {
+        "entityType": {
+            "type": "string",
+            "analyzer": "ngram_analyzer",
+            "search_analyzer": "ngram_analyzer"
+        },
+        "entityPrimaryKeyValue": {
+            "type": "string",
+            "index": "not_analyzed"
+        },
+        "searchTagIDs": {
+            "type": "string"
+        },
+        "searchTags": {
+            "type": "string",
+            "analyzer": "ngram_analyzer"
+        },
+        "crossEntityReferenceValues": {
+            "type": "string",
+            "analyzer": "ngram_analyzer"
+        },
+        "link": {
+            "type": "string",
+            "index": "not_analyzed"
+       },
+        "lastmodTimestamp": {
+            "type": "date",
+            "format": "MMM d y HH:m:s||dd-MM-yyyy HH:mm:ss||yyyy-MM-dd'T'HH:mm:ss.SSSZZ||yyyy-MM-dd HH:mm:ss||MM/dd/yyyy||yyyyMMdd'T'HHmmssZ"
+        }
+    }
+}
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_settings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_settings.json
new file mode 100644 (file)
index 0000000..21a357c
--- /dev/null
@@ -0,0 +1,36 @@
+{
+    "analysis": {
+        "filter": {
+            "ngram_filter": {
+                "type": "nGram",
+                "min_gram": 1,
+                "max_gram": 50,
+                "token_chars": [
+                    "letter",
+                    "digit",
+                    "punctuation",
+                    "symbol"
+                ]
+            }
+        },
+        "analyzer": {
+            "ngram_analyzer": {
+                "type": "custom",
+                "tokenizer": "whitespace",
+                "filter": [
+                    "lowercase",
+                    "asciifolding",
+                    "ngram_filter"
+                ]
+            },
+            "whitespace_analyzer": {
+                "type": "custom",
+                "tokenizer": "whitespace",
+                "filter": [
+                    "lowercase",
+                    "asciifolding"
+                ]
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/search-service.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/search-service.properties
deleted file mode 100644 (file)
index f280473..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-########################################################################################
-############################## Search Data Service Config ##############################
-########################################################################################
-
-############################## Networking ##############################
-#
-# The ip address/hostname and port to the desired Search Data Service instance
-#
-search-service.ipAddress=aai-search-data.{{.Release.Namespace}}
-search-service.httpPort=9509
-
-############################## Indexes ##############################
-#
-# Index values that will be associated with searches
-#
-# Searchable entities
-search-service.indexName=entitysearchindex
-# Inventory searches
-search-service.topographicalIndexName=topographicalsearchindex
-search-service.entityCountHistoryIndexName=entitycounthistoryindex
-
-############################## Version ##############################
-#
-# Search Data Service version and type (see Search Data Service for more details)
-#
-search-service.version=v1
-search-service.type=default
-
-############################## Certs ##############################
-search-service.ssl.cert-name=client-cert-onap.p12
-search-service.ssl.keystore-password=OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10
-search-service.ssl.keystore=tomcat_keystore
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-application.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-application.properties
new file mode 100644 (file)
index 0000000..b246676
--- /dev/null
@@ -0,0 +1,11 @@
+camel.springboot.name = SparkyCamelContext
+#camel.springboot.xmlRoutes = file:${CONFIG_HOME}/camel-routes/*.route
+camel.springboot.xmlRests = file:${CONFIG_HOME}/camel-rests/*.xml
+
+camel.component.servlet.mapping.context-path=/rest/*
+server.servlet.context-path=/services/aai/webapp/
+
+#
+#  attempt to externalize ui JS classes + resources
+#
+spring.resources.static-locations=file:${APP_HOME}/static/
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-http-config.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-http-config.properties
new file mode 100644 (file)
index 0000000..f81a597
--- /dev/null
@@ -0,0 +1 @@
+server.port = 9517
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-ssl-config.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-ssl-config.properties
new file mode 100644 (file)
index 0000000..b9e5d16
--- /dev/null
@@ -0,0 +1,3 @@
+server.port = 8000
+server.ssl.key-store=file:${CONFIG_HOME}/auth/tomcat_keystore
+server.ssl.key-alias=tomcat
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-aggregateVnfSearchProvider.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-aggregateVnfSearchProvider.xml
new file mode 100644 (file)
index 0000000..694ea1b
--- /dev/null
@@ -0,0 +1,33 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="
+         http://www.springframework.org/schema/beans
+         http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+         <bean id="aggregateVnfSearchProvider"
+            class="org.onap.aai.sparky.aggregatevnf.search.AggregateVnfSearchProvider">
+            <constructor-arg ref="searchServiceAdapter"/>
+            <constructor-arg name="autoSuggestIndexName" value="entityautosuggestindex"/>
+            <constructor-arg name="vnfSearchSuggestionRoute" value="vnfSearch"/>
+          </bean>
+
+          <bean id="aggregateSummaryProcessor"
+            class="org.onap.aai.sparky.aggregatevnf.search.AggregateSummaryProcessor">
+            <constructor-arg ref="elasticSearchAdapter"/>
+            <constructor-arg ref="filtersConfig"/>
+            <property name="vnfAggregationIndexName" value="aggregate_generic-vnf_index"/>
+          </bean>
+
+          <bean id="registerAggregateVnfSearchProvider"
+            class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+            <property name="targetObject" ref="searchProviderRegistry"/>
+            <property name="targetMethod">
+              <value>addSearchProviders</value>
+            </property>
+            <property name="arguments">
+              <list value-type="org.onap.aai.sparky.search.api.SearchProvider">
+                <ref bean="aggregateVnfSearchProvider"/>
+              </list>
+            </property>
+          </bean>
+</beans>
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-apigw.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-apigw.xml
new file mode 100644 (file)
index 0000000..8b5f277
--- /dev/null
@@ -0,0 +1,31 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="synapseRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig">
+               <property name="endpointIpAddress" value="aai.synapse.simpledemo.openecomp.org" />
+               <property name="endpointServerPort" value="9502" />
+               <property name="numRequestRetries" value="5" />
+               <property name="restAuthenticationMode" value="SSL_CERT" />
+               <property name="connectTimeoutInMs" value="60000" />
+               <property name="readTimeoutInMs" value="30000" />
+               <property name="certFileName" value="/auth/client-cert-onap.p12" />
+               <property name="certPassword" value="OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10" />
+               <property name="truststoreFileName" value="/auth/inventory-ui-keystore" />
+               <property name="validateServerCertChain" value="false" />
+               <property name="validateServerHostname" value="false" />
+               <property name="resourceLoader" ref="sparkyResourceLoader" />
+               
+       </bean>
+
+       <bean id="aaiuiProxyProcessor"
+               class="org.onap.aai.sparky.dal.proxy.processor.AaiUiProxyProcessor">
+               <constructor-arg ref="synapseRestEndpointConfig" />
+               <constructor-arg name="apiGatewayEndpoint" value="ui-request" />
+       </bean>
+
+</beans>
+
+
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-gizmo.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-gizmo.xml
new file mode 100644 (file)
index 0000000..dedd7e2
--- /dev/null
@@ -0,0 +1,29 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="gizmoRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig">
+               <property name="endpointIpAddress" value="{{.Values.global.gizmo.serviceName}}.{{.Release.Namespace}}" />
+               <property name="endpointServerPort" value="9520" />
+               <property name="numRequestRetries" value="5" />
+               <property name="restAuthenticationMode" value="SSL_CERT" />
+               <property name="connectTimeoutInMs" value="60000" />
+               <property name="readTimeoutInMs" value="30000" />
+               <property name="certFileName" value="/auth/client-cert-onap.p12" />
+               <property name="certPassword" value="OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10" />
+               <property name="truststoreFileName" value="/auth/inventory-ui-keystore" />
+               <property name="validateServerCertChain" value="false" />
+               <property name="validateServerHostname" value="false" />
+               <property name="resourceLoader" ref="sparkyResourceLoader" />
+       </bean>
+
+       <bean id="gizmoAdapter" class="org.onap.aai.sparky.dal.GizmoAdapter">
+               <constructor-arg ref="oxmModelLoader" />
+               <constructor-arg ref="gizmoRestEndpointConfig" />
+               <property name="relationshipsBasePath" value="/services/inventory/relationships/v13/" />
+               <property name="inventoryBasePath" value="/services/inventory/v13/" />
+       </bean>
+
+</beans>               
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-sync.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-sync.xml
new file mode 100644 (file)
index 0000000..0763f94
--- /dev/null
@@ -0,0 +1,373 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="elasticSearchSchemaFactory" class="org.onap.aai.sparky.sync.ElasticSearchSchemaFactory">
+               <property name="resourceLoader" ref="sparkyResourceLoader" />
+       </bean> 
+
+
+    <bean id="elasticSearchRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig">
+       <property name="endpointIpAddress" value="{{.Values.global.aaiElasticsearch.serviceName}}.{{.Release.Namespace}}" />
+       <property name="endpointServerPort" value="9200" />
+       <property name="numRequestRetries" value="5" />
+       <property name="restAuthenticationMode" value="HTTP_NOAUTH" />
+       <property name="connectTimeoutInMs" value="60000" />
+       <property name="readTimeoutInMs" value="30000" />
+    </bean>
+              
+       <bean id="elasticSearchAdapter" class="org.onap.aai.sparky.dal.ElasticSearchAdapter">
+               <constructor-arg ref="elasticSearchRestEndpointConfig" />
+       </bean>
+
+       <bean id="elasticSearchNetworkStatConfig" class="org.onap.aai.sparky.sync.config.NetworkStatisticsConfig">
+               <property name="numSamplesPerThreadForRunningAverage" value="100" />
+               <property name="bytesHistogramLabel" value="[Response Size In Bytes]" />
+               <property name="bytesHistogramMaxYAxis" value="1000000" />
+               <property name="bytesHistogramNumBins" value="20" />
+               <property name="bytesHistogramNumDecimalPoints" value="2" />
+               <property name="queueLengthHistogramLabel" value="[Queue Item Length]" />
+               <property name="queueLengthHistogramMaxYAxis" value="20000" />
+               <property name="queueLengthHistogramNumBins" value="20" />
+               <property name="queueLengthHistogramNumDecimalPoints" value="2" />
+               <property name="taskAgeHistogramLabel" value="[Task Age In Ms]" />
+               <property name="taskAgeHistogramMaxYAxis" value="600000" />
+               <property name="taskAgeHistogramNumBins" value="20" />
+               <property name="taskAgeHistogramNumDecimalPoints" value="2" />
+               <property name="responseTimeHistogramLabel" value="[Response Time In Ms]" />
+               <property name="responseTimeHistogramMaxYAxis" value="1000" />
+               <property name="responseTimeHistogramNumBins" value="20" />
+               <property name="responseTimeHistogramNumDecimalPoints" value="2" />
+               <property name="tpsHistogramLabel" value="[Transactions Per Second]" />
+               <property name="tpsHistogramMaxYAxis" value="100" />
+               <property name="tpsHistogramNumBins" value="20" />
+               <property name="tpsHistogramNumDecimalPoints" value="2" />
+       </bean>
+
+       <bean id="aaiNetworkStatConfig" class="org.onap.aai.sparky.sync.config.NetworkStatisticsConfig">
+               <property name="numSamplesPerThreadForRunningAverage" value="100" />
+               <property name="bytesHistogramLabel" value="[Response Size In Bytes]" />
+               <property name="bytesHistogramMaxYAxis" value="1000000" />
+               <property name="bytesHistogramNumBins" value="20" />
+               <property name="bytesHistogramNumDecimalPoints" value="2" />
+               <property name="queueLengthHistogramLabel" value="[Queue Item Length]" />
+               <property name="queueLengthHistogramMaxYAxis" value="20000" />
+               <property name="queueLengthHistogramNumBins" value="20" />
+               <property name="queueLengthHistogramNumDecimalPoints" value="2" />
+               <property name="taskAgeHistogramLabel" value="[Task Age In Ms]" />
+               <property name="taskAgeHistogramMaxYAxis" value="600000" />
+               <property name="taskAgeHistogramNumBins" value="20" />
+               <property name="taskAgeHistogramNumDecimalPoints" value="2" />
+               <property name="responseTimeHistogramLabel" value="[Response Time In Ms]" />
+               <property name="responseTimeHistogramMaxYAxis" value="10000" />
+               <property name="responseTimeHistogramNumBins" value="20" />
+               <property name="responseTimeHistogramNumDecimalPoints" value="2" />
+               <property name="tpsHistogramLabel" value="[Transactions Per Second]" />
+               <property name="tpsHistogramMaxYAxis" value="100" />
+               <property name="tpsHistogramNumBins" value="20" />
+               <property name="tpsHistogramNumDecimalPoints" value="2" />
+       </bean>
+
+    <bean id="aaiRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig">
+       <property name="endpointIpAddress" value="{{.Values.global.aai.serviceName}}" />
+       <property name="endpointServerPort" value="8443" />
+       <property name="numRequestRetries" value="5" />
+       <property name="restAuthenticationMode" value="SSL_BASIC" />
+       <property name="connectTimeoutInMs" value="60000" />
+       <property name="readTimeoutInMs" value="30000" />
+       <property name="basicAuthUserName" value="AaiUI" />
+       <property name="basicAuthPassword" value="OBF:1gfr1p571unz1p4j1gg7" />
+       <property name="truststoreFileName" value="/auth/inventory-ui-keystore" />
+       <property name="validateServerCertChain" value="false" />
+       <property name="validateServerHostname" value="false" />
+       <property name="resourceLoader" ref="sparkyResourceLoader" />
+    </bean>
+
+       <bean id="activeInventoryAdapter" class="org.onap.aai.sparky.dal.ActiveInventoryAdapter">
+               <constructor-arg ref="oxmModelLoader" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="aaiRestEndpointConfig" />
+       </bean>
+
+       <bean id="syncControllerRegistry" class="org.onap.aai.sparky.sync.SyncControllerRegistry" />
+
+       <bean id="elasticSearchEndpointConfig"
+               class="org.onap.aai.sparky.sync.config.ElasticSearchEndpointConfig">
+               <property name="esIpAddress" value="{{.Values.global.aaiElasticsearch.serviceName}}.{{.Release.Namespace}}" />
+               <property name="esServerPort" value="9200" />
+               <property name="scrollContextTimeToLiveInMinutes" value="5" />
+               <property name="scrollContextBatchRequestSize" value="5000" />
+       </bean>
+       
+       <bean id="aggregationSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+               <property name="controllerName" value="Aggregation-Sync-Controller" />
+               <property name="enabled" value="true" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="aggregationSyncControllerFactory"
+               class="org.onap.aai.sparky.aggregation.sync.AggregationSyncControllerFactory"
+               init-method="registerController">
+
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="aggregationSyncControllerConfig" />
+               <constructor-arg ref="syncControllerRegistry" />
+               <constructor-arg ref="suggestionEntityLookup" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+               <property name="esAdapter" ref="elasticSearchAdapter" />
+               <property name="esStatConfig" ref="elasticSearchNetworkStatConfig" />
+
+               <property name="aaiAdapter" ref="activeInventoryAdapter" />
+               <property name="aaiStatConfig" ref="aaiNetworkStatConfig" />
+
+               <property name="aggregationEntityToIndexMap">
+                       <map>
+                               <entry key="generic-vnf" value="aggregate_generic-vnf_index" />
+                       </map>
+               </property>
+
+               <property name="indexNameToSchemaConfigMap">
+                       <map>
+                               <entry key="aggregate_generic-vnf_index">
+                                       <bean class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+                                               <property name="indexName" value="aggregate_generic-vnf_index" />
+                                               <property name="indexDocType" value="default" />
+                                               <property name="indexMappingsFileName" value="/schemas/dynamicMappings.json" />
+                                       </bean>
+                               </entry>
+                       </map>
+               </property>
+
+       </bean>
+
+
+       <bean id="historicalEntitySyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+
+               <property name="controllerName" value="Historical-Entity-Sync-Controller" />
+               <property name="enabled" value="true" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="historicalEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+               <property name="indexName" value="entitycounthistoryindex" />
+               <property name="indexDocType" value="default" />
+               <property name="indexMappingsFileName" value="/schemas/entityCountHistoryMappings.json" />
+               <property name="indexSettingsFileName" value="/schemas/es_settings.json" />
+       </bean>
+
+       <bean id="historicalEntitySyncController"
+               class="org.onap.aai.sparky.aggregation.sync.HistoricalEntitySyncController"
+               init-method="registerController">
+
+               <constructor-arg ref="historicalEntitySyncControllerConfig" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="historicalEntitySchemaConfig" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg value="60" />
+               <constructor-arg ref="aaiNetworkStatConfig" />
+               <constructor-arg ref="elasticSearchNetworkStatConfig" />
+               <constructor-arg ref="searchableEntityLookup" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+               <property name="syncControllerRegistry" ref="syncControllerRegistry" />
+
+       </bean>
+       
+       
+       
+       <bean id="autoSuggestionSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+
+               <property name="controllerName" value="Auto-Suggestion-Sync-Controller" />
+               <property name="enabled" value="true" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="autoSuggestionEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+               <property name="indexName" value="entityautosuggestindex" />
+               <property name="indexDocType" value="default" />
+               <property name="indexMappingsFileName" value="/schemas/autoSuggestMappings.json" />
+               <property name="indexSettingsFileName" value="/schemas/autoSuggestSettings.json" />
+       </bean>
+
+       <bean id="autoSuggestionEntitySyncController"
+               class="org.onap.aai.sparky.autosuggestion.sync.AutoSuggestionSyncController"
+               init-method="registerController">
+
+               <constructor-arg ref="autoSuggestionSyncControllerConfig" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="autoSuggestionEntitySchemaConfig" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="aaiNetworkStatConfig" />
+               <constructor-arg ref="elasticSearchNetworkStatConfig" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="suggestionEntityLookup" />
+               <constructor-arg ref="filtersConfig" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+               <property name="syncControllerRegistry" ref="syncControllerRegistry" />
+
+       </bean>
+       
+       
+       
+       <bean id="vnfAliasSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+
+               <property name="controllerName" value="Vnf-Alias-Sync-Controller" />
+               <property name="enabled" value="true" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="vnfAliasEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+               <property name="indexName" value="entityautosuggestindex" />
+               <property name="indexDocType" value="default" />
+               <property name="indexMappingsFileName" value="/schemas/autoSuggestMappings.json" />
+               <property name="indexSettingsFileName" value="/schemas/autoSuggestSettings.json" />
+       </bean>
+
+       <bean id="vnfAliasSyncController"
+               class="org.onap.aai.sparky.autosuggestion.sync.VnfAliasSyncController"
+               init-method="registerController">
+
+               <constructor-arg ref="vnfAliasSyncControllerConfig" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="vnfAliasEntitySchemaConfig" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="aaiNetworkStatConfig" />
+               <constructor-arg ref="elasticSearchNetworkStatConfig" />
+               <constructor-arg ref="filtersConfig" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+               <property name="syncControllerRegistry" ref="syncControllerRegistry" />
+
+       </bean>
+       
+       <bean id="geoSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+
+               <property name="controllerName" value="Geo-Sync-Controller" />
+               <property name="enabled" value="true" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="geoEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+               <property name="indexName" value="topographicalsearchindex" />
+               <property name="indexDocType" value="default" />
+               <property name="indexMappingsFileName" value="/schemas/dynamicMappings.json" />
+       </bean>
+
+       <bean id="geoSyncController"
+               class="org.onap.aai.sparky.topology.sync.GeoSyncController"
+               init-method="registerController">
+
+               <constructor-arg ref="geoSyncControllerConfig" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="geoEntitySchemaConfig" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="aaiNetworkStatConfig" />
+               <constructor-arg ref="elasticSearchNetworkStatConfig" />
+               <constructor-arg ref="geoEntityLookup" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+               <property name="syncControllerRegistry" ref="syncControllerRegistry" />
+
+       </bean>
+       
+       <bean id="viewInspectControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig">
+
+               <property name="controllerName" value="View-Inspect-Sync-Controller" />
+               <property name="enabled" value="true" />
+               <property name="syncTaskDelayInMs" value="5000" />
+               <property name="syncTaskFrequencyInDays" value="1" />
+               <property name="numSyncControllerWorkers" value="2" />
+               <property name="runOnceSyncEnabled" value="true" />
+               <property name="periodicSyncEnabled" value="false" />
+               <property name="numInternalSyncWorkers" value="2" />
+               <property name="numSyncElasticWorkers" value="5" />
+               <property name="numSyncActiveInventoryWorkers" value="5" />
+               <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" />
+       </bean>
+
+       <bean id="viewInspectySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig">
+               <property name="indexName" value="entitysearchindex" />
+               <property name="indexDocType" value="default" />
+               <property name="indexMappingsFileName" value="/schemas/es_mappings.json" />
+               <property name="indexSettingsFileName" value="/schemas/es_settings.json" />
+       </bean>
+
+
+       <bean id="viewInspectSyncController"
+               class="org.onap.aai.sparky.viewinspect.sync.ViewInspectSyncController"
+               init-method="registerController">
+
+               <constructor-arg ref="viewInspectControllerConfig" />
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="viewInspectySchemaConfig" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="aaiNetworkStatConfig" />
+               <constructor-arg ref="elasticSearchNetworkStatConfig" />
+               <constructor-arg ref="crossEntityReferenceLookup" />
+               <constructor-arg ref="oxmEntityLookup" />
+               <constructor-arg ref="searchableEntityLookup" />
+               <constructor-arg ref="elasticSearchSchemaFactory" />
+
+               <property name="syncControllerRegistry" ref="syncControllerRegistry" />
+
+       </bean>
+
+       <bean id="syncControllerService" class="org.onap.aai.sparky.sync.SyncControllerService"
+               destroy-method="shutdown">
+               <constructor-arg ref="syncControllerRegistry" />
+               <constructor-arg value="5" />
+               <constructor-arg value="5" />
+       </bean>
+
+</beans>               
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspect.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspect.xml
new file mode 100644 (file)
index 0000000..c146e6e
--- /dev/null
@@ -0,0 +1,55 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+       <bean id="visualizationConfigurations"
+               class="org.onap.aai.sparky.viewandinspect.config.VisualizationConfigs">
+               <property name="maxSelfLinkTraversalDepth" value="2" />
+               <property name="visualizationDebugEnabled" value="false" />
+               <property name="aaiEntityNodeDescriptors" value="/descriptors/aaiEntityNodeDescriptors.json" />
+               <property name="generalNodeClassName" value="generalNodeClass" />
+               <property name="searchNodeClassName" value="searchedNodeClass" />
+               <property name="selectedSearchedNodeClassName" value="selectedSearchedNodeClass" />
+               <property name="numOfThreadsToFetchNodeIntegrity" value="20" />
+               <property name="makeAllNeighborsBidirectional" value="false" />
+               <property name="gizmoEnabled" value="false" />
+               <property name="resourceLoader" ref="sparkyResourceLoader" />
+
+               <property name="shallowEntities">
+                       <list value-type="java.lang.String">
+                               <value>cloud-region</value>
+                               <value>complex</value>
+                               <value>vnf-image</value>
+                               <value>image</value>
+                               <value>flavor</value>
+                               <value>availability-zone</value>
+                               <value>tenant</value>
+                               <value>network-profile</value>
+                               <value>l-interface</value>
+                       </list>
+               </property>
+
+       </bean>
+
+       <bean id="baseVisualizationService"
+               class="org.onap.aai.sparky.viewandinspect.services.BaseVisualizationService">
+               <constructor-arg ref="oxmModelLoader"/>
+               <constructor-arg ref="visualizationConfigurations"/> 
+               <constructor-arg ref="activeInventoryAdapter" />
+               <constructor-arg ref="gizmoAdapter" />
+               <constructor-arg ref="elasticSearchAdapter" />
+               <constructor-arg ref="elasticSearchEndpointConfig" />
+               <constructor-arg ref="viewInspectySchemaConfig" />
+               <constructor-arg name="numActiveInventoryWorkers" value="50" />
+               <constructor-arg ref="oxmEntityLookup" />
+        <constructor-arg ref="subscriptionConfig" />
+       </bean>
+
+       <bean id="schemaVisualizationProcessor"
+               class="org.onap.aai.sparky.viewandinspect.SchemaVisualizationProcessor">
+               <property name="visualizationService" ref="baseVisualizationService" />
+       </bean>
+
+</beans>               
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspectSearchProvider.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspectSearchProvider.xml
new file mode 100644 (file)
index 0000000..072c935
--- /dev/null
@@ -0,0 +1,34 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+                                <bean id="viewInspectSearchProvider"
+                               class="org.onap.aai.sparky.viewandinspect.search.ViewInspectSearchProvider">
+                               <constructor-arg ref="searchServiceAdapter" />
+                               <constructor-arg ref="suggestiveSearchConfigs" />
+                               <constructor-arg name="viewInspectIndexName" value="entitysearchindex" />
+                               <constructor-arg name="viewInspectSuggestionRoute" value="schema" />
+                               <constructor-arg ref="oxmEntityLookup" />
+
+                               <property name="additionalSearchSuggestionText">
+                                       <value>Schema</value>
+                               </property>
+
+                       </bean>
+
+                       <bean id="registerViewInspectSearchProvider"
+                               class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+                               <property name="targetObject" ref="searchProviderRegistry" />
+                               <property name="targetMethod">
+                                       <value>addSearchProviders</value>
+                               </property>
+                               <property name="arguments">
+                                       <list value-type="org.onap.aai.sparky.search.api.SearchProvider">
+                                               <ref bean="viewInspectSearchProvider" />
+                                       </list>
+                               </property>
+                       </bean>
+
+</beans>
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core.xml
new file mode 100644 (file)
index 0000000..8f5d42d
--- /dev/null
@@ -0,0 +1,241 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+              http://www.springframework.org/schema/beans
+              http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+                                <bean id="searchServiceRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig">
+                                       <property name="endpointIpAddress" value="{{.Values.global.searchData.serviceName}}.{{.Release.Namespace}}" />
+                                       <property name="endpointServerPort" value="9509" />
+                                       <property name="numRequestRetries" value="5" />
+                                       <property name="restAuthenticationMode" value="SSL_CERT" />
+                                       <property name="connectTimeoutInMs" value="60000" />
+                                       <property name="readTimeoutInMs" value="30000" />
+                                       <property name="certFileName" value="/auth/client-cert-onap.p12" />
+                                       <property name="certPassword" value="OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10" />
+                                       <property name="truststoreFileName" value="/auth/inventory-ui-keystore" />
+                                       <property name="validateServerCertChain" value="false" />
+                                       <property name="validateServerHostname" value="false" />
+                                       <property name="resourceLoader" ref="sparkyResourceLoader" />
+                               </bean>
+
+                               <bean id="searchServiceAdapter" class="org.onap.aai.sparky.search.SearchServiceAdapter">
+                                       <constructor-arg ref="searchServiceRestEndpointConfig" />
+                                       <constructor-arg name="serviceApiVersion" value="v1" />
+                               </bean>
+
+                               <bean id="filtersConfig" class="org.onap.aai.sparky.search.filters.config.FiltersConfig">
+                                       <constructor-arg name="filtersFileName" value="/filters/aaiui_filters.json" />
+                                       <constructor-arg name="viewsFileName" value="/filters/aaiui_views.json" />
+                                       <constructor-arg name="resourceLoader" ref="sparkyResourceLoader" />
+                               </bean>
+
+                               <bean id="crossEntityReferenceLookup"
+                                       class="org.onap.aai.sparky.config.oxm.CrossEntityReferenceLookup" />
+
+                               <bean id="geoEntityLookup" class="org.onap.aai.sparky.config.oxm.GeoEntityLookup" />
+
+                               <bean id="oxmEntityLookup" class="org.onap.aai.sparky.config.oxm.OxmEntityLookup" />
+
+                               <bean id="searchableEntityLookup" class="org.onap.aai.sparky.config.oxm.SearchableEntityLookup" />
+
+                               <bean id="suggestionEntityLookup" class="org.onap.aai.sparky.config.oxm.SuggestionEntityLookup">
+                                       <constructor-arg ref="filtersConfig" />
+                               </bean>
+
+                               <bean id="oxmModelProcessorSet" class="org.springframework.beans.factory.config.SetFactoryBean">
+                                       <property name="targetSetClass" value="java.util.HashSet" />
+                                       <property name="sourceSet">
+                                               <set>
+                                                       <ref bean="crossEntityReferenceLookup" />
+                                                       <ref bean="geoEntityLookup" />
+                                                       <ref bean="oxmEntityLookup" />
+                                                       <ref bean="searchableEntityLookup" />
+                                                       <ref bean="suggestionEntityLookup" />
+                                               </set>
+                                       </property>
+                               </bean>
+
+                               <bean id="oxmModelLoader" class="org.onap.aai.sparky.config.oxm.OxmModelLoader" init-method="loadLatestOxmModel">
+                                       <!-- the int argument is the latestVersionOverride.  -1 disables the override -->
+                                       <constructor-arg type="int" value="-1" />
+                                       <constructor-arg ref="oxmModelProcessorSet" />
+                               </bean>
+
+                               <bean id="searchProviderRegistry"
+                                       class="org.onap.aai.sparky.search.registry.SearchProviderRegistry" />
+
+                               <bean id="sparkyResourceLoader" class="org.onap.aai.sparky.config.SparkyResourceLoader">
+                                  <property name="configHomeEnvVar" value="CONFIG_HOME" />
+                               </bean> 
+
+                               <bean id="filterElasticSearchAdapter"
+                                       class="org.onap.aai.sparky.search.filters.FilterElasticSearchAdapter">
+                                       <constructor-arg ref="elasticSearchAdapter" />
+                               </bean>
+
+                               <bean id="filteredSearchHelper" class="org.onap.aai.sparky.search.filters.FilteredSearchHelper" >
+                                       <constructor-arg ref="filtersConfig" />
+                                       <constructor-arg ref="filterElasticSearchAdapter" />
+                               </bean>
+
+                               <bean id="filterProcessor" class="org.onap.aai.sparky.search.filters.FilterProcessor" >
+                                       <property name="filteredSearchHelper" ref="filteredSearchHelper" />
+                               </bean>
+
+                               <bean id="unifiedSearchProcessor" class="org.onap.aai.sparky.search.UnifiedSearchProcessor">
+                                       <property name="searchProviderRegistry" ref="searchProviderRegistry" />
+                               </bean>
+
+                               <bean id="entityCountHistoryProcessor" class="org.onap.aai.sparky.search.EntityCountHistoryProcessor">
+                                       <constructor-arg ref="elasticSearchAdapter" />
+                                       <constructor-arg name="entityTypesToSummarizeDelimitedList"
+                                               value="customer,service-instance,complex,pserver,vserver,vnf" />
+                                       <constructor-arg name="vnfEntityTypesDelimitedList"
+                                               value="vnf,newvce,vce,vpe" />
+                                       <constructor-arg name="entityCountHistoryIndexName"
+                                               value="entitycounthistoryindex" />
+                               </bean>
+
+                               <bean id="attributeUpdater"
+                                class="org.onap.aai.sparky.editattributes.AttributeUpdater">
+                                <constructor-arg ref="oxmModelLoader" />
+                                <constructor-arg ref="oxmEntityLookup" />
+                                <constructor-arg ref="activeInventoryAdapter" />
+                            </bean>
+
+                            <bean id="attributeEditProcessor"
+                                class="org.onap.aai.sparky.editattributes.AttributeEditProcessor">
+                                <constructor-arg ref="attributeUpdater" />
+                            </bean>
+
+                           <bean id="geoVisualizationProcessor" class="org.onap.aai.sparky.inventory.GeoVisualizationProcessor">
+                                       <constructor-arg ref="elasticSearchAdapter" />
+                                       <constructor-arg name="topographicalSearchIndexName"
+                                               value="topographicalsearchindex" />
+                               </bean>
+
+                            <bean id = "pairingHashMap" class="org.springframework.beans.factory.config.MapFactoryBean">
+                                                       <property name="targetMapClass">
+                                                               <value>java.util.HashMap</value>
+                                                       </property>
+                                                       <property name="sourceMap">
+                                                               <map key-type="java.lang.String" value-type="java.lang.String" >
+                                                                       <entry key="volume-group-id" value="called" />
+                                                                       <entry key="volume-group-name" value="called" />
+                                                                       <entry key="physical-location-id" value="called" />
+                                                                       <entry key="data-center-code" value="called" />
+                                                                       <entry key="complex-name" value="called" />
+                                                                       <entry key="tenant-id" value="called" />
+                                                                       <entry key="tenant-name" value="called" />
+                                                                       <entry key="vserver-id" value="called" />
+                                                                       <entry key="vserver-name" value="called" />
+                                                                       <entry key="vserver-name2" value="called" />
+                                                                       <entry key="hostname" value="called" />
+                                                                       <entry key="pserver-name2" value="called" />
+                                                                       <entry key="pserver-id" value="called" />
+                                                                       <entry key="global-customer-id" value="called" />
+                                                                       <entry key="subscriber-name" value="called" />
+                                                                       <entry key="service-instance-id" value="called" />
+                                                                       <entry key="service-instance-name" value="called" />
+                                                                       <entry key="link-name" value="called" />
+                                                                       <entry key="vpn-id" value="called" />
+                                                                       <entry key="vpn-name" value="called" />
+                                                                       <entry key="vpe-id" value="called" />
+                                                                       <entry key="vnf-id" value="called" />
+                                                                       <entry key="vnf-name" value="called" />
+                                                                       <entry key="vnf-name2" value="called" />
+                                                                       <entry key="vnfc-name" value="called" />
+                                                                       <entry key="network-id" value="called" />
+                                                                       <entry key="network-name" value="called" />
+                                                                       <entry key="network-policy-id" value="called" />
+                                                                       <entry key="vf-module-id" value="called" />
+                                                                       <entry key="vf-module-name" value="called" />
+                                                                       <entry key="vnf-id2" value="called" />
+                                                                       <entry key="pnf-name" value="called" />
+                                                                       <entry key="circuit-id" value="called" />
+                                                                       <entry key="id" value="called" />
+                                                                       <entry key="group-id" value="called" />
+                                                                       <entry key="group-name" value="called" />
+                                                                       <entry key="street1" value="at" />
+                                                                       <entry key="street2" value="at" />
+                                                                       <entry key="code" value="at" />
+                                                                       <entry key="ipv4-oam-address" value="at" />
+                                                                       <entry key="network-policy-fqdn" value="at" />
+                                                               </map>
+                                                       </property>
+                               </bean>
+
+                            <bean id="suggestiveSearchConfigs" class="org.onap.aai.sparky.search.config.SuggestionConfig">
+                                       <property name="defaultPairingValue" value="with" />
+                                       <property name="pairingList" ref="pairingHashMap"></property>
+                                       <property name="stopWords">
+                                               <list value-type="java.lang.String">
+                                                       <value>a</value>
+                                                       <value>an</value>
+                                                       <value>and</value>
+                                                       <value>are</value>
+                                                       <value>as</value>
+                                                       <value>at</value>
+                                                       <value>be</value>
+                                                       <value>but</value>
+                                                       <value>by</value>
+                                                       <value>called</value>
+                                                       <value>for</value>
+                                                       <value>if</value>
+                                                       <value>in</value>
+                                                       <value>into</value>
+                                                       <value>is</value>
+                                                       <value>it</value>
+                                                       <value>no</value>
+                                                       <value>not</value>
+                                                       <value>of</value>
+                                                       <value>on</value>
+                                                       <value>or</value>
+                                                       <value>such</value>
+                                                       <value>that</value>
+                                                       <value>the</value>
+                                                       <value>their</value>
+                                                       <value>then</value>
+                                                       <value>there</value>
+                                                       <value>these</value>
+                                                       <value>they</value>
+                                                       <value>this</value>
+                                                       <value>to</value>
+                                                       <value>was</value>
+                                                       <value>will</value>
+                                                       <value>with</value>
+                                               </list>
+                                       </property>
+
+                            </bean>
+
+                                        <bean id="subscriptionConfig"
+                     class="org.onap.aai.sparky.subscription.config.SubscriptionConfig">
+                     <property name="subscriptionTarget" value="" />
+                     <property name="subscriptionOrigin" value="" />
+                     <property name="subscriptionMessageType" value="" />
+                     <property name="subscriptionTopic" value="" />
+                     <property name="launchOITarget" value="" />
+                     <property name="launchOIOrigin" value="" />
+                     <property name="launchOIMessageType" value="" />
+                     <property name="launchOITopic" value="" />
+                                                                                <property name="annEntitiyTypes">
+                                                                                        <list value-type="java.lang.String">
+                                                                                                <value>pserver</value>
+                                                                                                <value>pnf</value>
+                                                                                        </list>
+                                                                        </property>
+                                                                        <property name="isLaunchOIEnabled" value="false" />
+            </bean>
+
+            <bean id="subscriptionService"
+                     class="org.onap.aai.sparky.subscription.services.SubscriptionService">
+                     <constructor-arg ref="subscriptionConfig" />
+            </bean>
+
+            <bean id="subscriptionServiceProcessor"
+                     class="org.onap.aai.sparky.subscription.SubscriptionServiceProcessor">
+                     <constructor-arg ref="subscriptionService" />
+            </bean>
+</beans>
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/suggestive-search.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/suggestive-search.properties
deleted file mode 100644 (file)
index b82baff..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-######################################################################################
-############################## Suggestive Search Config ##############################
-######################################################################################
-
-# Indexes to be taken into account when generating suggestion entries
-suggestion.indexes=elasticsearch.autosuggestIndexname,elasticsearch.indexName
-# List of stop words to be used during suggestive search
-suggestion.stopwords=a,an,and,are,as,at,be,but,by,called,for,if,in,into,is,it,no,not,of,on,or,such,that,the,their,then,there,these,they,this,to,was,will,with
-# Assigns which class, within sparky, will process the searches related to an assosiated index
-suggestion.routing=elasticsearch.autosuggestIndexname:SearchServiceWrapper,elasticsearch.indexName:VnfSearchService
-
-############################## Pairings ##############################
-#
-# "called" pairings, keys reference types within the OXM, and the value
-# is the suggestion term used for matches with any of the "called" keys.
-# e.g. "x called vserver-id" (but actual value of vserver-id)
-suggestion.pairing.called.key=volume-group-id,volume-group-name,physical-location-id,data-center-code,complex-name,tenant-id,tenant-name,vserver-id,vserver-name,vserver-name2,hostname,pserver-name2,pserver-id,global-customer-id,subscriber-name,service-instance-id,service-instance-name,link-name,vpn-id,vpn-name,vpe-id,vnf-id,vnf-name,vnf-name2,vnfc-name,network-id,network-name,network-policy-id,vf-module-id,vf-module-name,vnf-id2,pnf-name,circuit-id
-suggestion.pairing.called.value=called
-#
-# Exact same explanation as the "called" pairings above.
-# e.g. "x at ipv4-oam-address"
-suggestion.pairing.at.key=street1,street2,postal-code,ipv4-oam-address,network-policy-fqdn
-suggestion.pairing.at.value=at
-#
-# Default pairing values for any OXM types that aren't part of the the other
-# pairing lists.
-suggestion.pairing.default.value=with
\ No newline at end of file
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/synchronizer.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/synchronizer.properties
deleted file mode 100644 (file)
index 0b84f06..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-##############################################################################################
-############################## ElasticSearchSynchronizer Config ##############################
-##############################################################################################
-
-# Initial delay on startup before starting synchronization tasks
-synchronizer.syncTask.initialDelayInMs=60000
-# The frequency at which the synchronizationtask will be run
-synchronizer.syncTask.taskFrequencyInDay=2
-
-# Time at which to run synchronization. Format = hh:mm:ss UTC(-/+)hh:mm
-synchronizer.syncTask.startTimestamp=05:00:00 UTC+00:00
-
-# Generates a count in elasticsearch related to inventory
-synchronizer.historicalEntitySummarizerEnabled=true
-# Toggles the suggestion synchronizer
-synchronizer.autosuggestSynchronizationEnabled=true
-# Frequency at which above count is generated
-synchronizer.historicalEntitySummarizedFrequencyInMinutes=60
-
-# Elasticsearch scroll api context keep alive value
-synchronizer.scrollContextTimeToLiveInMinutes=5
-# Elasticsearch scroll api context max items per batch request
-synchronizer.numScrollContextItemsToRetrievePerRequest=5000
-
-
-############################## Deprecated, to be removed or updated ##############################
-synchronizer.resolver.progressLogFrequencyInMs=60000
-synchronizer.resolver.queueMonitorFrequencyInMs=1000
-synchronizer.resolver.displayVerboseQueueManagerStats=false
-synchronizer.indexIntegrityValidator.enabled=false
-synchronizer.indexIntegrityValidatorFrequencyInMs=3600000
-synchronizer.suppressResourceNotFoundErrors=true
-synchronizer.applyNodesOnlyModifier=false
\ No newline at end of file
index d827c4e..1f6ed74 100644 (file)
@@ -20,4 +20,53 @@ metadata:
   name: {{ include "common.fullname" . }}-log
   namespace: {{ include "common.namespace" . }}
 data:
-{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-camel-rests
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/camel-rests/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-descriptors
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/descriptors/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-filters
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/filters/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-schemas
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/schemas/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-spring-beans
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/spring-beans/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-boot-inf
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/portal/BOOT-INF/classes/*").AsConfig . | indent 2 }}
+
index 05a808e..424cf11 100644 (file)
@@ -34,77 +34,62 @@ spec:
         release: {{ .Release.Name }}
       name: {{ include "common.name" . }}
     spec:
-      initContainers:
-      - name: {{ include "common.name" . }}-inject-models
-        command:
-        - /bin/bash
-        - "-c"
-        - |
-          git clone -b {{ .Values.config.gerritBranch }} --single-branch {{ .Values.config.gerritProject }} /tmp/gerrit
-          cp -rp /tmp/gerrit/data-router/appconfig/model/* /model-dir
-        image: "{{ .Values.global.repository | default .Values.dockerHubRepository }}/{{ .Values.ubuntuInitImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        volumeMounts:
-        - name: modeldir
-          mountPath: "/model-dir"
       containers:
       - name: {{ include "common.name" . }}
         image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: CONFIG_HOME
-          value: /opt/app/sparky/config/
-        - name: KEY_MANAGER_PASSWORD
-          value: {{ .Values.config.keyManagerPassword }}
-        - name: KEY_STORE_PASSWORD
+          value: /opt/app/sparky/appconfig/
+        - name: KEYSTORE_ALIAS_PASSWORD
+          value: {{ .Values.config.keystoreAliasPassword }}
+        - name: KEYSTORE_PASSWORD
           value: {{ .Values.config.keyStorePassword }}
+        - name: SPARKY_SSL_ENABLED
+          value: 'true'
+        - name: SPARKY_PORTAL_ENABLED
+          value: 'false'
         volumeMounts:
         - mountPath: /etc/localtime
           name: localtime
           readOnly: true
-        - mountPath: /opt/app/sparky/config/auth/
+        - mountPath: /opt/app/sparky/appconfig/auth/
           name: {{ include "common.fullname" . }}-auth-config
-        - mountPath: /opt/app/sparky/config/synchronizer.properties
-          subPath: synchronizer.properties
-          name: {{ include "common.fullname" . }}-config
-        - mountPath: /opt/app/sparky/config/suggestive-search.properties
-          subPath: suggestive-search.properties
-          name: {{ include "common.fullname" . }}-config
-        - mountPath: /opt/app/sparky/config/search-service.properties
-          subPath: search-service.properties
-          name: {{ include "common.fullname" . }}-config
-        - mountPath: /opt/app/sparky/config/roles.config
-          subPath: roles.config
+        - mountPath: /opt/app/sparky/appconfig/camel-rests/
+          name: {{ include "common.fullname" . }}-camel-rests-config
+        - mountPath: /opt/app/sparky/appconfig/descriptors/
+          name: {{ include "common.fullname" . }}-descriptors-config
+        - mountPath: /opt/app/sparky/appconfig/filters/
+          name: {{ include "common.fullname" . }}-filters-config
+        - mountPath: /opt/app/sparky/appconfig/
           name: {{ include "common.fullname" . }}-config
-        - mountPath: /opt/app/sparky/config/elasticsearch.properties
-          subPath: elasticsearch.properties
-          name: {{ include "common.fullname" . }}-config
-        - mountPath: /opt/app/sparky/config/aai.properties
-          subPath: aai.properties
-          name: {{ include "common.fullname" . }}-config
-        - mountPath: /opt/app/sparky/config/portal/
+        - mountPath: /opt/app/sparky/appconfig/portal
           name: {{ include "common.fullname" . }}-portal-config
+        - mountPath: /opt/app/sparky/appconfig/portal/BOOT-INF/classes
+          name: {{ include "common.fullname" . }}-portal-boot-inf-config
+        - mountPath: /opt/app/sparky/appconfig/schemas
+          name: {{ include "common.fullname" . }}-schemas-config
+        - mountPath: /opt/app/sparky/appconfig/spring-beans/
+          name: {{ include "common.fullname" . }}-spring-beans-config
         - mountPath: /var/log/onap
           name: {{ include "common.fullname" . }}-logs
-        - mountPath: /opt/app/sparky/bundleconfig/etc/logback.xml
+        - mountPath: /opt/app/sparky/appconfig/logging/
           name: {{ include "common.fullname" . }}-log-conf
-          subPath: logback.xml
-        - name: modeldir
-          mountPath: /opt/app/sparky/config/model
         ports:
         - containerPort: {{ .Values.service.internalPort }}
+        - containerPort: {{ .Values.service.internalPort2 }}
         # disable liveness probe when breakpoints set in debugger
         # so K8s doesn't restart unresponsive container
         {{- if eq .Values.liveness.enabled true }}
         livenessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.service.internalPort2 }}
           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
           periodSeconds: {{ .Values.liveness.periodSeconds }}
         {{ end -}}
         readinessProbe:
           tcpSocket:
-            port: {{ .Values.service.internalPort }}
+            port: {{ .Values.service.internalPort2 }}
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
@@ -138,12 +123,30 @@ spec:
       - name: {{ include "common.fullname" . }}-config
         configMap:
           name: {{ include "common.fullname" . }}
-      - name: {{ include "common.fullname" . }}-portal-config
-        configMap:
-          name: {{ include "common.fullname" . }}-portal
       - name: {{ include "common.fullname" . }}-auth-config
         secret:
           secretName: {{ include "common.fullname" . }}
+      - name: {{ include "common.fullname" . }}-camel-rests-config
+        configMap:
+          name: {{ include "common.fullname" . }}-camel-rests
+      - name: {{ include "common.fullname" . }}-descriptors-config
+        configMap:
+          name: {{ include "common.fullname" . }}-descriptors
+      - name: {{ include "common.fullname" . }}-filters-config
+        configMap:
+          name: {{ include "common.fullname" . }}-filters
+      - name: {{ include "common.fullname" . }}-portal-config
+        configMap:
+          name: {{ include "common.fullname" . }}-portal
+      - name: {{ include "common.fullname" . }}-portal-boot-inf-config
+        configMap:
+          name: {{ include "common.fullname" . }}-boot-inf
+      - name: {{ include "common.fullname" . }}-schemas-config
+        configMap:
+          name: {{ include "common.fullname" . }}-schemas
+      - name: {{ include "common.fullname" . }}-spring-beans-config
+        configMap:
+          name: {{ include "common.fullname" . }}-spring-beans
       - name: filebeat-conf
         configMap:
           name: aai-filebeat
@@ -153,9 +156,7 @@ spec:
         emptyDir: {}
       - name: {{ include "common.fullname" . }}-log-conf
         configMap:
-         name: {{ include "common.fullname" . }}-log
-      - name: modeldir
-        emptyDir: {}
+          name: {{ include "common.fullname" . }}-log
       restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 41bc163..e97935a 100644 (file)
@@ -1,7 +1,7 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ include "common.name" . }}
+  name: {{ include "common.servicename" . }}
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
index df058a4..5c97bdb 100644 (file)
@@ -4,11 +4,18 @@
 global: # global defaults
   nodePortPrefix: 302
   repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
-
+  aai:
+    serviceName: aai-aai
+  aaiElasticsearch:
+    serviceName: aai-elasticsearch
+  gizmo:
+    serviceName: aai-gizmo
+  searchData:
+    serviceName: aai-search-data
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sparky-be:v1.1.0
+image: onap/sparky-be:1.2-STAGING-latest
 pullPolicy: Always
 restartPolicy: Always
 
@@ -18,10 +25,17 @@ ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
 config:
   elasticsearchHttpPort: 9200
   keyStorePassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
-  keyManagerPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
+  keystoreAliasPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o
   gerritBranch: master
   gerritProject: http://gerrit.onap.org/r/aai/test-config
+  portalUsername: aaiui
+  portalPassword: 1t2v1vfv1unz1vgz1t3b
 
+# ONAP Cookie Processing - During initial development, the following flag, if true, will
+# prevent the portal interface's login processing from searching for a user
+# specific cookie, and will instead allow passage if a valid session cookie is discovered.
+  portalOnapEnabled: true
+#
 
 # override chart name (sparky-be) to share a common namespace
 # suffix with parent chart (aai)
@@ -51,6 +65,7 @@ service:
   type: ClusterIP
   name: aai-sparky-be
   internalPort: 9517
+  internalPort2: 8000
 
 ingress:
   enabled: false
index 7e94ae4..e3128b8 100644 (file)
@@ -24,10 +24,10 @@ query.fast-property=true
 query.smart-limit=false
 
 {{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}}
+{{- $global := . }}
 
-# the following parameters are not reloaded automatically and require a manual bounce
 storage.backend=cassandra
-storage.hostname={{- range $i, $e := until $seed_size }}aai-cassandra-{{ $i }},{{- end }}
+storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }}
 
 storage.cassandra.keyspace=aaigraph
 
index c15c053..b9b2501 100644 (file)
@@ -90,14 +90,6 @@ spec:
           subPath: aai_keystore
         # disable liveness probe when breakpoints set in debugger
         # so K8s doesn't restart unresponsive container
-        volumeMounts:
-        - mountPath: /usr/share/filebeat/filebeat.yml
-          subPath: filebeat.yml
-          name: filebeat-conf
-        - mountPath: /opt/aai/logroot/AAI-GQ
-          name: {{ include "common.fullname" . }}-logs
-        - mountPath: /usr/share/filebeat/data
-          name: {{ include "common.fullname" . }}-filebeat
       volumes:
       - name: localtime
         hostPath:
index 5d08268..e879818 100644 (file)
@@ -27,7 +27,33 @@ global: # global defaults
   loggingImage: beats/filebeat:5.5.0
   restartPolicy: Always
   cassandra:
+    serviceName: aai-cassandra
     replicas: 3
+  aai:
+    serviceName: aai-aai
+  babel:
+    serviceName: aai-babel
+  champ:
+    serviceName: aai-champ
+  aaiElasticsearch:
+    serviceName: aai-elasticsearch
+  hbase:
+    serviceName: aai-hbase
+  resources:
+    serviceName: aai-resources
+  sparkyBe:
+    serviceName: aai-sparky-be
+  dataRouter:
+    serviceName: aai-data-router
+  gizmo:
+    serviceName: aai-gizmo
+  modelloader:
+    serviceName: aai-modelloader
+  searchData:
+    serviceName: aai-search-data
+  traversal:
+    serviceName: aai-traversal
+
 
 # application image
 dockerhubRepository: registry.hub.docker.com
diff --git a/kubernetes/appc/templates/pv.yaml b/kubernetes/appc/templates/pv.yaml
new file mode 100644 (file)
index 0000000..1021409
--- /dev/null
@@ -0,0 +1,130 @@
+{{/*
+# 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.
+*/}}
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+{{ $pvNum := default 1 .Values.replicaCount | int }}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-data0
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.fullname" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size}}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}0
+{{ if gt $pvNum 1 }}
+---
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-data1
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.fullname" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size}}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}1
+{{ end }}
+{{ if gt $pvNum 2 }}
+---
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-data2
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.fullname" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size}}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}2
+{{ end }}
+{{ if gt $pvNum 3 }}
+---
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-data3
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.fullname" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size}}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}3
+{{ end }}
+{{ if gt $pvNum 4 }}
+---
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}-data4
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.fullname" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size}}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  storageClassName: "{{ include "common.fullname" . }}-data"
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}4
+{{ end }}
+{{- end -}}
index 5da50a5..e81c50d 100644 (file)
@@ -18,6 +18,8 @@ spec:
         app: {{ include "common.name" . }}
         release: {{ .Release.Name }}
     spec:
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
       initContainers:
       - command:
         - /root/ready.py
@@ -112,6 +114,8 @@ spec:
           - mountPath: /opt/onap/ccsdk/bin/installSdncDb.sh
             name: onap-sdnc-bin
             subPath: installSdncDb.sh
+          - mountPath: {{ .Values.persistence.mdsalPath }}
+            name: {{ include "common.fullname" . }}-data
           - mountPath: /var/log/onap
             name: logs
           - mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg
@@ -182,5 +186,19 @@ spec:
           configMap:
             name: {{ include "common.fullname" . }}-onap-sdnc-bin
             defaultMode: 0755
-      imagePullSecrets:
-      - name: "{{ include "common.namespace" . }}-docker-registry-key"
+{{ if not .Values.persistence.enabled }}
+        - name: {{ include "common.fullname" . }}-data
+          emptyDir: {}
+{{ else }}
+  volumeClaimTemplates:
+  - metadata:
+      name: {{ include "common.fullname" . }}-data
+      labels:
+        name: {{ include "common.fullname" . }}
+    spec:
+      accessModes: [ {{ .Values.persistence.accessMode }} ]
+      storageClassName: {{ include "common.fullname" . }}-data
+      resources:
+        requests:
+          storage: {{ .Values.persistence.size }}
+{{ end }}
index a9f67a9..962ecfd 100644 (file)
@@ -97,6 +97,28 @@ service:
   nodePort2: 31
   clusterPort: 2550
 
+## Persist data to a persitent volume
+persistence:
+  enabled: true
+
+  ## A manually managed Persistent Volume and Claim
+  ## Requires persistence.enabled: true
+  ## If defined, PVC must be created manually before volume will be bound
+  # existingClaim:
+  volumeReclaimPolicy: Retain
+
+  ## database data Persistent Volume Storage Class
+  ## If defined, storageClassName: <storageClass>
+  ## If set to "-", storageClassName: "", which disables dynamic provisioning
+  ## If undefined (the default) or set to null, no storageClassName spec is
+  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
+  ##   GKE, AWS & OpenStack)
+  accessMode: ReadWriteOnce
+  size: 1Gi
+  mountPath: /dockerdata-nfs
+  mountSubPath: appc/mdsal
+  mdsalPath: /opt/opendaylight/current/daexim
+
 ingress:
   enabled: false
 
index b680487..bee8f13 100644 (file)
@@ -23,4 +23,4 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 data:
- spring_application_json: {{ .Values.config.springApplicationJson | quote }}
+ spring_application_json: {{ tpl .Values.config.springApplicationJson . | quote }}
index eef4dd7..8b782f9 100644 (file)
@@ -42,17 +42,17 @@ config:
   dataRootDir: /dockerdata-nfs
   springApplicationJson: >
     {
-        "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clamp-mariadb.{{include "common.namespace" .}}:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3",
-        "clamp.config.sdc.catalog.url": "https://sdc-be.{{include "common.namespace" .}}.svc.cluster.local:8443/sdc/v1/catalog/",
-        "clamp.config.sdc.hostUrl": "https://sdc-be.{{include "common.namespace" .}}.svc.cluster.local:8443/",
-        "clamp.config.sdc.serviceUrl": "https://sdc-be.{{include "common.namespace" .}}.svc.cluster.local:8443/sdc/v1/catalog/services",
+        "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clampdb:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3",
+        "clamp.config.sdc.catalog.url": "https://sdc-be:8443/sdc/v1/catalog/",
+        "clamp.config.sdc.hostUrl": "https://sdc-be:8443/",
+        "clamp.config.sdc.serviceUrl": "https://sdc-be:8443/sdc/v1/catalog/services",
         "clamp.config.sdc.serviceUsername": "clamp",
         "clamp.config.sdc.servicePassword": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981",
-        "clamp.config.dcae.inventory.url": "http://dcaegen2.{{include "common.namespace" .}}.svc.cluster.local:8080",
-        "clamp.config.dcae.dispatcher.url": "http://dcaegen2.{{include "common.namespace" .}}.svc.cluster.local:8080",
-        "clamp.config.policy.pdpUrl1": "https://policy-pdp.{{include "common.namespace" .}}.svc.cluster.local:9091/pdp/ , testpdp, alpha123",
-        "clamp.config.policy.pdpUrl2": "https://policy-pdp.{{include "common.namespace" .}}.svc.cluster.local:9091/pdp/ , testpdp, alpha123",
-        "clamp.config.policy.papUrl": "https://policy-pap.{{include "common.namespace" .}}.svc.cluster.local:8443/pap/ , testpap, alpha123",
+        "clamp.config.dcae.inventory.url": "http://dcaegen2:8080",
+        "clamp.config.dcae.dispatcher.url": "http://dcaegen2:8080",
+        "clamp.config.policy.pdpUrl1": "https://policy-pdp:9091/pdp/ , testpdp, alpha123",
+        "clamp.config.policy.pdpUrl2": "https://policy-pdp:9091/pdp/ , testpdp, alpha123",
+        "clamp.config.policy.papUrl": "https://policy-pap:8443/pap/ , testpap, alpha123",
         "clamp.config.policy.clientKey": "5CE79532B3A2CB4D132FC0C04BF916A7"
     }
 
@@ -70,7 +70,7 @@ affinity: {}
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 30
   periodSeconds: 10
   # necessary to disable liveness probe when setting breakpoints
   # in debugger so K8s doesn't restart unresponsive container
index d14c42b..12403e7 100644 (file)
@@ -35,7 +35,7 @@ spec:
       name: {{ include "common.name" . }}
     spec:
       containers:
-      - image: "{{ .Values.repository | default .Values.global.repository }}/{{ .Values.image }}"
+      - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         command: ["/usr/local/bin/docker-entrypoint.sh"]
-        args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect=3","-ui","-join","{{ include "common.servicename" . }}.{{ include "common.namespace" . }}"]
+        args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect={{ .Values.replicaCount }}","-ui"]
         name: {{ include "common.name" . }}
index 406f9b6..081ba2a 100644 (file)
@@ -16,7 +16,6 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  repository: nexus3.onap.org:10001
   repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
   readinessRepository: oomk8s
   readinessImage: readiness-check:2.0.0
@@ -34,7 +33,7 @@ pullPolicy: Always
 # flag to enable debugging - application support required
 debugEnabled: false
 
-replicaCount: 3
+replicaCount: 1
 
 nodeSelector: {}
 
@@ -42,14 +41,14 @@ affinity: {}
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 90
   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: 90
   periodSeconds: 10
 
 service:
index 504d54c..646922b 100644 (file)
@@ -35,7 +35,7 @@ spec:
       name: {{ include "common.name" . }}
     spec:
       containers:
-      - image: "{{ .Values.repository | default .Values.global.repository }}/{{ .Values.image }}"
+      - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
         command:
         - /bin/sh
         - "-c"
index b35ec35..6ff0390 100644 (file)
@@ -16,7 +16,6 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  repository: nexus3.onap.org:10001
   repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
   readinessRepository: oomk8s
   readinessImage: readiness-check:2.0.0
@@ -47,14 +46,14 @@ affinity: {}
 
 # probe configuration parameters
 liveness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 90
   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: 90
   periodSeconds: 10
 
 service: {}
diff --git a/kubernetes/dcaegen2/Makefile b/kubernetes/dcaegen2/Makefile
new file mode 100644 (file)
index 0000000..c16f23b
--- /dev/null
@@ -0,0 +1,2 @@
+make-dmaap:
+       cd charts && helm dep up dcae-bootstrap
index d031e2e..9f53d90 100644 (file)
@@ -20,3 +20,6 @@ dependencies:
   - name: common
     version: ~2.0.0
     repository: '@local'
+  - name: postgres
+    version: ~2.0.0
+    repository: '@local'
index 6205f1e..dac0ffa 100644 (file)
@@ -23,6 +23,6 @@
   "msb_hostname": "{{ .Values.config.address.msb_discovery }}.{{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" : "pgvm",
+  "pgaas_cluster_name" : "{{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }}",
   "database_name":"holmes"
 }
index 75dbbf9..1a808d4 100644 (file)
@@ -18,6 +18,6 @@
 
 {
   "msb_hostname": "{{ .Values.config.address.msb_discovery }}.{{include "common.namespace" . }}",
-  "pgaas_cluster_name" : "pgvm",
+  "pgaas_cluster_name" : "{{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }}",
   "database_name":"holmes"
 }
index 4e42b11..8b5da2e 100644 (file)
 # limitations under the License.
 # ============LICENSE_END=========================================================
 
-sdc_config.address: '{{ .Values.config.address.sdc }}.{{include "common.namespace" . }}:8443'
+sdc_address: '{{ .Values.config.address.sdc }}.{{include "common.namespace" . }}:8443'
 sdc_uri: 'https://{{ .Values.config.address.sdc }}.{{include "common.namespace" . }}:8443'
 sdc_user: "dcae"
 sdc_password: !!str Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
 sdc_environment_name: "AUTO"
-sdc_msg_bus_config.address: '{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}'
+sdc_msg_bus_address: '{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}'
 postgres_user_inventory: "postgres"
 postgres_password_inventory: "onap123"
 service_change_handler_image: {{ .Values.componentImages.service_change_handler }}
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml
new file mode 100644 (file)
index 0000000..b201247
--- /dev/null
@@ -0,0 +1,19 @@
+#=================================================================================
+# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+# Copyright © 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.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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=========================================================
+
+k8s_pgaas_instance_fqdn: {{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }}
+k8s_initial_password: {{ .Values.postgres.config.pgRootPassword }}
index 7dc66f4..f3a6cca 100644 (file)
@@ -22,3 +22,7 @@ tca_image: {{ .Values.componentImages.tca }}
 dmaap_host: {{ .Values.config.address.message_router }}.{{include "common.namespace" . }}
 consul_host: {{ .Values.config.address.consul.host }}.{{include "common.namespace" . }}
 cbs_host: config-binding-service
+enableRedisCaching:  {{ .Values.config.redisCaching }}
+{{ if .Values.config.redisHosts }}
+redisHosts: {{ .Values.config.redisHosts }}
+{{ end }}
index 5385d07..2e41d1c 100644 (file)
@@ -19,7 +19,7 @@
 {{ if .Values.componentImages.ves }}
 tag_version: {{ .Values.componentImages.ves }}
 {{ end }}
-external_port : "30280"
+external_port : "30235"
 ves_other_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_OTHER_OUTPUT/"
 ves_heartbeat_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT/"
 ves_fault_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_FAULT_OUTPUT/"
index fc89c6c..6df05b1 100644 (file)
@@ -40,17 +40,34 @@ config:
     msb_discovery: msb-discovery
     policy_pdp: pdp
     sdc: sdc-be
+  # redisCaching is a string not a boolean!
+  redisCaching: "false"
+
+# postgres values--overriding defaults in the postgres subchart
+postgres:
+  nameOverride: dcae-db
+  service:
+    name: dcae-postgres
+    name2: dcae-pg-primary
+    name3: dcae-pg-replica
+  container:
+    name:
+      primary: dcae-pg-primary
+      replica: dcae-pg-replica
+  config:
+    pgPrimaryPassword: onapdemodb
+    pgRootPassword: onapdemodb
 
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.1.5
+image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.1.8
 
 # DCAE component images to be deployed via Cloudify Manager
 # Use to override default setting in blueprints
 componentImages:
   #TODO for further investigation: input template expansion issues if we comment this out
-  config_binding_service: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding:2.1.4
+  config_binding_service: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding:2.1.5
 #  deployment_handler: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.deployment-handler:2.1.1
 #  holmes_engine: nexus3.onap.org:10001//onap/holmes/engine-management:v1.0.0
 #  holmes_rules: nexus3.onap.org:10001/onap/holmes/rule-management:v1.0.0
index c6b24ee..4b76523 100644 (file)
@@ -63,4 +63,13 @@ spec:
   type: ExternalName
   externalName: {{ .Values.service.name }}.{{ include "common.namespace" . }}.svc.cluster.local
 {{ end }}
-
+# Provide alternate name for consul in common namespace to support CM plugin discovery
+apiVersion: v1
+kind: Service
+metadata:
+  name: consul
+  namespace: {{ include "common.namespace" . }}
+spec:
+  type: ExternalName
+  externalName: {{ .Values.config.address.consul.host }}.{{ include "common.namespace" . }}.svc.cluster.local
+---
index 770f82d..4c01d4e 100644 (file)
@@ -17,5 +17,5 @@
 
 apiVersion: v1
 description: ONAP DCAE Health Check
-name: dcae-healtcheck
+name: dcae-healthcheck
 version: 2.0.0
index 3431e7e..f454752 100755 (executable)
@@ -15,8 +15,9 @@
 # limitations under the License.
 # ============LICENSE_END=========================================================
 
-
-if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then
+(if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then
+  echo "delay by 10 seconds for redis server starting"
+  sleep 10
 
   NODES=""
   echo "====> wait for all {{.Values.replicaCount}} redis pods up"
@@ -24,11 +25,16 @@ if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then
   do
     echo "======> $(echo $NODES |wc -w) / {{.Values.replicaCount}} pods up"
     sleep 5
-    RESP=$(wget -vO- --ca-certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt  --header "Authorization: Bearer $(</var/run/secrets/kubernetes.io/serviceaccount/token)" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/{{.Release.Namespace}}/pods?labelSelector=app={{.Chart.Name}})
+    RESP=$(wget -vO- --ca-certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt  --header "Authorization
+: Bearer $(</var/run/secrets/kubernetes.io/serviceaccount/token)" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT
+_443_TCP_PORT/api/v1/namespaces/{{.Release.Namespace}}/pods?labelSelector=app={{.Chart.Name}})
 
     IPS=$(echo $RESP | jq -r '.items[].status.podIP')
+    IPS2=$(echo $IPS | sed -e 's/[a-zA-Z]*//g')
+    echo "======> IPs: ["$IPS2"]"
     NODES=""
-    for I in $IPS; do NODES="$NODES $I:{{.Values.service.externalPort}}"; done
+    for I in $IPS2; do NODES="$NODES $I:{{.Values.service.externalPort}}"; done
+    echo "======> nodes: ["$NODES"]"
   done
   echo "====> all {{.Values.replicaCount}} redis cluster pods are up. wait 10 seconds before the next step"; echo
   sleep 10
@@ -36,6 +42,9 @@ if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then
   echo "====> Configure the cluster"
 
   # $NODES w/o quotes
+  echo "======> nodes: [$(echo $NODES |paste -s)]"
   redis-trib create --replicas 1 $(echo $NODES |paste -s)
+fi ) &
+
+redis-server /conf/redis.conf
 
-fi
index 4724714..63d921a 100644 (file)
@@ -41,8 +41,7 @@ spec:
           - /bin/sh
           - -c
           - |
-            /opt/scripts/redis-cluster-config.sh &
-            /usr/local/bin/redis-server-config.sh
+            /opt/scripts/redis-cluster-config.sh
           ports:
           - containerPort: {{ .Values.service.internalPort }}
             name: {{ .Values.service.name }}
diff --git a/kubernetes/dmaap/Makefile b/kubernetes/dmaap/Makefile
new file mode 100644 (file)
index 0000000..36ca4f5
--- /dev/null
@@ -0,0 +1,16 @@
+# Copyright © 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.
+
+make-dmaap:
+       cd charts && helm dep up dmaap-bus-controller
diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/.helmignore b/kubernetes/dmaap/charts/dmaap-bus-controller/.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/dmaap/charts/dmaap-bus-controller/Chart.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/Chart.yaml
new file mode 100644 (file)
index 0000000..430b7d1
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 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.
+
+apiVersion: v1
+description: a Helm chart to deploy ONAP DMaaP Bus Controller (aka dmaap-prov) in Kubernetes
+name: dmaap-bus-controller
+version: 2.0.0
diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/README.md b/kubernetes/dmaap/charts/dmaap-bus-controller/README.md
new file mode 100644 (file)
index 0000000..c696a2c
--- /dev/null
@@ -0,0 +1,11 @@
+# Helm Chart for ONAP DMaaP Applications
+
+ONAP includes the following Kubernetes services available in ONAP Beijing Release (more expected in future):
+
+1) message-router - a message bus for applications
+2) dmaap-prov - an API to provision DMaaP resources
+
+# Service Dependencies
+
+message-router depends on AAF
+dmaap-prov depends on AAF and Postgresql.  
diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/requirements.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/requirements.yaml
new file mode 100644 (file)
index 0000000..b67ac02
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 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.
+
+dependencies:
+  - name: common
+    version: ~2.0.0
+    repository: '@local'
+  - name: postgres
+    version: ~2.0.0
+    repository: '@local'
diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/buscontroller.env b/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/buscontroller.env
new file mode 100644 (file)
index 0000000..6b15db9
--- /dev/null
@@ -0,0 +1,14 @@
+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/templates/NOTES.txt b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..fbab5a3
--- /dev/null
@@ -0,0 +1,19 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}-prov)
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "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 }}
@@ -15,7 +15,7 @@
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ include "common.fullname" . }}-configmap
-  namespace: {{ .Values.global.nsPrefix }}
+  name: {{ include "common.fullname" . }}-config
+  namespace: {{ include "common.namespace" . }}
 data:
-{{ tpl (.Files.Glob "resources/config/buscontroller.env").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/templates/deployment.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..2c38792
--- /dev/null
@@ -0,0 +1,94 @@
+# Copyright © 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.
+
+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.postgres.nameOverride }}
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-readiness
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image.buscontrollerImage }}:{{ .Values.image.buscontrollerVersion }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          - containerPort: {{ .Values.service.internalPort2 }}
+          {{if eq .Values.liveness.enabled true }}
+          livenessProbe:
+            httpGet:
+              port: {{ .Values.service.internalPort }}
+              path: /webapi/info
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}          
+          readinessProbe:
+            httpGet:
+              port: {{ .Values.service.internalPort }}
+              path: /webapi/info
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          {{ end -}}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - name: {{ include "common.name" . }}-config
+            mountPath: /opt/app/config/conf
+            subPath: buscontroller.env
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      volumes:
+        - name: localtime
+          hostPath:
+            path: /etc/localtime
+        - name: {{ include "common.name" . }}-config
+          configMap:
+            name: {{ include "common.fullname" . }}-config
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/templates/service.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/service.yaml
new file mode 100644 (file)
index 0000000..2660052
--- /dev/null
@@ -0,0 +1,47 @@
+# Copyright © 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.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Values.service.name }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPort2 }}
+      targetPort: {{ .Values.service.internalPort2 }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+      name: {{ .Values.service.name }}2
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    - port: {{ .Values.service.externalPort2 }}
+      targetPort: {{ .Values.service.internalPort2 }}
+      name: {{ .Values.service.name }}2
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
\ No newline at end of file
diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml
new file mode 100644 (file)
index 0000000..3acb490
--- /dev/null
@@ -0,0 +1,113 @@
+# Copyright © 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.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:1.1.1
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+#nsPrefix: onap
+pullPolicy: Always
+
+# application images
+repository: nexus3.onap.org:10001
+
+image:
+  buscontrollerImage: onap/dmaap/buscontroller
+  buscontrollerVersion: 1.0.8
+
+
+# application configuration
+dmaapMessageRouterService: dmaap
+aafURL: https://onap-aaf:8905/proxy/
+topicMgrUser: m23456@dmaapbc.onap.org
+topicMgrPwd: onapdemo
+adminUser: m12345@dmaapbc.onap.org
+adminPwd: onapdemo
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: false
+
+readiness:
+  initialDelaySeconds: 10
+  periodSeconds: 10
+
+
+service:
+  type: ClusterIP
+  name: dmaap-bc
+  externalPort: 8080
+  internalPort: 8080
+  externalPort2: 8443
+  internalPort2: 8443
+
+
+# application configuration override for postgres
+postgres:
+  nameOverride: dbcl-db
+  service:
+    name: dbcl-postgres
+    name2: dbcl-pg-primary
+    name3: dbcl-pg-replica
+  container:
+    name:
+      primary: dbcl-pg-primary
+      replica: dbcl-pg-replica
+  config:
+    pgUserName: dmaap_admin
+    pgDatabase: dmaap
+    pgPrimaryPassword: onapdemodb
+    pgUserPassword: onapdemodb
+    pgRootPassword: onapdemodb
+
+
+ingress:
+  enabled: false
+
+resources: {}
+  # We usually recommend not to specify default resources and to leave this as a conscious
+  # choice for the user. This also increases chances charts run on environments with little
+  # resources, such as Minikube. If you do want to specify resources, uncomment the following
+  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+  #
+  # Example:
+  # Configure resource requests and limits
+  # ref: http://kubernetes.io/docs/user-guide/compute-resources/
+  # Minimum memory for development is 2 CPU cores and 4GB memory
+  # Minimum memory for production is 4 CPU cores and 8GB memory
+#resources:
+#  limits:
+#    cpu: 2
+#    memory: 4Gi
+#  requests:
+#    cpu: 2
+#    memory: 4Gi
diff --git a/kubernetes/dmaap/charts/postgresql/Chart.yaml b/kubernetes/dmaap/charts/postgresql/Chart.yaml
deleted file mode 100644 (file)
index c643387..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-name: postgresql
-version: 0.9.3
-description: Object-relational database management system (ORDBMS) with an emphasis on extensibility and on standards-compliance.
-keywords:
-- postgresql
-- postgres
-- database
-- sql
-home: https://www.postgresql.org/
-icon: https://www.postgresql.org/media/img/about/press/elephant.png
-sources:
-- https://github.com/kubernetes/charts
-- https://github.com/docker-library/postgres
-maintainers:
-- name: databus23
-engine: gotpl
diff --git a/kubernetes/dmaap/charts/postgresql/templates/Notes.txt b/kubernetes/dmaap/charts/postgresql/templates/Notes.txt
deleted file mode 100644 (file)
index 9b49bb2..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-# PostgreSQL can be accessed via port 5432 on the following DNS name from within your cluster:
-# {{ template "postgresql.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local
-# 
-# To get your user password run:
-# 
-#     PGPASSWORD=$(kubectl get secret --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }} -o jsonpath="{.data.postgres-password}" | base64 --decode; echo)
-# 
-# To connect to your database run the following command (using the env variable from above):
-# 
-#    kubectl run --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }}-client --restart=Never --rm --tty -i --image postgres \
-#    --env "PGPASSWORD=$PGPASSWORD" \{{- if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }}
-#    --labels="{{ template "postgresql.fullname" . }}-client=true" \{{- end }}
-#    --command -- psql -U {{ default "postgres" .Values.postgresUser }} \
-#    -h {{ template "postgresql.fullname" . }} {{ default "postgres" .Values.postgresDatabase }}
-# 
-# {{ if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }}
-# Note: Since NetworkPolicy is enabled, only pods with label
-# {{ template "postgresql.fullname" . }}-client=true"
-# will be able to connect to this PostgreSQL cluster.
-# {{- end }}
-# 
-# To connect to your database directly from outside the K8s cluster:
-#    {{- if contains "NodePort" .Values.service.type }}
-#      PGHOST=$(kubectl get nodes --namespace {{ .Values.global.nsPrefix }} -o jsonpath='{.items[0].status.addresses[0].address}')
-#      PGPORT=$(kubectl get svc --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }} -o jsonpath='{.spec.ports[0].nodePort}')
-# 
-#    {{- else if contains "ClusterIP" .Values.service.type }}
-#      PGHOST=127.0.0.1
-#      PGPORT={{ default "5432" .Values.service.port }}
-# 
-#      # Execute the following commands to route the connection:
-#      export POD_NAME=$(kubectl get pods --namespace {{ .Values.global.nsPrefix }} -l "app={{ template "postgresql.fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
-#      kubectl port-forward --namespace {{ .Values.global.nsPrefix }} $POD_NAME {{ default "5432" .Values.service.port }}:{{ default "5432" .Values.service.port }}
-# 
-#    {{- end }}
diff --git a/kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl b/kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl
deleted file mode 100644 (file)
index b2d3d52..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Expand the name of the chart.
-*/}}
-{{- define "postgresql.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 "postgresql.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 -}}
-
-{{/*
-Return the appropriate apiVersion for networkpolicy.
-*/}}
-{{- define "postgresql.networkPolicy.apiVersion" -}}
-{{- if and (ge .Capabilities.KubeVersion.Minor "4") (le .Capabilities.KubeVersion.Minor "6") -}}
-"extensions/v1beta1"
-{{- else if ge .Capabilities.KubeVersion.Minor "7" -}}
-"networking.k8s.io/v1"
-{{- end -}}
-{{- end -}}
diff --git a/kubernetes/dmaap/charts/postgresql/templates/deployment.yaml b/kubernetes/dmaap/charts/postgresql/templates/deployment.yaml
deleted file mode 100644 (file)
index 57acfbd..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: {{ template "postgresql.fullname" . }}
-  namespace: {{ .Values.global.nsPrefix }}
-  labels:
-    app: {{ template "postgresql.fullname" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-spec:
-  template:
-    metadata:
-      labels:
-        app: {{ template "postgresql.fullname" . }}
-    spec:
-      {{- if .Values.affinity }}
-      affinity:
-{{ toYaml .Values.affinity | indent 8 }}
-      {{- end }}
-      {{- if .Values.nodeSelector }}
-      nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 8 }}
-      {{- end }}
-      {{- if .Values.tolerations }}
-      tolerations:
-{{ toYaml .Values.tolerations | indent 8 }}
-      {{- end }}
-      {{- if .Values.schedulerName }}
-      schedulerName: "{{ .Values.schedulerName }}"
-      {{- end }}
-      containers:
-      - name: {{ template "postgresql.fullname" . }}
-        image: "{{ .Values.image }}:{{ .Values.imageTag }}"
-        imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }}
-        args:
-          {{- range $key, $value := default dict .Values.postgresConfig }}
-          - -c
-          - '{{ $key | snakecase }}={{ $value }}'
-          {{- end }}
-        env:
-        - name: POSTGRES_USER
-          value: {{ default "postgres" .Values.global.postgresUser | quote }}
-          # Required for pg_isready in the health probes.
-        - name: PGUSER
-          value: {{ default "postgres" .Values.global.postgresUser | quote }}
-        - name: POSTGRES_DB
-          value: {{ default "" .Values.global.postgresDatabase | quote }}
-        - name: POSTGRES_INITDB_ARGS
-          value: {{ default "" .Values.postgresInitdbArgs | quote }}
-        - name: PGDATA
-          value: /var/lib/postgresql/data/pgdata
-        - name: POSTGRES_PASSWORD
-          value: {{ default "postgres" .Values.global.postgresPassword | quote }}
-# original code:
-#          valueFrom:
-#            secretKeyRef:
-#              name: {{ template "postgresql.fullname" . }}
-#              key: postgres-password
-        - name: POD_IP
-          valueFrom: { fieldRef: { fieldPath: status.podIP } }
-        ports:
-        - name: postgresql
-          containerPort: 5432
-        livenessProbe:
-          exec:
-            command:
-            - sh
-            - -c
-            - exec pg_isready --host $POD_IP
-          initialDelaySeconds: 120
-          timeoutSeconds: 5
-          failureThreshold: 6
-        readinessProbe:
-          exec:
-            command:
-            - sh
-            - -c
-            - exec pg_isready --host $POD_IP
-          initialDelaySeconds: 5
-          timeoutSeconds: 3
-          periodSeconds: 5
-        resources:
-{{ toYaml .Values.resources | indent 10 }}
-        volumeMounts:
-        - name: data
-          mountPath: {{ .Values.persistence.mountPath }}
-          subPath: {{ .Values.persistence.subPath }}
-{{- if .Values.metrics.enabled }}
-      - name: metrics
-        image: "{{ .Values.metrics.image }}:{{ .Values.metrics.imageTag }}"
-        imagePullPolicy: {{ default "" .Values.metrics.imagePullPolicy | quote }}
-        env:
-        - name: DATA_SOURCE_NAME
-          value: postgresql://postgres@127.0.0.1:5432?sslmode=disable
-        ports:
-        - name: metrics
-          containerPort: 9187
-        {{- if .Values.metrics.customMetrics }}
-        args: ["-extend.query-path", "/conf/custom-metrics.yaml"]
-        volumeMounts:
-          - name: custom-metrics
-            mountPath: /conf
-            readOnly: true
-        {{- end }}
-        resources:
-{{ toYaml .Values.metrics.resources | indent 10 }}
-{{- end }}
-      volumes:
-      - name: data
-      {{- if .Values.persistence.enabled }}
-        persistentVolumeClaim:
-          claimName: {{ .Values.persistence.existingClaim | default (include "postgresql.fullname" .) }}
-      {{- else }}
-        emptyDir: {}
-      {{- end }}
-      {{- if and .Values.metrics.enabled .Values.metrics.customMetrics }}
-      - name: custom-metrics
-        secret:
-          secretName: {{ template "postgresql.fullname" . }}
-          items:
-            - key: custom-metrics.yaml
-              path: custom-metrics.yaml
-      {{- end }}
-      {{- if .Values.imagePullSecrets }}
-      imagePullSecrets:
-        - name: {{ .Values.imagePullSecrets }}
-      {{- end }}
diff --git a/kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml b/kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml
deleted file mode 100644 (file)
index 92f3b71..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-{{- if .Values.networkPolicy.enabled }}
-kind: NetworkPolicy
-apiVersion: {{ template "postgresql.networkPolicy.apiVersion" . }}
-metadata:
-  name: "{{ template "postgresql.fullname" . }}"
-  labels:
-    app: {{ template "postgresql.fullname" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-spec:
-  podSelector:
-    matchLabels:
-      app: "{{ template "postgresql.fullname" . }}"
-  ingress:
-    # Allow inbound connections
-    - ports:
-      - port: 5432
-    {{- if not .Values.networkPolicy.allowExternal }}
-      from:
-      - podSelector:
-          matchLabels:
-            {{ template "postgresql.fullname" . }}-client: "true"
-    {{- end }}
-    # Allow prometheus scrapes
-    - ports:
-      - port: 9187
-{{- end }}
diff --git a/kubernetes/dmaap/charts/postgresql/templates/pvc.yaml b/kubernetes/dmaap/charts/postgresql/templates/pvc.yaml
deleted file mode 100644 (file)
index f1d38df..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
-  name: {{ template "postgresql.fullname" . }}
-  labels:
-    app: {{ template "postgresql.fullname" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.persistence.annotations }}
-  annotations:
-{{ toYaml .Values.persistence.annotations | indent 4 }}
-{{- end }}
-spec:
-  accessModes:
-    - {{ .Values.persistence.accessMode | quote }}
-  resources:
-    requests:
-      storage: {{ .Values.persistence.size | quote }}
-{{- if .Values.persistence.storageClass }}
-{{- if (eq "-" .Values.persistence.storageClass) }}
-  storageClassName: ""
-{{- else }}
-  storageClassName: "{{ .Values.persistence.storageClass }}"
-{{- end }}
-{{- end }}
-{{- end -}}
diff --git a/kubernetes/dmaap/charts/postgresql/templates/secrets.yaml b/kubernetes/dmaap/charts/postgresql/templates/secrets.yaml
deleted file mode 100644 (file)
index 6dd4c7d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-apiVersion: v1
-kind: Secret
-metadata:
-  name: {{ template "postgresql.fullname" . }}
-  labels:
-    app: {{ template "postgresql.fullname" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-type: Opaque
-data:
-  {{ if .Values.postgresPassword }}
-  postgres-password:  {{ .Values.postgresPassword | b64enc | quote }}
-  {{ else }}
-  postgres-password: {{ randAlphaNum 10 | b64enc | quote }}
-  {{ end }}
-  {{- if .Values.metrics.customMetrics }}
-  custom-metrics.yaml: {{ toYaml .Values.metrics.customMetrics | b64enc | quote }}
-  {{- end }}
diff --git a/kubernetes/dmaap/charts/postgresql/templates/svc.yaml b/kubernetes/dmaap/charts/postgresql/templates/svc.yaml
deleted file mode 100644 (file)
index f6373c8..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  name: dmaap-prov-{{ template "postgresql.name" . }}
-  namespace: {{ .Values.global.nsPrefix  }}
-  labels:
-    app: {{ template "postgresql.fullname" . }}
-    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
-    release: "{{ .Release.Name }}"
-    heritage: "{{ .Release.Service }}"
-{{- if .Values.metrics.enabled }}
-  annotations:
-    prometheus.io/scrape: "true"
-    prometheus.io/port: "9187"
-{{- end }}
-spec:
-  type: {{ .Values.service.type }}
-  ports:
-  - name: postgresql
-    port: {{ .Values.service.port }}
-    targetPort: postgresql
-  {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }}
-    nodePort: {{ .Values.service.nodePort }}
-  {{- end }}
-{{- if .Values.service.externalIPs }}
-  externalIPs:
-{{ toYaml .Values.service.externalIPs | indent 4 }}
-{{- end }}
-  selector:
-    app: {{ template "postgresql.fullname" . }}
diff --git a/kubernetes/dmaap/charts/postgresql/values.yaml b/kubernetes/dmaap/charts/postgresql/values.yaml
deleted file mode 100644 (file)
index 37bbdda..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-## postgres image repository
-image: "postgres"
-## postgres image version
-## ref: https://hub.docker.com/r/library/postgres/tags/
-##
-imageTag: "9.6.2"
-
-## Specify a imagePullPolicy
-## 'Always' if imageTag is 'latest', else set to 'IfNotPresent'
-## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
-##
-# imagePullPolicy:
-
-## Specify imagePullSecrets
-## ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
-##
-# imagePullSecrets: myregistrykey
-
-## Create a database user
-## Default: postgres
-#postgresUser: "dmaap"
-## Default: random 10 character string
-#postgresPassword:  "onapdemodb"
-
-## Create a database
-## Default: the postgres user
-#postgresDatabase: "dmaap"
-
-## Specify initdb arguments, e.g. --data-checksums
-## ref: https://github.com/docker-library/docs/blob/master/postgres/content.md#postgres_initdb_args
-## ref: https://www.postgresql.org/docs/current/static/app-initdb.html
-# postgresInitdbArgs:
-
-## Use an alternate scheduler, e.g. "stork".
-## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
-##
-# schedulerName:
-
-## Specify runtime config parameters as a dict, using camelCase, e.g.
-## {"sharedBuffers": "500MB"}
-## ref: https://www.postgresql.org/docs/current/static/runtime-config.html
-# postgresConfig:
-
-## Persist data to a persitent volume
-persistence:
-  enabled: false
-
-  ## A manually managed Persistent Volume and Claim
-  ## Requires persistence.enabled: true
-  ## If defined, PVC must be created manually before volume will be bound
-  # existingClaim:
-
-  ## 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: 8Gi
-  subPath: "postgresql-db"
-  mountPath: /var/lib/postgresql/data/pgdata
-
-  # annotations: {}
-
-metrics:
-  enabled: false
-  image: wrouesnel/postgres_exporter
-  imageTag: v0.1.1
-  imagePullPolicy: IfNotPresent
-  resources:
-    requests:
-      memory: 256Mi
-      cpu: 100m
-    ## Define additional custom metrics
-    ## ref: https://github.com/wrouesnel/postgres_exporter#adding-new-metrics-via-a-config-file
-    # customMetrics:
-    #   pg_database:
-    #     query: "SELECT d.datname AS name, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE 0 END AS size FROM pg_catalog.pg_database d where datname not in ('template0', 'template1', 'postgres')"
-    #     metrics:
-    #       - name:
-    #           usage: "LABEL"
-    #           description: "Name of the database"
-    #       - size_bytes:
-    #           usage: "GAUGE"
-    #           description: "Size of the database in bytes"
-
-## Configure resource requests and limits
-## ref: http://kubernetes.io/docs/user-guide/compute-resources/
-##
-resources:
-  requests:
-    memory: 256Mi
-    cpu: 100m
-
-service:
-  type: ClusterIP
-  port: 5432
-  externalIPs: []
-  ## Manually set NodePort value
-  ## Requires service.type: NodePort
-  # nodePort:
-
-networkPolicy:
-  ## Enable creation of NetworkPolicy resources.
-  ##
-  enabled: false
-
-  ## The Policy model to apply. When set to false, only pods with the correct
-  ## client label will have network access to the port PostgreSQL is listening
-  ## on. When true, PostgreSQL will accept connections from any source
-  ## (with the correct destination port).
-  ##
-  allowExternal: true
-
-## Node labels and tolerations for pod assignment
-## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
-## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature
-nodeSelector: {}
-tolerations: []
-affinity: {}
diff --git a/kubernetes/dmaap/resources/config/README.txt b/kubernetes/dmaap/resources/config/README.txt
deleted file mode 100644 (file)
index 5cc0149..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-This directory contains all external configuration files that
-need to be mounted into an application container.
-
-See the configmap.yaml in the templates directory for an example
-of how to load (ie map) config files from this directory, into
-Kubernetes, for distribution within the k8s cluster.
-
-See deployment.yaml in the templates directory for an example
-of how the 'config mapped' files are then mounted into the
-containers.
diff --git a/kubernetes/dmaap/resources/config/application.properties b/kubernetes/dmaap/resources/config/application.properties
deleted file mode 100644 (file)
index 496a15a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-sampleConfigKey=sampleConfigValue
\ No newline at end of file
diff --git a/kubernetes/dmaap/resources/config/buscontroller.env b/kubernetes/dmaap/resources/config/buscontroller.env
deleted file mode 100644 (file)
index 74d7822..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-DMAAPBC_PG_ENABLED=true
-DMAAPBC_PGHOST=dmaap-prov-postgresql
-DMAAPBC_PGDBNAME={{ .Values.global.postgresDatabase }}
-DMAAPBC_PGCRED={{ .Values.global.postgresPassword }}
-DMAAPBC_PGUSER={{ .Values.global.postgresUser }}
-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/templates/deployment.yaml b/kubernetes/dmaap/templates/deployment.yaml
deleted file mode 100644 (file)
index cfc4db0..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright © 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.
-
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: {{ include "common.name" . }}-{{ .Values.buscontroller.service }}
-  namespace: {{ .Values.global.nsPrefix }}
-  labels:
-    app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  replicas: {{ .Values.buscontroller.replicaCount }}
-  template:
-    metadata:
-      labels:
-        app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }}
-        release: {{ .Release.Name }}
-    spec:
-      initContainers:
-#Example init container for dependency checking
-#      - command:
-#        - /root/ready.py
-#        args:
-#        - --container-name
-#        - mariadb
-#        env:
-#        - name: NAMESPACE
-#          valueFrom:
-#            fieldRef:
-#              apiVersion: v1
-#              fieldPath: metadata.namespace
-#        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
-#        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-#        name: {{ include "common.name" . }}-readiness
-      containers:
-        - name: {{ include "common.name" . }}-{{ .Values.buscontroller.service }}
-          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image.buscontrollerImage }}:{{ .Values.image.buscontrollerVersion }}"
-          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-          ports:
-          - containerPort: {{ .Values.buscontroller.httpExternalPort }}
-# wait till we get SSL certs before enabling this port
-#          - containerPort: {{ .Values.buscontroller.httpsPort }}
-          # disable liveness probe when breakpoints set in debugger
-          # so K8s doesn't restart unresponsive container
-          {{- if eq .Values.liveness.enabled true }}
-          livenessProbe:
-            httpGet:
-              port: {{ .Values.buscontroller.httpExternalPort }}
-              path: /webapi/info
-            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.liveness.periodSeconds }}
-          {{ end -}}
-          readinessProbe:
-            httpGet:
-              port: {{ .Values.buscontroller.httpExternalPort }}
-              path: /webapi/info
-            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
-            periodSeconds: {{ .Values.readiness.periodSeconds }}
-          env:
-#Example environment variable passed to container
-#            - name: DEBUG_FLAG
-#              value: {{ .Values.global.debugEnabled | default .Values.debugEnabled | quote }}
-          volumeMounts:
-          - mountPath: /etc/localtime
-            name: localtime
-            readOnly: true
-          - mountPath: /opt/app/config
-            name: {{ include "common.name" . }}-config
-          resources:
-{{ toYaml .Values.resources | indent 12 }}
-        {{- if .Values.nodeSelector }}
-        nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 10 }}
-        {{- end -}}
-        {{- if .Values.affinity }}
-        affinity:
-{{ toYaml .Values.affinity | indent 10 }}
-        {{- end }}
-
-      volumes:
-        - name: localtime
-          hostPath:
-            path: /etc/localtime
-        - name: {{ include "common.name" . }}-config
-          configMap:
-            name: {{ include "common.fullname" . }}-configmap
-            items:
-            - key: buscontroller.env
-              path: conf
-#Example config file mount into container
-#        - name: {{ include "common.fullname" . }}-config
-#          configMap:
-#            name: {{ include "common.fullname" . }}-configmap
-#            items:
-#            - key: application.properties
-#              path: application.properties
-      imagePullSecrets:
-      - name: "{{ .Values.global.nsPrefix }}-docker-registry-key"
diff --git a/kubernetes/dmaap/templates/service.yaml b/kubernetes/dmaap/templates/service.yaml
deleted file mode 100644 (file)
index 9580e75..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright © 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.
-
-#{{ if not .Values.disableBuscontroller }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ include "common.name" . }}-{{ .Values.buscontroller.service }}
-  namespace: {{ .Values.global.nsPrefix }}
-  labels:
-    app: {{ .Values.buscontroller.service }}
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-  annotations:
-# Example MSB registration annotation
-#    msb.onap.org/service-info: '[
-#      {
-#          "serviceName": "so",
-#          "version": "v1",
-#          "url": "/ecomp/mso/infra",
-#          "protocol": "REST"
-#          "port": "8080",
-#          "visualRange":"1"
-#      }
-#      ]'
-spec:
-  type: {{ .Values.buscontroller.type }}
-  ports:
-    {{if eq .Values.buscontroller.type "NodePort" -}}
-    - port: {{ .Values.buscontroller.httpExternalPort }}
-      targetPort: {{ .Values.buscontroller.httpExternalPort }}
-      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.buscontroller.httpPort }}
-      name: "{{ .Values.buscontroller.name }}-http-port"
-#    This will be needed when we get SSL certificates
-#    - port: {{ .Values.buscontroller.httpsExternalPort }}
-#      targetPort: {{ .Values.buscontroller.httpsExternalPort }}
-#      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.buscontroller.httpsPort }}
-#      name: "{{ .Values.buscontroller.name }}-https-port"
-    {{- else -}}
-    - port: {{ .Values.buscontroller.externalPort }}
-      targetPort: {{ .Values.buscontroller.httpPort }}
-      name: {{ .Values.buscontroller.name }}
-    {{- end}}
-  selector:
-    app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }}
-    release: {{ .Release.Name }}
-
-#{{ end }}
index f6c4984..76f0383 100644 (file)
@@ -24,95 +24,4 @@ global:
   loggingImage: beats/filebeat:5.5.0
   postgresDatabase: dmaap
   postgresUser: dmaap_admin
-  postgresPassword: onapdemodb
-  nsPrefix: onap
-
-
-#################################################################
-# Application configuration defaults.
-#################################################################
-#nsPrefix: onap
-pullPolicy: Always
-
-# application images
-repository: nexus3.onap.org:10001
-
-image:
-  buscontrollerImage: onap/dmaap/buscontroller
-  buscontrollerVersion: 1.0.5
-
-
-# application configuration
-# Example:
-config:
-#  username: myusername
-#  password: mypassword
-dmaapMessageRouterService: dmaap
-aafURL: https://onap-aaf:8905/proxy/
-topicMgrUser: m23456@dmaapbc.onap.org
-topicMgrPwd: onapdemo
-adminUser: m12345@dmaapbc.onap.org
-adminPwd: onapdemo
-
-
-
-nodeSelector: {}
-
-affinity: {}
-
-# probe configuration parameters
-liveness:
-  initialDelaySeconds: 10
-  periodSeconds: 10
-  # necessary to disable liveness probe when setting breakpoints
-  # in debugger so K8s doesn't restart unresponsive container
-  enabled: true
-
-readiness:
-  initialDelaySeconds: 10
-  periodSeconds: 10
-
-buscontroller:
-  service: prov-api
-  type: NodePort
-  name: buscontroller
-  httpExternalPort: 8080
-  httpsExternalPort: 8443
-  httpPort: 42
-  httpsPort: 43
-# default number of instances
-  replicas: 1
-# flag to enable debugging - application support required
-  debugEnabled: false
-
-service:
-  #Example service definition with external, internal and node ports.
-  #Services may use any combination of ports depending on the 'type' of
-  #service being defined.
-  type: NodePort
-  name: <onap-app>
-  externalPort: <8080>
-  internalPort: <80>
-  nodePort: <replace with unused node port suffix eg. 23>
-
-ingress:
-  enabled: false
-
-resources: {}
-  # We usually recommend not to specify default resources and to leave this as a conscious
-  # choice for the user. This also increases chances charts run on environments with little
-  # resources, such as Minikube. If you do want to specify resources, uncomment the following
-  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
-  #
-  # Example:
-  # Configure resource requests and limits
-  # ref: http://kubernetes.io/docs/user-guide/compute-resources/
-  # Minimum memory for development is 2 CPU cores and 4GB memory
-  # Minimum memory for production is 4 CPU cores and 8GB memory
-#resources:
-#  limits:
-#    cpu: 2
-#    memory: 4Gi
-#  requests:
-#    cpu: 2
-#    memory: 4Gi
+  postgresPassword: onapdemodb
\ No newline at end of file
diff --git a/kubernetes/multicloud/charts/multicloud-ocata/templates/NOTES.txt b/kubernetes/multicloud/charts/multicloud-ocata/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..befedf4
--- /dev/null
@@ -0,0 +1,34 @@
+# 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.
+
+
+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 }}
index db03975..a1f72ea 100644 (file)
@@ -60,6 +60,9 @@ service:
   internalPort: 9006
   nodePort: 93
 
+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
diff --git a/kubernetes/multicloud/charts/multicloud-vio/templates/NOTES.txt b/kubernetes/multicloud/charts/multicloud-vio/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..befedf4
--- /dev/null
@@ -0,0 +1,34 @@
+# 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.
+
+
+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 }}
index 187f2b9..4fea235 100644 (file)
@@ -60,6 +60,9 @@ service:
   internalPort: 9004
   nodePort: 92
 
+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
diff --git a/kubernetes/multicloud/charts/multicloud-windriver/templates/NOTES.txt b/kubernetes/multicloud/charts/multicloud-windriver/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..befedf4
--- /dev/null
@@ -0,0 +1,34 @@
+# 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.
+
+
+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 }}
index 1126284..919289c 100644 (file)
@@ -60,6 +60,9 @@ liveness:
   failureThreshold: 5
   enabled: true
 
+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
diff --git a/kubernetes/multicloud/resources/config/provider-plugin.json b/kubernetes/multicloud/resources/config/provider-plugin.json
new file mode 100644 (file)
index 0000000..0ac4701
--- /dev/null
@@ -0,0 +1,29 @@
+{
+    "openstack": {
+        "vim_type": "openstack",
+        "versions": {
+            "titanium_cloud": {
+                "version": "titanium_cloud",
+                "extra_info_hint": "",
+                "provider_plugin": "multicloud-titanium_cloud"
+            },
+            "ocata": {
+                "version": "ocata",
+                "extra_info_hint": "",
+                "provider_plugin": "multicloud-ocata"
+            }
+        },
+        "provider_plugin": "multicloud-ocata"
+    },
+    "vmware": {
+        "vim_type": "vmware",
+        "versions": {
+            "4.0": {
+                "version": "4.0",
+                "extra_info_hint": "",
+                "provider_plugin": "multicloud-vio"
+            }
+        },
+        "provider_plugin": "multicloud-vio"
+    }
+}
\ No newline at end of file
diff --git a/kubernetes/multicloud/templates/NOTES.txt b/kubernetes/multicloud/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..befedf4
--- /dev/null
@@ -0,0 +1,34 @@
+# 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.
+
+
+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 }}
index e420fb9..dc356a3 100644 (file)
@@ -29,3 +29,11 @@ metadata:
   namespace: {{ include "common.namespace" . }}
 data:
 {{ tpl (.Files.Glob "resources/config/log/framework/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-provider-plugin-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/provider-plugin.json").AsConfig . | indent 2 }}
index f42d5f3..3a0671c 100644 (file)
@@ -61,6 +61,9 @@ spec:
        - mountPath: /opt/multivimbroker/multivimbroker/pub/config/log.yml
          name: framework-logconfig
          subPath: log.yml
+       - mountPath: /opt/multivimbroker/multivimbroker/pub/config/provider-plugin.json
+         name: provider-plugin
+         subPath: provider-plugin.json
        ports:
        - containerPort: {{ .Values.service.internalPort }}
        # disable liveness probe when breakpoints set in debugger
@@ -104,6 +107,9 @@ spec:
      volumes:
      - name: framework-log
        emptyDir: {}
+     - name: provider-plugin
+       configMap:
+         name: {{ include "common.fullname" . }}-provider-plugin-configmap
      - name: framework-data-filebeat
        emptyDir: {}
      - name: filebeat-conf
index d2cacb6..8c9c128 100644 (file)
@@ -48,6 +48,10 @@ dependencies:
     version: ~2.0.0
     repository: '@local'
     condition: dcaegen2.enabled
+  - name: dmaap
+    version: ~2.0.0
+    repository: '@local'
+    condition: dmaap.enabled
   - name: esr
     version: ~2.0.0
     repository: '@local'
index a8dd524..651cb91 100644 (file)
@@ -93,10 +93,6 @@ sdnc:
   config:
     enableClustering: false
 
-  dmaap-listener:
-    config:
-      dmaapPort: 3904
-
   mysql:
     disableNfsProvisioner: false
     replicaCount: 1
index a242771..470fdfb 100644 (file)
@@ -94,10 +94,6 @@ sdnc:
   config:
     enableClustering: false
 
-  dmaap-listener:
-    config:
-      dmaapPort: 3904
-
   mysql:
     disableNfsProvisioner: true
     replicaCount: 1
index c4cc253..c59ed08 100644 (file)
@@ -30,6 +30,14 @@ spec:
         app: {{ include "common.name" . }}
         release: {{ .Release.Name }}
     spec:
+      initContainers:
+      - command: ["sh", "-c", "chown -R 200:200 /share"]
+        image: "{{ .Values.global.ubuntuInitRepository }}/{{ .Values.global.ubuntuInitImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-init
+        volumeMounts:
+        - mountPath: /share
+          name: nexus-data
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
@@ -53,6 +61,8 @@ spec:
           - mountPath: /etc/localtime
             name: localtime
             readOnly: true
+          - mountPath: /sonatype-work
+            name: nexus-data
           resources:
 {{ toYaml .Values.resources | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -67,5 +77,12 @@ spec:
         - name: localtime
           hostPath:
             path: /etc/localtime
+        - name: nexus-data
+        {{- if .Values.persistence.enabled }}
+          persistentVolumeClaim:
+            claimName: {{ include "common.fullname" . }}
+        {{- else }}
+          emptyDir: {}
+        {{- end }}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml b/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml
new file mode 100644 (file)
index 0000000..8be3d4c
--- /dev/null
@@ -0,0 +1,37 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size }}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }}
+{{- end -}}
diff --git a/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml b/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml
new file mode 100644 (file)
index 0000000..e27c331
--- /dev/null
@@ -0,0 +1,48 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  selector:
+    matchLabels:
+      name: {{ include "common.fullname" . }}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.size }}
+{{- if .Values.persistence.storageClass }}
+{{- if (eq "-" .Values.persistence.storageClass) }}
+  storageClassName: ""
+{{- else }}
+  storageClassName: "{{ .Values.persistence.storageClass }}"
+{{- end }}
+{{- end }}
+{{- end -}}
index 250f0a7..6679876 100644 (file)
@@ -20,6 +20,9 @@ global:
   repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
   readinessRepository: oomk8s
   readinessImage: readiness-check:2.0.0
+  ubuntuInitRepository: oomk8s
+  ubuntuInitImage: ubuntu-init:1.0.0
+  persistence: {}
 
 #################################################################
 # Application configuration defaults.
@@ -64,6 +67,15 @@ service:
 ingress:
   enabled: false
 
+## Persist data to a persitent volume
+persistence:
+  enabled: true
+  volumeReclaimPolicy: Retain
+  accessMode: ReadWriteMany
+  size: 2Gi
+  mountPath: /dockerdata-nfs
+  mountSubPath: nexus/data
+
 resources: {}
   # We usually recommend not to specify default resources and to leave this as a conscious
   # choice for the user. This also increases chances charts run on environments with little
index 7a616d7..5dd49ed 100644 (file)
@@ -23,7 +23,7 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 spec:
-  serviceName: {{ include "common.fullname" . }}
+  serviceName: {{ include "common.servicename" . }}
   replicas: {{ .Values.replicaCount }}
   selector:
     matchLabels:
index 48fafcb..7b13116 100644 (file)
@@ -30,7 +30,7 @@ TOMCAT_X_MX_MB=1024
 UEB_CLUSTER=message-router
 
 REST_PAP_URL=http://{{ .Values.global.pap.nameOverride }}:{{.Values.config.papPort}}/pap/
-REST_PDP_ID=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort}}/pdp/
+REST_PDP_ID=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort}}/pdp/
 REST_PDP_CONFIG=/opt/app/policy/servers/pdp/bin/config
 REST_PDP_WEBAPPS=/opt/app/policy/servers/pdp/webapps
 REST_PDP_REGISTER=true
index 2021c09..f5f4060 100644 (file)
@@ -17,7 +17,7 @@ LOGPARSER_JMX_PORT=9997
 LOGPARSER_X_MS_MB=1024
 LOGPARSER_X_MX_MB=1024
 
-SERVER=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort}}/pdp/
+SERVER=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort}}/pdp/
 LOGPATH=/opt/app/policy/servers/pdp/logs/pdp-rest.log
 PARSERLOGPATH=IntegrityMonitor.log
 
index fc608d5..d44fbb9 100644 (file)
@@ -49,3 +49,4 @@ spec:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
   sessionAffinity: None
+  clusterIP: None
index d09c446..29ded61 100644 (file)
@@ -23,7 +23,7 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 spec:
-  serviceName: {{ include "common.fullname" . }}
+  serviceName: {{ include "common.servicename" . }}
   replicas: {{ .Values.replicaCount }}
   selector:
     matchLabels:
index 4f63e32..3287c9f 100644 (file)
@@ -58,13 +58,11 @@ readiness:
   periodSeconds: 10
 
 service:
-  type: NodePort
+  type: ClusterIP
   name: pdp
   portName: pdp
+  internalPort: 8081
   externalPort: 8081
-  #Example internal target port if required
-  #internalPort: <80>
-  nodePort: 20
 
 ingress:
   enabled: false
index 768ebc9..39199d7 100644 (file)
@@ -28,7 +28,7 @@ TOMCAT_X_MX_MB=1024
 # pap properties
 
 PAP_PDPS=/opt/app/policy/servers/pap/bin/pdps
-PAP_URL=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort2}}/pap/
+PAP_URL=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort2}}/pap/
 
 PAP_INITIATE_PDP=true
 PAP_HEARTBEAT_INTERVAL=10000
@@ -39,7 +39,7 @@ REST_ADMIN_REPOSITORY=repository
 REST_ADMIN_WORKSPACE=workspace
 
 # PDP related properties
-PAP_PDP_URL=http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-0.{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/,http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-1.{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/
+PAP_PDP_URL=http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-0.{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/,http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-1.{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/
 PAP_PDP_HTTP_USER_ID=testpdp
 PAP_PDP_HTTP_PASSWORD=alpha123
 
index 430feb4..205497c 100644 (file)
@@ -17,7 +17,7 @@ LOGPARSER_JMX_PORT=9996
 LOGPARSER_X_MS_MB=1024
 LOGPARSER_X_MX_MB=1024
 
-SERVER=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort2}}/pap/
+SERVER=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort2}}/pap/
 LOGPATH=/opt/app/policy/servers/pap/logs/pap-rest.log
 PARSERLOGPATH=IntegrityMonitor.log
 
index 876c5c7..9c6fc51 100755 (executable)
@@ -4,7 +4,7 @@
 # validator settings
 #default_error_message = Default error message
 
-login_url_no_ret_val = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/login.htm
+login_url_no_ret_val = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/login.htm
 
 user_attribute_name      = user
 
index e375ac7..10bfa47 100644 (file)
@@ -13,7 +13,7 @@ music.serialize.compress = true
 #By default it's eventual
 music.atomic.get = false
 music.atomic.put = true
-cassandra.host={{.Values.cassandra.chart.name}}.{{.Release.Namespace}}
-zookeeper.host={{.Values.zookeeper.chart.name}}.{{.Release.Namespace}}
+cassandra.host={{.Values.cassandra.service.name}}
+zookeeper.host={{.Values.zookeeper.service.name}}
 cassandra.user={{.Values.cassandra.config.cassandraUsername}}
 cassandra.password={{.Values.cassandra.config.cassandraPassword}}
index 2a33551..f99b223 100755 (executable)
@@ -1,3 +1,3 @@
-authentication_server_url = http://portal.api.simpledemo.onap.org:8383/openid-connect-server-webapp/
-ecomp_openid_connect_client = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/openid_connect_login
-ecomp_redirect_uri = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/welcome.htm
+authentication_server_url = http://{{.Values.global.portalHostName}}:8383/openid-connect-server-webapp/
+ecomp_openid_connect_client = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/openid_connect_login
+ecomp_redirect_uri = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/welcome.htm
index 0e3381c..7561e3a 100755 (executable)
@@ -5,10 +5,10 @@ max.idle.time = 5
 user.attribute.name = user_attribute
 
 # for single sign on
-ecomp_redirect_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/login.htm
+ecomp_redirect_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/login.htm
 
 # URL of the ECOMP Portal REST API
-ecomp_rest_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/auxapi
+ecomp_rest_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/auxapi
 
 ueb_listeners_enable = true
 
@@ -16,7 +16,7 @@ ueb_app_key = 7GkVcrO6sIDb3ngW
 ueb_app_secret = uCYgKjWKK5IxPGNNZzYSSWo9
 ueb_app_mailbox_name = ECOMP-PORTAL-INBOX
 
-ueb_url_list = {{.Values.messageRouter.chart.name}}.{{.Release.Namespace}}
+ueb_url_list = message-router
 ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX
 
 # Consumer group name for UEB topic.
index 29149bc..109d8d2 100755 (executable)
@@ -1,6 +1,6 @@
 #mysql
 db.driver = org.mariadb.jdbc.Driver
-db.connectionURL = jdbc:mariadb:failover://{{.Values.mariadb.chart.name}}.{{.Release.Namespace}}:3306/portal
+db.connectionURL = jdbc:mariadb:failover://portal-db:3306/portal
 db.userName =root
 db.password =Aa123456
 db.hib.dialect = org.hibernate.dialect.MySQLDialect
@@ -44,7 +44,7 @@ log_cron                      = 0 * * * * ? *
 sessiontimeout_feed_cron         = 0 0/5 * * * ? *
 
 #Front end URL
-frontend_url                  = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/applicationsHome
+frontend_url                  = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/applicationsHome
 
 
 # An Unqiue 128-bit value defined to indentify a specific version of
@@ -70,7 +70,7 @@ online_user_update_rate                  = 30
 online_user_update_duration       = 300
 
 #authenticate user server
-authenticate_user_server=http://portal.api.simpledemo.onap.org:8383/openid-connect-server-webapp/allUsers
+authenticate_user_server=http://{{.Values.global.portalHostName}}:8383/openid-connect-server-webapp/allUsers
 
 #window width threshold to collapse left/right menu when page onload
 window_width_threshold_left_menu = 1400
@@ -82,7 +82,7 @@ notification_update_duration = 900
 
 #Microservices Related Properties for Portal
 microservices.widget.protocol = http
-microservices.widget.hostname = {{.Values.widget.chart.name}}.{{.Release.Namespace}}
+microservices.widget.hostname = portal-widget
 microservices.widget.username = widget_user
 microservices.widget.password = M+KcrCMVrR1rAxtiFE49n1uXC3FCkNBqFgeYsubEC/U=
 #This property won't be needed after consul is functional on VMs -
index f9339e6..4ccf2b0 100644 (file)
@@ -29,14 +29,14 @@ metadata:
           "version": "v2",
           "url": "/",
           "protocol": "REST"
-          "port": "8989",
+          "port": "{{ .Values.service.externalPort }}",
           "visualRange":"1"
       }
       ]'
 spec:
   type: {{ .Values.service.type }}
   ports:
-    {{if eq .Values.service.type "NodePort" -}}
+    {{- 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 }}
@@ -59,7 +59,7 @@ spec:
     - port: {{ .Values.service.externalPort3 }}
       targetPort: {{ .Values.service.internalPort3 }}
       name: {{ .Values.service.portName }}3
-    {{- end}}
+    {{- end }}
   selector:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
index 1663674..657fa18 100644 (file)
@@ -31,9 +31,6 @@ repository: nexus3.onap.org:10001
 image: onap/portal-app:2.1-STAGING-latest
 pullPolicy: Always
 
-# flag to enable debugging - application support required
-debugEnabled: false
-
 # default number of instances
 replicaCount: 1
 
@@ -54,7 +51,7 @@ readiness:
   periodSeconds: 10
 
 service:
-  type: NodePort
+  type: LoadBalancer
   name: portal-app
   portName: portal-app
   externalPort: 8989
@@ -68,22 +65,22 @@ service:
   nodePort3: 14
 
 mariadb:
-  chart:
+  service:
     name: portal-db
 widget:
-  chart:
+  service:
     name: portal-widget
 cassandra:
-  chart:
+  service:
     name: portal-cassandra
   config:
     cassandraUsername: root
     cassandraPassword: Aa123456
 zookeeper:
-  chart:
+  service:
     name: portal-zookeeper
 messageRouter:
-  chart:
+  service:
     name: message-router
 
 ingress:
index 781b046..f6bd05f 100644 (file)
@@ -4,5 +4,21 @@ Any updates required by OOM to the portaldb are made here.
 1. split up SDC-FE and SDC-BE.  Originally both FE and BE point to the same IP
 while the OOM K8s version has these service split up.
 */
-UPDATE fn_app SET app_rest_endpoint = 'http://sdc.api.be.simpledemo.onap.org:8080/api/v2' where app_name = 'SDC';
-UPDATE fn_app SET app_url = 'http://cli.api.simpledemo.onap.org:8080', app_type = 1 where app_name='CLI';
+-- app_url is the FE, app_rest_endpoint is the BE
+--portal-sdk => TODO: doesn't open a node port yet
+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';
+--dmaap-bc => the dmaap-bc doesn't open a node port..
+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';
+--sdc-be => 8443:30204, 8080:30205
+--sdc-fe => 8181:30206, 9443:30207
+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';
+--pap => 8443:30219
+update fn_app set app_url = 'http://{{.Values.config.papHostName}}:{{.Values.config.papPort}}/onap/policy', app_rest_endpoint = 'http://pap:8443/onap/api/v2' where app_name = 'Policy';
+--vid => 8080:30200
+update fn_app set app_url = 'http://{{.Values.config.vidHostName}}:{{.Values.config.vidPort}}/vid/welcome.htm', app_rest_endpoint = 'http://vid:8080/vid/api/v2' where app_name = 'Virtual Infrastructure Deployment';
+--sparky => TODO: sparky doesn't open a node port yet
+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';
+--cli => 8080:30260
+update fn_app set app_url = 'http://{{.Values.config.cliHostName}}:{{.Values.config.cliPort}}/', app_type = 1 where app_name = 'CLI';
+--msb-discovery => 10081:30281  this is clearly incorrect
+update fn_app set app_url = 'http://{{.Values.config.msbDiscoveryHostName}}:{{.Values.config.msbDiscoveryPort}}/iui/microservices/default.html' where app_name = 'MSB';
\ No newline at end of file
index 8118db3..7d9b82a 100644 (file)
@@ -36,7 +36,38 @@ config:
   mariadbRootPassword: Aa123456
   #The directory where sql files are found in the projects gerrit repo.
   sqlSourceDirectory: portal/deliveries
-
+  # sdc frontend assignment for port 8181
+  sdcFePort: "30206"
+  # application's front end hostname.  Must be resolvable on the client side environment
+  sdcFeHostName: "sdc.api.fe.simpledemo.onap.org"
+  # policy pap ui assignment for port 8443
+  papPort: "30219"
+  # application's front end hostname.  Must be resolvable on the client side environment
+  papHostName: "policy.api.simpledemo.onap.org"
+  # vid ui  assignment for port 8080
+  vidPort: "30200"
+  # application's front end hostname.  Must be resolvable on the client side environment
+  vidHostName: "vid.api.simpledemo.onap.org"
+  # aai sparky ui assignment for port 8080
+  aaiSparkyPort: "" # TODO: populate with
+  # application's front end hostname.  Must be resolvable on the client side environment
+  aaiSparkyHostName: "aai.api.sparky.simpledemo.onap.org"
+  # cli ui  assignment for port 8080
+  cliPort: "30260"
+  # application's front end hostname.  Must be resolvable on the client side environment
+  cliHostName: "cli.api.simpledemo.onap.org"
+  # portal sdk (demo app) ui assignment for port 8990
+  portalSdkPort: "" # TODO: populate with port
+  # application's front end hostname.  Must be resolvable on the client side environment
+  portalSdkHostName: "portal-sdk.simpledemo.onap.org"
+  # dmaap bus controller ui assignment for port ?
+  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"
+  # application's front end hostname.  Must be resolvable on the client side environment
+  msbDiscoveryHostName: "msb.api.discovery.simpledemo.onap.org"
 
 # default number of instances
 replicaCount: 1
index 72e9700..b177976 100644 (file)
@@ -14,7 +14,7 @@ music.serialize.compress = true
 music.atomic.get = false
 music.atomic.put = true
 
-cassandra.host={{.Values.cassandra.chart.name}}.{{.Release.Namespace}}
-zookeeper.host={{.Values.zookeeper.chart.name}}.{{.Release.Namespace}}
+cassandra.host={{.Values.cassandra.service.name}}
+zookeeper.host={{.Values.zookeeper.service.name}}
 cassandra.user={{.Values.cassandra.config.cassandraUsername}}
 cassandra.password={{.Values.cassandra.config.cassandraPassword}}
index 4b6f251..f161609 100755 (executable)
@@ -20,17 +20,17 @@ 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://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/login.htm
+ecomp_redirect_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/login.htm
 
 # URL of the ECOMP Portal REST API
 
-ecomp_rest_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/auxapi
+ecomp_rest_url = http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/auxapi
 
 # Applications do not need to run a UEB listener in 1610.
 ueb_listeners_enable = false
 
 # UEB Configuration
-ueb_url_list = {{.Values.messageRouter.chart.name}}.{{.Release.Namespace}}
+ueb_url_list = message-router
 # ECOMP Portal listens on this UEB topic
 ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX
 # Replace these 3 default values with the ones for your specific App,
index cec75f0..2d92cd3 100755 (executable)
@@ -24,7 +24,7 @@ decryption_key                                  = AGLDdG4D04BKm2IxIWEr8o==
 ##########################################################################
 
 db.driver = org.mariadb.jdbc.Driver
-db.connectionURL = jdbc:mariadb://{{.Values.mariadb.chart.name}}.{{.Release.Namespace}}:3306/ecomp_sdk
+db.connectionURL = jdbc:mariadb://portal-db:3306/ecomp_sdk
 db.userName = root
 db.password = Aa123456
 db.min_pool_size = 5
@@ -62,7 +62,7 @@ guard_notebook_url=
 
 #authenticate user server
 #TODO: what is this URL supposed to be pointing to?  Nothing in portal opens 8383
-authenticate_user_server=http://portal.onap.org:8383/openid-connect-server-webapp/allUsers
+authenticate_user_server=http://{{.Values.global.portalHostName}}:8383/openid-connect-server-webapp/allUsers
 
 #cookie domain
 cookie_domain = onap.org
index 1c94c78..3b1d1fd 100644 (file)
@@ -38,7 +38,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - {{ .Values.mariadb.chart.name }}
+        - "portal-db"
         env:
         - name: NAMESPACE
           valueFrom:
index 1bb7e5a..4974ea2 100644 (file)
@@ -61,22 +61,22 @@ service:
   internalPort: 8080
 
 mariadb:
-  chart:
+  service:
     name: portal-db
 widget:
-  chart:
+  service:
     name: portal-widget
 cassandra:
-  chart:
+  service:
     name: portal-cassandra
   config:
     cassandraUsername: root
     cassandraPassword: Aa123456
 zookeeper:
-  chart:
+  service:
     name: portal-zookeeper
 messageRouter:
-  chart:
+  service:
     name: message-router
 
 ingress:
index e228e2b..7388349 100644 (file)
@@ -6,7 +6,7 @@ spring.http.multipart.max-request-size=128MB
 microservice.widget.location=/tmp
 
 ## App DB Properties
-spring.datasource.url=jdbc:mysql://{{.Values.mariadb.chart.name}}.{{include "common.namespace" .}}:3306/portal
+spring.datasource.url=jdbc:mysql://portal-db:3306/portal
 spring.datasource.username=root
 spring.datasource.password=Aa123456
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
@@ -19,7 +19,7 @@ security.user.name=widget_user
 security.user.password=ENC(IjywcRnI9+nuVEh9+OFFiRWAjBT1n718)
 
 initialization.default.widgets=true
-initialization.widgetData.url=http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/commonWidgets
+initialization.widgetData.url=http://{{.Values.global.portalHostName}}:{{.Values.global.portalPort}}/ONAPPORTAL/commonWidgets
 
 ## Account Basic Authentication Properties
 account.user.name=portal
index bff7924..6ce7d4e 100644 (file)
@@ -38,7 +38,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - {{ .Values.mariadb.chart.name }}
+        - "portal-db"
         env:
         - name: NAMESPACE
           valueFrom:
index dc73446..4f1a2a5 100644 (file)
@@ -55,7 +55,7 @@ readiness:
   periodSeconds: 10
 
 mariadb:
-  chart:
+  service:
     name: portal-db
 
 service:
index 52408a8..951acf5 100644 (file)
@@ -48,7 +48,7 @@ readiness:
 
 service:
   type: ClusterIP
-  name: portal-zk
+  name: portal-zookeeper
   portName: portal-zk
   externalPort: 2181
   internalPort: 2181
index b0d4690..0bc14ea 100644 (file)
@@ -21,7 +21,7 @@ output.logstash:
   #List of logstash server ip addresses with port number.
   #But, in our case, this will be the loadbalancer IP address.
   #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
-  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
+  hosts: ["{{.Values.config.logstashServiceName}}:{{.Values.config.logstashPort}}"]
   #If enable will do load balancing among availabe Logstash, automatically.
   loadbalance: true
 
index e22b3f9..ebbfbc3 100644 (file)
 global:
   env:
     tomcatDir: "/opt/apache-tomcat-8.0.37"
+  # portal frontend port
+  portalPort: "8989"
+  # application's front end hostname.  Must be resolvable on the client side environment
+  portalHostName: "portal.api.simpledemo.onap.org"
+
 config:
   logstashServiceName: log-ls
   logstashPort: 5044
@@ -23,21 +28,21 @@ portal-mariadb:
   nameOverride: portal-db
 
 mariadb:
-  chart:
+  service:
     name: portal-db
 widget:
-  chart:
+  service:
     name: portal-widget
 cassandra:
-  chart:
+  service:
     name: portal-cassandra
   config:
     cassandraUsername: root
     cassandraPassword: Aa123456
 zookeeper:
-  chart:
+  service:
     name: portal-zookeeper
 
 messageRouter:
-  chart:
+  service:
     name: message-router
\ No newline at end of file
index d5e7a03..de33627 100755 (executable)
@@ -36,7 +36,11 @@ function usage
 }
 
 # Set the defaults
-if [ $# -le 2 ];then
+
+echo "Number of parameters:" 
+echo $#
+
+if [ $# -lt 2 ];then
        usage
        exit
 fi
@@ -47,9 +51,11 @@ shift
 ##
 ## if more than 1 tag is supplied, the must be provided with -i or -e
 ##
-while [ $# -gt 1 ]
+while [ $# -gt 0 ]
 do
-       key="$2"
+       key="$1"
+        echo "KEY:"
+        echo $key
 
        case $key in
        init_robot)
index 71e2027..b1a7283 100755 (executable)
@@ -10,13 +10,21 @@ if [ "$1" == "" ] || [ "$2" == "" ]; then
    exit
 fi
 
+
 export NAMESPACE="$1"
+
+POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot)
+
+
 export TAGS="-i $2"
 export ETEHOME=/var/opt/OpenECOMP_ETE
-export OUTPUT_FOLDER=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
+
+#export OUTPUT_FOLDER=ETE_$$
 
 VARIABLEFILES="-V /share/config/vm_properties.py -V /share/config/integration_robot_properties.py -V /share/config/integration_preload_parameters.py"
 VARIABLES="-v GLOBAL_BUILD_NUMBER:$$"
 
-POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot)
 kubectl --namespace $NAMESPACE exec ${POD} -- ${ETEHOME}/runTags.sh ${VARIABLEFILES} ${VARIABLES} -d /share/logs/${OUTPUT_FOLDER} ${TAGS} --display 88
+
index b6305e5..6e566c3 100755 (executable)
@@ -30,7 +30,7 @@ GLOBAL_CLI_SERVER_PROTOCOL = "http"
 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 = "8000"
+GLOBAL_DCAE_HEALTH_SERVER_PORT = "80"
 GLOBAL_DCAE_USERNAME = "console"
 GLOBAL_DCAE_PASSWORD = "ZjJkYjllMjljMTI2M2Iz"
 # microservice bus info - everything is from the private oam network (also called onap private network)
index 7eb7314..7bb8c1c 100755 (executable)
@@ -8,7 +8,7 @@ GLOBAL_INJECTED_ARTIFACTS_VERSION = "{{.Values.demoArtifactsVersion}}"
 GLOBAL_INJECTED_CLAMP_IP_ADDR = "clamp.{{include "common.namespace" .}}"
 GLOBAL_INJECTED_CLI_IP_ADDR = "cli.{{include "common.namespace" .}}"
 GLOBAL_INJECTED_CLOUD_ENV = "openstack"
-GLOBAL_INJECTED_DCAE_IP_ADDR = "dcae-controller.{{include "common.namespace" .}}"
+GLOBAL_INJECTED_DCAE_IP_ADDR = "dcae-healthcheck.{{include "common.namespace" .}}"
 GLOBAL_INJECTED_DNS_IP_ADDR = "N/A"
 GLOBAL_INJECTED_DOCKER_VERSION = "1.2-STAGING-latest"
 GLOBAL_INJECTED_EXTERNAL_DNS = "N/A"
@@ -59,7 +59,7 @@ GLOBAL_INJECTED_PROPERTIES = {
     "GLOBAL_INJECTED_CLAMP_IP_ADDR" : "clamp.{{include "common.namespace" .}}",
     "GLOBAL_INJECTED_CLI_IP_ADDR" : "cli.{{include "common.namespace" .}}",
     "GLOBAL_INJECTED_CLOUD_ENV" : "openstack",
-    "GLOBAL_INJECTED_DCAE_IP_ADDR" : "dcae-controller.{{include "common.namespace" .}}",
+    "GLOBAL_INJECTED_DCAE_IP_ADDR" : "dcae-healthcheck.{{include "common.namespace" .}}",
     "GLOBAL_INJECTED_DNS_IP_ADDR" : "N/A",
     "GLOBAL_INJECTED_DOCKER_VERSION" : "1.2-STAGING-latest",
     "GLOBAL_INJECTED_EXTERNAL_DNS" : "N/A",
index de59fd5..9f8bfd5 100644 (file)
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: Service Design and Creation Backend API
+description: ONAP Service Design and Creation Backend API
 name: sdc-be
 version: 2.0.0
\ No newline at end of file
index d0b8eae..b08c74e 100644 (file)
@@ -36,9 +36,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - "sdc-es"
-        - --container-name
-        - "sdc-cs"
+        - "sdc-onboarding-be"
         env:
         - name: NAMESPACE
           valueFrom:
@@ -54,7 +52,7 @@ spec:
         - /root/job_complete.py
         args:
         - --job-name
-        - {{ .Release.Name }}-sdc-cs-config-cassandra
+        - {{ .Release.Name }}-sdc-es-config-elasticsearch
         env:
         - name: NAMESPACE
           valueFrom:
@@ -63,23 +61,22 @@ spec:
               fieldPath: metadata.namespace
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
           - containerPort: {{ .Values.service.internalPort2 }}
-          # disable liveness probe when breakpoints set in debugger
-          # so K8s doesn't restart unresponsive container
-          {{- if eq .Values.liveness.enabled true }}
+          {{ if eq .Values.liveness.enabled true }}
           livenessProbe:
             tcpSocket:
               port: {{ .Values.service.internalPort }}
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
             periodSeconds: {{ .Values.liveness.periodSeconds }}
-          {{ end -}}
+          {{ end }}
           readinessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
+            exec:
+              command:
+              - "/var/lib/ready-probe.sh"
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           env:
@@ -103,6 +100,7 @@ spec:
             mountPath: /var/log/onap
           - name: {{ include "common.fullname" . }}-logback
             mountPath: /tmp/logback.xml
+            subPath: logback.xml
           lifecycle:
             postStart:
               exec:
index d40ef11..c2203d5 100644 (file)
@@ -23,6 +23,7 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 spec:
+  backoffLimit: 20
   template:
     metadata:
       labels:
@@ -47,7 +48,7 @@ spec:
               fieldPath: metadata.namespace
       containers:
       - name: {{ include "common.name" . }}-job
-        image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.backendInitImage }}"
+        image: "{{ include "common.repository" . }}/{{ .Values.backendInitImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-environments
index 45b5425..4e53e40 100644 (file)
@@ -48,14 +48,14 @@ 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
   enabled: true
 
 readiness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 60
   periodSeconds: 10
 
 service:
index 0e99a9a..81d4f2c 100644 (file)
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: Service Design and Creation Cassandra
+description: ONAP Service Design and Creation Cassandra
 name: sdc-cs
 version: 2.0.0
\ No newline at end of file
index 9cfa084..0ea03f8 100644 (file)
@@ -32,23 +32,22 @@ spec:
     spec:
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
           - containerPort: {{ .Values.service.internalPort2 }}
-          # disable liveness probe when breakpoints set in debugger
-          # so K8s doesn't restart unresponsive container
-          {{- if eq .Values.liveness.enabled true }}
+          {{ if eq .Values.liveness.enabled true }}
           livenessProbe:
             tcpSocket:
               port: {{ .Values.service.internalPort }}
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
             periodSeconds: {{ .Values.liveness.periodSeconds }}
-          {{ end -}}
+          {{ end }}
           readinessProbe:
-            tcpSocket:
-              port: {{ .Values.service.internalPort }}
+            exec:
+              command:
+              - "/var/lib/ready-probe.sh"
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
           env:
@@ -66,7 +65,7 @@ spec:
                 fieldPath: status.podIP
           - name: CS_PASSWORD
             valueFrom:
-              secretKeyRef: {name: {{ include "common.fullname" . }}, key: cs_password}
+              secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: cs_password}
           volumeMounts:
           - name: {{ include "common.fullname" . }}-data
             mountPath: /var/lib/cassandra/
@@ -75,8 +74,6 @@ spec:
           - name: {{ include "common.fullname" . }}-localtime
             mountPath: /etc/localtime
             readOnly: true
-          - name: {{ include "common.fullname" . }}-logs
-            mountPath: /var/lib/jetty/logs
           resources:
 {{ toYaml .Values.resources | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -91,8 +88,6 @@ spec:
       - name: {{ include "common.fullname" . }}-localtime
         hostPath:
           path: /etc/localtime
-      - name: {{ include "common.fullname" . }}-logs
-        emptyDir: {}
       - name: {{ include "common.fullname" . }}-data
       {{- if .Values.persistence.enabled }}
         persistentVolumeClaim:
index 4d341ba..cdccbf4 100644 (file)
@@ -23,6 +23,7 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 spec:
+  backoffLimit: 20
   template:
     metadata:
       labels:
@@ -47,7 +48,7 @@ spec:
               fieldPath: metadata.namespace
       containers:
       - name: {{ include "common.name" . }}-job
-        image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.cassandraInitImage }}"
+        image: "{{ include "common.repository" . }}/{{ .Values.cassandraInitImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-environments
@@ -63,13 +64,13 @@ spec:
           value: {{ .Values.config.release }}
         - name: SDC_USER
           valueFrom:
-            secretKeyRef: {name: {{ include "common.fullname" . }}, key: sdc_user}
+            secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_user}
         - name: SDC_PASSWORD
           valueFrom:
-            secretKeyRef: {name: {{ include "common.fullname" . }}, key: sdc_password}
+            secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_password}
         - name: CS_PASSWORD
           valueFrom:
-            secretKeyRef: {name: {{ include "common.fullname" . }}, key: cs_password}
+            secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: cs_password}
         - name: HOST_IP
           valueFrom:
             fieldRef:
index 75f7739..1e8c6da 100644 (file)
@@ -38,11 +38,6 @@ config:
   maxHeapSize: "1536M"
   heapNewSize: "512M"
 
-secrets:
-    sdc_user: YXNkY191c2Vy
-    sdc_password: QWExMjM0JV4h
-    cs_password: b25hcDEyMyNAIQ==
-
 # default number of instances
 replicaCount: 1
 
@@ -52,14 +47,14 @@ 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
   enabled: true
 
 readiness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 60
   periodSeconds: 10
 
 service:
index 2accff1..fa4d341 100644 (file)
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: Service Design and Creation Elasticsearch
+description: ONAP Service Design and Creation Elasticsearch
 name: sdc-es
 version: 2.0.0
\ No newline at end of file
index 3ec8c56..fe08596 100644 (file)
@@ -30,35 +30,20 @@ spec:
         app: {{ include "common.name" . }}
         release: {{ .Release.Name }}
     spec:
-      initContainers:
-      - name: {{ include "common.name" . }}-logs-init
-        command:
-        - /bin/bash
-        - "-c"
-        - |
-          mkdir -p /ubuntu-init/ASDC/ASDC-ES/
-          chmod -R 777 /ubuntu-init/
-        image: "{{ .Values.global.ubuntuInitRepository }}/{{ .Values.global.ubuntuInitImage }}"
-        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        volumeMounts:
-        - name: {{ include "common.fullname" . }}-logs
-          mountPath: /ubuntu-init/
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
           - containerPort: {{ .Values.service.internalPort2 }}
-          # disable liveness probe when breakpoints set in debugger
-          # so K8s doesn't restart unresponsive container
-          {{- if eq .Values.liveness.enabled true }}
+          {{ if eq .Values.liveness.enabled true }}
           livenessProbe:
             tcpSocket:
               port: {{ .Values.service.internalPort }}
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
             periodSeconds: {{ .Values.liveness.periodSeconds }}
-          {{ end -}}
+          {{ end }}
           readinessProbe:
             httpGet:
               path: "_cluster/health?wait_for_status=yellow&timeout=120s"
@@ -83,8 +68,6 @@ spec:
           - name: {{ include "common.fullname" . }}-localtime
             mountPath: /etc/localtime
             readOnly: true
-          - name: {{ include "common.fullname" . }}-logs
-            mountPath: /var/lib/jetty/logs
           - name: {{ include "common.fullname" . }}-data
             mountPath: /usr/share/elasticsearch/data/
           resources:
@@ -112,7 +95,5 @@ spec:
           configMap:
             name: {{ .Release.Name }}-sdc-environments-configmap
             defaultMode: 0755
-        - name: {{ include "common.fullname" . }}-logs
-          emptyDir: {}
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 0d2512c..6fd3bc7 100644 (file)
@@ -23,6 +23,7 @@ metadata:
     release: {{ .Release.Name }}
     heritage: {{ .Release.Service }}
 spec:
+  backoffLimit: 20
   template:
     metadata:
       labels:
@@ -47,7 +48,7 @@ spec:
               fieldPath: metadata.namespace
       containers:
       - name: {{ include "common.name" . }}-job
-        image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.elasticInitImage }}"
+        image: "{{ include "common.repository" . }}/{{ .Values.elasticInitImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-environments
index 32c54fe..4b74402 100644 (file)
@@ -59,7 +59,7 @@ liveness:
   enabled: true
 
 readiness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 60
   periodSeconds: 10
 
 service:
index 9cbffba..6580e89 100644 (file)
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: Service Design and Creation Front End
+description: ONAP Service Design and Creation Front End
 name: sdc-fe
 version: 2.0.0
\ No newline at end of file
index 2d4e213..bbc7790 100644 (file)
@@ -36,7 +36,7 @@ spec:
         - /root/ready.py
         args:
         - --container-name
-        - "sdc-be"
+        - "sdc-kb"
         env:
         - name: NAMESPACE
           valueFrom:
@@ -45,15 +45,27 @@ spec:
               fieldPath: metadata.namespace
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+      - name: {{ include "common.name" . }}-job-completion
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}"
+        command:
+        - /root/job_complete.py
+        args:
+        - --job-name
+        - {{ .Release.Name }}-sdc-be-config-backend
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
           - containerPort: {{ .Values.service.internalPort2 }}
-          # disable liveness probe when breakpoints set in debugger
-          # so K8s doesn't restart unresponsive container
           {{ if eq .Values.liveness.enabled true }}
           livenessProbe:
             tcpSocket:
@@ -85,6 +97,7 @@ spec:
             mountPath: /var/log/onap
           - name: {{ include "common.fullname" . }}-logback
             mountPath: /tmp/logback.xml
+            subPath: logback.xml
           lifecycle:
             postStart:
               exec:
index f9bc14a..e0f03e9 100644 (file)
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: Service Design and Creation Kibana
+description: ONAP Service Design and Creation Kibana
 name: sdc-kb
 version: 2.0.0
\ No newline at end of file
index de39333..f33dbe6 100644 (file)
@@ -31,23 +31,23 @@ spec:
         release: {{ .Release.Name }}
     spec:
       initContainers:
-      - name: {{ include "common.name" . }}-readiness
+      - name: {{ include "common.name" . }}-job-completion
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}"
         command:
-        - /root/ready.py
+        - /root/job_complete.py
         args:
-        - --container-name
-        - "sdc-es"
+        - --job-name
+        - {{ .Release.Name }}-sdc-es-config-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 }}
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/.helmignore b/kubernetes/sdc/charts/sdc-onboarding-be/.helmignore
new file mode 100644 (file)
index 0000000..f0c1319
--- /dev/null
@@ -0,0 +1,21 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/Chart.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/Chart.yaml
new file mode 100644 (file)
index 0000000..66bf889
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+description: ONAP Service Design and Creation Onboarding API
+name: sdc-onboarding-be
+version: 2.0.0
\ No newline at end of file
diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/resources/config/logging/logback.xml b/kubernetes/sdc/charts/sdc-onboarding-be/resources/config/logging/logback.xml
new file mode 100644 (file)
index 0000000..8a89373
--- /dev/null
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<configuration scan="true" scanPeriod="3 seconds">\r
+    <property name="logDir" value="/var/log/onap" />\r
+    <property name="componentName" scope="system" value="sdc"></property>\r
+    <property name="subComponentName" scope="system" value="sdc-onboarding-be"></property>\r
+    <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />\r
+    <property file="${config.home}/catalog-be/configuration.yaml" />\r
+    <property name="enable-all-log" scope="context" value="false" />\r
+    <!--  log file names -->\r
+    <property name="errorLogName" value="error" />\r
+    <property name="metricsLogName" value="metrics" />\r
+    <property name="auditLogName" value="audit" />\r
+    <property name="debugLogName" value="debug" />\r
+    <property name="transactionLogName" value="transaction" />\r
+    <property name="allLogName" value="all" />\r
+    <property name="queueSize" value="256" />\r
+    <property name="maxFileSize" value="50MB" />\r
+    <property name="maxHistory" value="30" />\r
+    <property name="totalSizeCap" value="10GB" />\r
+    <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />\r
+    <!-- All log -->\r
+    <if condition='property("enable-all-log").equalsIgnoreCase("true")'>\r
+        <then>\r
+            <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">\r
+                <file>${logDirectory}/${allLogName}.log</file>\r
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+                    <fileNamePattern>${logDirectory}/${allLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
+                    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
+                        <maxFileSize>${maxFileSize}</maxFileSize>\r
+                    </timeBasedFileNamingAndTriggeringPolicy>\r
+                    <maxHistory>${maxHistory}</maxHistory>\r
+                    <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+                </rollingPolicy>\r
+                <encoder>\r
+                    <pattern>${pattern}</pattern>\r
+                </encoder>\r
+            </appender>\r
+            <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">\r
+                <appender-ref ref="ALL_ROLLING" />\r
+            </appender>\r
+        </then>\r
+    </if>\r
+    <!-- Error log -->\r
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">\r
+        <file>${logDirectory}/${errorLogName}.log</file>\r
+        <!-- Audit messages filter - deny audit messages -->\r
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">\r
+                <marker>AUDIT_MARKER</marker>\r
+            </evaluator>\r
+            <onMismatch>NEUTRAL</onMismatch>\r
+            <onMatch>DENY</onMatch>\r
+        </filter>\r
+        <!-- Transaction messages filter - deny Transaction messages -->\r
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">\r
+                <marker>TRANSACTION_MARKER</marker>\r
+            </evaluator>\r
+            <onMismatch>NEUTRAL</onMismatch>\r
+            <onMatch>DENY</onMatch>\r
+        </filter>\r
+        <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->\r
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">\r
+            <level>INFO</level>\r
+        </filter>\r
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+            <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
+                <maxFileSize>${maxFileSize}</maxFileSize>\r
+            </timeBasedFileNamingAndTriggeringPolicy>\r
+            <maxHistory>${maxHistory}</maxHistory>\r
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+        </rollingPolicy>\r
+        <encoder>\r
+            <pattern>${pattern}</pattern>\r
+        </encoder>\r
+    </appender>\r
+    <!-- Debug log -->\r
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">\r
+        <file>${logDirectory}/${debugLogName}.log</file>\r
+        <!-- No need to deny audit messages - they are INFO only, will be denied \r
+                        anyway -->\r
+        <!-- Transaction messages filter - deny Transaction messages, there are \r
+                        some DEBUG level messages among them -->\r
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">\r
+                <marker>TRANSACTION_MARKER</marker>\r
+            </evaluator>\r
+            <onMismatch>NEUTRAL</onMismatch>\r
+            <onMatch>DENY</onMatch>\r
+        </filter>\r
+        <!-- accept DEBUG and TRACE level -->\r
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+            <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">\r
+                <expression>e.level.toInt() &lt;= DEBUG.toInt()</expression>\r
+            </evaluator>\r
+            <OnMismatch>DENY</OnMismatch>\r
+            <OnMatch>NEUTRAL</OnMatch>\r
+        </filter>\r
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+            <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
+                <maxFileSize>${maxFileSize}</maxFileSize>\r
+            </timeBasedFileNamingAndTriggeringPolicy>\r
+            <maxHistory>${maxHistory}</maxHistory>\r
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+        </rollingPolicy>\r
+        <encoder>\r
+            <pattern>${pattern}</pattern>\r
+        </encoder>\r
+    </appender>\r
+    <!-- Audit log -->\r
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">\r
+        <file>${logDirectory}/${auditLogName}.log</file>\r
+        <!-- Audit messages filter - accept audit messages -->\r
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">\r
+                <marker>AUDIT_MARKER</marker>\r
+            </evaluator>\r
+            <onMismatch>DENY</onMismatch>\r
+            <onMatch>ACCEPT</onMatch>\r
+        </filter>\r
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+            <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
+                <maxFileSize>${maxFileSize}</maxFileSize>\r
+            </timeBasedFileNamingAndTriggeringPolicy>\r
+            <maxHistory>${maxHistory}</maxHistory>\r
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+        </rollingPolicy>\r
+        <encoder>\r
+            <pattern>${pattern}</pattern>\r
+        </encoder>\r
+    </appender>\r
+    <!-- SdncTransaction log -->\r
+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">\r
+        <file>${logDirectory}/${transactionLogName}.log</file>\r
+        <!-- Transaction messages filter - accept audit messages -->\r
+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">\r
+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">\r
+                <marker>TRANSACTION_MARKER</marker>\r
+            </evaluator>\r
+            <onMismatch>DENY</onMismatch>\r
+            <onMatch>ACCEPT</onMatch>\r
+        </filter>\r
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+            <fileNamePattern>${logDirectory}/${transactionLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>\r
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">\r
+                <maxFileSize>${maxFileSize}</maxFileSize>\r
+            </timeBasedFileNamingAndTriggeringPolicy>\r
+            <maxHistory>${maxHistory}</maxHistory>\r
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+        </rollingPolicy>\r
+        <encoder>\r
+            <pattern>${pattern}</pattern>\r
+        </encoder>\r
+    </appender>\r
+    <!-- Asynchronicity Configurations -->\r
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">\r
+        <queueSize>${queueSize}</queueSize>\r
+        <appender-ref ref="DEBUG_ROLLING" />\r
+    </appender>\r
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">\r
+        <queueSize>${queueSize}</queueSize>\r
+        <appender-ref ref="TRANSACTION_ROLLING" />\r
+    </appender>\r
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">\r
+        <queueSize>${queueSize}</queueSize>\r
+        <appender-ref ref="ERROR_ROLLING" />\r
+    </appender>\r
+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">\r
+        <queueSize>${queueSize}</queueSize>\r
+        <appender-ref ref="AUDIT_ROLLING" />\r
+    </appender>\r
+    <root level="INFO">\r
+        <appender-ref ref="ASYNC_ERROR" />\r
+        <appender-ref ref="ASYNC_DEBUG" />\r
+        <appender-ref ref="ASYNC_AUDIT" />\r
+        <appender-ref ref="ASYNC_TRANSACTION" />\r
+        <if condition='property("enable-all-log").equalsIgnoreCase("true")'>\r
+            <then>\r
+                <appender-ref ref="ALL_ROLLING" />\r
+            </then>\r
+        </if>\r
+    </root>\r
+    <logger level="INFO" name="org.openecomp.sdc" />\r
+</configuration>
\ No newline at end of file
@@ -4,16 +4,16 @@
   http://{{ . }}
 {{- end }}
 {{- else if contains "NodePort" .Values.service.type }}
-  export NODE_PORT=$(kubectl get --namespace {{ .Values.global.nsPrefix }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}-prov)
-  export NODE_IP=$(kubectl get nodes --namespace {{ .Values.global.nsPrefix }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.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 {{ .Values.global.nsPrefix }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  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 {{ .Values.global.nsPrefix }} -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={{ 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/sdc/charts/sdc-onboarding-be/templates/configmap.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..1d0751a
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-logging-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file
diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..328a28d
--- /dev/null
@@ -0,0 +1,144 @@
+# Copyright © 2017 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: 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:
+      - name: {{ include "common.name" . }}-job-completion
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}"
+        command:
+        - /root/job_complete.py
+        args:
+        - --job-name
+        - {{ .Release.Name }}-sdc-onboarding-be-cassandra-init
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          - containerPort: {{ .Values.service.internalPort2 }}
+          {{ if eq .Values.liveness.enabled true }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end }}
+          readinessProbe:
+            exec:
+              command:
+              - "/var/lib/ready-probe.sh"
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          env:
+          - name: ENVNAME
+            value: {{ .Values.global.env.name }}
+          - name: JAVA_OPTIONS
+            value: {{ .Values.config.javaOptions }}
+          - name: SDC_CLUSTER_NAME
+            value: "SDC-CS-{{ .Values.global.env.name }}"
+          - name: cassandra_ssl_enabled
+            value: {{ .Values.config.cassandraSslEnabled | quote }}
+          - name: HOST_IP
+            valueFrom:
+              fieldRef:
+                fieldPath: status.podIP
+          - name: SDC_USER
+            valueFrom:
+              secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_user}
+          - name: SDC_PASSWORD
+            valueFrom:
+              secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_password}
+          volumeMounts:
+          - name: {{ include "common.fullname" . }}-environments
+            mountPath: /root/chef-solo/environments/
+          - name: {{ include "common.fullname" . }}-localtime
+            mountPath: /etc/localtime
+            readOnly: true
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: /var/log/onap
+          - name: {{ include "common.fullname" . }}-logback
+            mountPath: /tmp/logback.xml
+            subPath: logback.xml
+          lifecycle:
+            postStart:
+              exec:
+                command: ["/bin/sh", "-c", "export LOG=wait_logback.log; touch $LOG; export SRC=/tmp/logback.xml; export DST=/var/lib/jetty/config/onboarding-be/; while [ ! -e $DST ]; do echo 'Waiting for $DST...' >> $LOG; sleep 5; done; sleep 2; /bin/cp -f $SRC $DST; echo 'Done' >> $LOG"]
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+
+        # side car containers
+        - name: {{ include "common.name" . }}-filebeat-onap
+          image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          volumeMounts:
+          - name: {{ include "common.fullname" . }}-filebeat-conf
+            mountPath: /usr/share/filebeat/filebeat.yml
+            subPath: filebeat.yml
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: /var/log/onap
+          - name: {{ include "common.fullname" . }}-data-filebeat
+            mountPath: /usr/share/filebeat/data
+      volumes:
+      - name: {{ include "common.fullname" . }}-localtime
+        hostPath:
+          path: /etc/localtime
+      - name: {{ include "common.fullname" . }}-filebeat-conf
+        configMap:
+          name: {{ .Release.Name }}-sdc-filebeat-configmap
+      - name: {{ include "common.fullname" . }}-data-filebeat
+        emptyDir: {}
+      - name: {{ include "common.fullname" . }}-logback
+        configMap:
+          name : {{ include "common.fullname" . }}-logging-configmap
+      - name: {{ include "common.fullname" . }}-environments
+        configMap:
+          name: {{ .Release.Name }}-sdc-environments-configmap
+          defaultMode: 0755
+      - name:  {{ include "common.fullname" . }}-logs
+        emptyDir: {}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml
new file mode 100644 (file)
index 0000000..35f2ef8
--- /dev/null
@@ -0,0 +1,90 @@
+# Copyright © 2017 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: batch/v1
+kind: Job
+metadata:
+  name: {{ include "common.fullname" . }}-cassandra-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: 20
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}-job
+        release: {{ .Release.Name }}
+    spec:
+      restartPolicy: Never
+      initContainers:
+      - name: {{ include "common.name" . }}-job-completion
+        image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
+        imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}"
+        command:
+        - /root/job_complete.py
+        args:
+        - --job-name
+        - {{ .Release.Name }}-sdc-cs-config-cassandra
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+      containers:
+      - name: {{ include "common.name" . }}-job
+        image: "{{ include "common.repository" . }}/{{ .Values.onboardingInitImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - name: {{ include "common.fullname" . }}-environments
+          mountPath: /root/chef-solo/environments/
+        - name: {{ include "common.fullname" . }}-data
+          mountPath: /var/lib/cassandra/
+        env:
+        - name: ENVNAME
+          value: {{ .Values.global.env.name }}
+        - name: HOST_IP
+          valueFrom:
+            fieldRef:
+              fieldPath: status.podIP
+        - name: SDC_USER
+          valueFrom:
+            secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_user}
+        - name: SDC_PASSWORD
+          valueFrom:
+            secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: sdc_password}
+        - name: CS_PASSWORD
+          valueFrom:
+            secretKeyRef: {name: {{ .Release.Name }}-sdc-cs-secrets, key: cs_password}
+        - name: CS_HOST_IP
+          value: "sdc-cs"
+      volumes:
+      - name: {{ include "common.fullname" . }}-environments
+        configMap:
+          name: {{ .Release.Name }}-sdc-environments-configmap
+          defaultMode: 0755
+      - name: {{ include "common.fullname" . }}-data
+      {{- if .Values.persistence.enabled }}
+        persistentVolumeClaim:
+          claimName: {{ include "common.fullname" . }}
+      {{- else }}
+        emptyDir: {}
+      {{- end }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
+      restartPolicy: Never
diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/pv.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/pv.yaml
new file mode 100644 (file)
index 0000000..184728f
--- /dev/null
@@ -0,0 +1,37 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolume
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+    name: {{ include "common.fullname" . }}
+spec:
+  capacity:
+    storage: {{ .Values.persistence.size}}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }}
+  hostPath:
+    path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}
+{{- end -}}
diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/pvc.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/pvc.yaml
new file mode 100644 (file)
index 0000000..e27c331
--- /dev/null
@@ -0,0 +1,48 @@
+{{/*
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+*/}}
+
+{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+{{- if .Values.persistence.annotations }}
+  annotations:
+{{ toYaml .Values.persistence.annotations | indent 4 }}
+{{- end }}
+spec:
+  selector:
+    matchLabels:
+      name: {{ include "common.fullname" . }}
+  accessModes:
+    - {{ .Values.persistence.accessMode }}
+  resources:
+    requests:
+      storage: {{ .Values.persistence.size }}
+{{- if .Values.persistence.storageClass }}
+{{- if (eq "-" .Values.persistence.storageClass) }}
+  storageClassName: ""
+{{- else }}
+  storageClassName: "{{ .Values.persistence.storageClass }}"
+{{- end }}
+{{- end }}
+{{- end -}}
diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/service.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/service.yaml
new file mode 100644 (file)
index 0000000..eec7488
--- /dev/null
@@ -0,0 +1,46 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "common.servicename" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    {{if eq .Values.service.type "NodePort" -}}
+    - port: {{ .Values.service.externalPort }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+      name: {{ .Values.service.portName | default "http" }}
+
+    - port: {{ .Values.service.externalPort2 }}
+      nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+      name: {{ .Values.service.portName | default "http" }}2
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.portName | default "http" }}
+    - port: {{ .Values.service.externalPort2 }}
+      targetPort: {{ .Values.service.internalPort2 }}
+      name: {{ .Values.service.portName | default "http" }}2
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/values.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/values.yaml
new file mode 100644 (file)
index 0000000..3e22acc
--- /dev/null
@@ -0,0 +1,113 @@
+# Copyright © 2017 Amdocs, Bell Canada
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/sdc-onboard-backend:1.2-STAGING-latest
+onboardingInitImage: onap/sdc-onboard-cassandra-init:1.2-STAGING-latest
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+config:
+  javaOptions: "-Xdebug -agentlib:jdwp=transport=dt_socket,address=4001,server=y,suspend=n -Xmx1g -Xms1g"
+  cassandraSslEnabled: "false"
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  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: 60
+  periodSeconds: 10
+
+service:
+  type: ClusterIP
+  name: sdc-onboarding-be
+  portName: sdc-onboarding-be
+  internalPort: 8445
+  externalPort: 8445
+  internalPort2: 8081
+  externalPort2: 8081
+
+## Persist data to a persitent volume
+persistence:
+  enabled: true
+
+  ## A manually managed Persistent Volume and Claim
+  ## Requires persistence.enabled: true
+  ## If defined, PVC must be created manually before volume will be bound
+  # existingClaim:
+  volumeReclaimPolicy: Retain
+
+  ## database data Persistent Volume Storage Class
+  ## If defined, storageClassName: <storageClass>
+  ## If set to "-", storageClassName: "", which disables dynamic provisioning
+  ## If undefined (the default) or set to null, no storageClassName spec is
+  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
+  ##   GKE, AWS & OpenStack)
+  ##
+  # storageClass: "-"
+  accessMode: ReadWriteMany
+  size: 2Gi
+  mountPath: /dockerdata-nfs
+  mountSubPath: /sdc/sdc-cs/CS
+
+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 a04b2e5..1db5bb2 100644 (file)
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 apiVersion: v1
-description: Common Workflow Design
+description: ONAP Service Design and Creation Common Workflow Design
 name: sdc-wfd
 version: 2.0.0
\ No newline at end of file
index eb1f479..f6ec2c7 100644 (file)
@@ -32,19 +32,17 @@ spec:
     spec:
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}"
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
-          # disable liveness probe when breakpoints set in debugger
-          # so K8s doesn't restart unresponsive container
-          {{- if eq .Values.liveness.enabled true }}
+          {{ if eq .Values.liveness.enabled true }}
           livenessProbe:
             tcpSocket:
               port: {{ .Values.service.internalPort }}
             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
             periodSeconds: {{ .Values.liveness.periodSeconds }}
-          {{ end -}}
+          {{ end }}
           readinessProbe:
             tcpSocket:
               port: {{ .Values.service.internalPort }}
index 2732bea..85ca2f4 100755 (executable)
         "disableHttp": false,
         "CS_VIP": "sdc-cs.{{include "common.namespace" .}}",
         "BE_VIP": "sdc-be.{{include "common.namespace" .}}",
+        "ONBOARDING_BE_VIP": "sdc-onboarding-be.{{include "common.namespace" .}}",
         "FE_VIP": "sdc-fe.{{include "common.namespace" .}}",
         "ES_VIP": "sdc-es.{{include "common.namespace" .}}",
         "KB_VIP": "sdc-kb.{{include "common.namespace" .}}",
+
         "interfaces": {
             "application": "eth0",
             "private": "eth0"
         "UEB": {
             "PublicKey": "iPIxkpAMI8qTcQj8",
             "SecretKey": "Ehq3WyT4bkif4zwgEbvshGal",
-            "fqdn": ["message-router.{{include "common.namespace" .}}", "message-router.{{include "common.namespace" .}}"]
+            "fqdn": [
+                "message-router.{{include "common.namespace" .}}",
+                "message-router.{{include "common.namespace" .}}"
+            ]
         },
         "Nodes": {
-            "CS": "sdc-cs.{{include "common.namespace" .}}",
+            "CS": [
+                "sdc-cs.{{include "common.namespace" .}}"
+            ],
             "BE": "sdc-be.{{include "common.namespace" .}}",
+            "ONBOARDING_BE": "sdc-onboarding-be.{{include "common.namespace" .}}",
             "FE": "sdc-fe.{{include "common.namespace" .}}",
-            "ES": "sdc-es.{{include "common.namespace" .}}",
+            "ES": [
+                "sdc-es.{{include "common.namespace" .}}"
+            ],
             "KB": "sdc-kb.{{include "common.namespace" .}}"
         },
         "Plugins": {
             "http_port": "8080",
             "https_port": "8443"
         },
+        "ONBOARDING_BE": {
+            "http_port": "8081",
+            "https_port": "8445"
+        },
         "elasticsearch": {
             "cluster_name": "SDC-ES-",
             "ES_path_home": "/usr/share/elasticsearch",
similarity index 81%
rename from kubernetes/sdc/charts/sdc-cs/templates/secrets.yaml
rename to kubernetes/sdc/templates/secrets.yaml
index 0b6c838..341e55a 100644 (file)
@@ -15,7 +15,7 @@
 apiVersion: v1
 kind: Secret
 metadata:
-  name: {{ include "common.fullname" . }}
+  name: {{ .Release.Name }}-sdc-cs-secrets
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
@@ -25,7 +25,7 @@ metadata:
 type: Opaque
 data:
   #application user
-  sdc_user: "{{ .Values.secrets.sdc_user }}"
-  sdc_password: "{{ .Values.secrets.sdc_password }}"
+  sdc_user: "{{ .Values.global.secrets.sdc_user }}"
+  sdc_password: "{{ .Values.global.secrets.sdc_password }}"
   #default user:
-  cs_password: "{{ .Values.secrets.cs_password }}"
+  cs_password: "{{ .Values.global.secrets.cs_password }}"
index d5664a7..75e9d3e 100644 (file)
@@ -16,6 +16,13 @@ global:
   persistence: {}
   env:
     name: AUTO
+  secrets:
+    sdc_user: YXNkY191c2Vy
+    sdc_password: QWExMjM0JV4h
+    cs_password: b25hcDEyMyNAIQ==
+  ubuntuInitRepository: oomk8s
+  ubuntuInitImage: ubuntu-init:1.0.0
+
 
 config:
   logstashServiceName: log-ls
index dc0deb2..de1346a 100644 (file)
@@ -14,7 +14,7 @@ password =admin
 contenttype =application/json
 authKey=fxoW4jZrO7mdLWWa:f4KxkoBtToyoEG7suMoV8KhnkwM=
 authDate=2016-02-18T13:57:37-0800
-host=dmaap.{{.Release.Namespace}}:3904
+host=message-router.{{.Release.Namespace}}:{{.Values.config.dmaapPort}}
 topic=VCPE-DHCP-EVENT
 group=jmsgrp
 id=sdnc1
index e712a41..733b21e 100644 (file)
@@ -38,6 +38,8 @@ spec:
         - {{ .Values.config.mysqlChartName }}
         - --container-name
         - {{ .Values.config.sdncChartName }}
+        - --container-name
+        - {{ .Values.config.msgRouterContainerName }}
         env:
         - name: NAMESPACE
           valueFrom:
index 1a5ca2c..189aa72 100644 (file)
@@ -39,6 +39,7 @@ config:
   dmaapPort: 3904
   mysqlChartName: sdnc-dbhost
   sdncChartName: sdnc
+  msgRouterContainerName: dmaap
   configDir: /opt/onap/sdnc/data/properties
 
 # default number of instances
@@ -64,7 +65,7 @@ ingress:
   enabled: false
 
 service:
-  name: dmaap-listener
+  name: sdnc-dmaap-listener
 
 resources: {}
 #resources:
diff --git a/kubernetes/sdnc/charts/ueb-listener/resources/config/dblib.properties b/kubernetes/sdnc/charts/ueb-listener/resources/config/dblib.properties
new file mode 100644 (file)
index 0000000..15cb218
--- /dev/null
@@ -0,0 +1,37 @@
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights
+#                                              reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+###
+
+# dblib.properties
+org.onap.ccsdk.sli.dbtype=jdbc
+
+org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}:{{.Values.mysql.service.internalPort}}/sdnctl
+org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver
+org.onap.ccsdk.sli.jdbc.database=sdnctl
+org.onap.ccsdk.sli.jdbc.user=sdnctl
+org.onap.ccsdk.sli.jdbc.password=gamma
+org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01
+org.onap.ccsdk.sli.jdbc.connection.timeout=50
+org.onap.ccsdk.sli.jdbc.request.timeout=100
+org.onap.ccsdk.sli.jdbc.limit.init=10
+org.onap.ccsdk.sli.jdbc.limit.min=10
+org.onap.ccsdk.sli.jdbc.limit.max=20
+org.onap.dblib.connection.recovery=false
index 72dee15..cd184bf 100644 (file)
@@ -19,3 +19,4 @@ org.onap.ccsdk.sli.northbound.uebclient.keystore-path=
 org.onap.ccsdk.sli.northbound.uebclient.keystore-password=
 org.onap.ccsdk.sli.northbound.uebclient.xslt-path-list=
 org.onap.ccsdk.sli.northbound.uebclient.artifact-map=/opt/onap/sdnc/data/properties/artifact.map
+org.onap.ccsdk.sli.northbound.uebclient.msg-bus-address=message-router.{{.Release.Namespace}}
index b11cf95..e3f324e 100644 (file)
@@ -38,6 +38,10 @@ spec:
         - {{ .Values.config.mysqlChartName }}
         - --container-name
         - {{ .Values.config.sdncChartName }}
+        - --container-name
+        - {{ .Values.config.sdcbeChartName }}
+        - --container-name
+        - {{ .Values.config.msgRouterContainerName }}
         env:
         - name: NAMESPACE
           valueFrom:
index d04ba09..a6722eb 100644 (file)
@@ -39,6 +39,8 @@ config:
   uebPort: 3904
   mysqlChartName: sdnc-dbhost
   sdncChartName: sdnc
+  sdcbeChartName: sdc-be
+  msgRouterContainerName: dmaap
   configDir: /opt/onap/sdnc/data/properties
 
 
@@ -62,7 +64,12 @@ readiness:
   periodSeconds: 10
 
 service:
-  name: ueb-listener
+  name: sdnc-ueb-listener
+
+mysql:
+  service:
+    name: sdnc-dbhost
+    internalPort: 3306
 
 ingress:
   enabled: false
index 499834e..15cb218 100644 (file)
@@ -19,7 +19,7 @@
 # ============LICENSE_END=========================================================
 ###
 
-# dblib.properrties
+# dblib.properties
 org.onap.ccsdk.sli.dbtype=jdbc
 
 org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01