Commit bc1d56d
authored
Extend hypervisor crd for cortex filtering (#217)
## Background
In [this pull request](cobaltcore-dev/cortex#441) we implemented a cortex filtering pipeline for KVM. This pipeline uses the hypervisor CRD as single source of truth to find out on which hypervisors a vm can be scheduled. To complete this implementation, we need to extend the hypervisor CRD.
## Tasks
Support filtering based on hypervisor type and other capabilities:
- [x] The capabilities struct should be extended to support the hypervisor type. Later, we will probably need to extend this struct further.
- [x] Add fields for supported devices (e.g. video device), cpu modes, and features (for migration filtering)
Capacity filtering:
- [x] We need a spec + status not only for the size of the host, but also for the currently used capacity. This will be used by cortex to filter out hosts without the required capacity. This scheduling logic can be made more intelligent in the future, by mapping out individual numa cells and including reserved capacity.
Pinned projects:
- [x] Provide a spec to declare pinned projects on this hypervisor.
(Bonus)
- [x] Add numa cell capacity & allocation information so we can implement numa sensitive initial placement
When finished:
- [x] Ensure backwards compatibility so we can roll this out without any issues
## Dependencies
> [!NOTE]
> The scope of this PR is to establish a minimum viable scheduling pipeline in cortex, with the least amount of changes possible. Refactorings of the hypervisor crd spec can follow if needed.
KVM node agent PR: cobaltcore-dev/kvm-node-agent#401 parent 768f631 commit bc1d56d
File tree
11 files changed
+730
-36
lines changed- api/v1
- applyconfigurations
- api/v1
- charts/openstack-hypervisor-operator/crds
- config/crd/bases
11 files changed
+730
-36
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
96 | 102 | | |
97 | 103 | | |
98 | 104 | | |
| |||
190 | 196 | | |
191 | 197 | | |
192 | 198 | | |
193 | | - | |
194 | | - | |
| 199 | + | |
| 200 | + | |
195 | 201 | | |
196 | 202 | | |
197 | 203 | | |
| |||
201 | 207 | | |
202 | 208 | | |
203 | 209 | | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
204 | 281 | | |
205 | 282 | | |
206 | 283 | | |
| |||
216 | 293 | | |
217 | 294 | | |
218 | 295 | | |
219 | | - | |
220 | | - | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
221 | 316 | | |
222 | 317 | | |
223 | 318 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments