##
# Copyright 2018 Telefonica S.A.
#
# 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.
##

# TODO currently is a pure yaml format. Consider to change it to [ini] style with yaml inside to be coherent with other modules

#[global]
global:
    loglevel: DEBUG
    # logfile:  /app/log  # or /var/log/osm/lcm.log
    # nologging: True     # do no log to stdout/stderr

#[timeout]
timeout:
    # ns_deploy: 7200     # total deploy timeout for a ns 2 hours
    # nsi_deploy: 7200     # total deploy timeout for a nsi 2 hours

#[RO]
RO:
    host:   ro          # hostname or IP
    port:   9090
    tenant: osm
    # loglevel: DEBUG
    # logfile:  /var/log/osm/lcm-ro.log

#[VCA]
VCA:
    host:   vca
    port:   17070
    user:   admin
    secret: secret
    cloud:  localhost
    k8s_cloud: k8scloud
    helmpath:    /usr/local/bin/helm
    helm3path:    /usr/local/bin/helm3
    kubectlpath: /usr/bin/kubectl
    jujupath:    /usr/local/bin/juju
    # pubkey: pubkey
    # cacert: cacert
    # apiproxy: apiproxy
    #eegrpcinittimeout: 600
    #eegrpctimeout: 30

    # loglevel: DEBUG
    # logfile:  /var/log/osm/lcm-vca.log

#[database]
database:
    driver: mongo       # mongo or memory
    host:   mongo       # hostname or IP
    port:   27017
    name:   osm
    # replicaset: replicaset
    # user:   user
    # password:   password
    # commonkey: "XXXXXX" # password used for encryption of sensible information
    # loglevel: DEBUG
    # logfile:  /var/log/osm/lcm-database.log

#[storage]
storage:
    driver: local       # local filesystem
    # for local provide file path
    path:   /app/storage
    # loglevel: DEBUG
    # logfile:  /var/log/osm/lcm-storage.log

#[message]
message:
    driver:   kafka       # local or kafka
    # for local provide file path
    path:     /app/storage/kafka
    # for kafka provide host and port
    host:     kafka
    port:     9092
    # loglevel: DEBUG
    # logfile:  /var/log/osm/lcm-message.log
    group_id: lcm-server

tsdb:    # time series database
    driver:   prometheus
    # local file to store the configuration
    path:     /etc/prometheus
    uri:      http://prometheus:9090/
    # loglevel: DEBUG
    # logfile:  /var/log/osm/lcm-tsdb.log
