From c67b46e3507bf3ca916437b0e7f50521d70f6b02 Mon Sep 17 00:00:00 2001 From: Derek Higgins Date: Tue, 25 Sep 2018 10:31:30 +0100 Subject: [PATCH] Switch ironic-tempest-...-tinyipa-multinode to zuulv3 And rename to ironic-tempest-dsvm-ipa-wholedisk-direct-tinyipa-multinode Change-Id: I6ab7bfa0343e0c8df5814d26e62864f3c66cf7b1 --- devstack/lib/ironic | 12 +- playbooks/ci-workarounds/set-stack-key.yaml | 13 ++ .../run.yaml | 109 ------------- zuul.d/ironic-jobs.yaml | 145 ++++++++++++++++++ zuul.d/legacy-ironic-jobs.yaml | 7 - zuul.d/project.yaml | 4 +- 6 files changed, 166 insertions(+), 124 deletions(-) create mode 100644 playbooks/ci-workarounds/set-stack-key.yaml delete mode 100644 playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/run.yaml diff --git a/devstack/lib/ironic b/devstack/lib/ironic index b69ad39e89..da8430559d 100644 --- a/devstack/lib/ironic +++ b/devstack/lib/ironic @@ -2528,12 +2528,12 @@ function get_ironic_node_prefix { } function setup_vxlan_network { - sudo ovs-vsctl add-port $IRONIC_VM_NETWORK_BRIDGE phy-brbm-vxlan - sudo ovs-vsctl add-port br_ironic_vxlan phy-vxlan-brbm - sudo ovs-vsctl set interface phy-brbm-vxlan type=patch - sudo ovs-vsctl set interface phy-vxlan-brbm type=patch - sudo ovs-vsctl set interface phy-vxlan-brbm options:peer=phy-brbm-vxlan - sudo ovs-vsctl set interface phy-brbm-vxlan options:peer=phy-vxlan-brbm + sudo ovs-vsctl add-port $IRONIC_VM_NETWORK_BRIDGE phy-brbm-infra + sudo ovs-vsctl add-port br-infra phy-infra-brbm + sudo ovs-vsctl set interface phy-brbm-infra type=patch + sudo ovs-vsctl set interface phy-infra-brbm type=patch + sudo ovs-vsctl set interface phy-infra-brbm options:peer=phy-brbm-infra + sudo ovs-vsctl set interface phy-brbm-infra options:peer=phy-infra-brbm } # Restore xtrace + pipefail diff --git a/playbooks/ci-workarounds/set-stack-key.yaml b/playbooks/ci-workarounds/set-stack-key.yaml new file mode 100644 index 0000000000..d2882a4420 --- /dev/null +++ b/playbooks/ci-workarounds/set-stack-key.yaml @@ -0,0 +1,13 @@ +- hosts: all + name: Copy ssh keys from too ~stack + tasks: + - shell: + cmd: | + set -e + set -x + + sudo mkdir -p ~stack/.ssh + sudo cp ~root/.ssh/id_rsa.pub ~root/.ssh/id_rsa ~stack/.ssh + sudo chmod 700 ~stack/.ssh + sudo chown -R stack ~stack + executable: /bin/bash diff --git a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/run.yaml b/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/run.yaml deleted file mode 100644 index 5c2d71e0d9..0000000000 --- a/playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/run.yaml +++ /dev/null @@ -1,109 +0,0 @@ -- hosts: primary - name: Autoconverted job legacy-tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode - from old job gate-tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode-ubuntu-xenial-nv - tasks: - - - shell: - cmd: | - cat << 'EOF' >> ironic-extra-vars - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa" - - export DEVSTACK_GATE_TOPOLOGY="multinode" - - export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400 - # networking-generic-switch requires sudo to execute ovs-vsctl commands - export DEVSTACK_GATE_REMOVE_STACK_SUDO=0 - export PROJECTS="openstack/networking-generic-switch $PROJECTS" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin networking-generic-switch git://git.openstack.org/openstack/networking-generic-switch" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_USE_LINK_LOCAL=True" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"OVS_PHYSICAL_BRIDGE=brbm" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"PHYSICAL_NETWORK=mynetwork" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_NETWORK_NAME=ironic-provision" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_PREFIX=10.0.5.0/24" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_GATEWAY=10.0.5.1" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_PLUGIN=ml2" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_USE_PROVIDERNET_FOR_PUBLIC=False" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"ENABLE_TENANT_VLANS=True" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_ML2_TENANT_NETWORK_TYPE=vlan" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"TENANT_VLAN_RANGE=100:150" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_NETWORK_INTERFACES=flat,neutron" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_NETWORK_INTERFACE=neutron" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_AUTOMATED_CLEAN_ENABLED=False" - - EOF - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - cat << 'EOF' >> ironic-vars-early - # use tempest plugin - export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic-tempest-plugin'" - export TEMPEST_CONCURRENCY=4 - # Run all ironic tests and the multinode smoke test from nova. - # TODO(dtantsur): add test_attach_interfaces from nova when our - # devstack plugin creates more than one port per node. - export DEVSTACK_GATE_TEMPEST_REGEX="(ironic_tempest_plugin.tests.scenario|test_schedule_to_all_nodes)" - EOF - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -e - set -x - export PROJECTS="openstack/ironic $PROJECTS" - export PROJECTS="openstack/ironic-lib $PROJECTS" - export PROJECTS="openstack/ironic-python-agent $PROJECTS" - export PROJECTS="openstack/ironic-tempest-plugin $PROJECTS" - export PROJECTS="openstack/python-ironicclient $PROJECTS" - export PROJECTS="openstack/pyghmi $PROJECTS" - export PROJECTS="openstack/virtualbmc $PROJECTS" - export PYTHONUNBUFFERED=true - export DEVSTACK_GATE_TEMPEST=1 - export DEVSTACK_GATE_IRONIC=1 - export DEVSTACK_GATE_NEUTRON=1 - export DEVSTACK_GATE_VIRT_DRIVER=ironic - export DEVSTACK_GATE_CONFIGDRIVE=1 - export DEVSTACK_GATE_IRONIC_DRIVER=ipmi - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEFAULT_DEPLOY_INTERFACE=direct" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEFAULT_RESCUE_INTERFACE=agent" - export BRANCH_OVERRIDE="{{ zuul.override_checkout | default('default') }}" - if [ "$BRANCH_OVERRIDE" != "default" ] ; then - export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE - fi - - if [[ "$ZUUL_BRANCH" != "stable/ocata" && "$BRANCH_OVERRIDE" != "stable/ocata" ]]; then - export DEVSTACK_GATE_TLSPROXY=1 - fi - - # direct deploy requires Swift temporary URLs - export DEVSTACK_LOCAL_CONFIG+=$'\n'"SWIFT_ENABLE_TEMPURLS=True" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"SWIFT_TEMPURL_KEY=secretkey" - - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True" - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0" - - export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0 - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False" - - export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=7" - - # Ensure the ironic-vars-EARLY file exists - touch ironic-vars-early - # Pull in the EARLY variables injected by the optional builders - source ironic-vars-early - - export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic" - - # Ensure the ironic-EXTRA-vars file exists - touch ironic-extra-vars - # Pull in the EXTRA variables injected by the optional builders - source ironic-extra-vars - - 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 }}' diff --git a/zuul.d/ironic-jobs.yaml b/zuul.d/ironic-jobs.yaml index 4e2f524e44..65c7cc8fa6 100644 --- a/zuul.d/ironic-jobs.yaml +++ b/zuul.d/ironic-jobs.yaml @@ -313,3 +313,148 @@ IRONIC_TEMPEST_WHOLE_DISK_IMAGE: False IRONIC_VM_EPHEMERAL_DISK: 1 USE_PYTHON3: True + +- job: + name: ironic-tempest-dsvm-ipa-wholedisk-direct-tinyipa-multinode + description: ironic-tempest-dsvm-ipa-wholedisk-direct-tinyipa-multinode + parent: tempest-multinode-full + pre-run: playbooks/ci-workarounds/set-stack-key.yaml + timeout: 10800 + required-projects: + - openstack/ironic + - openstack/ironic-python-agent + - openstack/ironic-tempest-plugin + - openstack/pyghmi + - openstack/virtualbmc + - openstack/networking-generic-switch + irrelevant-files: + - ^.*\.rst$ + - ^api-ref/.*$ + - ^doc/.*$ + - ^driver-requirements.txt$ + - ^install-guide/.*$ + - ^ironic/locale/.*$ + - ^ironic/tests/.*$ + - ^releasenotes/.*$ + - ^setup.cfg$ + - ^tools/.*$ + - ^tox.ini$ + vars: + tox_envlist: all + tempest_concurrency: 4 + tempest_test_regex: "(ironic_tempest_plugin.tests.scenario|test_schedule_to_all_nodes)" + devstack_localrc: + BUILD_TIMEOUT: 1200 + DEFAULT_INSTANCE_TYPE: baremetal + ENABLE_TENANT_TUNNELS: False + ENABLE_TENANT_VLANS: True + FORCE_CONFIG_DRIVE: True + GENERIC_SWITCH_KEY_FILE: /opt/stack/.ssh/id_rsa + HOST_TOPOLOGY: multinode + HOST_TOPOLOGY_ROLE: primary + INSTALL_TEMPEST: False # Don't install a tempest package globaly + IRONIC_AUTOMATED_CLEAN_ENABLED: False + HOST_TOPOLOGY_SUBNODES: "{{ hostvars['compute1']['nodepool']['public_ipv4'] }}" + IRONIC_BAREMETAL_BASIC_OPS: True + IRONIC_BUILD_DEPLOY_RAMDISK: False + IRONIC_CALLBACK_TIMEOUT: 600 + IRONIC_DEFAULT_DEPLOY_INTERFACE: direct + IRONIC_DEPLOY_DRIVER: ipmi + IRONIC_ENABLED_NETWORK_INTERFACES: flat,neutron + IRONIC_INSPECTOR_BUILD_RAMDISK: False + IRONIC_NETWORK_INTERFACE: neutron + IRONIC_PROVISION_NETWORK_NAME: ironic-provision + IRONIC_PROVISION_SUBNET_GATEWAY: 10.0.5.1 + IRONIC_PROVISION_SUBNET_PREFIX: 10.0.5.0/24 + IRONIC_RAMDISK_TYPE: tinyipa + IRONIC_TEMPEST_BUILD_TIMEOUT: 600 + IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True + IRONIC_USE_LINK_LOCAL: True + IRONIC_VM_COUNT: 7 + IRONIC_VM_EPHEMERAL_DISK: 0 + IRONIC_VM_LOG_DIR: '{{ devstack_base_dir }}/ironic-bm-logs' + IRONIC_VM_SPECS_RAM: 384 + OS_TEST_TIMEOUT: 2400 + OVERRIDE_PUBLIC_BRIDGE_MTU: 1400 + OVS_PHYSICAL_BRIDGE: brbm + PHYSICAL_NETWORK: mynetwork + Q_AGENT: openvswitch + Q_ML2_TENANT_NETWORK_TYPE: vlan + Q_PLUGIN: ml2 + Q_USE_PROVIDERNET_FOR_PUBLIC: False + SWIFT_ENABLE_TEMPURLS: True + SWIFT_TEMPURL_KEY: secretkey + TEMPEST_PLUGINS: "'{{ ansible_user_dir }}/src/git.openstack.org/openstack/ironic-tempest-plugin'" + TENANT_VLAN_RANGE: 100:150 + VIRT_DRIVER: ironic + devstack_plugins: + ironic: git://git.openstack.org/openstack/ironic + networking-generic-switch: git://git.openstack.org/openstack/networking-generic-switch + zuul_copy_output: + '{{ devstack_base_dir }}/ironic-bm-logs': 'logs' + devstack_services: + c-api: False + c-bak: False + c-sch: False + c-vol: False + cinder: False + + s-account: True + s-container: True + s-object: True + s-proxy: True + + dstat: True + g-api: True + g-reg: True + key: True + mysql: True + n-api: True + n-api-meta: True + n-cauth: True + n-cond: True + n-cpu: True + n-novnc: True + n-obj: True + n-sch: True + placement-api: True + q-agt: True + q-dhcp: True + q-l3: True + q-meta: True + q-metering: True + q-svc: True + rabbit: True + group-vars: + subnode: + devstack_localrc: + ENABLE_TENANT_TUNNELS: False + ENABLE_TENANT_VLANS: True + HOST_TOPOLOGY: multinode + HOST_TOPOLOGY_ROLE: subnode + IRONIC_AUTOMATED_CLEAN_ENABLED: False + IRONIC_BAREMETAL_BASIC_OPS: True + IRONIC_DEPLOY_DRIVER: ipmi + IRONIC_ENABLED_NETWORK_INTERFACES: flat,neutron + IRONIC_NETWORK_INTERFACE: neutron + IRONIC_PROVISION_NETWORK_NAME: ironic-provision + IRONIC_RAMDISK_TYPE: tinyipa + IRONIC_USE_LINK_LOCAL: True + IRONIC_VM_COUNT: 7 + IRONIC_VM_EPHEMERAL_DISK: 0 + IRONIC_VM_LOG_DIR: '{{ devstack_base_dir }}/ironic-bm-logs' + IRONIC_VM_NETWORK_BRIDGE: sub1brbm + IRONIC_VM_SPECS_RAM: 384 + OVS_PHYSICAL_BRIDGE: sub1brbm + PHYSICAL_NETWORK: mynetwork + Q_ML2_TENANT_NETWORK_TYPE: vlan + VIRT_DRIVER: ironic + devstack_services: + c-api: False + c-bak: False + c-sch: False + c-vol: False + cinder: False + + q-agt: True + n-cpu: True diff --git a/zuul.d/legacy-ironic-jobs.yaml b/zuul.d/legacy-ironic-jobs.yaml index 83d5189456..1a257215ef 100644 --- a/zuul.d/legacy-ironic-jobs.yaml +++ b/zuul.d/legacy-ironic-jobs.yaml @@ -58,13 +58,6 @@ pre-run: playbooks/legacy/ironic-dsvm-base-multinode/pre.yaml post-run: playbooks/legacy/ironic-dsvm-base-multinode/post.yaml -- job: - name: ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode - parent: legacy-ironic-dsvm-base-multinode - run: playbooks/legacy/tempest-dsvm-ironic-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/run.yaml - timeout: 10800 - nodeset: legacy-ubuntu-xenial-2-node - # TODO(TheJulia): When we migrate to a non-legacy job, we will need to set the BUILD_TIMEOUT # and the DEVSTACK_GATE_TEMPEST_BAREMETAL_BUILD_TIMEOUT to 1200 seconds to prevent # needless CI job timeouts as the scale of the job is greater than a normal test jobs. diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index ff5ccbfbd7..164b0eebe6 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -19,7 +19,7 @@ - ironic-tempest-dsvm-ipa-partition-pxe_ipmitool-tinyipa-python3 - ironic-tempest-dsvm-ipa-partition-redfish-tinyipa - ironic-tempest-dsvm-ipa-partition-uefi-pxe_ipmitool-tinyipa - - ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode + - ironic-tempest-dsvm-ipa-wholedisk-direct-tinyipa-multinode - ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa - ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa-indirect - ironic-tempest-dsvm-ipa-partition-bios-agent_ipmitool-tinyipa-indirect @@ -42,7 +42,7 @@ - ironic-tempest-dsvm-ipa-partition-pxe_ipmitool-tinyipa-python3 - ironic-tempest-dsvm-ipa-partition-redfish-tinyipa - ironic-tempest-dsvm-ipa-partition-uefi-pxe_ipmitool-tinyipa - - ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode + - ironic-tempest-dsvm-ipa-wholedisk-direct-tinyipa-multinode - ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa - ironic-tempest-dsvm-ipa-wholedisk-bios-agent_ipmitool-tinyipa-indirect - ironic-tempest-dsvm-ipa-partition-bios-agent_ipmitool-tinyipa-indirect