diff --git a/.zuul.yaml b/.zuul.yaml index 2a9aec76c..9b3e5aa0f 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -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 diff --git a/devstack/plugin.sh b/devstack/plugin.sh index 70d035f88..e80e19a74 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -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 } diff --git a/playbooks/legacy/vitrage-dsvm-api-py3/run-ipv6.yaml b/playbooks/legacy/vitrage-dsvm-api-py3/run-ipv6.yaml new file mode 100644 index 000000000..f1f1ea9a3 --- /dev/null +++ b/playbooks/legacy/vitrage-dsvm-api-py3/run-ipv6.yaml @@ -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 }}'