Allow IPA images to be built locally
This will be performed by kayobe overcloud post configure if ipa_build_images is True.
This commit is contained in:
parent
f06483eb68
commit
cb403208be
@ -8,10 +8,10 @@ inspector_extra_kernel_options: >
|
|||||||
ipa_kernel_options_inspection_collectors_all }}
|
ipa_kernel_options_inspection_collectors_all }}
|
||||||
|
|
||||||
# URL of Ironic Python Agent (IPA) kernel image.
|
# URL of Ironic Python Agent (IPA) kernel image.
|
||||||
inspector_ipa_kernel_upstream_url: "{{ ipa_images_kernel_url }}"
|
inspector_ipa_kernel_upstream_url: "{{ ipa_kernel_upstream_url }}"
|
||||||
|
|
||||||
# URL of Ironic Python Agent (IPA) ramdisk image.
|
# URL of Ironic Python Agent (IPA) ramdisk image.
|
||||||
inspector_ipa_ramdisk_upstream_url: "{{ ipa_images_ramdisk_url }}"
|
inspector_ipa_ramdisk_upstream_url: "{{ ipa_ramdisk_upstream_url }}"
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Ironic inspector processing configuration.
|
# Ironic inspector processing configuration.
|
||||||
|
@ -1,6 +1,25 @@
|
|||||||
---
|
---
|
||||||
# Ironic Python Agent (IPA) configuration.
|
# Ironic Python Agent (IPA) configuration.
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Ironic Python Agent (IPA) image build configuration.
|
||||||
|
|
||||||
|
# Whether to build IPA images from source.
|
||||||
|
ipa_build_images: False
|
||||||
|
|
||||||
|
# URL of IPA source repository.
|
||||||
|
ipa_build_source_url: "https://github.com/openstack/ironic-python-agent"
|
||||||
|
|
||||||
|
# Version of IPA source repository.
|
||||||
|
ipa_build_source_version: "stable/ocata"
|
||||||
|
|
||||||
|
# URL of IPA upper constraints file.
|
||||||
|
ipa_build_upper_constraints_file_url:
|
||||||
|
|
||||||
|
# Custom python package version constraints for IPA. Dict mapping package name
|
||||||
|
# to upper version constraint.
|
||||||
|
ipa_build_custom_upper_constraints: []
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Ironic Python Agent (IPA) images configuration.
|
# Ironic Python Agent (IPA) images configuration.
|
||||||
|
|
||||||
@ -8,13 +27,13 @@
|
|||||||
ipa_images_kernel_name: "ipa.vmlinuz"
|
ipa_images_kernel_name: "ipa.vmlinuz"
|
||||||
|
|
||||||
# URL of Ironic deployment kernel image to download.
|
# URL of Ironic deployment kernel image to download.
|
||||||
ipa_images_kernel_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe-stable-ocata.vmlinuz"
|
ipa_kernel_upstream_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe-stable-ocata.vmlinuz"
|
||||||
|
|
||||||
# Name of Ironic deployment ramdisk image to register in Glance.
|
# Name of Ironic deployment ramdisk image to register in Glance.
|
||||||
ipa_images_ramdisk_name: "ipa.initramfs"
|
ipa_images_ramdisk_name: "ipa.initramfs"
|
||||||
|
|
||||||
# URL of Ironic deployment ramdisk image to download.
|
# URL of Ironic deployment ramdisk image to download.
|
||||||
ipa_images_ramdisk_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem-stable-ocata.cpio.gz"
|
ipa_ramdisk_upstream_url: "https://tarballs.openstack.org/ironic-python-agent/coreos/files/coreos_production_pxe_image-oem-stable-ocata.cpio.gz"
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Ironic Python Agent (IPA) deployment configuration.
|
# Ironic Python Agent (IPA) deployment configuration.
|
||||||
|
14
ansible/ipa-build.yml
Normal file
14
ansible/ipa-build.yml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- name: Ensure Ironic Python Agent images are built
|
||||||
|
hosts: controllers[0]
|
||||||
|
vars:
|
||||||
|
# This can be set to True to force rebuilding images.
|
||||||
|
ipa_build_force: False
|
||||||
|
roles:
|
||||||
|
- role: ipa-build
|
||||||
|
ipa_build_venv: "{{ ansible_env['PWD'] }}/ipa-build-venv"
|
||||||
|
ipa_build_image_cache_path: "{{ image_cache_path }}"
|
||||||
|
ipa_build_source_checkout_path: "{{ source_checkout_path }}"
|
||||||
|
ipa_build_kernel_name: "{{ ipa_images_kernel_name }}"
|
||||||
|
ipa_build_ramdisk_name: "{{ ipa_images_ramdisk_name }}"
|
||||||
|
when: "{{ ipa_build_images | bool }}"
|
@ -15,9 +15,35 @@
|
|||||||
tags:
|
tags:
|
||||||
- config-validation
|
- config-validation
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: Check for the presence of locally built Ironic Python Agent (IPA) images
|
||||||
|
stat:
|
||||||
|
path: "{{ image_cache_path }}/{{ item }}"
|
||||||
|
get_md5: False
|
||||||
|
get_checksum: False
|
||||||
|
mime: False
|
||||||
|
with_items:
|
||||||
|
- "{{ ipa_images_kernel_name }}"
|
||||||
|
- "{{ ipa_images_ramdisk_name }}"
|
||||||
|
register: ipa_image_stat
|
||||||
|
|
||||||
|
- name: Validate the presence of locally built Ironic Python Agent (IPA) images
|
||||||
|
fail:
|
||||||
|
msg: >
|
||||||
|
Expected locally built Ironic Python Agent (IPA) image
|
||||||
|
{{ item.item }} was not present in {{ image_cache_path }}.
|
||||||
|
with_items: "{{ ipa_image_stat.results }}"
|
||||||
|
when: "{{ not item.stat.exists }}"
|
||||||
|
when: "{{ ipa_build_images | bool }}"
|
||||||
|
tags:
|
||||||
|
- config-validation
|
||||||
|
|
||||||
roles:
|
roles:
|
||||||
- role: ipa-images
|
- role: ipa-images
|
||||||
ipa_images_venv: "{{ ansible_env['PWD'] }}/shade-venv"
|
ipa_images_venv: "{{ ansible_env['PWD'] }}/shade-venv"
|
||||||
ipa_images_openstack_auth_type: "{{ openstack_auth_type }}"
|
ipa_images_openstack_auth_type: "{{ openstack_auth_type }}"
|
||||||
ipa_images_openstack_auth: "{{ openstack_auth }}"
|
ipa_images_openstack_auth: "{{ openstack_auth }}"
|
||||||
ipa_images_cache_path: "{{ image_cache_path }}"
|
ipa_images_cache_path: "{{ image_cache_path }}"
|
||||||
|
# Don't pass the kernel and ramdisk image URLs if using built images.
|
||||||
|
ipa_images_kernel_url: "{{ ipa_build_images | ternary(None, ipa_kernel_upstream_url) }}"
|
||||||
|
ipa_images_ramdisk_url: "{{ ipa_build_images | ternary(None, ipa_ramdisk_upstream_url) }}"
|
||||||
|
64
ansible/roles/ipa-build/README.md
Normal file
64
ansible/roles/ipa-build/README.md
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
Ironic Python Agent (IPA) Image Build
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
This role can be used to build kernel and ramdisk images for OpenStack Ironic
|
||||||
|
Python Agent (IPA).
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Role Variables
|
||||||
|
--------------
|
||||||
|
|
||||||
|
`ipa_build_venv` is a path to a directory in which to create a virtualenv.
|
||||||
|
|
||||||
|
`ipa_build_install_epel`: Whether to install EPEL repository package.
|
||||||
|
|
||||||
|
`ipa_build_install_package_dependencies`: Whether to install package
|
||||||
|
dependencies.
|
||||||
|
|
||||||
|
`ipa_build_cache_path`: Path to directory in which to store built images.
|
||||||
|
|
||||||
|
`ipa_build_source_url`: URL of IPA source repository.
|
||||||
|
|
||||||
|
`ipa_build_source_version`: Version of IPA source repository.
|
||||||
|
|
||||||
|
`ipa_build_upper_constraints_file_url`: URL of IPA upper constraints file.
|
||||||
|
|
||||||
|
`ipa_build_custom_upper_constraints`: Custom python package version constraints
|
||||||
|
for IPA. Dict mapping package name to upper version constraint.
|
||||||
|
|
||||||
|
`ipa_build_kernel_name`: Name of kernel image to save.
|
||||||
|
|
||||||
|
`ipa_build_ramdisk_name`: Name of ramdisk image to save.
|
||||||
|
|
||||||
|
`ipa_build_force`: Whether to force rebuilding images when they already exist.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Example Playbook
|
||||||
|
----------------
|
||||||
|
|
||||||
|
The following playbook installs openstackclient in a virtualenv.
|
||||||
|
|
||||||
|
---
|
||||||
|
- name: Ensure Ironic Python Agent (IPA) images are built
|
||||||
|
hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: ipa-build
|
||||||
|
ipa_build_venv: "~/ipa-build-venv"
|
||||||
|
ipa_build_cache_path: "~/ipa-build-cache"
|
||||||
|
ipa_build_source_url: "https://github.com/openstack/ironic-python-agent"
|
||||||
|
ipa_build_source_version: "master"
|
||||||
|
ipa_build_kernel_name: "ipa.vmlinuz"
|
||||||
|
ipa_build_ramdisk_name: "ipa.initramfs"
|
||||||
|
|
||||||
|
Author Information
|
||||||
|
------------------
|
||||||
|
|
||||||
|
- Mark Goddard (<mark@stackhpc.com>)
|
37
ansible/roles/ipa-build/defaults/main.yml
Normal file
37
ansible/roles/ipa-build/defaults/main.yml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
# Path to a directory in which to create a virtualenv.
|
||||||
|
ipa_build_venv:
|
||||||
|
|
||||||
|
# Path to a directory in which to clone the IPA source repository.
|
||||||
|
ipa_build_source_checkout_path:
|
||||||
|
|
||||||
|
# Whether to install EPEL repository package.
|
||||||
|
ipa_build_install_epel: True
|
||||||
|
|
||||||
|
# Whether to install package dependencies.
|
||||||
|
ipa_build_install_package_dependencies: True
|
||||||
|
|
||||||
|
# Path to directory in which to store built images.
|
||||||
|
ipa_build_cache_path:
|
||||||
|
|
||||||
|
# URL of IPA source repository.
|
||||||
|
ipa_build_source_url:
|
||||||
|
|
||||||
|
# Version of IPA source repository.
|
||||||
|
ipa_build_source_version:
|
||||||
|
|
||||||
|
# URL of IPA upper constraints file.
|
||||||
|
ipa_build_upper_constraints_file_url:
|
||||||
|
|
||||||
|
# Custom python package version constraints for IPA. Dict mapping package name
|
||||||
|
# to upper version constraint.
|
||||||
|
ipa_build_custom_upper_constraints:
|
||||||
|
|
||||||
|
# Name of kernel image to save.
|
||||||
|
ipa_build_kernel_name:
|
||||||
|
|
||||||
|
# Name of ramdisk image to save.
|
||||||
|
ipa_build_ramdisk_name:
|
||||||
|
|
||||||
|
# Whether to force rebuilding images when they already exist.
|
||||||
|
ipa_build_force: False
|
104
ansible/roles/ipa-build/tasks/main.yml
Normal file
104
ansible/roles/ipa-build/tasks/main.yml
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
---
|
||||||
|
- name: Ensure EPEL repo is installed
|
||||||
|
yum:
|
||||||
|
name: epel-release
|
||||||
|
state: installed
|
||||||
|
become: True
|
||||||
|
when: "{{ ipa_build_install_epel | bool }}"
|
||||||
|
|
||||||
|
- name: Ensure required packages are installed
|
||||||
|
yum:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: installed
|
||||||
|
become: True
|
||||||
|
with_items:
|
||||||
|
- gcc
|
||||||
|
- libffi-devel
|
||||||
|
- openssl-devel
|
||||||
|
- python-devel
|
||||||
|
- python-pip
|
||||||
|
- python-virtualenv
|
||||||
|
when: "{{ ipa_build_install_package_dependencies | bool }}"
|
||||||
|
|
||||||
|
- name: Ensure source code checkout and image cache directories exist
|
||||||
|
file:
|
||||||
|
path: "{{ ipa_build_source_checkout_path }}"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ ansible_user }}"
|
||||||
|
group: "{{ ansible_user }}"
|
||||||
|
recurse: True
|
||||||
|
with_items:
|
||||||
|
- "{{ ipa_build_source_checkout_path }}"
|
||||||
|
- "{{ ipa_build_image_cache_path }}"
|
||||||
|
become: True
|
||||||
|
|
||||||
|
- name: Ensure Ironic Python Agent (IPA) source code checkout exists
|
||||||
|
git:
|
||||||
|
repo: "{{ ipa_build_source_url }}"
|
||||||
|
dest: "{{ ipa_build_source_checkout_path }}/ironic-python-agent"
|
||||||
|
version: "{{ ipa_build_source_version }}"
|
||||||
|
|
||||||
|
- name: Ensure the latest version of pip is installed
|
||||||
|
pip:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
state: latest
|
||||||
|
virtualenv: "{{ ipa_build_venv or omit }}"
|
||||||
|
with_items:
|
||||||
|
- { name: pip }
|
||||||
|
|
||||||
|
- name: Ensure required Python packages are installed
|
||||||
|
pip:
|
||||||
|
requirements: "{{ ipa_build_source_checkout_path }}/ironic-python-agent/requirements.txt"
|
||||||
|
state: present
|
||||||
|
virtualenv: "{{ ipa_build_venv or omit }}"
|
||||||
|
|
||||||
|
- name: Ensure upper constraints file is downloaded
|
||||||
|
uri:
|
||||||
|
url: "{{ ipa_build_upper_constraints_file_url }}"
|
||||||
|
return_content: yes
|
||||||
|
when: "{{ ipa_build_upper_constraints_file_url != None }}"
|
||||||
|
register: upper_constraints
|
||||||
|
|
||||||
|
- name: Ensure custom upper constraints are set
|
||||||
|
copy:
|
||||||
|
content: |
|
||||||
|
{% for line in upper_constraints.content.splitlines() %}
|
||||||
|
{% set package, _, version = line.partition('===') %}
|
||||||
|
{{ package }}==={{ ipa_build_custom_upper_constraints.get(package, version) }}
|
||||||
|
{% endfor %}
|
||||||
|
dest: "{{ ipa_build_source_checkout_path }}/ironic-python-agent/upper-constraints.txt"
|
||||||
|
when: "{{ ipa_build_upper_constraints_file_url != None }}"
|
||||||
|
|
||||||
|
- name: Ensure existing Ironic Python Agent (IPA) images are removed when forcing rebuild
|
||||||
|
file:
|
||||||
|
path: "{{ ipa_build_source_checkout_path }}/ironic-python-agent/imagebuild/coreos/UPLOAD/{{ item }}"
|
||||||
|
state: absent
|
||||||
|
with_items:
|
||||||
|
- "coreos_production_pxe.vmlinuz"
|
||||||
|
- "coreos_production_pxe_image-oem.cpio.gz"
|
||||||
|
when: "{{ ipa_build_force | bool }}"
|
||||||
|
|
||||||
|
- name: Ensure Ironic Python Agent (IPA) images are built
|
||||||
|
shell: >
|
||||||
|
{% if ipa_build_venv | bool %}
|
||||||
|
source {{ ipa_build_venv }}/bin/activate &&
|
||||||
|
{% endif %}
|
||||||
|
{% if ipa_build_upper_constraints_file_url is defined %}
|
||||||
|
export UPPER_CONSTRAINTS_FILE="{{ ipa_build_source_checkout_path }}/ironic-python-agent/upper-constraints.txt" &&
|
||||||
|
{% endif %}
|
||||||
|
make clean &&
|
||||||
|
make
|
||||||
|
args:
|
||||||
|
chdir: "{{ ipa_build_source_checkout_path }}/ironic-python-agent/imagebuild/coreos"
|
||||||
|
creates: "{{ ipa_build_source_checkout_path }}/ironic-python-agent/imagebuild/coreos/UPLOAD/coreos_production_pxe_image-oem.cpio.gz"
|
||||||
|
|
||||||
|
- name: Ensure built Ironic Python Agent (IPA) images are cached
|
||||||
|
copy:
|
||||||
|
src: "{{ ipa_build_source_checkout_path }}/ironic-python-agent/imagebuild/coreos/UPLOAD/{{ item.src }}"
|
||||||
|
dest: "{{ ipa_build_image_cache_path }}/{{ item.dest }}"
|
||||||
|
remote_src: True
|
||||||
|
with_items:
|
||||||
|
- src: "coreos_production_pxe.vmlinuz"
|
||||||
|
dest: "{{ ipa_build_kernel_name }}"
|
||||||
|
- src: "coreos_production_pxe_image-oem.cpio.gz"
|
||||||
|
dest: "{{ ipa_build_ramdisk_name }}"
|
@ -16,11 +16,13 @@ ipa_images_cache_path:
|
|||||||
# Name of Ironic deployment kernel image to register in Glance.
|
# Name of Ironic deployment kernel image to register in Glance.
|
||||||
ipa_images_kernel_name:
|
ipa_images_kernel_name:
|
||||||
|
|
||||||
# URL of Ironic deployment kernel image to download.
|
# URL of Ironic deployment kernel image to download. If unset, an existing
|
||||||
|
# image in ipa_images_cache_path will be used.
|
||||||
ipa_images_kernel_url:
|
ipa_images_kernel_url:
|
||||||
|
|
||||||
# Name of Ironic deployment ramdisk image to register in Glance.
|
# Name of Ironic deployment ramdisk image to register in Glance.
|
||||||
ipa_images_ramdisk_name:
|
ipa_images_ramdisk_name:
|
||||||
|
|
||||||
# URL of Ironic deployment ramdisk image to download.
|
# URL of Ironic deployment ramdisk image to download. If unset, an existing
|
||||||
|
# image in ipa_images_cache_path will be used.
|
||||||
ipa_images_ramdisk_url:
|
ipa_images_ramdisk_url:
|
||||||
|
@ -10,10 +10,24 @@
|
|||||||
- name: Ensure Ironic Python Agent (IPA) images are downloaded
|
- name: Ensure Ironic Python Agent (IPA) images are downloaded
|
||||||
get_url:
|
get_url:
|
||||||
url: "{{ item }}"
|
url: "{{ item }}"
|
||||||
dest: "{{ ipa_images_cache_path }}"
|
dest: "{{ ipa_images_cache_path }}/{{ item.filename }}"
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ ipa_images_kernel_url }}"
|
- url: "{{ ipa_images_kernel_url }}"
|
||||||
- "{{ ipa_images_ramdisk_url }}"
|
filename: "{{ ipa_images_kernel_name }}"
|
||||||
|
- url: "{{ ipa_images_ramdisk_url }}"
|
||||||
|
filename: "{{ ipa_images_ramdisk_name }}"
|
||||||
|
when: "{{ item.url != None }}"
|
||||||
|
|
||||||
|
- name: Compute the MD5 checksum of the Ironic Python Agent (IPA) images
|
||||||
|
stat:
|
||||||
|
path: "{{ ipa_images_cache_path }}/{{ item }}"
|
||||||
|
get_md5: True
|
||||||
|
get_checksum: False
|
||||||
|
mime: False
|
||||||
|
with_items:
|
||||||
|
- "{{ ipa_images_kernel_name }}"
|
||||||
|
- "{{ ipa_images_ramdisk_name }}"
|
||||||
|
register: ipa_images_checksum
|
||||||
|
|
||||||
# Note that setting this via a play or task variable seems to not
|
# Note that setting this via a play or task variable seems to not
|
||||||
# evaluate the Jinja variable reference, so we use set_fact.
|
# evaluate the Jinja variable reference, so we use set_fact.
|
||||||
@ -21,6 +35,48 @@
|
|||||||
set_fact:
|
set_fact:
|
||||||
ansible_python_interpreter: "{{ ipa_images_venv }}/bin/python"
|
ansible_python_interpreter: "{{ ipa_images_venv }}/bin/python"
|
||||||
|
|
||||||
|
# To support updating the IPA image, we check the MD5 sum of the cached image
|
||||||
|
# files, and compare with the images in Glance (if there are any).
|
||||||
|
|
||||||
|
- name: Gather facts about Ironic Python Agent (IPA) kernel image
|
||||||
|
os_image_facts:
|
||||||
|
auth_type: "{{ ipa_images_openstack_auth_type }}"
|
||||||
|
auth: "{{ ipa_images_openstack_auth }}"
|
||||||
|
image: "{{ ipa_images_kernel_name }}"
|
||||||
|
|
||||||
|
- name: Set a fact containing the Ironic Python Agent (IPA) kernel image checksum
|
||||||
|
set_fact:
|
||||||
|
ipa_images_kernel_checksum: "{{ openstack_image.checksum }}"
|
||||||
|
when: "{{ openstack_image != None }}"
|
||||||
|
|
||||||
|
- name: Gather facts about Ironic Python Agent (IPA) ramdisk image
|
||||||
|
os_image_facts:
|
||||||
|
auth_type: "{{ ipa_images_openstack_auth_type }}"
|
||||||
|
auth: "{{ ipa_images_openstack_auth }}"
|
||||||
|
image: "{{ ipa_images_ramdisk_name }}"
|
||||||
|
|
||||||
|
- name: Set a fact containing the Ironic Python Agent (IPA) ramdisk image checksum
|
||||||
|
set_fact:
|
||||||
|
ipa_images_ramdisk_checksum: "{{ openstack_image.checksum }}"
|
||||||
|
when: "{{ openstack_image != None }}"
|
||||||
|
|
||||||
|
- name: Ensure Ironic Python Agent (IPA) images are removed from Glance
|
||||||
|
os_image:
|
||||||
|
auth_type: "{{ ipa_images_openstack_auth_type }}"
|
||||||
|
auth: "{{ ipa_images_openstack_auth }}"
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
state: absent
|
||||||
|
with_items:
|
||||||
|
- name: "{{ ipa_images_kernel_name }}"
|
||||||
|
checksum: "{{ ipa_images_checksum.results[0].stat.md5 }}"
|
||||||
|
glance_checksum: "{{ ipa_images_kernel_checksum | default }}"
|
||||||
|
- name: "{{ ipa_images_ramdisk_name }}"
|
||||||
|
checksum: "{{ ipa_images_checksum.results[1].stat.md5 }}"
|
||||||
|
glance_checksum: "{{ ipa_images_ramdisk_checksum | default }}"
|
||||||
|
when:
|
||||||
|
- "{{ item.glance_checksum != None }}"
|
||||||
|
- "{{ item.checksum != item.glance_checksum }}"
|
||||||
|
|
||||||
- name: Ensure Ironic Python Agent (IPA) images are registered with Glance
|
- name: Ensure Ironic Python Agent (IPA) images are registered with Glance
|
||||||
os_image:
|
os_image:
|
||||||
auth_type: "{{ ipa_images_openstack_auth_type }}"
|
auth_type: "{{ ipa_images_openstack_auth_type }}"
|
||||||
@ -29,13 +85,11 @@
|
|||||||
container_format: "{{ item.format }}"
|
container_format: "{{ item.format }}"
|
||||||
disk_format: "{{ item.format }}"
|
disk_format: "{{ item.format }}"
|
||||||
state: present
|
state: present
|
||||||
filename: "{{ ipa_images_cache_path }}/{{ item.filename }}"
|
filename: "{{ ipa_images_cache_path }}/{{ item.name }}"
|
||||||
with_items:
|
with_items:
|
||||||
- name: "{{ ipa_images_kernel_name }}"
|
- name: "{{ ipa_images_kernel_name }}"
|
||||||
filename: "{{ ipa_images_kernel_url | basename }}"
|
|
||||||
format: aki
|
format: aki
|
||||||
- name: "{{ ipa_images_ramdisk_name }}"
|
- name: "{{ ipa_images_ramdisk_name }}"
|
||||||
filename: "{{ ipa_images_ramdisk_url | basename }}"
|
|
||||||
format: ari
|
format: ari
|
||||||
|
|
||||||
# This variable is unset before we set it, and it does not appear to be
|
# This variable is unset before we set it, and it does not appear to be
|
||||||
|
@ -1,6 +1,25 @@
|
|||||||
---
|
---
|
||||||
# Ironic Python Agent (IPA) configuration.
|
# Ironic Python Agent (IPA) configuration.
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Ironic Python Agent (IPA) image build configuration.
|
||||||
|
|
||||||
|
# Whether to build IPA images from source.
|
||||||
|
#ipa_build_images:
|
||||||
|
|
||||||
|
# URL of IPA source repository.
|
||||||
|
#ipa_build_source_url:
|
||||||
|
|
||||||
|
# Version of IPA source repository.
|
||||||
|
#ipa_build_source_version:
|
||||||
|
|
||||||
|
# URL of IPA upper constraints file.
|
||||||
|
#ipa_build_upper_constraints_file_url:
|
||||||
|
|
||||||
|
# Custom python package version constraints for IPA. Dict mapping package name
|
||||||
|
# to upper version constraint.
|
||||||
|
#ipa_build_custom_upper_constraints:
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Ironic Python Agent (IPA) images configuration.
|
# Ironic Python Agent (IPA) images configuration.
|
||||||
|
|
||||||
@ -8,13 +27,13 @@
|
|||||||
#ipa_images_kernel_name:
|
#ipa_images_kernel_name:
|
||||||
|
|
||||||
# URL of Ironic deployment kernel image to download.
|
# URL of Ironic deployment kernel image to download.
|
||||||
#ipa_images_kernel_url:
|
#ipa_kernel_upstream_url:
|
||||||
|
|
||||||
# Name of Ironic deployment ramdisk image to register in Glance.
|
# Name of Ironic deployment ramdisk image to register in Glance.
|
||||||
#ipa_images_ramdisk_name:
|
#ipa_images_ramdisk_name:
|
||||||
|
|
||||||
# URL of Ironic deployment ramdisk image to download.
|
# URL of Ironic deployment ramdisk image to download.
|
||||||
#ipa_images_ramdisk_url:
|
#ipa_ramdisk_upstream_url:
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Ironic Python Agent (IPA) deployment configuration.
|
# Ironic Python Agent (IPA) deployment configuration.
|
||||||
|
@ -465,7 +465,7 @@ class OvercloudPostConfigure(KayobeAnsibleMixin, Command):
|
|||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
self.app.LOG.debug("Performing post-deployment configuration")
|
self.app.LOG.debug("Performing post-deployment configuration")
|
||||||
playbooks = _build_playbook_list(
|
playbooks = _build_playbook_list(
|
||||||
"ipa-images", "overcloud-introspection-rules",
|
"ipa-build", "ipa-images", "overcloud-introspection-rules",
|
||||||
"overcloud-introspection-rules-dell-lldp-workaround",
|
"overcloud-introspection-rules-dell-lldp-workaround",
|
||||||
"provision-net")
|
"provision-net")
|
||||||
self.run_kayobe_playbooks(parsed_args, playbooks)
|
self.run_kayobe_playbooks(parsed_args, playbooks)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user