[AAI] Make janusgraph caching configurable
[oom.git] / kubernetes / aai / components / aai-traversal / values.yaml
1 # Copyright (c) 2018 Amdocs, Bell Canada, AT&T
2 # Modifications Copyright (c) 2020 Nokia
3 # Modifications Copyright (c) 2021 Orange
4 # Modifications Copyright © 2023 Nordix Foundation
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #       http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17
18 # Default values for traversal.
19 # This is a YAML-formatted file.
20 # Declare variables to be passed into your templates.
21 global: # global defaults
22   nodePortPrefix: 302
23
24   cassandra:
25     #Service Name of the cassandra cluster to connect to.
26     #Override it to aai-cassandra if localCluster is enabled.
27     serviceName: cassandra
28
29   # Specifies a list of jobs to be run
30   jobs:
31     # When enabled, it will create the schema based on oxm and edge rules
32     createSchema:
33       enabled: true
34     # When enabled, it will create the widget models via REST API to haproxy
35     updateQueryData:
36       enabled: true
37     #migration using helm hooks
38     migration:
39       enabled: false
40
41   # Common configuration for resources traversal and graphadmin
42   config:
43     # User information for the admin user in container
44     userId: 1000
45     groupId: 1000
46
47     # Specifies that the cluster connected to a dynamic
48     # cluster being spinned up by kubernetes deployment
49     cluster:
50       cassandra:
51         dynamic: true
52
53     # Specifies if the basic authorization is enabled
54     basic:
55       auth:
56         enabled: true
57         username: AAI
58         passwd: AAI
59
60     # Active spring profiles for the resources microservice
61     profiles:
62       active: production,dmaap
63
64     # Notification event specific properties
65     notification:
66       eventType: AAI-EVENT
67       domain: dev
68
69     # Schema specific properties that include supported versions of api
70     schema:
71       # Specifies if the connection should be one way ssl, two way ssl or no auth
72       service:
73         client: no-auth
74       # Specifies which translator to use if it has schema-service, then it will make a rest request to schema service
75       translator:
76         list: schema-service
77       source:
78         # Specifies which folder to take a look at
79         name: onap
80       uri:
81         # Base URI Path of the application
82         base:
83           path: /aai
84       version:
85         # Current version of the REST API
86         api:
87           default: v28
88         # Specifies which version the depth parameter is configurable
89         depth: v11
90         # List of all the supported versions of the API
91         list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28
92         # Specifies from which version related link should appear
93         related:
94           link: v11
95         # Specifies from which version the app root change happened
96         app:
97           root: v11
98         # Specifies from which version the xml namespace changed
99         namespace:
100           change: v12
101         # Specifies from which version the edge label appeared in API
102         edge:
103           label: v12
104
105     # Specifies which clients should always default to realtime graph connection
106     realtime:
107       clients: SDNC,MSO,SO,robot-ete
108
109 # application image
110 image: onap/aai-traversal:1.12.3
111 pullPolicy: Always
112 restartPolicy: Always
113 flavor: small
114 flavorOverride: small
115 # the minimum number of seconds that a newly created Pod should be ready
116 minReadySeconds: 30
117 updateStrategy:
118   type: RollingUpdate
119   # The number of pods that can be unavailable during the update process
120   maxUnavailable: 0
121   # The number of pods that can be created above the desired amount of pods during an update
122   maxSurge: 1
123
124 api_list:
125   - 11
126   - 12
127   - 13
128   - 14
129   - 15
130   - 16
131   - 17
132   - 18
133   - 19
134
135 aai_enpoints:
136   - name: aai-generic-query
137     url: search/generic-query
138   - name: aai-nodes-query
139     url: search/nodes-query
140   - name: aai-nquery
141     url: query
142
143 # application configuration
144 config:
145   # configure keycloak according to your environment.
146   # don't forget to add keycloak in active profiles above (global.config.profiles)
147   keycloak:
148     host: keycloak.your.domain
149     port: 8180
150     # Specifies a set of users, credentials, roles, and groups
151     realm: aai-traversal
152     # Used by any client application for enabling fine-grained authorization for their protected resources
153     resource: aai-traversal-app
154     # If set to true, additional criteria will be added into traversal query to returns all the vertices that match
155     # the data-owner property with the given role to the user in keycloak
156     multiTenancy:
157       enabled: true
158   janusgraph:
159     caching:
160       # enable when running read-heavy workloads
161       # modifications to graph done by this service/janusgraph instance will immediately invalidate the cache
162       # modifications to graph done by other services (resources) will only be visible
163       # after time specified in db-cache-time
164       enabled: false
165       # Documentation: https://docs.janusgraph.org/operations/cache/#database-level-caching
166       dbCacheTime: 180000 # in milliseconds
167       dbCacheSize: 0.1 # percentage (expressed as a decimal between 0 and 1) of the total heap space available to the JVM running
168       dbCacheCleanWait: 20 # in milliseconds
169
170
171   # Specifies timeout information such as application specific and limits
172   timeout:
173     # If set to true application will timeout for queries taking longer than limit
174     enabled: true
175     # Specifies which apps (X-FromAppId) header should get overridden and (-1) no timeout
176     appspecific: JUNITTESTAPP1,1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAI-FILEGEN-GFPIP,-1
177     # Specifies how long should it wait before timing out the REST request
178     limit: 180000
179
180   # environment variables added to the launch of the image in deployment
181   env:
182     MIN_HEAP_SIZE: "512m"
183     MAX_HEAP_SIZE: "1024m"
184     MAX_METASPACE_SIZE: "512m"
185
186   # Disables the updateQueryData script to run as part of traversal
187   disableUpdateQuery: true
188
189   # Override of the DSL Timeout Limit
190   dslOverride: 'ZV4V7E3N77SKIB6MR9MHQ6M4P6Q99Z7M76RBODA'
191
192   dsl:
193     # Dsl timeout configuration
194     timeout:
195       # Whether or not the dsl is enabled
196       enabled: true
197       # Default time limit of the DSL query
198       limit: 150000
199       # App Specific Timeout Limit for each of the X-FromAppId
200       appspecific:
201         - JUNITTESTAPP1,1
202         - JUNITTESTAPP2,-1
203         - AAI-TOOLS,-1
204         - DCAE-CCS,1200000
205         - DCAES,1200000
206         - VPESAT,-1
207         - AAI-CACHER,-1
208         - VidAaiController,300000
209         - AAI-UI,180000
210
211 persistence:
212   mountPath: /dockerdata-nfs
213   mountSubPath: aai/aai-traversal
214
215 # default number of instances
216 replicaCount: 1
217
218 nodeSelector: {}
219
220 affinity: {}
221
222 # probe configuration parameters
223 liveness:
224   initialDelaySeconds: 60
225   periodSeconds: 60
226   # necessary to disable liveness probe when setting breakpoints
227   # in debugger so K8s doesn't restart unresponsive container
228   enabled: false
229
230 readiness:
231   initialDelaySeconds: 10
232   periodSeconds: 10
233
234 service:
235   type: ClusterIP
236   portName: http
237   internalPort: 8446
238   portName2: tcp-5005
239   internalPort2: 5005
240   portName3: http-traversal
241   internalPort3: 8448
242   terminationGracePeriodSeconds: 120
243   sessionAffinity: None
244
245 ingress:
246   enabled: false
247
248 serviceMesh:
249   authorizationPolicy:
250     authorizedPrincipals:
251       - serviceAccount: aai-read
252       - serviceAccount: consul-read
253
254 # To make logback capping values configurable
255 logback:
256   logToFileEnabled: false
257   maxHistory: 7
258   totalSizeCap: 6GB
259   queueSize: 1000
260
261 accessLogback:
262   livenessAccessLogEnabled: false # false: do not log kubernetes liveness probes
263   logToFileEnabled: false
264   maxHistory: 7
265   totalSizeCap: 6GB
266
267 # Configure resource requests and limits
268 # ref: http://kubernetes.io/docs/user-guide/compute-resources/
269 resources:
270   small:
271     limits:
272       cpu: 2
273       memory: 4Gi
274     requests:
275       cpu: 1
276       memory: 3Gi
277   large:
278     limits:
279       cpu: 4
280       memory: 8Gi
281     requests:
282       cpu: 2
283       memory: 4Gi
284   unlimited: {}
285
286 endpoints:
287   enabled: true
288   health:
289     enabled: true
290   info:
291     enabled: true
292
293 metrics:
294   serviceMonitor:
295     enabled: false
296     targetPort: 8448
297     path: /prometheus
298     basicAuth:
299       enabled: false
300       externalSecretName: mysecretname
301       externalSecretUserKey: login
302       externalSecretPasswordKey: password
303
304     ## Namespace in which Prometheus is running
305     ##
306     # namespace: monitoring
307
308     ## Interval at which metrics should be scraped.
309     ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
310     ##
311     #interval: 30s
312
313     ## Timeout after which the scrape is ended
314     ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
315     ##
316     # scrapeTimeout: 10s
317
318     ## ServiceMonitor selector labels
319     ## ref: https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-configuration
320     ##
321     selector:
322       app: '{{ include "common.name" . }}'
323       chart: '{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}'
324       release: '{{ include "common.release" . }}'
325       heritage: '{{ .Release.Service }}'
326
327     ## RelabelConfigs to apply to samples before scraping
328     ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
329     ## Value is evalued as a template
330     ##
331     relabelings: []
332
333     ## MetricRelabelConfigs to apply to samples before ingestion
334     ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
335     ## Value is evalued as a template
336     ##
337     metricRelabelings: []
338     #  - sourceLabels:
339     #      - "__name__"
340     #    targetLabel: "__name__"
341     #    action: replace
342     #    regex: '(.*)'
343     #    replacement: 'example_prefix_$1'
344
345 #Pods Service Account
346 serviceAccount:
347   nameOverride: aai-traversal
348   roles:
349     - read
350
351 #Log configuration
352 log:
353   path: /var/log/onap
354 logConfigMapNamePrefix: '{{ include "common.fullname" . }}'