# 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.
#
# 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
##

name: osm-zookeeper
summary: "Zookeeper charm for Kubernetes."
description: |
  A CAAS charm to deploy zookeeper.
series:
  - kubernetes
tags:
  - kubernetes
  - osm
  - zookeeper
min-juju-version: 2.8.0
resources:
  image:
    type: oci-image
    description: OSM docker image for zookeeper
    upstream-source: |
      "rocks.canonical.com:443/k8s.gcr.io/kubernetes-zookeeper:1.0-3.4.10"
provides:
  zookeeper:
    interface: zookeeper
peers:
  cluster:
    interface: zookeeper-cluster
storage:
  database:
    type: filesystem
    location: /var/lib/zookeeper
deployment:
  type: stateful
  service: cluster
