I’m working on a list of filters ordered by cost. This is what I have so far. Does this look reasonably correct for Rocky?

 

Cheap Filters:

 

AllHostsFilter - does no filtering. It passes all the available hosts.

AvailabilityZoneFilter - filters hosts by availability zone.

AggregateInstanceExtraSpecsFilter - checks aggregate metadata set with aggregate_instance_extra_specs.  All hosts are passed if no extra_specs are specified.

AggregateCoreFilter - filters hosts by CPU core number with per-aggregate cpu_allocation_ratio setting.

AggregateRamFilter - filters hosts by RAM with per-aggregate ram_allocation_ratio setting.

AggregateDiskFilter - filters hosts by disk allocation with per-aggregate disk_allocation_ratio setting.

AggregateNumInstancesFilter - filters hosts by number of instances with per-aggregate max_instances_per_host setting.

AggregateIoOpsFilter - filters hosts by I/O operations with per-aggregate max_io_ops_per_host setting.

AggregateMultiTenancyIsolation - isolate tenants in specific aggregates.

AggregateTypeAffinityFilter - limits instance_type by aggregate.

AggregateImagePropertiesIsolation - isolates hosts based on image properties and aggregate metadata.

DifferentHostFilter - allows the instance on a different host from a set of instances.

SameHostFilter - puts the instance on the same host as another instance in a set of instances.

ComputeFilter - passes all hosts that are operational and enabled.

NumInstancesFilter - filters compute nodes by number of running instances.

IoOpsFilter - filters hosts by concurrent I/O operations.

 

More Expensive Filters:

 

ServerGroupAntiAffinityFilter - This filter implements anti-affinity for a server group.

ServerGroupAffinityFilter - This filter works the same way as ServerGroupAntiAffinityFilter. The difference is that when you create the server group, you should specify a policy of ‘affinity’.

ImagePropertiesFilter - filters hosts based on properties defined on the instance’s image. Doc on setting image properties is here: https://docs.openstack.org/glance/rocky/admin/useful-image-properties.html

IsolatedHostsFilter - filter based on isolated_images, isolated_hosts and restrict_isolated_hosts_to_isolated_images flags.

SimpleCIDRAffinityFilter - allows a new instance on a host within the same IP block.

MetricsFilter - filters hosts based on metrics weight_setting.

 

Most Expensive Filters:

 

PciPassthroughFilter - Filter that schedules instances on a host if the host has devices to meet the device requests in the ‘extra_specs’ for the flavor.

ComputeCapabilitiesFilter - checks that the capabilities provided by the host compute service satisfy any extra specifications associated with the instance type.

NUMATopologyFilter - filters hosts based on the NUMA topology requested by the instance, if any.

JsonFilter - allows simple JSON-based grammar for selecting hosts.

 

Deprecated Filters:

 

Please don't use any of these; they are obsolete in Rocky:

 

RetryFilter - filters hosts that have already been attempted for scheduling. Obsolete since Queens.

RamFilter - filters hosts by their RAM. Obsolete since Pike. 

CoreFilter - filters based on CPU core utilization. Obsolete since Pike.

DiskFilter - filters hosts by their disk allocation. Obsolete since Pike.