diff --git a/README.rst b/README.rst
index 52a244758..b116d0c2f 100644
--- a/README.rst
+++ b/README.rst
@@ -192,6 +192,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.