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