Common Fleio tasks in Kubernetes

Warning

Fleio in Kubernetes is still in beta, and is not intended for production use.

Deploying utils container

utils container is a container providing various tools to manage a Fleio deployment. It is not mandatory to run this container, so it is not deployed by default. Utils container is currently connected to all backend volumes.

To deploy utils container, add the following to your Fleio deployment .yaml file, in the spec section:

  advanced:
    deployUtilsContainer: yes

and then (re)apply the file or use kubectl edit fleiodeployment command to edit an existing deployment.

Backup

By default, backups before upgrade are enabled in Fleio. Fleio also supports scheduled backups, but these are disabled by default:

To configure scheduled backups, add the following to your Fleio deployment .yaml file, in the spec section:

  enableBackups: no
  backupSchedule: "2 * * * *"
  backupRetentionCount: 10
  backupRetentionDays: 30

and then (re)apply the file or use kubectl edit fleiodeployment command to edit an existing deployment.

Backups are saved on the database backups volume.

Backup settings details

  • enableBackups - yes/no - will enable or disable backup functionality for a specific Fleio deployment

  • backupSchedule - string - the backup schedule as a cron expression (see https://en.wikipedia.org/wiki/Cron#Cron_expression for details)

  • backupRetentionCount - number - how many previous backups to keep

  • backupRetentionDays - number - how many days to keep previous backups

Command-line interface

To be able to launch a CLI shell, you first need to deploy utils container.

Once the utils container was deployed you can launch a root shell using the following command (replace DeploymentName with your deployment name):

kubectl exec -it deployment.apps/fleio-DeploymentName-utils -- bash

To exit the shell use exit command.

Activate Fleio python environment

To activate Fleio python environment, you first need to launch a CLI shell.

Once you are in the CLI shell, run the following command to activate Fleio python environment:

source ../env/bin/activate

Running django commands

Fleio backend is developed using the Django web framework (see https://www.djangoproject.com/ for details).

Sometimes you will need to run django commands to perform changes to a Fleio deployment. To do this, you must first activate Fleio python environment. Once the environment is active, you can run django commands in CLI.

E.g., run the following command:

django help

to see a list of available commands, or one of the following commands:

django dbshell
djanho shell
django shell_plus

to open database(mariadb) shell, a python shell or an extended python shell.

Edit backend and frontend configuration

Backend and frontend configuration in Kubernetes is stored in config maps (see config maps). You can edit these directly using kubectl edit configmap command. Fleio operator will watch for changes to these config maps and automatically update Fleio.

Get fleio deployment information

To get information about a Fleio deployment you should run django fleio_info command. See running django command for more details.

License update

License can be updated by editing license details in the fleiodeployment .yaml file and then (re)applying the file or by using kubectl edit fleiodeployment command. For an existing deployment, Fleio operator will watch for any license changes and apply them automatically.

Manage period tasks

This is currently not supported in Kubernetes.

Run OpenStack commands

To be able to run OpenStack commands, you first need to launch a CLI shell.

Once the shell is opened, you can run OpenStack like this:

/scripts/openstack command

E.g., if you want to list all servers in the current region, you can run the following command:

/scripts/openstack server list --all-projects

Note that the /scripts/openstack will use OpenStack settings configured in Fleio to connect to OpenStack. The script will connect to the default region selected in Fleio.

Restarting Fleio

Fleio operator handles restart/recreation of pods as needed. However, if you need to restart a Fleio deployment (recreate all pods), you can use a command like (replace DeploymentName with your deployment name):

kubectl get deployments | grep fleio-DeploymentName | awk '{print $1}' | xargs -l1 kubectl rollout restart deployment

Stopping and starting Fleio

Stopping and starting Fleio is not supported in Kubernetes, however, if you need to stop Fleio, you can scale down to zero all Kubernetes deployments and scale them up again to start them.

Show a Fleio setting value

To get the value of a fleio setting you should run django show_settings SettingName command (replace SettingName with the name of the setting you are interested in). See running django command for more details.

Sync OpenStack resources

To sync OpenStack resources, you first need to launch a CLI shell.

Once the shell is opened, you can sync OpenStack resources using the following command:

/var/webapps/fleio/scripts/sync