
This patch adds documentation for running v1 FT locally on a multi-node system similar to Zuul. The porpose of this change is to encourage users to test Tacker v1 features on local since most of v1 features are not under active development anymore and planned to be moved to periodic jobs or dropped from zuul tests. Five test scenarios are supported in this change as a first step. * tacker-ft-legacy-vim * tacker-ft-v1-vnfpkgm * tacker-ft-v1-k8s * tacker-ft-v1-tosca-vnflcm * tacker-ft-v1-userdata-vnflcm It also provides sample DevStack configuration files, setup scripts and `local.conf.HOSTNAME`. Implements: blueprint reduce-ft-time Co-Authored-By: Ai Hamaho <ai.hamano@ntt-at.co.jp> Co-Authored-By: Yasufumi Ogawa <yasufum.o@gmail.com> Change-Id: Id0debea403ccb9490da14b1a77c89ff7b42ee178
7.9 KiB
Install via Devstack
Note
The content of this document has been confirmed to work using Tacker 2024.2 Dalmatian.
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
2024.2 Dalmatian
release, usestable/2024.2
.
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.
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 interfaces.
Operation System
If you do not have a preference, we recommend to use a clean and
minimal install of latest LTS version of Ubuntu
.
DevStack attempts to support the two latest LTS releases of Ubuntu. For details, please refer to Devstack.
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
.
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
Enable tacker related Devstack plugins in
local.conf
fileThe
local.conf
can be created manually, or copied from Tacker repo. If you copied from repo, rename it aslocal.conf
.We have two choices for configuration basically:
All-in-one mode
All-in-one mode installs full Devstack environment including Tacker in one machine.
Note
TACKER_MODE="all"
is set in local.conf for all-in-one mode. If TACKER_MODE is omitted in local.conf,TACKER_MODE="all"
is set by default.There are two examples for
all-in-one
mode: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
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.
Standalone mode
Standalone mode installs only Tacker environment with some mandatory OpenStack services.
Note
TACKER_MODE="standalone"
is set in local.conf for standalone 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
Note
Standalone mode is used in Zuul environments that run FT. For more information about FT, see
/contributor/tacker_functional_test
or the local.conf used in each Zuul environment.
Execute installation script
After saving the
local.conf
, we can runstack.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.
Install PostgreSQL and login.
$ sudo apt install postgresql postgresql-contrib $ sudo -i -u postgres $ psql
Create PostgreSQL database and user.
CREATE DATABASE tacker; CREATE ROLE tacker WITH CREATEDB LOGIN PASSWORD '<TACKERDB_PASSWORD>'; exit;
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 ofbytea_output
inpostgresql.conf
.bytea_output = 'escape'
Restart PostgreSQL server.
$ sudo systemctl restart postgresql.service
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
Activate the python virtual environment for Openstack and populate Tacker database.
Note
The
psycopg2
python library may need to be installed based on your environment after activating the virtual environment. You can find the version of the library in Requirements of OpenStack.$ source /opt/stack/data/venv/bin/activate (venv) $ tacker-db-manage --config-file /etc/tacker/tacker.conf upgrade head