# 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.
description: Single instance OSM bundle
bundle: kubernetes
applications:
  zookeeper:
    charm: "./zookeeper/zookeeper.charm"
    scale: 1
    series: kubernetes
    storage:
      database: 100M
    resources:
      image: rocks.canonical.com:443/k8s.gcr.io/kubernetes-zookeeper:1.0-3.4.10
    annotations:
      gui-x: 0
      gui-y: 550
  mariadb-k8s:
    charm: "cs:~charmed-osm/mariadb-k8s"
    channel: "stable"
    scale: 1
    series: kubernetes
    storage:
      database: 50M
    options:
      password: manopw
      root_password: osm4u
      user: mano
    annotations:
      gui-x: -250
      gui-y: -200
  kafka:
    charm: "./kafka/kafka.charm"
    scale: 1
    series: kubernetes
    storage:
      database: 100M
    resources:
      image: rocks.canonical.com:443/wurstmeister/kafka:2.12-2.2.1
    annotations:
      gui-x: 0
      gui-y: 300
  mongodb:
    charm: ch:mongodb-k8s
    scale: 1
    series: kubernetes
    storage:
      db: 50M
    annotations:
      gui-x: 0
      gui-y: 0
  nbi:
    charm: "./nbi/nbi.charm"
    scale: 1
    series: kubernetes
    options:
      database_commonkey: osm
      auth_backend: keystone
    resources:
      image: opensourcemano/nbi:testing-daily
    annotations:
      gui-x: 0
      gui-y: -200
  ro:
    charm: "./ro/ro.charm"
    scale: 1
    series: kubernetes
    resources:
      image: opensourcemano/ro:testing-daily
    annotations:
      gui-x: -250
      gui-y: 300
  ng-ui:
    charm: "./ng-ui/ng-ui.charm"
    scale: 1
    series: kubernetes
    resources:
      image: opensourcemano/ng-ui:testing-daily
    annotations:
      gui-x: 500
      gui-y: 100
  lcm:
    charm: "./lcm/lcm.charm"
    scale: 1
    series: kubernetes
    options:
      database_commonkey: osm
    resources:
      image: opensourcemano/lcm:testing-daily
    annotations:
      gui-x: -250
      gui-y: 50
  mon:
    charm: "./mon/mon.charm"
    scale: 1
    series: kubernetes
    options:
      database_commonkey: osm
    resources:
      image: opensourcemano/mon:testing-daily
    annotations:
      gui-x: 250
      gui-y: 50
  pol:
    charm: "./pol/pol.charm"
    scale: 1
    series: kubernetes
    resources:
      image: opensourcemano/pol:testing-daily
    annotations:
      gui-x: -250
      gui-y: 550
  pla:
    charm: "./pla/pla.charm"
    scale: 1
    series: kubernetes
    resources:
      image: opensourcemano/pla:testing-daily
    annotations:
      gui-x: 500
      gui-y: -200
  prometheus:
    charm: "./prometheus/prometheus.charm"
    channel: "stable"
    scale: 1
    series: kubernetes
    storage:
      data: 50M
    options:
      default-target: "mon:8000"
    resources:
      image: ubuntu/prometheus:latest
      backup-image: ed1000/prometheus-backup:latest
    annotations:
      gui-x: 250
      gui-y: 300
  grafana:
    charm: "./grafana/grafana.charm"
    channel: "stable"
    scale: 1
    series: kubernetes
    resources:
      image: ubuntu/grafana:latest
    annotations:
      gui-x: 250
      gui-y: 550
  keystone:
    charm: "./keystone/keystone.charm"
    resources:
      image: opensourcemano/keystone:testing-daily
    scale: 1
    series: kubernetes
    annotations:
      gui-x: -250
      gui-y: 550
relations:
  - - grafana:prometheus
    - prometheus:prometheus
  - - kafka:zookeeper
    - zookeeper:zookeeper
  - - keystone:db
    - mariadb-k8s:mysql
  - - lcm:kafka
    - kafka:kafka
  - - lcm:mongodb
    - mongodb:database
  - - ro:ro
    - lcm:ro
  - - ro:kafka
    - kafka:kafka
  - - ro:mongodb
    - mongodb:database
  - - pol:kafka
    - kafka:kafka
  - - pol:mongodb
    - mongodb:database
  - - mon:mongodb
    - mongodb:database
  - - mon:kafka
    - kafka:kafka
  - - pla:kafka
    - kafka:kafka
  - - pla:mongodb
    - mongodb:database
  - - nbi:mongodb
    - mongodb:database
  - - nbi:kafka
    - kafka:kafka
  - - nbi:prometheus
    - prometheus:prometheus
  - - nbi:keystone
    - keystone:keystone
  - - mon:prometheus
    - prometheus:prometheus
  - - ng-ui:nbi
    - nbi:nbi
  - - mon:keystone
    - keystone:keystone
  - - mariadb-k8s:mysql
    - pol:mysql
  - - mariadb-k8s:mysql
    - grafana:db
