blob: 810068081e844f3b542bc093f8f95b7f018155e0 [file] [log] [blame]
# ============LICENSE_START=======================================================
# Copyright (C) 2021 Pantheon.tech
# Modifications Copyright (C) 2021-2022 Bell Canada
# Modifications Copyright (C) 2021-2024 Nordix Foundation
# Modifications Copyright (C) 2024 TechMahindra Ltd
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
server:
port: 8080
rest:
api:
cps-base-path: /cps/api
ncmp-base-path: /ncmp
ncmp-inventory-base-path: /ncmpInventory
spring:
main:
banner-mode: "off"
application:
name: "cps-application"
jpa:
show-sql: false
ddl-auto: create
open-in-view: false
properties:
hibernate.enable_lazy_load_no_trans: true
hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect
# Please ensure these values match those used in integration-test/src/test/resources/application.yml
hibernate.id.new_generator_mappings: true
hibernate.jdbc.batch_size: 100
datasource:
url: jdbc:postgresql://${DB_HOST}:${DB_PORT:5432}/cpsdb
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
driverClassName: org.postgresql.Driver
hikari:
minimumIdle: 5
maximumPoolSize: 80
idleTimeout: 60000
connectionTimeout: 30000
leakDetectionThreshold: 30000
pool-name: CpsDatabasePool
cache:
type: caffeine
cache-names: yangSchema
caffeine:
spec: maximumSize=10000,expireAfterAccess=10m
liquibase:
change-log: classpath:changelog/changelog-master.yaml
label-filter: ${LIQUIBASE_LABELS}
servlet:
multipart:
enabled: true
max-file-size: 100MB
max-request-size: 100MB
kafka:
bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVER:localhost:9092}
security:
protocol: PLAINTEXT
producer:
value-serializer: io.cloudevents.kafka.CloudEventSerializer
client-id: cps-core
consumer:
group-id: ${NCMP_CONSUMER_GROUP_ID:ncmp-group}
key-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer
value-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer
properties:
spring.deserializer.key.delegate.class: org.apache.kafka.common.serialization.StringDeserializer
spring.deserializer.value.delegate.class: io.cloudevents.kafka.CloudEventDeserializer
spring.json.use.type.headers: false
jackson:
default-property-inclusion: NON_NULL
serialization:
FAIL_ON_EMPTY_BEANS: false
sql:
init:
mode: ALWAYS
app:
ncmp:
async-m2m:
topic: ${NCMP_ASYNC_M2M_TOPIC:ncmp-async-m2m}
avc:
subscription-topic: ${NCMP_CM_AVC_SUBSCRIPTION:subscription}
subscription-forward-topic-prefix: ${NCMP_FORWARD_CM_AVC_SUBSCRIPTION:ncmp-dmi-cm-avc-subscription-}
subscription-response-topic: ${NCMP_RESPONSE_CM_AVC_SUBSCRIPTION:dmi-ncmp-cm-avc-subscription}
subscription-outcome-topic: ${NCMP_OUTCOME_CM_AVC_SUBSCRIPTION:subscription-response}
cm-events-topic: ${NCMP_CM_EVENTS_TOPIC:cm-events}
lcm:
events:
topic: ${LCM_EVENTS_TOPIC:ncmp-events}
dmi:
cm-events:
topic: ${DMI_CM_EVENTS_TOPIC:dmi-cm-events}
device-heartbeat:
topic: ${DMI_DEVICE_HEARTBEAT_TOPIC:dmi-device-heartbeat}
cps:
data-updated:
change-event-notifications-enabled: ${CPS_CHANGE_EVENT_NOTIFICATIONS_ENABLED:true}
topic: ${CPS_CHANGE_EVENT_TOPIC:cps-data-updated-events}
notification:
enabled: true
async:
executor:
core-pool-size: 2
max-pool-size: 10
queue-capacity: 500
wait-for-tasks-to-complete-on-shutdown: true
thread-name-prefix: Async-
time-out-value-in-ms: 60000
springdoc:
swagger-ui:
disable-swagger-default-url: true
urlsPrimaryName: cps-core
urls:
- name: cps-core
url: /api-docs/cps-core/openapi.yaml
- name: cps-ncmp
url: /api-docs/cps-ncmp/openapi.yaml
- name: cps-ncmp-inventory
url: /api-docs/cps-ncmp/openapi-inventory.yaml
security:
# comma-separated uri patterns which do not require authorization
permit-uri: /actuator/**,/swagger-ui.html,/swagger-ui/**,/swagger-resources/**,/api-docs/**,/v3/api-docs/**
auth:
username: ${CPS_USERNAME:cpsuser}
password: ${CPS_PASSWORD:cpsr0cks!}
# Actuator
management:
endpoints:
web:
exposure:
include: info,health,loggers,prometheus
endpoint:
health:
show-details: always
# kubernetes probes: liveness and readiness
probes:
enabled: true
logging:
format: json
level:
org:
springframework: INFO
onap:
cps: INFO
ncmp:
dmi:
httpclient:
connectionTimeoutInSeconds: 30
maximumConnectionsPerRoute: 50
maximumConnectionsTotal: 100
idleConnectionEvictionThresholdInSeconds: 5
auth:
username: ${DMI_USERNAME:cpsuser}
password: ${DMI_PASSWORD:cpsr0cks!}
enabled: ${DMI_AUTH_ENABLED:true}
api:
base-path: dmi
timers:
advised-modules-sync:
sleep-time-ms: 5000
locked-modules-sync:
sleep-time-ms: 300000
cm-handle-data-sync:
sleep-time-ms: 30000
subscription-forwarding:
dmi-response-timeout-ms: 30000
model-loader:
retry-time-ms: 1000
trust-level:
dmi-availability-watchdog-ms: 30000
modules-sync-watchdog:
async-executor:
parallelism-level: 10
model-loader:
maximum-attempt-count: 20
# Custom Hazelcast Config.
hazelcast:
cluster-name: ${CPS_NCMP_CACHES_CLUSTER_NAME:"cps-and-ncmp-common-cache-cluster"}
mode:
kubernetes:
enabled: ${HAZELCAST_MODE_KUBERNETES_ENABLED:false}
service-name: ${CPS_NCMP_SERVICE_NAME:"cps-and-ncmp-service"}