diff --git a/README.rst b/README.rst index 4ecc50243..ce17a5bde 100644 --- a/README.rst +++ b/README.rst @@ -197,6 +197,13 @@ After you have performed an installation, you can edit /etc/ironic/ironic.conf to enable or disable cleaning as desired, however it is highly encouraged to utilize cleaning in any production environment. +The ironic community maintains a repository additional of drivers outside ironic. +These drivers and information about them can be found `here `_. +If you would like to install the ironic staging drivers, simply pass +``-e staging_drivers_include=true`` when executing the install playbook:: + + ansible-playbook -K -vvvv -i inventory/localhost install.yaml -e staging_drivers_include=true + Manual CLI use -------------- diff --git a/playbooks/roles/bifrost-ironic-install/defaults/main.yml b/playbooks/roles/bifrost-ironic-install/defaults/main.yml index 4b0bb61d2..11966ee17 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/main.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/main.yml @@ -3,6 +3,7 @@ # which causes the nodes to be wiped after deletion. cleaning: false http_boot_folder: /httpboot +staging_drivers_include: false # Deprecated: nginx_port is no longer used and file_url_port should # be used instead. file_url_port: "{{ nginx_port | default('8080') }}" @@ -10,6 +11,7 @@ ironicclient_source_install: false shade_source_install: true ironicinspector_source_install: false ironicinspectorclient_source_install: false +staging_drivers_source_install: false # Setting to utilize diskimage-builder to create a bootable image. create_image_via_dib: true # Setting to install diskimage-builder @@ -72,8 +74,11 @@ ironicclient_git_folder: /opt/stack/python-ironicclient shade_git_folder: /opt/stack/shade dib_git_folder: /opt/stack/diskimage-builder reqs_git_folder: /opt/stack/requirements +staging_drivers_git_folder: /opt/stack/ironic-staging-drivers ironicinspector_git_folder: /opt/stack/ironic-inspector ironicinspectorclient_git_folder: /opt/stack/python-ironic-inspector-client +staging_drivers_git_url: http://git.openstack.org/cgit/openstack/ironic-staging-drivers + # Comma-separated list, in the format of a string, of drivers that are enabled # by default. This is intended to be a list of agent based drivers. # PXE drivers can be found in the setting pxe_drivers that can be found below. diff --git a/playbooks/roles/bifrost-ironic-install/tasks/install.yml b/playbooks/roles/bifrost-ironic-install/tasks/install.yml index 7ac91dbe0..8874da2d3 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/install.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/install.yml @@ -96,3 +96,7 @@ - name: "Install ironic-inspector to permit use of inspection interface" include: inspector_install.yml when: enable_inspector | bool == true +- name: "Install ironic-staging-drivers" + include: staging_install.yml + when: staging_drivers_include | bool == true + diff --git a/playbooks/roles/bifrost-ironic-install/tasks/staging_install.yml b/playbooks/roles/bifrost-ironic-install/tasks/staging_install.yml new file mode 100644 index 000000000..5e2124874 --- /dev/null +++ b/playbooks/roles/bifrost-ironic-install/tasks/staging_install.yml @@ -0,0 +1,22 @@ +# Copyright (c) 2016 Mirantis Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- name: "Ironic-staging-drivers - PIP Install" + include: pip_install.yml + package=ironic-staging-drivers + state=latest + sourcedir={{ staging_drivers_git_folder }} + source_install={{ staging_drivers_source_install }} + diff --git a/playbooks/roles/bifrost-prep-for-install/defaults/main.yml b/playbooks/roles/bifrost-prep-for-install/defaults/main.yml index 1146eddaf..377304c07 100644 --- a/playbooks/roles/bifrost-prep-for-install/defaults/main.yml +++ b/playbooks/roles/bifrost-prep-for-install/defaults/main.yml @@ -9,6 +9,7 @@ ironic_git_url: https://git.openstack.org/openstack/ironic ironicinspector_git_url: https://github.com/openstack/ironic-inspector ironicinspectorclient_git_url: https://github.com/openstack/python-ironic-inspector-client reqs_git_url: https://git.openstack.org/openstack/requirements +staging_drivers_git_url: https://git.openstack.org/openstack/ironic-staging-drivers # *_git_folder can be overridden by local clones for offline installs ironicclient_git_folder: "{{ git_root}}/python-ironicclient" ironic_git_folder: "{{ git_root}}/ironic" @@ -17,6 +18,7 @@ ironicinspectorclient_git_folder: "{{ git_root}}/python-ironic-inspector-client" shade_git_folder: "{{ git_root}}/shade" dib_git_folder: "{{ git_root }}/diskimage-builder" reqs_git_folder: "{{ git_root }}/requirements" +staging_drivers_git_folder: "{{ git_root }}/ironic-staging-drivers" # *_git_branch can be overridden for stable branch testing ironicclient_git_branch: master ironic_git_branch: master @@ -25,6 +27,7 @@ dib_git_branch: master ironicinspector_git_branch: master ironicinspectorclient_git_branch: master reqs_git_branch: master +staging_drivers_git_branch: master # Conditional variables utilized based on CI or manual testing options. copy_from_local_path: false @@ -59,3 +62,7 @@ bifrost_install_sources: git_url: "{{ reqs_git_url }}" git_branch: "{{ reqs_git_branch }}" name: requirements + - git_folder: "{{ staging_drivers_git_folder }}" + git_url: "{{ staging_drivers_git_url }}" + git_branch: "{{ staging_drivers_git_branch }}" + name: ironic-staging-drivers diff --git a/playbooks/test-bifrost-dynamic.yaml b/playbooks/test-bifrost-dynamic.yaml index 096b9fec0..a5bdfd644 100644 --- a/playbooks/test-bifrost-dynamic.yaml +++ b/playbooks/test-bifrost-dynamic.yaml @@ -24,6 +24,7 @@ ironicinspector_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/ironic-inspector" ironicinspectorclient_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/python-ironic-inspector-client" reqs_git_url: "/opt/git/openstack/requirements" + staging_drivers_git_url: "/opt/git/openstack/ironic-staging-drivers" # TODO(TheJulia) Fix the above paths to be consistent, because the NV job gets the dib # folder cloned, while the gate job does not. Likely need to work out a semi-hybrid # solution. diff --git a/playbooks/test-bifrost.yaml b/playbooks/test-bifrost.yaml index c35e6865f..64cb733ea 100644 --- a/playbooks/test-bifrost.yaml +++ b/playbooks/test-bifrost.yaml @@ -36,6 +36,7 @@ ironicinspector_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/ironic-inspector" ironicinspectorclient_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/python-ironic-inspector-client" reqs_git_url: "/opt/git/openstack/requirements" + staging_drivers_git_url: "/opt/git/openstack/ironic-staging-drivers" # TODO(TheJulia) Fix the above paths to be consistent, because the NV job gets the dib # folder cloned, while the gate job does not. Likely need to work out a semi-hybrid # solution. diff --git a/releasenotes/notes/support-staging-drivers-1c398a56dde9b240.yaml b/releasenotes/notes/support-staging-drivers-1c398a56dde9b240.yaml new file mode 100644 index 000000000..7b3c11fa9 --- /dev/null +++ b/releasenotes/notes/support-staging-drivers-1c398a56dde9b240.yaml @@ -0,0 +1,9 @@ +--- +features: + - Ironic-Staging-Drivers can now be installed. These are + drivers that are not included in the ironic repo, and + provide additional hardware support for ironic. More + information about the drivers can be found at + `Ironic-Staging-Drivers `_ + To install the staging drivers set `staging_drivers_include` + to true. The default value is false.