Hi, On Sun, Apr 29, 2018 at 5:29 PM, Ed Leafe <e...@leafe.com> wrote: > On Apr 29, 2018, at 1:34 PM, Artom Lifshitz <alifs...@redhat.com> wrote: >> >> Based on that, we can definitely say that SameHostFilter and >> DifferentHostFilter do *not* belong in the defaults. In fact, we got >> our defaults pretty spot on, based on this admittedly very limited >> dataset. The only frequently occurring filter that's not in our >> defaults is AggregateInstanceExtraSpecsFilter. > > Another data point that might be illuminating is: how many sites use a custom > (i.e., not in-tree) filter or weigher? One of the original design tenets of > the scheduler was that we did not want to artificially limit what people > could use to control their deployments, but inside of Nova there is a lot of > confusion as to whether anyone is using anything but the included filters. > > So - does anyone out there rely on a filter and/or weigher that they wrote > themselves, and maintain outside of OpenStack?
Yes and we have a bunch. Here are our filters and weighers with explanations. Filters for cells: * InstanceTypeClassFilter [0] Filters for cloud/virtual cells: * RetryFilter * AvailabilityZoneFilter * RamFilter * ComputeFilter * AggregateCoreFilter * ImagePropertiesFilter * AggregateImageOsTypeIsolationFilter [1] * AggregateInstanceExtraSpecsFilter * AggregateProjectsIsolationFilter [2] Weighers for cloud/virtual cells: * MetricsWeigher * AggregateRAMWeigher [3] Filters for baremetal cells: * ComputeFilter * NetworkModelFilter [4] * TenantFilter [5] * UserFilter [6] * RetryFilter * AvailabilityZoneFilter * ComputeCapabilitiesFilter * ImagePropertiesFilter * ExactRamFilter * ExactDiskFilter * ExactCoreFilter Weighers for baremetal cells: * ReservedHostForTenantWeigher [7] * ReservedHostForUserWeigher [8] [0] Used to scheduler instances based on flavor class found in extra_specs (virtual/baremetal) [1] Allows to properly isolated hosts for licensing purposes. The upstream filter is not strict as per bugs/reviews/specs: * https://bugs.launchpad.net/nova/+bug/1293444 * https://bugs.launchpad.net/nova/+bug/1677217 * https://review.openstack.org/#/c/56420/ * https://review.openstack.org/#/c/85399/ Our custom implementation for Mitaka: https://gist.github.com/mgagne/462e7fa8417843055aa6da7c5fd51c00 [2] Similar filter to AggregateImageOsTypeIsolationFilter but for projects. Our custom implementation for Mitaka: https://gist.github.com/mgagne/d729ccb512b0434568ffb094441f643f [3] Allows to change stacking behavior based on the 'ram_weight_multiplier' aggregate key. (emptiest/fullest) Our custom implementation for Mitaka: https://gist.github.com/mgagne/65f033cbc5fdd4c8d1f45e90c943a5f4 [4] Used to filter Ironic nodes based on supported network models as requested by flavor extra_specs. We support JIT network configuration (flat/bond) and need to know which nodes support what network models beforehand. [5] Used to filter Ironic nodes based on the 'reserved_for_tenant_id' Ironic node property. This is used to reserve Ironic node to specific projects. Some customers order lot of machines in advance. We reserve those for them. [6] Used to filter Ironic nodes based on the 'reserved_for_user_id' Ironic node property. This is mainly used when enrolling existing nodes already living on a different system. We reserve the node to a special internal user so the customer cannot reserve the node by mistake until the process is completed. Latest version of Nova dropped user_id from RequestSpec. We had to add it back. [7] Used to favor reserved host over non-reserved ones based on project. [8] Used to favor reserved host over non-reserved ones based on user. Latest version of Nova dropped user_id from RequestSpec. We had to add it back. -- Mathieu _______________________________________________ OpenStack-operators mailing list OpenStack-operators@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators