Skip to content

Add network-group-affinity/anti-affinity server group policies#116

Draft
RSabounds wants to merge 1 commit into
openstack:masterfrom
RSabounds:openstack-servergroup-network-affinity
Draft

Add network-group-affinity/anti-affinity server group policies#116
RSabounds wants to merge 1 commit into
openstack:masterfrom
RSabounds:openstack-servergroup-network-affinity

Conversation

@RSabounds

Copy link
Copy Markdown

Introduces two new server group policies that constrain instance placement based on the physical network group (VLAN group / cabinet switch pair) an Ironic node belongs to.

New policies:

  • network-group-affinity: schedule only onto nodes in the specified network group
  • network-group-anti-affinity: schedule only onto nodes NOT in the specified network group

The network group is specified via the server group rules field:
openstack server group create --policy network-group-affinity
--rule network_group=a1-1-network my-cabinet-group

The filters match CUSTOM_NETGROUP_* traits reported by Ironic nodes via the Placement service. This eliminates the need for per-network- group flavor proliferation.

Changes:

  • New NetworkGroupAffinityFilter and NetworkGroupAntiAffinityFilter
  • Schema updated to accept new policies and network_group rule
  • API controller validates rules per policy type
  • InstanceGroup.rules property parses network_group
  • Scheduler utils recognizes new policies
  • New filters added to default enabled_filters
  • Unit tests (15 tests, all passing)
  • Lint clean (flake8 + hacking)

Introduces two new server group policies that constrain instance
placement based on the physical network group (VLAN group / cabinet
switch pair) an Ironic node belongs to.

New policies:
- network-group-affinity: schedule only onto nodes in the specified
  network group
- network-group-anti-affinity: schedule only onto nodes NOT in the
  specified network group

The network group is specified via the server group rules field:
  openstack server group create --policy network-group-affinity \
    --rule network_group=a1-1-network my-cabinet-group

The filters match CUSTOM_NETGROUP_* traits reported by Ironic nodes
via the Placement service. This eliminates the need for per-network-
group flavor proliferation.

Changes:
- New NetworkGroupAffinityFilter and NetworkGroupAntiAffinityFilter
- Schema updated to accept new policies and network_group rule
- API controller validates rules per policy type
- InstanceGroup.rules property parses network_group
- Scheduler utils recognizes new policies
- New filters added to default enabled_filters
- Unit tests (15 tests, all passing)
- Lint clean (flake8 + hacking)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant