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/