Merge "Instantiate common cassandra cluster"
authorBorislav Glozman <Borislav.Glozman@amdocs.com>
Wed, 27 Feb 2019 17:29:29 +0000 (17:29 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 27 Feb 2019 17:29:29 +0000 (17:29 +0000)
133 files changed:
kubernetes/LICENSE
kubernetes/aai/charts/aai-babel/templates/deployment.yaml
kubernetes/aai/charts/aai-babel/templates/secrets.yaml
kubernetes/aai/charts/aai-babel/values.yaml
kubernetes/aai/charts/aai-champ/templates/deployment.yaml
kubernetes/aai/charts/aai-champ/templates/secrets.yaml
kubernetes/aai/charts/aai-data-router/templates/deployment.yaml
kubernetes/aai/charts/aai-data-router/templates/secret.yaml
kubernetes/aai/charts/aai-elasticsearch/templates/deployment.yaml
kubernetes/aai/charts/aai-gizmo/templates/deployment.yaml
kubernetes/aai/charts/aai-graphadmin/resources/config/application.properties
kubernetes/aai/charts/aai-graphadmin/resources/config/logback.xml
kubernetes/aai/charts/aai-graphadmin/templates/deployment.yaml
kubernetes/aai/charts/aai-graphadmin/templates/job.yaml
kubernetes/aai/charts/aai-graphadmin/values.yaml
kubernetes/aai/charts/aai-modelloader/templates/deployment.yaml
kubernetes/aai/charts/aai-modelloader/templates/secret.yaml
kubernetes/aai/charts/aai-resources/resources/config/aaiconfig.properties
kubernetes/aai/charts/aai-resources/resources/config/application.properties
kubernetes/aai/charts/aai-resources/resources/config/logback.xml
kubernetes/aai/charts/aai-resources/templates/deployment.yaml
kubernetes/aai/charts/aai-resources/values.yaml
kubernetes/aai/charts/aai-schema-service/.helmignore [new file with mode: 0644]
kubernetes/aai/charts/aai-schema-service/Chart.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-schema-service/config/aaiconfig.properties [new file with mode: 0644]
kubernetes/aai/charts/aai-schema-service/config/application.properties [new file with mode: 0644]
kubernetes/aai/charts/aai-schema-service/config/localhost-access-logback.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-schema-service/config/logback.xml [new file with mode: 0644]
kubernetes/aai/charts/aai-schema-service/config/realm.properties [new file with mode: 0644]
kubernetes/aai/charts/aai-schema-service/templates/configmap.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-schema-service/templates/deployment.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-schema-service/templates/service.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-schema-service/values.yaml [new file with mode: 0644]
kubernetes/aai/charts/aai-search-data/templates/deployment.yaml
kubernetes/aai/charts/aai-search-data/templates/secret.yaml
kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml
kubernetes/aai/charts/aai-sparky-be/templates/secret.yaml
kubernetes/aai/charts/aai-spike/templates/deployment.yaml
kubernetes/aai/charts/aai-spike/templates/secrets.yaml
kubernetes/aai/charts/aai-traversal/resources/config/application.properties
kubernetes/aai/charts/aai-traversal/resources/config/logback.xml
kubernetes/aai/charts/aai-traversal/templates/deployment.yaml
kubernetes/aai/charts/aai-traversal/templates/job.yaml
kubernetes/aai/charts/aai-traversal/values.yaml
kubernetes/aai/resources/config/fproxy/auth/tomcat_keystore
kubernetes/aai/templates/deployment.yaml
kubernetes/aai/templates/secret.yaml
kubernetes/aai/values.yaml
kubernetes/common/controller-blueprints/resources/config/application.properties [changed mode: 0644->0755]
kubernetes/common/controller-blueprints/templates/configmap.yaml
kubernetes/common/controller-blueprints/templates/deployment.yaml [changed mode: 0644->0755]
kubernetes/common/controller-blueprints/templates/service.yaml [changed mode: 0644->0755]
kubernetes/common/controller-blueprints/values.yaml [changed mode: 0644->0755]
kubernetes/common/dgbuilder/templates/configmap.yaml
kubernetes/common/mariadb-galera/templates/configmap.yaml
kubernetes/common/mariadb-galera/templates/statefulset.yaml
kubernetes/common/music/charts/music-cassandra/templates/statefulset.yaml
kubernetes/common/mysql/templates/configmap.yaml
kubernetes/common/mysql/templates/service.yaml
kubernetes/common/mysql/templates/statefulset.yaml
kubernetes/common/mysql/templates/storageclass.yaml
kubernetes/contrib/charts/netbox/charts/netbox-app/templates/deployment.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml [deleted file]
kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-policy_handler-inputs.yaml [deleted file]
kubernetes/dcaegen2/charts/dcae-bootstrap/templates/deployment.yaml
kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml
kubernetes/dcaegen2/charts/dcae-cloudify-manager/values.yaml
kubernetes/dcaegen2/charts/dcae-deployment-handler/.helmignore [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-deployment-handler/Chart.yaml [moved from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-config_binding_service-inputs.yaml with 67% similarity]
kubernetes/dcaegen2/charts/dcae-deployment-handler/requirements.yaml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-deployment-handler/resources/config/config.json [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-deployment-handler/resources/log/filebeat.yml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/configmap.yaml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/deployment.yaml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/service.yaml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-deployment-handler/values.yaml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-healthcheck/values.yaml
kubernetes/dcaegen2/charts/dcae-policy-handler/.helmignore [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-policy-handler/Chart.yaml [moved from kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-deployment_handler-inputs.yaml with 65% similarity]
kubernetes/dcaegen2/charts/dcae-policy-handler/requirements.yaml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-policy-handler/resources/config/config.json [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-policy-handler/resources/log/filebeat.yml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-policy-handler/templates/configmap.yaml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-policy-handler/templates/deployment.yaml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-policy-handler/templates/service.yaml [new file with mode: 0644]
kubernetes/dcaegen2/charts/dcae-policy-handler/values.yaml [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-node/resources/config/logback.xml [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-node/templates/configmap.yaml
kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-node/templates/deployment.yaml
kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-prov/resources/config/logback.xml [new file with mode: 0644]
kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-prov/templates/configmap.yaml
kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-prov/templates/deployment.yaml
kubernetes/dmaap/charts/dmaap-data-router/values.yaml
kubernetes/dmaap/charts/message-router/charts/message-router-kafka/values.yaml
kubernetes/dmaap/resources/config/log/filebeat/filebeat.yml [new file with mode: 0644]
kubernetes/dmaap/templates/configmap.yaml [new file with mode: 0644]
kubernetes/dmaap/values.yaml
kubernetes/helm/plugins/deploy/deploy.sh
kubernetes/policy/charts/policy-pap/Chart.yaml [new file with mode: 0644]
kubernetes/policy/charts/policy-pap/requirements.yaml [new file with mode: 0644]
kubernetes/policy/charts/policy-pap/resources/config/config.json [new file with mode: 0644]
kubernetes/policy/charts/policy-pap/templates/NOTES.txt [new file with mode: 0644]
kubernetes/policy/charts/policy-pap/templates/configmap.yaml [new file with mode: 0644]
kubernetes/policy/charts/policy-pap/templates/deployment.yaml [new file with mode: 0644]
kubernetes/policy/charts/policy-pap/templates/service.yaml [new file with mode: 0644]
kubernetes/policy/charts/policy-pap/values.yaml [new file with mode: 0644]
kubernetes/pomba/charts/pomba-data-router/values.yaml
kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/application.properties
kubernetes/pomba/charts/pomba-validation-service/resources/bundleconfig/etc/rules/poa-event/default-rules.groovy
kubernetes/robot/demo-k8s.sh
kubernetes/robot/ete-k8s.sh
kubernetes/robot/resources/config/eteshare/config/integration_preload_parameters.py
kubernetes/robot/resources/config/eteshare/config/integration_robot_properties.py
kubernetes/robot/values.yaml
kubernetes/sdc/charts/sdc-dcae-be/templates/configmap.yaml
kubernetes/sdc/charts/sdc-dcae-dt/templates/configmap.yaml
kubernetes/sdc/charts/sdc-dcae-fe/templates/configmap.yaml
kubernetes/sdc/charts/sdc-fe/values.yaml
kubernetes/sdc/charts/sdc-wfd-be/values.yaml
kubernetes/sdc/charts/sdc-wfd-fe/values.yaml
kubernetes/sdnc/charts/sdnc-ansible-server/templates/deployment.yaml
kubernetes/so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
kubernetes/so/charts/so-openstack-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-request-db-adapter/resources/config/overrides/override.yaml
kubernetes/so/charts/so-sdc-controller/resources/config/overrides/override.yaml
kubernetes/so/resources/config/overrides/override.yaml
kubernetes/vfc/charts/vfc-catalog/templates/deployment.yaml
kubernetes/vfc/charts/vfc-catalog/templates/pv.yaml [new file with mode: 0644]
kubernetes/vfc/charts/vfc-catalog/templates/pvc.yaml [new file with mode: 0644]
kubernetes/vfc/charts/vfc-catalog/values.yaml
kubernetes/vfc/values.yaml
kubernetes/vid/charts/vid-mariadb-galera/templates/configmap.yaml
kubernetes/vid/templates/configmap.yaml

index d1e69ec..c493ac9 100644 (file)
@@ -1,8 +1,8 @@
 
  ============LICENSE_START==========================================
  ===================================================================
- Copyright © 2017 Amdocs
- Copyright © 2017 Bell Canada
+ Copyright © 2017-2019 Amdocs
+ Copyright © 2017-2019 Bell Canada
  All rights reserved.
  ===================================================================
  Licensed under the Apache License, Version 2.0 (the "License");
index 4f0e9dd..ee15967 100644 (file)
@@ -98,15 +98,15 @@ spec:
             name: {{ include "common.fullname" . }}-config
             subPath: logback.xml
           resources:
-{{ include "common.resources" . | indent 12 }}
-        {{- if .Values.nodeSelector }}
-        nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 10 }}
-        {{- end -}}
-        {{- if .Values.affinity }}
-        affinity:
-{{ toYaml .Values.affinity | indent 10 }}
-        {{- end }}
+{{ include "common.resources" . }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- end }}
 
         # side car containers
         - name: filebeat-onap
index 78a849b..7c3b04a 100644 (file)
@@ -18,6 +18,11 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}-babel-secrets
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/config/auth/*").AsSecrets . | indent 2 }}
@@ -44,6 +49,11 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}-fproxy-auth-config
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/fproxy/config/auth/*").AsSecrets . | indent 2 }}
@@ -53,6 +63,11 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}-rproxy-auth-config
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/rproxy/config/auth/*").AsSecrets . | indent 2 }}
@@ -62,6 +77,11 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}-rproxy-security-config
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/rproxy/config/security/*").AsSecrets . | indent 2 }}
index 8c192e5..8e5aa2d 100644 (file)
@@ -25,7 +25,7 @@ global:
 #################################################################
 
 # application image
-image: onap/babel:1.3.2
+image: onap/babel:1.4-STAGING-latest
 
 flavor: small
 
index 537763a..4d4ac99 100644 (file)
@@ -108,15 +108,15 @@ spec:
           - mountPath: /var/log/onap
             name: {{ include "common.fullname" . }}-logs
           resources:
-{{ include "common.resources" . | indent 12 }}
-        {{- if .Values.nodeSelector }}
-        nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 10 }}
-        {{- end -}}
-        {{- if .Values.affinity }}
-        affinity:
-{{ toYaml .Values.affinity | indent 10 }}
-        {{- end }}
+{{ include "common.resources" . }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- end }}
 
         # side car containers
         - name: filebeat-onap
index b0a62f6..fa18956 100644 (file)
@@ -18,6 +18,11 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}-champ
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/config/appconfig/auth/*").AsSecrets . | indent 2 }}
@@ -44,6 +49,11 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}-rproxy-auth-config
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/rproxy/config/auth/*").AsSecrets . | indent 2 }}
index a7ecbce..5c0d9b2 100644 (file)
@@ -35,6 +35,14 @@ spec:
         release: {{ .Release.Name }}
       name: {{ include "common.name" . }}
     spec:
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- end }}
       initContainers:
       - command:
         - /bin/sh
@@ -120,7 +128,7 @@ spec:
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
 
       # side car containers
       - name: filebeat-onap
@@ -136,6 +144,8 @@ spec:
           name: {{ include "common.fullname" . }}-logs
         - mountPath: /usr/share/filebeat/data
           name: aai-filebeat
+        resources:
+{{ include "common.resources" . }}
       volumes:
       - name: localtime
         hostPath:
index 32a3482..6084ca3 100644 (file)
@@ -17,6 +17,11 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/config/auth/*").AsSecrets . | indent 2 }}
index 586d64f..14b896e 100644 (file)
@@ -95,7 +95,7 @@ spec:
           - name: elasticsearch-data
             mountPath: /usr/share/elasticsearch/data
         resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
       {{- if .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 8 }}
index e01e738..04428d9 100644 (file)
@@ -102,15 +102,15 @@ spec:
             name: {{ include "common.fullname" . }}-logback-config
             subPath: logback.xml
           resources:
-{{ include "common.resources" . | indent 12 }}
-        {{- if .Values.nodeSelector }}
-        nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 10 }}
-        {{- end -}}
-        {{- if .Values.affinity }}
-        affinity:
-{{ toYaml .Values.affinity | indent 10 }}
-        {{- end }}
+{{ include "common.resources" . }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- end }}
 
         - name: filebeat-onap
           image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
index 81a9c7b..c23c5fa 100644 (file)
@@ -45,9 +45,9 @@ server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties
 
 server.port=8449
 server.ssl.enabled-protocols=TLSv1.1,TLSv1.2
-server.ssl.key-store=${server.local.startpath}etc/auth/{{ .Values.global.config.keystore.filename }}
+server.ssl.key-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.keystore.filename }}
 server.ssl.key-store-password=password({{ .Values.global.config.keystore.passwd }})
-server.ssl.trust-store=${server.local.startpath}etc/auth/{{ .Values.global.config.truststore.filename }}
+server.ssl.trust-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.truststore.filename }}
 server.ssl.trust-store-password=password({{ .Values.global.config.truststore.passwd }})
 server.ssl.client-auth=want
 server.ssl.key-store-type=JKS
@@ -86,3 +86,14 @@ schema.version.edge.label.start={{ .Values.global.config.schema.version.edge.lab
 # Specifies the version that the application should default to
 schema.version.api.default={{ .Values.global.config.schema.version.api.default }}
 
+schema.translator.list={{ .Values.global.config.schema.translator.list }}
+schema.service.base.url=https://aai-schema-service.{{ include "common.namespace" . }}:8452/aai/schema-service/v1/
+schema.service.nodes.endpoint=nodes?version=
+schema.service.edges.endpoint=edgerules?version=
+schema.service.versions.endpoint=versions
+schema.service.client={{ .Values.global.config.schema.service.client }}
+
+schema.service.ssl.key-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.keystore.filename }}
+schema.service.ssl.trust-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.truststore.filename }}
+schema.service.ssl.key-store-password=password({{ .Values.global.config.keystore.passwd }})
+schema.service.ssl.trust-store-password=password({{ .Values.global.config.truststore.passwd }})
index 787fc64..e5e6ab5 100644 (file)
@@ -3,7 +3,7 @@
     ============LICENSE_START=======================================================
     org.onap.aai
     ================================================================================
-    Copyright 2018 AT&T Intellectual Property. All rights reserved.
+    Copyright 2019 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.
 
 -->
 <configuration scan="true" scanPeriod="60 seconds" debug="false">
-       <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
+  <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
 
-       <property resource="application.properties" />
+  <property resource="application.properties" />
 
-       <property name="namespace" value="graph-admin"/>
+  <property name="namespace" value="graph-admin"/>
 
-       <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
-       
-       <property name="logDirectory" value="${AJSC_HOME}/logs" />
-       <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
-       <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
-       <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
-       <!--  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> -->
-       <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
+  
+  <property name="logDirectory" value="${AJSC_HOME}/logs" />
+  <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <!--  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> -->
+  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
     <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
-       
+  
     <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
     <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
     <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-       <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-               <encoder>
-                       <pattern>
-                               %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
-                       </pattern>
-               </encoder>
-       </appender>
-
-       <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <file>${logDirectory}/rest/sane.log</file>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder>
-                       <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
-                       </pattern>
-               </encoder>
-       </appender>
-
-       <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
-               <includeCallerData>true</includeCallerData>
-               <appender-ref ref="SANE" />
-       </appender>
-
-       <appender name="METRIC"
-               class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>INFO</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <file>${logDirectory}/rest/metrics.log</file>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}
-                       </fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfMetricLogPattern}</pattern>
-               </encoder>
-       </appender>
-       <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
-               <includeCallerData>true</includeCallerData>
-               <appender-ref ref="METRIC" />
-       </appender>
-
-       <appender name="DEBUG"
-               class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>DEBUG</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <file>${logDirectory}/rest/debug.log</file>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}
-                       </fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfLogPattern}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
-               <includeCallerData>true</includeCallerData>
-               <appender-ref ref="DEBUG" />
-       </appender>
-
-       <appender name="ERROR"
-               class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-                       <level>WARN</level>
-               </filter>
-               <file>${logDirectory}/rest/error.log</file>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}
-                       </fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${"eelfErrorLogPattern"}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
-               <includeCallerData>true</includeCallerData>
-               <appender-ref ref="ERROR" />
-       </appender>
-
-       <appender name="AUDIT"
-               class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <file>${logDirectory}/rest/audit.log</file>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
-                       </fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfAuditLogPattern}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
-               <includeCallerData>true</includeCallerData>
-               <appender-ref ref="AUDIT" />
-       </appender>
-
-       <appender name="translog"
-               class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>DEBUG</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <file>${logDirectory}/rest/translog.log</file>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
-                       </fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfTransLogPattern}</pattern>
-               </encoder>
-       </appender>
-       
-       <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
-               <includeCallerData>true</includeCallerData>
-               <appender-ref ref="translog" />
-       </appender>
-
-       <appender name="dmaapAAIEventConsumer"
-               class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-                       <level>WARN</level>
-               </filter>
-               <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
-                       </fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${"eelfErrorLogPattern"}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="dmaapAAIEventConsumerDebug"
-               class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>DEBUG</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
-                       </fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfLogPattern}</pattern>
-               </encoder>
-       </appender>
-       <appender name="dmaapAAIEventConsumerMetric"
-               class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>INFO</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
-                       </fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfMetricLogPattern}</pattern>
-               </encoder>
-       </appender>
-       <appender name="external"
-               class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-                       <level>WARN</level>
-               </filter>
-               <file>${logDirectory}/external/external.log</file>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
-                       </fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfLogPattern}</pattern>
-               </encoder>
-       </appender>
-       
-       <!-- DataGrooming logs started -->
-       <appender name="dataGrooming" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-                       <level>WARN</level>
-               </filter>
-               <File>${logDirectory}/dataGrooming/error.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dataGrooming/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfErrorLogPattern}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="dataGroomingdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>DEBUG</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/dataGrooming/debug.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dataGrooming/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfLogPattern}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="dataGroomingmetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>INFO</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/dataGrooming/metrics.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dataGrooming/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfMetricLogPattern}</pattern>
-               </encoder>
-       </appender>
-       
-       <!-- DataGrooming logs ended -->
-       
-       <!-- DataSnapshot logs started -->
-       <appender name="dataSnapshot" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-                       <level>WARN</level>
-               </filter>
-               <File>${logDirectory}/dataSnapshot/error.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dataSnapshot/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfErrorLogPattern}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="dataSnapshotdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>DEBUG</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/dataSnapshot/debug.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dataSnapshot/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfLogPattern}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="dataSnapshotmetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>INFO</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/dataSnapshot/metrics.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dataSnapshot/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfMetricLogPattern}</pattern>
-               </encoder>
-       </appender>
-       
-       <!-- DataSnapshot logs ended -->
-       
-       <!-- CreateDBSchema logs started  -->
-       <appender name="createDBSchema" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-                       <level>WARN</level>
-               </filter>
-               <File>${logDirectory}/createDBSchema/error.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/createDBSchema/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${"eelfErrorLogPattern"}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="createDBSchemadebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>DEBUG</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/createDBSchema/debug.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/createDBSchema/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfLogPattern}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="createDBSchemametric" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>INFO</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/createDBSchema/metrics.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/createDBSchema/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfMetricLogPattern}</pattern>
-               </encoder>
-       </appender>
-       <!-- CreateDBSchema logs ended  -->     
-       
-       <!-- DataCleanupTasks logs started  -->
-       <appender name="dataCleanuperror" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-                       <level>WARN</level>
-               </filter>
-               <File>${logDirectory}/misc/error.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/misc/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${"eelfErrorLogPattern"}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="dataCleanupdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>DEBUG</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/misc/debug.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/misc/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfLogPattern}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="dataCleanupmetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>INFO</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/misc/metrics.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/misc/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfMetricLogPattern}</pattern>
-               </encoder>
-       </appender>
-       <!-- DataCleanupTasks logs ended  -->   
-                       
-       <!-- pullInvData logs started -->
-       <appender name="pullInvData" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-                       <level>WARN</level>
-               </filter>
-               <File>${logDirectory}/pullInvData/error.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/pullInvData/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${"eelfErrorLogPattern"}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="pullInvDatadebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>DEBUG</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/pullInvData/debug.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/pullInvData/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfLogPattern}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="pullInvDatametric" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>INFO</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/pullInvData/metrics.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/pullInvData/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfMetricLogPattern}</pattern>
-               </encoder>
-       </appender>
-       <!-- pullInvData logs ended -->
-                               <!-- DataGrooming logs started -->
-       <appender name="dataExportError" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-                       <level>WARN</level>
-               </filter>
-               <File>${logDirectory}/dataExport/error.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dataExport/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfErrorLogPattern}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="dataExportDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>DEBUG</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/dataExport/debug.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dataExport/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfLogPattern}</pattern>
-               </encoder>
-       </appender>
-
-       <appender name="dataExportMetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.LevelFilter">
-                       <level>INFO</level>
-                       <onMatch>ACCEPT</onMatch>
-                       <onMismatch>DENY</onMismatch>
-               </filter>
-               <File>${logDirectory}/dataExport/metrics.log</File>
-               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                       <fileNamePattern>${logDirectory}/dataExport/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
-               </rollingPolicy>
-               <encoder class="org.onap.aai.logging.EcompEncoder">
-                       <pattern>${eelfMetricLogPattern}</pattern>
-               </encoder>
-       </appender>
-       
-       <logger name="org.onap.aai" level="DEBUG" additivity="false">
-               <appender-ref ref="asyncDEBUG" />
-               <appender-ref ref="asyncERROR" />
-               <appender-ref ref="asyncMETRIC" />
-               <appender-ref ref="asyncSANE" />
-       </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" />
-       <logger name="com.jayway.jsonpath" level="WARN" />
-
-       <!-- AJSC Services (bootstrap services) -->
-       <logger name="ajsc" level="WARN" />
-       <logger name="ajsc.RouteMgmtService" level="WARN" />
-       <logger name="ajsc.ComputeService" level="WARN" />
-       <logger name="ajsc.VandelayService" level="WARN" />
-       <logger name="ajsc.FilePersistenceService" level="WARN" />
-       <logger name="ajsc.UserDefinedJarService" level="WARN" />
-       <logger name="ajsc.UserDefinedBeansDefService" level="WARN" />
-       <logger name="ajsc.LoggingConfigurationService" level="WARN" />
-
-       <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet 
-               logging) -->
-       <logger name="org.codehaus.groovy" level="WARN" />
-       <logger name="com.att.scamper" level="WARN" />
-       <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.ajsc" level="WARN" />
-       <logger name="com.att.ajsc.csi.logging" level="WARN" />
-       <logger name="com.att.ajsc.filemonitor" level="WARN" />
-       <logger name="com.netflix.loadbalancer" level="WARN" />
-
-       <logger name="org.apache.zookeeper" 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" />
-
-       <logger name="org.hibernate.validator" level="WARN" />
-       <logger name="org.hibernate" level="WARN" />
-       <logger name="org.hibernate.ejb" level="OFF" />
-
-       <!-- logback internals logging -->
-       <logger name="ch.qos.logback.classic" level="WARN" />
-       <logger name="ch.qos.logback.core" level="WARN" />
-
-       <logger name="org.eclipse.jetty" level="WARN" />
-
-       <!-- logback jms appenders & loggers definition starts here -->
-       <appender name="auditLogs"
-               class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
-               <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log
-               </file>
-               <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                       <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
-                       </fileNamePattern>
-                       <minIndex>1</minIndex>
-                       <maxIndex>9</maxIndex>
-               </rollingPolicy>
-               <triggeringPolicy
-                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-                       <maxFileSize>5MB</maxFileSize>
-               </triggeringPolicy>
-               <encoder>
-                       <pattern>eelfAuditLogPattern</pattern>
-               </encoder>
-       </appender>
-       <appender name="perfLogs"
-               class="ch.qos.logback.core.rolling.RollingFileAppender">
-               <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
-               <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log
-               </file>
-               <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                       <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
-                       </fileNamePattern>
-                       <minIndex>1</minIndex>
-                       <maxIndex>9</maxIndex>
-               </rollingPolicy>
-               <triggeringPolicy
-                       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-                       <maxFileSize>5MB</maxFileSize>
-               </triggeringPolicy>
-               <encoder>
-                       <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-               </encoder>
-       </appender>
-       <logger name="AuditRecord" level="INFO" additivity="false">
-               <appender-ref ref="auditLogs" />
-       </logger>
-       <logger name="AuditRecord_DirectCall" level="INFO" additivity="false">
-               <appender-ref ref="auditLogs" />
-       </logger>
-       <logger name="PerfTrackerRecord" level="INFO" additivity="false">
-               <appender-ref ref="perfLogs" />
-       </logger>
-       <!-- logback jms appenders & loggers definition ends here -->
-
-       <logger name="org.onap.aai.interceptors.post" level="DEBUG"
-                       additivity="false">
-               <appender-ref ref="asynctranslog" />
-       </logger>
-
-       <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG">
-               <appender-ref ref="asyncAUDIT"/>
-       </logger>
-
-       <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG">
-               <appender-ref ref="asyncAUDIT"/>
-       </logger>
-
-       <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
-               <appender-ref ref="dmaapAAIEventConsumer" />
-               <appender-ref ref="dmaapAAIEventConsumerDebug" />
-               <appender-ref ref="dmaapAAIEventConsumerMetric" />
-       </logger>
-
-       <logger name="org.onap.aai.datasnapshot" level="DEBUG" additivity="false">
-               <appender-ref ref="dataSnapshot"/>
-               <appender-ref ref="dataSnapshotdebug"/>
-               <appender-ref ref="dataSnapshotmetric"/>
-               <appender-ref ref="STDOUT"/>
-       </logger>
-
-       <logger name="org.onap.aai.datagrooming" level="DEBUG" additivity="false">
-               <appender-ref ref="dataGrooming"/>
-               <appender-ref ref="dataGroomingdebug"/>
-               <appender-ref ref="dataGroomingmetric"/>
-               <appender-ref ref="STDOUT"/>
-       </logger>
-
-       <logger name="org.onap.aai.schema" level="DEBUG" additivity="false">
-               <appender-ref ref="createDBSchema"/>
-               <appender-ref ref="createDBSchemadebug"/>
-               <appender-ref ref="createDBSchemametric"/>
-       </logger>
-
-       <logger name="org.onap.aai.dbgen" level="DEBUG" additivity="false">
-               <appender-ref ref="createDBSchema"/>
-               <appender-ref ref="createDBSchemadebug"/>
-               <appender-ref ref="createDBSchemametric"/>
-       </logger>
-
-       <logger name="org.onap.aai.dbgen.PullInvData" level="DEBUG" additivity="false">
-               <appender-ref ref="pullInvData"/>
-               <appender-ref ref="pullInvDatadebug"/>
-               <appender-ref ref="pullInvDatametric"/>
-       </logger>
-       
-       <logger name="org.onap.aai.datacleanup" level="INFO" additivity="false">
-       <appender-ref ref="dataCleanuperror" />
-       <appender-ref ref="dataCleanupdebug" />
-       <appender-ref ref="dataCleanupmetric" />
-       <appender-ref ref="STDOUT"/>
-       </logger>
-       <logger name="org.onap.aai.dataexport" level="DEBUG" additivity="false">
-               <appender-ref ref="dataExportError"/>
-               <appender-ref ref="dataExportDebug"/>
-               <appender-ref ref="dataExportMetric"/>
-               <appender-ref ref="STDOUT"/>
-       </logger>
-       <logger name="org.apache" level="WARN" />
-       <logger name="org.zookeeper" level="WARN" />
-       <logger name="com.netflix" level="WARN" />
-       <logger name="org.janusgraph" level="WARN" />
-       <logger name="com.att.aft.dme2" level="WARN" />
-
-       <!-- ============================================================================ -->
-       <!-- General EELF logger -->
-       <!-- ============================================================================ -->
-       <logger name="com.att.eelf" level="WARN" additivity="false">
-               <appender-ref ref="asyncDEBUG" />
-               <appender-ref ref="asyncERROR" />
-               <appender-ref ref="asyncMETRIC" />
-       </logger>
-
-       <root level="DEBUG">
-               <appender-ref ref="external" />
-               {{ if .Values.global.config.logback.console.enabled }}
-               <appender-ref ref="STDOUT" />
-               {{ end }}
-       </root>
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>
+        %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
+      </pattern>
+    </encoder>
+  </appender>
+
+  <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/rest/sane.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder>
+      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
+      </pattern>
+    </encoder>
+  </appender>
+
+  <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="SANE" />
+  </appender>
+
+  <appender name="METRIC"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/metrics.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="METRIC" />
+  </appender>
+
+  <appender name="DEBUG"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/debug.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="DEBUG" />
+  </appender>
+
+  <appender name="ERROR"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <file>${logDirectory}/rest/error.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${"eelfErrorLogPattern"}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="ERROR" />
+  </appender>
+
+  <appender name="AUDIT"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/rest/audit.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfAuditLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="AUDIT" />
+  </appender>
+
+  <appender name="translog"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/translog.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfTransLogPattern}</pattern>
+    </encoder>
+  </appender>
+  
+  <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="translog" />
+  </appender>
+
+  <appender name="dmaapAAIEventConsumer"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${"eelfErrorLogPattern"}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="dmaapAAIEventConsumerDebug"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="dmaapAAIEventConsumerMetric"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="external"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <file>${logDirectory}/external/external.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  
+  <!-- DataGrooming logs started -->
+  <appender name="dataGrooming" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <File>${logDirectory}/dataGrooming/error.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dataGrooming/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfErrorLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="dataGroomingdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dataGrooming/debug.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dataGrooming/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="dataGroomingmetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dataGrooming/metrics.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dataGrooming/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  
+  <!-- DataGrooming logs ended -->
+  
+  <!-- DataSnapshot logs started -->
+  <appender name="dataSnapshot" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <File>${logDirectory}/dataSnapshot/error.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dataSnapshot/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfErrorLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="dataSnapshotdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dataSnapshot/debug.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dataSnapshot/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="dataSnapshotmetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dataSnapshot/metrics.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dataSnapshot/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  
+  <!-- DataSnapshot logs ended -->
+  
+  <!-- CreateDBSchema logs started  -->
+  <appender name="createDBSchema" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <File>${logDirectory}/createDBSchema/error.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/createDBSchema/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${"eelfErrorLogPattern"}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="createDBSchemadebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/createDBSchema/debug.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/createDBSchema/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="createDBSchemametric" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/createDBSchema/metrics.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/createDBSchema/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <!-- CreateDBSchema logs ended  -->  
+  
+  <!-- DataCleanupTasks logs started  -->
+  <appender name="dataCleanuperror" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <File>${logDirectory}/misc/error.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/misc/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${"eelfErrorLogPattern"}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="dataCleanupdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/misc/debug.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/misc/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="dataCleanupmetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/misc/metrics.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/misc/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <!-- DataCleanupTasks logs ended  -->  
+      
+  <!-- pullInvData logs started -->
+  <appender name="pullInvData" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <File>${logDirectory}/pullInvData/error.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/pullInvData/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${"eelfErrorLogPattern"}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="pullInvDatadebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/pullInvData/debug.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/pullInvData/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="pullInvDatametric" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/pullInvData/metrics.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/pullInvData/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <!-- pullInvData logs ended -->
+        <!-- DataGrooming logs started -->
+  <appender name="dataExportError" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <File>${logDirectory}/dataExport/error.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dataExport/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfErrorLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="dataExportDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dataExport/debug.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dataExport/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="dataExportMetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dataExport/metrics.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dataExport/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  
+  <logger name="org.onap.aai" level="DEBUG" additivity="false">
+    <appender-ref ref="asyncDEBUG" />
+    <appender-ref ref="asyncERROR" />
+    <appender-ref ref="asyncMETRIC" />
+    <appender-ref ref="asyncSANE" />
+    <appender-ref ref="STDOUT"/>
+  </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" />
+  <logger name="com.jayway.jsonpath" level="WARN" />
+
+
+  <!-- logback internals logging -->
+  <logger name="ch.qos.logback.classic" level="WARN" />
+  <logger name="ch.qos.logback.core" level="WARN" />
+
+  <logger name="org.eclipse.jetty" level="WARN" />
+
+  <logger name="org.onap.aai.interceptors.post" level="DEBUG"
+      additivity="false">
+    <appender-ref ref="asynctranslog" />
+  </logger>
+
+  <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG">
+    <appender-ref ref="asyncAUDIT"/>
+  </logger>
+
+  <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG">
+    <appender-ref ref="asyncAUDIT"/>
+  </logger>
+
+  <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
+    <appender-ref ref="dmaapAAIEventConsumer" />
+    <appender-ref ref="dmaapAAIEventConsumerDebug" />
+    <appender-ref ref="dmaapAAIEventConsumerMetric" />
+  </logger>
+
+  <logger name="org.onap.aai.datasnapshot" level="DEBUG" additivity="false">
+    <appender-ref ref="dataSnapshot"/>
+    <appender-ref ref="dataSnapshotdebug"/>
+    <appender-ref ref="dataSnapshotmetric"/>
+    <appender-ref ref="STDOUT"/>
+  </logger>
+
+  <logger name="org.onap.aai.datagrooming" level="DEBUG" additivity="false">
+    <appender-ref ref="dataGrooming"/>
+    <appender-ref ref="dataGroomingdebug"/>
+    <appender-ref ref="dataGroomingmetric"/>
+    <appender-ref ref="STDOUT"/>
+  </logger>
+
+  <logger name="org.onap.aai.schema" level="DEBUG" additivity="false">
+    <appender-ref ref="createDBSchema"/>
+    <appender-ref ref="createDBSchemadebug"/>
+    <appender-ref ref="createDBSchemametric"/>
+    <appender-ref ref="STDOUT" />
+  </logger>
+
+  <logger name="org.onap.aai.dbgen" level="DEBUG" additivity="false">
+    <appender-ref ref="createDBSchema"/>
+    <appender-ref ref="createDBSchemadebug"/>
+    <appender-ref ref="createDBSchemametric"/>
+    <appender-ref ref="STDOUT" />
+  </logger>
+
+  <logger name="org.onap.aai.dbgen.PullInvData" level="DEBUG" additivity="false">
+    <appender-ref ref="pullInvData"/>
+    <appender-ref ref="pullInvDatadebug"/>
+    <appender-ref ref="pullInvDatametric"/>
+  </logger>
+  
+  <logger name="org.onap.aai.datacleanup" level="INFO" additivity="false">
+  <appender-ref ref="dataCleanuperror" />
+  <appender-ref ref="dataCleanupdebug" />
+  <appender-ref ref="dataCleanupmetric" />
+  <appender-ref ref="STDOUT"/>
+  </logger>
+  <logger name="org.onap.aai.dataexport" level="DEBUG" additivity="false">
+    <appender-ref ref="dataExportError"/>
+    <appender-ref ref="dataExportDebug"/>
+    <appender-ref ref="dataExportMetric"/>
+    <appender-ref ref="STDOUT"/>
+  </logger>
+  <logger name="org.apache" level="WARN" />
+  <logger name="org.zookeeper" level="WARN" />
+  <logger name="com.netflix" level="WARN" />
+  <logger name="org.janusgraph" level="WARN" />
+  <logger name="com.att.aft.dme2" level="WARN" />
+
+  <!-- ============================================================================ -->
+  <!-- General EELF logger -->
+  <!-- ============================================================================ -->
+  <logger name="com.att.eelf" level="WARN" additivity="false">
+    <appender-ref ref="asyncDEBUG" />
+    <appender-ref ref="asyncERROR" />
+    <appender-ref ref="asyncMETRIC" />
+  </logger>
+
+  <root level="DEBUG">
+    <appender-ref ref="external" />
+    {{ if .Values.global.config.logback.console.enabled }}
+    <appender-ref ref="STDOUT" />
+    {{ end }}
+  </root>
 </configuration>
index 869eac0..b595ac8 100644 (file)
@@ -55,6 +55,8 @@ spec:
         args:
         - --container-name
         - aai-cassandra
+        - --container-name
+        - aai-schema-service
       {{  end  }}
         env:
         - name: NAMESPACE
@@ -72,9 +74,9 @@ spec:
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: LOCAL_USER_ID
-          value: {{ .Values.config.userId | quote }}
+          value: {{ .Values.global.config.userId | quote }}
         - name: LOCAL_GROUP_ID
-          value: {{ .Values.config.groupId | quote }}
+          value: {{ .Values.global.config.groupId | quote }}
         volumeMounts:
         - mountPath: /etc/localtime
           name: localtime
@@ -126,7 +128,7 @@ spec:
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
       {{- if .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 8 }}
@@ -183,7 +185,7 @@ spec:
          name: {{ include "common.fullname" . }}-realm-configmap
       - name: {{ include "common.fullname" . }}-auth-truststore-sec
         secret:
-         secretName: aai-auth-truststore-secret
+         secretName: aai-common-truststore
          items:
           {{ range $job := .Values.global.config.auth.files }}
            - key: {{ . }}
index cdcf2b1..a62202b 100644 (file)
@@ -49,8 +49,6 @@ spec:
         app: {{ include "common.name" . }}-job
         release: {{ .Release.Name }}
       name: {{ include "common.name" . }}
-      annotations:
-        checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
     spec:
       initContainers:
       - command:
@@ -58,6 +56,8 @@ spec:
         args:
         - --container-name
         - aai-cassandra
+        - --container-name
+        - aai-schema-service
         env:
         - name: NAMESPACE
           valueFrom:
@@ -93,7 +93,7 @@ spec:
         - mountPath: /opt/app/aai-graphadmin/resources/etc/appprops/aaiconfig.properties
           name: {{ include "common.fullname" . }}-aaiconfig-conf
           subPath: aaiconfig.properties
-        - mountPath: /opt/aai/logroot/AAI-RES
+        - mountPath: /opt/aai/logroot/AAI-GA
           name: {{ include "common.fullname" . }}-logs
         - mountPath: /opt/app/aai-graphadmin/resources/logback.xml
           name: {{ include "common.fullname" . }}-log-conf
@@ -111,7 +111,7 @@ spec:
           subPath: {{ . }}
           {{ end }}
         resources:
-{{ include "common.resources" . | indent 10 }}
+{{ include "common.resources" . }}
       {{- if .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 8 }}
@@ -128,7 +128,8 @@ spec:
         configMap:
           name: aai-filebeat
       - name: {{ include "common.fullname" . }}-logs
-        emptyDir: {}
+        hostPath:
+          path: {{ .Values.persistence.mountPath }}/{{ .Release.Name }}/{{ .Values.persistence.mountSubPath }}-create-db-schema
       - name: {{ include "common.fullname" . }}-filebeat
         emptyDir: {}
       - name: {{ include "common.fullname" . }}-log-conf
@@ -154,7 +155,7 @@ spec:
          name: {{ include "common.fullname" . }}-realm-configmap
       - name: {{ include "common.fullname" . }}-auth-truststore-sec
         secret:
-         secretName: aai-auth-truststore-secret
+         secretName: aai-common-truststore
          items:
           {{ range $job := .Values.global.config.auth.files }}
            - key: {{ . }}
index b6192c3..bdcb82c 100644 (file)
@@ -28,7 +28,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aai-graphadmin:1.0.1
+image: onap/aai-graphadmin:1.1-STAGING-latest
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
@@ -107,6 +107,10 @@ service:
 ingress:
   enabled: false
 
+persistence:
+  mountPath: /dockerdata-nfs
+  mountSubPath: aai/aai-graphadmin
+
 resources:
   small:
     limits:
index 3a81168..f34693f 100644 (file)
@@ -35,6 +35,14 @@ spec:
         release: {{ .Release.Name }}
       name: {{ include "common.name" . }}
     spec:
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- end }}
       containers:
       - name: {{ include "common.name" . }}
         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
@@ -60,7 +68,7 @@ spec:
         - containerPort: {{ .Values.service.internalPort }}
         - containerPort: {{ .Values.service.internalPort2 }}
         resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
 
       # side car containers
       - name: filebeat-onap
@@ -74,6 +82,8 @@ spec:
           name: {{ include "common.fullname" . }}-logs
         - mountPath: /usr/share/filebeat/data
           name: aai-filebeat
+        resources:
+{{ include "common.resources" . }}
       volumes:
       - name: localtime
         hostPath:
index 32a3482..6084ca3 100644 (file)
@@ -17,6 +17,11 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/config/auth/*").AsSecrets . | indent 2 }}
index 4b5ab07..f2e7caa 100644 (file)
@@ -69,7 +69,7 @@ aai.logging.trace.logresponse=false
 
 aai.transaction.logging=true
 aai.transaction.logging.get=false
-aai.transaction.logging.post=false
+aai.transaction.logging.post=true
 
 aai.realtime.clients={{ .Values.global.config.realtime.clients }}
 
index c8648e4..7237c56 100644 (file)
@@ -40,9 +40,9 @@ server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties
 
 server.port=8447
 server.ssl.enabled-protocols=TLSv1.1,TLSv1.2
-server.ssl.key-store=${server.local.startpath}etc/auth/{{ .Values.global.config.keystore.filename }}
+server.ssl.key-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.keystore.filename }}
 server.ssl.key-store-password=password({{ .Values.global.config.keystore.passwd }})
-server.ssl.trust-store=${server.local.startpath}etc/auth/{{ .Values.global.config.truststore.filename }}
+server.ssl.trust-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.truststore.filename }}
 server.ssl.trust-store-password=password({{ .Values.global.config.truststore.passwd }})
 server.ssl.client-auth=want
 server.ssl.key-store-type=JKS
@@ -81,3 +81,14 @@ schema.version.edge.label.start={{ .Values.global.config.schema.version.edge.lab
 # Specifies the version that the application should default to
 schema.version.api.default={{ .Values.global.config.schema.version.api.default }}
 
+schema.translator.list={{ .Values.global.config.schema.translator.list }}
+schema.service.base.url=https://aai-schema-service.{{ include "common.namespace" . }}:8452/aai/schema-service/v1/
+schema.service.nodes.endpoint=nodes?version=
+schema.service.edges.endpoint=edgerules?version=
+schema.service.versions.endpoint=versions
+schema.service.client={{ .Values.global.config.schema.service.client }}
+
+schema.service.ssl.key-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.keystore.filename }}
+schema.service.ssl.trust-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.truststore.filename }}
+schema.service.ssl.key-store-password=password({{ .Values.global.config.keystore.passwd }})
+schema.service.ssl.trust-store-password=password({{ .Values.global.config.truststore.passwd }})
index 9a7216c..0afc6f9 100644 (file)
 <!--
-    ============LICENSE_START=======================================================
-    org.onap.aai
-    ================================================================================
-    Copyright © 2017 AT&T Intellectual Property. All rights reserved.
-    Modifications 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=========================================================
-    ECOMP is a trademark and service mark of AT&T Intellectual Property.
+  ============LICENSE_START=======================================================
+  org.onap.aai
+  ================================================================================
+  Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+  Modifications 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=========================================================
+  ECOMP is a trademark and service mark of AT&T Intellectual Property.
 -->
 <configuration scan="true" scanPeriod="60 seconds" debug="false">
-    <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
-    <property resource="application.properties" />
-    <property name="namespace" value="aai-resources"/>
-    <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
-    <jmxConfigurator />
-    <property name="logDirectory" value="${AJSC_HOME}/logs" />
-    <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
-    <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
-    <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
-    <!--  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> -->
-    <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
-    <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
-    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
-    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
-    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder>
-            <pattern>
-                %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
-            </pattern>
-        </encoder>
-    </appender>
-    <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${logDirectory}/rest/sane.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
-        </rollingPolicy>
-        <encoder>
-            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
-            </pattern>
-        </encoder>
-    </appender>
-    <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="SANE" />
-    </appender>
-    <appender name="METRIC"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>INFO</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <file>${logDirectory}/rest/metrics.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfMetricLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="METRIC" />
-    </appender>
-    <appender name="DEBUG"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <file>${logDirectory}/rest/debug.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="DEBUG" />
-    </appender>
-    <appender name="ERROR"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>WARN</level>
-        </filter>
-        <file>${logDirectory}/rest/error.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfErrorLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="ERROR" />
-    </appender>
-    <appender name="AUDIT"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${logDirectory}/rest/audit.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfAuditLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="AUDIT" />
-    </appender>
-    <appender name="translog"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <file>${logDirectory}/rest/translog.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfTransLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="translog" />
-    </appender>
-    <appender name="dmaapAAIEventConsumer"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>WARN</level>
-        </filter>
-        <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="dmaapAAIEventConsumerDebug"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="dmaapAAIEventConsumerMetric"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>INFO</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfMetricLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="external"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>WARN</level>
-        </filter>
-        <file>${logDirectory}/external/external.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <logger name="org.onap.aai" level="DEBUG" additivity="false">
-        <appender-ref ref="asyncDEBUG" />
-        <appender-ref ref="asyncERROR" />
-        <appender-ref ref="asyncMETRIC" />
-        <appender-ref ref="asyncSANE" />
-    </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" />
-    <logger name="com.jayway.jsonpath" level="WARN" />
-    <!-- AJSC Services (bootstrap services) -->
-    <logger name="ajsc" level="WARN" />
-    <logger name="ajsc.RouteMgmtService" level="WARN" />
-    <logger name="ajsc.ComputeService" level="WARN" />
-    <logger name="ajsc.VandelayService" level="WARN" />
-    <logger name="ajsc.FilePersistenceService" level="WARN" />
-    <logger name="ajsc.UserDefinedJarService" level="WARN" />
-    <logger name="ajsc.UserDefinedBeansDefService" level="WARN" />
-    <logger name="ajsc.LoggingConfigurationService" level="WARN" />
-    <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet
-        logging) -->
-    <logger name="org.codehaus.groovy" level="WARN" />
-    <logger name="com.att.scamper" level="WARN" />
-    <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.ajsc" level="WARN" />
-    <logger name="com.att.ajsc.csi.logging" level="WARN" />
-    <logger name="com.att.ajsc.filemonitor" level="WARN" />
-    <logger name="com.netflix.loadbalancer" level="WARN" />
-    <logger name="org.apache.zookeeper" level="OFF" />
-    <!-- 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" />
-    <logger name="org.hibernate.validator" level="WARN" />
-    <logger name="org.hibernate" level="WARN" />
-    <logger name="org.hibernate.ejb" level="OFF" />
-    <!-- logback internals logging -->
-    <logger name="ch.qos.logback.classic" level="WARN" />
-    <logger name="ch.qos.logback.core" level="WARN" />
-    <logger name="org.eclipse.jetty" level="WARN" />
-    <!-- logback jms appenders & loggers definition starts here -->
-    <appender name="auditLogs"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
-        <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log
-        </file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
-            </fileNamePattern>
-            <minIndex>1</minIndex>
-            <maxIndex>9</maxIndex>
-        </rollingPolicy>
-        <triggeringPolicy
-            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <maxFileSize>5MB</maxFileSize>
-        </triggeringPolicy>
-        <encoder>
-            <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-        </encoder>
-    </appender>
-    <appender name="perfLogs"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
-        <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log
-        </file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
-            </fileNamePattern>
-            <minIndex>1</minIndex>
-            <maxIndex>9</maxIndex>
-        </rollingPolicy>
-        <triggeringPolicy
-            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <maxFileSize>5MB</maxFileSize>
-        </triggeringPolicy>
-        <encoder>
-            <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-        </encoder>
-    </appender>
-    <logger name="AuditRecord" level="INFO" additivity="false">
-        <appender-ref ref="auditLogs" />
-    </logger>
-    <logger name="AuditRecord_DirectCall" level="INFO" additivity="false">
-        <appender-ref ref="auditLogs" />
-    </logger>
-    <logger name="PerfTrackerRecord" level="INFO" additivity="false">
-        <appender-ref ref="perfLogs" />
-    </logger>
-    <!-- logback jms appenders & loggers definition ends here -->
-    <logger name="org.onap.aai.interceptors.post" level="DEBUG"
-            additivity="false">
-        <appender-ref ref="asynctranslog" />
-    </logger>
-    <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG">
-        <appender-ref ref="asyncAUDIT"/>
-    </logger>
-    <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG">
-        <appender-ref ref="asyncAUDIT"/>
-    </logger>
-    <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
-        <appender-ref ref="dmaapAAIEventConsumer" />
-        <appender-ref ref="dmaapAAIEventConsumerDebug" />
-        <appender-ref ref="dmaapAAIEventConsumerMetric" />
-    </logger>
-    <logger name="org.apache" level="OFF" />
-    <logger name="org.zookeeper" level="OFF" />
-    <logger name="com.thinkaurelius" level="WARN" />
-    <logger name="com.att.aft.dme2" level="WARN" />
-    <!-- ============================================================================ -->
-    <!-- General EELF logger -->
-    <!-- ============================================================================ -->
-    <logger name="com.att.eelf" level="WARN" additivity="false">
-        <appender-ref ref="asyncDEBUG" />
-        <appender-ref ref="asyncERROR" />
-        <appender-ref ref="asyncMETRIC" />
-    </logger>
-    <root level="DEBUG">
-        <appender-ref ref="external" />
-        {{ if .Values.global.config.logback.console.enabled }}
-        <appender-ref ref="STDOUT" />
-        {{ end }}
-    </root>
+  <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
+  <property resource="application.properties" />
+  <property name="namespace" value="aai-resources"/>
+  <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
+  <jmxConfigurator />
+  <property name="logDirectory" value="${AJSC_HOME}/logs" />
+  <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <!--  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> -->
+  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
+  <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+  <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+  <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>
+        %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
+      </pattern>
+    </encoder>
+  </appender>
+  <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/rest/sane.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder>
+      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
+      </pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="SANE" />
+  </appender>
+  <appender name="METRIC"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/metrics.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="METRIC" />
+  </appender>
+  <appender name="DEBUG"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/debug.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="DEBUG" />
+  </appender>
+  <appender name="ERROR"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <file>${logDirectory}/rest/error.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfErrorLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="ERROR" />
+  </appender>
+  <appender name="AUDIT"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/rest/audit.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfAuditLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="AUDIT" />
+  </appender>
+  <appender name="translog"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/translog.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfTransLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="translog" />
+  </appender>
+  <appender name="dmaapAAIEventConsumer"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="dmaapAAIEventConsumerDebug"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="dmaapAAIEventConsumerMetric"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="external"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <file>${logDirectory}/external/external.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <logger name="org.onap.aai" level="DEBUG" additivity="false">
+    <appender-ref ref="asyncDEBUG" />
+    <appender-ref ref="asyncERROR" />
+    <appender-ref ref="asyncMETRIC" />
+    <appender-ref ref="asyncSANE" />
+    <appender-ref ref="STDOUT" />
+  </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" />
+  <logger name="com.jayway.jsonpath" level="WARN" />
+
+  <logger name="ch.qos.logback.classic" level="WARN" />
+  <logger name="ch.qos.logback.core" level="WARN" />
+  <logger name="org.eclipse.jetty" level="WARN" />
+
+  <logger name="org.onap.aai.interceptors.post" level="DEBUG"
+      additivity="false">
+    <appender-ref ref="asynctranslog" />
+  </logger>
+  <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG">
+    <appender-ref ref="asyncAUDIT"/>
+  </logger>
+  <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG">
+    <appender-ref ref="asyncAUDIT"/>
+  </logger>
+  <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
+    <appender-ref ref="dmaapAAIEventConsumer" />
+    <appender-ref ref="dmaapAAIEventConsumerDebug" />
+    <appender-ref ref="dmaapAAIEventConsumerMetric" />
+  </logger>
+  <logger name="org.apache" level="OFF" />
+  <logger name="org.zookeeper" level="OFF" />
+  <logger name="com.thinkaurelius" level="WARN" />
+  <logger name="com.att.aft.dme2" level="WARN" />
+  <!-- ============================================================================ -->
+  <!-- General EELF logger -->
+  <!-- ============================================================================ -->
+  <logger name="com.att.eelf" level="WARN" additivity="false">
+    <appender-ref ref="asyncDEBUG" />
+    <appender-ref ref="asyncERROR" />
+    <appender-ref ref="asyncMETRIC" />
+  </logger>
+  <root level="DEBUG">
+    <appender-ref ref="external" />
+    {{ if .Values.global.config.logback.console.enabled }}
+    <appender-ref ref="STDOUT" />
+    {{ end }}
+  </root>
 </configuration>
index cac8f4b..d4f0111 100644 (file)
@@ -563,6 +563,8 @@ spec:
         args:
         - --container-name
         - aai-cassandra
+        - --container-name
+        - aai-schema-service
       {{  end  }}
         env:
         - name: NAMESPACE
@@ -670,7 +672,7 @@ spec:
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
       {{- if .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 8 }}
@@ -692,6 +694,8 @@ spec:
           name: {{ include "common.fullname" . }}-logs
         - mountPath: /usr/share/filebeat/data
           name: {{ include "common.fullname" . }}-filebeat
+        resources:
+{{ include "common.resources" . }}
     {{ if .Values.global.installSidecarSecurity }}
       - name: {{ .Values.global.rproxy.name }}
         image: "{{ include "common.repository" . }}/{{ .Values.global.rproxy.image }}"
@@ -815,7 +819,7 @@ spec:
          name: {{ include "common.fullname" . }}-realm-configmap
       - name: {{ include "common.fullname" . }}-auth-truststore-sec
         secret:
-         secretName: aai-auth-truststore-secret
+         secretName: aai-common-truststore
          items:
           {{ range $job := .Values.global.config.auth.files }}
            - key: {{ . }}
index e0a1156..ea40973 100644 (file)
@@ -22,7 +22,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aai-resources:1.3.4
+image: onap/aai-resources:1.4-STAGING-latest
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
diff --git a/kubernetes/aai/charts/aai-schema-service/.helmignore b/kubernetes/aai/charts/aai-schema-service/.helmignore
new file mode 100644 (file)
index 0000000..daebc7d
--- /dev/null
@@ -0,0 +1,21 @@
+# Patterns to ignore when building packages.\r
+# This supports shell glob matching, relative path matching, and\r
+# negation (prefixed with !). Only one pattern per line.\r
+.DS_Store\r
+# Common VCS dirs\r
+.git/\r
+.gitignore\r
+.bzr/\r
+.bzrignore\r
+.hg/\r
+.hgignore\r
+.svn/\r
+# Common backup files\r
+*.swp\r
+*.bak\r
+*.tmp\r
+*~\r
+# Various IDEs\r
+.project\r
+.idea/\r
+*.tmproj\r
diff --git a/kubernetes/aai/charts/aai-schema-service/Chart.yaml b/kubernetes/aai/charts/aai-schema-service/Chart.yaml
new file mode 100644 (file)
index 0000000..af462f0
--- /dev/null
@@ -0,0 +1,19 @@
+# Copyright © 2019 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+apiVersion: v1
+description: ONAP AAI Schema Service
+name: aai-schema-service
+version: 4.0.0
diff --git a/kubernetes/aai/charts/aai-schema-service/config/aaiconfig.properties b/kubernetes/aai/charts/aai-schema-service/config/aaiconfig.properties
new file mode 100644 (file)
index 0000000..2172d71
--- /dev/null
@@ -0,0 +1,43 @@
+#
+# ============LICENSE_START=======================================================
+# org.onap.aai
+# ================================================================================
+# Copyright © 2019 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=========================================================
+
+aai.server.url.base=https://aai.{{ include "common.namespace" . }}:8443/aai/
+aai.server.url=https://aai.{{ include "common.namespace" . }}:8443/aai/{{ .Values.global.config.schema.version.api.default }}/
+aai.global.callback.url=https://aai.{{ include "common.namespace" . }}:8443/aai/
+
+{{ if .Values.global.config.basic.auth.enabled }}
+aai.tools.enableBasicAuth=true
+aai.tools.username={{ .Values.global.config.basic.auth.username }}
+aai.tools.password={{ .Values.global.config.basic.auth.passwd }}
+{{ end }}
+
+aai.truststore.filename={{ .Values.global.config.truststore.filename }}
+aai.truststore.passwd.x={{ .Values.global.config.truststore.passwd }}
+aai.keystore.filename={{ .Values.global.config.keystore.filename }}
+aai.keystore.passwd.x={{ .Values.global.config.keystore.passwd }}
+
+aai.default.api.version={{ .Values.global.config.schema.version.api.default }}
+
+aai.logging.trace.enabled=true
+aai.logging.trace.logrequest=false
+aai.logging.trace.logresponse=false
+
+aai.transaction.logging=true
+aai.transaction.logging.get=false
+aai.transaction.logging.post=false
diff --git a/kubernetes/aai/charts/aai-schema-service/config/application.properties b/kubernetes/aai/charts/aai-schema-service/config/application.properties
new file mode 100644 (file)
index 0000000..7b9312f
--- /dev/null
@@ -0,0 +1,70 @@
+# Copyright © 2018 Amdocs, Bell Canada, AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# The following info parameters are being referenced by ajsc6
+info.build.artifact=aai-schema-service
+info.build.name=schema-service
+info.build.description=Schema Service Microservice
+info.build.version=1.1.0
+
+spring.application.name=aai-schema-service
+spring.jersey.type=filter
+
+server.contextPath=/
+spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
+
+spring.profiles.active={{ .Values.global.config.profiles.active }}
+spring.jersey.application-path=${schema.uri.base.path}
+server.tomcat.max-threads=200
+server.tomcat.min-Spare-Threads=25
+server.tomcat.max-idle-time=60000
+
+server.local.startpath=aai-schema-service/src/main/resources/
+server.basic.auth.location=${server.local.startpath}/etc/auth/realm.properties
+
+server.port=8452
+server.ssl.enabled-protocols=TLSv1.1,TLSv1.2
+server.ssl.key-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.keystore.filename }}
+server.ssl.key-store-password=password({{ .Values.global.config.keystore.passwd }})
+server.ssl.trust-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.truststore.filename }}
+server.ssl.trust-store-password=password({{ .Values.global.config.truststore.passwd }})
+server.ssl.client-auth=want
+server.ssl.key-store-type=JKS
+
+schema.configuration.location=N/A
+schema.source.name={{ .Values.global.config.schema.source.name }}
+schema.nodes.location=${server.local.startpath}/schema/${schema.source.name}/oxm/
+schema.edges.location=${server.local.startpath}/schema/${schema.source.name}/dbedgerules/
+schema.query.location=${server.local.startpath}/schema/${schema.source.name}/query/
+
+schema.ingest.file=${server.local.startpath}/application.properties
+
+# Schema Version Related Attributes
+schema.uri.base.path={{ .Values.global.config.schema.uri.base.path }}/schema-service
+# Lists all of the versions in the schema
+schema.version.list={{ .Values.global.config.schema.version.list }}
+# Specifies from which version should the depth parameter to default to zero
+schema.version.depth.start={{ .Values.global.config.schema.version.depth }}
+# Specifies from which version should the related link be displayed in response payload
+schema.version.related.link.start={{ .Values.global.config.schema.version.related.link }}
+
+# Specifies from which version should the client see only the uri excluding host info
+# Before this version server base will also be included
+schema.version.app.root.start={{ .Values.global.config.schema.version.app.root }}
+# Specifies from which version should the namespace be changed
+schema.version.namespace.change.start={{ .Values.global.config.schema.version.namespace.change }}
+# Specifies from which version should the client start seeing the edge label in payload
+schema.version.edge.label.start={{ .Values.global.config.schema.version.edge.label }}
+# Specifies the version that the application should default to
+schema.version.api.default={{ .Values.global.config.schema.version.api.default }}
diff --git a/kubernetes/aai/charts/aai-schema-service/config/localhost-access-logback.xml b/kubernetes/aai/charts/aai-schema-service/config/localhost-access-logback.xml
new file mode 100644 (file)
index 0000000..447f239
--- /dev/null
@@ -0,0 +1,58 @@
+<!--
+    ============LICENSE_START=======================================================
+    org.onap.aai
+    ================================================================================
+    Copyright © 2019 AT&T Intellectual Property. All rights reserved.
+    ================================================================================
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+    ============LICENSE_END=========================================================
+-->
+<configuration>
+       <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
+       <appender name="ACCESS"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file>
+               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                       <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd}
+                       </fileNamePattern>
+               </rollingPolicy>
+               <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">
+                       <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D</Pattern>
+               </encoder>
+       </appender>
+       <appender-ref ref="ACCESS" />
+</configuration>
+
+<!-- 
+%a - Remote IP address
+%A - Local IP address
+%b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent
+%B - Bytes sent, excluding HTTP headers
+%h - Remote host name
+%H - Request protocol
+%l - Remote logical username from identd (always returns '-')
+%m - Request method
+%p - Local port
+%q - Query string (prepended with a '?' if it exists, otherwise an empty string
+%r - First line of the request
+%s - HTTP status code of the response
+%S - User session ID
+%t - Date and time, in Common Log Format format
+%u - Remote user that was authenticated
+%U - Requested URL path
+%v - Local server name
+%I - current request thread name (can compare later with stacktraces)
+
+%z - Custom pattern that parses the cert for the subject
+%y - Custom pattern determines rest or dme2
+ -->
diff --git a/kubernetes/aai/charts/aai-schema-service/config/logback.xml b/kubernetes/aai/charts/aai-schema-service/config/logback.xml
new file mode 100644 (file)
index 0000000..f10546a
--- /dev/null
@@ -0,0 +1,237 @@
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+  <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
+  <property resource="application.properties" />
+  <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
+  <jmxConfigurator />
+  <property name="logDirectory" value="${AJSC_HOME}/logs" />
+  <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <!--  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> -->
+  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
+  <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+  <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+  <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>
+        %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
+      </pattern>
+    </encoder>
+  </appender>
+  <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/rest/sane.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder>
+      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
+      </pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="SANE" />
+  </appender>
+  <appender name="METRIC"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/metrics.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="METRIC" />
+  </appender>
+  <appender name="DEBUG"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/debug.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="DEBUG" />
+  </appender>
+  <appender name="ERROR"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <file>${logDirectory}/rest/error.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfErrorLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="ERROR" />
+  </appender>
+  <appender name="AUDIT"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/rest/audit.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfAuditLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="AUDIT" />
+  </appender>
+  <appender name="translog"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/translog.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfTransLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="translog" />
+  </appender>
+  <appender name="dmaapAAIEventConsumer"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="dmaapAAIEventConsumerDebug"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="dmaapAAIEventConsumerMetric"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="external"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <file>${logDirectory}/external/external.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <logger name="org.onap.aai.schemaservice" level="DEBUG" additivity="false">
+    <appender-ref ref="asyncDEBUG" />
+    <appender-ref ref="asyncERROR" />
+    <appender-ref ref="asyncMETRIC" />
+    <appender-ref ref="asyncSANE" />
+    <appender-ref ref="STDOUT" />
+  </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" />
+  <!-- logback internals logging -->
+  <logger name="ch.qos.logback.classic" level="WARN" />
+  <logger name="ch.qos.logback.core" level="WARN" />
+  <logger name="org.eclipse.jetty" level="WARN" />
+
+  <logger name="org.onap.aai.schemaservice.interceptors.post" level="DEBUG"
+      additivity="false">
+    <appender-ref ref="asynctranslog" />
+  </logger>
+  <logger name="org.onap.aai.schemaservice.interceptors.pre.SetLoggingContext" level="DEBUG">
+    <appender-ref ref="asyncAUDIT"/>
+  </logger>
+  <logger name="org.onap.aai.schemaservice.interceptors.post.ResetLoggingContext" level="DEBUG">
+    <appender-ref ref="asyncAUDIT"/>
+  </logger>
+  <!-- ============================================================================ -->
+  <!-- General EELF logger -->
+  <!-- ============================================================================ -->
+  <logger name="com.att.eelf" level="WARN" additivity="false">
+    <appender-ref ref="asyncDEBUG" />
+    <appender-ref ref="asyncERROR" />
+    <appender-ref ref="asyncMETRIC" />
+  </logger>
+  <root level="DEBUG">
+    <appender-ref ref="external" />
+    {{ if .Values.global.config.logback.console.enabled }}
+    <appender-ref ref="STDOUT" />
+    {{ end }}
+  </root>
+</configuration>
diff --git a/kubernetes/aai/charts/aai-schema-service/config/realm.properties b/kubernetes/aai/charts/aai-schema-service/config/realm.properties
new file mode 100644 (file)
index 0000000..988bb24
--- /dev/null
@@ -0,0 +1,22 @@
+AAI:OBF:1gfr1ev31gg7,admin
+MSO:OBF:1jzx1lz31k01,admin
+SDNC:OBF:1itr1i0l1i151isv,admin
+DCAE:OBF:1g8u1f9d1f991g8w,admin
+POLICY:OBF:1mk61i171ima1im41i0j1mko,admin
+ASDC:OBF:1f991j0u1j001f9d,admin
+VID:OBF:1jm91i0v1jl9,admin
+APPC:OBF:1f991ksf1ksf1f9d,admin
+ModelLoader:OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw,admin
+AaiUI:OBF:1gfr1p571unz1p4j1gg7,admin
+OOF:OBF:1img1ke71ily,admin
+aai@aai.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
+so@so.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
+sdnc@sdnc.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
+dcae@dcae.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
+policy@policy.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
+sdc@sdc.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
+vid@vid.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
+appc@appc.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
+oof@oof.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
+pomba@pomba.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
+vfc@vfc.onap.org:OBF:1fia1ju61l871lfe18xp18xr18xt1lc41l531jrk1fek,admin
diff --git a/kubernetes/aai/charts/aai-schema-service/templates/configmap.yaml b/kubernetes/aai/charts/aai-schema-service/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..91a831a
--- /dev/null
@@ -0,0 +1,78 @@
+# Copyright © 2018 Amdocs, Bell Canada, AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "config/logback.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-localhost-access-log-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "config/localhost-access-logback.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-aaiconfig-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "config/aaiconfig.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-springapp-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "config/application.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-realm-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "config/realm.properties").AsConfig . | indent 2 }}
diff --git a/kubernetes/aai/charts/aai-schema-service/templates/deployment.yaml b/kubernetes/aai/charts/aai-schema-service/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..bd9a85f
--- /dev/null
@@ -0,0 +1,155 @@
+# Copyright © 2017 Amdocs, Bell Canada
+# Modifications Copyright © 2018 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  selector:
+    matchLabels:
+      app: {{ include "common.name" . }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+      name: {{ include "common.name" . }}
+      annotations:
+        checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
+    spec:
+      containers:
+      - name: {{ include "common.name" . }}
+        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        env:
+        - name: LOCAL_USER_ID
+          value: {{ .Values.global.config.userId | quote }}
+        - name: LOCAL_GROUP_ID
+          value: {{ .Values.global.config.groupId | quote }}
+        volumeMounts:
+        - mountPath: /etc/localtime
+          name: localtime
+          readOnly: true
+        - mountPath: /opt/app/aai-schema-service/resources/etc/appprops/aaiconfig.properties
+          name: aaiconfig-conf
+          subPath: aaiconfig.properties
+        - mountPath: /opt/aai/logroot/AAI-SCHEMA-SERVICE
+          name: {{ include "common.fullname" . }}-logs
+        - mountPath: /opt/app/aai-schema-service/resources/logback.xml
+          name: {{ include "common.fullname" . }}-log-conf
+          subPath: logback.xml
+        - mountPath: /opt/app/aai-schema-service/resources/localhost-access-logback.xml
+          name: localhost-access-log-conf
+          subPath: localhost-access-logback.xml
+        - mountPath: /opt/app/aai-schema-service/resources/etc/auth/realm.properties
+          name: realm-conf
+          subPath: realm.properties
+        - mountPath: /opt/app/aai-schema-service/resources/application.properties
+          name: springapp-conf
+          subPath: application.properties
+          {{ $global := . }}
+          {{ range $job := .Values.global.config.auth.files }}
+        - mountPath: /opt/app/aai-schema-service/resources/etc/auth/{{ . }}
+          name: auth-truststore-sec
+          subPath: {{ . }}
+          {{ end }}
+        ports:
+        - containerPort: {{ .Values.service.internalPort }}
+        - containerPort: {{ .Values.service.internalPort2 }}
+        # disable liveness probe when breakpoints set in debugger
+        # so K8s doesn't restart unresponsive container
+        {{ if .Values.liveness.enabled }}
+        livenessProbe:
+          tcpSocket:
+            port: {{ .Values.service.internalPort }}
+          initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+          periodSeconds: {{ .Values.liveness.periodSeconds }}
+        {{ end }}
+        readinessProbe:
+          tcpSocket:
+            port: {{ .Values.service.internalPort }}
+          initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+          periodSeconds: {{ .Values.readiness.periodSeconds }}
+        resources:
+{{ include "common.resources" . | indent 12 }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- end }}
+
+      # side car containers
+      - name: filebeat-onap
+        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        volumeMounts:
+        - mountPath: /usr/share/filebeat/filebeat.yml
+          subPath: filebeat.yml
+          name: filebeat-conf
+        - mountPath: /var/log/onap
+          name: {{ include "common.fullname" . }}-logs
+        - mountPath: /usr/share/filebeat/data
+          name: {{ include "common.fullname" . }}-filebeat
+      volumes:
+      - name: aai-common-aai-auth-mount
+        secret:
+          secretName: aai-common-aai-auth
+      - name: localtime
+        hostPath:
+          path: /etc/localtime
+      - name: filebeat-conf
+        configMap:
+          name: aai-filebeat
+      - name: {{ include "common.fullname" . }}-logs
+        emptyDir: {}
+      - name: {{ include "common.fullname" . }}-filebeat
+        emptyDir: {}
+      - name: {{ include "common.fullname" . }}-log-conf
+        configMap:
+         name: {{ include "common.fullname" . }}-log
+      - name: localhost-access-log-conf
+        configMap:
+         name: {{ include "common.fullname" . }}-localhost-access-log-configmap
+      - name: springapp-conf
+        configMap:
+         name: {{ include "common.fullname" . }}-springapp-configmap
+      - name: aaiconfig-conf
+        configMap:
+         name: {{ include "common.fullname" . }}-aaiconfig-configmap
+      - name: realm-conf
+        configMap:
+         name: {{ include "common.fullname" . }}-realm-configmap
+      - name: auth-truststore-sec
+        secret:
+         secretName: aai-common-truststore
+         items:
+          {{ range $job := .Values.global.config.auth.files }}
+           - key: {{ . }}
+             path: {{ . }}
+          {{ end }}
+      restartPolicy: {{ .Values.restartPolicy }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/aai/charts/aai-schema-service/templates/service.yaml b/kubernetes/aai/charts/aai-schema-service/templates/service.yaml
new file mode 100644 (file)
index 0000000..d119912
--- /dev/null
@@ -0,0 +1,44 @@
+# Copyright © 2018 Amdocs, Bell Canada, AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+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.internalPort }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
+    name: {{ .Values.service.portName }}
+  - port: {{ .Values.service.internalPort2 }}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
+    name: {{ .Values.service.portName2 }}
+  {{- else -}}
+  - port: {{ .Values.service.internalPort }}
+    name: {{ .Values.service.portName }}
+  - port: {{ .Values.service.internalPort2 }}
+    name: {{ .Values.service.portName2 }}
+  {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
diff --git a/kubernetes/aai/charts/aai-schema-service/values.yaml b/kubernetes/aai/charts/aai-schema-service/values.yaml
new file mode 100644 (file)
index 0000000..18b11b8
--- /dev/null
@@ -0,0 +1,90 @@
+# Copyright © 2018 Amdocs, Bell Canada, AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Default values for resources.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+global: # global defaults
+  nodePortPrefix: 302
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+
+# application image
+repository: nexus3.onap.org:10001
+image: onap/aai-schema-service:1.0-STAGING-latest
+pullPolicy: Always
+restartPolicy: Always
+flavor: small
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 60
+  periodSeconds: 60
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: false
+
+readiness:
+  initialDelaySeconds: 60
+  periodSeconds: 10
+
+service:
+  type: ClusterIP
+  portName: aai-schema-service-8452
+  internalPort: 8452
+  portName2: aai-schema-service-5005
+  internalPort2: 5005
+
+ingress:
+  enabled: false
+
+  # 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
+resources:
+  small:
+    limits:
+      cpu: 2
+      memory: 4Gi
+    requests:
+      cpu: 1
+      memory: 3Gi
+  large:
+    limits:
+      cpu: 4
+      memory: 8Gi
+    requests:
+      cpu: 2
+      memory: 4Gi
+  unlimited: {}
index e68a205..1d39d4e 100644 (file)
@@ -93,7 +93,7 @@ spec:
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
       {{- if .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 8 }}
index 77b3ce2..ee32e19 100644 (file)
@@ -17,6 +17,11 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}-keystone
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/config/auth/tomcat_keystore").AsSecrets . | indent 2 }}
@@ -26,5 +31,10 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}-policy
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/auth/search_policy.json").AsSecrets . | indent 2 }}
index ac9cf77..ee18d9b 100644 (file)
@@ -137,7 +137,7 @@ spec:
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
       {{- if .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 8 }}
@@ -159,6 +159,8 @@ spec:
           name: {{ include "common.fullname" . }}-logs
         - mountPath: /usr/share/filebeat/data
           name: aai-sparky-filebeat
+        resources:
+{{ include "common.resources" . }}
 
       volumes:
       - name: localtime
index 32a3482..6084ca3 100644 (file)
@@ -17,6 +17,11 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/config/auth/*").AsSecrets . | indent 2 }}
index a3ff068..c962f1d 100644 (file)
@@ -106,15 +106,15 @@ spec:
           - mountPath: /var/log/onap
             name: {{ include "common.fullname" . }}-logs
           resources:
-{{ include "common.resources" . | indent 12 }}
-        {{- if .Values.nodeSelector }}
-        nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 10 }}
-        {{- end -}}
-        {{- if .Values.affinity }}
-        affinity:
-{{ toYaml .Values.affinity | indent 10 }}
-        {{- end }}
+{{ include "common.resources" . }}
+      {{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+      {{- end -}}
+      {{- if .Values.affinity }}
+      affinity:
+{{ toYaml .Values.affinity | indent 8 }}
+      {{- end }}
 
         # side car containers
         - name: filebeat-onap
@@ -128,6 +128,8 @@ spec:
             name: {{ include "common.fullname" . }}-logs
           - mountPath: /usr/share/filebeat/data
             name: aai-filebeat
+          resources:
+{{ include "common.resources" . }}
 
       volumes:
         - name: localtime
index 6a9810b..510805d 100644 (file)
@@ -17,6 +17,11 @@ kind: Secret
 metadata:
   name: {{ include "common.fullname" . }}-spike-secrets
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/config/auth/*").AsSecrets . | indent 2 }}
index 8d35e2f..a7c86b6 100644 (file)
@@ -40,9 +40,9 @@ server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties
 
 server.port=8446
 server.ssl.enabled-protocols=TLSv1.1,TLSv1.2
-server.ssl.key-store=${server.local.startpath}etc/auth/{{ .Values.global.config.keystore.filename }}
+server.ssl.key-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.keystore.filename }}
 server.ssl.key-store-password=password({{ .Values.global.config.keystore.passwd }})
-server.ssl.trust-store=${server.local.startpath}etc/auth/{{ .Values.global.config.truststore.filename }}
+server.ssl.trust-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.truststore.filename }}
 server.ssl.trust-store-password=password({{ .Values.global.config.truststore.passwd }})
 server.ssl.client-auth=want
 server.ssl.key-store-type=JKS
@@ -83,3 +83,15 @@ schema.version.edge.label.start={{ .Values.global.config.schema.version.edge.lab
 # Specifies the version that the application should default to
 schema.version.api.default={{ .Values.global.config.schema.version.api.default }}
 
+schema.translator.list={{ .Values.global.config.schema.translator.list }}
+schema.service.base.url=https://aai-schema-service.{{ include "common.namespace" . }}:8452/aai/schema-service/v1/
+schema.service.nodes.endpoint=nodes?version=
+schema.service.edges.endpoint=edgerules?version=
+schema.service.versions.endpoint=versions
+schema.service.custom.queries.endpoint=stored-queries
+schema.service.client={{ .Values.global.config.schema.service.client }}
+
+schema.service.ssl.key-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.keystore.filename }}
+schema.service.ssl.trust-store=${server.local.startpath}/etc/auth/{{ .Values.global.config.truststore.filename }}
+schema.service.ssl.key-store-password=password({{ .Values.global.config.keystore.passwd }})
+schema.service.ssl.trust-store-password=password({{ .Values.global.config.truststore.passwd }})
index 96fe005..d466ccf 100644 (file)
 <!--
-    ============LICENSE_START=======================================================
-    org.onap.aai
-    ================================================================================
-    Copyright © 2017 AT&T Intellectual Property. All rights reserved.
-    Modifications 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=========================================================
-    ECOMP is a trademark and service mark of AT&T Intellectual Property.
+  ============LICENSE_START=======================================================
+  org.onap.aai
+  ================================================================================
+  Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+  Modifications 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=========================================================
+  ECOMP is a trademark and service mark of AT&T Intellectual Property.
 -->
 <configuration scan="true" scanPeriod="60 seconds" debug="false">
-    <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
-    <property resource="application.properties" />
-    <property name="namespace" value="aai-traversal"/>
-    <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
-    <jmxConfigurator />
-    <property name="logDirectory" value="${AJSC_HOME}/logs" />
-    <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
-    <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
-    <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
-    <!--  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> -->
-    <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
-    <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
-    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
-    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
-    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder>
-            <pattern>
-                %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
-            </pattern>
-        </encoder>
-    </appender>
-    <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${logDirectory}/rest/sane.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
-        </rollingPolicy>
-        <encoder>
-            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
-            </pattern>
-        </encoder>
-    </appender>
-    <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="SANE" />
-    </appender>
-    <appender name="METRIC"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>INFO</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <file>${logDirectory}/rest/metrics.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfMetricLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="METRIC" />
-    </appender>
-    <appender name="DEBUG"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <file>${logDirectory}/rest/debug.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="DEBUG" />
-    </appender>
-    <appender name="ERROR"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>WARN</level>
-        </filter>
-        <file>${logDirectory}/rest/error.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfErrorLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="ERROR" />
-    </appender>
-    <appender name="AUDIT"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${logDirectory}/rest/audit.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfAuditLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="AUDIT" />
-    </appender>
-    <appender name="translog"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <file>${logDirectory}/rest/translog.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfTransLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <includeCallerData>true</includeCallerData>
-        <appender-ref ref="translog" />
-    </appender>
-    <appender name="dmaapAAIEventConsumer"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>WARN</level>
-        </filter>
-        <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="dmaapAAIEventConsumerDebug"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>DEBUG</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="dmaapAAIEventConsumerMetric"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>INFO</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfMetricLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <appender name="external"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>WARN</level>
-        </filter>
-        <file>${logDirectory}/external/external.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
-        <encoder class="org.onap.aai.logging.EcompEncoder">
-            <pattern>${eelfLogPattern}</pattern>
-        </encoder>
-    </appender>
-    <logger name="org.onap.aai" level="DEBUG" additivity="false">
-        <appender-ref ref="asyncDEBUG" />
-        <appender-ref ref="asyncERROR" />
-        <appender-ref ref="asyncMETRIC" />
-        <appender-ref ref="asyncSANE" />
-    </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" />
-    <logger name="com.jayway.jsonpath" level="WARN" />
-    <!-- AJSC Services (bootstrap services) -->
-    <logger name="ajsc" level="WARN" />
-    <logger name="ajsc.RouteMgmtService" level="WARN" />
-    <logger name="ajsc.ComputeService" level="WARN" />
-    <logger name="ajsc.VandelayService" level="WARN" />
-    <logger name="ajsc.FilePersistenceService" level="WARN" />
-    <logger name="ajsc.UserDefinedJarService" level="WARN" />
-    <logger name="ajsc.UserDefinedBeansDefService" level="WARN" />
-    <logger name="ajsc.LoggingConfigurationService" level="WARN" />
-    <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet
-        logging) -->
-    <logger name="org.codehaus.groovy" level="WARN" />
-    <logger name="com.att.scamper" level="WARN" />
-    <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.ajsc" level="WARN" />
-    <logger name="com.att.ajsc.csi.logging" level="WARN" />
-    <logger name="com.att.ajsc.filemonitor" level="WARN" />
-    <logger name="com.netflix.loadbalancer" level="WARN" />
-    <logger name="org.apache.zookeeper" level="OFF" />
-    <!-- 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" />
-    <logger name="org.hibernate.validator" level="WARN" />
-    <logger name="org.hibernate" level="WARN" />
-    <logger name="org.hibernate.ejb" level="OFF" />
-    <!-- logback internals logging -->
-    <logger name="ch.qos.logback.classic" level="WARN" />
-    <logger name="ch.qos.logback.core" level="WARN" />
-    <logger name="org.eclipse.jetty" level="WARN" />
-    <!-- logback jms appenders & loggers definition starts here -->
-    <appender name="auditLogs"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
-        <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log
-        </file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
-            </fileNamePattern>
-            <minIndex>1</minIndex>
-            <maxIndex>9</maxIndex>
-        </rollingPolicy>
-        <triggeringPolicy
-            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <maxFileSize>5MB</maxFileSize>
-        </triggeringPolicy>
-        <encoder>
-            <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-        </encoder>
-    </appender>
-    <appender name="perfLogs"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
-        <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log
-        </file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
-            </fileNamePattern>
-            <minIndex>1</minIndex>
-            <maxIndex>9</maxIndex>
-        </rollingPolicy>
-        <triggeringPolicy
-            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <maxFileSize>5MB</maxFileSize>
-        </triggeringPolicy>
-        <encoder>
-            <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-        </encoder>
-    </appender>
-    <appender name="miscLogs" class="ch.qos.logback.core.rolling.RollingFileAppender">
-                <file>${logDirectory}/misc/misc.log</file>
-                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-                        <fileNamePattern>${logDirectory}/misc/misc.log.%d{yyyy-MM-dd}</fileNamePattern>
-                </rollingPolicy>
-                <encoder>
-                        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n                                                              
-                        </pattern>
-        </encoder>
-        </appender>
-    <logger name="AuditRecord" level="INFO" additivity="false">
-        <appender-ref ref="auditLogs" />
-    </logger>
-    <logger name="AuditRecord_DirectCall" level="INFO" additivity="false">
-        <appender-ref ref="auditLogs" />
-    </logger>
-    <logger name="PerfTrackerRecord" level="INFO" additivity="false">
-        <appender-ref ref="perfLogs" />
-    </logger>
-    <logger name="MiscRecord" level="INFO" additivity="false">
-                <appender-ref ref="miscLogs" />
-        </logger>
-    <!-- logback jms appenders & loggers definition ends here -->
-    <logger name="org.onap.aai.interceptors.post" level="DEBUG"
-            additivity="false">
-        <appender-ref ref="asynctranslog" />
-    </logger>
-    <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG">
-        <appender-ref ref="asyncAUDIT"/>
-    </logger>
-    <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG">
-        <appender-ref ref="asyncAUDIT"/>
-    </logger>
-    <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
-        <appender-ref ref="dmaapAAIEventConsumer" />
-        <appender-ref ref="dmaapAAIEventConsumerDebug" />
-        <appender-ref ref="dmaapAAIEventConsumerMetric" />
-    </logger>
-    <logger name="org.apache" level="OFF" />
-    <logger name="org.zookeeper" level="OFF" />
-    <logger name="com.thinkaurelius" level="WARN" />
-    <logger name="com.att.aft.dme2" level="WARN" />
-    <!-- ============================================================================ -->
-    <!-- General EELF logger -->
-    <!-- ============================================================================ -->
-    <logger name="com.att.eelf" level="WARN" additivity="false">
-        <appender-ref ref="asyncDEBUG" />
-        <appender-ref ref="asyncERROR" />
-        <appender-ref ref="asyncMETRIC" />
-    </logger>
-    <root level="DEBUG">
-        <appender-ref ref="external" />
-        {{if .Values.global.config.logback.console.enabled}}
-        <appender-ref ref="STDOUT" />
-        {{ end }}
-    </root>
+  <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
+  <property resource="application.properties" />
+  <property name="namespace" value="aai-traversal"/>
+  <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
+  <jmxConfigurator />
+  <property name="logDirectory" value="${AJSC_HOME}/logs" />
+  <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <!--  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> -->
+  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+  <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
+  <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+  <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+  <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>
+        %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
+      </pattern>
+    </encoder>
+  </appender>
+  <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/rest/sane.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
+    </rollingPolicy>
+    <encoder>
+      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
+      </pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="SANE" />
+  </appender>
+  <appender name="METRIC"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/metrics.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="METRIC" />
+  </appender>
+  <appender name="DEBUG"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/debug.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="DEBUG" />
+  </appender>
+  <appender name="ERROR"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <file>${logDirectory}/rest/error.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfErrorLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="ERROR" />
+  </appender>
+  <appender name="AUDIT"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/rest/audit.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfAuditLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="AUDIT" />
+  </appender>
+  <appender name="translog"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <file>${logDirectory}/rest/translog.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfTransLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>1000</queueSize>
+    <includeCallerData>true</includeCallerData>
+    <appender-ref ref="translog" />
+  </appender>
+  <appender name="dmaapAAIEventConsumer"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="dmaapAAIEventConsumerDebug"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>DEBUG</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="dmaapAAIEventConsumerMetric"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+      <level>INFO</level>
+      <onMatch>ACCEPT</onMatch>
+      <onMismatch>DENY</onMismatch>
+    </filter>
+    <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfMetricLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <appender name="external"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+      <level>WARN</level>
+    </filter>
+    <file>${logDirectory}/external/external.log</file>
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
+      </fileNamePattern>
+    </rollingPolicy>
+    <encoder class="org.onap.aai.logging.EcompEncoder">
+      <pattern>${eelfLogPattern}</pattern>
+    </encoder>
+  </appender>
+  <logger name="org.onap.aai" level="DEBUG" additivity="false">
+    <appender-ref ref="asyncDEBUG" />
+    <appender-ref ref="asyncERROR" />
+    <appender-ref ref="asyncMETRIC" />
+    <appender-ref ref="asyncSANE" />
+    <appender-ref ref="STDOUT" />
+  </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" />
+  <logger name="com.jayway.jsonpath" level="WARN" />
+
+  <logger name="ch.qos.logback.classic" level="WARN" />
+  <logger name="ch.qos.logback.core" level="WARN" />
+  <logger name="org.eclipse.jetty" level="WARN" />
+
+  <logger name="org.onap.aai.interceptors.post" level="DEBUG"
+      additivity="false">
+    <appender-ref ref="asynctranslog" />
+  </logger>
+  <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG">
+    <appender-ref ref="asyncAUDIT"/>
+  </logger>
+  <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG">
+    <appender-ref ref="asyncAUDIT"/>
+  </logger>
+  <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
+    <appender-ref ref="dmaapAAIEventConsumer" />
+    <appender-ref ref="dmaapAAIEventConsumerDebug" />
+    <appender-ref ref="dmaapAAIEventConsumerMetric" />
+  </logger>
+  <logger name="org.apache" level="OFF" />
+  <logger name="org.zookeeper" level="OFF" />
+  <logger name="com.thinkaurelius" level="WARN" />
+  <logger name="com.att.aft.dme2" level="WARN" />
+  <!-- ============================================================================ -->
+  <!-- General EELF logger -->
+  <!-- ============================================================================ -->
+  <logger name="com.att.eelf" level="WARN" additivity="false">
+    <appender-ref ref="asyncDEBUG" />
+    <appender-ref ref="asyncERROR" />
+    <appender-ref ref="asyncMETRIC" />
+  </logger>
+  <root level="DEBUG">
+    <appender-ref ref="external" />
+    {{if .Values.global.config.logback.console.enabled}}
+    <appender-ref ref="STDOUT" />
+    {{ end }}
+  </root>
 </configuration>
index 3785de0..4f97f4a 100644 (file)
@@ -324,6 +324,8 @@ spec:
         args:
         - --container-name
         - aai-cassandra
+        - --container-name
+        - aai-schema-service
       {{  end  }}
         env:
         - name: NAMESPACE
@@ -421,7 +423,7 @@ spec:
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
       {{- if .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 8 }}
@@ -443,6 +445,8 @@ spec:
           name: {{ include "common.fullname" . }}-logs
         - mountPath: /usr/share/filebeat/data
           name: {{ include "common.fullname" . }}-filebeat
+        resources:
+{{ include "common.resources" . }}
       volumes:
       - name: localtime
         hostPath:
@@ -486,7 +490,7 @@ spec:
          name: {{ include "common.fullname" . }}-realm-configmap
       - name: {{ include "common.fullname" . }}-auth-truststore-sec
         secret:
-         secretName: aai-auth-truststore-secret
+         secretName: aai-common-truststore
          items:
           {{ range $job := .Values.global.config.auth.files }}
            - key: {{ . }}
index e2fe395..a746f54 100644 (file)
@@ -136,7 +136,7 @@ spec:
          name: {{ include "common.fullname" . }}-realm-configmap
       - name: {{ include "common.fullname" . }}-auth-truststore-sec
         secret:
-         secretName: aai-auth-truststore-secret
+         secretName: aai-common-truststore
          items:
           {{ range $job := .Values.global.config.auth.files }}
            - key: {{ . }}
index 92c60a2..0ec1448 100644 (file)
@@ -23,7 +23,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/aai-traversal:1.3.3
+image: onap/aai-traversal:1.4-STAGING-latest
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
index 9eec841..d68bf73 100644 (file)
Binary files a/kubernetes/aai/resources/config/fproxy/auth/tomcat_keystore and b/kubernetes/aai/resources/config/fproxy/auth/tomcat_keystore differ
index 1f337e4..17680a0 100644 (file)
@@ -101,14 +101,14 @@ spec:
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources:
-{{ include "common.resources" . | indent 12 }}
+{{ include "common.resources" . }}
       {{- if .Values.nodeSelector }}
       nodeSelector:
-{{ toYaml .Values.nodeSelector | indent 10 }}
+{{ toYaml .Values.nodeSelector | indent 8 }}
       {{- end -}}
       {{- if .Values.affinity }}
       affinity:
-{{ toYaml .Values.affinity | indent 10 }}
+{{ toYaml .Values.affinity | indent 8 }}
       {{- end }}
 
       volumes:
index 8d00a9d..f01f11d 100644 (file)
@@ -17,6 +17,20 @@ kind: Secret
 metadata:
   name: aai-common-aai-auth
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/config/auth/*").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: Secret
+metadata:
+  name: aai-common-truststore
+  namespace: {{ include "common.namespace" . }}
+type: Opaque
+data:
+{{ tpl (.Files.Glob "resources/config/aai/*").AsSecrets . | indent 2 }}
index d5a5db0..dab171d 100644 (file)
@@ -160,6 +160,12 @@ global: # global defaults
 
     # Schema specific properties that include supported versions of api
     schema:
+      # Specifies if the connection should be one way ssl, two way ssl or no auth
+      service:
+        client: one-way-ssl
+      # Specifies which translator to use if it has schema-service, then it will make a rest request to schema service
+      translator:
+        list: schema-service
       source:
         # Specifies which folder to take a look at
         name: onap
@@ -170,14 +176,14 @@ global: # global defaults
       version:
         # Current version of the REST API
         api:
-          default: v14
+          default: v15
         # Specifies which version the depth parameter is configurable
-        depth: v9
+        depth: v11
         # List of all the supported versions of the API
-        list: v8,v9,v10,v11,v12,v13,v14
+        list: v11,v12,v13,v14,v15
         # Specifies from which version related link should appear
         related:
-          link: v10
+          link: v11
         # Specifies from which version the app root change happened
         app:
           root: v11
old mode 100644 (file)
new mode 100755 (executable)
index 48678fc..7eec7f9
@@ -1,6 +1,6 @@
-#
-# Copyright (c) 2017-2018 AT&T Intellectual Property.
-# Modifications Copyright (c) 2018 IBM.
+# Copyright © 2017-2018 AT&T Intellectual Property.
+# Modifications Copyright © 2018 IBM.
+# Modifications Copyright © 2019 Bell Canada.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -20,7 +20,7 @@ appVersion=1.0.0
 
 # Basic Authentication
 basic-auth.user-name=ccsdkapps
-basic-auth.hashed-pwd=$2a$10$MJxhNiOAffxbyrV9.rrOUewP9Q/ASg5Nit2cmP.yBaXGsVXo8BW3y
+basic-auth.hashed-pwd={bcrypt}$2a$10$MJxhNiOAffxbyrV9.rrOUewP9Q/ASg5Nit2cmP.yBaXGsVXo8BW3y
 
 logging.level.org.springframework.web=INFO
 logging.level.org.hibernate.SQL=warn
@@ -43,19 +43,30 @@ spring.datasource.url=jdbc:mysql://controller-blueprints-db:3306/sdnctl
 spring.datasource.username=sdnctl
 spring.datasource.password=sdnctl
 spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
-spring.jpa.show-sql = true
-spring.jpa.hibernate.ddl-auto = none
-spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
-spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
+spring.jpa.show-sql=true
+spring.jpa.hibernate.ddl-auto=none
+spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy
+spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
+
+# Load Resource Source Mappings
+resourceSourceMappings=primary-db=source-primary-db,input=source-input,default=source-default,primary-config-data=source-rest,capability=source-capability
 
-#Load Blueprints
+# Controller Blueprints Core Configuration
+controllerblueprints.blueprintDeployPath=/etc/blueprints/deploy
+controllerblueprints.blueprintArchivePath=/etc/blueprints/archive
+controllerblueprints.blueprintEnrichmentPath=/etc/blueprints/enrichment
+# Controller Blueprint Load Configurations
 # blueprints.load.initial-data may be overridden by ENV variables
-blueprints.load.initial-data=true
-load.dataTypePath=load/model_type/data_type
-load.nodeTypePath=load/model_type/node_type
-load.artifactTypePath=load/model_type/artifact_type
-load.resourceDictionaryPath=load/resource_dictionary
-load.blueprintsPath=load/blueprints
+controllerblueprints.loadInitialData={{ .Values.config.initDataLoad }}
+controllerblueprints.loadBluePrint=true
+controllerblueprints.loadBluePrintPaths=/opt/app/onap/model-catalog/blueprint-model/service-blueprint
+controllerblueprints.loadModelType=true
+controllerblueprints.loadModeTypePaths=/opt/app/onap/model-catalog/definition-type/starter-type
+controllerblueprints.loadResourceDictionary=true
+controllerblueprints.loadResourceDictionaryPaths=/opt/app/onap/model-catalog/resource-dictionary/starter-dictionary
 
-# Load Resource Source Mappings
-resourceSourceMappings=db=source-db,input=source-input,default=source-default,mdsal=source-rest
+# CBA file extension
+controllerblueprints.loadCbaExtension=zip
+
+# Web server config
+server.port=8080
\ No newline at end of file
index 1f194b6..a848968 100644 (file)
@@ -18,5 +18,10 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
old mode 100644 (file)
new mode 100755 (executable)
index 15ed32f..ef8b38f
@@ -1,5 +1,7 @@
 # Copyright (c) 2018 Amdocs, Bell Canada
 #
+# Modifications Copyright (c) 2019 IBM, Bell Canada
+#
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
@@ -49,6 +51,9 @@ spec:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          env:
+            - name: APP_CONFIG_HOME
+              value: {{ .Values.config.appConfigDir }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
           # disable liveness probe when breakpoints set in debugger
@@ -65,38 +70,6 @@ spec:
               port: {{ .Values.service.internalPort }}
             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
             periodSeconds: {{ .Values.readiness.periodSeconds }}
-          env:
-            - name: APPLICATIONNAME
-              value: {{ .Values.config.applicationName }}
-            - name: BUNDLEVERSION
-              value: {{ .Values.config.bundleVersion }}
-            - name: APP_CONFIG_HOME
-              value: {{ .Values.config.appConfigDir }}
-            - name: DB_URL
-              value: {{ .Values.config.dbUrl }}
-            - name: DB_USER
-              value: {{ index .Values "mariadb-galera" "config" "userName" }}
-            - name: DB_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "common.fullname" . }}
-                  key: db-root-password
-            - name: MS_USER
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "common.fullname" . }}
-                  key: restUser
-            - name: MS_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: {{ template "common.fullname" . }}
-                  key: restPassword
-            - name: INIT_DATA_LOAD
-              value: {{ .Values.config.initDataLoad | quote }}
-            - name: STICKYSELECTORKEY
-              value: {{ .Values.config.stickySelectorKey | quote }}
-            - name: ENVCONTEXT
-              value: {{ .Values.config.envContext }}
           volumeMounts:
           - mountPath: /etc/localtime
             name: localtime
@@ -117,7 +90,6 @@ spec:
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
-
       volumes:
         - name: localtime
           hostPath:
old mode 100644 (file)
new mode 100755 (executable)
index 438ca19..e0a66d2
@@ -1,5 +1,7 @@
 # Copyright (c) 2018 Amdocs, Bell Canada
 #
+# Modifications Copyright (c) 2019 IBM, Bell Canada
+#
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
@@ -37,16 +39,12 @@ metadata:
 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.portName | default "http" }}
-    {{- else -}}
-    - port: {{ .Values.service.externalPort }}
-      targetPort: {{ .Values.service.internalPort }}
-      name: {{ .Values.service.portName | default "http" }}
+  - port: {{ .Values.service.externalPort }}
+    targetPort: {{ .Values.service.internalPort }}
+    {{- if eq .Values.service.type "NodePort"}}
+    nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
     {{- end}}
+    name: {{ .Values.service.portName | default "http" }}
   selector:
     app: {{ include "common.name" . }}
     release: {{ .Release.Name }}
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index 4243210..02b5685
@@ -46,13 +46,8 @@ debugEnabled: false
 
 # application configuration
 config:
-  applicationName: ControllerBluePrints
-  bundleVersion: 1.0.0
   appConfigDir: /opt/app/onap/config
-  dbUrl: jdbc:mysql://controller-blueprints-db:3306/sdnctl
   initDataLoad: true
-  stickySelectorKey:
-  envContext: DEV
   restUser: ccsdkapps
   restPassword: ccsdkapps
 
index 0aa7a3f..cef11f4 100644 (file)
@@ -17,6 +17,11 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-config
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
 ---
@@ -25,5 +30,10 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-scripts
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/scripts/*").AsConfig . | indent 2 }}
index 4f99da1..9c9a248 100644 (file)
@@ -17,6 +17,11 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-confd
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/mariadb/conf.d/*").AsConfig . | indent 2 }}
 ---
@@ -26,6 +31,11 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-external-config
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
   my_extra.cnf: |
 {{ .Values.externalConfig | indent 4 }}
index 7ca207f..601057f 100644 (file)
@@ -29,6 +29,9 @@ spec:
     metadata:
       labels:
         app: {{ include "common.fullname" . }}
+        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+        release: "{{ .Release.Name }}"
+        heritage: "{{ .Release.Service }}"
       annotations:
         pod.alpha.kubernetes.io/initialized: "true"
     spec:
@@ -119,6 +122,9 @@ spec:
       name: {{ include "common.fullname" . }}-data
       labels:
         name: {{ include "common.fullname" . }}
+        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+        release: "{{ .Release.Name }}"
+        heritage: "{{ .Release.Service }}"
     spec:
       accessModes:
       - {{ .Values.persistence.accessMode | quote }}
index cdea9e3..4499499 100644 (file)
@@ -137,3 +137,5 @@ spec:
             app: {{ include "common.name" . }}
             release: "{{ .Release.Name }}"
   {{- end }}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index d8c29fb..65ac5f2 100644 (file)
@@ -19,6 +19,11 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-db-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
   master.cnf: |
     # Apply this config only on the master.
index dc63e31..e1771c6 100644 (file)
@@ -41,6 +41,9 @@ metadata:
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ .Values.nfsprovisionerPrefix }}-nfs-provisioner
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 spec:
   ports:
     - name: nfs
@@ -65,6 +68,9 @@ metadata:
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 spec:
   ports:
     - port: {{ .Values.service.internalPort }}
@@ -80,6 +86,9 @@ metadata:
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 spec:
   ports:
     - port: {{ .Values.service.internalPort }}
@@ -96,6 +105,9 @@ metadata:
   namespace: {{ include "common.namespace" . }}
   labels:
     app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 spec:
   ports:
     - port: {{ .Values.service.internalPort }}
@@ -112,7 +124,11 @@ metadata:
   name: {{ include "common.servicename" . }}-nodeport
   namespace: {{ include "common.namespace" . }}
   labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
     statefulset.kubernetes.io/pod-name: {{ include "common.fullname" . }}-0
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 spec:
   ports:
   - name: {{ .Values.service.portName | default .Values.service.name }}-1
index f73b10f..c3f8ae2 100644 (file)
@@ -31,7 +31,9 @@ spec:
     metadata:
       labels:
         app: {{ include "common.name" . }}
+        chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
         release: {{ .Release.Name }}
+        heritage: {{ .Release.Service }}
     spec:
       initContainers:
 #{{ if not .Values.disableNfsProvisioner }}
@@ -244,6 +246,10 @@ spec:
   - metadata:
       name: {{ include "common.fullname" . }}-mysql
       labels:
+        app: {{ include "common.name" . }}
+        chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+        release: {{ .Release.Name }}
+        heritage: {{ .Release.Service }}
         name: {{ include "common.fullname" . }}
     spec:
       accessModes: [ {{ .Values.persistence.accessMode }} ]
index 4edb477..bbe4562 100644 (file)
@@ -20,5 +20,10 @@ apiVersion: storage.k8s.io/v1
 metadata:
   name: "{{ include "common.fullname" . }}-mysql"
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 provisioner: {{ include "common.fullname" . }}/nfs
 {{ end }}
index 5215ca8..92888ea 100755 (executable)
@@ -152,4 +152,6 @@ spec:
             name: {{ include "common.fullname" . }}-initializers-configmap
         - name: {{ include "common.fullname" . }}-configuration-config
           configMap:
-            name: {{ include "common.fullname" . }}-configuration-configmap
\ No newline at end of file
+            name: {{ include "common.fullname" . }}-configuration-configmap
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml
deleted file mode 100644 (file)
index 2f897db..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#============LICENSE_START========================================================
-#=================================================================================
-# Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.
-# Modifications 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=========================================================
-
-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_address: '{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}'
-postgres_user_inventory: "postgres"
-postgres_password_inventory: "onap123"
-{{ if .Values.componentImages.service_change_handler }}
-service_change_handler_image: '{{ include "common.repository" . }}/{{ .Values.componentImages.service_change_handler }}'
-{{ end }}
-{{ if .Values.componentImages.inventory }}
-inventory_image: '{{ include "common.repository" . }}/{{ .Values.componentImages.inventory }}'
-{{ end }}
diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-policy_handler-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-policy_handler-inputs.yaml
deleted file mode 100644 (file)
index 9cd37b5..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-#============LICENSE_START========================================================
-#=================================================================================
-# Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.
-# Modifications 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=========================================================
-
-{{ if .Values.componentImages.policy_handler }}
-policy_handler_image: {{ include "common.repository" . }}/{{ .Values.componentImages.policy_handler }}
-{{ end }}
-application_config:
-  policy_handler :
-    # parallelize the getConfig queries to policy-engine on each policy-update notification
-    thread_pool_size : 4
-
-    # parallelize requests to policy-engine and keep them alive
-    pool_connections : 20
-
-    # retry to getConfig from policy-engine on policy-update notification
-    policy_retry_count : 5
-    policy_retry_sleep : 5
-
-    # mode of operation for the policy-handler
-    # either active or passive
-    # in passive mode the policy-hanlder will not listen to
-    #                 and will not bring the policy-updates from policy-engine
-    mode_of_operation : "active"
-
-    # config of automatic catch_up for resiliency
-    catch_up :
-        # interval in seconds on how often to call automatic catch_up
-        # example: 1200 is 20*60 seconds that is 20 minutes
-        interval : 1200
-
-    # config of periodic reconfigure-rediscover for adaptability
-    reconfigure:
-        # interval in seconds on how often to call automatic reconfigure
-        # example: 600 is 10*60 seconds that is 10 minutes
-        interval : 600
-
-    # policy-engine config
-    # These are the url of and the auth for the external system, namely the policy-engine (PDP).
-    # We obtain that info manually from PDP folks at the moment.
-    # In long run we should figure out a way of bringing that info into consul record
-    #    related to policy-engine itself.
-    # - k8s specific routing to policy-engine by hostname "pdp"
-    # - relying on dns to resolve hostname "pdp" to ip address
-    # - expecing to find "pdp" as the hostname in server cert from policy-engine
-    policy_engine :
-        url : "https://{{ .Values.config.address.policy_pdp }}.{{include "common.namespace" . }}:8081"
-        path_notifications : "/pdp/notifications"
-        path_api : "/pdp/api/"
-        headers :
-            Accept : "application/json"
-            "Content-Type" : "application/json"
-            ClientAuth : "cHl0aG9uOnRlc3Q="
-            Authorization : "Basic dGVzdHBkcDphbHBoYTEyMw=="
-            Environment : "TEST"
-        target_entity : "policy_engine"
-        # optional tls_ca_mode specifies where to find the cacert.pem for tls
-        #   can be one of these:
-        #       "cert_directory" - use the cacert.pem stored locally in cert_directory.
-        #                          this is the default if cacert.pem file is found
-        #
-        #       "os_ca_bundle"     - use the public ca_bundle provided by linux system.
-        #                          this is the default if cacert.pem file not found
-        #
-        #       "do_not_verify"  - special hack to turn off the verification by cacert and hostname
-        tls_ca_mode : "cert_directory"
-        # optional tls_wss_ca_mode specifies the same for the tls based web-socket
-        tls_wss_ca_mode : "cert_directory"
-        # optional timeout_in_secs specifies the timeout for the http requests
-        timeout_in_secs: 60
-        # optional ws_ping_interval_in_secs specifies the ping interval for the web-socket connection
-        ws_ping_interval_in_secs: 30
-    # deploy_handler config
-    #    changed from string "deployment_handler" in 2.3.1 to structure in 2.4.0
-    deploy_handler :
-        # name of deployment-handler service used by policy-handler for logging
-        target_entity : "deployment_handler"
-        # url of the deployment-handler service for policy-handler to direct the policy-updates to
-        #   - expecting dns to resolve the hostname deployment-handler to ip address
-        url : "https://deployment-handler:8443"
-        # limit the size of a single data segment for policy-update messages
-        #       from policy-handler to deployment-handler in megabytes
-        max_msg_length_mb : 5
-        query :
-            # optionally specify the tenant name for the cloudify under deployment-handler
-            #    if not specified the "default_tenant" is used by the deployment-handler
-            cfy_tenant_name : "default_tenant"
-        # optional tls_ca_mode specifies where to find the cacert.pem or skip tls verification
-        #   can be one of these:
-        #       "cert_directory" - use the cacert.pem stored locally in cert_directory.
-        #                          this is the default if cacert.pem file is found
-        #
-        #       "os_ca_bundle"     - use the public ca_bundle provided by linux system.
-        #                          this is the default if cacert.pem file not found
-        #
-        #       "do_not_verify"  - special hack to turn off the verification by cacert and hostname
-        tls_ca_mode : "cert_directory"
-        # optional timeout_in_secs specifies the timeout for the http requests
-        timeout_in_secs: 60
index a1adfa1..0463655 100644 (file)
@@ -1,6 +1,6 @@
 #============LICENSE_START========================================================\r
 # ================================================================================\r
-# Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.\r
+# Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved.\r
 # Modifications Copyright © 2018 Amdocs, Bell Canada\r
 # ================================================================================\r
 # Licensed under the Apache License, Version 2.0 (the "License");\r
@@ -51,6 +51,8 @@ spec:
           - kube2msb\r
           - --container-name\r
           - dcae-config-binding-service\r
+          - --container-name\r
+          - dcae-db\r
           - "-t"\r
           - "15"\r
         env:\r
index 81119c5..07b2036 100644 (file)
@@ -1,6 +1,6 @@
 #============LICENSE_START========================================================
 #=================================================================================
-# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+# Copyright (c) 2018-2019 AT&T Intellectual Property. All rights reserved.
 # Modifications Copyright © 2018 Amdocs, Bell Canada
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -79,20 +79,18 @@ postgres:
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.4.7
+image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.4.9
 
 # DCAE component images to be deployed via Cloudify Manager
 # Use to override default setting in blueprints
 componentImages:
   datafile_collector: onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.1.1
-  deployment_handler: onap/org.onap.dcaegen2.platform.deployment-handler:3.1.0
   holmes_rules: onap/holmes/rule-management:1.2.3
   holmes_engine: onap/holmes/engine-management:1.2.2
-  policy_handler: onap/org.onap.dcaegen2.platform.policy-handler:4.6.0
   tca: onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.1.0
   ves: onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.1
   snmptrap: onap/org.onap.dcaegen2.collectors.snmptrap:1.4.0
-  prh: onap/org.onap.dcaegen2.services.prh.prh-app-server:1.2.0-SNAPSHOT
+  prh: onap/org.onap.dcaegen2.services.prh.prh-app-server:1.2.1-SNAPSHOT
   hv_ves: onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.1.0-SNAPSHOT
 
 # Resource Limit flavor -By Default using small
index a4694e0..5b541fb 100644 (file)
@@ -1,6 +1,6 @@
 #============LICENSE_START========================================================
 # ================================================================================
-# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+# Copyright (c) 2018-2019 AT&T Intellectual Property. All rights reserved.
 # Modifications Copyright © 2018 Amdocs, Bell Canada
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -44,7 +44,7 @@ config:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.deployments.cm-container:1.5.0
+image: onap/org.onap.dcaegen2.deployments.cm-container:1.5.1
 pullPolicy: Always
 
 # probe configuration parameters
@@ -57,7 +57,7 @@ liveness:
   enabled: false
 
 readiness:
-  initialDelaySeconds: 10
+  initialDelaySeconds: 60
   periodSeconds: 10
 
 service:
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/.helmignore b/kubernetes/dcaegen2/charts/dcae-deployment-handler/.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
@@ -1,7 +1,6 @@
 #============LICENSE_START========================================================
 #=================================================================================
-# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
-# Modifications Copyright © 2018 Amdocs, Bell Canada
+# Copyright (c) 2019 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.
@@ -16,8 +15,7 @@
 # limitations under the License.
 # ============LICENSE_END=========================================================
 
-#TODO would like to make this conditional, as with the other input templates
-# but having template expansion issues trying to do that
-{{ if .Values.componentImages.config_binding_service }}
-cbs_image: {{ include "common.repository" . }}/{{ .Values.componentImages.config_binding_service }}
-{{ end }}
+apiVersion: v1
+description: ONAP DCAE Deployment Handler
+name: dcae-deployment-handler
+version: 4.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/requirements.yaml b/kubernetes/dcaegen2/charts/dcae-deployment-handler/requirements.yaml
new file mode 100644 (file)
index 0000000..d2b64d3
--- /dev/null
@@ -0,0 +1,19 @@
+# Copyright © 2017 Amdocs, Bell Canada
+# Modifications Copyright © 2019 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+  - name: common
+    version: ~4.0.0
+    repository: '@local'
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/resources/config/config.json b/kubernetes/dcaegen2/charts/dcae-deployment-handler/resources/config/config.json
new file mode 100644 (file)
index 0000000..600f07c
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "cloudify": {
+        "protocol": "http"
+    },
+    "inventory": {
+        "protocol": "http"
+    }
+}
\ No newline at end of file
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/resources/log/filebeat.yml b/kubernetes/dcaegen2/charts/dcae-deployment-handler/resources/log/filebeat.yml
new file mode 100644 (file)
index 0000000..0e5ee9b
--- /dev/null
@@ -0,0 +1,72 @@
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2018-2019 AT&T Intellectual Property. All rights reserved.
+# Modifications 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=========================================================
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+  #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+  paths:
+    - /var/log/onap/*/*/*/*.log
+    - /var/log/onap/*/*/*.log
+    - /var/log/onap/*/*.log
+  #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+  ignore_older: 48h
+  # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+  clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+  #List of logstash server ip addresses with port number.
+  #But, in our case, this will be the loadbalancer IP address.
+  #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
+  #If enable will do load balancing among availabe Logstash, automatically.
+  loadbalance: true
+
+  #The list of root certificates for server verifications.
+  #If certificate_authorities is empty or not set, the trusted
+  #certificate authorities of the host system are used.
+  #ssl.certificate_authorities: $ssl.certificate_authorities
+
+  #The path to the certificate for SSL client authentication. If the certificate is not specified,
+  #client authentication is not available.
+  #ssl.certificate: $ssl.certificate
+
+  #The client certificate key used for client authentication.
+  #ssl.key: $ssl.key
+
+  #The passphrase used to decrypt an encrypted key stored in the configured key file
+  #ssl.key_passphrase: $ssl.key_passphrase
+
+logging:
+  level: debug
+
+  # enable file rotation with default configuration
+  to_files: true
+
+  # do not log to syslog
+  to_syslog: false
+
+  files:
+    path: /usr/share/filebeat/logs
+    name: mybeat.log
+    keepfiles: 7
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/configmap.yaml b/kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..39af31a
--- /dev/null
@@ -0,0 +1,34 @@
+# Copyright © 2017 Amdocs, Bell Canada
+# Modifications Copyright © 2019 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{include "common.fullname" . }}-filebeat-configmap
+  namespace: {{include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/log/*").AsConfig . | indent 2 }}
\ No newline at end of file
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/deployment.yaml b/kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..3e4e53b
--- /dev/null
@@ -0,0 +1,161 @@
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2019 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=========================================================
+
+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: 1
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+        - name: {{ include "common.name" . }}-readiness
+          image: {{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          command:
+            - /root/ready.py
+          args:
+          - --container-name
+          - dcae-cloudify-manager
+          - --container-name
+          - consul-server
+          - --container-name
+          - dcae-inventory-api
+          - "-t"
+          - "45"
+          env:
+          - name: NAMESPACE
+            valueFrom:
+              fieldRef:
+                apiVersion: v1
+                fieldPath: metadata.namespace
+        - name: init-tls
+          env:
+          - name: POD_IP
+            valueFrom:
+              fieldRef:
+                apiVersion: v1
+                fieldPath: status.podIP
+          image: {{ .Values.global.tlsRepository }}/{{ .Values.global.tlsImage }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          resources: {}
+          volumeMounts:
+            - mountPath: /opt/tls/shared
+              name: tls-info
+        - name: init-consul
+          image: {{ .Values.global.consulLoaderRepository }}/{{ .Values.global.consulLoaderImage }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          args:
+          - --service
+          - "cloudify_manager|dcae-cloudify-manager.{{ include "common.namespace" . }}|80"
+          - --service
+          - "inventory|inventory.{{ include "common.namespace" . }}|8080"
+          - --key
+          - deployment_handler|/dhconfig/config.json
+          resources: {}
+          volumeMounts:
+            - mountPath: /dhconfig
+              name: dh-config
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          resources:
+{{ include "common.resources" . | indent 12 }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          # disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{- if eq .Values.liveness.enabled true }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end }}
+          readinessProbe:
+            httpGet:
+              path: {{ .Values.readiness.path }}
+              port: {{ .Values.service.internalPort }}
+              scheme: {{ .Values.readiness.scheme }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          volumeMounts:
+            - mountPath: /opt/app/dh/log
+              name: component-log
+            - mountPath: /opt/app/dh/etc/cert/
+              name: tls-info
+          env:
+            - name: CONSUL_HOST
+              value: consul-server.{{ include "common.namespace" . }}
+            - name: CLOUDIFY_USER
+              value: admin
+            - name: CLOUDIFY_PASSWORD
+              value: admin
+            - name: CONFIG_BINDING_SERVICE
+              value: config-binding-service
+            - name: POD_IP
+              valueFrom:
+                fieldRef:
+                  apiVersion: v1
+                  fieldPath: status.podIP
+        - name: {{ include "common.name" . }}-filebeat
+          env:
+            - name: POD_IP
+              valueFrom:
+                fieldRef:
+                  apiVersion: v1
+                  fieldPath: status.podIP
+          image: {{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}
+          imagePullPolicy: IfNotPresent
+          resources: {}
+          volumeMounts:
+          - mountPath: /var/log/onap/deployment-handler
+            name: component-log
+          - mountPath: /usr/share/filebeat/data
+            name: filebeat-data
+          - mountPath: /usr/share/filebeat/filebeat.yml
+            name: filebeat-conf
+            subPath: filebeat.yml
+      volumes:
+        - emptyDir: {}
+          name: component-log
+        - emptyDir: {}
+          name: filebeat-data
+        - configMap:
+            defaultMode: 420
+            name: {{ include "common.fullname" . }}-filebeat-configmap
+          name: filebeat-conf
+        - emptyDir: {}
+          name: tls-info
+        - configMap:
+            defaultMode: 422
+            name: {{ include "common.fullname" . }}-configmap
+          name: dh-config
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/service.yaml b/kubernetes/dcaegen2/charts/dcae-deployment-handler/templates/service.yaml
new file mode 100644 (file)
index 0000000..088d381
--- /dev/null
@@ -0,0 +1,43 @@
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2019 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=========================================================
+
+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.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+
diff --git a/kubernetes/dcaegen2/charts/dcae-deployment-handler/values.yaml b/kubernetes/dcaegen2/charts/dcae-deployment-handler/values.yaml
new file mode 100644 (file)
index 0000000..d1fbe5b
--- /dev/null
@@ -0,0 +1,95 @@
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2019 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=========================================================
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+  tlsRepository: nexus3.onap.org:10001
+  tlsImage: onap/org.onap.dcaegen2.deployments.tls-init-container:1.0.0
+  consulLoaderRepository: nexus3.onap.org:10001
+  consulLoaderImage: onap/org.onap.dcaegen2.deployments.consul-loader-container:1.0.0
+  repositoryCred:
+    user: docker
+    password: docker
+
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
+  # Addresses of other ONAP entities
+  address:
+    consul:
+      host: consul-server
+      port: 8500
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/org.onap.dcaegen2.platform.deployment-handler:3.2.0
+pullPolicy: Always
+
+# 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
+  # liveness not desirable for Cloudify Manager container
+  enabled: false
+
+readiness:
+  initialDelaySeconds: 30
+  periodSeconds: 30
+  path: /
+  scheme: HTTPS
+
+service:
+  type: ClusterIP
+  name: deployment-handler
+  externalPort: 8443
+  internalPort: 8443
+
+
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 2
+      memory: 2Gi
+    requests:
+      cpu: 1
+      memory: 1Gi
+  large:
+    limits:
+      cpu: 4
+      memory: 4Gi
+    requests:
+      cpu: 2
+      memory: 2Gi
+  unlimited: {}
+# Kubernetes namespace for components deployed via Cloudify manager
+# If empty, use the common namespace
+# dcae_ns: "dcae"
index 3070461..913cb71 100644 (file)
@@ -45,7 +45,7 @@ readiness:
   periodSeconds: 10
 # application image
 repository: nexus3.onap.org:10001
-image: onap/org.onap.dcaegen2.deployments.healthcheck-container:1.2.3
+image: onap/org.onap.dcaegen2.deployments.healthcheck-container:1.2.4
 
 # Resource Limit flavor -By Default using small
 flavor: small
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/.helmignore b/kubernetes/dcaegen2/charts/dcae-policy-handler/.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
@@ -1,7 +1,6 @@
 #============LICENSE_START========================================================
 #=================================================================================
-# Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.
-# Modifications Copyright © 2018 Amdocs, Bell Canada
+# Copyright (c) 2019 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.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # ============LICENSE_END=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-{{ if .Values.componentImages.deployment_handler }}
-deployment_handler_image: {{ include "common.repository" . }}/{{ .Values.componentImages.deployment_handler }}
-{{ end }}
-application_config:
-  cloudify:
-    protocol: "http"
-  inventory:
-    protocol: "http"
+
+apiVersion: v1
+description: ONAP DCAE Policy Handler
+name: dcae-policy-handler
+version: 4.0.0
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/requirements.yaml b/kubernetes/dcaegen2/charts/dcae-policy-handler/requirements.yaml
new file mode 100644 (file)
index 0000000..d2b64d3
--- /dev/null
@@ -0,0 +1,19 @@
+# Copyright © 2017 Amdocs, Bell Canada
+# Modifications Copyright © 2019 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+dependencies:
+  - name: common
+    version: ~4.0.0
+    repository: '@local'
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/resources/config/config.json b/kubernetes/dcaegen2/charts/dcae-policy-handler/resources/config/config.json
new file mode 100644 (file)
index 0000000..76aa383
--- /dev/null
@@ -0,0 +1,41 @@
+{
+  "policy_handler": {
+    "thread_pool_size": 4,
+    "pool_connections": 20,
+    "policy_retry_count": 5,
+    "policy_retry_sleep": 5,
+    "catch_up": {
+      "interval": 1200
+    },
+    "reconfigure": {
+      "interval": 600
+    },
+    "policy_engine": {
+      "url": "https://{{ .Values.config.address.policy_pdp }}.{{include "common.namespace" . }}:8081",
+      "path_notifications": "/pdp/notifications",
+      "path_api": "/pdp/api/",
+      "headers": {
+        "Accept": "application/json",
+        "Content-Type": "application/json",
+        "ClientAuth": "cHl0aG9uOnRlc3Q=",
+        "Authorization": "Basic dGVzdHBkcDphbHBoYTEyMw==",
+        "Environment": "TEST"
+      },
+      "target_entity": "policy_engine",
+      "tls_ca_mode": "cert_directory",
+      "tls_wss_ca_mode": "cert_directory",
+      "timeout_in_secs": 60,
+      "ws_ping_interval_in_secs": 180
+    },
+    "deploy_handler": {
+      "target_entity": "deployment_handler",
+      "url": "https://deployment-handler:8443",
+      "max_msg_length_mb": 5,
+      "query": {
+        "cfy_tenant_name": "default_tenant"
+      },
+      "tls_ca_mode": "cert_directory",
+      "timeout_in_secs": 60
+    }
+  }
+}
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/resources/log/filebeat.yml b/kubernetes/dcaegen2/charts/dcae-policy-handler/resources/log/filebeat.yml
new file mode 100644 (file)
index 0000000..1a3f693
--- /dev/null
@@ -0,0 +1,72 @@
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright © 2018 Amdocs, Bell Canada
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT 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=========================================================
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+  #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+  paths:
+    - /var/log/onap/*/*/*/*.log
+    - /var/log/onap/*/*/*.log
+    - /var/log/onap/*/*.log
+  #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+  ignore_older: 48h
+  # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+  clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+  #List of logstash server ip addresses with port number.
+  #But, in our case, this will be the loadbalancer IP address.
+  #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
+  #If enable will do load balancing among availabe Logstash, automatically.
+  loadbalance: true
+
+  #The list of root certificates for server verifications.
+  #If certificate_authorities is empty or not set, the trusted
+  #certificate authorities of the host system are used.
+  #ssl.certificate_authorities: $ssl.certificate_authorities
+
+  #The path to the certificate for SSL client authentication. If the certificate is not specified,
+  #client authentication is not available.
+  #ssl.certificate: $ssl.certificate
+
+  #The client certificate key used for client authentication.
+  #ssl.key: $ssl.key
+
+  #The passphrase used to decrypt an encrypted key stored in the configured key file
+  #ssl.key_passphrase: $ssl.key_passphrase
+
+logging:
+  level: debug
+
+  # enable file rotation with default configuration
+  to_files: true
+
+  # do not log to syslog
+  to_syslog: false
+
+  files:
+    path: /usr/share/filebeat/logs
+    name: mybeat.log
+    keepfiles: 7
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/templates/configmap.yaml b/kubernetes/dcaegen2/charts/dcae-policy-handler/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..39af31a
--- /dev/null
@@ -0,0 +1,34 @@
+# Copyright © 2017 Amdocs, Bell Canada
+# Modifications Copyright © 2019 AT&T
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-configmap
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+data:
+{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{include "common.fullname" . }}-filebeat-configmap
+  namespace: {{include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/log/*").AsConfig . | indent 2 }}
\ No newline at end of file
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/templates/deployment.yaml b/kubernetes/dcaegen2/charts/dcae-policy-handler/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..a6b87bf
--- /dev/null
@@ -0,0 +1,157 @@
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2019 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=========================================================
+
+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: 1
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      initContainers:
+        - name: {{ include "common.name" . }}-readiness
+          image: {{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          command:
+            - /root/ready.py
+          args:
+          - --container-name
+          - dcae-deployment-handler
+          - --container-name
+          - consul-server
+          - --container-name
+          - pdp
+          - "-t"
+          - "45"
+          env:
+          - name: NAMESPACE
+            valueFrom:
+              fieldRef:
+                apiVersion: v1
+                fieldPath: metadata.namespace
+        - name: init-tls
+          env:
+          - name: POD_IP
+            valueFrom:
+              fieldRef:
+                apiVersion: v1
+                fieldPath: status.podIP
+          image: {{ .Values.global.tlsRepository }}/{{ .Values.global.tlsImage }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          resources: {}
+          volumeMounts:
+            - mountPath: /opt/tls/shared
+              name: tls-info
+        - name: init-consul
+          image: {{ .Values.global.consulLoaderRepository }}/{{ .Values.global.consulLoaderImage }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          args:
+          - --key
+          - policy_handler|/phconfig/config.json
+          resources: {}
+          volumeMounts:
+            - mountPath: /phconfig
+              name: ph-config
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          resources:
+{{ include "common.resources" . | indent 12 }}
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          # disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{- if eq .Values.liveness.enabled true }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end }}
+          readinessProbe:
+            httpGet:
+              path: {{ .Values.readiness.path }}
+              port: {{ .Values.service.internalPort }}
+              scheme: {{ .Values.readiness.scheme }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          volumeMounts:
+            - mountPath: /opt/app/policy_handler/logs
+              name: component-log
+            - mountPath: /opt/app/policy_handler/etc/tls/certs/
+              name: tls-info
+          env:
+            - name: CONSUL_HOST
+              value: consul-server.{{ include "common.namespace" . }}
+            - name: CLOUDIFY_USER
+              value: admin
+            - name: CLOUDIFY_PASSWORD
+              value: admin
+            - name: CONFIG_BINDING_SERVICE
+              value: config-binding-service
+            - name: POD_IP
+              valueFrom:
+                fieldRef:
+                  apiVersion: v1
+                  fieldPath: status.podIP
+        - name: {{ include "common.name" . }}-filebeat
+          env:
+            - name: POD_IP
+              valueFrom:
+                fieldRef:
+                  apiVersion: v1
+                  fieldPath: status.podIP
+          image: {{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}
+          imagePullPolicy: IfNotPresent
+          resources: {}
+          volumeMounts:
+          - mountPath: /var/log/onap/deployment-handler
+            name: component-log
+          - mountPath: /usr/share/filebeat/data
+            name: filebeat-data
+          - mountPath: /usr/share/filebeat/filebeat.yml
+            name: filebeat-conf
+            subPath: filebeat.yml
+      volumes:
+        - emptyDir: {}
+          name: component-log
+        - emptyDir: {}
+          name: filebeat-data
+        - configMap:
+            defaultMode: 420
+            name: {{ include "common.fullname" . }}-filebeat-configmap
+          name: filebeat-conf
+        - emptyDir: {}
+          name: tls-info
+        - configMap:
+            defaultMode: 422
+            name: {{ include "common.fullname" . }}-configmap
+          name: ph-config
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/templates/service.yaml b/kubernetes/dcaegen2/charts/dcae-policy-handler/templates/service.yaml
new file mode 100644 (file)
index 0000000..088d381
--- /dev/null
@@ -0,0 +1,43 @@
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2019 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=========================================================
+
+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.name }}
+    {{- else -}}
+    - port: {{ .Values.service.externalPort }}
+      targetPort: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.name }}
+    {{- end}}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+
diff --git a/kubernetes/dcaegen2/charts/dcae-policy-handler/values.yaml b/kubernetes/dcaegen2/charts/dcae-policy-handler/values.yaml
new file mode 100644 (file)
index 0000000..0494a9e
--- /dev/null
@@ -0,0 +1,95 @@
+#============LICENSE_START========================================================
+# ================================================================================
+# Copyright (c) 2019 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=========================================================
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  nodePortPrefix: 302
+  readinessRepository: oomk8s
+  readinessImage: readiness-check:2.0.0
+  loggingRepository: docker.elastic.co
+  loggingImage: beats/filebeat:5.5.0
+  tlsRepository: nexus3.onap.org:10001
+  tlsImage: onap/org.onap.dcaegen2.deployments.tls-init-container:1.0.0
+  consulLoaderRepository: nexus3.onap.org:10001
+  consulLoaderImage: onap/org.onap.dcaegen2.deployments.consul-loader-container:1.0.0
+  repositoryCred:
+    user: docker
+    password: docker
+
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
+  # Addresses of other ONAP entities
+  address:
+    consul:
+      host: consul-server
+      port: 8500
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/org.onap.dcaegen2.platform.policy-handler:4.6.0
+pullPolicy: Always
+
+# 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
+  # liveness not desirable for Cloudify Manager container
+  enabled: false
+
+readiness:
+  initialDelaySeconds: 60
+  periodSeconds: 300
+  path: /healthcheck
+  scheme: HTTP
+
+service:
+  type: ClusterIP
+  name: policy-handler
+  externalPort: 25577
+  internalPort: 25577
+
+
+# Resource Limit flavor -By Default using small
+flavor: small
+# Segregation for Different environment (Small and Large)
+resources:
+  small:
+    limits:
+      cpu: 2
+      memory: 2Gi
+    requests:
+      cpu: 1
+      memory: 1Gi
+  large:
+    limits:
+      cpu: 4
+      memory: 4Gi
+    requests:
+      cpu: 2
+      memory: 2Gi
+  unlimited: {}
+# Kubernetes namespace for components deployed via Cloudify manager
+# If empty, use the common namespace
+# dcae_ns: "dcae"
diff --git a/kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-node/resources/config/logback.xml b/kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-node/resources/config/logback.xml
new file mode 100644 (file)
index 0000000..25a2c6e
--- /dev/null
@@ -0,0 +1,148 @@
+<!--
+  ============LICENSE_START=======================================================
+   Copyright (C) 2019 Nordix Foundation.
+  ================================================================================
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+  SPDX-License-Identifier: Apache-2.0
+  ============LICENSE_END=========================================================
+-->
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+
+  <property name="generalLogName" value="apicalls" />
+  <property name="errorLogName" value="errors" />
+  <property name="jettyAndNodeLogName" value="node"/>
+
+  <property name="defaultPattern"    value="%d{MM/dd-HH:mm:ss.SSS}|%logger|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%msg%n" />
+  <property name="jettyAndNodeLoggerPattern" value="%d{MM/dd-HH:mm:ss.SSS}|%logger|%thread|%.-5level|%msg%n" />
+  <property name="debugLoggerPattern" value="%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|[%caller{3}]|%msg%n" />
+
+  <property name="logDirectory" value="/opt/app/datartr/logs" />
+
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>${defaultPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <!-- ============================================================================ -->
+  <!-- EELF Appenders -->
+  <!-- ============================================================================ -->
+
+  <appender name="EELF"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${generalLogName}.log</file>
+     <filter class="ch.qos.logback.classic.filter.LevelFilter">
+        <level>INFO</level>
+        <onMatch>ACCEPT</onMatch>
+        <onMismatch>DENY</onMismatch>
+    </filter>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${generalLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+      <pattern>${defaultPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="EELF" />
+  </appender>
+
+  <appender name="EELFError"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${errorLogName}.log</file>
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+        <level>ERROR</level>
+        <onMatch>ACCEPT</onMatch>
+        <onMismatch>DENY</onMismatch>
+    </filter>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${errorLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+      <pattern>${defaultPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="EELFError"/>
+  </appender>
+
+  <!-- ============================================================================ -->
+   <appender name="jettyAndNodelog"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${jettyAndNodeLogName}.log</file>
+     <filter class="org.onap.dmaap.datarouter.node.eelf.EELFFilter" />
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${jettyAndNodeLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+      <pattern>${jettyAndNodeLoggerPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="asyncEELFjettyAndNodelog" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="jettyAndNodelog" />
+    <includeCallerData>true</includeCallerData>
+  </appender>
+
+  <!-- ============================================================================ -->
+  <!--  EELF loggers -->
+  <!-- ============================================================================ -->
+  <logger name="com.att.eelf" level="info" additivity="false">
+    <appender-ref ref="asyncEELF" />
+  </logger>
+
+     <logger name="com.att.eelf.error" level="error" additivity="false">
+          <appender-ref ref="asyncEELFError" />
+      </logger>
+
+     <logger name="log4j.logger.org.eclipse.jetty" additivity="false" level="info">
+        <appender-ref ref="asyncEELFjettyAndNodelog"/>
+    </logger>
+
+  <root level="INFO">
+    <appender-ref ref="asyncEELF" />
+    <appender-ref ref="asyncEELFError" />
+     <appender-ref ref="asyncEELFjettyAndNodelog" />
+  </root>
+
+</configuration>
index bd74184..6739267 100644 (file)
@@ -37,3 +37,11 @@ metadata:
     heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/feeds/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}
index 8488758..a06b385 100644 (file)
@@ -77,6 +77,8 @@ spec:
           - mountPath: /opt/app/datartr/etc/node.properties
             subPath: node.properties
             name: node-props
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: {{ .Values.global.loggingDirectory }}
           lifecycle:
             postStart:
               exec:
@@ -92,6 +94,19 @@ spec:
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
+
+        # Filebeat sidecar container
+        - 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" . }}-data-filebeat
+            mountPath: /usr/share/filebeat/data
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: /var/log/onap/datarouter-node
       volumes:
       - name: localtime
         hostPath:
@@ -110,5 +125,15 @@ spec:
       {{- else }}
         emptyDir: {}
       {{- end }}
-    imagePullSecrets:
-    - name: "{{ include "common.namespace" . }}-docker-registry-key"
\ No newline at end of file
+      - name: {{ include "common.fullname" . }}-log-conf
+        configMap:
+          name: {{ include "common.fullname" . }}-log
+      - name: {{ include "common.fullname" . }}-filebeat-conf
+        configMap:
+          name: {{ .Release.Name }}-dmaap-filebeat-configmap
+      - name: {{ include "common.fullname" . }}-data-filebeat
+        emptyDir: {}
+      - name:  {{ include "common.fullname" . }}-logs
+        emptyDir: {}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-prov/resources/config/logback.xml b/kubernetes/dmaap/charts/dmaap-data-router/charts/dmaap-dr-prov/resources/config/logback.xml
new file mode 100644 (file)
index 0000000..942d898
--- /dev/null
@@ -0,0 +1,148 @@
+<!--
+  ============LICENSE_START=======================================================
+   Copyright (C) 2019 Nordix Foundation.
+  ================================================================================
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+  SPDX-License-Identifier: Apache-2.0
+  ============LICENSE_END=========================================================
+-->
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+
+  <property name="generalLogName" value="apicalls" />
+  <property name="errorLogName" value="errors" />
+  <property name="jettyLogName" value="jetty"/>
+
+  <property name="defaultPattern"    value="%d{MM/dd-HH:mm:ss.SSS}|%logger|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%msg%n" />
+  <property name="jettyLoggerPattern" value="%d{MM/dd-HH:mm:ss.SSS}|%logger|%thread|%.-5level|%msg%n" />
+  <property name="debugLoggerPattern" value="%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|[%caller{3}]|%msg%n" />
+
+  <property name="logDirectory" value="/opt/app/datartr/logs" />
+
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>${defaultPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <!-- ============================================================================ -->
+  <!-- EELF Appenders -->
+  <!-- ============================================================================ -->
+
+  <appender name="EELF"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${generalLogName}.log</file>
+     <filter class="ch.qos.logback.classic.filter.LevelFilter">
+        <level>INFO</level>
+        <onMatch>ACCEPT</onMatch>
+        <onMismatch>DENY</onMismatch>
+    </filter>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${generalLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+      <pattern>${defaultPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="EELF" />
+  </appender>
+
+  <appender name="EELFError"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${errorLogName}.log</file>
+    <filter class="ch.qos.logback.classic.filter.LevelFilter">
+        <level>ERROR</level>
+        <onMatch>ACCEPT</onMatch>
+        <onMismatch>DENY</onMismatch>
+    </filter>
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${errorLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+      <pattern>${defaultPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="EELFError"/>
+  </appender>
+
+  <!-- ============================================================================ -->
+   <appender name="jettylog"
+    class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>${logDirectory}/${jettyLogName}.log</file>
+     <filter class="org.onap.dmaap.datarouter.provisioning.eelf.JettyFilter" />
+    <rollingPolicy
+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+      <fileNamePattern>${logDirectory}/${jettyLogName}.%i.log.zip
+      </fileNamePattern>
+      <minIndex>1</minIndex>
+      <maxIndex>9</maxIndex>
+    </rollingPolicy>
+    <triggeringPolicy
+      class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>5MB</maxFileSize>
+    </triggeringPolicy>
+    <encoder>
+      <pattern>${jettyLoggerPattern}</pattern>
+    </encoder>
+  </appender>
+
+  <appender name="asyncEELFjettylog" class="ch.qos.logback.classic.AsyncAppender">
+    <queueSize>256</queueSize>
+    <appender-ref ref="jettylog" />
+    <includeCallerData>true</includeCallerData>
+  </appender>
+
+  <!-- ============================================================================ -->
+  <!--  EELF loggers -->
+  <!-- ============================================================================ -->
+  <logger name="com.att.eelf" level="info" additivity="false">
+    <appender-ref ref="asyncEELF" />
+  </logger>
+
+     <logger name="com.att.eelf.error" level="error" additivity="false">
+          <appender-ref ref="asyncEELFError" />
+      </logger>
+
+     <logger name="log4j.logger.org.eclipse.jetty" additivity="false" level="info">
+        <appender-ref ref="asyncEELFjettylog"/>
+    </logger>
+
+  <root level="INFO">
+    <appender-ref ref="asyncEELF" />
+    <appender-ref ref="asyncEELFError" />
+     <appender-ref ref="asyncEELFjettylog" />
+  </root>
+
+</configuration>
index 525c18b..f9884d7 100644 (file)
@@ -24,3 +24,11 @@ metadata:
     heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/provserver.properties").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-log
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/logback.xml").AsConfig . | indent 2 }}
index b223872..c103510 100644 (file)
@@ -71,6 +71,8 @@ spec:
           - mountPath: /opt/app/datartr/etc/provserver.properties
             subPath: provserver.properties
             name: prov-props
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: {{ .Values.global.loggingDirectory }}
           resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -81,6 +83,19 @@ spec:
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
+
+        # Filebeat sidecar container
+        - 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" . }}-data-filebeat
+            mountPath: /usr/share/filebeat/data
+          - name: {{ include "common.fullname" . }}-logs
+            mountPath: /var/log/onap/datarouter-prov
       volumes:
       - name: localtime
         hostPath:
@@ -95,5 +110,15 @@ spec:
       {{- else }}
         emptyDir: {}
       {{- end }}
-    imagePullSecrets:
-    - name: "{{ include "common.namespace" . }}-docker-registry-key"
+      - name: {{ include "common.fullname" . }}-log-conf
+        configMap:
+          name: {{ include "common.fullname" . }}-log
+      - name: {{ include "common.fullname" . }}-filebeat-conf
+        configMap:
+          name: {{ .Release.Name }}-dmaap-filebeat-configmap
+      - name: {{ include "common.fullname" . }}-data-filebeat
+        emptyDir: {}
+      - name:  {{ include "common.fullname" . }}-logs
+        emptyDir: {}
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
index 1a4feec..c783d07 100644 (file)
@@ -20,6 +20,7 @@ global:
     name: AUTO
   ubuntuInitRepository: oomk8s
   ubuntuInitImage: ubuntu-init:1.0.0
+  loggingDirectory: /opt/app/datartr/logs
 
   config:
 # dr provisioning server configuration
index 6569729..6c121f9 100644 (file)
@@ -54,14 +54,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
 
 ## Persist data to a persitent volume
diff --git a/kubernetes/dmaap/resources/config/log/filebeat/filebeat.yml b/kubernetes/dmaap/resources/config/log/filebeat/filebeat.yml
new file mode 100644 (file)
index 0000000..f1cf739
--- /dev/null
@@ -0,0 +1,60 @@
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 The Nordix Foundation. 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+  #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+  paths:
+    - /var/log/onap/*/*/*/*.log
+    - /var/log/onap/*/*/*.log
+    - /var/log/onap/*/*.log
+    - /opt/app/datartr/logs/*.log
+  #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+  ignore_older: 48h
+  # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+  clean_inactive: 96h
+
+
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+  #List of logstash server ip addresses with port number.
+  #But, in our case, this will be the loadbalancer IP address.
+  #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+  hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"]
+  #If enable will do load balancing among available Logstash, automatically.
+  loadbalance: true
+
+  #The list of root certificates for server verifications.
+  #If certificate_authorities is empty or not set, the trusted
+  #certificate authorities of the host system are used.
+  #ssl.certificate_authorities: $ssl.certificate_authorities
+
+  #The path to the certificate for SSL client authentication. If the certificate is not specified,
+  #client authentication is not available.
+  #ssl.certificate: $ssl.certificate
+
+  #The client certificate key used for client authentication.
+  #ssl.key: $ssl.key
+
+  #The passphrase used to decrypt an encrypted key stored in the configured key file
+  #ssl.key_passphrase: $ssl.key_passphrase
\ No newline at end of file
diff --git a/kubernetes/dmaap/templates/configmap.yaml b/kubernetes/dmaap/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..6d80102
--- /dev/null
@@ -0,0 +1,26 @@
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+#
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ .Release.Name }}-dmaap-filebeat-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/log/filebeat/filebeat.yml").AsConfig . | indent 2 }}
\ No newline at end of file
index 6ded7d1..8e33abf 100644 (file)
@@ -22,3 +22,7 @@ global:
   readinessImage: readiness-check:2.0.0
   loggingRepository: docker.elastic.co
   loggingImage: beats/filebeat:5.5.0
+# application configuration
+config:
+  logstashServiceName: log-ls
+  logstashPort: 5044
index 9195f16..c92bc6e 100755 (executable)
@@ -66,7 +66,6 @@ generate_overrides() {
     fi
   done
 }
-
 resolve_deploy_flags() {
   flags=($1)
   n=${#flags[*]}
@@ -75,7 +74,8 @@ resolve_deploy_flags() {
     if [[ $PARAM == "-f" || \
           $PARAM == "--values" || \
           $PARAM == "--set" || \
-          $PARAM == "--set-string" ]]; then
+          $PARAM == "--set-string" || \
+          $PARAM == "--version" ]]; then
        # skip param and its value
        i=$((i + 1))
     else
@@ -116,12 +116,18 @@ deploy() {
   # should pass all flags instead
   NAMESPACE="$(echo $FLAGS | sed -n 's/.*\(namespace\).\s*/\1/p' | cut -c10- | cut -d' ' -f1)"
 
+  VERSION="$(echo $FLAGS | sed -n 's/.*\(version\).\s*/\1/p' | cut -c8- | cut -d' ' -f1)"
+
+  if [ ! -z $VERSION ]; then
+     VERSION="--version $VERSION"
+  fi
+
   # Remove all override values passed in as arguments. These will be used during dry run
   # to resolve computed override values. Remaining flags will be passed on during
   # actual upgrade/install of parent and subcharts.
   DEPLOY_FLAGS=$(resolve_deploy_flags "$FLAGS")
 
 # determine if upgrading individual subchart or entire parent + subcharts
+ # determine if upgrading individual subchart or entire parent + subcharts
   SUBCHART_RELEASE="$(cut -d'-' -f2 <<<"$RELEASE")"
   if [[ ! -d "$CACHE_SUBCHART_DIR/$SUBCHART_RELEASE" ]]; then
     SUBCHART_RELEASE=
@@ -148,7 +154,7 @@ deploy() {
     rm -rf $CHART_DIR/charts/*.tgz
   else
     echo "fetching $CHART_URL"
-    helm fetch $CHART_URL --untar --untardir $CACHE_DIR
+    helm fetch $CHART_URL --untar --untardir $CACHE_DIR $VERSION
   fi
 
   # move out subcharts to process separately
@@ -238,4 +244,4 @@ case "${1:-"help"}" in
     ;;
 esac
 
-exit 0
\ No newline at end of file
+exit 0
diff --git a/kubernetes/policy/charts/policy-pap/Chart.yaml b/kubernetes/policy/charts/policy-pap/Chart.yaml
new file mode 100644 (file)
index 0000000..dccf45d
--- /dev/null
@@ -0,0 +1,22 @@
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2019 Nordix Foundation.
+#  ================================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+
+apiVersion: v1
+description: ONAP Policy Administration (PAP)
+name: policy-pap
+version: 4.0.0
diff --git a/kubernetes/policy/charts/policy-pap/requirements.yaml b/kubernetes/policy/charts/policy-pap/requirements.yaml
new file mode 100644 (file)
index 0000000..849db83
--- /dev/null
@@ -0,0 +1,22 @@
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2019 Nordix Foundation.
+#  ================================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+
+dependencies:
+  - name: common
+    version: ~4.x-0
+    repository: '@local'
diff --git a/kubernetes/policy/charts/policy-pap/resources/config/config.json b/kubernetes/policy/charts/policy-pap/resources/config/config.json
new file mode 100644 (file)
index 0000000..8145103
--- /dev/null
@@ -0,0 +1,26 @@
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2019 Nordix Foundation.
+#  ================================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+{
+    "name":"PapGroup",
+    "restServerParameters":{
+        "host":"0.0.0.0",
+        "port":6969,
+        "userName":"healthcheck",
+        "password":"zb!XztG34"
+    }
+}
diff --git a/kubernetes/policy/charts/policy-pap/templates/NOTES.txt b/kubernetes/policy/charts/policy-pap/templates/NOTES.txt
new file mode 100644 (file)
index 0000000..170b03e
--- /dev/null
@@ -0,0 +1,37 @@
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2019 Nordix Foundation.
+#  ================================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range .Values.ingress.hosts }}
+  http://{{ . }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get svc -w {{ include "common.name" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.name" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
+  echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ include "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
+{{- end }}
diff --git a/kubernetes/policy/charts/policy-pap/templates/configmap.yaml b/kubernetes/policy/charts/policy-pap/templates/configmap.yaml
new file mode 100644 (file)
index 0000000..5618076
--- /dev/null
@@ -0,0 +1,26 @@
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2019 Nordix Foundation.
+#  ================================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/config.json").AsConfig . | indent 2 }}
+
diff --git a/kubernetes/policy/charts/policy-pap/templates/deployment.yaml b/kubernetes/policy/charts/policy-pap/templates/deployment.yaml
new file mode 100644 (file)
index 0000000..5bec94b
--- /dev/null
@@ -0,0 +1,66 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  name: {{ include "common.fullname" . }}
+  namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  template:
+    metadata:
+      labels:
+        app: {{ include "common.name" . }}
+        release: {{ .Release.Name }}
+    spec:
+      containers:
+        - name: {{ include "common.name" . }}
+          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+          command: ["/opt/app/policy/pap/bin/policy-pap.sh"]
+          args: ["/opt/app/policy/pap/etc/mounted/config.json"]
+          ports:
+          - containerPort: {{ .Values.service.internalPort }}
+          # disable liveness probe when breakpoints set in debugger
+          # so K8s doesn't restart unresponsive container
+          {{- if eq .Values.liveness.enabled true }}
+          livenessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.liveness.periodSeconds }}
+          {{ end -}}
+          readinessProbe:
+            tcpSocket:
+              port: {{ .Values.service.internalPort }}
+            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readiness.periodSeconds }}
+          volumeMounts:
+          - mountPath: /etc/localtime
+            name: localtime
+            readOnly: true
+          - mountPath: /opt/app/policy/pap/etc/mounted
+            name: papconfig
+          resources:
+{{ include "common.resources" . | indent 12 }}
+        {{- if .Values.nodeSelector }}
+        nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 10 }}
+        {{- end -}}
+        {{- if .Values.affinity }}
+        affinity:
+{{ toYaml .Values.affinity | indent 10 }}
+        {{- end }}
+      volumes:
+        - name: localtime
+          hostPath:
+             path: /etc/localtime
+        - name: papconfig
+          configMap:
+            name: {{ include "common.fullname" . }}-configmap
+            defaultMode: 0755
+      imagePullSecrets:
+      - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/policy/charts/policy-pap/templates/service.yaml b/kubernetes/policy/charts/policy-pap/templates/service.yaml
new file mode 100644 (file)
index 0000000..f4a3114
--- /dev/null
@@ -0,0 +1,36 @@
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2019 Nordix Foundation.
+#  ================================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+
+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:
+  ports:
+    - port: {{ .Values.service.internalPort }}
+      name: {{ .Values.service.portName }}
+  selector:
+    app: {{ include "common.name" . }}
+    release: {{ .Release.Name }}
+  clusterIP: None
diff --git a/kubernetes/policy/charts/policy-pap/values.yaml b/kubernetes/policy/charts/policy-pap/values.yaml
new file mode 100644 (file)
index 0000000..4736d1a
--- /dev/null
@@ -0,0 +1,66 @@
+#  ============LICENSE_START=======================================================
+#   Copyright (C) 2019 Nordix Foundation.
+#  ================================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#  ============LICENSE_END=========================================================
+
+#################################################################
+# Global configuration defaults.
+#################################################################
+global:
+  persistence: {}
+
+#################################################################
+# Application configuration defaults.
+#################################################################
+# application image
+repository: nexus3.onap.org:10001
+image: onap/policy-pap:2.0.0-SNAPSHOT-latest
+pullPolicy: Always
+
+# flag to enable debugging - application support required
+debugEnabled: false
+
+# application configuration
+
+# default number of instances
+replicaCount: 1
+
+nodeSelector: {}
+
+affinity: {}
+
+# probe configuration parameters
+liveness:
+  initialDelaySeconds: 20
+  periodSeconds: 10
+  # necessary to disable liveness probe when setting breakpoints
+  # in debugger so K8s doesn't restart unresponsive container
+  enabled: true
+
+readiness:
+  initialDelaySeconds: 20
+  periodSeconds: 10
+
+service:
+  type: ClusterIP
+  name: policy-pap
+  portName: policy-pap
+  internalPort: 6969
+
+ingress:
+  enabled: false
+
+resources: {}
index d92e75c..5815b96 100644 (file)
@@ -27,7 +27,7 @@ global:
   
 # application image
 repository: nexus3.onap.org:10001
-image: onap/data-router:1.3.1
+image: onap/data-router:1.3.3
 pullPolicy: Always
 restartPolicy: Always
 
index 8c7d27c..bbf0901 100644 (file)
@@ -45,8 +45,9 @@ aai.httpProtocol={{ .Values.config.aaiHttpProtocol }}
 aai.securityProtocol=TLS
 aai.connectionTimeout=60000
 aai.readTimeout=60000
-aai.resourceList=vnfc,vserver,l3-network
+aai.resourceList=vnfc,vserver,l3-network,pserver
 aai.serviceInstancePath=/aai/v13/nodes/service-instance/{0}
+aai.urlDepth=2
 
 #Servlet context parameters
 server.context_parameters.p-name=value #context parameter with p-name as key and value as value.
index 877e74c..95206cf 100644 (file)
@@ -25,130 +25,176 @@ entity {
 
     // NDCB-AAI comparison: Context level
     useRule {
-      name 'NDCB-AAI-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.ndcb', 'context-list.aai'
     }
 
     // NDCB-AAI comparison: Service entity
     useRule {
-      name 'NDCB-AAI-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.ndcb.service', 'context-list.aai.service'
     }
 
-    // NDCB-AAI comparison: VF list
+    // NDCB-AAI comparison: Context level network list
     useRule {
-      name 'NDCB-AAI-attribute-comparison'
+      name 'Attribute-comparison'
+      attributes 'context-list.ndcb.networkList[*]', 'context-list.aai.networkList[*]'
+    }
+       
+    // NDCB-AAI comparison: VNF list
+    useRule {
+      name 'Attribute-comparison'
       attributes 'context-list.ndcb.vnfList[*]', 'context-list.aai.vnfList[*]'
     }
 
+    // NDCB-AAI comparison: VNF network list
+    useRule {
+      name 'Attribute-comparison'
+      attributes 'context-list.ndcb.vnfList[*].networkList[*]', 'context-list.aai.vnfList[*].networkList[*]'
+    }
+       
     // NDCB-AAI comparison: VF-Module list
     useRule {
-      name 'NDCB-AAI-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.ndcb.vnfList[*].vfModuleList[*]', 'context-list.aai.vnfList[*].vfModuleList[*]'
     }
 
+    // NDCB-AAI comparison: VF-Module network list
+    useRule {
+      name 'Attribute-comparison'
+      attributes 'context-list.ndcb.vnfList[*].vfModuleList[*].networkList[*]', 'context-list.aai.vnfList[*].vfModuleList[*].networkList[*]'
+    }
+
     // NDCB-AAI comparison: VNFC list
     useRule {
-      name 'NDCB-AAI-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.ndcb.vnfList[*].vnfcList[*]', 'context-list.aai.vnfList[*].vnfcList[*]'
     }
 
     // NDCB-AAI comparison: VM list
     useRule {
-      name 'NDCB-AAI-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.ndcb.vnfList[*].vfModuleList[*].vmList[*]', 'context-list.aai.vnfList[*].vfModuleList[*].vmList[*]'
     }
-
-    // NDCB-AAI comparison: Network list
-    useRule {
-      name 'NDCB-AAI-attribute-comparison'
-      attributes 'context-list.ndcb.vnfList[*].vfModuleList[*].networkList[*]', 'context-list.aai.vnfList[*].vfModuleList[*].networkList[*]'
-    }
-
+       
+       
     // SDNC-AAI comparison: Context level
     useRule {
-      name 'SDNC-AAI-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc', 'context-list.aai'
     }
 
     // SDNC-AAI comparison: Service entity
     useRule {
-      name 'SDNC-AAI-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc.service', 'context-list.aai.service'
     }
 
-    // SDNC-AAI comparison: VF list
+    // SDNC-AAI comparison: Context level network list
     useRule {
-      name 'SDNC-AAI-attribute-comparison'
+      name 'Attribute-comparison'
+      attributes 'context-list.sdnc.networkList[*]', 'context-list.aai.networkList[*]'
+    }
+
+    // SDNC-AAI comparison: VNF list
+    useRule {
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc.vnfList[*]', 'context-list.aai.vnfList[*]'
     }
 
+    // SDNC-AAI comparison: VNF network list
+    useRule {
+      name 'Attribute-comparison'
+      attributes 'context-list.sdnc.vnfList[*].networkList[*]', 'context-list.aai.vnfList[*].networkList[*]'
+    }
+
     // SDNC-AAI comparison: VF-Module list
     useRule {
-      name 'SDNC-AAI-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc.vnfList[*].vfModuleList[*]', 'context-list.aai.vnfList[*].vfModuleList[*]'
     }
 
+    // SDNC-AAI comparison: VF-Module network list
+    useRule {
+      name 'Attribute-comparison'
+      attributes 'context-list.sdnc.vnfList[*].vfModuleList[*].networkList[*]', 'context-list.aai.vnfList[*].vfModuleList[*].networkList[*]'
+    }
+
     // SDNC-AAI comparison: VNFC list
     useRule {
-      name 'SDNC-AAI-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc.vnfList[*].vnfcList[*]', 'context-list.aai.vnfList[*].vnfcList[*]'
     }
 
     // SDNC-AAI comparison: VM list
     useRule {
-      name 'SDNC-AAI-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc.vnfList[*].vfModuleList[*].vmList[*]', 'context-list.aai.vnfList[*].vfModuleList[*].vmList[*]'
     }
 
-    // SDNC-AAI comparison: Network list
+    // AAI-SDNC PNF name validation
     useRule {
-      name 'SDNC-AAI-attribute-comparison'
-      attributes 'context-list.sdnc.vnfList[*].vfModuleList[*].networkList[*]', 'context-list.aai.vnfList[*].vfModuleList[*].networkList[*]'
+      name 'AAI-SDNC-pnf-name-check'
+      attributes 'context-list.aai.pnfList[*].name', 'context-list.sdnc.pnfList[*].name'
     }
 
+
     // SDNC-NDCB comparison: Context level
     useRule {
-      name 'SDNC-NDCB-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc', 'context-list.ndcb'
     }
 
     // SDNC-NDCB comparison: Service entity
     useRule {
-      name 'SDNC-NDCB-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc.service', 'context-list.ndcb.service'
     }
 
-    // SDNC-NDCB comparison: VF list
+    // SDNC-NDCB comparison: Context level network list
     useRule {
-      name 'SDNC-NDCB-attribute-comparison'
+      name 'Attribute-comparison'
+      attributes 'context-list.sdnc.networkList[*]', 'context-list.ndcb.networkList[*]'
+    }
+
+    // SDNC-NDCB comparison: VNF list
+    useRule {
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc.vnfList[*]', 'context-list.ndcb.vnfList[*]'
     }
 
+    // SDNC-NDCB comparison: VNF network list
+    useRule {
+      name 'Attribute-comparison'
+      attributes 'context-list.sdnc.vnfList[*].networkList[*]', 'context-list.ndcb.vnfList[*].networkList[*]'
+    }
+
     // SDNC-NDCB comparison: VF-Module list
     useRule {
-      name 'SDNC-NDCB-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc.vnfList[*].vfModuleList[*]', 'context-list.ndcb.vnfList[*].vfModuleList[*]'
     }
 
+    // SDNC-NDCB comparison: VF-Module network list
+    useRule {
+      name 'Attribute-comparison'
+      attributes 'context-list.sdnc.vnfList[*].vfModuleList[*].networkList[*]', 'context-list.ndcb.vnfList[*].vfModuleList[*].networkList[*]'
+    }
+
     // SDNC-NDCB comparison: VNFC list
     useRule {
-      name 'SDNC-NDCB-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc.vnfList[*].vnfcList[*]', 'context-list.ndcb.vnfList[*].vnfcList[*]'
     }
 
     // SDNC-NDCB comparison: VM list
     useRule {
-      name 'SDNC-NDCB-attribute-comparison'
+      name 'Attribute-comparison'
       attributes 'context-list.sdnc.vnfList[*].vfModuleList[*].vmList[*]', 'context-list.ndcb.vnfList[*].vfModuleList[*].vmList[*]'
     }
 
-    // SDNC-NDCB comparison: Network list
-    useRule {
-      name 'SDNC-NDCB-attribute-comparison'
-      attributes 'context-list.sdnc.vnfList[*].vfModuleList[*].networkList[*]', 'context-list.ndcb.vnfList[*].vfModuleList[*].networkList[*]'
-    }
-
+       
+       
     // SDC-AAI VNFC type
     useRule {
       name 'SDC-AAI-vnfc-type'
@@ -236,249 +282,126 @@ rule {
 }
 
 rule {
-  name        'NDCB-AAI-attribute-comparison'
+  name        'Attribute-comparison'
   category    'Attribute Mismatch'
-  description 'Verify that all attributes in Network-Discovery are the same as in AAI'
-  errorText   'Error found with attribute "{0}"; Network-Discovery value does not match AAI value "{1}"'
+  description 'Determine all discrepancies between values for attributes with matching names from each model'
+  errorText   'Error found with attribute(s) and values: {0}'
   severity    'ERROR'
-  attributes  'ndcbItems', 'aaiItems'
+  attributes  'lhsObject', 'rhsObject'
   validate    '''
-        Closure<java.util.Map> getAttributes = { parsedData ->
-          java.util.Map attributeMap = new java.util.HashMap()
-
-          def isAttributeDataQualityOk = { attribute ->
-            attribute.findResult{ k, v -> if(k.equals("dataQuality") ) {return v.get("status")}}.equals("ok")
-          }
-
-          def addToMap = { attrKey, attrValue ->
-            java.util.Set values = attributeMap.get("$attrKey")
-            if(values == null) {
-              values = new java.util.HashSet()
-              attributeMap.put("$attrKey", values)
-            }
-            values.add("$attrValue")
-          }
-
-          def addAttributeToMap = { attribute ->
-            if(isAttributeDataQualityOk(attribute)) {
-              String key, value
-              attribute.each { k, v ->
-                if(k.equals("name")) {key = "$v"}
-                if(k.equals("value")) {value = "$v"}
-              }
-              addToMap("$key", "$value")
-            }
-          }
-
-          def processKeyValue = { key, value ->
-            if(value instanceof java.util.ArrayList) {
-              if(key.equals("attributeList")) {
-                value.each {
-                  addAttributeToMap(it)
-                }
-              }
-            } else if(!(value instanceof groovy.json.internal.LazyMap)) {
-              // only add key-value attributes, skip the rest
-              addToMap("$key", "$value")
-            }
-          }
-
-          if(parsedData instanceof java.util.ArrayList) {
-            parsedData.each {
-              it.each { key, value -> processKeyValue(key, value) }
-            }
-          } else {
-            parsedData.each { key, value -> processKeyValue(key, value) }
-          }
-          return attributeMap
-        }
-
-        def slurper = new groovy.json.JsonSlurper()
-        java.util.Map ndcb = getAttributes(slurper.parseText(ndcbItems.toString()))
-        java.util.Map aai = getAttributes(slurper.parseText(aaiItems.toString()))
-
-        boolean result = true
-        List<String> details = new ArrayList<>();
-        ndcb.any{ ndcbKey, ndcbValueList ->
-          def aaiValueList = aai.get("$ndcbKey")
-          aaiValueList.each{ aaiValue ->
-            if(!ndcbValueList.any{ it == "$aaiValue" }) {
-              result = false
-              details.add("$ndcbKey")
-              details.add("$aaiValue")
-            }
-          }
-          if(result == false) {
-            // break out of 'any' loop
-            return true
-          }
-        }
-        return new Tuple2(result, details)
-        '''
-}
-
-rule {
-  name        'SDNC-AAI-attribute-comparison'
-  category    'Attribute Mismatch'
-  description 'Verify that all attributes in SDN-C are the same as in AAI'
-  errorText   'Error found with attribute "{0}"; SDN-C value does not match AAI value "{1}"'
-  severity    'ERROR'
-  attributes  'sdncItems', 'aaiItems'
-  validate    '''
-        Closure<java.util.Map> getAttributes = { parsedData ->
-          java.util.Map attributeMap = new java.util.HashMap()
-
-          def isAttributeDataQualityOk = { attribute ->
-            attribute.findResult{ k, v -> if(k.equals("dataQuality") ) {return v.get("status")}}.equals("ok")
-          }
-
-          def addToMap = { attrKey, attrValue ->
-            java.util.Set values = attributeMap.get("$attrKey")
-            if(values == null) {
-              values = new java.util.HashSet()
-              attributeMap.put("$attrKey", values)
-            }
-            values.add("$attrValue")
-          }
-
-          def addAttributeToMap = { attribute ->
-            if(isAttributeDataQualityOk(attribute)) {
-              String key, value
-              attribute.each { k, v ->
-                if(k.equals("name")) {key = "$v"}
-                if(k.equals("value")) {value = "$v"}
-              }
-              addToMap("$key", "$value")
-            }
-          }
-
-          def processKeyValue = { key, value ->
-            if(value instanceof java.util.ArrayList) {
-              if(key.equals("attributeList")) {
-                value.each {
-                  addAttributeToMap(it)
-                }
-              }
-            } else if(!(value instanceof groovy.json.internal.LazyMap)) {
-              // only add key-value attributes, skip the rest
-              addToMap("$key", "$value")
-            }
-          }
-
-          if(parsedData instanceof java.util.ArrayList) {
-            parsedData.each {
-              it.each { key, value -> processKeyValue(key, value) }
-            }
-          } else {
-            parsedData.each { key, value -> processKeyValue(key, value) }
-          }
-          return attributeMap
-        }
-
-        def slurper = new groovy.json.JsonSlurper()
-        java.util.Map sdnc = getAttributes(slurper.parseText(sdncItems.toString()))
-        java.util.Map aai = getAttributes(slurper.parseText(aaiItems.toString()))
-
-        boolean result = true
-        List<String> details = new ArrayList<>();
-        sdnc.any{ sdncKey, sdncValueList ->
-          def aaiValueList = aai.get("$sdncKey")
-          aaiValueList.each{ aaiValue ->
-            if(!sdncValueList.any{ it == "$aaiValue" }) {
-              result = false
-              details.add("$sdncKey")
-              details.add("$aaiValue")
-            }
-          }
-          if(result == false) {
-            // break out of 'any' loop
-            return true
-          }
-        }
-        return new Tuple2(result, details)
-        '''
-}
-
-
-rule {
-  name        'SDNC-NDCB-attribute-comparison'
-  category    'Attribute Mismatch'
-  description 'Verify that all attributes in SDN-C are the same as in Network Discovery'
-  errorText   'Error found with attribute "{0}"; SDN-C value does not match Network-Discovery value "{1}"'
-  severity    'ERROR'
-  attributes  'sdncItems', 'ndcbItems'
-  validate    '''
-        Closure<java.util.Map> getAttributes = { parsedData ->
-          java.util.Map attributeMap = new java.util.HashMap()
-
-          def isAttributeDataQualityOk = { attribute ->
-            attribute.findResult{ k, v -> if(k.equals("dataQuality") ) {return v.get("status")}}.equals("ok")
-          }
-
-          def addToMap = { attrKey, attrValue ->
-            java.util.Set values = attributeMap.get("$attrKey")
-            if(values == null) {
-              values = new java.util.HashSet()
-              attributeMap.put("$attrKey", values)
-            }
-            values.add("$attrValue")
-          }
-
-          def addAttributeToMap = { attribute ->
-            if(isAttributeDataQualityOk(attribute)) {
-              String key, value
-              attribute.each { k, v ->
-                if(k.equals("name")) {key = "$v"}
-                if(k.equals("value")) {value = "$v"}
-              }
-              addToMap("$key", "$value")
-            }
-          }
-
-          def processKeyValue = { key, value ->
-            if(value instanceof java.util.ArrayList) {
-              if(key.equals("attributeList")) {
-                value.each {
-                  addAttributeToMap(it)
-                }
-              }
-            } else if(!(value instanceof groovy.json.internal.LazyMap)) {
-              // only add key-value attributes, skip the rest
-              addToMap("$key", "$value")
-            }
-          }
-
-          if(parsedData instanceof java.util.ArrayList) {
-            parsedData.each {
-              it.each { key, value -> processKeyValue(key, value) }
-            }
-          } else {
-            parsedData.each { key, value -> processKeyValue(key, value) }
-          }
-          return attributeMap
-        }
-
-        def slurper = new groovy.json.JsonSlurper()
-        java.util.Map sdnc = getAttributes(slurper.parseText(sdncItems.toString()))
-        java.util.Map ndcb = getAttributes(slurper.parseText(ndcbItems.toString()))
-
-        boolean result = true
-        List<String> details = new ArrayList<>();
-        sdnc.any{ sdncKey, sdncValueList ->
-          def ndcbValueList = ndcb.get("$sdncKey")
-          ndcbValueList.each{ ndcbValue ->
-            if(!sdncValueList.any{ it == "$ndcbValue" }) {
-              result = false
-              details.add("$sdncKey")
-              details.add("$ndcbValue")
-            }
-          }
-          if(result == false) {
-            // break out of 'any' loop
-            return true
-          }
-        }
-        return new Tuple2(result, details)
+               // This closure extracts the given object's root level attributes and contents of the attribute list.
+               // Complex items like lists are excluded.
+               // Returns a map containing attribute names as keys, mapping to a list of values for each attribute.
+               Closure<java.util.Map> getAttributes = { parsedData ->
+                       java.util.Map attributeMap = new java.util.HashMap()
+
+                       def isAttributeDataQualityOk = { attribute ->
+                               attribute.findResult{ k, v -> if(k.equals("dataQuality") ) {return v.get("status")}}.equals("ok")
+                       }
+
+                       def addToMap = { attrKey, attrValue ->
+                               java.util.Set values = attributeMap.get("$attrKey")
+                               if(values == null) {
+                                       values = new java.util.HashSet()
+                                       attributeMap.put("$attrKey", values)
+                               }
+                               values.add("$attrValue")
+                       }
+
+                       def addAttributeToMap = { attribute ->
+                               if(isAttributeDataQualityOk(attribute)) {
+                                       String key, value
+                                       attribute.each { k, v ->
+                                               if(k.equals("name")) {key = "$v"}
+                                               if(k.equals("value")) {value = "$v"}
+                                       }
+                                       addToMap("$key", "$value")
+                               }
+                       }
+
+                       def processKeyValue = { key, value ->
+                               if(value instanceof java.util.ArrayList) {
+                                       if(key.equals("attributeList")) {
+                                               value.each {
+                                                       addAttributeToMap(it)
+                                               }
+                                       }
+                               } else if(!(value instanceof groovy.json.internal.LazyMap)) {
+                                       // only add key-value attributes, skip the rest
+                                       addToMap("$key", "$value")
+                               }
+                       }
+
+                       if(parsedData instanceof java.util.ArrayList) {
+                               parsedData.each {
+                                       it.each { key, value -> processKeyValue(key, value) }
+                               }
+                       } else {
+                               parsedData.each { key, value -> processKeyValue(key, value) }
+                       }
+                       return attributeMap
+               }
+
+               // This closure compares all values for each key from the left map, to values of the same key from the right map.
+               // Returns a map of attributes with mismatched or missing values (i.e. attribute name mapped to list of failed values).
+               Closure<java.util.Map> compareAttributes = { java.util.Map left, java.util.Map right ->
+                       java.util.Map violationMap = new java.util.HashMap()
+                       left.each{ leftKey, leftValueList ->
+                               def rightValueList = right.get("$leftKey")
+                               rightValueList.each{ rightValue ->
+                                       if(!leftValueList.any{ it == "$rightValue" }) {
+                                               def existingValues = violationMap.get(leftKey)
+                                               if(existingValues) {
+                                                       existingValues.add("$rightValue")
+                                               } else {
+                                                       java.util.Set newValues = new HashSet()
+                                                       newValues.add("$rightValue")
+                                                       violationMap.put("$leftKey", newValues)
+                                               }
+                                       }
+                               }
+                       }
+                       return violationMap
+               }
+
+               // This closure merges the given maps into a new map.
+               // Returns a map containing all keys and their values from both maps.
+               Closure<java.util.Map> mergeMaps = { java.util.Map left, java.util.Map right ->
+                       if(left.isEmpty() && right.isEmpty()) {
+                               return [:]
+                       } else if(left.isEmpty()) {
+                               return right
+                       } else if(right.isEmpty()) {
+                               return left
+                       }
+                       java.util.Map merged = new java.util.HashMap()
+                       merged.putAll(left)
+                       right.each{ rightKey, rightValues ->
+                               java.util.Set mergedValues = merged.get(rightKey)
+                               if(mergedValues == null) {
+                                       merged.put(rightKey, rightValues)
+                               } else {
+                                       mergedValues.addAll(rightValues)
+                               }
+                       }
+                       return merged
+               }
+
+               def slurper = new groovy.json.JsonSlurper()
+               java.util.Map lhsAttributes = getAttributes(slurper.parseText(lhsObject.toString()))
+               java.util.Map rhsAttributes = getAttributes(slurper.parseText(rhsObject.toString()))
+
+               def leftToRight = compareAttributes(lhsAttributes, rhsAttributes)
+               def rightToLeft = compareAttributes(rhsAttributes, lhsAttributes)
+               def mergedResults = mergeMaps(leftToRight, rightToLeft)
+
+               boolean success = true
+               List<String> details = new ArrayList<>()
+               if(!mergedResults.isEmpty()) {
+                       success = false
+                       details.add(mergedResults.toString())
+               }
+               return new Tuple2(success, details)
         '''
 }
 
@@ -514,3 +437,52 @@ rule {
         return new Tuple2(success, details)
         '''
 }
+
+rule {
+  name        'AAI-SDNC-pnf-name-check'
+  category    'PNF Consistency'
+  description 'Validate that each PNF name in AAI matches a PNF name in the SDNC model'
+  errorText   'AAI PNF names do not match SDNC - {0}'
+  severity    'ERROR'
+  attributes  'aaiNames', 'sdncNames'
+  validate    '''
+        def addName = { values, key ->
+                values.add("$key")
+        }
+
+        List<String> errorReasons = new ArrayList();
+
+        if (aaiNames.size() != sdncNames.size()) {
+            errorReasons.add("Number of PNFs don't match; aai has ${aaiNames.size()}, sdnc has ${sdncNames.size()}")
+            return new Tuple2(false, errorReasons)
+        }
+
+        // collect all the "name" values from AAI and SDNC into two Sets.
+        Set aaiNameSet = new java.util.HashSet()
+        aaiNames.each {
+           aValue -> addName(aaiNameSet, aValue)
+        }
+
+        Set sdncNameSet = new java.util.HashSet()
+        sdncNames.each {
+            aValue -> addName(sdncNameSet, aValue)
+        }
+
+        // Validate that the names match by comparing the size of the two Sets.
+        if (aaiNameSet.size() != sdncNameSet.size()) {
+            errorReasons.add("Number of distinct PNF names don't match; aai: ${aaiNameSet}, sdnc: ${sdncNameSet}")
+            return new Tuple2(false, errorReasons)
+        }
+
+        Set combinedSet = new HashSet();
+        combinedSet.addAll(aaiNameSet);
+        combinedSet.addAll(sdncNameSet);
+        if (combinedSet.size() != aaiNameSet.size()) {
+            errorReasons.add("PNF names don't match; aai names: ${aaiNameSet}, sdnc names: ${sdncNameSet}")
+            return new Tuple2(false, errorReasons)
+        }
+
+        return true
+
+        '''
+}
index 11d41a3..d253ec7 100755 (executable)
@@ -173,6 +173,14 @@ do
                         TAG="distributeVFWNG"
                         shift
                         ;;
+        distributeDemoVFWDT)
+                        TAG="DistributeDemoVFWDT"
+                        shift
+                        ;;
+        instantiateDemoVFWDT)
+                        TAG="instantiateVFWDT"
+                        shift
+                        ;;
         vfwclosedloop)
                         TAG="vfwclosedloop"
                         shift
@@ -189,7 +197,7 @@ set -x
 
 POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot)
 
-ETEHOME=/var/opt/OpenECOMP_ETE
+ETEHOME=/var/opt/ONAP
 
 export GLOBAL_BUILD_NUMBER=$(kubectl --namespace $NAMESPACE exec  ${POD}  -- bash -c "ls -1q /share/logs/ | wc -l")
 OUTPUT_FOLDER=$(printf %04d $GLOBAL_BUILD_NUMBER)_demo_$key
index c4059b9..aaa3bc8 100755 (executable)
@@ -33,7 +33,7 @@ POD=$(kubectl --namespace $NAMESPACE get pods | sed 's/ .*//'| grep robot)
 
 TAGS="-i $2"
 
-ETEHOME=/var/opt/OpenECOMP_ETE
+ETEHOME=/var/opt/ONAP
 export GLOBAL_BUILD_NUMBER=$(kubectl --namespace $NAMESPACE exec  ${POD}  -- bash -c "ls -1q /share/logs/ | wc -l")
 OUTPUT_FOLDER=$(printf %04d $GLOBAL_BUILD_NUMBER)_ete_$2
 DISPLAY_NUM=$(($GLOBAL_BUILD_NUMBER + 90))
index 4a738c4..0ae1047 100644 (file)
@@ -30,8 +30,7 @@ GLOBAL_PRELOAD_PARAMETERS = {
          "cloud_env" : "${GLOBAL_INJECTED_CLOUD_ENV}",
          "install_script_version" : "${GLOBAL_INJECTED_SCRIPT_VERSION}",
      },
-
-# ##
+    # ##
     # heat template parameter values for heat template instances created during Vnf-Orchestration test cases
     # ##
     "Vnf-Orchestration" : {
@@ -95,7 +94,94 @@ GLOBAL_PRELOAD_PARAMETERS = {
             "vpg_image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
             "vpg_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}",
         },
-        # vLBMS
+        #  vFWDT preload data
+        "vfwdt_vpkg_preload.template": {
+            "unprotected_private_net_id" : "vofwlsnk_unprotected${hostid}",
+            "unprotected_private_subnet_id" : "vofwlsnk_unprotected_sub${hostid}",
+            "unprotected_private_net_cidr" : "192.168.10.0/24",
+            "protected_private_net_cidr" : "192.168.20.0/24",
+            "vfw_private_ip_0" : "192.168.10.100",
+            "vpg_private_ip_0" : "192.168.10.200",
+            "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.103",
+            "vsn_private_ip_0" : "192.168.20.250",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
+            'vpg_name_0':'vofwl01pgn${hostid}',
+            "vfw_name_0": "vofwl01vfw${hostid}",
+            "vsn_name_0": "vofwl01snk${hostid}",
+            "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
+            "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}",
+            "protected_private_net_id" : "vofwlsnk01_protected${hostid}",
+            "protected_private_subnet_id" : "vofwlsnk01_protected_sub${hostid}",
+            "ext_private_net_id": "onap_oam_ext",
+            "ext_private_subnet_id": "onap_oam_ext_sub",
+            "ext_private_net_cidr": "10.100.0.0/16",
+            "vfw_private_ip_1": "192.168.20.100",
+            "vfw_private_ip_2": "10.0.110.1",
+            "vfw_private_ip_3": "10.100.100.1",
+            "vsn_private_ip_1": "10.0.110.3",
+            "vsn_private_ip_0": "192.168.20.250",
+            "vsn_private_ip_2": "10.100.100.3",
+        },
+        "vfwdt_vfwsnk0_preload.template": {
+            "unprotected_private_net_id" : "vofwlsnk_unprotected${hostid}",
+            "unprotected_private_subnet_id" : "vofwlsnk_unprotected_sub${hostid}",
+            "unprotected_private_net_cidr" : "192.168.10.0/24",
+            "protected_private_net_cidr" : "192.168.20.0/24",
+            "vfw_private_ip_0" : "192.168.10.100",
+            "vpg_private_ip_0" : "192.168.10.200",
+            "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.103",
+            "vsn_private_ip_0" : "192.168.20.250",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
+            'vpg_name_0':'vofwl01pgn${hostid}',
+            "vsn_name_0": "vofwl01snk${hostid}",
+            "vfw_name_0": "vofwl01vfw${hostid}",
+            "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
+            "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}",
+            "protected_private_net_id" : "vofwlsnk01_protected${hostid}",
+            "protected_private_subnet_id" : "vofwlsnk01_protected_sub${hostid}",
+            "ext_private_net_id": "onap_oam_ext",
+            "ext_private_subnet_id": "onap_oam_ext_sub",
+            "ext_private_net_cidr": "10.100.0.0/16",
+            "vfw_private_ip_1": "192.168.20.100",
+            "vfw_private_ip_2": "10.0.110.1",
+            "vfw_private_ip_3": "10.100.100.1",
+            "vsn_private_ip_1": "10.0.110.3",
+            "vsn_private_ip_0": "192.168.20.250",
+            "vpg_private_ip_2": "10.100.100.2",
+            "vsn_private_ip_1": "10.0.110.3",
+            "vsn_private_ip_0": "192.168.20.250",
+            "vsn_private_ip_2": "10.100.100.3"
+        },
+        "vfwdt_vfwsnk1_preload.template": {
+            "unprotected_private_net_id" : "vofwlsnk_unprotected${hostid}",
+            "unprotected_private_subnet_id" : "vofwlsnk_unprotected_sub${hostid}",
+            "unprotected_private_net_cidr" : "192.168.10.0/24",
+            "protected_private_net_cidr" : "192.168.20.0/24",
+            "vfw_private_ip_0" : "192.168.10.110",
+            "vpg_private_ip_0" : "192.168.10.200",
+            "vpg_private_ip_1" : "{{.Values.openStackOamNetworkCidrPrefix}}.${ecompnet}.103",
+            "vsn_private_ip_0" : "192.168.20.250",
+            "sec_group" : "{{ .Values.openStackSecurityGroup }}",
+            'vpg_name_0':'vofwl01pgn${hostid}',
+            "vsn_name_0": "vofwl01snk${hostid}",
+            "vfw_name_0": "vofwl01vfw${hostid}",
+            "image_name" : "${GLOBAL_INJECTED_UBUNTU_1404_IMAGE}",
+            "flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}",
+            "protected_private_net_id" : "vofwlsnk01_protected${hostid}",
+            "protected_private_subnet_id" : "vofwlsnk01_protected_sub${hostid}",
+            "ext_private_net_id": "onap_oam_ext",
+            "ext_private_subnet_id": "onap_oam_ext_sub",
+            "ext_private_net_cidr": "10.100.0.0/16",
+            "vfw_private_ip_1": "192.168.20.110",
+            "vfw_private_ip_2": "10.0.110.4",
+            "vfw_private_ip_3": "10.100.100.4",
+            "vpg_private_ip_0": "192.168.10.200",
+            "vpg_private_ip_1": "10.0.110.2",
+            "vpg_private_ip_2": "10.100.100.2",
+            "vsn_private_ip_0": "192.168.20.240",
+            "vsn_private_ip_1": "10.0.110.5",
+            "vsn_private_ip_2": "10.100.100.5"
+        },
         "vlb_preload.template" : {
             "vlb_image_name" : "${GLOBAL_INJECTED_UBUNTU_1604_IMAGE}",
             "vlb_flavor_name" : "${GLOBAL_INJECTED_VM_FLAVOR}",
index d8179e1..3b65df8 100644 (file)
@@ -151,4 +151,4 @@ GLOBAL_PROXY_WARNING_CONTINUE_XPATH=""
 # dns info
 GLOBAL_DNS_TRAFFIC_DURATION = "600"
 # location where heat templates are loaded from
-GLOBAL_HEAT_TEMPLATES_FOLDER = "/var/opt/OpenECOMP_ETE/demo/heat"
+GLOBAL_HEAT_TEMPLATES_FOLDER = "/var/opt/ONAP/demo/heat"
index ede9a04..bc80528 100755 (executable)
@@ -22,7 +22,7 @@ global: # global defaults
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/testsuite:1.3.2
+image: onap/testsuite:1.4.0-STAGING-latest
 pullPolicy: Always
 
 ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
index 1d0751a..5c92278 100644 (file)
@@ -17,5 +17,10 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-logging-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
\ No newline at end of file
index 144bdb7..a96f3c8 100644 (file)
@@ -17,5 +17,10 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-logging-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
index 144bdb7..a96f3c8 100644 (file)
@@ -17,5 +17,10 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-logging-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
index 762d6c3..e9b329c 100644 (file)
@@ -38,8 +38,8 @@ config:
     dcae_source_url: "http://sdc.dcae.plugin.simpledemo.onap.org:30263/dcaed/#/home"
     dcae_dt_discovery_url: "http://sdc-dcae-dt:8186/dcae/#/dcae/home"
     dcae_dt_source_url: "http://sdc.dcae.plugin.simpledemo.onap.org:30265/dcae/#/dcae/home"
-    workflow_discovery_url: "http://sdc-wfd-fe:8080"
-    workflow_source_url: "http://sdc.workflow.plugin.simpledemo.onap.org:30256"
+    workflow_discovery_url: "http://sdc-wfd-fe:8080/workflows"
+    workflow_source_url: "http://sdc.workflow.plugin.simpledemo.onap.org:30256/workflows/"
 
 # default number of instances
 replicaCount: 1
index cb55f4a..1e0ea51 100644 (file)
@@ -28,8 +28,8 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/workflow-backend:1.3.2
-configInitImage: onap/workflow-init:1.3.2
+image: onap/workflow-backend:1.4.0-SNAPSHOT
+configInitImage: onap/workflow-init:1.4.0-SNAPSHOT
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 5d942e1..8c002af 100644 (file)
@@ -27,7 +27,7 @@ global:
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/workflow-frontend:1.3.2
+image: onap/workflow-frontend:1.4.0-SNAPSHOT
 pullPolicy: Always
 
 # flag to enable debugging - application support required
index 965caed..7559622 100644 (file)
@@ -47,6 +47,9 @@ spec:
         name: {{ include "common.name" . }}-readiness
       containers:
         - name: {{ include "common.name" . }}
+          command: ["/bin/bash"]
+          args: ["-c", "cd /opt/onap/ccsdk && ./startAnsibleServer.sh"]
+
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
index f9107ea..3294fd8 100755 (executable)
@@ -316,16 +316,6 @@ server:
   tomcat:
     max-threads: 50
 spring:
-  datasource:
-     driver-class-name: org.mariadb.jdbc.Driver
-     jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/camundabpmn
-     username: ${DB_USERNAME}
-     password: ${DB_PASSWORD}
-     dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
   security:
     usercredentials:
     -
index b88149b..1f2e6d9 100755 (executable)
 server:
   port: {{ index .Values.containerPort }}
 spring:
-  datasource:
-    jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
-    username: ${DB_ADMIN_USERNAME}
-    password: ${DB_ADMIN_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
   security:
     usercredentials:
     -
@@ -94,7 +84,14 @@ ecomp:
         pollTimeout: 7500
         pollInterval: 15
 mso:
+  auth: F35F6A4C9EC66785785AF7E5C03494ED4D87955A32DAF5D6F54AB2DCDC8F2F8EAE168B4F5AD52D9298184019E304C968BE23
   logPath: ./logs/openstack
+  workflow:
+    endpoint: http://so-bpmn-infra-svc:8081/sobpmnengine
+  msoKey: 07a7159d3bf51a0e53be7a8f89699be7
+  config:
+    cadi:
+      aafId: infraportal
   catalog:
     db:
       spring:
index 95726d4..7a326d3 100755 (executable)
@@ -25,26 +25,6 @@ mso:
       auth: Basic YnBlbDpwYXNzd29yZDEk
       endpoint: http://so-request-db-adapter.{{ include "common.namespace" . }}:8083
 spring:
-  datasource:
-    jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    initialize: false
-    initialization-mode: never
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
-  jpa:
-    generate-ddl: false
-    show-sql: false
-    hibernate:
-      ddl-auto: validate
-      naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
-      enable-lazy-load-no-trans: true
-    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
   security:
     usercredentials:
     -
@@ -58,8 +38,3 @@ spring:
 #Actuator
 management:
   context-path: /manage
-flyway:
-  baseline-on-migrate: true
-  jdbc-url:  jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
-  user: ${DB_ADMIN_USERNAME}
-  password: ${DB_ADMIN_PASSWORD}
index 9ac209f..7f9fc8f 100755 (executable)
@@ -16,16 +16,6 @@ aai:
 server:
   port: {{ index .Values.containerPort }}
 spring:
-  datasource:
-    jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
   security:
     usercredentials:
     -
index 060a306..c17ee54 100755 (executable)
@@ -58,23 +58,6 @@ mso:
       publisher:
         topic: com.att.ecomp.mso.operationalEnvironmentEvent
 spring:
-  datasource:
-    jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/catalogdb
-    username: ${DB_USERNAME}
-    password: ${DB_PASSWORD}
-    driver-class-name: org.mariadb.jdbc.Driver
-    dbcp2:
-      initial-size: 5
-      max-total: 20
-      validation-query: select 1
-      test-on-borrow: true
-  jpa:
-      show-sql: true
-      hibernate:
-        dialect: org.hibernate.dialect.MySQL5Dialect
-        ddl-auto: validate
-        naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
-        enable-lazy-load-no-trans: true
   jersey:
     type: filter
   security:
index e33d749..fe2b1aa 100644 (file)
@@ -73,6 +73,8 @@ spec:
             - name: MYSQL_ADDR
               value: "{{ .Values.global.config.dbServiceName }}:{{ .Values.global.config.dbPort }}"
           volumeMounts:
+          - name: {{ include "common.fullname" . }}-catalog
+            mountPath: /service/vfc/nfvo/catalog/static
           - name: {{ include "common.fullname" . }}-localtime
             mountPath: /etc/localtime
             readOnly: true
@@ -106,6 +108,13 @@ spec:
             mountPath: /usr/share/filebeat/data
 
       volumes:
+        - name: {{ include "common.fullname" . }}-catalog
+        {{- if .Values.persistence.enabled }}
+          persistentVolumeClaim:
+            claimName: {{ include "common.fullname" . }}
+        {{- else }}
+          emptyDir: {}
+        {{- end }}
         - name: {{ include "common.fullname" . }}-localtime
           hostPath:
             path: /etc/localtime
diff --git a/kubernetes/vfc/charts/vfc-catalog/templates/pv.yaml b/kubernetes/vfc/charts/vfc-catalog/templates/pv.yaml
new file mode 100644 (file)
index 0000000..d1e1b04
--- /dev/null
@@ -0,0 +1,36 @@
+{{/*
+# 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 -}}
\ No newline at end of file
diff --git a/kubernetes/vfc/charts/vfc-catalog/templates/pvc.yaml b/kubernetes/vfc/charts/vfc-catalog/templates/pvc.yaml
new file mode 100644 (file)
index 0000000..74ba690
--- /dev/null
@@ -0,0 +1,47 @@
+{{/*
+# 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 -}}
\ No newline at end of file
index b4a8cb5..fc6cf4e 100644 (file)
@@ -60,6 +60,27 @@ readiness:
   initialDelaySeconds: 10
   periodSeconds: 10
 
+## Persist data to a persitent volume
+persistence:
+  enabled: true
+  ## A manually managed Persistent Volume and Claim
+  ## Requires persistence.enabled: true
+  ## If defined, PVC must be created manually before volume will be bound
+  # existingClaim:
+  volumeReclaimPolicy: Retain
+  ## database data Persistent Volume Storage Class
+  ## If defined, storageClassName: <storageClass>
+  ## If set to "-", storageClassName: "", which disables dynamic provisioning
+  ## If undefined (the default) or set to null, no storageClassName spec is
+  ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
+  ##   GKE, AWS & OpenStack)
+  ##
+  # storageClass: "-"
+  accessMode: ReadWriteMany
+  size: 2Gi
+  mountPath: /dockerdata-nfs
+  mountSubPath: vfc/catalog
+
 service:
   type: ClusterIP
   name: vfc-catalog
index c19a844..00eae1e 100644 (file)
@@ -18,6 +18,8 @@ global:
     msbPort: 80
     dbServiceName: vfc-db
     dbPort: 3306
+  persistence:
+    mountPath: /dockerdata-nfs
 
 # application configuration
 config:
index aff9f5b..ba6adc0 100644 (file)
@@ -17,6 +17,11 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-confd
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/mariadb/conf.d/*").AsConfig . | indent 2 }}
 ---
@@ -26,6 +31,11 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-externalconfig
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
   my_extra.cnf: |-
    [mysqld]
index cae46b4..2217858 100644 (file)
@@ -17,6 +17,11 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-log-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/log/vid/*").AsConfig . | indent 2 }}
 ---
@@ -25,6 +30,11 @@ kind: ConfigMap
 metadata:
   name: {{ include "common.fullname" . }}-filebeat-configmap
   namespace: {{ include "common.namespace" . }}
+  labels:
+    app: {{ include "common.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
 data:
 {{ tpl (.Files.Glob "resources/config/log/filebeat/*").AsConfig . | indent 2 }}
 ---