# Copyright 2021 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.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact: legal@canonical.com
#
# To get in touch with the maintainers, please contact:
# osm-charmers@lists.launchpad.net
##

options:
  log_level:
    description: |
      Log level
    type: string
    default: INFO
  image_pull_policy:
    description: |
      ImagePullPolicy configuration for the pod.
      Possible values: always, ifnotpresent, never
    type: string
    default: always
  min_session_timeout:
    description: Min session timeout
    type: int
    default: 4000
  max_session_timeout:
    description: Max session timeout
    type: int
    default: 40000
  purge_interval:
    description: |
      The time interval in hours for which the purge task has to be triggered.
      Set to a positive integer (1 and above) to enable the auto purging.
    type: int
    default: 12
  snap_retain_count:
    description: |
      When enabled, ZooKeeper auto purge feature retains the
      autopurge.snapRetainCount most recent snapshots and
      the corresponding transaction logs in the dataDir and
      dataLogDir respectively and deletes the rest.
      Defaults to 3. Minimum value is 3.
    type: int
    default: 3
  max_client_cnxns:
    description: |
      Limits the number of concurrent connections (at the socket level)
      that a single client, identified by IP address, may make to a single
      member of the ZooKeeper ensemble.
    type: int
    default: 60
  heap:
    description: Heap memory in Mega-bytes
    type: int
    default: 512
  sync_limit:
    description: |
      Amount of time, in ticks (see tickTime), to allow followers to sync
      with ZooKeeper.
      If followers fall too far behind a leader, they will be dropped.
    type: int
    default: 5
  init_limit:
    description: |
      Amount of time, in ticks (see tickTime), to allow followers to connect
      and sync to a leader. Increased this value as needed,
      if the amount of data managed by ZooKeeper is large.
    type: int
    default: 5
  tick_time:
    description: |
      The length of a single tick, which is the basic time unit used
      by ZooKeeper, as measured in milliseconds. It is used to regulate
      heartbeats, and timeouts.
      For example, the minimum session timeout will be two ticks.
    type: int
    default: 2000
  security_context:
    description: Enables the security context of the pods
    type: boolean
    default: false
