[train][goal] Define new vitrage-dsvm-api-ipv6-only job
As part of Train community goal 'Support IPv6-Only Deployments and Testing'[1], we need to define the integration job which deploy services on IPv6 and perform testing to make sure service listen and communicate over IPv6 properly. Vitrage has legacy zuul jobs only so base zuulv3 IPv6 job 'devstack-ipv6' and 'devstack-tempest-ipv6' cannot be used and we have to copy the whole run.yaml to set the IPv6 setting and run the IPv6 verification script via post_test_hook. This commit adds the new job 'vitrage-dsvm-api-ipv6-only' run on gate and set the required IPv6 setting'. Story: #2005477 Task: #35938 [1] https://governance.openstack.org/tc/goals/train/ipv6-support-and-testing.html Depends-On: https://review.opendev.org/#/c/701105/ Change-Id: I343b5ad52b0c70da94d94898b9de201fffe6ce6b
This commit is contained in:
parent
6304037894
commit
f628ca0055
@ -11,12 +11,14 @@
|
||||
- vitrage-dsvm-datasources-py3
|
||||
- vitrage-dsvm-mock-py3
|
||||
- grenade-vitrage
|
||||
- vitrage-dsvm-api-ipv6-only
|
||||
gate:
|
||||
queue: vitrage
|
||||
jobs:
|
||||
- vitrage-dsvm-api-py3
|
||||
- vitrage-dsvm-datasources-py3
|
||||
- grenade-vitrage
|
||||
- vitrage-dsvm-api-ipv6-only
|
||||
|
||||
- job:
|
||||
name: vitrage-dsvm-api-py3
|
||||
@ -36,6 +38,13 @@
|
||||
- ^doc/.*$
|
||||
- ^releasenotes/.*$
|
||||
|
||||
- job:
|
||||
name: vitrage-dsvm-api-ipv6-only
|
||||
parent: vitrage-dsvm-api-py3
|
||||
run: playbooks/legacy/vitrage-dsvm-api-py3/run-ipv6.yaml
|
||||
required-projects:
|
||||
- openstack/tempest
|
||||
|
||||
- job:
|
||||
name: vitrage-dsvm-datasources-py3
|
||||
parent: legacy-dsvm-base
|
||||
|
@ -240,7 +240,7 @@ function configure_vitrage {
|
||||
if [[ ! -z "$VITRAGE_COORDINATION_URL" ]]; then
|
||||
iniset $VITRAGE_CONF coordination backend_url "$VITRAGE_COORDINATION_URL"
|
||||
elif is_service_enabled etcd3; then
|
||||
iniset $VITRAGE_CONF coordination backend_url "etcd3://${SERVICE_HOST}:$ETCD_PORT"
|
||||
iniset $VITRAGE_CONF coordination backend_url "etcd3+http://${SERVICE_HOST}:$ETCD_PORT"
|
||||
fi
|
||||
}
|
||||
|
||||
|
77
playbooks/legacy/vitrage-dsvm-api-py3/run-ipv6.yaml
Normal file
77
playbooks/legacy/vitrage-dsvm-api-py3/run-ipv6.yaml
Normal file
@ -0,0 +1,77 @@
|
||||
- hosts: all
|
||||
name: Vitrage IPv6 legacy jobs
|
||||
tasks:
|
||||
|
||||
- name: Ensure legacy workspace directory
|
||||
file:
|
||||
path: '{{ ansible_user_dir }}/workspace'
|
||||
state: directory
|
||||
|
||||
- shell:
|
||||
cmd: |
|
||||
set -e
|
||||
set -x
|
||||
cat > clonemap.yaml << EOF
|
||||
clonemap:
|
||||
- name: openstack/devstack-gate
|
||||
dest: devstack-gate
|
||||
EOF
|
||||
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
|
||||
https://opendev.org \
|
||||
openstack/devstack-gate
|
||||
executable: /bin/bash
|
||||
chdir: '{{ ansible_user_dir }}/workspace'
|
||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
||||
|
||||
- shell:
|
||||
cmd: |
|
||||
set -e
|
||||
set -x
|
||||
export PYTHONUNBUFFERED=true
|
||||
export PROJECTS="openstack/python-vitrageclient $PROJECTS"
|
||||
export PROJECTS="openstack/aodh $PROJECTS"
|
||||
export PROJECTS="openstack/mistral $PROJECTS"
|
||||
export PROJECTS="openstack/vitrage $PROJECTS"
|
||||
export PROJECTS="openstack/vitrage-tempest-plugin $PROJECTS"
|
||||
|
||||
export DEVSTACK_GATE_USE_PYTHON3=True
|
||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"SERVICE_IP_VERSION=6"
|
||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"SERVICE_HOST=''"
|
||||
# temporary workaround with IPv6-based host name until we'll figure out how to pass
|
||||
# IPv6 address to gRPC client
|
||||
#export DEVSTACK_LOCAL_CONFIG+=$'\n'"VITRAGE_COORDINATION_URL=etcd3://localhost:2379"
|
||||
|
||||
function pre_test_hook {
|
||||
source $BASE/new/vitrage-tempest-plugin/devstack/pre_test_hook.sh
|
||||
}
|
||||
export -f pre_test_hook
|
||||
|
||||
function gate_hook {
|
||||
source $BASE/new/vitrage/devstack/gate_hook.sh
|
||||
}
|
||||
export -f gate_hook
|
||||
|
||||
function post_test_hook {
|
||||
cd $BASE/new/tempest/tools
|
||||
./verify-ipv6-only-deployments.sh
|
||||
|
||||
if [[ "$TEMPEST_VERSION" != "master" ]]; then
|
||||
# use vitrage-tempest-plugin $TEMPEST_VERSION
|
||||
# which is defined in the devstackgaterc file
|
||||
|
||||
cd $BASE/new/vitrage-tempest-plugin/
|
||||
git_checkout_tag vitrage-tempest-plugin $TEMPEST_VERSION
|
||||
fi
|
||||
|
||||
source $BASE/new/vitrage-tempest-plugin/devstack/post_test_hook.sh 'api'
|
||||
|
||||
}
|
||||
export -f post_test_hook
|
||||
|
||||
export DEVSTACK_GATE_SETTINGS=/opt/stack/new/vitrage/devstack/devstackgaterc
|
||||
|
||||
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
|
||||
./safe-devstack-vm-gate-wrap.sh
|
||||
executable: /bin/bash
|
||||
chdir: '{{ ansible_user_dir }}/workspace'
|
||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
Loading…
Reference in New Issue
Block a user