Skip to content

Commit 4f3ac80

Browse files
committed
feat: enhance logging
1 parent 7db5927 commit 4f3ac80

3 files changed

Lines changed: 17 additions & 4 deletions

File tree

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ require (
4242
k8s.io/client-go v0.34.3
4343
k8s.io/code-generator v0.34.3
4444
k8s.io/component-base v0.34.3
45+
k8s.io/klog/v2 v2.130.1
4546
k8s.io/kubelet v0.34.3
4647
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
4748
sigs.k8s.io/controller-runtime v0.22.4
@@ -218,7 +219,6 @@ require (
218219
k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 // indirect
219220
k8s.io/gengo/v2 v2.0.0-20250820003526-c297c0c1eb9d // indirect
220221
k8s.io/klog v1.0.0 // indirect
221-
k8s.io/klog/v2 v2.130.1 // indirect
222222
k8s.io/kube-aggregator v0.34.3 // indirect
223223
k8s.io/kube-openapi v0.0.0-20250814151709-d7b6acb124c3 // indirect
224224
k8s.io/metrics v0.34.3 // indirect

pkg/apis/aws/helper/helper.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants"
1414
gardencorev1beta1helper "github.com/gardener/gardener/pkg/apis/core/v1beta1/helper"
1515
"k8s.io/apimachinery/pkg/runtime"
16+
"k8s.io/klog/v2"
1617
"k8s.io/utils/ptr"
1718

1819
api "github.com/gardener/gardener-extension-provider-aws/pkg/apis/aws"
@@ -164,6 +165,13 @@ func FindImageInCloudProfile(
164165
if len(filteredCapabilityFlavors) > 0 {
165166
bestMatch, err := worker.FindBestImageFlavor(filteredCapabilityFlavors, machineCapabilities, capabilityDefinitions)
166167
if err != nil {
168+
// Log inputs to FindBestImageFlavor to make it easier to debug why a flavor was selected.
169+
klog.V(4).Infof("FindImageInCloudProfile: evaluating %d capability flavors for image=%s version=%s region=%s machineCapabilities=%v",
170+
len(filteredCapabilityFlavors), name, version, region, machineCapabilities)
171+
for i, f := range filteredCapabilityFlavors {
172+
klog.V(4).Infof("flavor[%d]: capabilities=%v regions=%v", i, f.Capabilities, f.Regions)
173+
}
174+
klog.V(4).Infof("capabilityDefinitions=%v", capabilityDefinitions)
167175
return nil, fmt.Errorf("could not determine best flavor: %w", err)
168176
}
169177
return bestMatch, nil

pkg/apis/aws/validation/worker.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,9 @@ func ValidateWorkersAgainstCloudProfileOnUpdate(
193193
fldPath *field.Path,
194194
) field.ErrorList {
195195
allErrs := field.ErrorList{}
196+
// Normalize capability definitions once at the entry point.
197+
// This ensures all downstream code can assume capabilities are always present.
198+
normalizedCapabilityDefinitions := apisawshelper.NormalizeCapabilityDefinitions(capabilityDefinitions)
196199

197200
// Validate the existence of the images the new/updated workers are to use. Validating the images used by old workers is not possible at this point, as they might
198201
// have been removed from the CloudProfile already.
@@ -211,8 +214,10 @@ func ValidateWorkersAgainstCloudProfileOnUpdate(
211214
allErrs = append(allErrs, field.Invalid(fldPath.Index(i).Child("machine", "type"), w.Machine.Type, " not found in cloud profile"))
212215
continue
213216
}
217+
// Normalize machine type capabilities to include architecture
218+
machineTypeCapabilities := apisawshelper.NormalizeMachineTypeCapabilities(machineType.Capabilities, w.Machine.Architecture, normalizedCapabilityDefinitions)
214219

215-
allErrs = append(allErrs, validateWorkerConfigAgainstCloudProfile(newWorker, region, awsCloudProfile, machineType.Capabilities, capabilityDefinitions, fldPath.Index(i))...)
220+
allErrs = append(allErrs, validateWorkerConfigAgainstCloudProfile(newWorker, region, awsCloudProfile, machineTypeCapabilities, normalizedCapabilityDefinitions, fldPath.Index(i))...)
216221
}
217222
}
218223

@@ -223,7 +228,7 @@ func validateWorkerConfigAgainstCloudProfile(
223228
worker core.Worker,
224229
region string,
225230
awsCloudProfile *apisaws.CloudProfileConfig,
226-
machineCapabilities v1beta1.Capabilities,
231+
machineTypeCapabilities v1beta1.Capabilities,
227232
capabilityDefinitions []v1beta1.CapabilityDefinition,
228233
fldPath *field.Path,
229234
) field.ErrorList {
@@ -236,7 +241,7 @@ func validateWorkerConfigAgainstCloudProfile(
236241
return allErrs
237242
}
238243

239-
if _, err := apisawshelper.FindImageInCloudProfile(awsCloudProfile, image.Name, image.Version, region, machineCapabilities, capabilityDefinitions); err != nil {
244+
if _, err := apisawshelper.FindImageInCloudProfile(awsCloudProfile, image.Name, image.Version, region, machineTypeCapabilities, capabilityDefinitions); err != nil {
240245
allErrs = append(allErrs, field.Invalid(fldPath.Child("machine", "image"), image, fmt.Sprint(err)))
241246
}
242247
return allErrs

0 commit comments

Comments
 (0)