Browse Source
- Use Tobiko project as default tests directory on zuul jobs - Remove DevStack plugin Change-Id: I3f1ab818d835bb5db050d6cbe64dc20fc98b6610changes/62/755262/8
16 changed files with 1 additions and 990 deletions
@ -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 |
Loading…
Reference in new issue