vitrage/playbooks/legacy/vitrage-dsvm-api-py3/run-ipv6.yaml
Ghanshyam Mann f628ca0055 [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
2020-01-05 07:39:57 +00:00

78 lines
2.7 KiB
YAML

- 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 }}'