Beta - Install Fleio with juju

Prerequisites

The beta Fleio installation currently only works on juju microk8s clusters. Follow instructions on the https://juju.is/docs/olm/microk8s page to set up juju with microk8s (follow the guide up until deploying a kubernetes charm).

After installing and configuring microk8s and juju, you should have:

  • a controller

  • a cloud

  • a juju model (called testing in the Juju documentation)

You also need to enable dns, storage and ingress addons on microk8s:

microk8s enable dns storage ingress

On some edge clusters (microk8s, k0s, k3s, minikube …) you may need to install nfs-common on the host machine.

apt install nfs-common

Installing a database charm

Fleio needs a mariadb database. On juju installation you will need to install a charm that provides a mysql relation and add a relation between that charm and fleio.

We recommend using charmed-osm-mariadb-k8s charm - https://charmhub.io/charmed-osm-mariadb-k8s

Install the charm using the following command

juju deploy charmed-osm-mariadb-k8s

Installing Fleio with juju

First you need to create a yaml file named fleio-main-image.yaml with the following contents (replace <license id> and <license key>):

registrypath: hub.fleio.com/fleio_main-2022-04:0
username: <license id>
password: <license key>

The next step is to download the charm, which is available at https://fleio.com/fleio-k8s_ubuntu-20.04-amd64.charm

wget https://fleio.com/fleio-k8s_ubuntu-20.04-amd64.charm

Before moving to the final step, run microk8s status --wait-ready and check the following:

  • microk8s is running

  • dns, ingress and storage addons are enabled (here you might have a slight delay and you will need to wait for these to be enabled).

If everything looks fine, run the following commands after replacing <> placeholders with correct values to deploy Fleio using juju:

Note

The domain you are using should not have the http:// or https:// protocol (e.g. the –config domain=<your-domain> should be –config domain=fleio.com). If you have DNS configured and you want a letsencrypt SSL certificate issued on install, please check Enable letsencrypt SSL certificate.

juju deploy ./fleio-k8s_ubuntu-20.04-amd64.charm --resource fleio-main-image=<fleio_main_image_yaml_path> \
--config releaseSuffix="-2022-04:0" \
--config registry=hub.fleio.com \
--config licenseUUID=<license id> \
--config licenseKey=<license key> \
--config registryUser=<license id> \
--config registryPass=<license key> \
--config admin_user=<super admin username> \
--config admin_pass=<super admin pass> \
--config admin_email=<super admin email> \
--config admin_firstName=<super admin first name> \
--config admin_lastName=<super admin last name> \
--config domain=<your-domain>

juju add relation fleio-k8s mariadb-k8s

Executing juju actions

You can retrieve a list of supported actions using the following command:

juju actions fleio-k8s

You can execute an action using juju run-action command. Example

juju run-action fleio-k8s/leader install-status --wait

Enable letsencrypt SSL certificate

You can have Fleio generate a letsencrypt SSL certificate directly on install by using the tls_email and tls_enableLetsEncrypt config options in the juju deploy command:

juju deploy ./fleio-k8s_ubuntu-20.04-amd64.charm --resource fleio-main-image=<fleio_main_image_yaml_path> \
--config releaseSuffix="-2022-04:0" \
--config registry=hub.fleio.com \
--config licenseUUID=<license id> \
--config licenseKey=<license key> \
--config registryUser=<license id> \
--config registryPass=<license key> \
--config admin_user=<super admin username> \
--config admin_pass=<super admin pass> \
--config admin_email=<super admin email> \
--config admin_firstName=<super admin first name> \
--config admin_lastName=<super admin last name> \
--config tls_email=<your email address> \
--config tls_enableLetsEncrypt=yes \
--config domain=<your-domain>

If you’ve already deployed Fleio with Juju, but without adding those config options then you can enable letsencrypt by accessing the fleio-utils container and run fleiok8s enable-letsencrypt command:

microk8s.kubectl exec -it deploy/fleio-utils -n testing  -- bash
fleiok8s enable-letsencrypt

Known issues

While having multiple replicas for fleio-operations deployment, OpenStack resources (e.g. instances, volumes) that are created via operations sometimes might get duplicated.