Additional Software Requirements
To install additional packages required only by OpenStack deployment scripts you need to execute the following command:
$ pip install -r requirements-openstack.txt ".[openstack]"
If in the previous step you installed Klever package with the -e argument, then you should use it here as well (i.e. execute pip install -r requirements-openstack.txt -e “.[openstack]”).
OpenStack Deployment supports 2 kinds of entities:
Klever Base Image - with default settings this is a Debian 11 OpenStack image with installed Klever dependencies. Using Klever Base Image allows to substantially reduce a time for deploying Klever Instances.
Klever Instance - an OpenStack instance, either for development or production purposes. For development mode many debug options are activated by default.
Almost all deployment commands require you to specify a path to a private SSH key and your OpenStack username:
$ klever-deploy-openstack --os-username $OS_USERNAME --ssh-rsa-private-key-file $SSH_RSA_PRIVATE_KEY_FILE create instance
For brevity they are omitted from the following examples.
In addition to command-line arguments mentioned above and below, there are several optional command-line arguments which you can find out by running:
$ klever-deploy-openstack --help
Klever Base Image
$ klever-deploy-openstack create image
Unless specified, name Klever Base vN (where N is 1 plus a maximum of 0 and vi) is used for new
Klever Base Image.
Besides, deployment scripts overwrites file
klever/deploys/conf/openstack-base-image.txt with this name so that
new instances will be based on the new Klever Base Image.
To force other users to switch to the new Klever Base Image you need to commit changes of this file to the
For Klever Instance you can execute actions show, create, update, resize, share, hide, ssh and remove. Basically you should perform actions with Klever Instance in the following order: like for Local Deployment, e.g.:
$ klever-deploy-openstack create instance
By default Klever is deployed in the production mode, but you can change this with the --mode command-line argument:
$ klever-deploy-openstack --mode development create instance
By using resize you can increase/decrease occupied computational resources and, thus, either speed up the verification process considerably or do not waste always necessary CPU cores and memory. You should take into account that it is enough to specify only the number of required CPU cores, e.g. 1, 2, 4, etc., since there is a rule of thumb to compute the appropriate size of memory (4x of the number of CPU cores) while disk space can not be modified during resizing. In addition, between creation and removal of Klever Instance you can also share/hide it for/from the outside world and open an SSH connection to it.
You should be especially careful with user credentials when sharing Klever Instance.
Multiple Klever Instances
You can also create a specified number of OpenStack instances for performing various experiments by using the --instances command-line argument. In this mode you can only execute actions show, create, update and remove. The normal workflow for Multiple Klever Instances is the same as for Klever Instance, e.g.:
$ klever-deploy-openstack --instances $INSTANCES create instance