Allow a custom filter to be used / injected.
diff --git a/README.rst b/README.rst
index 4aeecf8..bb8f2de 100644
--- a/README.rst
+++ b/README.rst
@@ -320,6 +320,21 @@
- path: /mnt/hugepages_1GB
- path: /mnt/hugepages_2MB
+Custom Scheduler filters
+------------------------
+
+If you have a custom filter, that needs to be included in the scheduler, then you can include it like so:
+
+.. code-block:: yaml
+
+ nova:
+ controller:
+ scheduler_custom_filters:
+ - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
+
+ # Then add your custom filter on the end (make sure to include all other ones that you need as well)
+ scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
+
Documentation and Bugs
======================
diff --git a/nova/files/mitaka/nova-controller.conf.Debian b/nova/files/mitaka/nova-controller.conf.Debian
index 2711cb8..44548e9 100644
--- a/nova/files/mitaka/nova-controller.conf.Debian
+++ b/nova/files/mitaka/nova-controller.conf.Debian
@@ -22,6 +22,9 @@
scheduler_default_filters = {{ controller.scheduler_default_filters }}
scheduler_available_filters = nova.scheduler.filters.all_filters
scheduler_available_filters = nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter
+{% for filter in controller.get('scheduler_custom_filters', []) %}
+scheduler_available_filters = {{ filter }}
+{% endif %}
scheduler_driver = filter_scheduler
allow_resize_to_same_host = True
osapi_max_limit = {{ controller.osapi_max_limit|default('1000') }}