Skip to content

Commit 652a7b2

Browse files
authored
Merge branch 'master' into chore/auto-update-images
2 parents 1030b0a + 886da6f commit 652a7b2

File tree

35 files changed

+1411
-907
lines changed

35 files changed

+1411
-907
lines changed

charts/gardener-extension-provider-aws/templates/storageclass.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@ allowVolumeExpansion: true
1010
provisioner: {{ .Values.config.etcd.storage.provisioner }}
1111
volumeBindingMode: {{ .Values.config.etcd.storage.volumeBindingMode }}
1212
parameters:
13-
type: gp3
13+
{{- if .Values.config.etcd.storage.parameters }}
14+
{{- toYaml .Values.config.etcd.storage.parameters | nindent 2 }}
15+
{{- end }}
1416
{{- if .Values.config.etcd.storage.encrypted }}
17+
{{- if not (hasKey (default dict .Values.config.etcd.storage.parameters) "encrypted") }}
1518
encrypted: "true"
1619
{{- end }}
20+
{{- end }}
1721
{{- end }}

charts/gardener-extension-provider-aws/values.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,11 @@ config:
8383
storage:
8484
className: gardener.cloud-fast
8585
capacity: 25Gi
86-
provisioner: kubernetes.io/aws-ebs
86+
provisioner: ebs.csi.aws.com
8787
volumeBindingMode: WaitForFirstConsumer
8888
encrypted: true
89+
parameters:
90+
type: gp3
8991
# backup:
9092
# schedule: "0 */1 * * *"
9193
featureGates:

charts/internal/machineclass/templates/machineclass.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ providerSpec:
6666
{{- if $machineClass.instanceMetadataOptions.httpTokens }}
6767
httpTokens: {{ $machineClass.instanceMetadataOptions.httpTokens }}
6868
{{- end }}
69+
{{- if $machineClass.instanceMetadataOptions.httpProtocolIpv6 }}
70+
httpProtocolIpv6: {{ $machineClass.instanceMetadataOptions.httpProtocolIpv6 }}
71+
{{- end }}
6972
{{- end }}
7073
{{- with $machineClass.cpuOptions }}
7174
cpuOptions:

charts/internal/machineclass/values.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ machineClasses:
4242
# httpEndpoint: "disabled"
4343
# httpTokens: "required"
4444
# httpPutResponseHopLimit: 2
45+
# httpProtocolIpv6: "enabled"
4546
# cpuOptions:
4647
# coreCount: 2 # default for m4.xlarge
4748
# threadsPerCore: 2 # default for m4.xlarge

charts/internal/shoot-system-components/charts/csi-driver-efs/templates/controller-deployment.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ spec:
5656
- --v={{ .Values.controller.logLevel }}
5757
- --delete-access-point-root-dir={{ .Values.controller.deleteAccessPointRootDir }}
5858
env:
59+
- name: AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE
60+
value: {{ .Values.controller.imdsEndpointMode }}
5961
- name: CSI_ENDPOINT
6062
value: unix:///var/lib/csi/sockets/pluginproxy/csi.sock
6163
- name: CSI_NODE_NAME

charts/internal/shoot-system-components/charts/csi-driver-efs/values.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,3 +112,4 @@ controller:
112112
privileged: true
113113
leaderElectionRenewDeadline: 10s
114114
leaderElectionLeaseDuration: 15s
115+
imdsEndpointMode: ipv4

example/controller-registration.yaml

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

go.mod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,20 +187,20 @@ require (
187187
go.opentelemetry.io/contrib/otelconf v0.22.0 // indirect
188188
go.opentelemetry.io/otel v1.43.0 // indirect
189189
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.18.0 // indirect
190-
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.18.0 // indirect
190+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0 // indirect
191191
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.42.0 // indirect
192-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.42.0 // indirect
192+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0 // indirect
193193
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
194194
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.42.0 // indirect
195195
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 // indirect
196196
go.opentelemetry.io/otel/exporters/prometheus v0.64.0 // indirect
197197
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.18.0 // indirect
198198
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.42.0 // indirect
199199
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.42.0 // indirect
200-
go.opentelemetry.io/otel/log v0.18.0 // indirect
200+
go.opentelemetry.io/otel/log v0.19.0 // indirect
201201
go.opentelemetry.io/otel/metric v1.43.0 // indirect
202202
go.opentelemetry.io/otel/sdk v1.43.0 // indirect
203-
go.opentelemetry.io/otel/sdk/log v0.18.0 // indirect
203+
go.opentelemetry.io/otel/sdk/log v0.19.0 // indirect
204204
go.opentelemetry.io/otel/sdk/metric v1.43.0 // indirect
205205
go.opentelemetry.io/otel/trace v1.43.0 // indirect
206206
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
@@ -227,7 +227,7 @@ require (
227227
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
228228
gopkg.in/yaml.v2 v2.4.0 // indirect
229229
gopkg.in/yaml.v3 v3.0.1 // indirect
230-
helm.sh/helm/v3 v3.20.1 // indirect
230+
helm.sh/helm/v3 v3.20.2 // indirect
231231
istio.io/api v1.27.8 // indirect
232232
istio.io/client-go v1.27.2 // indirect
233233
k8s.io/apiserver v0.35.3 // indirect

go.sum

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1398,12 +1398,12 @@ go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I=
13981398
go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0=
13991399
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.18.0 h1:deI9UQMoGFgrg5iLPgzueqFPHevDl+28YKfSpPTI6rY=
14001400
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.18.0/go.mod h1:PFx9NgpNUKXdf7J4Q3agRxMs3Y07QhTCVipKmLsMKnU=
1401-
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.18.0 h1:icqq3Z34UrEFk2u+HMhTtRsvo7Ues+eiJVjaJt62njs=
1402-
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.18.0/go.mod h1:W2m8P+d5Wn5kipj4/xmbt9uMqezEKfBjzVJadfABSBE=
1401+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0 h1:HIBTQ3VO5aupLKjC90JgMqpezVXwFuq6Ryjn0/izoag=
1402+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0/go.mod h1:ji9vId85hMxqfvICA0Jt8JqEdrXaAkcpkI9HPXya0ro=
14031403
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.42.0 h1:MdKucPl/HbzckWWEisiNqMPhRrAOQX8r4jTuGr636gk=
14041404
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.42.0/go.mod h1:RolT8tWtfHcjajEH5wFIZ4Dgh5jpPdFXYV9pTAk/qjc=
1405-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.42.0 h1:H7O6RlGOMTizyl3R08Kn5pdM06bnH8oscSj7o11tmLA=
1406-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.42.0/go.mod h1:mBFWu/WOVDkWWsR7Tx7h6EpQB8wsv7P0Yrh0Pb7othc=
1405+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0 h1:w1K+pCJoPpQifuVpsKamUdn9U0zM3xUziVOqsGksUrY=
1406+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0/go.mod h1:HBy4BjzgVE8139ieRI75oXm3EcDN+6GhD88JT1Kjvxg=
14071407
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 h1:88Y4s2C8oTui1LGM6bTWkw0ICGcOLCAI5l6zsD1j20k=
14081408
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0/go.mod h1:Vl1/iaggsuRlrHf/hfPJPvVag77kKyvrLeD10kpMl+A=
14091409
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.42.0 h1:zWWrB1U6nqhS/k6zYB74CjRpuiitRtLLi68VcgmOEto=
@@ -1418,16 +1418,16 @@ go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.42.0 h1:lSZHgNHfbmQTPf
14181418
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.42.0/go.mod h1:so9ounLcuoRDu033MW/E0AD4hhUjVqswrMF5FoZlBcw=
14191419
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.42.0 h1:s/1iRkCKDfhlh1JF26knRneorus8aOwVIDhvYx9WoDw=
14201420
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.42.0/go.mod h1:UI3wi0FXg1Pofb8ZBiBLhtMzgoTm1TYkMvn71fAqDzs=
1421-
go.opentelemetry.io/otel/log v0.18.0 h1:XgeQIIBjZZrliksMEbcwMZefoOSMI1hdjiLEiiB0bAg=
1422-
go.opentelemetry.io/otel/log v0.18.0/go.mod h1:KEV1kad0NofR3ycsiDH4Yjcoj0+8206I6Ox2QYFSNgI=
1421+
go.opentelemetry.io/otel/log v0.19.0 h1:KUZs/GOsw79TBBMfDWsXS+KZ4g2Ckzksd1ymzsIEbo4=
1422+
go.opentelemetry.io/otel/log v0.19.0/go.mod h1:5DQYeGmxVIr4n0/BcJvF4upsraHjg6vudJJpnkL6Ipk=
14231423
go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM=
14241424
go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY=
14251425
go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg=
14261426
go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg=
1427-
go.opentelemetry.io/otel/sdk/log v0.18.0 h1:n8OyZr7t7otkeTnPTbDNom6rW16TBYGtvyy2Gk6buQw=
1428-
go.opentelemetry.io/otel/sdk/log v0.18.0/go.mod h1:C0+wxkTwKpOCZLrlJ3pewPiiQwpzycPI/u6W0Z9fuYk=
1429-
go.opentelemetry.io/otel/sdk/log/logtest v0.18.0 h1:l3mYuPsuBx6UKE47BVcPrZoZ0q/KER57vbj2qkgDLXA=
1430-
go.opentelemetry.io/otel/sdk/log/logtest v0.18.0/go.mod h1:7cHtiVJpZebB3wybTa4NG+FUo5NPe3PROz1FqB0+qdw=
1427+
go.opentelemetry.io/otel/sdk/log v0.19.0 h1:scYVLqT22D2gqXItnWiocLUKGH9yvkkeql5dBDiXyko=
1428+
go.opentelemetry.io/otel/sdk/log v0.19.0/go.mod h1:vFBowwXGLlW9AvpuF7bMgnNI95LiW10szrOdvzBHlAg=
1429+
go.opentelemetry.io/otel/sdk/log/logtest v0.19.0 h1:BEbF7ZBB6qQloV/Ub1+3NQoOUnVtcGkU3XX4Ws3GQfk=
1430+
go.opentelemetry.io/otel/sdk/log/logtest v0.19.0/go.mod h1:Lua81/3yM0wOmoHTokLj9y9ADeA02v1naRrVrkAZuKk=
14311431
go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw=
14321432
go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A=
14331433
go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A=
@@ -2018,8 +2018,8 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
20182018
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
20192019
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
20202020
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
2021-
helm.sh/helm/v3 v3.20.1 h1:T8PodUaH1UwNvE+imUA2mIKjJItY8g7CVvLVP5g4NzI=
2022-
helm.sh/helm/v3 v3.20.1/go.mod h1:Fl1kBaWCpkUrM6IYXPjQ3bdZQfFrogKArqptvueZ6Ww=
2021+
helm.sh/helm/v3 v3.20.2 h1:binM4rvPx5DcNsa1sIt7UZi55lRbu3pZUFmQkSoRh48=
2022+
helm.sh/helm/v3 v3.20.2/go.mod h1:Fl1kBaWCpkUrM6IYXPjQ3bdZQfFrogKArqptvueZ6Ww=
20232023
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
20242024
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
20252025
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

pkg/admission/mutator/cloudprofile.go

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@
55
package mutator
66

77
import (
8+
"cmp"
89
"context"
910
"fmt"
1011
"slices"
1112

1213
extensionswebhook "github.com/gardener/gardener/extensions/pkg/webhook"
1314
gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1"
15+
v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants"
1416
"k8s.io/apimachinery/pkg/runtime"
1517
"k8s.io/apimachinery/pkg/runtime/serializer"
18+
"k8s.io/utils/ptr"
1619
"sigs.k8s.io/controller-runtime/pkg/client"
1720
"sigs.k8s.io/controller-runtime/pkg/manager"
1821

@@ -74,7 +77,14 @@ func overwriteMachineImageCapabilityFlavors(profile *gardencorev1beta1.CloudProf
7477
continue
7578
}
7679

77-
profile.Spec.MachineImages[imageIdx].Versions[versionIdx].CapabilityFlavors = convertCapabilityFlavors(providerVersion.CapabilityFlavors)
80+
// Support both new format (capabilityFlavors) and old format (regions with architecture)
81+
if len(providerVersion.CapabilityFlavors) > 0 {
82+
// New format: use capabilityFlavors directly
83+
profile.Spec.MachineImages[imageIdx].Versions[versionIdx].CapabilityFlavors = convertCapabilityFlavors(providerVersion.CapabilityFlavors)
84+
} else if len(providerVersion.Regions) > 0 {
85+
// Old format: convert regions with architecture to capability flavors
86+
profile.Spec.MachineImages[imageIdx].Versions[versionIdx].CapabilityFlavors = convertRegionsToCapabilityFlavors(providerVersion.Regions)
87+
}
7888
}
7989
}
8090
}
@@ -89,3 +99,38 @@ func convertCapabilityFlavors(providerFlavors []v1alpha1.MachineImageFlavor) []g
8999
}
90100
return capabilityFlavors
91101
}
102+
103+
// convertRegionsToCapabilityFlavors converts old format (regions with architecture) to capability flavors.
104+
// Note: A similar function exists in helper.go for internal API types that also preserves region mappings.
105+
// This version only extracts unique architectures for CloudProfile spec mutation.
106+
func convertRegionsToCapabilityFlavors(regions []v1alpha1.RegionAMIMapping) []gardencorev1beta1.MachineImageFlavor {
107+
// Collect unique architectures from regions
108+
architectureSet := make(map[string]struct{})
109+
for _, region := range regions {
110+
arch := ptr.Deref(region.Architecture, v1beta1constants.ArchitectureAMD64)
111+
architectureSet[arch] = struct{}{}
112+
}
113+
114+
// Create a capability flavor for each unique architecture
115+
capabilityFlavors := make([]gardencorev1beta1.MachineImageFlavor, 0, len(architectureSet))
116+
for arch := range architectureSet {
117+
capabilityFlavors = append(capabilityFlavors, gardencorev1beta1.MachineImageFlavor{
118+
Capabilities: gardencorev1beta1.Capabilities{
119+
v1beta1constants.ArchitectureName: []string{arch},
120+
},
121+
})
122+
}
123+
124+
// Sort for deterministic output
125+
slices.SortFunc(capabilityFlavors, func(a, b gardencorev1beta1.MachineImageFlavor) int {
126+
getArch := func(f gardencorev1beta1.MachineImageFlavor) string {
127+
if archList := f.Capabilities[v1beta1constants.ArchitectureName]; len(archList) > 0 {
128+
return archList[0]
129+
}
130+
return ""
131+
}
132+
return cmp.Compare(getArch(a), getArch(b))
133+
})
134+
135+
return capabilityFlavors
136+
}

0 commit comments

Comments
 (0)