Configuration specification

Configuration file contains the following parameters:

  • cloud_management
  • power_managements
  • node_discover
  • services
  • containers

Each parameter specifies a driver or a list of drivers.

Example configuration:

cloud_management:
  driver: devstack
  args:
    address: 192.168.1.240
    auth:
      username: ubuntu
      iface: enp0s3

power_managements:
- driver: libvirt
  args:
    connection_uri: qemu+ssh://ubuntu@10.0.1.50/system

- driver: ipmi
  args:
    fqdn_to_bmc:
      node-1.domain.tld:
        address: 120.10.30.65
        username: alex
        password: super-secret

node_discover:
  driver: node_list
  args:
  - fqdn: node-1.domain.tld
    ip: 192.168.1.240
    mac: 1e:24:c3:75:dd:2c

services:
  glance-api:
    driver: screen
    args:
      grep: glance-api
      window_name: g-api
    hosts:
    - 192.168.1.240

containers:
  neutron_api:
    driver: docker_container
    args:
      container_name: neutron_api

cloud_management

This parameter specifies cloud management driver and its arguments. cloud_management is responsible for configuring connection to nodes and contains arguments such as SSH username/password/key/proxy.

cloud_management:
  driver: devstack  # name of the driver
  args:             # arguments for the driver
    address: 192.168.1.240
    auth:
      username: ubuntu
      iface: enp0s3

Drivers can support discovering of cloud nodes. For example, saltcloud drives allow discovering information about nodes through master/config node of the cloud.

List of supported drivers for cloud_management: Cloud management

power_managements

This parameter specifies list of power management drivers. Such drivers allow controlling power state of cloud nodes.

power_managements:
- driver: libvirt   # name of the driver
  args:             # arguments for the driver
    connection_uri: qemu+ssh://ubuntu@10.0.1.50/system

- driver: ipmi      # name of the driver
  args:             # arguments for the driver
    fqdn_to_bmc:
      node-1.domain.tld:
        address: 120.10.30.65
        username: alex
        password: super-secret

List of supported drivers for power_managements: Power management

node_discover

This parameter specifies node discover driver. node_discover is responsible for fetching list of hosts for the cloud. If node_discover is specified in configuration then cloud_management will only control connection options to the nodes.

node_discover:
  driver: node_list
  args:
  - fqdn: node-1.domain.tld
    ip: 192.168.1.240
    mac: 1e:24:c3:75:dd:2c

List of supported drivers for node_discover: Node discover

services

This parameter specifies list of services and their types. This parameter allows updating/adding services which are embedded in cloud_management driver.

services:
  glance-api:            # name of the service
    driver: screen       # name of the service driver
    args:                # arguments for the driver
      grep: glance-api
      window_name: g-api
    hosts:               # list of hosts where this service running
    - 192.168.1.240
  mysql:                 # name of the service
    driver: process      # name of the service driver
    args:                # arguments for the driver
      grep: mysqld
      port:
      - tcp
      - 3307
      restart_cmd: sudo service mysql restart
      start_cmd: sudo service mysql start
      terminate_cmd: sudo service mysql stop

Service driver contains optional hosts parameter which controls discovering of hosts where the service is running. If hosts specified, then service discovering is disabled for this service and hosts specified in hosts will be used, otherwise, service will be searched across all nodes.

List of supported drivers for services: Service drivers

containers

This parameter specifies list of containers and their types. This parameter allows updating/adding containers which are embedded in cloud_management driver.

containers:
  neutron_api:                     # name of the container
    driver: docker_container       # name of the container driver
    args:                          # arguments for the driver
      container_name: neutron_api
    hosts:                         # list of hosts where this container running
    - 192.168.1.240

Container driver contains optional hosts parameter which controls discovering of hosts where the container is running. If hosts specified, then container discovering is disabled for this container and hosts specified in hosts will be used, otherwise, container will be searched across all nodes.

List of supported drivers for containers: Container drivers