mon k8s #36

Supports: kubernetes

Deploy this charm on Kubernetes with the CLI. Find out how by reading the docs.

Description

A CAAS charm to deploy OSM's Monitoring Interface (MON)


Overview

MON for Juju CAAS

Testing

The tests of this charm are done using tox and Zaza.

Prepare environment

The machine in which the tests are run needs access to a juju k8s controller. The easiest way to approach this is by executing the following commands:

sudo apt install tox -y
sudo snap install microk8s --classic
sudo snap install juju

microk8s.status --wait-ready
microk8s.enable storage dashboard dns

juju bootstrap microk8s k8s-cloud

If /usr/bin/python does not exist, you should probably need to do this:

sudo ln -s /usr/bin/python3 /usr/bin/python

Build Charm

Download dependencies:

mkdir -p ~/charm/layers ~/charm/build ~/charm/interfaces
git clone https://git.launchpad.net/canonical-osm ~/canonical-osm

cd ~/charm/layers
git clone https://git.launchpad.net/charm-osm-mon mon-k8s
git clone https://git.launchpad.net/charm-osm-ro ro-k8s
git clone https://git.launchpad.net/charm-k8s-kafka kafka-k8s ~/charm/interfaces
git clone https://git.launchpad.net/charm-k8s-zookeeper zookeeper-k8s
git clone https://git.launchpad.net/charm-k8s-mongodb mongodb-k8s

cd ~/charm/interfaces
mv ~/canonical-osm/charms/interfaces/* .
git clone https://git.launchpad.net/interface-mongodb mongodb

Charm structure:

├── config.yaml
├── icon.svg
├── layer.yaml
├── metadata.yaml
├── reactive
│   ├── spec_template.yaml
│   └── mon.py
├── README.md
└── tox.ini

Setup environment variables:

export CHARM_LAYERS_DIR=~/charm/layers
export CHARM_BUILD_DIR=~/charm/build
export CHARM_INTERFACES_DIR=~/charm/interfaces

Build:

mkdir ~/charm/layers/mon-k8s/tests/build
charm build ~/charm/layers/mon-k8s
charm build ~/charm/layers/kafka-k8s
charm build ~/charm/layers/zookeeper-k8s
charm build ~/charm/layers/mongodb-k8s
mv ~/charm/build/* ~/charm/layers/mon-k8s/tests/build/

Configuration

OSMMON_COLLECTOR_INTERVAL
(int) Collector interval
30
OSMMON_DATABASE_COMMONKEY
(string) Database COMMONKEY
osm
OSMMON_EVALUATOR_INTERVAL
(int) Evaluator interval
30
OSMMON_GLOBAL_LOGLEVEL
(string) Global LOGLEVEL
INFO
OSMMON_GLOBAL_REQUEST_TIMEOUT
(int) Global request timeout
10
OSMMON_OPENSTACK_DEFAULT_GRANULARITY
(int) Openstack default granularity
300
advertised-hostname
(string) MON Hostname
mon-k8s
advertised-port
(int) MON Port
8000
image
(string) OCI image
opensourcemano/mon:8
image_password
(string) Docker repository password
image_username
(string) Docker repository username
use_external_vca
(boolean) Use an external VCA (deprecated)
vca_cacert
(string) The VCA cacert.
vca_host
(string) The VCA host.
admin
vca_password
(string) The VCA user password.
secret
vca_user
(string) The VCA user name.
admin