- Use Tobiko project as default tests directory on zuul jobs - Remove DevStack plugin Change-Id: I3f1ab818d835bb5db050d6cbe64dc20fc98b6610changes/62/755262/8
@ -1,123 +0,0 @@ | |||
# -*- mode: ruby -*- | |||
# vi: set ft=ruby : | |||
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | |||
VAGRANTFILE_API_VERSION = "2" | |||
# Customize the count of CPU cores on the VM | |||
CPUS = 4 | |||
# Customize the amount of memory on the VM | |||
MEMORY = ENV.fetch("VM_SIZE", "4096").to_i | |||
# Every Vagrant development environment requires a box. You can search for | |||
# boxes at https://vagrantcloud.com/search. | |||
BOX = ENV.fetch("VM_BOX", "generic/centos8") | |||
# Machine host name | |||
HOSTNAME = "tobiko" | |||
# Top vagrantfile dir | |||
VAGRANTFILE_DIR = File.dirname(__FILE__) | |||
# Source provision playbook | |||
PROVISION_PLAYBOOK = ENV.fetch( | |||
"PROVISION_PLAYBOOK", "#{VAGRANTFILE_DIR}/vagrant/devstack/provision.yaml") | |||
# Host IP address to be assigned to OpenStack in DevStack | |||
HOST_IP = "192.168.33.10" | |||
# Red Hat supscription parameters | |||
REDHAT_ACTIVATIONKEY = ENV.fetch("REDHAT_ACTIVATIONKEY", "") | |||
REDHAT_USERNAME = ENV.fetch("REDHAT_USERNAME", "") | |||
REDHAT_PASSWORD = ENV.fetch("REDHAT_PASSWORD", "") | |||
# Local directory from where look for devstack project | |||
DEVSTACK_SRC_DIR = ENV.fetch( | |||
"DEVSTACK_SRC_DIR", "#{File.dirname(VAGRANTFILE_DIR)}/devstack") | |||
# Local directory from where looking for tobiko project files | |||
TOBIKO_SRC_DIR = ENV.fetch("TOBIKO_SRC_DIR", VAGRANTFILE_DIR) | |||
# Local directory from where looking for requirements project files | |||
REQUIREMENTS_SRC_DIR = ENV.fetch( | |||
"REQUIREMENTS_SRC_DIR", "#{File.dirname(VAGRANTFILE_DIR)}/requirements") | |||
# All Vagrant configuration is done below. The "2" in Vagrant.configure | |||
# configures the configuration version (we support older styles for | |||
# backwards compatibility). Please don't change it unless you know what | |||
# you're doing. | |||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |||
# The most common configuration options are documented and commented below. | |||
# For a complete reference, please see the online documentation at | |||
# https://docs.vagrantup.com. | |||
# Every Vagrant development environment requires a box. You can search for | |||
# boxes at https://vagrantcloud.com/search. | |||
config.vm.box = BOX | |||
# config.vm.box_version = "< 3.0" | |||
config.vm.hostname = HOSTNAME | |||
# Disable automatic box update checking. If you disable this, then | |||
# boxes will only be checked for updates when the user runs | |||
# `vagrant box outdated`. This is not recommended. | |||
# config.vm.box_check_update = false | |||
# Create a forwarded port mapping which allows access to a specific port | |||
# within the machine from a port on the host machine. In the example below, | |||
# accessing "localhost:8080" will access port 80 on the guest machine. | |||
# NOTE: This will enable public access to the opened port | |||
# config.vm.network "forwarded_port", guest: 80, host: 8080 | |||
# Create a forwarded port mapping which allows access to a specific port | |||
# within the machine from a port on the host machine and only allow access | |||
# via 127.0.0.1 to disable public access | |||
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" | |||
# Create a private network, which allows host-only access to the machine | |||
# using a specific IP. | |||
config.vm.network "private_network", ip: HOST_IP | |||
# Create a public network, which generally matched to bridged network. | |||
# Bridged networks make the machine appear as another physical device on | |||
# your network. | |||
# config.vm.network "public_network" | |||
# Share an additional folder to the guest VM. The first argument is | |||
# the path on the host to the actual folder. The second argument is | |||
# the path on the guest to mount the folder. And the optional third | |||
# argument is a set of non-required options. | |||
# config.vm.synced_folder "../data", "/vagrant_data" | |||
# Provider-specific configuration so you can fine-tune various | |||
# backing providers for Vagrant. These expose provider-specific options. | |||
# Example for VirtualBox: | |||
# | |||
config.vm.provider "virtualbox" do |vb| | |||
# Display the VirtualBox GUI when booting the machine | |||
vb.gui = false | |||
vb.cpus = CPUS | |||
vb.memory = MEMORY | |||
end | |||
config.vm.provider "libvirt" do |libvirt| | |||
libvirt.cpus = CPUS | |||
libvirt.memory = MEMORY | |||
end | |||
# Run provision playbook | |||
config.vm.provision "ansible" do |ansible| | |||
ansible.limit = 'all' | |||
ansible.playbook = PROVISION_PLAYBOOK | |||
ansible.extra_vars = ansible.extra_vars = { | |||
'redhat_activationkey' => REDHAT_ACTIVATIONKEY, | |||
'redhat_username' => REDHAT_USERNAME, | |||
'redhat_password' => REDHAT_PASSWORD, | |||
'devstack_src_dir' => DEVSTACK_SRC_DIR, | |||
'requirements_src_dir' => REQUIREMENTS_SRC_DIR, | |||
'tobiko_src_dir' => TOBIKO_SRC_DIR, | |||
} | |||
end | |||
end |
@ -1,26 +0,0 @@ | |||
==================== | |||
Enabling in Devstack | |||
==================== | |||
**WARNING**: the stack.sh script must be run in a disposable VM that is not | |||
being created automatically, see the README.md file in the "devstack" | |||
repository. See contrib/vagrant to create a vagrant VM. | |||
1. Download DevStack:: | |||
git clone https://opendev.org/openstack/devstack.git | |||
cd devstack | |||
2. Add this repo as an external repository:: | |||
> cat local.conf | |||
[[local|localrc]] | |||
enable_plugin tobiko https://opendev.org/x/tobiko | |||
3. Tobiko require Heat to be enabled, so heat should be also enabled:: | |||
[[local|localrc]] | |||
enable_plugin heat https://opendev.org/openstack/heat | |||
3. Run ``stack.sh`` |
@ -1,171 +0,0 @@ | |||
# Directory where this plugin.sh file is | |||
TOBIKO_PLUGIN_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) | |||
function install_tobiko_deps { | |||
if [ "${TOBIKO_BINDEP}" != "" ]; then | |||
install_python3 | |||
install_bindep "${TOBIKO_DIR}/bindep.txt" test | |||
fi | |||
} | |||
function configure_tobiko { | |||
# Ensure any user can write to log file | |||
local log_dir=$(dirname ${TOBIKO_LOG_FILE}) | |||
if ! [ -d "${log_dir}" ]; then | |||
sudo mkdir -p "${log_dir}" | |||
fi | |||
if ! [ -w "${TOBIKO_LOG_FILE}" ]; then | |||
sudo touch "${TOBIKO_LOG_FILE}" | |||
sudo chmod ugo+rw "${TOBIKO_LOG_FILE}" | |||
fi | |||
# Write configuration to a new temporary file | |||
local tobiko_conf_file=$(mktemp) | |||
if [ -f "${TOBIKO_CONF_FILE}" ]; then | |||
# Start from existing tobiko.conf file | |||
cp "${TOBIKO_CONF_FILE}" "${tobiko_conf_file}" | |||
fi | |||
configure_tobiko_default "${tobiko_conf_file}" | |||
configure_tobiko_cirros "${tobiko_conf_file}" | |||
configure_tobiko_glance "${tobiko_conf_file}" | |||
configure_tobiko_keystone "${tobiko_conf_file}" | |||
configure_tobiko_nova "${tobiko_conf_file}" | |||
configure_tobiko_neutron "${tobiko_conf_file}" | |||
echo_summary "Apply changes to actual ${TOBIKO_CONF_FILE} file." | |||
sudo mkdir -p $(dirname "${TOBIKO_CONF_FILE}") | |||
sudo mv "${tobiko_conf_file}" "${TOBIKO_CONF_FILE}" | |||
sudo chmod ugo+r "${TOBIKO_CONF_FILE}" | |||
echo "${TOBIKO_CONF_FILE} file content:" | |||
echo -------------------------------- | |||
cat "${TOBIKO_CONF_FILE}" | |||
echo -------------------------------- | |||
} | |||
function configure_tobiko_cirros { | |||
echo_summary "Write [cirros] section to ${TOBIKO_CONF_FILE}" | |||
local tobiko_conf_file=$1 | |||
iniset_nonempty "${tobiko_conf_file}" cirros name "${TOBIKO_CIRROS_IMAGE_NAME}" | |||
iniset_nonempty "${tobiko_conf_file}" cirros url "${TOBIKO_CIRROS_IMAGE_URL}" | |||
iniset_nonempty "${tobiko_conf_file}" cirros file "${TOBIKO_CIRROS_IMAGE_FILE}" | |||
iniset_nonempty "${tobiko_conf_file}" cirros username "${TOBIKO_CIRROS_USERNAME}" | |||
iniset_nonempty "${tobiko_conf_file}" cirros password "${TOBIKO_CIRROS_PASSWORD}" | |||
} | |||
function configure_tobiko_default { | |||
echo_summary "Write [DEFAULT] section to ${TOBIKO_CONF_FILE}" | |||
local tobiko_conf_file=$1 | |||
iniset ${tobiko_conf_file} DEFAULT debug "${TOBIKO_DEBUG}" | |||
iniset ${tobiko_conf_file} DEFAULT log_dir $(dirname "${TOBIKO_LOG_FILE}") | |||
iniset ${tobiko_conf_file} DEFAULT log_file $(basename "${TOBIKO_LOG_FILE}") | |||
} | |||
function configure_tobiko_glance { | |||
echo_summary "Write [glance] section to ${TOBIKO_CONF_FILE}" | |||
local tobiko_conf_file=$1 | |||
iniset_nonempty "${tobiko_conf_file}" glance image_dir "${TOBIKO_GLANCE_IMAGE_DIR}" | |||
} | |||
function configure_tobiko_keystone { | |||
echo_summary "Write [keystone] section to ${TOBIKO_CONF_FILE}" | |||
local tobiko_conf_file=$1 | |||
local api_version=${IDENTITY_API_VERSION} | |||
if [ "${api_version}" == '2' ]; then | |||
local auth_url=${KEYSTONE_AUTH_URI/v2.0} | |||
else | |||
local auth_url=${KEYSTONE_AUTH_URI_V3:-${KEYSTONE_AUTH_URI/v3}} | |||
fi | |||
local project_id=$(get_or_create_project \ | |||
"${TOBIKO_KEYSTONE_PROJECT_NAME}" \ | |||
"${TOBIKO_KEYSTONE_PROJECT_DOMAIN_NAME}") | |||
local user_id=$(get_or_create_user \ | |||
"${TOBIKO_KEYSTONE_USERNAME}" \ | |||
"${TOBIKO_KEYSTONE_PASSWORD}" \ | |||
"${TOBIKO_KEYSTONE_USER_DOMAIN_NAME}") | |||
local user_project_role_id=$(get_or_add_user_project_role \ | |||
"${TOBIKO_KEYSTONE_USER_ROLE}" \ | |||
"${user_id}" \ | |||
"${project_id}") | |||
local user_domain_role_id=$(get_or_add_user_domain_role \ | |||
"${TOBIKO_KEYSTONE_USER_ROLE}" \ | |||
"${user_id}" \ | |||
"${TOBIKO_KEYSTONE_USER_DOMAIN_NAME}") | |||
iniset "${tobiko_conf_file}" keystone cloud_name "${TOBIKO_KEYSTONE_CLOUD_NAME}" | |||
iniset "${tobiko_conf_file}" keystone api_version "${api_version}" | |||
iniset "${tobiko_conf_file}" keystone auth_url "${auth_url}" | |||
iniset "${tobiko_conf_file}" keystone username "${TOBIKO_KEYSTONE_USERNAME}" | |||
iniset "${tobiko_conf_file}" keystone password "${TOBIKO_KEYSTONE_PASSWORD}" | |||
iniset "${tobiko_conf_file}" keystone project_name "${TOBIKO_KEYSTONE_PROJECT_NAME}" | |||
if [ "${api_version}" != '2' ]; then | |||
iniset "${tobiko_conf_file}" keystone domain_name "${TOBIKO_KEYSTONE_DOMAIN_NAME}" | |||
iniset "${tobiko_conf_file}" keystone user_domain_name \ | |||
"${TOBIKO_KEYSTONE_USER_DOMAIN_NAME}" | |||
iniset "${tobiko_conf_file}" keystone project_domain_name \ | |||
"${TOBIKO_KEYSTONE_PROJECT_DOMAIN_NAME}" | |||
iniset "${tobiko_conf_file}" keystone trust_id "${TOBIKO_KEYSTONE_TRUST_ID}" | |||
fi | |||
} | |||
function configure_tobiko_nova { | |||
echo_summary "Write [nova] section to ${TOBIKO_CONF_FILE}" | |||
local tobiko_conf_file=$1 | |||
# Write key_file | |||
local key_file=${TOBIKO_NOVA_KEY_FILE:-} | |||
if [ "${key_file}" != "" ]; then | |||
iniset "${tobiko_conf_file}" nova key_file "${key_file}" | |||
fi | |||
} | |||
function configure_tobiko_neutron { | |||
echo_summary "Write [neutron] section to ${TOBIKO_CONF_FILE}" | |||
local tobiko_conf_file=$1 | |||
# Write floating network | |||
local floating_network=${TOBIKO_NEUTRON_FLOATING_NETWORK} | |||
if [ "${floating_network}" != "" ]; then | |||
iniset "${tobiko_conf_file}" neutron floating_network "${floating_network}" | |||
fi | |||
} | |||
function iniset_nonempty { | |||
# Calls iniset only when option value is not an empty string | |||
if [ -n "$4" ]; then | |||
iniset "$@" | |||
fi | |||
} | |||
if [[ "$1" == "stack" ]]; then | |||
case "$2" in | |||
install) | |||
echo_summary "Installing Tobiko dependencies" | |||
install_tobiko_deps | |||
;; | |||
test-config) | |||
echo_summary "Configuring Tobiko test cases" | |||
configure_tobiko | |||
;; | |||
esac | |||
fi |
@ -1,43 +0,0 @@ | |||
define_plugin tobiko | |||
plugin_requires tobiko heat | |||
# --- General settings ---- | |||
TOBIKO_REPO=${TOBIKO_REPO:-${GIT_BASE}/x/tobiko.git} | |||
GITREPO["tobiko"]=${TOBIKO_REPO} | |||
TOBIKO_VERSION=${TOBIKO_BRANCH:-master} | |||
GITBRANCH["tobiko"]=${TOBIKO_VERSION} | |||
TOBIKO_DIR=${TOBIKO_DIR:-${DEST}/tobiko} | |||
GITDIR["tobiko"]=${TOBIKO_DIR} | |||
TOBIKO_CONF_FILE=${TOBIKO_CONF_FILE:-/etc/tobiko/tobiko.conf} | |||
TOBIKO_DEBUG=${TOBIKO_DEBUG:-True} | |||
TOBIKO_LOG_FILE=${TOBIKO_LOG_FILE:-${LOGDIR}/tobiko.log} | |||
TOBIKO_BINDEP=${BINDEP_CMD:+-bindep} | |||
# --- Glance settings --- | |||
TOBIKO_GLANCE_IMAGE_DIR=${TOBIKO_GLANCE_IMAGE_DIR:-} | |||
# --- Cirros image settings --- | |||
TOBIKO_CIRROS_IMAGE_NAME=${TOBIKO_CIRROS_IMAGE_NAME:-} | |||
TOBIKO_CIRROS_IMAGE_URL=${TOBIKO_CIRROS_IMAGE_URL:-} | |||
TOBIKO_CIRROS_IMAGE_FILE=${TOBIKO_CIRROS_IMAGE_FILE:-} | |||
TOBIKO_CIRROS_USERNAME=${TOBIKO_CIRROS_USERNAME:-} | |||
TOBIKO_CIRROS_PASSWORD=${TOBIKO_CIRROS_PASSWORD:-} | |||
# --- Keystone settings --- | |||
# See ``lib/keystone`` where these users and tenants are set up | |||
TOBIKO_KEYSTONE_CLOUD_NAME=${TOBIKO_KEYSTONE_CLOUD_NAME:-devstack-admin} | |||
TOBIKO_KEYSTONE_USERNAME=${TOBIKO_KEYSTONE_USERNAME:-${ADMIN_USERNAME:-admin}} | |||
TOBIKO_KEYSTONE_PASSWORD=${TOBIKO_KEYSTONE_PASSWORD:-${ADMIN_PASSWORD:-secret}} | |||
TOBIKO_KEYSTONE_PROJECT_NAME=${TOBIKO_KEYSTONE_PROJECT_NAME:-${ADMIN_TENANT_NAME:-admin}} | |||
TOBIKO_KEYSTONE_USER_DOMAIN_NAME=${TOBIKO_KEYSTONE_USER_DOMAIN_NAME:-${ADMIN_DOMAIN_NAME:-Default}} | |||
TOBIKO_KEYSTONE_PROJECT_DOMAIN_NAME=${TOBIKO_KEYSTONE_PROJECT_DOMAIN_NAME:-${ADMIN_DOMAIN_NAME:-Default}} | |||
TOBIKO_KEYSTONE_TRUST_ID=${TOBIKO_KEYSTONE_TRUST_ID:-} | |||
TOBIKO_KEYSTONE_USER_ROLE=${TOBIKO_KEYSTONE_USER_ROLE:-admin} | |||
# --- Nova settings --- | |||
TOBIKO_NOVA_KEY_FILE=${TOBIKO_NOVA_KEY_FILE:-} | |||
# --- Neutron settings --- | |||
TOBIKO_NEUTRON_FLOATING_NETWORK=${TOBIKO_NEUTRON_FLOATING_NETWORK:-${PUBLIC_NETWORK_NAME}} |
@ -1,74 +0,0 @@ | |||
[[local|localrc]] | |||
MULTI_HOST=0 | |||
# Configure IPS | |||
HOST_IP=172.18.161.6 | |||
SERVICE_HOST=172.18.161.6 | |||
MYSQL_HOST=172.18.161.6 | |||
RABBIT_HOST=172.18.161.6 | |||
GLANCE_HOSTPORT=172.18.161.6:9292 | |||
# Configure passwords | |||
ADMIN_PASSWORD=secret | |||
DATABASE_PASSWORD=secret | |||
RABBIT_PASSWORD=secret | |||
SERVICE_PASSWORD=secret | |||
# Use python 3 | |||
USE_PYTHON3=true | |||
# Configure Heat -------------------------------------------------------------- | |||
enable_plugin heat https://git.openstack.org/openstack/heat | |||
# Configure Glance ------------------------------------------------------------ | |||
# download and register a VM image that heat can launch | |||
# IMAGE_URL_SITE="https://download.fedoraproject.org" | |||
# IMAGE_URL_PATH="/pub/fedora/linux/releases/29/Cloud/x86_64/images/" | |||
# IMAGE_URL_FILE="Fedora-Cloud-Base-29-1.2.x86_64.qcow2" | |||
# IMAGE_URLS+=","$IMAGE_URL_SITE$IMAGE_URL_PATH$IMAGE_URL_FILE | |||
# Configure Nova -------------------------------------------------------------- | |||
# DEFAULT_INSTANCE_TYPE=ds512M | |||
# Configure Neutron ----------------------------------------------------------- | |||
enable_service neutron | |||
NETWORK_API_EXTENSIONS=address-scope,agent,allowed-address-pairs,auto-allocated-topology,availability_zone,binding,default-subnetpools,dhcp_agent_scheduler,dns-domain-ports,dns-integration,dvr,empty-string-filtering,ext-gw-mode,external-net,extra_dhcp_opt,extraroute,filter-validation,fip-port-details,flavors,ip-substring-filtering,l3-flavors,l3-ha,l3_agent_scheduler,logging,metering,multi-provider,net-mtu,net-mtu-writable,network-ip-availability,network_availability_zone,pagination,port-security,project-id,provider,qos,qos-bw-minimum-ingress,qos-fip,quotas,quota_details,rbac-policies,router,router_availability_zone,security-group,port-mac-address-regenerate,port-security-groups-filtering,segment,service-type,sorting,standard-attr-description,standard-attr-revisions,standard-attr-segment,standard-attr-timestamp,standard-attr-tag,subnet_allocation,trunk,trunk-details,uplink-status-propagation | |||
## Neutron options | |||
Q_USE_SECGROUP=True | |||
FLOATING_RANGE="172.18.161.0/24" | |||
IPV4_ADDRS_SAFE_TO_USE="10.0.0.0/22" | |||
Q_FLOATING_ALLOCATION_POOL=start=172.18.161.200,end=172.18.161.254 | |||
PUBLIC_NETWORK_GATEWAY=172.18.161.1 | |||
PUBLIC_INTERFACE=eth1 | |||
# Open vSwitch provider networking configuration | |||
Q_USE_PROVIDERNET_FOR_PUBLIC=True | |||
OVS_PHYSICAL_BRIDGE=br-ex | |||
PUBLIC_BRIDGE=br-ex | |||
OVS_BRIDGE_MAPPINGS=public:br-ex | |||
IP_VERSION=4 | |||
# enable IPv6 | |||
# IP_VERSION=4+6 | |||
# IPV6_RA_MODE=slaac | |||
# IPV6_ADDRESS_MODE=slaac | |||
# IPV6_ADDRS_SAFE_TO_USE=fd$IPV6_GLOBAL_ID::/56 | |||
# IPV6_PRIVATE_NETWORK_GATEWAY=fd$IPV6_GLOBAL_ID::1 | |||
# Configure Octavia ----------------------------------------------------------- | |||
enable_plugin octavia https://opendev.org/openstack/octavia | |||
ENABLED_SERVICES+=,octavia,o-cw,o-hk,o-hm,o-api | |||
# Configure Tobiko ------------------------------------------------------------ | |||
enable_plugin tobiko /vagrant |
@ -1,97 +0,0 @@ | |||
[[local|localrc]] | |||
MULTI_HOST=0 | |||
# Configure IPS | |||
HOST_IP=172.18.161.6 | |||
SERVICE_HOST=172.18.161.6 | |||
MYSQL_HOST=172.18.161.6 | |||
RABBIT_HOST=172.18.161.6 | |||
GLANCE_HOSTPORT=172.18.161.6:9292 | |||
# Configure passwords | |||
ADMIN_PASSWORD=secret | |||
DATABASE_PASSWORD=secret | |||
RABBIT_PASSWORD=secret | |||
SERVICE_PASSWORD=secret | |||
# Use python 3 | |||
USE_PYTHON3=true | |||
# Configure Heat -------------------------------------------------------------- | |||
enable_plugin heat https://git.openstack.org/openstack/heat | |||
# Configure Glance ------------------------------------------------------------ | |||
# download and register a VM image that heat can launch | |||
# IMAGE_URL_SITE="https://download.fedoraproject.org" | |||
# IMAGE_URL_PATH="/pub/fedora/linux/releases/29/Cloud/x86_64/images/" | |||
# IMAGE_URL_FILE="Fedora-Cloud-Base-29-1.2.x86_64.qcow2" | |||
# IMAGE_URLS+=","$IMAGE_URL_SITE$IMAGE_URL_PATH$IMAGE_URL_FILE | |||
# Configure Nova -------------------------------------------------------------- | |||
# DEFAULT_INSTANCE_TYPE=ds512M | |||
disable_service n-net | |||
# Configure Neutron ----------------------------------------------------------- | |||
# Enable services that are required by OVN. | |||
enable_plugin neutron https://opendev.org/openstack/neutron | |||
enable_service q-svc | |||
enable_service q-trunk | |||
enable_service q-dns | |||
#enable_service q-qos | |||
# Disable Neutron agents not used with OVN. | |||
disable_service q-agt | |||
disable_service q-l3 | |||
disable_service q-dhcp | |||
disable_service q-meta | |||
# enable_service neutron | |||
NETWORK_API_EXTENSIONS=address-scope,agent,allowed-address-pairs,auto-allocated-topology,availability_zone,binding,default-subnetpools,dhcp_agent_scheduler,dns-domain-ports,dns-integration,dvr,empty-string-filtering,ext-gw-mode,external-net,extra_dhcp_opt,extraroute,filter-validation,fip-port-details,flavors,ip-substring-filtering,l3-flavors,l3-ha,l3_agent_scheduler,logging,metering,multi-provider,net-mtu,net-mtu-writable,network-ip-availability,network_availability_zone,pagination,port-security,project-id,provider,qos,qos-bw-minimum-ingress,qos-fip,quotas,quota_details,rbac-policies,router,router_availability_zone,security-group,port-mac-address-regenerate,port-security-groups-filtering,segment,service-type,sorting,standard-attr-description,standard-attr-revisions,standard-attr-segment,standard-attr-timestamp,standard-attr-tag,subnet_allocation,trunk,trunk-details,uplink-status-propagation | |||
## Neutron options | |||
Q_USE_SECGROUP=True | |||
FLOATING_RANGE="172.18.161.0/24" | |||
IPV4_ADDRS_SAFE_TO_USE="10.0.0.0/22" | |||
Q_FLOATING_ALLOCATION_POOL=start=172.18.161.200,end=172.18.161.254 | |||
PUBLIC_NETWORK_GATEWAY=172.18.161.1 | |||
PUBLIC_INTERFACE=eth1 | |||
# Open vSwitch provider networking configuration | |||
Q_USE_PROVIDERNET_FOR_PUBLIC=True | |||
OVS_PHYSICAL_BRIDGE=br-ex | |||
PUBLIC_BRIDGE=br-ex | |||
OVS_BRIDGE_MAPPINGS=public:br-ex | |||
IP_VERSION=4 | |||
# enable IPv6 | |||
# IP_VERSION=4+6 | |||
# IPV6_RA_MODE=slaac | |||
# IPV6_ADDRESS_MODE=slaac | |||
# IPV6_ADDRS_SAFE_TO_USE=fd$IPV6_GLOBAL_ID::/56 | |||
# IPV6_PRIVATE_NETWORK_GATEWAY=fd$IPV6_GLOBAL_ID::1 | |||
# Configure OVN --------------------------------------------------------------- | |||
enable_plugin networking-ovn https://opendev.org/openstack/networking-ovn | |||
enable_service ovn-northd | |||
enable_service ovn-controller | |||
enable_service networking-ovn-metadata-agent | |||
# Configure Octavia ----------------------------------------------------------- | |||
enable_plugin octavia https://opendev.org/openstack/octavia | |||
ENABLED_SERVICES+=,octavia,o-cw,o-hk,o-hm,o-api | |||
# Configure Tobiko ------------------------------------------------------------ | |||
enable_plugin tobiko /vagrant |
@ -1,53 +0,0 @@ | |||
#!/bin/bash | |||
set -eux | |||
if [ -r "./provisionrc" ]; then | |||
echo "Load parameters from RC file" | |||
source "./provisionrc" || true | |||
fi | |||
echo "Process script parameters and set default values when needed" | |||
export PROVISION_DIR=${PROVISION_DIR:-$(cd "$(dirname "$0")" && pwd)} | |||
export GIT_BASE=${OPENSTACK_GIT_BASE:-https://git.openstack.org} | |||
export DEVSTACK_GIT_REPO=${DEVSTACK_GIT_REPO:-${GIT_BASE}/openstack-dev/devstack} | |||
export DEVSTACK_GIT_BRANCH=${DEVSTACK_GIT_BRANCH:-stable/queens} | |||
export DEST=${DEVSTACK_DEST_DIR:-/opt/stack} | |||
export DEVSTACK_SRC_DIR=${DEVSTACK_SRC_DIR:-${DEST}/devstack} | |||
export TOBIKO_SRC_DIR=${TOBIKO_SRC_DIR:-/vagrant} | |||
export HOST_IP=${DEVSTACK_HOST_IP:-172.18.161.6} | |||
export DEVSTACK_CONF_FILENAME=${DEVSTACK_CONF_FILENAME:-local.conf} | |||
echo "Provisioning DevStack on host $(hostname) as user ${USER}" | |||
echo "Current directory is $(pwd)" | |||
echo "Make sure stack user has rigths to write to ${DEST} folder" | |||
sudo chown -fR "${USER}.${USER}" "${DEST}" | |||
sudo chmod ug+rwx "${DEST}" | |||
if ! which git; then | |||
echo "Install Git" | |||
sudo yum install -y git | |||
fi | |||
if ! which python3; then | |||
echo "Install Git" | |||
# DevStack is not able to install Python3 on its own on CentOS 7 | |||
sudo yum install -y python3 | |||
fi | |||
if ! [ -d "${DEVSTACK_SRC_DIR}" ]; then | |||
echo "Download DevStack source files from ${DEVSTACK_GIT_REPO}#${DEVSTACK_GIT_BRANCH}" | |||
mkdir -p $(basename "${DEVSTACK_SRC_DIR}") | |||
git clone "${DEVSTACK_GIT_REPO}" -b "${DEVSTACK_GIT_BRANCH}" "${DEVSTACK_SRC_DIR}" | |||
fi | |||
echo "Configure DevStack" | |||
cp "${PROVISION_DIR}/${DEVSTACK_CONF_FILENAME}" "${DEVSTACK_SRC_DIR}/local.conf" | |||
cd "${DEVSTACK_SRC_DIR}" | |||
echo "Run DevStack from directory: $(pwd)" | |||
./stack.sh |
@ -1,6 +0,0 @@ | |||
--- | |||
- hosts: tempest | |||
roles: | |||
- tobiko-zuul | |||
- tobiko-collect |
@ -1,12 +0,0 @@ | |||
--- | |||
- hosts: tempest | |||
roles: | |||
- tobiko-zuul | |||
- tobiko-configure | |||
- hosts: all | |||
roles: | |||
- role: multi-node-setup | |||
- role: orchestrate-devstack |
@ -1,20 +0,0 @@ | |||
# Copyright 2018 Red Hat | |||
# | |||
# Licensed under the Apache License, Version 2.0 (the "License"); you may | |||
# not use this file except in compliance with the License. You may obtain | |||
# a copy of the License at | |||
# | |||
# http://www.apache.org/licenses/LICENSE-2.0 | |||
# | |||
# Unless required by applicable law or agreed to in writing, software | |||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | |||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | |||
# License for the specific language governing permissions and limitations | |||
# under the License. | |||
--- | |||
- hosts: tempest | |||
roles: | |||
- tobiko-zuul | |||
- tobiko-run |
@ -1,30 +0,0 @@ | |||
[[local|localrc]] | |||
ADMIN_PASSWORD=secret | |||
DATABASE_PASSWORD=$ADMIN_PASSWORD | |||
RABBIT_PASSWORD=$ADMIN_PASSWORD | |||
SERVICE_PASSWORD=$ADMIN_PASSWORD | |||
LOGFILE=/opt/stack/devstack/stack.log | |||
LOG_COLOR=False | |||
# Disable unrequired services ------------------------------------------------- | |||
disable_service horizon | |||
disable_service tempest | |||
# Configure Neutron ----------------------------------------------------------- | |||
HOST_IP=192.168.33.10 | |||
IP_VERSION=4 | |||
# Configure Heat -------------------------------------------------------------- | |||
enable_plugin heat https://git.openstack.org/openstack/heat | |||
# Configure Tobiko ------------------------------------------------------------ | |||
enable_plugin tobiko https://git.openstack.org/x/tobiko |
@ -1,22 +0,0 @@ | |||
--- | |||
- hosts: all | |||
vars: | |||
tobiko_src_dir: "{{ playbook_dir | realpath | dirname | dirname }}" | |||
pre_tasks: | |||
- name: "update APT database" | |||
apt: | |||
update_cache: yes | |||
cache_valid_time: 3600 | |||
become: yes | |||
when: | |||
- ansible_os_family == 'Debian' | |||
roles: | |||
- tobiko-copy-resolv-conf | |||
- tobiko-redhat-subscription | |||
- tobiko-ensure-ssh-keys | |||
- tobiko-ensure-python3 | |||
- tobiko-devstack |
@ -1,231 +0,0 @@ | |||
- job: | |||
name: tobiko-devstack-base | |||
parent: devstack | |||
abstract: true | |||
description: | | |||
Base Tobiko devstack job. | |||
This job provides the base for both the single and multi-node | |||
test setup. To run a multi-node test inherit from tobiko-devstack and | |||
set the nodeset to a multi-node one. | |||
required-projects: | |||
- openstack/devstack-gate | |||
- openstack/heat | |||
- openstack/neutron | |||
- openstack/requirements | |||
- openstack/validations-libs | |||
- x/tobiko | |||
timeout: 7200 | |||
vars: | |||
devstack_localrc: | |||
MULTI_HOST: 0 | |||
LOG_COLOR: false | |||
NETWORK_API_EXTENSIONS: address-scope,agent,allowed-address-pairs,auto-allocated-topology,availability_zone,binding,default-subnetpools,dhcp_agent_scheduler,dns-domain-ports,dns-integration,dvr,empty-string-filtering,ext-gw-mode,external-net,extra_dhcp_opt,extraroute,filter-validation,fip-port-details,flavors,ip-substring-filtering,l3-flavors,l3-ha,l3_agent_scheduler,logging,metering,multi-provider,net-mtu,net-mtu-writable,network-ip-availability,network_availability_zone,pagination,port-security,project-id,provider,qos,qos-bw-minimum-ingress,qos-fip,quotas,quota_details,rbac-policies,router,router_availability_zone,security-group,port-mac-address-regenerate,port-security-groups-filtering,segment,service-type,sorting,standard-attr-description,standard-attr-revisions,standard-attr-segment,standard-attr-timestamp,standard-attr-tag,subnet_allocation,trunk,trunk-details,uplink-status-propagation | |||
devstack_plugins: | |||
heat: https://opendev.org/openstack/heat.git | |||
neutron: https://opendev.org/openstack/neutron.git | |||
tobiko: https://opendev.org/x/tobiko.git | |||
devstack_services: | |||
heat: true | |||
h-api: true | |||
h-api-cfn: true | |||
h-eng: true | |||
n-cpu: true | |||
# NOTE(slaweq): we need to enable it as "legacy" service because for Fedora job | |||
# it has to be disabled. If it would be disabled as "neutron-dns: false" then it | |||
# devstack would consider that neutron-legacy isn't used and would not load proper | |||
# files | |||
q-dns: true | |||
# see bug #1860753 (https://bugs.launchpad.net/devstack/+bug/1860753) | |||
memory_tracker: false | |||
neutron-qos: true | |||
neutron-segments: true | |||
neutron-trunk: true | |||
neutron-uplink-status-propagation: true | |||
tempest: false | |||
tls-proxy: false | |||
# NOTE(slaweq): Swift can't run with python3 currently | |||
s-account: false | |||
s-container: false | |||
s-object: false | |||
s-proxy: false | |||
# NOTE(slaweq): without Swift, c-bak cannot run (in the Gate at least) | |||
c-bak: false | |||
devstack_local_conf: | |||
post-config: | |||
$NEUTRON_CONF: | |||
QUOTAS: | |||
quota_router: 100 | |||
quota_floatingip: 500 | |||
quota_security_group: 100 | |||
quota_security_group_rule: 1000 | |||
$NOVA_CONF: | |||
quota: | |||
instances: 20 | |||
zuul_copy_output: | |||
'{{ stage_dir }}/stackviz': logs | |||
extensions_to_txt: | |||
conf: true | |||
log: true | |||
yaml: true | |||
yml: true | |||
test_log_debug: true | |||
test_case_timeout: 1200 | |||
tobiko_dir: '/opt/stack/tobiko' | |||
tox_run_tests_timeout: 3600 | |||
upper_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' | |||
pre-run: playbooks/devstack/pre.yaml | |||
run: playbooks/devstack/run.yaml | |||
post-run: playbooks/devstack/post.yaml | |||
irrelevant-files: | |||
- ^.*\.rst$ | |||
- ^doc/ | |||
- ^infrared_plugin/ | |||
- ^releasenotes/ | |||
- ^report/ | |||
- ^tobiko/tests/unit/ | |||
- job: | |||
name: tobiko-devstack-octavia | |||
parent: tobiko-devstack-base | |||
abstract: true | |||
description: | | |||
Base Tobiko devstack job to be used with Octavia. | |||
required-projects: | |||
- openstack/barbican | |||
- openstack/diskimage-builder | |||
- openstack/octavia | |||
- openstack/octavia-lib | |||
- openstack/python-barbicanclient | |||
- openstack/tripleo-image-elements | |||
timeout: 7800 | |||
vars: | |||
devstack_services: | |||
# Octavia | |||
octavia: true | |||
o-cw: true | |||
o-hk: true | |||
o-hm: true | |||
o-api: true | |||
zuul_copy_output: | |||
'/var/log/dib-build/': logs | |||
'/var/log/octavia-tenant-traffic.log': logs | |||
'/var/log/octavia-amphora.log': logs | |||
extensions_to_txt: | |||
conf: true | |||
log: true | |||
yaml: true | |||
yml: true | |||
- job: | |||
name: tobiko-devstack | |||
parent: tobiko-devstack-octavia | |||
abstract: true | |||
- job: | |||
name: tobiko-devstack-functional | |||
parent: tobiko-devstack | |||
description: | | |||
Base Tobiko devstack job to execute functional tests. | |||
vars: | |||
test_workflow: functional | |||
irrelevant-files: | |||
- ^.*\.rst$ | |||
- ^doc/ | |||
- ^infrared_plugin/ | |||
- ^releasenotes/ | |||
- ^report/ | |||
- ^tobiko/tests/faults/ | |||
- ^tobiko/tests/scenario/ | |||
- ^tobiko/tests/unit/ | |||
- job: | |||
name: tobiko-devstack-functional-centos-8 | |||
parent: tobiko-devstack-functional | |||
nodeset: devstack-single-node-centos-8 | |||
voting: true | |||
- job: | |||
name: tobiko-devstack-functional-ubuntu-focal | |||
parent: tobiko-devstack-functional | |||
nodeset: openstack-single-node-focal | |||
voting: false | |||
- job: | |||
name: tobiko-devstack-multinode | |||
parent: tobiko-devstack | |||
abstract: true | |||
description: Base Tobiko devstack job with multinode. | |||
vars: | |||
topology: multinode | |||
devstack_localrc: | |||
ENABLE_FILE_INJECTION: true | |||
MULTI_HOST: 1 | |||
devstack_services: | |||
n-cpu: false | |||
group-vars: | |||
subnode: | |||
devstack_services: | |||
c-vol: true | |||
dstat: true | |||
heat: false | |||
h-api: false | |||
h-api-cfn: false | |||
h-eng: false | |||
n-api-meta: true | |||
placement-client: true | |||
n-cpu: true | |||
neutron-agent: true | |||
# see bug #1860753 (https://bugs.launchpad.net/devstack/+bug/1860753) | |||
memory_tracker: false | |||
q-agt: true | |||
q-l3: true | |||
q-meta: true | |||
tls-proxy: false | |||
- job: | |||
name: tobiko-devstack-faults | |||
parent: tobiko-devstack-multinode | |||
abstract: true | |||
description: | | |||
Base Tobiko devstack job to execute scenario+faults+scenario test cases. | |||
vars: | |||
test_workflow: faults | |||
irrelevant-files: | |||
- ^.*\.rst$ | |||
- ^doc/ | |||
- ^infrared_plugin/ | |||
- ^releasenotes/ | |||
- ^report/ | |||
- ^tobiko/tests/functional/ | |||
- ^tobiko/tests/unit/ | |||
- job: | |||
name: tobiko-devstack-faults-centos-8 | |||
parent: tobiko-devstack-faults | |||
nodeset: tobiko-three-node-centos-8 | |||
voting: false | |||
- job: | |||
name: tobiko-devstack-faults-ubuntu-focal | |||
parent: tobiko-devstack-faults | |||
nodeset: tobiko-three-node-focal | |||
voting: false | |||
vars: | |||
devstack_services: | |||
tls-proxy: true | |||
group-vars: | |||
subnode: | |||
devstack_services: | |||
tls-proxy: true |