[GEP-33] Add Capability support#1222
Conversation
|
@Vincinator You need rebase this pull request with latest master branch. Please check. |
928310f to
24bfad5
Compare
13d3e49 to
b1a388f
Compare
b1a388f to
ea238f2
Compare
ea238f2 to
e6d7460
Compare
|
The Gardener project currently lacks enough active contributors to adequately respond to all PRs.
You can:
/lifecycle stale |
The `SimulateTransformToParentFormat` function simulates changes on copies of the provider configuration. Move the validation to occur before this simulation. This ensures we are checking the original user input to confirm that only `spec.providerConfig.machineImages` has been set, preventing the simulation from running with an invalid initial state.
extract to method
* added function for finding best machine image (based on AWS GEP-33 implementation) * added machineImage.Image logic to ported GEP-33 functions, if machineImage.Image is defined and no imageIDs are specified for each region, the machineImage.Image must be used for selection. refactor machine_test.go: * use describeTableSubTree to test capabilities and legacy clpf * use describeTableSubTree to test if imageName is used instead of imageID and vice versa * replace setup function with BeforeEach
e6d7460 to
91fe95a
Compare
|
This pull request implements a significant enhancement to the Gardener OpenStack extension by introducing support for machine image capabilities, which represents a migration from the legacy architecture-based system to a more flexible capability-based approach. The changes enable users to specify machine requirements through a structured capabilities system rather than hardcoded architecture fields. Walkthrough
Model: claude-sonnet-4-20250514 | Prompt Tokens: 57074 | Completion Tokens: 232 |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: AndreasBurger, Vincinator The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
How to categorize this PR?
/area control-plane
/kind enhancement
/platform openstack
What this PR does / why we need it:
This PR is part of GEP-33 Machine Image Capabilities
It adopts the introduced Cloud Profile Capabilities from Gardener. It offers a mechanism to define a relationships between MachineTypes and MachineImages to ensure only compatible amis are selected for a given MachineType. An example for a Capability is the CPU architecture that is added as the first mandatory Capability. The existing architecture field is planned to be removed eventually.
As the CloudProfile size is limited this PR aims to eliminate repetition of Capabilities in the providerConfig. To do that an additional grouping of region-ami-mapping is introduced; called CapabilitySet. One CapabilitySet contains all amis that offer the same Capabilities, e.g. architecture: amd64.
Openstack-Specific Adaptations:
Since OpenStack supports global image names (in addition to region-specific imageIDs), this implementation includes:
pkg/controller/worker/machines_test.goto use DescribeTableSubTree with parameterized test entries instead of a setup function, enabling comprehensive test coverage for both machineImage and machineImageID scenarios across all test cases.Which issue(s) this PR fixes:
Part of: gardener/gardener#11301
Special notes for your reviewer:
Requires prior merge of #1218 (which includes changes from gardener/gardener#13138)
Implementation follows the pattern established in provider-aws
Release note: