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

name: osm-prometheus
summary: OSM Prometheus
description: |
  A CAAS charm to deploy OSM's Prometheus.
series:
  - kubernetes
tags:
  - kubernetes
  - osm
  - prometheus
min-juju-version: 2.8.0
deployment:
  type: stateful
  service: cluster
resources:
  backup-image:
    type: oci-image
    description: Container image to run backup actions
    upstream-source: "ed1000/prometheus-backup:latest"
  image:
    type: oci-image
    description: OSM docker image for Prometheus
    upstream-source: "ubuntu/prometheus:latest"
provides:
  prometheus:
    interface: prometheus
storage:
  data:
    type: filesystem
    location: /prometheus
