Changes since v1.12.0
🚨 This is a BETA RELEASE. Use it only for testing purposes.
If you find any bugs, file an issue.
🚨 Migration guide for v1beta1 to v1beta2 PR link.
⚠️ Breaking Changes
- Switch API optional fields to and from pointer based on if it has valid 0/empty value (#3233)
- Add +required markers and validation to v1beta2 API types (#3219)
- Rename unhealthy annotation for v1beta2 (#3269)
- Remove corev1 ObjectReference and use local struct (#3231)
- Rename enableBMHNameBasedPreallocation CLI-flag (#3265)
- Remove TypedLocalObjectReference and use local structs (#3220)
- Convert api type maps to arrays in Metal3DataTemplate (#3209)
- Make node-reuse more deterministic (#3168)
- Convert api type timeout (*metav1.Duration) to timeoutSeconds (*int32) in Metal3Remediation (#3206)
- Rename conditions and reasons constants (#3215)
- Convert api type int to int32 (#3204)
- CAPI v1beta2 contract (#3177)
- Deprecate v1beta1 API (#3138)
- Promote v1beta2 conditions (#3133)
- Enable commentstart for Kube-api-linter (#3201)
- Allow disable_power_off together with autoclean (#3106)
- Remove NoCloudProvider from v1beta2 (#3170)
- remove TemplateReference from v1beta2 (#3182)
- Remove DefaulterRemoveUnknownOrOmitableFields mutating webhook option (#3139)
More details about the release
✨ New Features
- Add FromBootMAC field to MetaDataHostInterface (#3124)
- Add v1beta2 API type (#3110)
- Add comprehensive trace/debug logging across controllers and managers (#2971)
- Add 'name' field to network links and make MAC address optional (#3083)
🐛 Bug Fixes
- Restrict Metal3DataClaim templates to same namespace (#3322)
- Fix logical operator in ConsumerRef validation (#3317)
- Set default providerid (#3284)
- Enforce same-namespace BareMetalHost lookups (#3288)
- fix nil pointer dereference in remediation controller (#3235)
- Do not set BMC Secret label until BMH claimed (#3178)
- Fix Metal3Cluster webhook blocking cloudProvider toggle updates (#3081)
- add capipamv1 to myscheme instead of scheme.Scheme (#3060)
- remove limits from client.List calls (#3032)
📖 Documentation
- Consolidate Metal3 Contributing guide in community repo (#3057)
- add OpenSSF OSPS baseline level 1 badge (#3263)
- Update providerID documentation and add legacy format deprecation notice (#3188)
🌱 Others
- Fix ownerRef chain for IPAddress in e2e tests (#3312)
- Bump k8s.io/utils version to fix the mismatch (#3307)
- Uplift IPAM and BMO beta releases (#3306)
- Bumps k8s group to v0.35.4 in hack/fake-apiserver and hack/tools (#3304)
- Uplift CAPI to v1.13.0-rc.1 and taints to KCP for CAPI MD test (#3298)
- Uplift k8s group to v0.35.4 (#3295)
- Bump github.com/moby/spdystream from 0.5.0 to 0.5.1 in /hack/fake-apiserver (#3292)
- Bump helm.sh/helm/v3 from 3.19.4 to 3.20.2 in /test (#3281)
- Bump CAPI v1.13.0-beta.1 (#3266)
- Bump golang.org/x/crypto from 0.49.0 to 0.50.0 in /test (#3282)
- Bump golang.org/x/mod from 0.34.0 to 0.35.0 in /test (#3280)
- Bump CAPI to v1.12.5 (#3279)
- Remove features label from in-place test (#3278)
- Bump go.opentelemetry.io/otel/sdk from 1.40.0 to 1.43.0 (#3273)
- Add k8s in-place upgrade test (#3053)
- Bump Go version used for building to 1.25.9 (#3270)
- Update e2e tests to use v1beta2 (#3216)
- Bump github.com/metal3-io/ironic-standalone-operator/api from 0.8.0 to 0.8.1 in /test (#3267)
- Bump github.com/metal3-io/cluster-api-provider-metal3/api from 1.12.2 to 1.12.3 in /hack/fake-apiserver (#3252)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.12.2 to 0.12.3 (#3251)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.12.2 to 0.12.3 in /hack/fake-apiserver (#3253)
- Bump CAPI to v 1.12.4 (#3250)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.12.2 to 0.12.3 in /test (#3254)
- Bump the kubernetes group from 0.34.5 to 0.34.6 (#3249)
- Bump google.golang.org/grpc from 1.72.1 to 1.79.3 (#3239)
- Do not run go commands if GO is not set (#3232)
- Bump golang.org/x/mod from 0.33.0 to 0.34.0 in /test (#3228)
- remove docker push stuff from Makefile (#3230)
- Bump golang.org/x/crypto from 0.48.0 to 0.49.0 in /test (#3229)
- bump x/net to v0.49.0 (#3222)
- Bump golang.org/x/oauth2 from 0.35.0 to 0.36.0 in /hack/tools (#3213)
- Rename KUBERNETES_VERSION_FROM to KUBERNETES_VERSION_UPGRADE_FROM (#3211)
- Bump go to 1.25.8 (#3214)
- Bump golang to v1.25 (#3191)
- add zizmor scanner (#3210)
- Fix make generate-go-conversions (#3207)
- Document CAPM3 pod placement and add optional affinity example (#3078)
- fix fkas build permissions for image signing (#3203)
- Enable Kube-API-linter (#3196)
- Bump the kubernetes group from v0.34.4 to v0.34.5 (#3198)
- harden github actions workflows (#3197)
- Add KUBERNETES_VERSION_UPGRADE_FROM in scalability test (#3195)
- move security-insights.yml to .github/ and use upstream validator (#3194)
- Bump the github-actions group with 2 updates (#3192)
- add SECURITY_INSIGHTS.yml (#3179)
- Fix k8s version for pivoting(node-reuse) test (#3180)
- Remove deprecated FROM_K8S_VERSION backward compatibility (#3181)
- Bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 in /test (#3186)
- Bump opentelemetry.io/otel/sdk to v1.40.0 (#3183)
- Bump CAPI to v1.12.3 (#3171)
- Bump golang.org/x/crypto from 0.47.0 to 0.48.0 in /test (#3172)
- Bump golang.org/x/mod from 0.32.0 to 0.33.0 in /test (#3174)
- Bump github.com/metal3-io/ironic-standalone-operator/api from 0.7.1 to 0.8.0 in /test (#3173)
- Unify Kubernetes version variables in e2e tests (#3153)
- Refactor E2E tests: improve input handling and machine filtering logic (#3107)
- fix reapprover workflow (#3169)
- Bump the k8s group to v0.34.4 (#3155)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.12.1 to 0.12.2 in /hack/fake-apiserver (#3157)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.12.1 to 0.12.2 (#3156)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.12.1 to 0.12.2 in /test (#3159)
- Bump github.com/metal3-io/cluster-api-provider-metal3/api from 1.12.1 to 1.12.2 in /hack/fake-apiserver (#3158)
- Fix link for machine deployment rolling upgrades (#3154)
- enforce ol-prefix 'one' style for ordered lists (#3148)
- Bump golang.org/x/oauth2 from 0.34.0 to 0.35.0 in /hack/tools (#3141)
- Bump sigs.k8s.io/kustomize/api from 0.21.0 to 0.21.1 in /test (#3143)
- Bump sigs.k8s.io/kustomize/kustomize/v5 from 5.8.0 to 5.8.1 in /hack/tools (#3142)
- metrics: enable auto-discovery of metrics endpoint (#3140)
- Bump github.com/onsi/ginkgo/v2 from 2.27.5 to 2.28.1 (#3128)
- Bump github.com/onsi/ginkgo/v2 from 2.27.5 to 2.28.1 in /test (#3132)
- Bump github.com/onsi/gomega from 1.39.0 to 1.39.1 (#3130)
- Bump golang version to 1.24.13 (#3135)
- bump github actions to new major versions (#3134)
- E2E: Fix scalability test by reducing cluster size (#3123)
- Bump github.com/metal3-io/ironic-standalone-operator/api from 0.7.0 to 0.7.1 in /test (#3115)
- Bump github.com/metal3-io/cluster-api-provider-metal3/api from 1.12.0 to 1.12.1 in /hack/fake-apiserver (#3113)
- Bump capi to v1.12.2 (#3112)
- Migrate from deprecated golang/mock to go.uber.org/mock (#3109)
- Use IRSO in e2e tests (#2776)
- Bump sigs.k8s.io/controller-runtime from 0.22.4 to 0.22.5 in /hack/fake-apiserver (#3094)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.12.0 to 0.12.1 (#3092)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.12.0 to 0.12.1 in /hack/fake-apiserver (#3095)
- Bump sigs.k8s.io/controller-runtime from 0.22.4 to 0.22.5 (#3093)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.12.0 to 0.12.1 in /test (#3097)
- Bump golang to 1.24.12 (#3084)
- Bump golangci-lint to v2.8.0 for Go 1.25.x support (#3079)
- Update k8s versoins for N+3 test (#3080)
- Bump golang.org/x/crypto from 0.46.0 to 0.47.0 in /test (#3072)
- replace pkg/errors with stdlib Errorf (#3059)
- Add clusterctl upgrade tests from v1.12 to latest (#3066)
- Bump github.com/onsi/gomega from 1.38.3 to 1.39.0 (#3070)
- Bump github.com/onsi/ginkgo/v2 from 2.27.3 to 2.27.5 in /test (#3074)
- Hide generated files in GH diffs (#3077)
- Bump github.com/onsi/ginkgo/v2 from 2.27.3 to 2.27.5 (#3069)
- Bump golang.org/x/mod from 0.31.0 to 0.32.0 in /test (#3071)
- Bump k8s version to v1.35.0 (#3065)
- make lint-full -> lint (#3058)
- Prepare main branch for relase-1.13 dev (#3051)
- Bump github.com/metal3-io/cluster-api-provider-metal3/api from 1.11.2 to 1.12.0 in /hack/fake-apiserver (#3043)
- Bump CAPI to v1.12.1 (#3052)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.11.2 to 0.12.0 in /hack/fake-apiserver (#3044)
- Bump CAPI to v1.12.1, IPAM v1.12.0 and BMO v0.12.0 (#3037)
- E2E: Fix centos image prefix (#3039)
- Add v1.13 metadata (#3029)
- Bump the github-actions group with 2 updates (#3022)
- Bump github.com/metal3-io/ironic-standalone-operator/api from 0.6.0 to 0.7.0 in /test (#3023)
- update dependabot config for release-1.12 (#3011)
- Bump the kubernetes group to v0.34.3 (#3012)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.12.0-beta.0 to 0.12.0-rc.0 in /test (#3017)
- Bump helm.sh/helm/v3 from 3.19.2 to 3.19.4 in /test (#3016)
- Bump golang.org/x/crypto from 0.45.0 to 0.46.0 in /test (#3015)
- Bump github.com/metal3-io/baremetal-operator/apis from 0.12.0-beta.0 to 0.12.0-rc.0 (#3014)
- Bump CAPI to v1.12.0 (#3013)
- Add Kubernetes N+3 upgrade test in e2e (#2915)
The image for this release is: v1.13.0-beta.0
Mariadb image tag is: capm3-v1.13.0-beta.0
Thanks to all our contributors! 😊