aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/aai/components
diff options
context:
space:
mode:
Diffstat (limited to 'kubernetes/aai/components')
-rw-r--r--kubernetes/aai/components/aai-babel/Chart.yaml2
-rw-r--r--kubernetes/aai/components/aai-babel/resources/config/logback.xml2
-rw-r--r--kubernetes/aai/components/aai-babel/templates/deployment.yaml1
-rw-r--r--kubernetes/aai/components/aai-babel/values.yaml7
-rw-r--r--kubernetes/aai/components/aai-graphadmin/Chart.yaml2
-rw-r--r--kubernetes/aai/components/aai-graphadmin/resources/config/application.properties11
-rw-r--r--kubernetes/aai/components/aai-graphadmin/resources/config/janusgraph-realtime.properties35
-rw-r--r--kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml36
-rw-r--r--kubernetes/aai/components/aai-graphadmin/templates/aai-graph-kafka-user.yml32
-rw-r--r--kubernetes/aai/components/aai-graphadmin/templates/deployment.yaml59
-rw-r--r--kubernetes/aai/components/aai-graphadmin/templates/job-copy-db-backup.yaml4
-rw-r--r--kubernetes/aai/components/aai-graphadmin/templates/job-create-db.yaml12
-rw-r--r--kubernetes/aai/components/aai-graphadmin/templates/job-migration.yaml18
-rw-r--r--kubernetes/aai/components/aai-graphadmin/templates/service.yaml26
-rw-r--r--kubernetes/aai/components/aai-graphadmin/values.yaml98
-rw-r--r--kubernetes/aai/components/aai-modelloader/Chart.yaml2
-rw-r--r--kubernetes/aai/components/aai-modelloader/resources/application.properties31
-rw-r--r--kubernetes/aai/components/aai-modelloader/resources/config/log/logback.xml3
-rw-r--r--kubernetes/aai/components/aai-modelloader/templates/configmap.yaml1
-rw-r--r--kubernetes/aai/components/aai-modelloader/templates/deployment.yaml4
-rw-r--r--kubernetes/aai/components/aai-modelloader/values.yaml16
-rw-r--r--kubernetes/aai/components/aai-resources/.helmignore42
-rw-r--r--kubernetes/aai/components/aai-resources/Chart.yaml2
-rw-r--r--kubernetes/aai/components/aai-resources/resources/config/aaiconfig.properties4
-rw-r--r--kubernetes/aai/components/aai-resources/resources/config/application.properties11
-rw-r--r--kubernetes/aai/components/aai-resources/resources/config/janusgraph-realtime.properties32
-rw-r--r--kubernetes/aai/components/aai-resources/resources/config/logback.xml38
-rw-r--r--kubernetes/aai/components/aai-resources/templates/aai-kafka-user.yml32
-rw-r--r--kubernetes/aai/components/aai-resources/templates/deployment.yaml62
-rw-r--r--kubernetes/aai/components/aai-resources/templates/service.yaml38
-rw-r--r--kubernetes/aai/components/aai-resources/values.yaml86
-rw-r--r--kubernetes/aai/components/aai-schema-service/.helmignore42
-rw-r--r--kubernetes/aai/components/aai-schema-service/Chart.yaml2
-rw-r--r--kubernetes/aai/components/aai-schema-service/config/aaiconfig.properties2
-rw-r--r--kubernetes/aai/components/aai-schema-service/config/application.properties2
-rw-r--r--kubernetes/aai/components/aai-schema-service/templates/deployment.yaml33
-rw-r--r--kubernetes/aai/components/aai-schema-service/templates/service.yaml24
-rw-r--r--kubernetes/aai/components/aai-schema-service/values.yaml36
-rw-r--r--kubernetes/aai/components/aai-sparky-be/.helmignore42
-rw-r--r--kubernetes/aai/components/aai-sparky-be/Chart.yaml2
-rw-r--r--kubernetes/aai/components/aai-sparky-be/resources/config/application/application-oxm-schema-prod.properties2
-rw-r--r--kubernetes/aai/components/aai-sparky-be/resources/config/application/application-resources.properties3
-rw-r--r--kubernetes/aai/components/aai-sparky-be/resources/config/application/application-ssl.properties3
-rw-r--r--kubernetes/aai/components/aai-sparky-be/resources/config/application/application.properties54
-rw-r--r--kubernetes/aai/components/aai-sparky-be/resources/config/application/users.config40
-rw-r--r--kubernetes/aai/components/aai-sparky-be/templates/deployment.yaml35
-rw-r--r--kubernetes/aai/components/aai-sparky-be/values.yaml30
-rw-r--r--kubernetes/aai/components/aai-traversal/.helmignore42
-rw-r--r--kubernetes/aai/components/aai-traversal/Chart.yaml2
-rw-r--r--kubernetes/aai/components/aai-traversal/resources/config/aaiconfig.properties2
-rw-r--r--kubernetes/aai/components/aai-traversal/resources/config/application.properties15
-rw-r--r--kubernetes/aai/components/aai-traversal/resources/config/janusgraph-realtime.properties32
-rw-r--r--kubernetes/aai/components/aai-traversal/resources/config/logback.xml38
-rw-r--r--kubernetes/aai/components/aai-traversal/templates/aai-trav-kafka-user.yml32
-rw-r--r--kubernetes/aai/components/aai-traversal/templates/deployment.yaml69
-rw-r--r--kubernetes/aai/components/aai-traversal/templates/job.yaml37
-rw-r--r--kubernetes/aai/components/aai-traversal/templates/service.yaml38
-rw-r--r--kubernetes/aai/components/aai-traversal/values.yaml91
58 files changed, 975 insertions, 524 deletions
diff --git a/kubernetes/aai/components/aai-babel/Chart.yaml b/kubernetes/aai/components/aai-babel/Chart.yaml
index 447b59f573..f305a2287e 100644
--- a/kubernetes/aai/components/aai-babel/Chart.yaml
+++ b/kubernetes/aai/components/aai-babel/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: Babel microservice
name: aai-babel
-version: 13.0.0
+version: 14.0.1
dependencies:
- name: common
diff --git a/kubernetes/aai/components/aai-babel/resources/config/logback.xml b/kubernetes/aai/components/aai-babel/resources/config/logback.xml
index 125731cf6e..686423b31f 100644
--- a/kubernetes/aai/components/aai-babel/resources/config/logback.xml
+++ b/kubernetes/aai/components/aai-babel/resources/config/logback.xml
@@ -131,7 +131,7 @@
<!-- This determines the logging level for 3rd party code -->
<!-- ============================================================================ -->
- <root level="INFO">
+ <root level={{ .Values.log.level.root | upper | quote }}>
<appender-ref ref="asyncEELF" />
<appender-ref ref="asyncEELFDebug" />
<appender-ref ref="AsyncSysOut" />
diff --git a/kubernetes/aai/components/aai-babel/templates/deployment.yaml b/kubernetes/aai/components/aai-babel/templates/deployment.yaml
index 24d34e861c..cb40883365 100644
--- a/kubernetes/aai/components/aai-babel/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-babel/templates/deployment.yaml
@@ -23,6 +23,7 @@ metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
strategy:
type: {{ .Values.updateStrategy.type }}
{{- if (eq "RollingUpdate" .Values.updateStrategy.type) }}
diff --git a/kubernetes/aai/components/aai-babel/values.yaml b/kubernetes/aai/components/aai-babel/values.yaml
index e058d82e46..21cc72291d 100644
--- a/kubernetes/aai/components/aai-babel/values.yaml
+++ b/kubernetes/aai/components/aai-babel/values.yaml
@@ -25,7 +25,7 @@ global: {}
#################################################################
# application image
-image: onap/babel:1.12.3
+image: onap/babel:1.13.2
flavor: small
flavorOverride: small
@@ -33,6 +33,9 @@ flavorOverride: small
# default number of instances
replicaCount: 1
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 2
+
updateStrategy:
type: RollingUpdate
maxUnavailable: 0
@@ -104,4 +107,6 @@ serviceAccount:
#Log configuration
log:
path: /var/log/onap
+ level:
+ root: INFO
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
diff --git a/kubernetes/aai/components/aai-graphadmin/Chart.yaml b/kubernetes/aai/components/aai-graphadmin/Chart.yaml
index 69abea193f..c0bcbfd074 100644
--- a/kubernetes/aai/components/aai-graphadmin/Chart.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/Chart.yaml
@@ -22,7 +22,7 @@
apiVersion: v2
description: ONAP AAI GraphAdmin
name: aai-graphadmin
-version: 13.0.0
+version: 14.0.2
dependencies:
- name: common
diff --git a/kubernetes/aai/components/aai-graphadmin/resources/config/application.properties b/kubernetes/aai/components/aai-graphadmin/resources/config/application.properties
index b63cd83158..83689da093 100644
--- a/kubernetes/aai/components/aai-graphadmin/resources/config/application.properties
+++ b/kubernetes/aai/components/aai-graphadmin/resources/config/application.properties
@@ -55,8 +55,15 @@ server.ssl.enabled=false
# JMS bind address host port
jms.bind.address=tcp://localhost:61649
-dmaap.ribbon.listOfServers=message-router.{{ include "common.namespace" . }}:3904
-dmaap.ribbon.transportType=http
+
+# dmaap is deprecated now kafka is used
+spring.kafka.producer.bootstrap-servers=${BOOTSTRAP_SERVERS}
+spring.kafka.producer.properties.security.protocol=SASL_PLAINTEXT
+spring.kafka.producer.properties.sasl.mechanism=SCRAM-SHA-512
+spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
+spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
+spring.kafka.producer.properties.sasl.jaas.config=${JAAS_CONFIG}
+spring.kafka.producer.retries=3
# Schema related attributes for the oxm and edges
# Any additional schema related attributes should start with prefix schema
diff --git a/kubernetes/aai/components/aai-graphadmin/resources/config/janusgraph-realtime.properties b/kubernetes/aai/components/aai-graphadmin/resources/config/janusgraph-realtime.properties
index 61550e7a57..72c35e6603 100644
--- a/kubernetes/aai/components/aai-graphadmin/resources/config/janusgraph-realtime.properties
+++ b/kubernetes/aai/components/aai-graphadmin/resources/config/janusgraph-realtime.properties
@@ -24,40 +24,35 @@ query.smart-limit=false
storage.backend=cql
storage.hostname={{.Values.global.cassandra.serviceName}}
-storage.cql.keyspace=aaigraph
storage.username={{.Values.global.cassandra.username}}
storage.password={{.Values.global.cassandra.password}}
+storage.cql.keyspace=aaigraph
+storage.cql.local-datacenter={{ .Values.global.cassandra.localDataCenter }}
storage.cql.read-consistency-level=LOCAL_QUORUM
storage.cql.write-consistency-level=LOCAL_QUORUM
storage.cql.replication-factor={{.Values.global.cassandra.replicas}}
storage.cql.only-use-local-consistency-for-system-operations=true
+{{ if .Values.global.cassandra.partitionerName }}
+storage.cql.partitioner-name={{ .Values.global.cassandra.partitionerName }}
+{{ end }}
+
+{{- if .Values.config.janusgraph.cassandraDriver }}
+storage.cql.internal.string-configuration = datastax-java-driver { {{ .Values.config.janusgraph.cassandraDriver.configuration }} }
+{{- end }}
+
{{ else }}
{{ if .Values.global.config.storage }}
storage.backend={{ .Values.global.config.storage.backend }}
-{{ if eq .Values.global.config.storage.backend "cassandra" }}
-
-storage.hostname={{ .Values.global.config.storage.hostname }}
-storage.cassandra.keyspace={{ .Values.global.config.storage.name }}
-
-storage.cassandra.read-consistency-level={{ .Values.global.config.storage.cassandra.readConsistency }}
-storage.cassandra.write-consistency-level={{ .Values.global.config.storage.cassandra.writeConsistency }}
-storage.cassandra.replication-factor={{ .Values.global.config.storage.cassandra.replicationFactor | int }}
-storage.cassandra.astyanax.cluster-name= {{ .Values.global.config.storage.clusterName }}
-storage.cassandra.astyanax.local-datacenter= {{ .Values.global.config.storage.localDataCenter }}
-
-storage.connection-timeout={{ .Values.global.config.storage.connectionTimeout | int }}
-cache.tx-cache-size={{ .Values.global.config.storage.cacheSize | int }}
-log.tx.key-consistent={{ .Values.global.config.storage.keyConsistent }}
-
-{{ else if eq .Values.global.config.storage.backend "cql" }}
+{{ if eq .Values.global.config.storage.backend "cql" }}
storage.hostname={{ .Values.global.config.storage.hostname }}
storage.cql.keyspace={{ .Values.global.config.storage.name }}
+storage.cql.local-datacenter={{ .Values.global.config.storage.localDataCenter }}
storage.cql.read-consistency-level={{ .Values.global.config.storage.cql.readConsistency }}
storage.cql.write-consistency-level={{ .Values.global.config.storage.cql.readConsistency }}
@@ -88,6 +83,10 @@ log.tx.key-consistent={{ .Values.global.config.storage.keyConsistent }}
storage.lock.wait-time=300
# Setting db-cache to false ensure the fastest propagation of changes across servers
-cache.db-cache = false
+cache.db-cache=false
#load graphson file on startup
load.snapshot.file=false
+
+{{ if .Values.config.janusgraph.allowUpgrade }}
+graph.allow-upgrade=true
+{{ end }}
diff --git a/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml b/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml
index fd79f7043a..5825a722ae 100644
--- a/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml
+++ b/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml
@@ -201,13 +201,13 @@
<includeCallerData>true</includeCallerData>
<appender-ref ref="translog"/>
</appender>
- <appender name="dmaapAAIEventConsumer" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <appender name="kafkaAAIEventConsumer" 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>
+ <File>${logDirectory}/kafkaAAIEventConsumer/error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/error.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
</rollingPolicy>
@@ -215,15 +215,15 @@
<pattern>${"errorPattern"}</pattern>
</encoder>
</appender>
- <appender name="dmaapAAIEventConsumerInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <appender name="kafkaAAIEventConsumerInfo" 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/dmaap-transaction.log</File>
+ <File>${logDirectory}/kafkaAAIEventConsumer/kafka-transaction.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/dmaap-transaction.log.%d{yyyy-MM-dd}
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/kafka-transaction.log.%d{yyyy-MM-dd}
</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
@@ -232,15 +232,15 @@
<pattern>${debugPattern}</pattern>
</encoder>
</appender>
- <appender name="dmaapAAIEventConsumerDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <appender name="kafkaAAIEventConsumerDebug" 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>
+ <File>${logDirectory}/kafkaAAIEventConsumer/debug.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
</rollingPolicy>
@@ -248,15 +248,15 @@
<pattern>${debugPattern}</pattern>
</encoder>
</appender>
- <appender name="dmaapAAIEventConsumerMetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <appender name="kafkaAAIEventConsumerMetric" 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>
+ <File>${logDirectory}/kafkaAAIEventConsumer/metrics.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
</rollingPolicy>
@@ -851,7 +851,7 @@
</then>
</if>
- <logger name="org.onap.aai" level="DEBUG" additivity="false">
+ <logger name="org.onap.aai" level={{ .Values.log.level.base | upper | quote }} additivity="false">
<if condition='property("logToFileEnabled").contains("true")'>
<then>
<appender-ref ref="asyncDEBUG"/>
@@ -1035,12 +1035,12 @@
</if>
<appender-ref ref="STDOUT"/>
</logger>
- <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
+ <logger name="org.onap.aai.kafka" level="DEBUG" additivity="false">
<if condition='property("logToFileEnabled").contains("true")'>
<then>
- <appender-ref ref="dmaapAAIEventConsumer"/>
- <appender-ref ref="dmaapAAIEventConsumerDebug"/>
- <appender-ref ref="dmaapAAIEventConsumerMetric"/>
+ <appender-ref ref="kafkaAAIEventConsumer"/>
+ <appender-ref ref="kafkaAAIEventConsumerDebug"/>
+ <appender-ref ref="kafkaAAIEventConsumerMetric"/>
</then>
</if>
<appender-ref ref="STDOUT"/>
@@ -1185,7 +1185,7 @@
</if>
<appender-ref ref="STDOUT"/>
</logger>
- <root level="DEBUG">
+ <root level={{ .Values.log.level.root | upper | quote }}>
<if condition='property("logToFileEnabled").contains("true")'>
<then>
<appender-ref ref="external"/>
diff --git a/kubernetes/aai/components/aai-graphadmin/templates/aai-graph-kafka-user.yml b/kubernetes/aai/components/aai-graphadmin/templates/aai-graph-kafka-user.yml
new file mode 100644
index 0000000000..4e9bf7f7ff
--- /dev/null
+++ b/kubernetes/aai/components/aai-graphadmin/templates/aai-graph-kafka-user.yml
@@ -0,0 +1,32 @@
+{{/*
+# Copyright © 2022-23 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.
+*/}}
+apiVersion: kafka.strimzi.io/v1beta2
+kind: KafkaUser
+metadata:
+ name: {{ include "common.release" . }}-{{ .Values.global.aaiGraphKafkaUser }}
+ labels:
+ strimzi.io/cluster: {{ include "common.release" . }}-strimzi
+spec:
+ authentication:
+ type: scram-sha-512
+ authorization:
+ type: simple
+ acls:
+ - resource:
+ type: topic
+ name: AAI-EVENT
+ operations:
+ - All
diff --git a/kubernetes/aai/components/aai-graphadmin/templates/deployment.yaml b/kubernetes/aai/components/aai-graphadmin/templates/deployment.yaml
index d3d236f2bf..01dc44123c 100644
--- a/kubernetes/aai/components/aai-graphadmin/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/templates/deployment.yaml
@@ -39,6 +39,7 @@ metadata:
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
minReadySeconds: {{ .Values.minReadySeconds }}
strategy:
type: {{ .Values.updateStrategy.type }}
@@ -81,13 +82,9 @@ spec:
{{ else }}
- /app/ready.py
args:
- - --app-name
- {{- if .Values.global.cassandra.localCluster }}
- - aai-cassandra
- {{- else }}
- - cassandra
- {{- end }}
- - --container-name
+ - --service-name
+ - {{ .Values.global.cassandra.serviceName }}
+ - --service-name
- aai-schema-service
{{ end }}
env:
@@ -117,11 +114,26 @@ spec:
- name: LOCAL_GROUP_ID
value: {{ .Values.securityContext.group_id | quote }}
- name: INTERNAL_PORT_1
- value: {{ .Values.service.internalPort | quote }}
+ value: {{ .Values.service.appPort | quote }}
- name: INTERNAL_PORT_2
- value: {{ .Values.service.internalPort2 | quote }}
+ value: {{ .Values.service.debugPort | quote }}
- name: INTERNAL_PORT_3
value: {{ .Values.service.internalPort3 | quote }}
+ - name: BOOTSTRAP_SERVERS
+ value: {{ include "common.release" . }}-strimzi-kafka-bootstrap:9092
+ - name: JAAS_CONFIG
+ valueFrom:
+ secretKeyRef:
+ name: {{ include "common.release" . }}-{{ .Values.global.aaiGraphKafkaUser }}
+ key: sasl.jaas.config
+ {{- if .Values.config.profiling.enabled }}
+ - name: PRE_JVM_ARGS
+ value: '{{ join " " .Values.config.profiling.args }}'
+ {{- end }}
+ {{- if .Values.config.debug.enabled }}
+ - name: POST_JVM_ARGS
+ value: {{ .Values.config.debug.args | quote }}
+ {{- end }}
volumeMounts:
- mountPath: /opt/app/aai-graphadmin/resources/etc/appprops/janusgraph-realtime.properties
name: config
@@ -147,10 +159,16 @@ spec:
name: properties
subPath: application.properties
ports:
- - containerPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.portName }}
- - containerPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.portName2 }}
+ - containerPort: {{ .Values.service.appPort }}
+ name: {{ .Values.service.appPortName }}
+ {{- if .Values.config.debug.enabled }}
+ - containerPort: {{ .Values.service.debugPort }}
+ name: {{ .Values.service.debugPortName }}
+ {{- end }}
+ {{- if .Values.config.profiling.enabled }}
+ - containerPort: {{ .Values.service.profilingPort }}
+ name: {{ .Values.service.profilingPortName }}
+ {{- end }}
- containerPort: {{ .Values.service.internalPort3 }}
name: {{ .Values.service.portName3 }}
lifecycle:
@@ -162,21 +180,22 @@ spec:
- sh
- -c
- |
- while (netstat -an | grep ESTABLISHED | grep -e $INTERNAL_PORT_1 -e $INTERNAL_PORT_2)
- do sleep 10
+ while (netstat -an | grep ESTABLISHED | grep -e $INTERNAL_PORT_1 -e $INTERNAL_PORT_2) do
+ echo "Still active connections. Waiting for active requests to be finished"
+ sleep 3
done
- # disable liveness probe when breakpoints set in debugger
- # so K8s doesn't restart unresponsive container
- {{ if .Values.liveness.enabled }}
+ # disable liveness probe when
+ # debugging.enabled=true or profiling.enabled=true
+ {{- if and .Values.liveness.enabled (not (or .Values.config.debug.enabled .Values.config.profiling.enabled)) }}
livenessProbe:
tcpSocket:
- port: {{ .Values.service.internalPort }}
+ port: {{ .Values.service.appPort }}
initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
periodSeconds: {{ .Values.liveness.periodSeconds }}
{{ end }}
readinessProbe:
tcpSocket:
- port: {{ .Values.service.internalPort }}
+ port: {{ .Values.service.appPort }}
initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
periodSeconds: {{ .Values.readiness.periodSeconds }}
resources: {{ include "common.resources" . | nindent 10 }}
diff --git a/kubernetes/aai/components/aai-graphadmin/templates/job-copy-db-backup.yaml b/kubernetes/aai/components/aai-graphadmin/templates/job-copy-db-backup.yaml
index 85470b42b0..f1178a0a6e 100644
--- a/kubernetes/aai/components/aai-graphadmin/templates/job-copy-db-backup.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/templates/job-copy-db-backup.yaml
@@ -64,7 +64,7 @@ spec:
- command:
- /bin/bash
- -c
- - /app/ready.py --app-name aai-cassandra --timeout 1 || /app/ready.py --app-name cassandra
+ - /app/ready.py --service-name {{ .Values.global.cassandra.serviceName }}
env:
- name: NAMESPACE
valueFrom:
@@ -93,7 +93,7 @@ spec:
- |
{{- if include "common.onServiceMesh" . }}
echo "waiting 15s for istio side cars to be up"; sleep 15s;{{- end }}
- bash docker-entrypoint.sh dataSnapshot.sh;
+ sh docker-entrypoint.sh dataSnapshot.sh;
{{ include "common.serviceMesh.killSidecar" . | indent 11 | trim }}
env:
- name: LOCAL_USER_ID
diff --git a/kubernetes/aai/components/aai-graphadmin/templates/job-create-db.yaml b/kubernetes/aai/components/aai-graphadmin/templates/job-create-db.yaml
index 31f9a5983d..3f5c1d3d19 100644
--- a/kubernetes/aai/components/aai-graphadmin/templates/job-create-db.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/templates/job-create-db.yaml
@@ -58,13 +58,9 @@ spec:
- command:
- /app/ready.py
args:
- - --app-name
- {{- if .Values.global.cassandra.localCluster }}
- - aai-cassandra
- {{- else }}
- - cassandra
- {{- end }}
- - --container-name
+ - --service-name
+ - {{ .Values.global.cassandra.serviceName }}
+ - --service-name
- aai-schema-service
env:
- name: NAMESPACE
@@ -93,7 +89,7 @@ spec:
- |
{{- if include "common.onServiceMesh" . }}
echo "waiting 15s for istio side cars to be up"; sleep 15s;{{- end }}
- bash docker-entrypoint.sh createDBSchema.sh;
+ sh docker-entrypoint.sh createDBSchema.sh;
{{ include "common.serviceMesh.killSidecar" . | indent 11 | trim }}
env:
- name: LOCAL_USER_ID
diff --git a/kubernetes/aai/components/aai-graphadmin/templates/job-migration.yaml b/kubernetes/aai/components/aai-graphadmin/templates/job-migration.yaml
index d4b48e6437..df62d4169c 100644
--- a/kubernetes/aai/components/aai-graphadmin/templates/job-migration.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/templates/job-migration.yaml
@@ -63,13 +63,9 @@ spec:
- command:
- /app/ready.py
args:
- - --app-name
- {{- if .Values.global.cassandra.localCluster }}
- - aai-cassandra
- {{- else }}
- - cassandra
- {{- end }}
- - --container-name
+ - --service-name
+ - {{ .Values.global.cassandra.serviceName }}
+ - --service-name
- aai-schema-service
env:
- name: NAMESPACE
@@ -92,7 +88,7 @@ spec:
args:
- -c
- |
- bash docker-entrypoint.sh dataRestoreFromSnapshot.sh `ls -t /opt/app/aai-graphadmin/logs/data/dataSnapshots|head -1|awk -F".P" '{ print $1 }'`
+ sh docker-entrypoint.sh dataRestoreFromSnapshot.sh `ls -t /opt/app/aai-graphadmin/logs/data/dataSnapshots|head -1|awk -F".P" '{ print $1 }'`
env:
- name: LOCAL_USER_ID
value: {{ .Values.securityContext.user_id | quote }}
@@ -135,7 +131,7 @@ spec:
- |
{{- if include "common.onServiceMesh" . }}
echo "waiting 15s for istio side cars to be up"; sleep 15s;{{- end }}
- bash docker-entrypoint.sh run_Migrations.sh -e UpdateAaiUriIndexMigration --commit --skipPreMigrationSnapShot --runDisabled RebuildAllEdges ;
+ sh docker-entrypoint.sh run_Migrations.sh -e UpdateAaiUriIndexMigration --commit --skipPreMigrationSnapShot --runDisabled RebuildAllEdges ;
{{ include "common.serviceMesh.killSidecar" . | indent 11 | trim }}
env:
- name: LOCAL_USER_ID
@@ -215,7 +211,7 @@ spec:
- command:
- /bin/bash
- -c
- - /app/ready.py --app-name aai-cassandra --timeout 1 || /app/ready.py --app-name cassandra
+ - /app/ready.py --service-name {{ .Values.global.cassandra.serviceName }}
env:
- name: NAMESPACE
valueFrom:
@@ -244,7 +240,7 @@ spec:
- |
{{- if include "common.onServiceMesh" . }}
echo "waiting 15s for istio side cars to be up"; sleep 15s;{{- end }}
- bash docker-entrypoint.sh dataSnapshot.sh
+ sh docker-entrypoint.sh dataSnapshot.sh
{{ include "common.serviceMesh.killSidecar" . | indent 11 | trim }}
env:
- name: LOCAL_USER_ID
diff --git a/kubernetes/aai/components/aai-graphadmin/templates/service.yaml b/kubernetes/aai/components/aai-graphadmin/templates/service.yaml
index e3f7569767..68f1cda815 100644
--- a/kubernetes/aai/components/aai-graphadmin/templates/service.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/templates/service.yaml
@@ -35,28 +35,28 @@ spec:
type: {{ .Values.service.type }}
ports:
{{if eq .Values.service.type "NodePort" -}}
- - port: {{ .Values.service.internalPort }}
+ - port: {{ .Values.service.appPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.portName }}
- targetPort: {{ .Values.service.portName }}
- - port: {{ .Values.service.internalPort2 }}
+ name: {{ .Values.service.appPortName }}
+ targetPort: {{ .Values.service.appPortName }}
+ - port: {{ .Values.service.debugPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.portName2 }}
- targetPort: {{ .Values.service.portName2 }}
+ name: {{ .Values.service.debugPortName }}
+ targetPort: {{ .Values.service.debugPortName }}
- port: {{ .Values.service.internalPort3 }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }}
name: {{ .Values.service.portName3 }}
targetPort: {{ .Values.service.portName3 }}
{{- else -}}
- - port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.portName }}
- targetPort: {{ .Values.service.portName }}
- - port: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.portName2 }}
- targetPort: {{ .Values.service.portName2 }}
+ - port: {{ .Values.service.appPort }}
+ name: {{ .Values.service.appPortName }}
+ targetPort: {{ .Values.service.appPortName }}
+ - port: {{ .Values.service.debugPort }}
+ name: {{ .Values.service.debugPortName }}
+ targetPort: {{ .Values.service.debugPortName }}
- port: {{ .Values.service.internalPort3 }}
name: {{ .Values.service.portName3 }}
- targetPort: {{ .Values.service.portName }}
+ targetPort: {{ .Values.service.appPort }}
{{- end}}
selector:
app: {{ include "common.name" . }}
diff --git a/kubernetes/aai/components/aai-graphadmin/values.yaml b/kubernetes/aai/components/aai-graphadmin/values.yaml
index 8b6b5f906a..acc1ba22f7 100644
--- a/kubernetes/aai/components/aai-graphadmin/values.yaml
+++ b/kubernetes/aai/components/aai-graphadmin/values.yaml
@@ -25,11 +25,15 @@
# Declare variables to be passed into your templates.
global: # global defaults
nodePortPrefix: 302
+ kafkaBootstrap: strimzi-kafka-bootstrap
+ aaiGraphKafkaUser: aai-graph-kafka-user
cassandra:
#This will instantiate AAI cassandra cluster, default:shared cassandra.
localCluster: false
# flag to enable the DB creation via k8ssandra-operator
useOperator: true
+ #Cassandra datacenter name
+ localDataCenter: dc1
initContainers:
enabled: true
jobs:
@@ -39,26 +43,24 @@ global: # global defaults
#migration using helm hooks
migration:
enabled: false
+ duplicates:
+ enabled: false
config:
-
# Specifies that the cluster connected to a dynamic
# cluster being spinned up by kubernetes deployment
cluster:
cassandra:
dynamic: true
-
# Specifies if the basic authorization is enabled
basic:
auth:
enabled: true
username: AAI
passwd: AAI
-
# Notification event specific properties
notification:
eventType: AAI-EVENT
domain: dev
-
# 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
@@ -79,11 +81,11 @@ global: # global defaults
version:
# Current version of the REST API
api:
- default: v28
+ default: v29
# Specifies which version the depth parameter is configurable
depth: v11
# List of all the supported versions of the API
- list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28
+ list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29
# Specifies from which version related link should appear
related:
link: v11
@@ -96,19 +98,22 @@ global: # global defaults
# Specifies from which version the edge label appeared in API
edge:
label: v12
-
# Specifies which clients should always default to realtime graph connection
realtime:
clients: SDNC,-1|MSO,-1|SO,-1|robot-ete,-1
# application image
-image: onap/aai-graphadmin:1.12.3
+image: onap/aai-graphadmin:1.14.6
pullPolicy: Always
restartPolicy: Always
flavor: small
flavorOverride: small
# default number of instances
replicaCount: 1
+
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 2
+
# the minimum number of seconds that a newly created Pod should be ready
minReadySeconds: 30
updateStrategy:
@@ -120,27 +125,30 @@ updateStrategy:
# Configuration for the graphadmin deployment
config:
-
# Specify the profiles for the graphadmin microservice
profiles:
-
- active: dmaap
-
+ active: kafka
+ jaasConfExternalSecret: '{{ include "common.release" . }}-{{ .Values.global.aaiGraphKafkaUser }}'
+ someConfig: graphrandom
# Specifies the timeout limit for the REST API requests
timeout:
enabled: true
limit: 180000
-
- # Default maximum records to fix for the data grooming and dupeTool
+ janusgraph:
+ # temporarily enable this to update the graph storage version
+ # see: https://docs.janusgraph.org/changelog/#upgrade-instructions_9
+ allowUpgrade: true
+ # config override for the cassandra driver
+ # see: https://docs.janusgraph.org/master/configs/configuration-reference/#storagecqlinternal
+ cassandraDriver:
+ configuration: advanced.metadata.schema.debouncer.window = 1 second # Default maximum records to fix for the data grooming and dupeTool
maxFix:
dataGrooming: 150
dupeTool: 25
-
# Default number of sleep minutes for dataGrooming and dupeTool
sleepMinutes:
dataGrooming: 7
dupeTool: 7
-
# Cron specific attributes to be triggered for the graphadmin spring cron tasks
cron:
# Specifies that the data grooming tool which runs duplicates should be enabled
@@ -150,10 +158,8 @@ config:
dataSnapshot:
enabled: true
params: JUST_TAKE_SNAPSHOT
-
# Data cleanup which zips snapshots older than x days and deletes older than y days
dataCleanup:
-
dataGrooming:
enabled: true
# Zips up the dataGrooming files older than 5 days
@@ -172,7 +178,21 @@ config:
lock:
uri:
enabled: false
-
+ # adds jvm args for remote debugging the application
+ debug:
+ enabled: false
+ args: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
+ # adds jvm args for remote profiling the application
+ profiling:
+ enabled: false
+ args:
+ - "-Dcom.sun.management.jmxremote"
+ - "-Dcom.sun.management.jmxremote.ssl=false"
+ - "-Dcom.sun.management.jmxremote.authenticate=false"
+ - "-Dcom.sun.management.jmxremote.local.only=false"
+ - "-Dcom.sun.management.jmxremote.port=9999"
+ - "-Dcom.sun.management.jmxremote.rmi.port=9999"
+ - "-Djava.rmi.server.hostname=127.0.0.1"
nodeSelector: {}
@@ -193,13 +213,15 @@ readiness:
service:
type: ClusterIP
# REST API port for the graphadmin microservice
- portName: http
- internalPort: 8449
- portName2: tcp-5005
- internalPort2: 5005
+ appPortName: http
+ appPort: 8449
+ debugPortName: tcp-5005
+ debugPort: 5005
+ profilingPortName: jxm-9999
+ profilingPort: 9999
portName3: http-graphadmin
internalPort3: 8448
- terminationGracePeriodSeconds: 120
+ terminationGracePeriodSeconds: 45
ingress:
enabled: false
@@ -291,4 +313,32 @@ serviceAccount:
#Log configuration
log:
path: /var/log/onap
+ level:
+ root: DEBUG
+ base: DEBUG
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
+
+#DupeTool cronjob parameters
+dupeToolParams:
+ schedule: "0 8 * * *"
+ userId: "am8383 "
+ nodeType: "complex"
+ timeWindowMinutes: 60
+ autoFix: true
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+ - uid: aai-graph-kafka-user
+ externalSecret: '{{ tpl (default "" .Values.config.jaasConfExternalSecret) . }}'
+ type: genericKV
+ envs:
+ - name: sasl.jaas.config
+ value: '{{ .Values.config.someConfig }}'
+ policy: generate
+kafkaUser:
+ authenticationType: scram-sha-512
+ acls:
+ - name: AAI-EVENT
+ type: topic
+ operations: [Read, Write]
diff --git a/kubernetes/aai/components/aai-modelloader/Chart.yaml b/kubernetes/aai/components/aai-modelloader/Chart.yaml
index 123da099a5..5ce5902869 100644
--- a/kubernetes/aai/components/aai-modelloader/Chart.yaml
+++ b/kubernetes/aai/components/aai-modelloader/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: ONAP AAI modelloader
name: aai-modelloader
-version: 13.0.0
+version: 14.0.1
dependencies:
- name: common
diff --git a/kubernetes/aai/components/aai-modelloader/resources/application.properties b/kubernetes/aai/components/aai-modelloader/resources/application.properties
new file mode 100644
index 0000000000..f910af1cae
--- /dev/null
+++ b/kubernetes/aai/components/aai-modelloader/resources/application.properties
@@ -0,0 +1,31 @@
+# Note that the start.sh script sets the following System Properties
+# We provide default values here for testing purposes
+AJSC_HOME=.
+CONFIG_HOME=appconfig-local
+com.att.eelf.logging.path=src/main/resources
+com.att.eelf.logging.file=logback.xml
+logback.configurationFile=${com.att.eelf.logging.path}/${com.att.eelf.logging.file}
+
+server.port=9500
+#server.ssl.key-store=
+#server.ssl.key-store-password=
+#server.ssl.keyStoreType=
+#server.ssl.keyAlias=
+
+spring.application.name=aai-model-loader
+
+spring.sleuth.enabled={{ .Values.tracing.enabled }}
+spring.zipkin.baseUrl={{ .Values.tracing.collector.baseUrl }}
+spring.sleuth.messaging.jms.enabled=false
+spring.sleuth.trace-id128=true
+spring.sleuth.sampler.probability={{ .Values.tracing.sampling.probability }}
+spring.sleuth.propagation.type=w3c,b3
+spring.sleuth.supports-join=false
+spring.sleuth.web.skip-pattern={{ join "," .Values.tracing.ignorePatterns }}
+
+server.tomcat.threads.max=200
+# The minimum number of threads always kept alive
+server.tomcat.threads.min-spare=25
+
+# Spring Boot logging
+logging.config=${logback.configurationFile}
diff --git a/kubernetes/aai/components/aai-modelloader/resources/config/log/logback.xml b/kubernetes/aai/components/aai-modelloader/resources/config/log/logback.xml
index 129af8f2ac..dd8da5951a 100644
--- a/kubernetes/aai/components/aai-modelloader/resources/config/log/logback.xml
+++ b/kubernetes/aai/components/aai-modelloader/resources/config/log/logback.xml
@@ -163,10 +163,9 @@
<logger name="ch.qos.logback.classic" level="WARN" />
<logger name="ch.qos.logback.core" level="WARN" />
- <root>
+ <root level={{ .Values.log.level.root | upper | quote }}>
<appender-ref ref="asyncEELF" />
<appender-ref ref="AsyncSysOut" />
- <!-- <appender-ref ref="asyncEELFDebug" /> -->
</root>
</configuration>
diff --git a/kubernetes/aai/components/aai-modelloader/templates/configmap.yaml b/kubernetes/aai/components/aai-modelloader/templates/configmap.yaml
index 534fd021da..d3fd509dcd 100644
--- a/kubernetes/aai/components/aai-modelloader/templates/configmap.yaml
+++ b/kubernetes/aai/components/aai-modelloader/templates/configmap.yaml
@@ -26,6 +26,7 @@ metadata:
heritage: {{ .Release.Service }}
data:
{{ tpl (.Files.Glob "resources/config/model-loader.properties").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/application.properties").AsConfig . | indent 2 }}
---
apiVersion: v1
kind: ConfigMap
diff --git a/kubernetes/aai/components/aai-modelloader/templates/deployment.yaml b/kubernetes/aai/components/aai-modelloader/templates/deployment.yaml
index 139c254736..c7d7cbe2fa 100644
--- a/kubernetes/aai/components/aai-modelloader/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-modelloader/templates/deployment.yaml
@@ -35,6 +35,7 @@ metadata:
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
strategy:
type: {{ .Values.updateStrategy.type }}
{{- if (eq "RollingUpdate" .Values.updateStrategy.type) }}
@@ -80,6 +81,9 @@ spec:
- mountPath: /opt/app/model-loader/config/model-loader.properties
subPath: model-loader.properties
name: prop-config
+ - mountPath: /opt/app/model-loader/application.properties
+ subPath: application.properties
+ name: prop-config
- mountPath: {{ .Values.log.path }}
name: logs
- mountPath: /opt/app/model-loader/logback.xml
diff --git a/kubernetes/aai/components/aai-modelloader/values.yaml b/kubernetes/aai/components/aai-modelloader/values.yaml
index aa62f60f00..14b7ccaf13 100644
--- a/kubernetes/aai/components/aai-modelloader/values.yaml
+++ b/kubernetes/aai/components/aai-modelloader/values.yaml
@@ -21,7 +21,7 @@ global: # global defaults
nodePortPrefix: 302
# application image
-image: onap/model-loader:1.12.0
+image: onap/model-loader:1.14.1
pullPolicy: Always
restartPolicy: Always
flavor: small
@@ -41,6 +41,9 @@ kafkaUser:
# default number of instances
replicaCount: 1
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 2
+
updateStrategy:
type: RollingUpdate
maxUnavailable: 0
@@ -79,6 +82,15 @@ resources:
memory: "2Gi"
unlimited: {}
+tracing:
+ enabled: true
+ collector:
+ baseUrl: http://jaeger-collector.istio-system:9411
+ sampling:
+ probability: 1.0 # percentage of requests that are sampled (between 0-1/0%-100%)
+ ignorePatterns:
+ - /aai/util.*
+
#Pods Service Account
serviceAccount:
nameOverride: aai-modelloader
@@ -93,4 +105,6 @@ securityContext:
#Log configuration
log:
path: /var/log/onap
+ level:
+ root: INFO
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
diff --git a/kubernetes/aai/components/aai-resources/.helmignore b/kubernetes/aai/components/aai-resources/.helmignore
index daebc7da77..f0c1319444 100644
--- a/kubernetes/aai/components/aai-resources/.helmignore
+++ b/kubernetes/aai/components/aai-resources/.helmignore
@@ -1,21 +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
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/kubernetes/aai/components/aai-resources/Chart.yaml b/kubernetes/aai/components/aai-resources/Chart.yaml
index 3594492675..c67329d234 100644
--- a/kubernetes/aai/components/aai-resources/Chart.yaml
+++ b/kubernetes/aai/components/aai-resources/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP AAI resources
name: aai-resources
-version: 13.0.1
+version: 14.0.2
dependencies:
- name: common
diff --git a/kubernetes/aai/components/aai-resources/resources/config/aaiconfig.properties b/kubernetes/aai/components/aai-resources/resources/config/aaiconfig.properties
index adabae3ac7..0f6f2923af 100644
--- a/kubernetes/aai/components/aai-resources/resources/config/aaiconfig.properties
+++ b/kubernetes/aai/components/aai-resources/resources/config/aaiconfig.properties
@@ -5,7 +5,7 @@
# ================================================================================
# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
# Modifications Copyright © 2020 Orange
-# Modifications Copyright © 2023 Nordix Foundation
+# Modifications Copyright © 2023 Nordix Foundation
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -97,4 +97,4 @@ aai.graph.checker.task.enabled=true
aai.graph.checker.task.delay=5
# Period, in seconds, between two consecutive executions of the scheduled task, if enabled
-aai.graph.checker.task.period=10 \ No newline at end of file
+aai.graph.checker.task.period=10
diff --git a/kubernetes/aai/components/aai-resources/resources/config/application.properties b/kubernetes/aai/components/aai-resources/resources/config/application.properties
index 1b7bdf8ff6..5762460a02 100644
--- a/kubernetes/aai/components/aai-resources/resources/config/application.properties
+++ b/kubernetes/aai/components/aai-resources/resources/config/application.properties
@@ -58,8 +58,15 @@ server.ssl.enabled=false
# JMS bind address host port
jms.bind.address=tcp://localhost:61647
-dmaap.ribbon.listOfServers=message-router.{{ include "common.namespace" . }}:3904
-dmaap.ribbon.transportType=http
+
+# dmaap is deprecated now kafka is used
+spring.kafka.producer.bootstrap-servers=${BOOTSTRAP_SERVERS}
+spring.kafka.producer.properties.security.protocol=SASL_PLAINTEXT
+spring.kafka.producer.properties.sasl.mechanism=SCRAM-SHA-512
+spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
+spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
+spring.kafka.producer.properties.sasl.jaas.config=${JAAS_CONFIG}
+spring.kafka.producer.retries=3
# Schema related attributes for the oxm and edges
# Any additional schema related attributes should start with prefix schema
diff --git a/kubernetes/aai/components/aai-resources/resources/config/janusgraph-realtime.properties b/kubernetes/aai/components/aai-resources/resources/config/janusgraph-realtime.properties
index 4835560665..36940a8921 100644
--- a/kubernetes/aai/components/aai-resources/resources/config/janusgraph-realtime.properties
+++ b/kubernetes/aai/components/aai-resources/resources/config/janusgraph-realtime.properties
@@ -15,9 +15,6 @@
# 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.
-#
*/}}
query.fast-property=true
@@ -27,40 +24,31 @@ query.smart-limit=false
storage.backend=cql
storage.hostname={{.Values.global.cassandra.serviceName}}
-storage.cql.keyspace=aaigraph
storage.username={{.Values.global.cassandra.username}}
storage.password={{.Values.global.cassandra.password}}
+storage.cql.keyspace=aaigraph
+storage.cql.local-datacenter={{ .Values.global.cassandra.localDataCenter }}
storage.cql.read-consistency-level=LOCAL_QUORUM
storage.cql.write-consistency-level=LOCAL_QUORUM
storage.cql.replication-factor={{.Values.global.cassandra.replicas}}
storage.cql.only-use-local-consistency-for-system-operations=true
+{{ if .Values.global.cassandra.partitionerName }}
+storage.cql.partitioner-name={{ .Values.global.cassandra.partitionerName }}
+{{ end }}
+
{{ else }}
{{ if .Values.global.config.storage }}
storage.backend={{ .Values.global.config.storage.backend }}
-{{ if eq .Values.global.config.storage.backend "cassandra" }}
-
-storage.hostname={{ .Values.global.config.storage.hostname }}
-storage.cassandra.keyspace={{ .Values.global.config.storage.name }}
-
-storage.cassandra.read-consistency-level={{ .Values.global.config.storage.cassandra.readConsistency }}
-storage.cassandra.write-consistency-level={{ .Values.global.config.storage.cassandra.writeConsistency }}
-storage.cassandra.replication-factor={{ .Values.global.config.storage.cassandra.replicationFactor | int }}
-storage.cassandra.astyanax.cluster-name= {{ .Values.global.config.storage.clusterName }}
-storage.cassandra.astyanax.local-datacenter= {{ .Values.global.config.storage.localDataCenter }}
-
-storage.connection-timeout={{ .Values.global.config.storage.connectionTimeout | int }}
-cache.tx-cache-size={{ .Values.global.config.storage.cacheSize | int }}
-log.tx.key-consistent={{ .Values.global.config.storage.keyConsistent }}
-
-{{ else if eq .Values.global.config.storage.backend "cql" }}
+{{ if eq .Values.global.config.storage.backend "cql" }}
storage.hostname={{ .Values.global.config.storage.hostname }}
storage.cql.keyspace={{ .Values.global.config.storage.name }}
+storage.cql.local-datacenter={{ .Values.global.config.storage.localDataCenter }}
storage.cql.read-consistency-level={{ .Values.global.config.storage.cql.readConsistency }}
storage.cql.write-consistency-level={{ .Values.global.config.storage.cql.readConsistency }}
@@ -104,3 +92,7 @@ cache.db-cache-clean-wait={{ .Values.config.janusgraph.caching.dbCacheCleanWait
#load graphson file on startup
load.snapshot.file=false
+
+{{ if .Values.config.janusgraph.allowUpgrade }}
+graph.allow-upgrade=true
+{{ end }}
diff --git a/kubernetes/aai/components/aai-resources/resources/config/logback.xml b/kubernetes/aai/components/aai-resources/resources/config/logback.xml
index b52318500d..441539361f 100644
--- a/kubernetes/aai/components/aai-resources/resources/config/logback.xml
+++ b/kubernetes/aai/components/aai-resources/resources/config/logback.xml
@@ -196,14 +196,14 @@
<appender-ref ref="translog"/>
</appender>
- <appender name="dmaapAAIEventConsumer"
+ <appender name="kafkaAAIEventConsumer"
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>
+ <File>${logDirectory}/kafkaAAIEventConsumer/error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}.zip
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/error.log.%d{yyyy-MM-dd}.zip
</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
@@ -214,16 +214,16 @@
</appender>
- <appender name="dmaapAAIEventConsumerDebug"
+ <appender name="kafkaAAIEventConsumerDebug"
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>
+ <File>${logDirectory}/kafkaAAIEventConsumer/debug.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}.zip
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/debug.log.%d{yyyy-MM-dd}.zip
</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
@@ -232,16 +232,16 @@
<pattern>${debugPattern}</pattern>
</encoder>
</appender>
- <appender name="dmaapAAIEventConsumerInfo"
+ <appender name="kafkaAAIEventConsumerInfo"
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/dmaap-transaction.log</File>
+ <File>${logDirectory}/kafkaAAIEventConsumer/kafka-transaction.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/dmaap-transaction.log.%d{yyyy-MM-dd}.zip
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/kafka-transaction.log.%d{yyyy-MM-dd}.zip
</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
@@ -250,16 +250,16 @@
<pattern>${auditPattern}</pattern>
</encoder>
</appender>
- <appender name="dmaapAAIEventConsumerMetric"
+ <appender name="kafkaAAIEventConsumerMetric"
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>
+ <File>${logDirectory}/kafkaAAIEventConsumer/metrics.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}.zip
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}.zip
</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
@@ -363,7 +363,7 @@
<logger name="org.zookeeper" level="OFF" />
- <logger name="org.onap.aai" level="DEBUG" additivity="false">
+ <logger name="org.onap.aai" level={{ .Values.log.level.base | upper | quote }} additivity="false">
<if condition='property("logToFileEnabled").contains("true")'>
<then>
<appender-ref ref="asyncDEBUG"/>
@@ -395,13 +395,13 @@
<appender-ref ref="asyncMETRIC"/>
</logger>
<logger name="org.onap.aai.aailog.logs.AaiDmaapMetricLog" level="INFO">
- <appender-ref ref="dmaapAAIEventConsumerMetric"/>
+ <appender-ref ref="kafkaAAIEventConsumerMetric"/>
</logger>
<logger name="org.onap.aai.logging.ErrorLogHelper" level="WARN">
<appender-ref ref="asyncERROR"/>
</logger>
<logger name="com.att.nsa.mr" level="INFO">
- <appender-ref ref="dmaapAAIEventConsumerInfo"/>
+ <appender-ref ref="kafkaAAIEventConsumerInfo"/>
</logger>
</then>
</if>
@@ -415,17 +415,17 @@
<appender-ref ref="STDOUT"/>
</logger>
- <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
+ <logger name="org.onap.aai.kafka" level="DEBUG" additivity="false">
<if condition='property("logToFileEnabled").contains("true")'>
<then>
- <appender-ref ref="dmaapAAIEventConsumer"/>
- <appender-ref ref="dmaapAAIEventConsumerDebug"/>
+ <appender-ref ref="kafkaAAIEventConsumer"/>
+ <appender-ref ref="kafkaAAIEventConsumerDebug"/>
</then>
</if>
<appender-ref ref="STDOUT"/>
</logger>
- <root level="DEBUG">
+ <root level={{ .Values.log.level.root | upper | quote }}>
<if condition='property("logToFileEnabled").contains("true")'>
<then>
<appender-ref ref="external"/>
diff --git a/kubernetes/aai/components/aai-resources/templates/aai-kafka-user.yml b/kubernetes/aai/components/aai-resources/templates/aai-kafka-user.yml
new file mode 100644
index 0000000000..6b703e7cdd
--- /dev/null
+++ b/kubernetes/aai/components/aai-resources/templates/aai-kafka-user.yml
@@ -0,0 +1,32 @@
+{{/*
+# Copyright © 2022-23 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.
+*/}}
+apiVersion: kafka.strimzi.io/v1beta2
+kind: KafkaUser
+metadata:
+ name: {{ include "common.release" . }}-{{ .Values.global.aaiKafkaUser }}
+ labels:
+ strimzi.io/cluster: {{ include "common.release" . }}-strimzi
+spec:
+ authentication:
+ type: scram-sha-512
+ authorization:
+ type: simple
+ acls:
+ - resource:
+ type: topic
+ name: AAI-EVENT
+ operations:
+ - All
diff --git a/kubernetes/aai/components/aai-resources/templates/deployment.yaml b/kubernetes/aai/components/aai-resources/templates/deployment.yaml
index bd642f3ed3..f00cb99d21 100644
--- a/kubernetes/aai/components/aai-resources/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-resources/templates/deployment.yaml
@@ -36,6 +36,7 @@ metadata:
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
minReadySeconds: {{ .Values.minReadySeconds }}
strategy:
type: {{ .Values.updateStrategy.type }}
@@ -105,13 +106,9 @@ spec:
- --job-name
- {{ include "common.release" . }}-aai-graphadmin-create-db-schema
{{- else }}
- - --app-name
- {{- if .Values.global.cassandra.localCluster }}
- - aai-cassandra
- {{- else }}
- - cassandra
- {{- end }}
- - --container-name
+ - --service-name
+ - {{ .Values.global.cassandra.serviceName }}
+ - --service-name
- aai-schema-service
{{- end }}
{{- end }}
@@ -134,13 +131,6 @@ spec:
- name: {{ include "common.name" . }}
image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
- command:
- - sh
- args:
- - -c
- - |
- echo "*** actual launch of AAI Resources"
- /bin/bash /opt/app/aai-resources/docker-entrypoint.sh
env:
{{- if .Values.config.env }}
{{- range $key,$value := .Values.config.env }}
@@ -161,11 +151,18 @@ spec:
- name: LOCAL_GROUP_ID
value: {{ .Values.global.config.groupId | quote }}
- name: INTERNAL_PORT_1
- value: {{ .Values.service.internalPort | quote }}
+ value: {{ .Values.service.resourcesPort | quote }}
- name: INTERNAL_PORT_2
- value: {{ .Values.service.internalPort2 | quote }}
+ value: {{ .Values.service.debugPort | quote }}
- name: INTERNAL_PORT_3
- value: {{ .Values.service.internalPort3 | quote }}
+ value: {{ .Values.service.metricsPort | quote }}
+ - name: BOOTSTRAP_SERVERS
+ value: {{ include "common.release" . }}-strimzi-kafka-bootstrap:9092
+ - name: JAAS_CONFIG
+ valueFrom:
+ secretKeyRef:
+ name: {{ include "common.release" . }}-{{ .Values.global.aaiKafkaUser }}
+ key: sasl.jaas.config
volumeMounts:
- mountPath: /opt/app/aai-resources/resources/etc/appprops/janusgraph-realtime.properties
name: {{ include "common.fullname" . }}-config
@@ -194,19 +191,18 @@ spec:
name: {{ include "common.fullname" . }}-config
subPath: application-keycloak.properties
ports:
- - containerPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.portName }}
+ - containerPort: {{ .Values.service.resourcesPort }}
+ name: {{ .Values.service.resourcesPortName }}
{{- if .Values.config.debug.enabled }}
- - containerPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.portName2 }}
+ - containerPort: {{ .Values.service.debugPort }}
+ name: {{ .Values.service.debugPortName }}
{{- end }}
- - containerPort: {{ .Values.service.internalPort3 }}
- name: {{ .Values.service.portName3 }}
+ - containerPort: {{ .Values.service.metricsPort }}
+ name: {{ .Values.service.metricsPortName }}
{{- if .Values.config.profiling.enabled }}
- - containerPort: {{ .Values.service.internalPort4 }}
- name: {{ .Values.service.portName4 }}
+ - containerPort: {{ .Values.service.profilingPort }}
+ name: {{ .Values.service.profilingPortName }}
{{- end }}
-
lifecycle:
# wait for active requests (long-running tasks) to be finished
# Before the SIGTERM is invoked, Kubernetes exposes a preStop hook in the Pod.
@@ -216,16 +212,16 @@ spec:
- sh
- -c
- |
- while (netstat -an | grep ESTABLISHED | grep -e $INTERNAL_PORT_1 -e $INTERNAL_PORT_2)
- do sleep 10
+ while (netstat -an | grep ESTABLISHED | grep -e $INTERNAL_PORT_1)
+ do sleep 3
done
- # disable liveness probe when breakpoints set in debugger
- # so K8s doesn't restart unresponsive container
- {{- if .Values.liveness.enabled }}
+ # disable liveness probe when
+ # debugging.enable=true or profiling.enabled=true
+ {{- if and .Values.liveness.enabled (not (or .Values.config.debug.enabled .Values.config.profiling.enabled)) }}
livenessProbe:
httpGet:
path: /aai/util/echo?action=checkDB
- port: {{ .Values.service.internalPort }}
+ port: {{ .Values.service.resourcesPort }}
scheme: HTTP
httpHeaders:
- name: X-FromAppId
@@ -240,7 +236,7 @@ spec:
readinessProbe:
httpGet:
path: /aai/util/echo?action=checkDB
- port: {{ .Values.service.internalPort }}
+ port: {{ .Values.service.resourcesPort }}
scheme: HTTP
httpHeaders:
- name: X-FromAppId
diff --git a/kubernetes/aai/components/aai-resources/templates/service.yaml b/kubernetes/aai/components/aai-resources/templates/service.yaml
index 0613129aac..308dc052c8 100644
--- a/kubernetes/aai/components/aai-resources/templates/service.yaml
+++ b/kubernetes/aai/components/aai-resources/templates/service.yaml
@@ -29,28 +29,30 @@ spec:
type: {{ .Values.service.type }}
ports:
{{ if eq .Values.service.type "NodePort" -}}
- - port: {{ .Values.service.internalPort }}
+ - port: {{ .Values.service.resourcesPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.portName }}
- targetPort: {{ .Values.service.portName }}
- - port: {{ .Values.service.internalPort2 }}
+ name: {{ .Values.service.resourcesPortName }}
+ targetPort: {{ .Values.service.resourcesPortName }}
+ - port: {{ .Values.service.debugPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.portName2 }}
- targetPort: {{ .Values.service.portName2 }}
- - port: {{ .Values.service.internalPort3 }}
+ name: {{ .Values.service.debugPortName }}
+ targetPort: {{ .Values.service.debugPortName }}
+ - port: {{ .Values.service.metricsPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }}
- name: {{ .Values.service.portName3 }}
- targetPort: {{ .Values.service.portName3 }}
+ name: {{ .Values.service.metricsPortName }}
+ targetPort: {{ .Values.service.metricsPortName }}
{{- else -}}
- - port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.portName }}
- targetPort: {{ .Values.service.portName }}
- - port: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.portName2 }}
- targetPort: {{ .Values.service.portName2 }}
- - port: {{ .Values.service.internalPort3 }}
- name: {{ .Values.service.portName3 }}
- targetPort: {{ .Values.service.portName3 }}
+ - port: {{ .Values.service.resourcesPort }}
+ name: {{ .Values.service.resourcesPortName }}
+ targetPort: {{ .Values.service.resourcesPortName }}
+ {{- if .Values.config.debug.enabled }}
+ - port: {{ .Values.service.debugPort }}
+ name: {{ .Values.service.debugPortName }}
+ targetPort: {{ .Values.service.debugPortName }}
+ {{- end }}
+ - port: {{ .Values.service.metricsPort }}
+ name: {{ .Values.service.metricsPortName }}
+ targetPort: {{ .Values.service.metricsPortName }}
{{- end }}
selector:
app: {{ include "common.name" . }}
diff --git a/kubernetes/aai/components/aai-resources/values.yaml b/kubernetes/aai/components/aai-resources/values.yaml
index b1d32028c2..14ae2debbc 100644
--- a/kubernetes/aai/components/aai-resources/values.yaml
+++ b/kubernetes/aai/components/aai-resources/values.yaml
@@ -20,6 +20,8 @@
# Declare variables to be passed into your templates.
global: # global defaults
nodePortPrefix: 302
+ kafkaBootstrap: strimzi-kafka-bootstrap
+ aaiKafkaUser: aai-kafka-user
cassandra:
#Service Name of the cassandra cluster to connect to.
#Override it to aai-cassandra if localCluster is enabled.
@@ -50,7 +52,7 @@ global: # global defaults
# Active spring profiles for the resources microservice
profiles:
- active: production,dmaap
+ active: production,kafka
# Notification event specific properties
notification:
@@ -75,11 +77,11 @@ global: # global defaults
version:
# Current version of the REST API
api:
- default: v28
+ default: v29
# Specifies which version the depth parameter is configurable
depth: v11
# List of all the supported versions of the API
- list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28
+ list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29
# Specifies from which version related link should appear
related:
link: v11
@@ -96,7 +98,6 @@ global: # global defaults
# Specifies which clients should always default to realtime graph connection
realtime:
clients: SDNC,MSO,SO,robot-ete
-
api_list:
- 11
- 12
@@ -107,6 +108,16 @@ api_list:
- 17
- 18
- 19
+ - 20
+ - 21
+ - 22
+ - 23
+ - 24
+ - 25
+ - 26
+ - 27
+ - 28
+ - 29
aai_enpoints:
- name: aai-cloudInfrastructure
@@ -123,13 +134,17 @@ aai_enpoints:
url: external-system
# application image
-image: onap/aai-resources:1.13.0
+image: onap/aai-resources:1.14.6
pullPolicy: Always
restartPolicy: Always
flavor: small
flavorOverride: small
# default number of instances
replicaCount: 1
+
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 2
+
# the minimum number of seconds that a newly created Pod should be ready
minReadySeconds: 30
updateStrategy:
@@ -160,11 +175,15 @@ config:
# modifications to graph done by this service/janusgraph instance will immediately invalidate the cache
# modifications to graph done by other services (traversal) will only be visible
# after time specified in db-cache-time
- enabled: false
+ enabled: true
# Documentation: https://docs.janusgraph.org/operations/cache/#database-level-caching
dbCacheTime: 180000 # in milliseconds
dbCacheSize: 0.1 # percentage (expressed as a decimal between 0 and 1) of the total heap space available to the JVM running
dbCacheCleanWait: 20 # in milliseconds
+ # temporarily enable this to update the graph storage version
+ # see: https://docs.janusgraph.org/changelog/#upgrade-instructions_9
+ allowUpgrade: true
+
# Specifies crud related operation timeouts and overrides
@@ -190,7 +209,7 @@ config:
# environment variables added to the launch of the image in deployment
env:
MIN_HEAP_SIZE: "512m"
- MAX_HEAP_SIZE: "1024m"
+ MAX_HEAP_SIZE: "2g"
MAX_METASPACE_SIZE: "512m"
# adds jvm args for remote debugging the application
@@ -222,9 +241,7 @@ affinity: {}
liveness:
initialDelaySeconds: 60
periodSeconds: 60
- # necessary to disable liveness probe when setting breakpoints
- # in debugger so K8s doesn't restart unresponsive container
- enabled: false
+ enabled: true
readiness:
initialDelaySeconds: 60
@@ -232,13 +249,15 @@ readiness:
service:
type: ClusterIP
- portName: http
- internalPort: 8447
- portName2: tcp-5005
- internalPort2: 5005
- portName3: http-resources
- internalPort3: 8448
- terminationGracePeriodSeconds: 120
+ resourcesPortName: http
+ resourcesPort: 8447
+ debugPortName: tcp-5005
+ debugPort: 5005
+ metricsPortName: metrics
+ metricsPort: 8448
+ profilingPortName: jmx-9999
+ profilingPort: 9999
+ terminationGracePeriodSeconds: 30
sessionAffinity: None
ingress:
@@ -260,13 +279,6 @@ serviceMesh:
# 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:
@@ -277,10 +289,10 @@ resources:
memory: "3Gi"
large:
limits:
- cpu: "4"
- memory: "8Gi"
+ cpu: "8"
+ memory: "12Gi"
requests:
- cpu: "2"
+ cpu: "4"
memory: "6Gi"
unlimited: {}
@@ -360,6 +372,9 @@ serviceAccount:
#Log configuration
log:
path: /var/log/onap
+ level:
+ root: DEBUG
+ base: DEBUG # base package (org.onap.aai)
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
# To make logback capping values configurable
@@ -374,3 +389,20 @@ accessLogback:
logToFileEnabled: false
maxHistory: 7
totalSizeCap: 1GB
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+ - uid: aai-kafka-user
+ externalSecret: '{{ tpl (default "" .Values.config.jaasConfExternalSecret) . }}'
+ type: genericKV
+ envs:
+ - name: sasl.jaas.config
+ value: '{{ .Values.config.someConfig }}'
+ policy: generate
+kafkaUser:
+ authenticationType: scram-sha-512
+ acls:
+ - name: AAI-EVENT
+ type: topic
+ operations: [Read, Write]
diff --git a/kubernetes/aai/components/aai-schema-service/.helmignore b/kubernetes/aai/components/aai-schema-service/.helmignore
index daebc7da77..f0c1319444 100644
--- a/kubernetes/aai/components/aai-schema-service/.helmignore
+++ b/kubernetes/aai/components/aai-schema-service/.helmignore
@@ -1,21 +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
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/kubernetes/aai/components/aai-schema-service/Chart.yaml b/kubernetes/aai/components/aai-schema-service/Chart.yaml
index 3860826d1b..47064859d5 100644
--- a/kubernetes/aai/components/aai-schema-service/Chart.yaml
+++ b/kubernetes/aai/components/aai-schema-service/Chart.yaml
@@ -18,7 +18,7 @@
apiVersion: v2
description: ONAP AAI Schema Service
name: aai-schema-service
-version: 13.0.0
+version: 14.0.2
dependencies:
- name: common
diff --git a/kubernetes/aai/components/aai-schema-service/config/aaiconfig.properties b/kubernetes/aai/components/aai-schema-service/config/aaiconfig.properties
index 4c620a0028..1cd6335585 100644
--- a/kubernetes/aai/components/aai-schema-service/config/aaiconfig.properties
+++ b/kubernetes/aai/components/aai-schema-service/config/aaiconfig.properties
@@ -4,7 +4,7 @@
# org.onap.aai
# ================================================================================
# Copyright © 2019 AT&T Intellectual Property. All rights reserved.
-# Modifications Copyright © 2023 Nordix Foundation
+# Modifications Copyright © 2023 Nordix Foundation
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/kubernetes/aai/components/aai-schema-service/config/application.properties b/kubernetes/aai/components/aai-schema-service/config/application.properties
index 20dc6bc520..5d55923021 100644
--- a/kubernetes/aai/components/aai-schema-service/config/application.properties
+++ b/kubernetes/aai/components/aai-schema-service/config/application.properties
@@ -1,6 +1,6 @@
{{/*
# Copyright © 2018 Amdocs, Bell Canada, AT&T
-# Modifications Copyright © 2023 Nordix Foundation
+# Modifications Copyright © 2023 Nordix Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/kubernetes/aai/components/aai-schema-service/templates/deployment.yaml b/kubernetes/aai/components/aai-schema-service/templates/deployment.yaml
index 0ecc2b2d80..d4041bed57 100644
--- a/kubernetes/aai/components/aai-schema-service/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-schema-service/templates/deployment.yaml
@@ -35,6 +35,7 @@ metadata:
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
strategy:
type: {{ .Values.updateStrategy.type }}
{{- if (eq "RollingUpdate" .Values.updateStrategy.type) }}
@@ -69,6 +70,14 @@ spec:
value: {{ .Values.securityContext.user_id | quote }}
- name: LOCAL_GROUP_ID
value: {{ .Values.securityContext.group_id | quote }}
+ {{- if .Values.profiling.enabled }}
+ - name: PRE_JVM_ARGS
+ value: '{{ join " " .Values.profiling.args }}'
+ {{- end }}
+ {{- if .Values.debug.enabled }}
+ - name: POST_JAVA_OPTS
+ value: {{ .Values.debug.args | quote }}
+ {{- end }}
volumeMounts:
- mountPath: /opt/app/aai-schema-service/resources/etc/appprops/aaiconfig.properties
name: aaiconfig-conf
@@ -88,22 +97,28 @@ spec:
name: springapp-conf
subPath: application.properties
ports:
- - containerPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.portName }}
- - containerPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.portName2 }}
- # disable liveness probe when breakpoints set in debugger
- # so K8s doesn't restart unresponsive container
- {{ if .Values.liveness.enabled }}
+ - containerPort: {{ .Values.service.appPort }}
+ name: {{ .Values.service.appPortName }}
+ {{- if .Values.debug.enabled }}
+ - containerPort: {{ .Values.service.debugPort }}
+ name: {{ .Values.service.debugPortName }}
+ {{- end }}
+ {{- if .Values.profiling.enabled }}
+ - containerPort: {{ .Values.service.profilingPort }}
+ name: {{ .Values.service.profilingPortName }}
+ {{- end }}
+ # disable liveness probe when
+ # debugging.enabled=true or profiling.enabled=true
+ {{- if and .Values.liveness.enabled (not (or .Values.debug.enabled .Values.profiling.enabled)) }}
livenessProbe:
tcpSocket:
- port: {{ .Values.service.internalPort }}
+ port: {{ .Values.service.appPort }}
initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
periodSeconds: {{ .Values.liveness.periodSeconds }}
{{ end }}
readinessProbe:
tcpSocket:
- port: {{ .Values.service.internalPort }}
+ port: {{ .Values.service.appPort }}
initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
periodSeconds: {{ .Values.readiness.periodSeconds }}
resources: {{ include "common.resources" . | nindent 10 }}
diff --git a/kubernetes/aai/components/aai-schema-service/templates/service.yaml b/kubernetes/aai/components/aai-schema-service/templates/service.yaml
index 79f01d6638..412b62c6fe 100644
--- a/kubernetes/aai/components/aai-schema-service/templates/service.yaml
+++ b/kubernetes/aai/components/aai-schema-service/templates/service.yaml
@@ -29,21 +29,21 @@ spec:
type: {{ .Values.service.type }}
ports:
{{if eq .Values.service.type "NodePort" -}}
- - port: {{ .Values.service.internalPort }}
+ - port: {{ .Values.service.appPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.portName }}
- targetPort: {{ .Values.service.portName }}
- - port: {{ .Values.service.internalPort2 }}
+ name: {{ .Values.service.appPortName }}
+ targetPort: {{ .Values.service.appPortName }}
+ - port: {{ .Values.service.debugPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.portName2 }}
- targetPort: {{ .Values.service.portName2 }}
+ name: {{ .Values.service.debugPortName }}
+ targetPort: {{ .Values.service.debugPortName }}
{{- else -}}
- - port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.portName }}
- targetPort: {{ .Values.service.portName }}
- - port: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.portName2 }}
- targetPort: {{ .Values.service.portName2 }}
+ - port: {{ .Values.service.appPort }}
+ name: {{ .Values.service.appPortName }}
+ targetPort: {{ .Values.service.appPortName }}
+ - port: {{ .Values.service.debugPort }}
+ name: {{ .Values.service.debugPortName }}
+ targetPort: {{ .Values.service.debugPortName }}
{{- end }}
selector:
app: {{ include "common.name" . }}
diff --git a/kubernetes/aai/components/aai-schema-service/values.yaml b/kubernetes/aai/components/aai-schema-service/values.yaml
index ccda86dc0d..12dfaea091 100644
--- a/kubernetes/aai/components/aai-schema-service/values.yaml
+++ b/kubernetes/aai/components/aai-schema-service/values.yaml
@@ -41,11 +41,11 @@ global: # global defaults
version:
# Current version of the REST API
api:
- default: v28
+ default: v29
# Specifies which version the depth parameter is configurable
depth: v11
# List of all the supported versions of the API
- list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28
+ list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29
# Specifies from which version related link should appear
related:
link: v11
@@ -60,13 +60,33 @@ global: # global defaults
label: v12
# application image
-image: onap/aai-schema-service:1.12.3
+image: onap/aai-schema-service:1.12.5
pullPolicy: Always
restartPolicy: Always
flavorOverride: small
# default number of instances
replicaCount: 1
+# adds jvm args for remote debugging the application
+debug:
+ enabled: false
+ args: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
+
+# adds jvm args for remote profiling the application
+profiling:
+ enabled: false
+ args:
+ - "-Dcom.sun.management.jmxremote"
+ - "-Dcom.sun.management.jmxremote.ssl=false"
+ - "-Dcom.sun.management.jmxremote.authenticate=false"
+ - "-Dcom.sun.management.jmxremote.local.only=false"
+ - "-Dcom.sun.management.jmxremote.port=9999"
+ - "-Dcom.sun.management.jmxremote.rmi.port=9999"
+ - "-Djava.rmi.server.hostname=127.0.0.1"
+
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 2
+
updateStrategy:
type: RollingUpdate
maxUnavailable: 0
@@ -90,10 +110,12 @@ readiness:
service:
type: ClusterIP
- portName: http
- internalPort: 8452
- portName2: tcp-5005
- internalPort2: 5005
+ appPortName: http
+ appPort: 8452
+ debugPortName: tcp-5005
+ debugPort: 5005
+ profilingPortName: jmx-9999
+ profilingPort: 9999
ingress:
enabled: false
diff --git a/kubernetes/aai/components/aai-sparky-be/.helmignore b/kubernetes/aai/components/aai-sparky-be/.helmignore
index daebc7da77..f0c1319444 100644
--- a/kubernetes/aai/components/aai-sparky-be/.helmignore
+++ b/kubernetes/aai/components/aai-sparky-be/.helmignore
@@ -1,21 +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
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/kubernetes/aai/components/aai-sparky-be/Chart.yaml b/kubernetes/aai/components/aai-sparky-be/Chart.yaml
index a057002f57..5f05c6d428 100644
--- a/kubernetes/aai/components/aai-sparky-be/Chart.yaml
+++ b/kubernetes/aai/components/aai-sparky-be/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: ONAP AAI sparky-be
name: aai-sparky-be
-version: 13.0.0
+version: 14.0.0
dependencies:
- name: common
diff --git a/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-oxm-schema-prod.properties b/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-oxm-schema-prod.properties
index 178adb80b3..79f48da2aa 100644
--- a/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-oxm-schema-prod.properties
+++ b/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-oxm-schema-prod.properties
@@ -1,6 +1,6 @@
{{/*
# Copyright © 2018 Amdocs, Bell Canada, AT&T
-# Modifications Copyright © 2023 Nordix Foundation
+# Modifications Copyright © 2023 Nordix Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-resources.properties b/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-resources.properties
index e9ed63e76e..e0cf24c40b 100644
--- a/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-resources.properties
+++ b/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-resources.properties
@@ -1,6 +1,6 @@
{{/*
# Copyright © 2018 Amdocs, Bell Canada, AT&T
-# Modifications Copyright © 2023 Nordix Foundation
+# Modifications Copyright © 2023 Nordix Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,4 +19,3 @@ resources.hostname=aai
resources.port=80
resources.authType=HTTP_NOAUTH
-
diff --git a/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-ssl.properties b/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-ssl.properties
index c6e1baac2a..68e1141cb3 100644
--- a/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-ssl.properties
+++ b/kubernetes/aai/components/aai-sparky-be/resources/config/application/application-ssl.properties
@@ -1,5 +1,5 @@
# Copyright © 2018 Amdocs, Bell Canada, AT&T
-# Modifications Copyright © 2023 Nordix Foundation
+# Modifications Copyright © 2023 Nordix Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,4 +16,3 @@
server.port=8000
security.require-ssl=false
server.ssl.enabled=false
-
diff --git a/kubernetes/aai/components/aai-sparky-be/resources/config/application/application.properties b/kubernetes/aai/components/aai-sparky-be/resources/config/application/application.properties
index b5ad6b3f4a..41c41d29b1 100644
--- a/kubernetes/aai/components/aai-sparky-be/resources/config/application/application.properties
+++ b/kubernetes/aai/components/aai-sparky-be/resources/config/application/application.properties
@@ -1,5 +1,5 @@
# Copyright © 2018 Amdocs, Bell Canada, AT&T
-# Modifications Copyright © 2023 Nordix Foundation
+# Modifications Copyright © 2023 Nordix Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -30,3 +30,55 @@ searchservice.hostname={{.Values.global.searchData.serviceName}}
searchservice.port=9509
schema.ingest.file=${CONFIG_HOME}/schemaIngest.properties
+
+# Properties for the SchemaLocationsBean
+# Files named aai_oxm_v*.xml are unpacked here:
+# Schema Version Related Attributes
+schema.uri.base.path=/aai
+# Lists all of the versions in the schema
+schema.version.list=v9,v10,v11,v12,v13,v14
+# Specifies from which version should the depth parameter to default to zero
+schema.version.depth.start=v10
+# Specifies from which version should the related link be displayed in response payload
+schema.version.related.link.start=v10
+# 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=v11
+# Specifies from which version should the namespace be changed
+schema.version.namespace.change.start=v12
+# Specifies from which version should the client start seeing the edge label in payload
+schema.version.edge.label.start=v12
+# Specifies the version that the application should default to
+schema.version.api.default=v14
+# Schema Location Related Attributes
+schema.configuration.location=NA
+# New propterties required by the aai-common - aai-schema-ingest lib as of 1.3.0
+schema.configuration.location=N/A
+schema.nodes.location=${APP_HOME}/onap/oxm
+schema.edges.location=
+# Setting this values to ${oxm.apiVersion} only to ensure the value used exists (we don't use this properties in our application)
+# schema.version.depth.start=${oxm.apiVersion}
+# schema.version.related.link.start=${oxm.apiVersion}
+# schema.version.app.root.start=${oxm.apiVersion}
+# schema.version.namespace.change.start=${oxm.apiVersion}
+# schema.version.edge.label.start=${oxm.apiVersion}
+# Properties required by AAI Schema Service MS
+schema.translator.list=config
+schema.service.base.url=${oxm.schemaServiceBaseUrl}
+schema.service.nodes.endpoint=nodes?version=
+schema.service.edges.endpoint=edgerules?version=
+schema.service.versions.endpoint=versions
+schema.local=true
+schema.filename=mockrequests
+#Default rest client is the two-way-ssl
+#schema.service.client=two-way-ssl
+#Replace the below with the A&AI client key store
+schema.service.ssl.key-store=${oxm.schemaServiceKeystore}
+#Replace the below with the A&AI tomcat trust store
+schema.service.ssl.trust-store=${oxm.schemaServiceTruststore}
+schema.service.ssl.key-store-password=${oxm.schemaServiceKeystorePassword}
+schema.service.ssl.trust-store-password=${oxm.schemaServiceTruststorePassword}
+spring.application.name=sparky
+nodeDir=src/main/resources/schema/onap/oxm/
+edgeDir=src/main/resources/schema/onap/oxm
+schemaIngestPropLoc=src/main/resources/schema/onap/oxm
diff --git a/kubernetes/aai/components/aai-sparky-be/resources/config/application/users.config b/kubernetes/aai/components/aai-sparky-be/resources/config/application/users.config
index ce69e88918..093e7b01fa 100644
--- a/kubernetes/aai/components/aai-sparky-be/resources/config/application/users.config
+++ b/kubernetes/aai/components/aai-sparky-be/resources/config/application/users.config
@@ -1,20 +1,20 @@
-[{
- "orgId": null,
- "managerId": null,
- "firstName": "Demo",
- "middleInitial": null,
- "lastName": "User",
- "phone": null,
- "email": "demo@email.com",
- "hrid": null,
- "orgUserId": "demo",
- "orgCode": null,
- "orgManagerUserId": null,
- "jobTitle": null,
- "loginId": "demo",
- "active": false,
- "roles": [{
- "id": 1,
- "name": "View"
- }]
-}] \ No newline at end of file
+[{
+ "orgId": null,
+ "managerId": null,
+ "firstName": "Demo",
+ "middleInitial": null,
+ "lastName": "User",
+ "phone": null,
+ "email": "demo@email.com",
+ "hrid": null,
+ "orgUserId": "demo",
+ "orgCode": null,
+ "orgManagerUserId": null,
+ "jobTitle": null,
+ "loginId": "demo",
+ "active": false,
+ "roles": [{
+ "id": 1,
+ "name": "View"
+ }]
+}]
diff --git a/kubernetes/aai/components/aai-sparky-be/templates/deployment.yaml b/kubernetes/aai/components/aai-sparky-be/templates/deployment.yaml
index 00e43d2c21..3c0b4b9d92 100644
--- a/kubernetes/aai/components/aai-sparky-be/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-sparky-be/templates/deployment.yaml
@@ -23,6 +23,7 @@ metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
selector: {{- include "common.selectors" . | nindent 4 }}
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
strategy:
type: {{ .Values.updateStrategy.type }}
{{- if (eq "RollingUpdate" .Values.updateStrategy.type) }}
@@ -37,7 +38,7 @@ spec:
- command:
- /app/ready.py
args:
- - --container-name
+ - --service-name
- aai
env:
- name: NAMESPACE
@@ -96,10 +97,34 @@ spec:
- mountPath: /opt/app/sparky/config/logging/logback.xml
name: config
subPath: logback.xml
- ports: {{ include "common.containerPorts" . | nindent 10 }}
- # disable liveness probe when breakpoints set in debugger
- # so K8s doesn't restart unresponsive container
- {{- if eq .Values.liveness.enabled true }}
+ ports:
+ {{- if .Values.debug.enabled }}
+ - containerPort: {{ .Values.debug.port }}
+ name: {{ .Values.debug.portName }}
+ {{- end }}
+ {{- if .Values.profiling.enabled }}
+ - containerPort: {{ .Values.profiling.port }}
+ name: {{ .Values.profiling.portName }}
+ {{- end }}
+ {{ include "common.containerPorts" . | nindent 10 }}
+ env:
+ {{- if .Values.config.env }}
+ {{- range $key,$value := .Values.config.env }}
+ - name: {{ $key | upper | quote}}
+ value: {{ $value | quote}}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.profiling.enabled }}
+ - name: JVM_ARGS
+ value: '{{ join " " .Values.profiling.args }}'
+ {{- end }}
+ {{- if .Values.debug.enabled }}
+ - name: JVM_ARGS
+ value: {{ .Values.debug.args | quote }}
+ {{- end }}
+ # disable liveness probe when
+ # debugging.enabled=true or profiling.enabled=true
+ {{- if and .Values.liveness.enabled (not (or .Values.debug.enabled .Values.profiling.enabled)) }}
livenessProbe:
tcpSocket:
port: {{ .Values.service.internalPort }}
diff --git a/kubernetes/aai/components/aai-sparky-be/values.yaml b/kubernetes/aai/components/aai-sparky-be/values.yaml
index 0a9de51e54..4bb6d4163e 100644
--- a/kubernetes/aai/components/aai-sparky-be/values.yaml
+++ b/kubernetes/aai/components/aai-sparky-be/values.yaml
@@ -1,5 +1,5 @@
-# Copyright (c) 2018 Amdocs, Bell Canada, AT&T
-# Modifications Copyright (c) 2020 Nokia, Orange
+# Copyright © 2018 Amdocs, Bell Canada, AT&T
+# Modifications Copyright © 2020 Nokia, Orange
# Modifications Copyright © 2023 Nordix Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -46,6 +46,8 @@ config:
portalCookieName: UserId
portalAppRoles: ui_view
cookieDecryptorClass: org.onap.aai.sparky.security.BaseCookieDecryptor
+ env:
+ JVM_ARGS: -XX:MaxRAMPercentage=50.0
# ONAP Cookie Processing - During initial development, the following flag, if true, will
# prevent the portal interface's login processing from searching for a user
@@ -53,9 +55,33 @@ config:
portalOnapEnabled: true
#
+# adds jvm args for remote debugging the application
+debug:
+ enabled: false
+ args: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
+ port: 5555
+ portName: debug
+
+# adds jvm args for remote profiling the application
+profiling:
+ enabled: false
+ args:
+ - "-Dcom.sun.management.jmxremote"
+ - "-Dcom.sun.management.jmxremote.ssl=false"
+ - "-Dcom.sun.management.jmxremote.authenticate=false"
+ - "-Dcom.sun.management.jmxremote.local.only=false"
+ - "-Dcom.sun.management.jmxremote.port=9999"
+ - "-Dcom.sun.management.jmxremote.rmi.port=9999"
+ - "-Djava.rmi.server.hostname=127.0.0.1"
+ port: 9999
+ portName: jmx
+
# default number of instances
replicaCount: 1
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 2
+
updateStrategy:
type: RollingUpdate
maxUnavailable: 0
diff --git a/kubernetes/aai/components/aai-traversal/.helmignore b/kubernetes/aai/components/aai-traversal/.helmignore
index daebc7da77..f0c1319444 100644
--- a/kubernetes/aai/components/aai-traversal/.helmignore
+++ b/kubernetes/aai/components/aai-traversal/.helmignore
@@ -1,21 +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
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/kubernetes/aai/components/aai-traversal/Chart.yaml b/kubernetes/aai/components/aai-traversal/Chart.yaml
index 8c77848368..3b2d8b819e 100644
--- a/kubernetes/aai/components/aai-traversal/Chart.yaml
+++ b/kubernetes/aai/components/aai-traversal/Chart.yaml
@@ -17,7 +17,7 @@
apiVersion: v2
description: ONAP AAI traversal
name: aai-traversal
-version: 13.0.0
+version: 14.0.2
dependencies:
- name: common
diff --git a/kubernetes/aai/components/aai-traversal/resources/config/aaiconfig.properties b/kubernetes/aai/components/aai-traversal/resources/config/aaiconfig.properties
index 559166ba8e..c844b3d194 100644
--- a/kubernetes/aai/components/aai-traversal/resources/config/aaiconfig.properties
+++ b/kubernetes/aai/components/aai-traversal/resources/config/aaiconfig.properties
@@ -5,7 +5,7 @@
# ================================================================================
# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
# Modifications Copyright © 2020 Orange
-# Modifications Copyright © 2023 Nordix Foundation
+# Modifications Copyright © 2023 Nordix Foundation
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/kubernetes/aai/components/aai-traversal/resources/config/application.properties b/kubernetes/aai/components/aai-traversal/resources/config/application.properties
index 276dbfe6d7..da2703dd41 100644
--- a/kubernetes/aai/components/aai-traversal/resources/config/application.properties
+++ b/kubernetes/aai/components/aai-traversal/resources/config/application.properties
@@ -1,7 +1,7 @@
{{/*
# Copyright © 2018 Amdocs, Bell Canada, AT&T
# Modifications Copyright © 2020 Orange
-# Modifications Copyright � 2023 Nordix Foundation
+# Modifications Copyright © 2023 Nordix Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -49,8 +49,15 @@ server.ssl.enabled=false
# JMS bind address host port
jms.bind.address=tcp://localhost:61647
-dmaap.ribbon.listOfServers=message-router.{{ include "common.namespace" . }}:3904
-dmaap.ribbon.transportType=http
+
+# dmaap is deprecated now kafka is used
+spring.kafka.producer.bootstrap-servers=${BOOTSTRAP_SERVERS}
+spring.kafka.producer.properties.security.protocol=SASL_PLAINTEXT
+spring.kafka.producer.properties.sasl.mechanism=SCRAM-SHA-512
+spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
+spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
+spring.kafka.producer.properties.sasl.jaas.config=${JAAS_CONFIG}
+spring.kafka.producer.retries=3
# Schema related attributes for the oxm and edges
# Any additional schema related attributes should start with prefix schema
@@ -105,4 +112,4 @@ management.metrics.distribution.sla[http.server.requests]=20ms, 30ms, 40ms, 50ms
#Add common tag for grouping all aai related metrics
management.metrics.tags.group_id=aai
#It is not advisable to use labels to store dimensions with high cardinality. Enable this option only for debug purposes. For more information: https://github.com/micrometer-metrics/micrometer/issues/1584
-scrape.uri.metrics=false \ No newline at end of file
+scrape.uri.metrics=false
diff --git a/kubernetes/aai/components/aai-traversal/resources/config/janusgraph-realtime.properties b/kubernetes/aai/components/aai-traversal/resources/config/janusgraph-realtime.properties
index 4835560665..36940a8921 100644
--- a/kubernetes/aai/components/aai-traversal/resources/config/janusgraph-realtime.properties
+++ b/kubernetes/aai/components/aai-traversal/resources/config/janusgraph-realtime.properties
@@ -15,9 +15,6 @@
# 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.
-#
*/}}
query.fast-property=true
@@ -27,40 +24,31 @@ query.smart-limit=false
storage.backend=cql
storage.hostname={{.Values.global.cassandra.serviceName}}
-storage.cql.keyspace=aaigraph
storage.username={{.Values.global.cassandra.username}}
storage.password={{.Values.global.cassandra.password}}
+storage.cql.keyspace=aaigraph
+storage.cql.local-datacenter={{ .Values.global.cassandra.localDataCenter }}
storage.cql.read-consistency-level=LOCAL_QUORUM
storage.cql.write-consistency-level=LOCAL_QUORUM
storage.cql.replication-factor={{.Values.global.cassandra.replicas}}
storage.cql.only-use-local-consistency-for-system-operations=true
+{{ if .Values.global.cassandra.partitionerName }}
+storage.cql.partitioner-name={{ .Values.global.cassandra.partitionerName }}
+{{ end }}
+
{{ else }}
{{ if .Values.global.config.storage }}
storage.backend={{ .Values.global.config.storage.backend }}
-{{ if eq .Values.global.config.storage.backend "cassandra" }}
-
-storage.hostname={{ .Values.global.config.storage.hostname }}
-storage.cassandra.keyspace={{ .Values.global.config.storage.name }}
-
-storage.cassandra.read-consistency-level={{ .Values.global.config.storage.cassandra.readConsistency }}
-storage.cassandra.write-consistency-level={{ .Values.global.config.storage.cassandra.writeConsistency }}
-storage.cassandra.replication-factor={{ .Values.global.config.storage.cassandra.replicationFactor | int }}
-storage.cassandra.astyanax.cluster-name= {{ .Values.global.config.storage.clusterName }}
-storage.cassandra.astyanax.local-datacenter= {{ .Values.global.config.storage.localDataCenter }}
-
-storage.connection-timeout={{ .Values.global.config.storage.connectionTimeout | int }}
-cache.tx-cache-size={{ .Values.global.config.storage.cacheSize | int }}
-log.tx.key-consistent={{ .Values.global.config.storage.keyConsistent }}
-
-{{ else if eq .Values.global.config.storage.backend "cql" }}
+{{ if eq .Values.global.config.storage.backend "cql" }}
storage.hostname={{ .Values.global.config.storage.hostname }}
storage.cql.keyspace={{ .Values.global.config.storage.name }}
+storage.cql.local-datacenter={{ .Values.global.config.storage.localDataCenter }}
storage.cql.read-consistency-level={{ .Values.global.config.storage.cql.readConsistency }}
storage.cql.write-consistency-level={{ .Values.global.config.storage.cql.readConsistency }}
@@ -104,3 +92,7 @@ cache.db-cache-clean-wait={{ .Values.config.janusgraph.caching.dbCacheCleanWait
#load graphson file on startup
load.snapshot.file=false
+
+{{ if .Values.config.janusgraph.allowUpgrade }}
+graph.allow-upgrade=true
+{{ end }}
diff --git a/kubernetes/aai/components/aai-traversal/resources/config/logback.xml b/kubernetes/aai/components/aai-traversal/resources/config/logback.xml
index 3dc4867f5d..21f48f7c93 100644
--- a/kubernetes/aai/components/aai-traversal/resources/config/logback.xml
+++ b/kubernetes/aai/components/aai-traversal/resources/config/logback.xml
@@ -208,13 +208,13 @@
<includeCallerData>true</includeCallerData>
<appender-ref ref="translog" />
</appender>
- <appender name="dmaapAAIEventConsumer" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <appender name="kafkaAAIEventConsumer" 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>
+ <File>${logDirectory}/kafkaAAIEventConsumer/error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/error.log.%d{yyyy-MM-dd}
</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
@@ -223,15 +223,15 @@
<pattern>${errorPattern}</pattern>
</encoder>
</appender>
- <appender name="dmaapAAIEventConsumerDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <appender name="kafkaAAIEventConsumerDebug" 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>
+ <File>${logDirectory}/kafkaAAIEventConsumer/debug.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
@@ -240,15 +240,15 @@
<pattern>${debugPattern}</pattern>
</encoder>
</appender>
- <appender name="dmaapAAIEventConsumerInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <appender name="kafkaAAIEventConsumerInfo" 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/dmaap-transaction.log</File>
+ <File>${logDirectory}/kafkaAAIEventConsumer/kafka-transaction.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/dmaap-transaction.log.%d{yyyy-MM-dd}
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/kafka-transaction.log.%d{yyyy-MM-dd}
</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
@@ -257,15 +257,15 @@
<pattern>${auditPattern}</pattern>
</encoder>
</appender>
- <appender name="dmaapAAIEventConsumerMetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <appender name="kafkaAAIEventConsumerMetric" 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>
+ <File>${logDirectory}/kafkaAAIEventConsumer/metrics.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
+ <fileNamePattern>${logDirectory}/kafkaAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
</fileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
@@ -332,7 +332,7 @@
<logger name="org.zookeeper" level="OFF" />
- <logger name="org.onap.aai" level="DEBUG" additivity="false">
+ <logger name="org.onap.aai" level={{ .Values.log.level.base | upper | quote }} additivity="false">
<if condition='property("logToFileEnabled").contains("true")'>
<then>
<appender-ref ref="asyncDEBUG" />
@@ -381,7 +381,7 @@
<logger name="org.onap.aai.aailog.logs.AaiDmaapMetricLog" level="INFO" additivity="false">
<if condition='property("logToFileEnabled").contains("true")'>
<then>
- <appender-ref ref="dmaapAAIEventConsumerMetric" />
+ <appender-ref ref="kafkaAAIEventConsumerMetric" />
</then>
</if>
<appender-ref ref="STDOUT" />
@@ -405,11 +405,11 @@
<appender-ref ref="STDOUT" />
</logger>
- <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
+ <logger name="org.onap.aai.kafka" level="DEBUG" additivity="false">
<if condition='property("logToFileEnabled").contains("true")'>
<then>
- <appender-ref ref="dmaapAAIEventConsumer" />
- <appender-ref ref="dmaapAAIEventConsumerDebug" />
+ <appender-ref ref="kafkaAAIEventConsumer" />
+ <appender-ref ref="kafkaAAIEventConsumerDebug" />
</then>
</if>
<appender-ref ref="STDOUT" />
@@ -418,13 +418,13 @@
<logger name="com.att.nsa.mr" level="INFO">
<if condition='property("logToFileEnabled").contains("true")'>
<then>
- <appender-ref ref="dmaapAAIEventConsumerInfo" />
+ <appender-ref ref="kafkaAAIEventConsumerInfo" />
</then>
</if>
<appender-ref ref="STDOUT" />
</logger>
- <root level="DEBUG">
+ <root level={{ .Values.log.level.root | upper | quote }}>
<if condition='property("logToFileEnabled").contains("true")'>
<then>
<appender-ref ref="external" />
diff --git a/kubernetes/aai/components/aai-traversal/templates/aai-trav-kafka-user.yml b/kubernetes/aai/components/aai-traversal/templates/aai-trav-kafka-user.yml
new file mode 100644
index 0000000000..7c6a252315
--- /dev/null
+++ b/kubernetes/aai/components/aai-traversal/templates/aai-trav-kafka-user.yml
@@ -0,0 +1,32 @@
+{{/*
+# Copyright © 2022-23 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.
+*/}}
+apiVersion: kafka.strimzi.io/v1beta2
+kind: KafkaUser
+metadata:
+ name: {{ include "common.release" . }}-{{ .Values.global.aaiTravKafkaUser }}
+ labels:
+ strimzi.io/cluster: {{ include "common.release" . }}-strimzi
+spec:
+ authentication:
+ type: scram-sha-512
+ authorization:
+ type: simple
+ acls:
+ - resource:
+ type: topic
+ name: AAI-EVENT
+ operations:
+ - All
diff --git a/kubernetes/aai/components/aai-traversal/templates/deployment.yaml b/kubernetes/aai/components/aai-traversal/templates/deployment.yaml
index ddbc43b359..d8977520a5 100644
--- a/kubernetes/aai/components/aai-traversal/templates/deployment.yaml
+++ b/kubernetes/aai/components/aai-traversal/templates/deployment.yaml
@@ -1,8 +1,8 @@
{{/*
-# Copyright (c) 2017 Amdocs, Bell Canada
-# Modifications Copyright (c) 2018 AT&T
-# Modifications Copyright (c) 2020 Nokia, Orange
-# Modifications Copyright (c) 2021 Orange
+# Copyright © 2017 Amdocs, Bell Canada
+# Modifications Copyright © 2018 AT&T
+# Modifications Copyright © 2020 Nokia, Orange
+# Modifications Copyright © 2021 Orange
# Modifications Copyright © 2023 Nordix Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -36,6 +36,7 @@ metadata:
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicaCount }}
+ revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
minReadySeconds: {{ .Values.minReadySeconds }}
strategy:
type: {{ .Values.updateStrategy.type }}
@@ -123,13 +124,9 @@ spec:
- --job-name
- {{ include "common.release" . }}-aai-graphadmin-create-db-schema
{{- else }}
- - --app-name
- {{- if .Values.global.cassandra.localCluster }}
- - aai-cassandra
- {{- else }}
- - cassandra
- {{- end }}
- - --container-name
+ - --service-name
+ - {{ .Values.global.cassandra.serviceName }}
+ - --service-name
- aai-schema-service
{{- end }}
{{- end }}
@@ -153,13 +150,6 @@ spec:
- name: {{ include "common.name" . }}
image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
- command:
- - sh
- args:
- - -c
- - |
- echo "*** actual launch of AAI Resources"
- /bin/bash /opt/app/aai-traversal/docker-entrypoint.sh
env:
{{- if .Values.config.env }}
{{- range $key,$value := .Values.config.env }}
@@ -182,11 +172,18 @@ spec:
- name: LOCAL_GROUP_ID
value: {{ .Values.global.config.groupId | quote }}
- name: INTERNAL_PORT_1
- value: {{ .Values.service.internalPort | quote }}
+ value: {{ .Values.service.traversalPort | quote }}
- name: INTERNAL_PORT_2
- value: {{ .Values.service.internalPort2 | quote }}
+ value: {{ .Values.service.debugPort | quote }}
- name: INTERNAL_PORT_3
- value: {{ .Values.service.internalPort3 | quote }}
+ value: {{ .Values.service.metricsPort | quote }}
+ - name: BOOTSTRAP_SERVERS
+ value: {{ include "common.release" . }}-strimzi-kafka-bootstrap:9092
+ - name: JAAS_CONFIG
+ valueFrom:
+ secretKeyRef:
+ name: {{ include "common.release" . }}-{{ .Values.global.aaiTravKafkaUser }}
+ key: sasl.jaas.config
volumeMounts:
- mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-realtime.properties
name: {{ include "common.fullname" . }}-config
@@ -217,20 +214,18 @@ spec:
name: {{ include "common.fullname" . }}-config
subPath: application-keycloak.properties
ports:
- - containerPort: {{ .Values.service.internalPort }}
- name: {{ .Values.service.portName }}
-
+ - containerPort: {{ .Values.service.traversalPort }}
+ name: {{ .Values.service.traversalPortName }}
{{- if .Values.config.debug.enabled }}
- - containerPort: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.portName2 }}
+ - containerPort: {{ .Values.service.debugPort }}
+ name: {{ .Values.service.debugPortName }}
{{- end }}
- - containerPort: {{ .Values.service.internalPort3 }}
- name: {{ .Values.service.portName3 }}
+ - containerPort: {{ .Values.service.metricsPort }}
+ name: {{ .Values.service.metricsPortName }}
{{- if .Values.config.profiling.enabled }}
- - containerPort: {{ .Values.service.internalPort4 }}
- name: {{ .Values.service.portName4 }}
+ - containerPort: {{ .Values.service.profilingPort }}
+ name: {{ .Values.service.profilingPortName }}
{{- end }}
-
lifecycle:
# wait for active requests (long-running tasks) to be finished
# Before the SIGTERM is invoked, Kubernetes exposes a preStop hook in the Pod.
@@ -240,16 +235,16 @@ spec:
- sh
- -c
- |
- while (netstat -an | grep ESTABLISHED | grep -e $INTERNAL_PORT_1 -e $INTERNAL_PORT_2)
+ while (netstat -an | grep ESTABLISHED | grep -e $INTERNAL_PORT_1)
do sleep 10
done
- # disable liveness probe when breakpoints set in debugger
- # so K8s doesn't restart unresponsive container
- {{ if .Values.liveness.enabled }}
+ # disable liveness probe when
+ # debugging.enable=true or profiling.enabled=true
+ {{- if and .Values.liveness.enabled (not (or .Values.config.debug.enabled .Values.config.profiling.enabled)) }}
livenessProbe:
httpGet:
path: /aai/util/echo?action=checkDB
- port: {{ .Values.service.internalPort }}
+ port: {{ .Values.service.traversalPort }}
scheme: HTTP
httpHeaders:
- name: X-FromAppId
@@ -264,7 +259,7 @@ spec:
readinessProbe:
httpGet:
path: /aai/util/echo?action=checkDB
- port: {{ .Values.service.internalPort }}
+ port: {{ .Values.service.traversalPort }}
scheme: HTTP
httpHeaders:
- name: X-FromAppId
diff --git a/kubernetes/aai/components/aai-traversal/templates/job.yaml b/kubernetes/aai/components/aai-traversal/templates/job.yaml
index 06aa4af9ec..3977f827d6 100644
--- a/kubernetes/aai/components/aai-traversal/templates/job.yaml
+++ b/kubernetes/aai/components/aai-traversal/templates/job.yaml
@@ -44,10 +44,13 @@ spec:
name: {{ include "common.name" . }}
spec:
initContainers:
- - command:
+ - name: {{ include "common.name" . }}-readiness
+ image: {{ include "repositoryGenerator.image.readiness" . }}
+ imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+ command:
- /app/ready.py
args:
- - --container-name
+ - --service-name
- aai
env:
- name: NAMESPACE
@@ -55,9 +58,24 @@ spec:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
+ resources:
+ limits:
+ cpu: "100m"
+ memory: "500Mi"
+ requests:
+ cpu: "3m"
+ memory: "20Mi"
+ - name: {{ include "common.name" . }}-wait-for-aai-haproxy
image: {{ include "repositoryGenerator.image.readiness" . }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
- name: {{ include "common.name" . }}-readiness
+ command:
+ - sh
+ - "-c"
+ - |
+ until nc -w10 -z -v aai.{{.Release.Namespace}} 80; do
+ echo "Retrying to reach aai on port 80";
+ sleep 1;
+ done;
resources:
limits:
cpu: "100m"
@@ -70,13 +88,16 @@ spec:
image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
command:
- - bash
+ - sh
- "-c"
- |
- set -x
- if [ ! -d /opt/aai/logroot/AAI-GQ/misc ]; then mkdir -p /opt/aai/logroot/AAI-GQ/misc; fi
- until nc -w10 -z -v aai.{{.Release.Namespace}} 80; do echo "Retrying to reach aai on port 80"; done;
- bash -x /opt/app/aai-traversal/docker-entrypoint.sh install/updateQueryData.sh ;
+ set -x;
+ if [ ! -d /opt/aai/logroot/AAI-GQ/misc ];
+ then mkdir -p /opt/aai/logroot/AAI-GQ/misc;
+ fi
+
+ sh -x /opt/app/aai-traversal/bin/install/updateQueryData.sh ;
+
{{ include "common.serviceMesh.killSidecar" . | indent 11 | trim }}
env:
diff --git a/kubernetes/aai/components/aai-traversal/templates/service.yaml b/kubernetes/aai/components/aai-traversal/templates/service.yaml
index 2fac1e5a42..49ed56306a 100644
--- a/kubernetes/aai/components/aai-traversal/templates/service.yaml
+++ b/kubernetes/aai/components/aai-traversal/templates/service.yaml
@@ -29,28 +29,30 @@ spec:
type: {{ .Values.service.type }}
ports:
{{if eq .Values.service.type "NodePort" -}}
- - port: {{ .Values.service.internalPort }}
+ - port: {{ .Values.service.traversalPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }}
- name: {{ .Values.service.portName }}
- targetPort: {{ .Values.service.portName }}
- - port: {{ .Values.service.internalPort2 }}
+ name: {{ .Values.service.traversalPortName }}
+ targetPort: {{ .Values.service.traversalPortName }}
+ - port: {{ .Values.service.debugPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }}
- name: {{ .Values.service.portName2 }}
- targetPort: {{ .Values.service.portName2 }}
- - port: {{ .Values.service.internalPort3 }}
+ name: {{ .Values.service.debugPortName }}
+ targetPort: {{ .Values.service.debugPortName }}
+ - port: {{ .Values.service.metricsPort }}
nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort3 }}
- name: {{ .Values.service.portName3 }}
- targetPort: {{ .Values.service.portName3 }}
+ name: {{ .Values.service.metricsPortName }}
+ targetPort: {{ .Values.service.metricsPortName }}
{{- else -}}
- - port: {{ .Values.service.internalPort }}
- name: {{ .Values.service.portName }}
- targetPort: {{ .Values.service.portName }}
- - port: {{ .Values.service.internalPort2 }}
- name: {{ .Values.service.portName2 }}
- targetPort: {{ .Values.service.portName2 }}
- - port: {{ .Values.service.internalPort3 }}
- name: {{ .Values.service.portName3 }}
- targetPort: {{ .Values.service.portName3 }}
+ - port: {{ .Values.service.traversalPort }}
+ name: {{ .Values.service.traversalPortName }}
+ targetPort: {{ .Values.service.traversalPortName }}
+ {{- if .Values.config.debug.enabled }}
+ - port: {{ .Values.service.debugPort }}
+ name: {{ .Values.service.debugPortName }}
+ targetPort: {{ .Values.service.debugPortName }}
+ {{- end }}
+ - port: {{ .Values.service.metricsPort }}
+ name: {{ .Values.service.metricsPortName }}
+ targetPort: {{ .Values.service.metricsPortName }}
{{- end }}
selector:
app: {{ include "common.name" . }}
diff --git a/kubernetes/aai/components/aai-traversal/values.yaml b/kubernetes/aai/components/aai-traversal/values.yaml
index aca1ec7731..036a3c96f2 100644
--- a/kubernetes/aai/components/aai-traversal/values.yaml
+++ b/kubernetes/aai/components/aai-traversal/values.yaml
@@ -20,12 +20,14 @@
# Declare variables to be passed into your templates.
global: # global defaults
nodePortPrefix: 302
-
+ kafkaBootstrap: strimzi-kafka-bootstrap
+ aaiTravKafkaUser: aai-trav-kafka-user
cassandra:
#Service Name of the cassandra cluster to connect to.
#Override it to aai-cassandra if localCluster is enabled.
serviceName: cassandra
-
+ # Cassandra datacenter name
+ localDataCenter: dc1
# Specifies a list of jobs to be run
jobs:
# When enabled, it will create the schema based on oxm and edge rules
@@ -59,7 +61,7 @@ global: # global defaults
# Active spring profiles for the resources microservice
profiles:
- active: production,dmaap
+ active: production,kafka
# Notification event specific properties
notification:
@@ -84,11 +86,11 @@ global: # global defaults
version:
# Current version of the REST API
api:
- default: v28
+ default: v29
# Specifies which version the depth parameter is configurable
depth: v11
# List of all the supported versions of the API
- list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28
+ list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28,v29
# Specifies from which version related link should appear
related:
link: v11
@@ -105,9 +107,11 @@ global: # global defaults
# Specifies which clients should always default to realtime graph connection
realtime:
clients: SDNC,MSO,SO,robot-ete
+ jaasConfExternalSecret: '{{ include "common.release" . }}-{{ .Values.global.aaiTravKafkaUser }}'
+ someConfig: random
# application image
-image: onap/aai-traversal:1.12.3
+image: onap/aai-traversal:1.14.6
pullPolicy: Always
restartPolicy: Always
flavor: small
@@ -131,6 +135,16 @@ api_list:
- 17
- 18
- 19
+ - 20
+ - 21
+ - 22
+ - 23
+ - 24
+ - 25
+ - 26
+ - 27
+ - 28
+ - 29
aai_enpoints:
- name: aai-generic-query
@@ -142,6 +156,7 @@ aai_enpoints:
# application configuration
config:
+
# configure keycloak according to your environment.
# don't forget to add keycloak in active profiles above (global.config.profiles)
keycloak:
@@ -159,14 +174,16 @@ config:
caching:
# enable when running read-heavy workloads
# modifications to graph done by this service/janusgraph instance will immediately invalidate the cache
- # modifications to graph done by other services (resources) will only be visible
+ # modifications to graph done by other services (traversal) will only be visible
# after time specified in db-cache-time
- enabled: false
+ enabled: true
# Documentation: https://docs.janusgraph.org/operations/cache/#database-level-caching
dbCacheTime: 180000 # in milliseconds
dbCacheSize: 0.1 # percentage (expressed as a decimal between 0 and 1) of the total heap space available to the JVM running
dbCacheCleanWait: 20 # in milliseconds
-
+ # temporarily enable this to update the graph storage version
+ # see: https://docs.janusgraph.org/changelog/#upgrade-instructions_9
+ allowUpgrade: true
# Specifies timeout information such as application specific and limits
timeout:
@@ -180,8 +197,9 @@ config:
# environment variables added to the launch of the image in deployment
env:
MIN_HEAP_SIZE: "512m"
- MAX_HEAP_SIZE: "1024m"
+ MAX_HEAP_SIZE: "2g"
MAX_METASPACE_SIZE: "512m"
+ # POST_JVM_ARGS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
# adds jvm args for remote debugging the application
debug:
@@ -232,6 +250,9 @@ persistence:
# default number of instances
replicaCount: 1
+# number of ReplicaSets that should be retained for the Deployment
+revisionHistoryLimit: 2
+
nodeSelector: {}
affinity: {}
@@ -240,9 +261,7 @@ affinity: {}
liveness:
initialDelaySeconds: 60
periodSeconds: 60
- # necessary to disable liveness probe when setting breakpoints
- # in debugger so K8s doesn't restart unresponsive container
- enabled: false
+ enabled: true
readiness:
initialDelaySeconds: 10
@@ -250,13 +269,15 @@ readiness:
service:
type: ClusterIP
- portName: http
- internalPort: 8446
- portName2: tcp-5005
- internalPort2: 5005
- portName3: http-traversal
- internalPort3: 8448
- terminationGracePeriodSeconds: 120
+ traversalPortName: http
+ traversalPort: 8446
+ debugPortName: tcp-5005
+ debugPort: 5005
+ metricsPortName: metrics
+ metricsPort: 8448
+ profilingPortName: jmx-9999
+ profilingPort: 9999
+ terminationGracePeriodSeconds: 30
sessionAffinity: None
ingress:
@@ -276,8 +297,8 @@ logback:
queueSize: 1000
accessLogback:
- livenessAccessLogEnabled: false # false: do not log kubernetes liveness probes
logToFileEnabled: false
+ livenessAccessLogEnabled: false # false: do not log kubernetes liveness probes
maxHistory: 7
totalSizeCap: 6GB
@@ -300,6 +321,14 @@ resources:
memory: "4Gi"
unlimited: {}
+tracing:
+ collector:
+ baseUrl: http://jaeger-collector.istio-system:9411
+ sampling:
+ probability: 1.0 # percentage of requests that are sampled (between 0-1/0%-100%)
+ ignorePatterns:
+ - /aai/util.*
+
endpoints:
enabled: true
health:
@@ -368,4 +397,24 @@ serviceAccount:
#Log configuration
log:
path: /var/log/onap
+ level:
+ root: DEBUG
+ base: DEBUG # base package (org.onap.aai)
logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
+#################################################################
+# Secrets metaconfig
+#################################################################
+secrets:
+ - uid: aai-trav-kafka-user
+ externalSecret: '{{ tpl (default "" .Values.config.jaasConfExternalSecret) . }}'
+ type: genericKV
+ envs:
+ - name: sasl.jaas.config
+ value: '{{ .Values.config.someConfig }}'
+ policy: generate
+kafkaUser:
+ authenticationType: scram-sha-512
+ acls:
+ - name: AAI-EVENT
+ type: topic
+ operations: [Read, Write]