# Copyright 2020 Canonical 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.
options:
  advertised-hostname:
    description: MON Hostname
    type: string
    default: "mon-k8s"
  advertised-port:
    description: MON Port
    type: int
    default: 8000
  OSMMON_OPENSTACK_DEFAULT_GRANULARITY:
    description: Openstack default granularity
    type: int
    default: 300
  OSMMON_GLOBAL_REQUEST_TIMEOUT:
    description: Global request timeout
    type: int
    default: 10
  OSMMON_GLOBAL_LOGLEVEL:
    description: Global LOGLEVEL
    type: string
    default: INFO
  OSMMON_DATABASE_COMMONKEY:
    description: Database COMMONKEY
    type: string
    default: osm
  OSMMON_COLLECTOR_INTERVAL:
    description: Collector interval
    type: int
    default: 30
  OSMMON_EVALUATOR_INTERVAL:
    description: Evaluator interval
    type: int
    default: 30
  vca_host:
    type: string
    description: "The VCA host."
    default: "admin"
  vca_user:
    type: string
    description: "The VCA user name."
    default: "admin"
  vca_password:
    type: string
    description: "The VCA user password."
    default: "secret"
  vca_cacert:
    type: string
    description: "The VCA cacert."
    default: ""
  use_external_vca:
    description: Use an external VCA (deprecated)
    type: boolean
    default: false
  image:
    type: string
    description: OCI image
    default: opensourcemano/mon:8
