Add experimental job for ironic's ansible-deploy

Ansible-deploy driver in ironic-staging-drivers is an alternative
implementation of baremetal deploy logic and does not depend on any
specific hardware, thus it can be tested in DevStack on gates.

This patch adds an experimental on-demand job for ironic-staging-drivers
project to test pxe_ipmitool_ansible ironic driver.
During devstack run the job will:
- setup devstack with ironic and agent_ipmitool driver for nodes and
  whole disk image as target user image in tepmest configuration
- rebuild a prebuilt tinyipa-based ironic deploy ramdisk from tarballs.o.o
  to be compatible with ansible-deploy driver and upload it to glance
  - ssh keys for new deploy ramdisk are created on the fly
  - the original image is not re-downloaded but fetched from glance
    as it is already present there
  - minimal interactions with Tiny Core Linux repos,
    only 2 packages are downloaded
- switch all ironic nodes' driver to pxe_ipmitool_ansible
  - set other driver info fields as required
- run standard ironic tempest tests including actual node deployment

Change-Id: If2bcecb6c4bc9271c8ccff1f5c2bbf6938a98f0c
Depends-On: Ief19ccb2711aed03ad0c4f4feee73edaa5c554c9
Related-Bug: #1526308
This commit is contained in:
Pavlo Shchelokovskyy 2016-12-26 19:06:01 +02:00
parent 968af06db6
commit 9128dc669f
3 changed files with 65 additions and 0 deletions

View File

@ -309,6 +309,21 @@
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
- builder:
name: ironic-staging-drivers-enabled
builders:
- ironic-extra-vars:
script: |
export PROJECTS="openstack/ironic-staging-drivers $PROJECTS"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic-staging-drivers git://git.openstack.org/openstack/ironic-staging-drivers"
- builder:
name: ironic-staging-test-driver
builders:
- ironic-extra-vars:
script: |
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_STAGING_DRIVER={staging-driver}"
- job-template:
name: '{pipeline}-ironic-dsvm-functional-{node}{suffix}'
node: '{node}'
@ -1311,3 +1326,46 @@
publishers:
- devstack-logs
- console-log
# NOTE(pas-ha) explanation for variables choices:
# - devstack plugin of ironic-staging-drivers will be able to
# switch over nodes to ansible-deploy-enabled driver only
# from agent_ipmitool to pxe_ipmitool_ansible driver.
# - Ansible-deploy driver does not support netboot,
# so testing wholedisk images only
# - Partition images with localboot are supported but deploy does not
# work with default cirros image as those do not have grub(2) installed
# - Only tinyipa-based ramdisks are supported to be rebuilt for compatibility
# with ansible-deploy driver
- job-template:
name: '{pipeline}-tempest-dsvm-ironic-staging-drivers-ansible-wholedisk-{node}{suffix}'
node: '{node}'
wrappers:
- build-timeout:
timeout: 80
- timestamps
builders:
- link-logs
- net-info
- devstack-checkout
- ironic-deploy-with-IPA:
ramdisk-type: tinyipa
- ironic-staging-drivers-enabled
- ironic-staging-test-driver:
staging-driver: pxe_ipmitool_ansible
- ironic-tempest-regex:
tempest-regex: ironic
- ironic-tempest-plugin
- devstack-virtual-ironic:
build-ramdisk: ''
deploy_driver: agent_ipmitool
image-type: wholedisk
boot-mode: bios
branch-override: '{branch-override}'
bm-vm-count: 1
publishers:
- devstack-logs
- console-log

View File

@ -5785,6 +5785,11 @@
node: ubuntu-xenial
suffix: ''
branch-override: default
- '{pipeline}-tempest-dsvm-ironic-staging-drivers-ansible-wholedisk-{node}{suffix}':
pipeline: gate
node: ubuntu-xenial
suffix: '-nv'
branch-override: default
- project:
name: ironic-tempest-plugin

View File

@ -10852,6 +10852,8 @@ projects:
- gate-ironic-staging-drivers-dsvm-ubuntu-xenial
gate:
- gate-ironic-staging-drivers-dsvm-ubuntu-xenial
experimental:
- gate-tempest-dsvm-ironic-staging-drivers-ansible-wholedisk-ubuntu-xenial-nv
- name: openstack/ironic-tempest-plugin
template: