Files
tacker/doc/source/install/devstack.rst
Yoshiro Watanabe 4add7b4a03 Remove kuryr-kubernetes from devstack install
This patch changes to be able to build the k8s cluster on local
environment with devstack-plugin-container by setting
KUBERNETES_VIM=True in local.conf.

This patch also includes the following fixes:
* Remove settings related to kuryr-kubernetes.
* Added processing to configure required settings in
  devstack-plugin-container.
* Modify related documents.
* Dropping octavia.

Change-Id: I6a898c3d82bd82b6b687d1941565e0efa963cdbb
2024-12-18 07:58:55 +00:00

7.3 KiB

Install via Devstack

Overview

Devstack based installation requires local.conf file. This file contains different configuration options required for installation.

Tacker provides some sample local.conf templates which can be used for Devstack based Tacker installation. You can find them in ${TACKER_ROOT}/devstack directory in the tacker repository.

Devstack supports installation from different code branches by specifying branch name in your local.conf.

  • For latest version installation, use master branch.
  • For specific release based installation, use corresponding branch name. For ex, to install wallaby release, use stable/wallaby.

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 Devstack1.

Hardware Requirements

We recommend that your system meets the following hardware requirements:

Note

These are reference values to install Openstack and Kubernetes as VIM which generally requires the most resources. In reality, more parameters affect required resources.

Criteria Recommended
CPU 4 cores or more
RAM 16 GB or more
Storage 80 GB or more

Note

We recommend that you run DevStack in a VM, rather than on your bare-metal server. If you have to run devstack on a bare-metal server, It is recommended to use a server that has at least two network interfaces2.

Install

Devstack installation script stack.sh expects local.conf.

So 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/devstack -b <branch-name>
    $ cd devstack
  2. Enable tacker related Devstack plugins in local.conf file

    The local.conf can be created manually, or copied from Tacker repo3. If copied, rename it as local.conf.

    We have two choices for configuration basically:

    1. All-in-one mode

      All-in-one mode installs full Devstack environment including Tacker in one PC or Laptop.

      There are two examples for all-in-one mode:

      1. OpenStack as VIM.

        The example local.conf file for all-in-one mode with OpenStack is available at ${TACKER_ROOT}/devstack/local.conf.example.

        Refer below the contents of local.conf.example:

        ../../../devstack/local.conf.example

      2. Openstack and Kubernetes as VIM.

        The difference between all-in-one mode with Kubernetes is to deploy devstack-plugin-container.

        The example local.conf for all-in-one mode with Kubernetes is available at ${TACKER_ROOT}/devstack/local.conf.kubernetes

        Refer below the contents of local.conf.kubernetes

        ../../../devstack/local.conf.kubernetes

        Note

        The above local.conf.kubernetes only works on Ubuntu. Because Devstack-plugin-container only supports building Kubernetes clusters on Ubuntu.

    2. Standalone mode

      Standalone mode installs only Tacker environment with some mandatory OpenStack services. Nova, Neutron or other essential components are not included in this mode.

      The example local.conf for standalone mode is available at ${TACKER_ROOT}/devstack/local.conf.standalone

      Refer below the contents of local.conf.standalone

      ../../../devstack/local.conf.standalone

  3. In CentOS environment install and start ovn services before executing stack.sh.

    $ sudo yum install -y centos-release-openstack-victoria
    $ sudo yum install -y openvswitch
    $ sudo yum install -y openvswitch-ovn-common
    $ sudo yum install -y openvswitch-ovn-central
    $ sudo yum install -y openvswitch-ovn-host
    $ sudo systemctl start ovn-northd.service
    $ sudo systemctl start ovn-controller.service
    $ sudo systemctl start ovs-vswitchd.service
    $ sudo systemctl start ovsdb-server.service
  4. Execute installation script

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

    $ ./stack.sh

Use PostgreSQL as Tacker database

When installing via Devstack, MySQL is used as Tacker database backend by default.

To use PostgreSQL as Tacker database backend, execute the following command.

  1. Install PostgreSQL and login.

    $ sudo apt install postgresql postgresql-contrib
    $ sudo -i -u postgres
    $ psql
  2. Create PostgreSQL database and user.

    CREATE DATABASE tacker;
    CREATE ROLE tacker WITH CREATEDB LOGIN PASSWORD '<TACKERDB_PASSWORD>';
    exit;
  3. Modify postgresql.conf and restart PostgreSQL server.

    Note

    The location of postgresql.conf is different for each distribution. For Ubuntu distribution, modify /etc/postgresql/{POSTGRESQL_VERSION}/main/postgresql.conf.

    Insert escape as the value of bytea_output in postgresql.conf.

    bytea_output = 'escape'

    Restart PostgreSQL server.

    $ sudo service postgresql restart
  4. Modify tacker.conf for PostgreSQL and restart Tacker server.

    Edit the configuration of [database] in /etc/tacker/tacker.conf as follows.

    [database]
    connection = postgresql://tacker:<POSTGRES_PASSWORD>@<POSTGRES_IP>/tacker?client_encoding=utf8

    Restart Tacker server.

    $ sudo systemctl restart devstack@tacker.service
    $ sudo systemctl restart devstack@tacker-conductor.service
  5. Populate Tacker database.

    $ /usr/local/bin/tacker-db-manage \
        --config-file /etc/tacker/tacker.conf \
        upgrade head

Footnotes


  1. https://docs.openstack.org/devstack/latest/↩︎

  2. https://docs.openstack.org/devstack/latest/networking.html↩︎

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