Skip to content

Commit e6d7460

Browse files
committed
clean up: apply feedback from verify pipeline
1 parent 296cfeb commit e6d7460

File tree

6 files changed

+16
-107
lines changed

6 files changed

+16
-107
lines changed

pkg/admission/mutator/namespacedcloudprofile.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,6 @@ func (p *namespacedCloudProfile) Mutate(_ context.Context, newObj, _ client.Obje
6060
return p.updateProfileStatus(profile, statusConfig)
6161
}
6262

63-
func (p *namespacedCloudProfile) decodeProviderConfig(raw []byte, into *v1alpha1.CloudProfileConfig, configType string) error {
64-
if _, _, err := p.decoder.Decode(raw, nil, into); err != nil {
65-
return fmt.Errorf("could not decode providerConfig of %s: %w", configType, err)
66-
}
67-
return nil
68-
}
69-
7063
func (p *namespacedCloudProfile) updateProfileStatus(profile *gardencorev1beta1.NamespacedCloudProfile, config *v1alpha1.CloudProfileConfig) error {
7164
modifiedStatusConfig, err := json.Marshal(config)
7265
if err != nil {

pkg/admission/validator/namespacedcloudprofile.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -98,23 +98,6 @@ func (p *namespacedCloudProfile) validateMachineImagesOnlyInNamespacedCloudProfi
9898
return nil
9999
}
100100

101-
// validateNamespacedCloudProfileProviderConfig validates the CloudProfileConfig passed with a NamespacedCloudProfile.
102-
func (p *namespacedCloudProfile) validateNamespacedCloudProfileProviderConfigLegacy(providerConfig *api.CloudProfileConfig, profileSpec core.NamespacedCloudProfileSpec, parentSpec gardencorev1beta1.CloudProfileSpec) field.ErrorList {
103-
allErrs := field.ErrorList{}
104-
105-
validationProviderConfig := &api.CloudProfileConfig{
106-
MachineImages: providerConfig.MachineImages,
107-
}
108-
if !equality.Semantic.DeepEqual(validationProviderConfig, providerConfig) {
109-
allErrs = append(allErrs, field.Forbidden(
110-
field.NewPath("spec.providerConfig"),
111-
"must only set machineImages",
112-
))
113-
}
114-
115-
return allErrs
116-
}
117-
118101
func (p *namespacedCloudProfile) validateMachineImages(providerConfig *api.CloudProfileConfig, machineImages []core.MachineImage, parentSpec gardencorev1beta1.CloudProfileSpec) field.ErrorList {
119102
allErrs := field.ErrorList{}
120103

pkg/apis/openstack/validation/cloudprofile.go

Lines changed: 11 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import (
1717
gardencorev1beta1helper "github.com/gardener/gardener/pkg/apis/core/v1beta1/helper"
1818
"github.com/gardener/gardener/pkg/utils"
1919
"github.com/gardener/gardener/pkg/utils/gardener"
20-
gutil "github.com/gardener/gardener/pkg/utils/gardener"
2120
"k8s.io/apimachinery/pkg/util/sets"
2221
"k8s.io/apimachinery/pkg/util/validation/field"
2322
"k8s.io/utils/ptr"
@@ -176,33 +175,33 @@ func ValidateProviderMachineImage(providerImage api.MachineImages, capabilityDef
176175
// Validate each version
177176
for j, version := range providerImage.Versions {
178177
jdxPath := validationPath.Child("versions").Index(j)
179-
allErrs = append(allErrs, validateMachineImageVersion(providerImage, capabilityDefinitions, version, jdxPath)...)
178+
allErrs = append(allErrs, validateMachineImageVersion(capabilityDefinitions, version, jdxPath)...)
180179
}
181180

182181
return allErrs
183182
}
184183

185-
// validateMachineImageVersion validates a specific machine image version
186-
func validateMachineImageVersion(providerImage api.MachineImages, capabilityDefinitions []gardencorev1beta1.CapabilityDefinition, version api.MachineImageVersion, jdxPath *field.Path) field.ErrorList {
184+
// validates a specific machine image version
185+
func validateMachineImageVersion(capabilityDefinitions []gardencorev1beta1.CapabilityDefinition, version api.MachineImageVersion, jdxPath *field.Path) field.ErrorList {
187186
allErrs := field.ErrorList{}
188187

189188
if len(version.Version) == 0 {
190189
allErrs = append(allErrs, field.Required(jdxPath.Child("version"), "must provide a version"))
191190
}
192191

193192
if len(capabilityDefinitions) > 0 {
194-
allErrs = append(allErrs, validateCapabilityFlavors(providerImage, version, capabilityDefinitions, jdxPath)...)
193+
allErrs = append(allErrs, validateCapabilityFlavors(version, capabilityDefinitions, jdxPath)...)
195194
} else {
196-
allErrs = append(allErrs, validateRegions(version.Regions, providerImage.Name, version.Version, capabilityDefinitions, jdxPath)...)
195+
allErrs = append(allErrs, validateRegions(version.Regions, capabilityDefinitions, jdxPath)...)
197196
if len(version.CapabilityFlavors) > 0 {
198197
allErrs = append(allErrs, field.Forbidden(jdxPath.Child("capabilityFlavors"), "must not be set as CloudProfile does not define capabilities. Use regions instead."))
199198
}
200199
}
201200
return allErrs
202201
}
203202

204-
// validateCapabilityFlavors validates the capability flavors of a machine image version.
205-
func validateCapabilityFlavors(providerImage api.MachineImages, version api.MachineImageVersion, capabilityDefinitions []gardencorev1beta1.CapabilityDefinition, jdxPath *field.Path) field.ErrorList {
203+
// validates the capability flavors of a machine image version.
204+
func validateCapabilityFlavors(version api.MachineImageVersion, capabilityDefinitions []gardencorev1beta1.CapabilityDefinition, jdxPath *field.Path) field.ErrorList {
206205
allErrs := field.ErrorList{}
207206

208207
// When using capabilities, regions must not be set
@@ -213,14 +212,14 @@ func validateCapabilityFlavors(providerImage api.MachineImages, version api.Mach
213212
// Validate each flavor's capabilities and regions
214213
for k, capabilitySet := range version.CapabilityFlavors {
215214
kdxPath := jdxPath.Child("capabilityFlavors").Index(k)
216-
allErrs = append(allErrs, gutil.ValidateCapabilities(capabilitySet.Capabilities, capabilityDefinitions, kdxPath.Child("capabilities"))...)
217-
allErrs = append(allErrs, validateRegions(capabilitySet.Regions, providerImage.Name, version.Version, capabilityDefinitions, kdxPath)...)
215+
allErrs = append(allErrs, gardener.ValidateCapabilities(capabilitySet.Capabilities, capabilityDefinitions, kdxPath.Child("capabilities"))...)
216+
allErrs = append(allErrs, validateRegions(capabilitySet.Regions, capabilityDefinitions, kdxPath)...)
218217
}
219218
return allErrs
220219
}
221220

222-
// validateRegions validates the regions of a machine image version or capability flavor.
223-
func validateRegions(regions []api.RegionIDMapping, name, version string, capabilityDefinitions []gardencorev1beta1.CapabilityDefinition, jdxPath *field.Path) field.ErrorList {
221+
// validates the regions of a machine image version or capability flavor.
222+
func validateRegions(regions []api.RegionIDMapping, capabilityDefinitions []gardencorev1beta1.CapabilityDefinition, jdxPath *field.Path) field.ErrorList {
224223
allErrs := field.ErrorList{}
225224

226225
for k, region := range regions {
@@ -249,42 +248,6 @@ func validateRegions(regions []api.RegionIDMapping, name, version string, capabi
249248
return allErrs
250249
}
251250

252-
// ValidateProviderMachineImageLegacy validates a CloudProfileConfig MachineImages entry.
253-
func ValidateProviderMachineImageLegacy(validationPath *field.Path, machineImage api.MachineImages) field.ErrorList {
254-
allErrs := field.ErrorList{}
255-
256-
if len(machineImage.Name) == 0 {
257-
allErrs = append(allErrs, field.Required(validationPath.Child("name"), "must provide a name"))
258-
}
259-
260-
if len(machineImage.Versions) == 0 {
261-
allErrs = append(allErrs, field.Required(validationPath.Child("versions"), fmt.Sprintf("must provide at least one version for machine image %q", machineImage.Name)))
262-
}
263-
for j, version := range machineImage.Versions {
264-
jdxPath := validationPath.Child("versions").Index(j)
265-
266-
if len(version.Version) == 0 {
267-
allErrs = append(allErrs, field.Required(jdxPath.Child("version"), "must provide a version"))
268-
}
269-
270-
for k, region := range version.Regions {
271-
kdxPath := jdxPath.Child("regions").Index(k)
272-
273-
if len(region.Name) == 0 {
274-
allErrs = append(allErrs, field.Required(kdxPath.Child("name"), "must provide a name"))
275-
}
276-
if len(region.ID) == 0 {
277-
allErrs = append(allErrs, field.Required(kdxPath.Child("id"), "must provide an image ID"))
278-
}
279-
if !slices.Contains(v1beta1constants.ValidArchitectures, ptr.Deref(region.Architecture, v1beta1constants.ArchitectureAMD64)) {
280-
allErrs = append(allErrs, field.NotSupported(kdxPath.Child("architecture"), *region.Architecture, v1beta1constants.ValidArchitectures))
281-
}
282-
}
283-
}
284-
285-
return allErrs
286-
}
287-
288251
// NewProviderImagesContext creates a new ImagesContext for provider images.
289252
func NewProviderImagesContext(providerImages []api.MachineImages) *gardener.ImagesContext[api.MachineImages, api.MachineImageVersion] {
290253
return gardener.NewImagesContext(

pkg/controller/worker/machine_images.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ func (w *workerDelegate) selectMachineImageForWorkerPool(name, version string, r
5555
}
5656

5757
if len(selectedMachineImage.Capabilities[v1beta1constants.ArchitectureName]) > 0 {
58-
var selectedArch *string
59-
selectedArch = &selectedMachineImage.Capabilities[v1beta1constants.ArchitectureName][0]
58+
var selectedArch = &selectedMachineImage.Capabilities[v1beta1constants.ArchitectureName][0]
6059
// Verify that selectedMachineImage has correct architecture
6160
if selectedArch == nil || arch != nil && *selectedArch != *arch {
6261
return nil, fmt.Errorf("architecture does not match for machine image")

pkg/controller/worker/machines.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import (
2828

2929
"github.com/gardener/gardener-extension-provider-openstack/charts"
3030
api "github.com/gardener/gardener-extension-provider-openstack/pkg/apis/openstack"
31-
openstackapi "github.com/gardener/gardener-extension-provider-openstack/pkg/apis/openstack"
3231
"github.com/gardener/gardener-extension-provider-openstack/pkg/apis/openstack/helper"
3332
"github.com/gardener/gardener-extension-provider-openstack/pkg/openstack"
3433
)
@@ -336,8 +335,8 @@ func addTopologyLabel(labels map[string]string, zone string) map[string]string {
336335
}
337336

338337
// EnsureUniformMachineImages ensures that all machine images are in the same format, either with or without Capabilities.
339-
func EnsureUniformMachineImages(images []openstackapi.MachineImage, definitions []gardencorev1beta1.CapabilityDefinition) []openstackapi.MachineImage {
340-
var uniformMachineImages []openstackapi.MachineImage
338+
func EnsureUniformMachineImages(images []api.MachineImage, definitions []gardencorev1beta1.CapabilityDefinition) []api.MachineImage {
339+
var uniformMachineImages []api.MachineImage
341340

342341
if len(definitions) == 0 {
343342
// transform images that were added with Capabilities to the legacy format without Capabilities
@@ -353,7 +352,7 @@ func EnsureUniformMachineImages(images []openstackapi.MachineImage, definitions
353352
architecture = &img.Capabilities[v1beta1constants.ArchitectureName][0]
354353
}
355354
// TODO: make uniform for imageID is not set BUT the global image name is set
356-
uniformMachineImages = appendMachineImage(uniformMachineImages, openstackapi.MachineImage{
355+
uniformMachineImages = appendMachineImage(uniformMachineImages, api.MachineImage{
357356
Name: img.Name,
358357
Version: img.Version,
359358
ID: img.ID,
@@ -371,7 +370,7 @@ func EnsureUniformMachineImages(images []openstackapi.MachineImage, definitions
371370
} else {
372371
// add image as a capability set with defaulted Architecture
373372
architecture := ptr.Deref(img.Architecture, v1beta1constants.ArchitectureAMD64)
374-
uniformMachineImages = appendMachineImage(uniformMachineImages, openstackapi.MachineImage{
373+
uniformMachineImages = appendMachineImage(uniformMachineImages, api.MachineImage{
375374
Name: img.Name,
376375
Version: img.Version,
377376
ID: img.ID,

pkg/controller/worker/machines_test.go

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1538,31 +1538,3 @@ func addNameAndSecretToMachineClass(class map[string]interface{}, name string, c
15381538
"namespace": credentialsSecretRef.Namespace,
15391539
}
15401540
}
1541-
1542-
func strPtrToString(s *string) string {
1543-
if s == nil {
1544-
return "<nil>"
1545-
}
1546-
return *s
1547-
}
1548-
1549-
func printMachineClasses(machineClasses map[string]interface{}) {
1550-
// Extract the slice
1551-
if mcs, ok := machineClasses["machineClasses"].([]map[string]interface{}); ok {
1552-
for i, mc := range mcs {
1553-
fmt.Printf("MachineClass[%d]:\n", i)
1554-
for key, val := range mc {
1555-
switch v := val.(type) {
1556-
case *string:
1557-
fmt.Printf(" %s: %s\n", key, strPtrToString(v))
1558-
case string:
1559-
fmt.Printf(" %s: %s\n", key, v)
1560-
default:
1561-
fmt.Printf(" %s: %+v\n", key, v)
1562-
}
1563-
}
1564-
}
1565-
} else {
1566-
fmt.Println("machineClasses[\"machineClasses\"] is not the expected type")
1567-
}
1568-
}

0 commit comments

Comments
 (0)