Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update rack spreading MEP-12. #144

Merged
merged 1 commit into from
Aug 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions docs/src/development/proposals/MEP12/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ So, instead of just randomly deciding the placement of a machine candidate, we w

## Placement Strategy

Machines in the project are spread across all available racks evenly (best effort), the user can optionally pass placement tags which will be considered for spreading the machines as well (this will for example allow spreading by a cluster id tag inside the same project).
Machines in the project are spread across all available racks evenly within a partition (best effort). For this, an additional request to the datastore has to be made in order to find allocated machines within the project in the partition.

The algorithm will then figure out the least occupied racks and elect a machine candidate randomly from those racks.

The user can optionally pass placement tags which will be considered for spreading the machines as well (this will for example allow spreading by a cluster id tag inside the same project).

## API

Expand All @@ -17,6 +21,6 @@ Machines in the project are spread across all available racks evenly (best effor

type MachineAllocation struct {
// existing fields are omitted for readability
PlacementTags []string `json:"tags" description:"by default machines are spread across the racks inside a partition for every project. if placement tags are provided, the machine candidate has an additional anti-affinity to other machines having the same tags"`
PlacementTags []string `json:"placement_tags" description:"by default machines are spread across the racks inside a partition for every project. if placement tags are provided, the machine candidate has an additional anti-affinity to other machines having the same tags"`
}
```
4 changes: 2 additions & 2 deletions docs/src/development/proposals/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ Once a proposal was accepted, an issue should be raised and the implementation s
| [MEP-1](MEP1/README.md) | Distributed Control Plane Deployment | `In Discussion` |
| [MEP-2](MEP2/README.md) | Two Factor Authentication | `Aborted` |
| [MEP-3](MEP3/README.md) | Machine Re-Installation to preserve local data | `Completed` |
| [MEP-4](MEP4/README.md) | Multi-tenancy for the metal-api | `Accepted` |
| [MEP-4](MEP4/README.md) | Multi-tenancy for the metal-api | `In Discussion` |
| [MEP-5](MEP5/README.md) | Shared Networks | `Completed` |
| [MEP-6](MEP6/README.md) | DMZ Networks | `Completed` |
| [MEP-8](MEP8/README.md) | Configurable Filesystemlayout | `Completed` |
| [MEP-9](MEP9/README.md) | No Open Ports To the Data Center | `Completed` |
| [MEP-10](MEP10/README.md) | SONiC Support | `Completed` |
| [MEP-11](MEP11/README.md) | Auditing of metal-stack resources | `Completed` |
| [MEP-12](MEP12/README.md) | Rack Spreading | `In Discussion` |
| [MEP-12](MEP12/README.md) | Rack Spreading | `Completed` |
Loading