Install via Devstack

Overview

Tacker provides some examples, or templates, of local.conf used for Devstack. You can find them in ${TACKER_ROOT}/devstack directory in the tacker repository.

Devstack supports installation from different code branch by specifying branch name in your local.conf as described in below. If you install the latest version, use master branch. On the other hand, if you install specific release, suppose ussuri in this case, branch name must be stable/ussuri.

For installation, stack.sh script in Devstack should be run as a non-root user with sudo enabled. Add a separate user stack and granting relevant privileges is a good way to install via Devstack 1.

Install

Devstack expects to be provided local.conf before running install script. The first step of installing tacker is to clone Devstack and prepare your local.conf.

  1. Download DevStack

    Get Devstack via git, with specific branch optionally if you prefer, and go down to the directory.

    $ git clone https://opendev.org/openstack-dev/devstack -b <branch-name>
    $ cd devstack
    
  2. Enable tacker related Devstack plugins in local.conf file

    local.conf needs to be created by manual, or copied from Tacker repo 2 renamed as local.conf. We have two choices for configuration basically. First one is the all-in-one mode that installs full Devstack environment including Tacker in one PC or Laptop. Second, it is standalone mode which only will install only Tacker environment with some mandatory OpenStack services. Nova, Neutron or other essential components are not included in this mode.

    1. All-in-one mode

      There are two examples for all-in-one mode, targetting OpenStack or Kubernetes as VIM.

      local.conf for all-in-one mode with OpenStack 3 is shown as below.

      [[local|localrc]]
      ############################################################
      # Customize the following HOST_IP based on your installation
      ############################################################
      HOST_IP=127.0.0.1
      
      ADMIN_PASSWORD=devstack
      MYSQL_PASSWORD=devstack
      RABBIT_PASSWORD=devstack
      SERVICE_PASSWORD=$ADMIN_PASSWORD
      SERVICE_TOKEN=devstack
      
      ############################################################
      # Customize the following section based on your installation
      ############################################################
      
      # Pip
      PIP_USE_MIRRORS=False
      USE_GET_PIP=1
      
      #OFFLINE=False
      #RECLONE=True
      
      # Logging
      LOGFILE=$DEST/logs/stack.sh.log
      VERBOSE=True
      ENABLE_DEBUG_LOG_LEVEL=True
      ENABLE_VERBOSE_LOG_LEVEL=True
      
      # Neutron ML2 with OpenVSwitch
      Q_PLUGIN=ml2
      Q_AGENT=openvswitch
      
      # Disable security groups
      Q_USE_SECGROUP=False
      LIBVIRT_FIREWALL_DRIVER=nova.virt.firewall.NoopFirewallDriver
      
      # Enable heat, networking-sfc, barbican and mistral
      enable_plugin heat https://opendev.org/openstack/heat master
      enable_plugin networking-sfc https://opendev.org/openstack/networking-sfc master
      enable_plugin barbican https://opendev.org/openstack/barbican master
      enable_plugin mistral https://opendev.org/openstack/mistral master
      
      # Ceilometer
      #CEILOMETER_PIPELINE_INTERVAL=300
      CEILOMETER_EVENT_ALARM=True
      enable_plugin ceilometer https://opendev.org/openstack/ceilometer master
      enable_plugin aodh https://opendev.org/openstack/aodh master
      
      # Blazar
      enable_plugin blazar https://github.com/openstack/blazar.git master
      
      # Fenix
      enable_plugin fenix https://opendev.org/x/fenix.git master
      
      # Tacker
      enable_plugin tacker https://opendev.org/openstack/tacker master
      
      enable_service n-novnc
      enable_service n-cauth
      
      disable_service tempest
      
      [[post-config|/etc/neutron/dhcp_agent.ini]]
      [DEFAULT]
      enable_isolated_metadata = True
      

      The difference between all-in-one mode with Kubernetes 4 is to deploy kuryr-kubernetes and octavia.

      [[local|localrc]]
      ############################################################
      # Customize the following HOST_IP based on your installation
      ############################################################
      HOST_IP=127.0.0.1
      
      ADMIN_PASSWORD=devstack
      MYSQL_PASSWORD=devstack
      RABBIT_PASSWORD=devstack
      SERVICE_PASSWORD=$ADMIN_PASSWORD
      SERVICE_TOKEN=devstack
      
      ############################################################
      # Customize the following section based on your installation
      ############################################################
      
      # Pip
      PIP_USE_MIRRORS=False
      USE_GET_PIP=1
      
      #OFFLINE=False
      #RECLONE=True
      
      # Logging
      LOGFILE=$DEST/logs/stack.sh.log
      VERBOSE=True
      ENABLE_DEBUG_LOG_LEVEL=True
      ENABLE_VERBOSE_LOG_LEVEL=True
      
      # Neutron ML2 with OpenVSwitch
      Q_PLUGIN=ml2
      Q_AGENT=openvswitch
      
      # Disable security groups
      Q_USE_SECGROUP=False
      LIBVIRT_FIREWALL_DRIVER=nova.virt.firewall.NoopFirewallDriver
      
      # Enable heat, networking-sfc, barbican and mistral
      enable_plugin heat https://opendev.org/openstack/heat master
      enable_plugin networking-sfc https://opendev.org/openstack/networking-sfc master
      enable_plugin barbican https://opendev.org/openstack/barbican master
      enable_plugin mistral https://opendev.org/openstack/mistral master
      
      # Ceilometer
      #CEILOMETER_PIPELINE_INTERVAL=300
      enable_plugin ceilometer https://opendev.org/openstack/ceilometer master
      enable_plugin aodh https://opendev.org/openstack/aodh master
      
      # Blazar
      enable_plugin blazar https://github.com/openstack/blazar.git master
      
      # Tacker
      enable_plugin tacker https://opendev.org/openstack/tacker master
      
      enable_service n-novnc
      enable_service n-cauth
      
      disable_service tempest
      
      # Enable kuryr-kubernetes, docker, octavia
      KUBERNETES_VIM=True
      enable_plugin kuryr-kubernetes https://opendev.org/openstack/kuryr-kubernetes master
      enable_plugin octavia https://opendev.org/openstack/octavia master
      enable_plugin devstack-plugin-container https://opendev.org/openstack/devstack-plugin-container master
      #KURYR_K8S_CLUSTER_IP_RANGE="10.0.0.0/24"
      
      [[post-config|/etc/neutron/dhcp_agent.ini]]
      [DEFAULT]
      enable_isolated_metadata = True
      
      [[post-config|$OCTAVIA_CONF]]
      [controller_worker]
      amp_active_retries=9999
      

      Note

      The above local.conf.kubernetes does not work on CentOS8. Because docker-ce is not supported on CentOS8.

    2. Standalone mode

      The local.conf file of standalone mode from 5 is shown as below.

      [[local|localrc]]
      ############################################################
      # Customize the following HOST_IP based on your installation
      ############################################################
      HOST_IP=127.0.0.1
      SERVICE_HOST=127.0.0.1
      SERVICE_PASSWORD=devstack
      ADMIN_PASSWORD=devstack
      SERVICE_TOKEN=devstack
      DATABASE_PASSWORD=root
      RABBIT_PASSWORD=password
      ENABLE_HTTPD_MOD_WSGI_SERVICES=True
      KEYSTONE_USE_MOD_WSGI=True
      
      # Logging
      LOGFILE=$DEST/logs/stack.sh.log
      VERBOSE=True
      ENABLE_DEBUG_LOG_LEVEL=True
      ENABLE_VERBOSE_LOG_LEVEL=True
      GIT_BASE=${GIT_BASE:-https://opendev.org}
      
      TACKER_MODE=standalone
      USE_BARBICAN=True
      enable_plugin networking-sfc ${GIT_BASE}/openstack/networking-sfc
      enable_plugin barbican ${GIT_BASE}/openstack/barbican
      enable_plugin mistral ${GIT_BASE}/openstack/mistral
      enable_plugin tacker ${GIT_BASE}/openstack/tacker
      
  3. Installation

    After saving the local.conf, we can run stack.sh in the terminal to start setting up.

    $ ./stack.sh
    

Footnotes

1

https://docs.openstack.org/devstack/latest/

2

https://opendev.org/openstack/tacker/src/branch/master/devstack

3

https://opendev.org/openstack/tacker/src/branch/master/devstack/local.conf.example

4

https://opendev.org/openstack/tacker/src/branch/master/devstack/local.conf.kubernetes

5

https://opendev.org/openstack/tacker/src/branch/master/devstack/local.conf.standalone