summaryrefslogtreecommitdiffstats
path: root/kubernetes/pomba/charts
diff options
context:
space:
mode:
Diffstat (limited to 'kubernetes/pomba/charts')
-rw-r--r--kubernetes/pomba/charts/pomba-aaictxbuilder/Chart.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-aaictxbuilder/requirements.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-aaictxbuilder/resources/config/application.properties2
-rw-r--r--kubernetes/pomba/charts/pomba-aaictxbuilder/values.yaml4
-rw-r--r--kubernetes/pomba/charts/pomba-contextaggregator/Chart.yaml2
-rwxr-xr-xkubernetes/pomba/charts/pomba-contextaggregator/requirements.yaml2
-rwxr-xr-xkubernetes/pomba/charts/pomba-contextaggregator/templates/deployment.yaml19
-rwxr-xr-xkubernetes/pomba/charts/pomba-contextaggregator/values.yaml4
-rw-r--r--kubernetes/pomba/charts/pomba-data-router/Chart.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-data-router/templates/deployment.yaml19
-rw-r--r--kubernetes/pomba/charts/pomba-data-router/values.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-elasticsearch/Chart.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-elasticsearch/requirements.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-kibana/Chart.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-kibana/requirements.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-networkdiscovery/Chart.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-networkdiscovery/requirements.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/application.properties3
-rw-r--r--kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml7
-rw-r--r--kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/Chart.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/requirements.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/values.yaml4
-rw-r--r--kubernetes/pomba/charts/pomba-sdcctxbuilder/Chart.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-sdcctxbuilder/requirements.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-sdcctxbuilder/templates/deployment.yaml18
-rw-r--r--kubernetes/pomba/charts/pomba-sdcctxbuilder/values.yaml4
-rw-r--r--kubernetes/pomba/charts/pomba-sdncctxbuilder/Chart.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-sdncctxbuilder/requirements.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-sdncctxbuilder/resources/config/application.properties4
-rw-r--r--kubernetes/pomba/charts/pomba-search-data/Chart.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-search-data/values.yaml4
-rw-r--r--kubernetes/pomba/charts/pomba-servicedecomposition/Chart.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-servicedecomposition/requirements.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/application.properties3
-rw-r--r--kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/log/logback.xml61
-rw-r--r--kubernetes/pomba/charts/pomba-servicedecomposition/values.yaml6
-rw-r--r--kubernetes/pomba/charts/pomba-validation-service/Chart.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-validation-service/requirements.yaml2
-rw-r--r--kubernetes/pomba/charts/pomba-validation-service/resources/bundleconfig/etc/rules/poa-event/default-rules.groovy526
-rw-r--r--kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml20
-rw-r--r--kubernetes/pomba/charts/pomba-validation-service/values.yaml4
41 files changed, 407 insertions, 351 deletions
diff --git a/kubernetes/pomba/charts/pomba-aaictxbuilder/Chart.yaml b/kubernetes/pomba/charts/pomba-aaictxbuilder/Chart.yaml
index f64eb73ba4..7ec60c580c 100644
--- a/kubernetes/pomba/charts/pomba-aaictxbuilder/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-aaictxbuilder/Chart.yaml
@@ -15,4 +15,4 @@
apiVersion: v1
description: ONAP POMBA AAI Context Builder
name: pomba-aaictxbuilder
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-aaictxbuilder/requirements.yaml b/kubernetes/pomba/charts/pomba-aaictxbuilder/requirements.yaml
index cf4086962c..509eaddf3d 100644
--- a/kubernetes/pomba/charts/pomba-aaictxbuilder/requirements.yaml
+++ b/kubernetes/pomba/charts/pomba-aaictxbuilder/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: common
- version: ~3.0.0
+ version: ~4.x-0
repository: '@local'
diff --git a/kubernetes/pomba/charts/pomba-aaictxbuilder/resources/config/application.properties b/kubernetes/pomba/charts/pomba-aaictxbuilder/resources/config/application.properties
index 790707914d..e171d173aa 100644
--- a/kubernetes/pomba/charts/pomba-aaictxbuilder/resources/config/application.properties
+++ b/kubernetes/pomba/charts/pomba-aaictxbuilder/resources/config/application.properties
@@ -43,7 +43,7 @@ aai.readTimeout={{ .Values.config.aaiReadTimeout }}
http.userId={{ .Values.config.httpUserId }}
http.password={{ .Values.config.httpPassword }}
-aai.searchNodeQuery=/aai/v13/search/nodes-query?search-node-type=service-instance&filter=service-instance-id:EQUALS:
+aai.searchNodeQuery=/aai/v13/nodes/service-instance/{0}
#Servlet context parameters
server.context_parameters.p-name=value #context parameter with p-name as key and value as value.
diff --git a/kubernetes/pomba/charts/pomba-aaictxbuilder/values.yaml b/kubernetes/pomba/charts/pomba-aaictxbuilder/values.yaml
index b612389407..f6e13eb482 100644
--- a/kubernetes/pomba/charts/pomba-aaictxbuilder/values.yaml
+++ b/kubernetes/pomba/charts/pomba-aaictxbuilder/values.yaml
@@ -54,14 +54,14 @@ affinity: {}
# probe configuration parameters
liveness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
# necessary to disable liveness probe when setting breakpoints
# in debugger so K8s doesn't restart unresponsive container
enabled: true
readiness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
#Example service definition with external, internal and node ports.
diff --git a/kubernetes/pomba/charts/pomba-contextaggregator/Chart.yaml b/kubernetes/pomba/charts/pomba-contextaggregator/Chart.yaml
index 28bd0ec88a..77182fb07e 100644
--- a/kubernetes/pomba/charts/pomba-contextaggregator/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-contextaggregator/Chart.yaml
@@ -15,4 +15,4 @@
apiVersion: v1
description: ONAP POMBA Context Aggregator
name: pomba-contextaggregator
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-contextaggregator/requirements.yaml b/kubernetes/pomba/charts/pomba-contextaggregator/requirements.yaml
index 896eaf4baa..1d30dfd918 100755
--- a/kubernetes/pomba/charts/pomba-contextaggregator/requirements.yaml
+++ b/kubernetes/pomba/charts/pomba-contextaggregator/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: common
- version: ~3.0.0
+ version: ~4.x-0
repository: '@local' \ No newline at end of file
diff --git a/kubernetes/pomba/charts/pomba-contextaggregator/templates/deployment.yaml b/kubernetes/pomba/charts/pomba-contextaggregator/templates/deployment.yaml
index 33e82ea5dc..cbbe93d63c 100755
--- a/kubernetes/pomba/charts/pomba-contextaggregator/templates/deployment.yaml
+++ b/kubernetes/pomba/charts/pomba-contextaggregator/templates/deployment.yaml
@@ -102,6 +102,20 @@ 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: /opt/app/logs
+
volumes:
- name: localtime
hostPath:
@@ -116,6 +130,11 @@ spec:
configMap:
name: {{ include "common.fullname" . }}-pre-start-configmap
defaultMode: 0777
+ - name: {{ include "common.fullname" . }}-filebeat-conf
+ configMap:
+ name: {{ .Release.Name }}-pomba-filebeat-configmap
+ - name: {{ include "common.fullname" . }}-data-filebeat
+ emptyDir: {}
- name: {{ include "common.fullname" . }}-logs
emptyDir: {}
- name: {{ include "common.fullname" . }}-log-conf
diff --git a/kubernetes/pomba/charts/pomba-contextaggregator/values.yaml b/kubernetes/pomba/charts/pomba-contextaggregator/values.yaml
index d2a0aa1de6..32544219f3 100755
--- a/kubernetes/pomba/charts/pomba-contextaggregator/values.yaml
+++ b/kubernetes/pomba/charts/pomba-contextaggregator/values.yaml
@@ -55,14 +55,14 @@ affinity: {}
# probe configuration parameters
liveness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
# necessary to disable liveness probe when setting breakpoints
# in debugger so K8s doesn't restart unresponsive container
enabled: true
readiness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
enabled: false
diff --git a/kubernetes/pomba/charts/pomba-data-router/Chart.yaml b/kubernetes/pomba/charts/pomba-data-router/Chart.yaml
index 6bc19c5aad..5d91c65360 100644
--- a/kubernetes/pomba/charts/pomba-data-router/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-data-router/Chart.yaml
@@ -14,4 +14,4 @@
apiVersion: v1
description: ONAP POMBA Data-Router
name: pomba-data-router
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-data-router/templates/deployment.yaml b/kubernetes/pomba/charts/pomba-data-router/templates/deployment.yaml
index cb5c210da9..71f3ac2d93 100644
--- a/kubernetes/pomba/charts/pomba-data-router/templates/deployment.yaml
+++ b/kubernetes/pomba/charts/pomba-data-router/templates/deployment.yaml
@@ -127,6 +127,20 @@ spec:
port: {{ .Values.service.internalPort }}
initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
periodSeconds: {{ .Values.readiness.periodSeconds }}
+
+ # 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: /opt/app/logs
+
volumes:
- name: localtime
hostPath:
@@ -142,6 +156,11 @@ spec:
path: data-router.properties
- key: schemaIngest.properties
path: schemaIngest.properties
+ - name: {{ include "common.fullname" . }}-filebeat-conf
+ configMap:
+ name: {{ .Release.Name }}-pomba-filebeat-configmap
+ - name: {{ include "common.fullname" . }}-data-filebeat
+ emptyDir: {}
- name: {{ include "common.fullname" . }}-dynamic-route
configMap:
name: {{ include "common.fullname" . }}-dynamic
diff --git a/kubernetes/pomba/charts/pomba-data-router/values.yaml b/kubernetes/pomba/charts/pomba-data-router/values.yaml
index d92e75c705..5815b9667a 100644
--- a/kubernetes/pomba/charts/pomba-data-router/values.yaml
+++ b/kubernetes/pomba/charts/pomba-data-router/values.yaml
@@ -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
diff --git a/kubernetes/pomba/charts/pomba-elasticsearch/Chart.yaml b/kubernetes/pomba/charts/pomba-elasticsearch/Chart.yaml
index a198fb42fa..e62e7fdeba 100644
--- a/kubernetes/pomba/charts/pomba-elasticsearch/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-elasticsearch/Chart.yaml
@@ -15,4 +15,4 @@
apiVersion: v1
description: ONAP POMBA Elasticsearch
name: pomba-elasticsearch
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-elasticsearch/requirements.yaml b/kubernetes/pomba/charts/pomba-elasticsearch/requirements.yaml
index 896eaf4baa..1d30dfd918 100644
--- a/kubernetes/pomba/charts/pomba-elasticsearch/requirements.yaml
+++ b/kubernetes/pomba/charts/pomba-elasticsearch/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: common
- version: ~3.0.0
+ version: ~4.x-0
repository: '@local' \ No newline at end of file
diff --git a/kubernetes/pomba/charts/pomba-kibana/Chart.yaml b/kubernetes/pomba/charts/pomba-kibana/Chart.yaml
index 667059f147..d732104cbf 100644
--- a/kubernetes/pomba/charts/pomba-kibana/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-kibana/Chart.yaml
@@ -15,4 +15,4 @@
apiVersion: v1
description: ONAP POMBA Kibana
name: pomba-kibana
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-kibana/requirements.yaml b/kubernetes/pomba/charts/pomba-kibana/requirements.yaml
index 896eaf4baa..1d30dfd918 100644
--- a/kubernetes/pomba/charts/pomba-kibana/requirements.yaml
+++ b/kubernetes/pomba/charts/pomba-kibana/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: common
- version: ~3.0.0
+ version: ~4.x-0
repository: '@local' \ No newline at end of file
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/Chart.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/Chart.yaml
index 5ab80a70f4..eb27414348 100644
--- a/kubernetes/pomba/charts/pomba-networkdiscovery/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-networkdiscovery/Chart.yaml
@@ -15,4 +15,4 @@
apiVersion: v1
description: ONAP POMBA Network Discovery
name: pomba-networkdiscovery
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/requirements.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/requirements.yaml
index 8f9493a9a7..1e8f79bc0e 100644
--- a/kubernetes/pomba/charts/pomba-networkdiscovery/requirements.yaml
+++ b/kubernetes/pomba/charts/pomba-networkdiscovery/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: common
- version: ~3.0.0
+ version: ~4.x-0
repository: '@local'
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/application.properties b/kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/application.properties
index a5aeb71ec1..f09dc05980 100644
--- a/kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/application.properties
+++ b/kubernetes/pomba/charts/pomba-networkdiscovery/resources/config/application.properties
@@ -30,9 +30,10 @@ openstack.identity.url ={{ .Values.config.openstackIdentityUrl }}
openstack.identity.user ={{ .Values.config.openstackUserId }}
openstack.identity.password ={{ .Values.config.openstackPassword }}
-openstack.types = vserver, l3-network
+openstack.types = vserver, l3-network, port
openstack.type.vserver.url = {{ .Values.config.openstackTypeVserverUrl }}
openstack.type.l3-network.url = {{ .Values.config.openstackTypeL3NetworkUrl }}
+openstack.type.port.url = {{ .Values.config.openstackTypePortUrl }}
openstack.api.microversion = 2.42
diff --git a/kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml b/kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml
index fdc44298e2..3a50130e24 100644
--- a/kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml
+++ b/kubernetes/pomba/charts/pomba-networkdiscovery/values.yaml
@@ -24,7 +24,7 @@ global:
#################################################################
# application image
repository: nexus3.onap.org:10001
-image: onap/network-discovery:1.4.1-latest
+image: onap/network-discovery:1.5.0-SNAPSHOT-latest
pullPolicy: Always
# flag to enable debugging - application support required
@@ -55,6 +55,7 @@ config:
# Openstack Rest API URLs:
openstackTypeVserverUrl: http://10.69.36.11:8774/v2.1/servers/{0}
openstackTypeL3NetworkUrl: http://10.69.36.11:9696/v2.0/networks/{0}
+ openstackTypePortUrl: http://10.69.36.11:9696/v2.0/ports/{0}
# default number of instances
replicaCount: 1
@@ -65,14 +66,14 @@ affinity: {}
# probe configuration parameters
liveness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
# necessary to disable liveness probe when setting breakpoints
# in debugger so K8s doesn't restart unresponsive container
enabled: true
readiness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
#Example service definition with external, internal and node ports.
diff --git a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/Chart.yaml b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/Chart.yaml
index 1ded7ec8e3..4479e0931f 100644
--- a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/Chart.yaml
@@ -15,4 +15,4 @@
apiVersion: v1
description: ONAP POMBA Network Discovery Context Builder
name: pomba-networkdiscoveryctxbuilder
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/requirements.yaml b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/requirements.yaml
index cf4086962c..509eaddf3d 100644
--- a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/requirements.yaml
+++ b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: common
- version: ~3.0.0
+ version: ~4.x-0
repository: '@local'
diff --git a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/values.yaml b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/values.yaml
index b45c24b9e9..6afe768b14 100644
--- a/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/values.yaml
+++ b/kubernetes/pomba/charts/pomba-networkdiscoveryctxbuilder/values.yaml
@@ -69,14 +69,14 @@ affinity: {}
# probe configuration parameters
liveness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
# necessary to disable liveness probe when setting breakpoints
# in debugger so K8s doesn't restart unresponsive container
enabled: true
readiness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
#Example service definition with external, internal and node ports.
diff --git a/kubernetes/pomba/charts/pomba-sdcctxbuilder/Chart.yaml b/kubernetes/pomba/charts/pomba-sdcctxbuilder/Chart.yaml
index 4a49d84c07..c77e28d19f 100644
--- a/kubernetes/pomba/charts/pomba-sdcctxbuilder/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-sdcctxbuilder/Chart.yaml
@@ -15,4 +15,4 @@
apiVersion: v1
description: ONAP POMBA SDC Context Builder
name: pomba-sdcctxbuilder
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-sdcctxbuilder/requirements.yaml b/kubernetes/pomba/charts/pomba-sdcctxbuilder/requirements.yaml
index 896eaf4baa..1d30dfd918 100644
--- a/kubernetes/pomba/charts/pomba-sdcctxbuilder/requirements.yaml
+++ b/kubernetes/pomba/charts/pomba-sdcctxbuilder/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: common
- version: ~3.0.0
+ version: ~4.x-0
repository: '@local' \ No newline at end of file
diff --git a/kubernetes/pomba/charts/pomba-sdcctxbuilder/templates/deployment.yaml b/kubernetes/pomba/charts/pomba-sdcctxbuilder/templates/deployment.yaml
index 6ae5ee3e4e..247c85fbe3 100644
--- a/kubernetes/pomba/charts/pomba-sdcctxbuilder/templates/deployment.yaml
+++ b/kubernetes/pomba/charts/pomba-sdcctxbuilder/templates/deployment.yaml
@@ -79,6 +79,19 @@ spec:
{{ 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: /opt/app/logs
+
volumes:
- name: localtime
hostPath:
@@ -91,6 +104,11 @@ spec:
- name: {{ include "common.fullname" . }}-log-conf
configMap:
name: {{ include "common.fullname" . }}-log
+ - name: {{ include "common.fullname" . }}-filebeat-conf
+ configMap:
+ name: {{ .Release.Name }}-pomba-filebeat-configmap
+ - name: {{ include "common.fullname" . }}-data-filebeat
+ emptyDir: {}
- name: {{ include "common.fullname" . }}-logs-eelf
emptyDir: {}
imagePullSecrets:
diff --git a/kubernetes/pomba/charts/pomba-sdcctxbuilder/values.yaml b/kubernetes/pomba/charts/pomba-sdcctxbuilder/values.yaml
index 6d90256fd1..bddc349736 100644
--- a/kubernetes/pomba/charts/pomba-sdcctxbuilder/values.yaml
+++ b/kubernetes/pomba/charts/pomba-sdcctxbuilder/values.yaml
@@ -56,14 +56,14 @@ affinity: {}
# probe configuration parameters
liveness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
# necessary to disable liveness probe when setting breakpoints
# in debugger so K8s doesn't restart unresponsive container
enabled: true
readiness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
#Example service definition with external, internal and node ports.
diff --git a/kubernetes/pomba/charts/pomba-sdncctxbuilder/Chart.yaml b/kubernetes/pomba/charts/pomba-sdncctxbuilder/Chart.yaml
index c9dad032aa..2acbe53495 100644
--- a/kubernetes/pomba/charts/pomba-sdncctxbuilder/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-sdncctxbuilder/Chart.yaml
@@ -15,4 +15,4 @@
apiVersion: v1
description: ONAP POMBA SDNC Context Builder
name: pomba-sdncctxbuilder
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-sdncctxbuilder/requirements.yaml b/kubernetes/pomba/charts/pomba-sdncctxbuilder/requirements.yaml
index cf4086962c..509eaddf3d 100644
--- a/kubernetes/pomba/charts/pomba-sdncctxbuilder/requirements.yaml
+++ b/kubernetes/pomba/charts/pomba-sdncctxbuilder/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: common
- version: ~3.0.0
+ version: ~4.x-0
repository: '@local'
diff --git a/kubernetes/pomba/charts/pomba-sdncctxbuilder/resources/config/application.properties b/kubernetes/pomba/charts/pomba-sdncctxbuilder/resources/config/application.properties
index 991c77df7c..455198223c 100644
--- a/kubernetes/pomba/charts/pomba-sdncctxbuilder/resources/config/application.properties
+++ b/kubernetes/pomba/charts/pomba-sdncctxbuilder/resources/config/application.properties
@@ -53,9 +53,7 @@ aai.readTimeout={{ .Values.config.aaiReadTimeout }}
aai.http.userId={{ .Values.config.aaiHttpUserId }}
aai.http.password={{ .Values.config.aaiHttpPassword }}
-aai.searchNodeQuery=/aai/v13/search/nodes-query?search-node-type=service-instance&filter=service-instance-id:EQUALS:
-aai.customerQuery=/aai/v13/business/customers/customer/
-aai.serviceInstancePath=/aai/v13/business/customers/customer/{0}/service-subscriptions/service-subscription/{1}/service-instances/service-instance/{2}
+aai.serviceInstanceQuery=/aai/v13/nodes/service-instance/{0}
# SDNC REST Client Configuration
sdnc.serviceName={{ .Values.config.sdncServiceName }}.{{.Release.Namespace}}
diff --git a/kubernetes/pomba/charts/pomba-search-data/Chart.yaml b/kubernetes/pomba/charts/pomba-search-data/Chart.yaml
index 1895998edb..bd5bdb6a68 100644
--- a/kubernetes/pomba/charts/pomba-search-data/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-search-data/Chart.yaml
@@ -15,4 +15,4 @@
apiVersion: v1
description: ONAP POMBA search-data
name: pomba-search-data
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-search-data/values.yaml b/kubernetes/pomba/charts/pomba-search-data/values.yaml
index 6a3659e82d..7404f71232 100644
--- a/kubernetes/pomba/charts/pomba-search-data/values.yaml
+++ b/kubernetes/pomba/charts/pomba-search-data/values.yaml
@@ -29,14 +29,14 @@ affinity: {}
# probe configuration parameters
liveness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
# necessary to disable liveness probe when setting breakpoints
# in debugger so K8s doesn't restart unresponsive container
enabled: true
readiness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
service:
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/Chart.yaml b/kubernetes/pomba/charts/pomba-servicedecomposition/Chart.yaml
index 98b2e9771c..153e98d105 100644
--- a/kubernetes/pomba/charts/pomba-servicedecomposition/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-servicedecomposition/Chart.yaml
@@ -15,4 +15,4 @@
apiVersion: v1
description: ONAP POMBA Network Discovery Service Decomposition
name: pomba-servicedecomposition
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/requirements.yaml b/kubernetes/pomba/charts/pomba-servicedecomposition/requirements.yaml
index 653f6ac0f1..d64f5a31e1 100644
--- a/kubernetes/pomba/charts/pomba-servicedecomposition/requirements.yaml
+++ b/kubernetes/pomba/charts/pomba-servicedecomposition/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: common
- version: ~3.0.0
+ version: ~4.x-0
repository: '@local'
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/application.properties b/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/application.properties
index 8c7d27cab0..bbf0901449 100644
--- a/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/application.properties
+++ b/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/application.properties
@@ -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.
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/log/logback.xml b/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/log/logback.xml
index 1f00cbddce..3b02684b68 100644
--- a/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/log/logback.xml
+++ b/kubernetes/pomba/charts/pomba-servicedecomposition/resources/config/log/logback.xml
@@ -1,30 +1,31 @@
-<configuration>
- <property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
- <property name="p_lvl" value="%level"/>
- <property name="p_log" value="%logger"/>
- <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
- <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
- <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
- <!-- tabs -->
- <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
- <property name="p_thr" value="%thread"/>
- <property name="pattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <appender name="FILE" class="ch.qos.logback.core.FileAppender">
- <file>output.log</file>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
- <logger level="INFO" name="org.onap.logging.ref.slf4j" additivity="false">
- <appender-ref ref="STDOUT" />
- <appender-ref ref="FILE" />
- </logger>
- <root level="INFO">
- <appender-ref ref="STDOUT" />
- </root>
-</configuration>
+<configuration>
+ <property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
+ <property name="p_lvl" value="%level"/>
+ <property name="p_log" value="%logger"/>
+ <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
+ <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+ <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+ <!-- tabs -->
+ <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+ <property name="p_thr" value="%thread"/>
+ <property name="pattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
+ <appender name="FILE" class="ch.qos.logback.core.FileAppender">
+ <file>logs/EELF/output.log</file>
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
+ <logger level="INFO" name="org.onap.logging.ref.slf4j" additivity="false">
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="FILE" />
+ </logger>
+ <root level="INFO">
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="FILE" />
+ </root>
+</configuration> \ No newline at end of file
diff --git a/kubernetes/pomba/charts/pomba-servicedecomposition/values.yaml b/kubernetes/pomba/charts/pomba-servicedecomposition/values.yaml
index 8923020c98..4d8d496223 100644
--- a/kubernetes/pomba/charts/pomba-servicedecomposition/values.yaml
+++ b/kubernetes/pomba/charts/pomba-servicedecomposition/values.yaml
@@ -24,7 +24,7 @@ global:
#################################################################
# application image
repository: nexus3.onap.org:10001
-image: onap/service-decomposition:1.4.2
+image: onap/service-decomposition:1.5.0-SNAPSHOT-latest
pullPolicy: Always
# flag to enable debugging - application support required
@@ -52,14 +52,14 @@ affinity: {}
# probe configuration parameters
liveness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
# necessary to disable liveness probe when setting breakpoints
# in debugger so K8s doesn't restart unresponsive container
enabled: true
readiness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
#Example service definition with external, internal and node ports.
diff --git a/kubernetes/pomba/charts/pomba-validation-service/Chart.yaml b/kubernetes/pomba/charts/pomba-validation-service/Chart.yaml
index 3fbbb5d8b6..020409da0b 100644
--- a/kubernetes/pomba/charts/pomba-validation-service/Chart.yaml
+++ b/kubernetes/pomba/charts/pomba-validation-service/Chart.yaml
@@ -15,4 +15,4 @@
apiVersion: v1
description: POMBA Validaton-Service
name: pomba-validation-service
-version: 3.0.0
+version: 4.0.0
diff --git a/kubernetes/pomba/charts/pomba-validation-service/requirements.yaml b/kubernetes/pomba/charts/pomba-validation-service/requirements.yaml
index 9f23fac6f8..71fbbc5ce9 100644
--- a/kubernetes/pomba/charts/pomba-validation-service/requirements.yaml
+++ b/kubernetes/pomba/charts/pomba-validation-service/requirements.yaml
@@ -14,5 +14,5 @@
dependencies:
- name: common
- version: ~3.0.0
+ version: ~4.x-0
repository: '@local'
diff --git a/kubernetes/pomba/charts/pomba-validation-service/resources/bundleconfig/etc/rules/poa-event/default-rules.groovy b/kubernetes/pomba/charts/pomba-validation-service/resources/bundleconfig/etc/rules/poa-event/default-rules.groovy
index 877e74c7e0..df75b31eab 100644
--- a/kubernetes/pomba/charts/pomba-validation-service/resources/bundleconfig/etc/rules/poa-event/default-rules.groovy
+++ b/kubernetes/pomba/charts/pomba-validation-service/resources/bundleconfig/etc/rules/poa-event/default-rules.groovy
@@ -25,130 +25,182 @@ 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
+ // NDCB-AAI comparison: P-Interface list
useRule {
- name 'NDCB-AAI-attribute-comparison'
- attributes 'context-list.ndcb.vnfList[*].vfModuleList[*].networkList[*]', 'context-list.aai.vnfList[*].vfModuleList[*].networkList[*]'
+ name 'Attribute-comparison'
+ attributes 'context-list.ndcb.pnfList[*].pInterfaceList[*]', 'context-list.aai.pnfList[*].pInterfaceList[*]'
}
-
+
+
// 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 'Attribute-comparison'
+ attributes 'context-list.sdnc.networkList[*]', 'context-list.aai.networkList[*]'
+ }
+
+ // SDNC-AAI comparison: VNF list
useRule {
- name 'SDNC-AAI-attribute-comparison'
+ 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 +288,126 @@ rule {
}
rule {
- name 'NDCB-AAI-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}"'
- severity 'ERROR'
- attributes 'ndcbItems', '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 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'
+ name '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}"'
+ 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 'sdncItems', 'ndcbItems'
+ 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 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 +443,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
+
+ '''
+}
diff --git a/kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml b/kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml
index df62915b64..d8864e276f 100644
--- a/kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml
+++ b/kubernetes/pomba/charts/pomba-validation-service/templates/deployment.yaml
@@ -85,14 +85,34 @@ spec:
{{ 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: /opt/app/logs
+
volumes:
- name: localtime
hostPath:
path: /etc/localtime
+ - name: {{ include "common.fullname" . }}-filebeat-conf
+ configMap:
+ name: {{ .Release.Name }}-pomba-filebeat-configmap
+ - name: {{ include "common.fullname" . }}-data-filebeat
+ emptyDir: {}
- name: root-config-app-prop
configMap:
name: {{ include "common.fullname" . }}-root-config
defaultMode: 0644
+ - name: {{ include "common.fullname" . }}-logs
+ emptyDir: {}
- name: properties
configMap:
name: {{ include "common.fullname" . }}-config-properties
diff --git a/kubernetes/pomba/charts/pomba-validation-service/values.yaml b/kubernetes/pomba/charts/pomba-validation-service/values.yaml
index 2cb175a265..d0b964e5e3 100644
--- a/kubernetes/pomba/charts/pomba-validation-service/values.yaml
+++ b/kubernetes/pomba/charts/pomba-validation-service/values.yaml
@@ -56,14 +56,14 @@ affinity: {}
# probe configuration parameters
liveness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
# necessary to disable liveness probe when setting breakpoints
# in debugger so K8s doesn't restart unresponsive container
enabled: false
readiness:
- initialDelaySeconds: 10
+ initialDelaySeconds: 30
periodSeconds: 10
enabled: false