Skip to content

Commit 50f20f4

Browse files
authored
Merge pull request #6173 from mboersma/bump-capi-v1.12.4
Bump CAPI to v1.12.4
2 parents 5ad29c7 + a404e40 commit 50f20f4

7 files changed

Lines changed: 53 additions & 38 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ create-management-cluster: $(KUSTOMIZE) $(ENVSUBST) $(KUBECTL) $(KIND) ## Create
361361
./hack/create-custom-cloud-provider-config.sh
362362

363363
# Deploy CAPI
364-
timeout --foreground 300 bash -c "until curl --retry $(CURL_RETRIES) -sSL https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.12.3/cluster-api-components.yaml | $(ENVSUBST) | $(KUBECTL) apply -f - --server-side=true; do sleep 5; done"
364+
timeout --foreground 300 bash -c "until curl --retry $(CURL_RETRIES) -sSL https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.12.4/cluster-api-components.yaml | $(ENVSUBST) | $(KUBECTL) apply -f - --server-side=true; do sleep 5; done"
365365

366366
# Deploy CAAPH
367367
timeout --foreground 300 bash -c "until curl --retry $(CURL_RETRIES) -sSL https://github.com/kubernetes-sigs/cluster-api-addon-provider-helm/releases/download/v0.6.1/addon-components.yaml | $(ENVSUBST) | $(KUBECTL) apply -f - --server-side=true; do sleep 5; done"

Tiltfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ settings = {
2222
"deploy_cert_manager": True,
2323
"preload_images_for_kind": True,
2424
"kind_cluster_name": "capz",
25-
"capi_version": "v1.12.3",
25+
"capi_version": "v1.12.4",
2626
"caaph_version": "v0.6.1",
2727
"cert_manager_version": "v1.19.1",
2828
"kubernetes_version": "v1.33.6",

docs/book/src/developers/getting-started-with-capi-operator.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ helm install cert-manager jetstack/cert-manager --namespace cert-manager --creat
120120
Create a `values.yaml` file for the CAPI Operator Helm chart like so:
121121

122122
```yaml
123-
core: "cluster-api:v1.12.2"
123+
core: "cluster-api:v1.12.4"
124124
infrastructure: "azure:v1.17.2"
125125
addon: "helm:v0.6.1"
126126
manager:

go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ require (
6363
k8s.io/kubectl v0.34.2
6464
k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d
6565
sigs.k8s.io/cloud-provider-azure v1.34.3
66-
sigs.k8s.io/cluster-api v1.12.3
67-
sigs.k8s.io/cluster-api/test v1.12.3
66+
sigs.k8s.io/cluster-api v1.12.4
67+
sigs.k8s.io/cluster-api/test v1.12.4
6868
sigs.k8s.io/controller-runtime v0.22.5
6969
sigs.k8s.io/kind v0.31.0
7070
)
@@ -189,7 +189,7 @@ require (
189189
github.com/x448/float16 v0.8.4 // indirect
190190
github.com/xlab/treeprint v1.2.0 // indirect
191191
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
192-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect
192+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect
193193
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 // indirect
194194
go.opentelemetry.io/otel/metric v1.41.0 // indirect
195195
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
@@ -222,6 +222,6 @@ require (
222222
sigs.k8s.io/kustomize/api v0.20.1 // indirect
223223
sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect
224224
sigs.k8s.io/randfill v1.0.0 // indirect
225-
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
225+
sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482 // indirect
226226
sigs.k8s.io/yaml v1.6.0 // indirect
227227
)

go.sum

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,6 @@ github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb
140140
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
141141
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
142142
github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
143-
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
144-
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
145143
github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
146144
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
147145
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
@@ -481,10 +479,10 @@ go.etcd.io/etcd/client/v3 v3.6.6 h1:G5z1wMf5B9SNexoxOHUGBaULurOZPIgGPsW6CN492ec=
481479
go.etcd.io/etcd/client/v3 v3.6.6/go.mod h1:36Qv6baQ07znPR3+n7t+Rk5VHEzVYPvFfGmfF4wBHV8=
482480
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
483481
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
484-
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0 h1:rbRJ8BBoVMsQShESYZ0FkvcITu8X8QNwJogcLUmDNNw=
485-
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0/go.mod h1:ru6KHrNtNHxM4nD/vd6QrLVWgKhxPYgblq4VAtNawTQ=
486-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 h1:Hf9xI/XLML9ElpiHVDNwvqI0hIFlzV8dgIr35kV1kRU=
487-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0/go.mod h1:NfchwuyNoMcZ5MLHwPrODwUF1HWCXWrL31s8gSAdIKY=
482+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.65.0 h1:XmiuHzgJt067+a6kwyAzkhXooYVv3/TOw9cM2VfJgUM=
483+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.65.0/go.mod h1:KDgtbWKTQs4bM+VPUr6WlL9m/WXcmkCcBlIzqxPGzmI=
484+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 h1:7iP2uCb7sGddAr30RRS6xjKy7AZ2JtTOPA3oolgVSw8=
485+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0/go.mod h1:c7hN3ddxs/z6q9xwvfLPk+UHlWRQyaeR1LdgfL/66l0=
488486
go.opentelemetry.io/otel v1.41.0 h1:YlEwVsGAlCvczDILpUXpIpPSL/VPugt7zHThEMLce1c=
489487
go.opentelemetry.io/otel v1.41.0/go.mod h1:Yt4UwgEKeT05QbLwbyHXEwhnjxNO6D8L5PQP51/46dE=
490488
go.opentelemetry.io/otel/exporters/jaeger v1.16.0 h1:YhxxmXZ011C0aDZKoNw+juVWAmEfv/0W2XBOv9aHTaA=
@@ -493,8 +491,8 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 h1:ao6Oe+wSebTlQ1OEht7
493491
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0/go.mod h1:u3T6vz0gh/NVzgDgiwkgLxpsSF6PaPmo2il0apGJbls=
494492
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 h1:mq/Qcf28TWz719lE3/hMB4KkyDuLJIvgJnFGcd0kEUI=
495493
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0/go.mod h1:yk5LXEYhsL2htyDNJbEq7fWzNEigeEdV5xBF/Y+kAv0=
496-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 h1:FyjCyI9jVEfqhUh2MoSkmolPjfh5fp2hnV0b0irxH4Q=
497-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0/go.mod h1:hYwym2nDEeZfG/motx0p7L7J1N1vyzIThemQsb4g2qY=
494+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc=
495+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40=
498496
go.opentelemetry.io/otel/exporters/prometheus v0.59.1 h1:HcpSkTkJbggT8bjYP+BjyqPWlD17BH9C5CYNKeDzmcA=
499497
go.opentelemetry.io/otel/exporters/prometheus v0.59.1/go.mod h1:0FJL+gjuUoM07xzik3KPBaN+nz/CoB15kV6WLMiXZag=
500498
go.opentelemetry.io/otel/metric v1.41.0 h1:rFnDcs4gRzBcsO9tS8LCpgR0dxg4aaxWlJxCno7JlTQ=
@@ -641,10 +639,10 @@ sigs.k8s.io/cloud-provider-azure/pkg/azclient v0.9.2 h1:7vEaYwdsvOz1OBAtEm6vyc4K
641639
sigs.k8s.io/cloud-provider-azure/pkg/azclient v0.9.2/go.mod h1:BgPOvGEdPTyaIWREF7pywm6teBhO3fNVQ+CTPYyr/5w=
642640
sigs.k8s.io/cloud-provider-azure/pkg/azclient/configloader v0.8.4 h1:Sy+dyfxemdQaz/UfJYWzALlbLdEaZ7IoKn93JXTqWYs=
643641
sigs.k8s.io/cloud-provider-azure/pkg/azclient/configloader v0.8.4/go.mod h1:RgIi9n/PhULbvPjYZGsjP2zWJf1ZEd1qyA0CYUuSgcE=
644-
sigs.k8s.io/cluster-api v1.12.3 h1:cuOl3fWXhlXFuQcyIH4C8i3ns8rLhtcnK+x00MVdKBs=
645-
sigs.k8s.io/cluster-api v1.12.3/go.mod h1:EAiTJtf/8M5eBetPwumi6t8DJJ55Ln6Fkvh2OAa7PD4=
646-
sigs.k8s.io/cluster-api/test v1.12.3 h1:SfHkgaOoMLcCXhPFjmflFtag2yil0I4d2/i2S66GlFU=
647-
sigs.k8s.io/cluster-api/test v1.12.3/go.mod h1:E6ID6xgLy6rkpm09yQW2DT8Cf2/7nLX1o3sDHv4pFsY=
642+
sigs.k8s.io/cluster-api v1.12.4 h1:usvoZ+Nblfu//l31hm1B1WUdigb6OnGAJqwt8qWq/iA=
643+
sigs.k8s.io/cluster-api v1.12.4/go.mod h1:ePDeVCVaW6SGxRgDeLt5+KK4TigEnF0LPV6ztEzRzlI=
644+
sigs.k8s.io/cluster-api/test v1.12.4 h1:I1x28SO54mAv3hk/ZQFKr7PKyAviAfil2YpdD9g2OeQ=
645+
sigs.k8s.io/cluster-api/test v1.12.4/go.mod h1:+3Xo0ZughngvRVKKYyq6oL7qgRp9Sdl/6qQ+lkoO6ME=
648646
sigs.k8s.io/controller-runtime v0.22.5 h1:v3nfSUMowX/2WMp27J9slwGFyAt7IV0YwBxAkrUr0GE=
649647
sigs.k8s.io/controller-runtime v0.22.5/go.mod h1:pc5SoYWnWI6I+cBHYYdZ7B6YHZVY5xNfll88JB+vniI=
650648
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg=
@@ -657,7 +655,7 @@ sigs.k8s.io/kustomize/kyaml v0.20.1 h1:PCMnA2mrVbRP3NIB6v9kYCAc38uvFLVs8j/CD567A
657655
sigs.k8s.io/kustomize/kyaml v0.20.1/go.mod h1:0EmkQHRUsJxY8Ug9Niig1pUMSCGHxQ5RklbpV/Ri6po=
658656
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
659657
sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
660-
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco=
661-
sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE=
658+
sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482 h1:2WOzJpHUBVrrkDjU4KBT8n5LDcj824eX0I5UKcgeRUs=
659+
sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE=
662660
sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
663661
sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=

test/e2e/aks_adopt.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,11 @@ func AKSAdoptSpec(ctx context.Context, inputGetter func() AKSAdoptSpecInput) {
105105
},
106106
}
107107
waitForNoBlockMove(amcp)
108+
109+
// Capture the identity ref before deleting the control plane, so we can
110+
// clean it up before re-applying the template.
111+
identityRef := amcp.Spec.IdentityRef
112+
108113
for _, mp := range input.MachinePools {
109114
ammp := &infrav1.AzureManagedMachinePool{
110115
ObjectMeta: metav1.ObjectMeta{
@@ -146,5 +151,17 @@ func AKSAdoptSpec(ctx context.Context, inputGetter func() AKSAdoptSpecInput) {
146151
removeFinalizers(cluster)
147152
shouldNotExist(cluster)
148153

154+
// CAPI v1.12.4 changed ApplyClusterTemplateAndWait to use Create instead
155+
// of CreateOrUpdate, so we have to clean up the AzureClusterIdentity
156+
// before re-applying the template.
157+
if identityRef != nil {
158+
deleteAndWait(&infrav1.AzureClusterIdentity{
159+
ObjectMeta: metav1.ObjectMeta{
160+
Namespace: cluster.Namespace,
161+
Name: identityRef.Name,
162+
},
163+
})
164+
}
165+
149166
clusterctl.ApplyClusterTemplateAndWait(ctx, input.ApplyInput, input.ApplyResult)
150167
}

test/e2e/config/azure-dev.yaml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ managementClusterName: capz-e2e
33
images:
44
- name: ${MANAGER_IMAGE}
55
loadBehavior: mustLoad
6-
- name: registry.k8s.io/cluster-api/cluster-api-controller:v1.12.3
6+
- name: registry.k8s.io/cluster-api/cluster-api-controller:v1.12.4
77
loadBehavior: tryLoad
8-
- name: registry.k8s.io/cluster-api/kubeadm-bootstrap-controller:v1.12.3
8+
- name: registry.k8s.io/cluster-api/kubeadm-bootstrap-controller:v1.12.4
99
loadBehavior: tryLoad
10-
- name: registry.k8s.io/cluster-api/kubeadm-control-plane-controller:v1.12.3
10+
- name: registry.k8s.io/cluster-api/kubeadm-control-plane-controller:v1.12.4
1111
loadBehavior: tryLoad
1212
- name: registry.k8s.io/cluster-api-helm/cluster-api-helm-controller:v0.6.0
1313
loadBehavior: tryLoad
@@ -16,17 +16,17 @@ providers:
1616
- name: cluster-api
1717
type: CoreProvider
1818
versions:
19-
- name: v1.11.6 # latest patch of earliest minor in supported v1beta1 releases; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
20-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.11.6/core-components.yaml"
19+
- name: v1.11.7 # latest patch of earliest minor in supported v1beta1 releases; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
20+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.11.7/core-components.yaml"
2121
type: "url"
2222
contract: v1beta1
2323
replacements:
2424
- old: --metrics-addr=127.0.0.1:8080
2525
new: --metrics-addr=:8080
2626
files:
2727
- sourcePath: "../data/shared/v1beta1/metadata.yaml"
28-
- name: v1.12.3
29-
value: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.12.3/core-components.yaml
28+
- name: v1.12.4
29+
value: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.12.4/core-components.yaml
3030
type: url
3131
contract: v1beta2
3232
files:
@@ -40,17 +40,17 @@ providers:
4040
- name: kubeadm
4141
type: BootstrapProvider
4242
versions:
43-
- name: v1.11.6 # latest patch of earliest minor in supported v1beta1 releases; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
44-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.11.6/bootstrap-components.yaml"
43+
- name: v1.11.7 # latest patch of earliest minor in supported v1beta1 releases; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
44+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.11.7/bootstrap-components.yaml"
4545
type: "url"
4646
contract: v1beta1
4747
replacements:
4848
- old: --metrics-addr=127.0.0.1:8080
4949
new: --metrics-addr=:8080
5050
files:
5151
- sourcePath: "../data/shared/v1beta1/metadata.yaml"
52-
- name: v1.12.3
53-
value: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.12.3/bootstrap-components.yaml
52+
- name: v1.12.4
53+
value: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.12.4/bootstrap-components.yaml
5454
type: url
5555
contract: v1beta2
5656
files:
@@ -62,17 +62,17 @@ providers:
6262
- name: kubeadm
6363
type: ControlPlaneProvider
6464
versions:
65-
- name: v1.11.6 # latest patch of earliest minor in supported v1beta1 releases; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
66-
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.11.6/control-plane-components.yaml"
65+
- name: v1.11.7 # latest patch of earliest minor in supported v1beta1 releases; this is used for v1beta1 old --> v1beta1 latest clusterctl upgrades test only.
66+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.11.7/control-plane-components.yaml"
6767
type: "url"
6868
contract: v1beta1
6969
replacements:
7070
- old: --metrics-addr=127.0.0.1:8080
7171
new: --metrics-addr=:8080
7272
files:
7373
- sourcePath: "../data/shared/v1beta1/metadata.yaml"
74-
- name: v1.12.3
75-
value: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.12.3/control-plane-components.yaml
74+
- name: v1.12.4
75+
value: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.12.4/control-plane-components.yaml
7676
type: url
7777
contract: v1beta2
7878
files:
@@ -258,8 +258,8 @@ variables:
258258
KUBETEST_CONFIGURATION: "./data/kubetest/conformance.yaml"
259259
WINDOWS_CONTAINERD_URL: "${WINDOWS_CONTAINERD_URL:-}"
260260
AZURE_CNI_V1_MANIFEST_PATH: "${PWD}/templates/addons/azure-cni-v1.yaml"
261-
OLD_CAPI_UPGRADE_VERSION: "v1.11.6"
262-
LATEST_CAPI_UPGRADE_VERSION: "v1.12.3"
261+
OLD_CAPI_UPGRADE_VERSION: "v1.11.7"
262+
LATEST_CAPI_UPGRADE_VERSION: "v1.12.4"
263263
OLD_PROVIDER_UPGRADE_VERSION: "v1.21.2"
264264
LATEST_PROVIDER_UPGRADE_VERSION: "v1.22.0"
265265
OLD_CAAPH_UPGRADE_VERSION: "v0.5.3"

0 commit comments

Comments
 (0)