Merge "Import ansible version of the image building job"
This commit is contained in:
commit
c0c2003e61
68
.zuul.yaml
68
.zuul.yaml
@ -1,3 +1,58 @@
|
||||
- job:
|
||||
name: ironic-python-agent-build-image-base
|
||||
parent: publish-openstack-artifacts
|
||||
pre-run: playbooks/ironic-python-agent-build-image/pre.yaml
|
||||
run: playbooks/ironic-python-agent-build-image/run.yaml
|
||||
post-run: playbooks/ironic-python-build-image/post.yaml
|
||||
timeout: 1800
|
||||
required-projects:
|
||||
- openstack/requirements
|
||||
- openstack/ironic-python-agent
|
||||
- openstack/ironic-python-agent-builder
|
||||
|
||||
- job:
|
||||
name: ironic-python-agent-build-image-tinyipa
|
||||
parent: ironic-python-agent-build-image-base
|
||||
vars:
|
||||
image_type: 'tinyipa'
|
||||
|
||||
- job:
|
||||
name: ironic-python-agent-build-image-dib-centos7
|
||||
parent: ironic-python-agent-build-image-base
|
||||
required-projects:
|
||||
# NOTE(dtantsur): used for bindep only
|
||||
- openstack/diskimage-builder
|
||||
vars:
|
||||
image_type: 'dib'
|
||||
image_distro: 'centos7'
|
||||
|
||||
- job:
|
||||
name: ironic-python-agent-check-image-base
|
||||
parent: base
|
||||
pre-run: playbooks/ironic-python-agent-build-image/pre.yaml
|
||||
run: playbooks/ironic-python-agent-build-image/run.yaml
|
||||
timeout: 1800
|
||||
required-projects:
|
||||
- openstack/requirements
|
||||
- openstack/ironic-python-agent
|
||||
- openstack/ironic-python-agent-builder
|
||||
|
||||
- job:
|
||||
name: ironic-python-agent-check-image-tinyipa
|
||||
parent: ironic-python-agent-check-image-base
|
||||
vars:
|
||||
image_type: 'tinyipa'
|
||||
|
||||
- job:
|
||||
name: ironic-python-agent-check-image-dib-centos7
|
||||
parent: ironic-python-agent-check-image-base
|
||||
required-projects:
|
||||
# NOTE(dtantsur): used for bindep only
|
||||
- openstack/diskimage-builder
|
||||
vars:
|
||||
image_type: 'dib'
|
||||
image_distro: 'centos7'
|
||||
|
||||
- project:
|
||||
templates:
|
||||
- publish-openstack-docs-pti
|
||||
@ -12,6 +67,8 @@
|
||||
- ipa-tempest-wholedisk-bios-ipmi-direct-tinyipa-src
|
||||
- ipa-tempest-wholedisk-bios-ipmi-iscsi-tinyipa-src
|
||||
- ipa-tempest-ironic-inspector-src
|
||||
- ironic-python-agent-check-image-tinyipa
|
||||
- ironic-python-agent-check-image-dib-centos7
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-tox-pep8
|
||||
@ -21,13 +78,10 @@
|
||||
- ipa-tempest-wholedisk-bios-ipmi-direct-tinyipa-src
|
||||
- ipa-tempest-wholedisk-bios-ipmi-iscsi-tinyipa-src
|
||||
- ipa-tempest-ironic-inspector-src
|
||||
- ironic-python-agent-check-image-tinyipa
|
||||
- ironic-python-agent-check-image-dib-centos7
|
||||
post:
|
||||
jobs:
|
||||
- publish-openstack-python-branch-tarball
|
||||
- ipa-builder-buildimage-tinyipa
|
||||
|
||||
- job:
|
||||
name: ipa-builder-buildimage-tinyipa
|
||||
parent: ironic-python-agent-buildimage-base
|
||||
vars:
|
||||
image_name: 'tinyipa'
|
||||
- ironic-python-agent-build-image-tinyipa
|
||||
- ironic-python-agent-build-image-dib-centos7
|
||||
|
@ -7,7 +7,7 @@ set -eu
|
||||
set -o pipefail
|
||||
|
||||
SCRIPTDIR=$(dirname $0)
|
||||
IPADIR=/usr/share/ironic-python-agent
|
||||
IPADIR=/tmp/ironic-python-agent
|
||||
|
||||
# Generate upper-constraints
|
||||
$IPADIR/imagebuild/common/generate_upper_constraints.sh $IPADIR/upper-constraints.txt
|
||||
|
@ -1 +0,0 @@
|
||||
ironic-agent git /usr/share/ironic-python-agent https://opendev.org/openstack/ironic-python-agent
|
@ -0,0 +1 @@
|
||||
ironic-python-agent git /tmp/ironic-python-agent https://opendev.org/openstack/ironic-python-agent
|
47
playbooks/ironic-python-agent-build-image/post.yaml
Normal file
47
playbooks/ironic-python-agent-build-image/post.yaml
Normal file
@ -0,0 +1,47 @@
|
||||
- hosts: all
|
||||
|
||||
vars:
|
||||
ipa_raw_dir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW'
|
||||
ipa_tar_dir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR'
|
||||
|
||||
tasks:
|
||||
|
||||
- name: Ensure artifacts directory exists
|
||||
file:
|
||||
path: '{{ zuul.executor.work_root }}/artifacts/{{ image_name }}/files'
|
||||
state: directory
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Copy files from {{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent on node
|
||||
synchronize:
|
||||
src: '{{ ipa_raw_dir }}'
|
||||
dest: '{{ zuul.executor.work_root }}/artifacts/{{ image_name }}/files/'
|
||||
mode: pull
|
||||
copy_links: true
|
||||
verify_host: true
|
||||
rsync_opts:
|
||||
- --include=/*
|
||||
- --prune-empty-dirs
|
||||
|
||||
- name: Copy files from {{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent on node
|
||||
synchronize:
|
||||
src: '{{ ipa_tar_dir }}'
|
||||
dest: '{{ zuul.executor.work_root }}/artifacts/{{ image_name }}/'
|
||||
mode: pull
|
||||
copy_links: true
|
||||
verify_host: true
|
||||
rsync_opts:
|
||||
- --include=/*
|
||||
- --prune-empty-dirs
|
||||
|
||||
- name: Copy files from {{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent on node
|
||||
synchronize:
|
||||
src: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/'
|
||||
dest: '{{ zuul.executor.log_root }}'
|
||||
mode: pull
|
||||
copy_links: true
|
||||
verify_host: true
|
||||
rsync_opts:
|
||||
- --include=*/
|
||||
- --exclude=*
|
||||
- --prune-empty-dirs
|
7
playbooks/ironic-python-agent-build-image/pre.yaml
Normal file
7
playbooks/ironic-python-agent-build-image/pre.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
- hosts: all
|
||||
tasks:
|
||||
|
||||
- import_role:
|
||||
name: ipa-build-dib-image
|
||||
tasks_from: install.yaml
|
||||
when: image_type == 'dib'
|
25
playbooks/ironic-python-agent-build-image/run.yaml
Normal file
25
playbooks/ironic-python-agent-build-image/run.yaml
Normal file
@ -0,0 +1,25 @@
|
||||
- hosts: all
|
||||
|
||||
vars:
|
||||
ipa_raw_dir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW'
|
||||
ipa_tar_dir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR'
|
||||
|
||||
tasks:
|
||||
|
||||
- name: Create a target directory for raw images
|
||||
file:
|
||||
path: '{{ ipa_raw_dir }}'
|
||||
state: directory
|
||||
|
||||
- name: Create a target directory for tarballs
|
||||
file:
|
||||
path: '{{ ipa_tar_dir }}'
|
||||
state: directory
|
||||
|
||||
- import_role:
|
||||
name: ipa-build-tinyipa-image
|
||||
when: image_type == 'tinyipa'
|
||||
|
||||
- import_role:
|
||||
name: ipa-build-dib-image
|
||||
when: image_type == 'dib'
|
5
roles/ipa-build-dib-image/defaults/main.yaml
Normal file
5
roles/ipa-build-dib-image/defaults/main.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
image_distro: centos7
|
||||
ipa_branch_path: '{{ zuul.branch | replace("/", "-") }}'
|
||||
ipa_source_path: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent'
|
||||
ipa_raw_dir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW'
|
||||
ipa_tar_dir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR'
|
16
roles/ipa-build-dib-image/tasks/install.yaml
Normal file
16
roles/ipa-build-dib-image/tasks/install.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
- name: Install binary dependencies from diskimage-builder
|
||||
include_role:
|
||||
name: bindep
|
||||
vars:
|
||||
bindep_dir: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/diskimage-builder'].src_dir }}"
|
||||
|
||||
- name: Install requirements for ironic-python-agent-builder
|
||||
pip:
|
||||
requirements: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/ironic-python-agent-builder'].src_dir }}/requirements.txt"
|
||||
extra_args: -c "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/requirements'].src_dir }}/upper-constraints.txt"
|
||||
become: true
|
||||
|
||||
- name: Install ironic-python-agent-builder
|
||||
pip:
|
||||
name: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/ironic-python-agent-builder'].src_dir }}"
|
||||
become: true
|
16
roles/ipa-build-dib-image/tasks/main.yaml
Normal file
16
roles/ipa-build-dib-image/tasks/main.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
- name: Generate image name
|
||||
set_fact:
|
||||
image_name: ipa-{{ image_distro }}-{{ ipa_branch_path }}
|
||||
|
||||
- name: Build a DIB image
|
||||
command: |
|
||||
ironic-python-agent-builder -e dhcp-all-interfaces -o {{ image_name }} {{ image_distro }}
|
||||
environment:
|
||||
# Use repositories checked out by Zuul
|
||||
DIB_REPOLOCATION_ironic_python_agent: '{{ ipa_source_path }}'
|
||||
DIB_REPOREF_ironic_python_agent: HEAD
|
||||
|
||||
- name: Move the resulting files
|
||||
shell: |
|
||||
tar -czf "{{ ipa_tar_dir }}/{{ image_name }}.tar.gz" {{ image_name }}*
|
||||
mv {{ image_name }}* "{{ ipa_raw_dir }}"
|
4
roles/ipa-build-tinyipa-image/defaults/main.yaml
Normal file
4
roles/ipa-build-tinyipa-image/defaults/main.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
ipa_branch_path: '{{ zuul.branch | replace("/", "-") }}'
|
||||
ipa_raw_dir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW'
|
||||
ipa_tar_dir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR'
|
||||
tinyipa_dir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent-builder/tinyipa'
|
23
roles/ipa-build-tinyipa-image/tasks/main.yaml
Normal file
23
roles/ipa-build-tinyipa-image/tasks/main.yaml
Normal file
@ -0,0 +1,23 @@
|
||||
- name: Build a TinyIPA image
|
||||
command: make
|
||||
args:
|
||||
chdir: '{{ tinyipa_dir }}'
|
||||
environment:
|
||||
BRANCH_PATH: '{{ ipa_branch_path }}'
|
||||
BUILD_AND_INSTALL_TINYIPA: True
|
||||
IPA_SOURCE_DIR: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent'
|
||||
|
||||
- name: Move resulting files
|
||||
shell: |
|
||||
mv tinyipa*.tar.gz* "{{ ipa_tar_dir }}"
|
||||
mv tinyipa*.* "{{ ipa_raw_dir }}"
|
||||
mv tiny-instance-uec*.tar.gz "{{ ipa_tar_dir }}"
|
||||
args:
|
||||
chdir: '{{ tinyipa_dir }}'
|
||||
|
||||
# NOTE(sambetts) Must clean up chroot directories before
|
||||
# publisher rsync command tries and fails to read them
|
||||
- name: Clean up the environment
|
||||
command: make clean
|
||||
args:
|
||||
chdir: '{{ tinyipa_dir }}'
|
Loading…
x
Reference in New Issue
Block a user