diff --git a/playbooks/roles/bifrost-ironic-install/defaults/main.yml b/playbooks/roles/bifrost-ironic-install/defaults/main.yml index a99eda5c3..afa2716d2 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/main.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/main.yml @@ -97,6 +97,11 @@ enabled_boot_interfaces: "ilo-virtual-media,pxe" enabled_management_interfaces: "ilo,ipmitool,ucsm" enabled_power_interfaces: "ilo,ipmitool,ucsm" +# Extra pip packages to install with ironic +# This should be a list of pip-installable references. +# default: empty list +ironic_extra_packages: [] + # DHCP pool for requests -- ignored if inventory_dhcp is set to True # since IP allocation will be static. dhcp_pool_start: 192.168.1.200 diff --git a/playbooks/roles/bifrost-ironic-install/tasks/install.yml b/playbooks/roles/bifrost-ironic-install/tasks/install.yml index 2962ca466..123eb7f6f 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/install.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/install.yml @@ -114,6 +114,12 @@ (ansible_distribution == 'Ubuntu' and ansible_distribution_version|version_compare('14.10', '==')) or (ansible_distribution == 'Fedora' and ansible_distribution_version|version_compare('25', '>=')) +- name: "Install extra packages for ironic" + include: pip_install.yml + package={{ item }} + extra_args="-c {{ upper_constraints_file }}" + with_items: "{{ ironic_extra_packages }}" + - name: "Install Ironic using pip" include: pip_install.yml package=ironic diff --git a/releasenotes/notes/ironic-extra-packages-e3ad3e4a85e59049.yaml b/releasenotes/notes/ironic-extra-packages-e3ad3e4a85e59049.yaml new file mode 100644 index 000000000..5b3deb5ff --- /dev/null +++ b/releasenotes/notes/ironic-extra-packages-e3ad3e4a85e59049.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Extra packages to install with ironic may be specified as a list in the + variable ironic_extra_packages. This is especially useful for out-of-tree + drivers.