Grid‘5000

Installation

Connect to a Grid‘5000 frontend of your choice. Then, refer to the Getting Started section to install Enos.

To access the Grid‘5000 API, you must configure python-grid5000. Please refer to the corresponding documentation

If the virtualenv module is missing:

$ pip install virtualenv --user     # Install virtualenv
$ export PATH=~/.local/bin/:${PATH} # Put it into your path

Basic configuration

The provider relies on cluster names to group the wanted resources. For example the following is a valid resources description:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
enable_monitoring: false
inventory: inventories/inventory.sample
kolla:
  enable_heat: false
  kolla_base_distro: centos
  kolla_install_type: source
kolla_ref: stable/stein
kolla_repo: https://git.openstack.org/openstack/kolla-ansible
provider:
  job_name: enos-jenkins
  type: g5k
  walltime: 02:00:00
registry:
  type: internal
resources:
  paravance:
    compute: 1
    control: 1
    network: 1

Deployment

We suggest you to run the deployment from a dedicated node (especially for large deployment). For now the recommended way to do so is to reserve one node prior of your reservation. In the case of an interactive deployment:

frontend$ oarsub -I -l 'walltime=2:00:00'
node$ source venv/bin/activate
node$ <edit configuration>
node$ enos deploy

Note

You’ll need to configure the access to the Grid‘5000 API by setting the following in your ~/.execo.conf.py :
# ~/.execo.conf.py
g5k_configuration = {
    'api_username': "your username",
    'api_verify_ssl_cert': False
}

Default provider configuration

The provider comes with the following default options:

DEFAULT_CONFIG = {
    'job_name': 'Enos',             # Job name in oarstat/gant
    'walltime': '02:00:00',         # Reservation duration time
    'env_name': 'debian9-x64-nfs',  # Environment to deploy
    'reservation': '',           # Reservation date
    'job_type': 'deploy',           # deploy, besteffort, ...
    'queue': 'default'              # default, production, testing
}

They can be overriden in the configuration file.

Advanced Configuration

The following is equivalent to the basic configuration but allows for a finer grained definition of the resources and associated roles.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
inventory: inventories/inventory.sample
kolla:
  enable_heat: false
  kolla_base_distro: centos
  kolla_install_type: source
kolla_ref: stable/stein
kolla_repo: https://git.openstack.org/openstack/kolla-ansible
provider:
  job_name: enos-jenkins
  resources:
    machines:
    - cluster: paravance
      nodes: 1
      primary_network: int-net
      role: control
      secondary_networks:
      - ext-net
    - cluster: paravance
      nodes: 1
      primary_network: int-net
      role: compute
      secondary_networks:
      - ext-net
    - cluster: paravance
      nodes: 1
      primary_network: int-net
      role: network
      secondary_networks:
      - ext-net
    networks:
    - id: int-net
      role: network_interface
      site: rennes
      type: kavlan
    - id: ext-net
      role: neutron_external_interface
      site: rennes
      type: kavlan
  role_distribution: debug
  type: g5k
  walltime: 02:00:00
registry:
  type: internal

Reservation

In order to reserve in advance the ressources needed by your deployment you can set the reservation key to the desired sart date. And launch enos deploy.

# Reserve the 29. February 2020 at 19:00:00 for 14 hours
provider:
  type: g5k
  ...
  reservation: 2020-02-29 19:00:00
  walltime: 14:00:00
  ...

EnOS will wait for the job to start. You can keep the process running in the background (e.g using a screen). Alternatively you can stop it (once the reservation is done) and relaunch it later with the exact same configuration file. For this purpose you can leverage the -f options of EnOS.

Building an Environment

A personalised environment stored in Grid‘5000, containing all the dependencies to install OpenStack in subsequent deployments, may be built directly from command line on-the-fly without and intermediary deploy execution. Run the command enos build g5k, changing the default values accordingly (specially the --cluster one).

In order to complete the environment construction, after the execution of EnOS on the frontend execute the tgz-g5k command following the instructions of the Grid5000 documentation to finish the registration of the new environment.

Once the environment is registered in the database, the name of this environment can be used in the EnOS configuration replacing the default one. For example, let’s suppose we want to use a personalised environment named enos-debian9-x64-openstack, then the configuration can be set as follows:

provider:
  type: g5k
  env_name: enos-debian9-x64-openstack
  ...