Overview

UI 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 --single-branch --branch master https://git.launchpad.net/canonical-osm ~/canonical-osm

cd ~/charm/layers
git clone --single-branch --branch=master https://git.launchpad.net/charm-osm-ui ui-k8s
git clone --single-branch --branch=master https://git.launchpad.net/charm-k8s-grafana grafana-k8s
git clone --single-branch --branch=master https://git.launchpad.net/charm-k8s-prometheus prometheus-k8s
git clone --single-branch --branch=master https://git.launchpad.net/charm-k8s-mariadb mariadb-k8s
git clone --single-branch --branch=master https://git.launchpad.net/charm-osm-lcm lcm-k8s
git clone --single-branch --branch=master https://git.launchpad.net/charm-osm-mon mon-k8s
git clone --single-branch --branch=master https://git.launchpad.net/charm-osm-nbi nbi-k8s
git clone --single-branch --branch=master https://git.launchpad.net/charm-osm-pol pol-k8s
git clone --single-branch --branch=master https://git.launchpad.net/charm-osm-ro ro-k8s
git clone --single-branch --branch=master https://git.launchpad.net/charm-k8s-keystone keystone-k8s
git clone --single-branch --branch=master https://git.launchpad.net/charm-k8s-kafka kafka-k8s ~/charm/interfaces
git clone --single-branch --branch=master https://git.launchpad.net/charm-k8s-zookeeper zookeeper-k8s
git clone --single-branch --branch=master 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
git clone https://git.launchpad.net/interface-osm-mon mon
git clone https://git.launchpad.net/interface-osm-nbi osm-nbi
git clone https://git.launchpad.net/interface-osm-ro osm-ro

Charm structure:

├── config.yaml
├── icon.svg
├── layer.yaml
├── metadata.yaml
├── reactive
│   ├── spec_template.yaml
│   └── ui.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/ui-k8s/tests/build
export https_proxy=\$PROXY
charm build ~/charm/layers/ui-k8s
charm build ~/charm/layers/grafana-k8s
charm build ~/charm/layers/prometheus-k8s
charm build ~/charm/layers/mariadb-k8s
charm build ~/charm/layers/lcm-k8s
charm build ~/charm/layers/mon-k8s
charm build ~/charm/layers/nbi-k8s
charm build ~/charm/layers/pol-k8s
charm build ~/charm/layers/ro-k8s
charm build ~/charm/layers/keystone-k8s
charm build ~/charm/layers/kafka-k8s
charm build ~/charm/layers/zookeeper-k8s
charm build ~/charm/layers/mongodb-k8s
mv ~/charm/build/* ~/charm/layers/ui-k8s/tests/build/