You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Background
For virtual machines spawned on the kvm hypervisor, we want to no longer
use nova and placement as source of truth. Instead, filters should use
the hypervisor crd exposed by the [hypervisor
operator](github.com/cobaltcore-dev/openstack-hypervisor-operator) and
populated by the [node
agent](https://github.com/cobaltcore-dev/kvm-node-agent). This
contribution replaces the implementation of all filters that were
originally ported from nova accordingly. Afterward, we can disable
filters in nova one-by-one, moving the compute placement logic over to
cortex.
> [!TIP]
> You can use the newly added [mirror
tool](93fdcc0)
to mirror hypervisor resources from our compute cluster over to the
local cluster.
## Completion
- [x]
~internal/scheduling/decisions/nova/plugins/filters/filter_compute_capabilities.go~
(REMOVED)
- [x]
internal/scheduling/decisions/nova/plugins/filters/filter_capabilities.go
(NEW)
- [x]
internal/scheduling/decisions/nova/plugins/filters/filter_correct_az.go
- [x]
internal/scheduling/decisions/nova/plugins/filters/filter_external_customer.go
- [x]
internal/scheduling/decisions/nova/plugins/filters/filter_has_accelerators.go
- [x]
internal/scheduling/decisions/nova/plugins/filters/filter_has_enough_capacity.go
- [x]
internal/scheduling/decisions/nova/plugins/filters/filter_has_requested_traits.go
- [x]
internal/scheduling/decisions/nova/plugins/filters/filter_host_instructions.go
- [x]
internal/scheduling/decisions/nova/plugins/filters/filter_maintenance.go
(NEW)
- [x]
internal/scheduling/decisions/nova/plugins/filters/filter_packed_virtqueue.go
- [x]
~internal/scheduling/decisions/nova/plugins/filters/filter_project_aggregates.go~
(REMOVED)
- [x]
internal/scheduling/decisions/nova/plugins/filters/filter_allowed_projects.go
(NEW)
- [x]
~internal/scheduling/decisions/nova/plugins/filters/filter_disabled.go~
(REMOVED)
- [x]
internal/scheduling/decisions/nova/plugins/filters/filter_status_conditions.go
(NEW)
## Dependencies
> [!NOTE]
> The scope of this PR is to establish a minimum viable scheduling
pipeline with the current state. Extensive refactorings, for example of
the filter for requested traits, are out of scope.
Hypervisor operator PR:
cobaltcore-dev/openstack-hypervisor-operator#217
KVM node agent PR:
cobaltcore-dev/kvm-node-agent#40
0 commit comments