329c487ee780ce604f0533cb2efb87da23668c4c
[oom.git] / kubernetes / aai / components / aai-resources / values.yaml
1 # Copyright (c) 2018 Amdocs, Bell Canada, AT&T
2 # Copyright (c) 2020 Nokia, Orange
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 resources.
19 # This is a YAML-formatted file.
20 # Declare variables to be passed into your templates.
21 global: # global defaults
22   nodePortPrefix: 302
23   kafkaBootstrap: strimzi-kafka-bootstrap
24   aaiKafkaUser: aai-kafka-user
25   cassandra:
26     #Service Name of the cassandra cluster to connect to.
27     #Override it to aai-cassandra if localCluster is enabled.
28     serviceName: cassandra
29
30   # Specifies a list of jobs to be run
31   jobs:
32     # When enabled, it will create the schema based on oxm and edge rules
33     createSchema:
34       enabled: true
35     #migration using helm hooks
36     migration:
37       enabled: false
38
39   config:
40     # Specifies that the cluster connected to a dynamic
41     # cluster being spinned up by kubernetes deployment
42     cluster:
43       cassandra:
44         dynamic: true
45
46     # Specifies if the basic authorization is enabled
47     basic:
48       auth:
49         enabled: true
50         username: AAI
51         passwd: AAI
52
53     # Active spring profiles for the resources microservice
54     profiles:
55       active: production,kafka
56
57     # Notification event specific properties
58     notification:
59       eventType: AAI-EVENT
60       domain: dev
61
62     # Schema specific properties that include supported versions of api
63     schema:
64       # Specifies if the connection should be one way ssl, two way ssl or no auth
65       service:
66         client: no-auth
67       # Specifies which translator to use if it has schema-service, then it will make a rest request to schema service
68       translator:
69         list: schema-service
70       source:
71         # Specifies which folder to take a look at
72         name: onap
73       uri:
74         # Base URI Path of the application
75         base:
76           path: /aai
77       version:
78         # Current version of the REST API
79         api:
80           default: v28
81         # Specifies which version the depth parameter is configurable
82         depth: v11
83         # List of all the supported versions of the API
84         list: v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26,v27,v28
85         # Specifies from which version related link should appear
86         related:
87           link: v11
88         # Specifies from which version the app root change happened
89         app:
90           root: v11
91         # Specifies from which version the xml namespace changed
92         namespace:
93           change: v12
94         # Specifies from which version the edge label appeared in API
95         edge:
96           label: v12
97
98     # Specifies which clients should always default to realtime graph connection
99     realtime:
100       clients: SDNC,MSO,SO,robot-ete
101     kafkaBootstrap: strimzi-kafka-bootstrap
102     jaasConfExternalSecret: '{{ include "common.release" . }}-{{ .Values.global.aaiKafkaUser }}'
103     someConfig: random
104     aaiTopic: AAI-EVENT
105
106 api_list:
107   - 11
108   - 12
109   - 13
110   - 14
111   - 15
112   - 16
113   - 17
114   - 18
115   - 19
116
117 aai_enpoints:
118   - name: aai-cloudInfrastructure
119     url: cloud-infrastructure
120   - name: aai-business
121     url: business
122   - name: aai-actions
123     url: actions
124   - name: aai-service-design-and-creation
125     url: service-design-and-creation
126   - name: aai-network
127     url: network
128   - name: aai-externalSystem
129     url: external-system
130
131 # application image
132 image: onap/aai-resources:1.13.4
133 pullPolicy: Always
134 restartPolicy: Always
135 flavor: small
136 flavorOverride: small
137 # default number of instances
138 replicaCount: 1
139 # the minimum number of seconds that a newly created Pod should be ready
140 minReadySeconds: 30
141 updateStrategy:
142   type: RollingUpdate
143   # The number of pods that can be unavailable during the update process
144   maxUnavailable: 0
145   # The number of pods that can be created above the desired amount of pods during an update
146   maxSurge: 1
147
148 # Configuration for the resources deployment
149 config:
150   # configure keycloak according to your environment.
151   # don't forget to add keycloak in active profiles above (global.config.profiles)
152   keycloak:
153     host: keycloak.your.domain
154     port: 8180
155     # Specifies a set of users, credentials, roles, and groups
156     realm: aai-resources
157     # Used by any client application for enabling fine-grained authorization for their protected resources
158     resource: aai-resources-app
159     # If set to true, additional criteria will be added that match the data-owner property with the given role
160     # to the user in keycloak
161     multiTenancy:
162       enabled: true
163   janusgraph:
164     caching:
165       # enable when running read-heavy workloads
166       # modifications to graph done by this service/janusgraph instance will immediately invalidate the cache
167       # modifications to graph done by other services (traversal) will only be visible
168       # after time specified in db-cache-time
169       enabled: false
170       # Documentation: https://docs.janusgraph.org/operations/cache/#database-level-caching
171       dbCacheTime: 180000 # in milliseconds
172       dbCacheSize: 0.1 # percentage (expressed as a decimal between 0 and 1) of the total heap space available to the JVM running
173       dbCacheCleanWait: 20 # in milliseconds
174
175
176   # Specifies crud related operation timeouts and overrides
177   crud:
178     timeout:
179       # Specifies if the timeout for REST GET calls should be enabled
180       enabled: true
181       # Specifies the timeout values for application specific
182       # Its a pipe seperated list where each element before comma represents
183       # the X-FromAppId and the comma after specifies the timeout limit in ms
184       # If the timeout limit is -1 then it means for these apps no timeout
185       appspecific: JUNITTESTAPP1,1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAIRctFeed,-1|NewvceCreator,-1|IANewvceCreator,-1|AAI-CSIOVALS,-1
186       # Specifies what is the maximum timeout limit in milliseconds
187       limit: 100000
188
189   # Specifies configuration for bulk apis
190   bulk:
191     # Specifies for a bulk payload how many transactions in total allowed
192     limit: 30
193     # Specifies if the bulk can be override and if it can the value
194     override: false
195
196   # environment variables added to the launch of the image in deployment
197   env:
198     MIN_HEAP_SIZE: "512m"
199     MAX_HEAP_SIZE: "1024m"
200     MAX_METASPACE_SIZE: "512m"
201
202   # adds jvm args for remote debugging the application
203   debug:
204     enabled: false
205     args: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
206
207   # adds jvm args for remote profiling the application
208   # port-forward, i.e:
209   # $ PODNAME=traversal
210   # $ kubectl -n ${NAMESPACE:=onap} port-forward pod/$(kubectl -n ${NAMESPACE:=onap}
211   # get pods | awk '{print $1}' | grep -m1 -e "$PODNAME") 9999:9999
212   profiling:
213     enabled: false
214     args:
215       - "-Dcom.sun.management.jmxremote"
216       - "-Dcom.sun.management.jmxremote.ssl=false"
217       - "-Dcom.sun.management.jmxremote.authenticate=false"
218       - "-Dcom.sun.management.jmxremote.local.only=false"
219       - "-Dcom.sun.management.jmxremote.port=9999"
220       - "-Dcom.sun.management.jmxremote.rmi.port=9999"
221       - "-Djava.rmi.server.hostname=127.0.0.1"
222
223 nodeSelector: {}
224
225 affinity: {}
226
227 # probe configuration parameters
228 liveness:
229   initialDelaySeconds: 60
230   periodSeconds: 60
231   # necessary to disable liveness probe when setting breakpoints
232   # in debugger so K8s doesn't restart unresponsive container
233   enabled: false
234
235 readiness:
236   initialDelaySeconds: 60
237   periodSeconds: 10
238
239 service:
240   type: ClusterIP
241   portName: http
242   internalPort: 8447
243   portName2: tcp-5005
244   internalPort2: 5005
245   portName3: http-resources
246   internalPort3: 8448
247   terminationGracePeriodSeconds: 120
248   sessionAffinity: None
249
250 ingress:
251   enabled: false
252
253 serviceMesh:
254   authorizationPolicy:
255     authorizedPrincipals:
256       - serviceAccount: aai-read
257       - serviceAccount: consul-read
258
259   # We usually recommend not to specify default resources and to leave this as a conscious
260   # choice for the user. This also increases chances charts run on environments with little
261   # resources, such as Minikube. If you do want to specify resources, uncomment the following
262   # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
263   #
264   # Example:
265   # Configure resource requests and limits
266   # ref: http://kubernetes.io/docs/user-guide/compute-resources/
267   # Minimum memory for development is 2 CPU cores and 4GB memory
268   # Minimum memory for production is 4 CPU cores and 8GB memory
269 #resources:
270 #  limits:
271 #    cpu: "2"
272 #    memory: "4Gi"
273 #  requests:
274 #    cpu: "2"
275 #    memory: "4Gi"
276 resources:
277   small:
278     limits:
279       cpu: "2"
280       memory: "4Gi"
281     requests:
282       cpu: "1"
283       memory: "3Gi"
284   large:
285     limits:
286       cpu: "4"
287       memory: "8Gi"
288     requests:
289       cpu: "2"
290       memory: "6Gi"
291   unlimited: {}
292
293 tracing:
294   collector:
295     baseUrl: http://jaeger-collector.istio-system:9411
296   sampling:
297     probability: 1.0 # percentage of requests that are sampled (between 0-1/0%-100%)
298   ignorePatterns:
299     - /aai/util.*
300
301 endpoints:
302   enabled: true
303   health:
304     enabled: true
305   info:
306     enabled: true
307
308 metrics:
309   serviceMonitor:
310     enabled: false
311     targetPort: 8448
312     path: /actuator/prometheus
313     basicAuth:
314       enabled: false
315       externalSecretName: mysecretname
316       externalSecretUserKey: login
317       externalSecretPasswordKey: password
318
319     ## Namespace in which Prometheus is running
320     ##
321     # namespace: monitoring
322
323     ## Interval at which metrics should be scraped.
324     ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
325     ##
326     #interval: 30s
327
328     ## Timeout after which the scrape is ended
329     ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
330     ##
331     # scrapeTimeout: 10s
332
333     ## ServiceMonitor selector labels
334     ## ref: https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-configuration
335     ##
336     selector:
337       app: '{{ include "common.name" . }}'
338       chart: '{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}'
339       release: '{{ include "common.release" . }}'
340       heritage: '{{ .Release.Service }}'
341
342     ## RelabelConfigs to apply to samples before scraping
343     ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
344     ## Value is evalued as a template
345     ##
346     relabelings: []
347
348     ## MetricRelabelConfigs to apply to samples before ingestion
349     ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
350     ## Value is evalued as a template
351     ##
352     metricRelabelings: []
353     #  - sourceLabels:
354     #      - "__name__"
355     #    targetLabel: "__name__"
356     #    action: replace
357     #    regex: '(.*)'
358     #    replacement: 'example_prefix_$1'
359
360 #Pods Service Account
361 serviceAccount:
362   nameOverride: aai-resources
363   roles:
364     - read
365
366 #Log configuration
367 log:
368   path: /var/log/onap
369   level:
370     root: DEBUG
371     base: DEBUG # base package (org.onap.aai)
372 logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
373
374 # To make logback capping values configurable
375 logback:
376   logToFileEnabled: false
377   maxHistory: 7
378   totalSizeCap: 1GB
379   queueSize: 1000
380
381 accessLogback:
382   livenessAccessLogEnabled: false # false: do not log kubernetes liveness probes
383   logToFileEnabled: false
384   maxHistory: 7
385   totalSizeCap: 1GB
386 #################################################################
387 # Secrets metaconfig
388 #################################################################
389 secrets:
390   - uid: aai-kafka-user
391     externalSecret: '{{ tpl (default "" .Values.config.jaasConfExternalSecret) . }}'
392     type: genericKV
393     envs:
394       - name: sasl.jaas.config
395         value: '{{ .Values.config.someConfig }}'
396         policy: generate
397 kafkaUser:
398   authenticationType: scram-sha-512
399   acls:
400     - name: AAI-EVENT
401       type: topic
402       operations: [Read, Write]