Changes
⚠️ Breaking
- Check for pending tasks during
BIOSSettingsupdate @nagadeesh-nagaraja (#298) - Add systemUUID to Server CRD @Nuckal777 (#195)
- Add
drivesandvolumestoserver.status.storages@stefanhipfel (#163) - Add inline
EndpointtoBMCtype @afritzler (#151) - Change resource naming scheme @afritzler (#123)
🚀 Features
- Allow retry from failed state for BIOS/BMC Settings/Version resources @nagadeesh-nagaraja (#431)
- Add ability to set BIOS settings in sequence @nagadeesh-nagaraja (#403)
- Add transition condition to powering a Server @Nuckal777 (#422)
- Replace broken ticker raw source with
RequeueAfter@Nuckal777 (#423) - Add BMCVersionSet resource and controller @nagadeesh-nagaraja (#412)
- Add
BIOSVersiontoServerstatus @afritzler (#411) - Fix RBAC for
BIOSVersionSet@afritzler (#414) - Use
GeneratedNameswhen creatingServerMaintenanceforBIOSSettings@nagadeesh-nagaraja (#410) - Add
BIOSVersionSetresource and controller @nagadeesh-nagaraja (#384) - Add
Servervalidation webhook @nagadeesh-nagaraja (#387) - Add
BMCVersionresource and controller implementation @nagadeesh-nagaraja (#343) - Remove claim mutex from
ServerClaimreconciler @Nuckal777 (#391) - Harmonize API comments and marker @afritzler (#388)
- Use optimisitc lock when claiming a Server @Nuckal777 (#389)
- Use uri to fetch the ComputeSystem from redfish API instead of UUID @nagadeesh-nagaraja (#337)
- Add Conditions to
BIOSSettingsstatus @nagadeesh-nagaraja (#386) - Remove
BMCSettingswhenBMCresource is deleted @nagadeesh-nagaraja (#380) - Delete
BIOSSettingswhenServeris deleted @SzymonSAP (#382) - Validate that the claim in
Serveris not switched directly @fwiesel (#376) - Add
BMCSettingstype and controller implementation @nagadeesh-nagaraja (#303) - Transition unclaimed
ServersfromMaintenancetoInitialstate @stefanhipfel (#370) - Revert Option for naming
Serversas theBMCobjects and related @fwiesel (#375) - Add flag to facilitate
Servername migration @fwiesel (#369) - Adopt Helm charts for remote cluster use case @SzymonSAP (#355)
- Option for naming
Serversas theBMCobjects @fwiesel (#362) - Switch docs to vitepress @afritzler (#359)
- Refactor usage of
GetBMCClientForServer@afritzler (#354) - Bump
k8s.io/*to v1.33 andcontroller-runtimeto v0.21.0 @afritzler (#341) - Rename
BMCOptionstoOptions@afritzler (#352) - Add
BIOSVersionresource and controller implementation @nagadeesh-nagaraja (#311) - Factor out common test helpers into own file and remove flakiness @nagadeesh-nagaraja (#336)
- Use 9443 port for webhook @SzymonSAP (#335)
- Add processor information to
Serverstatus @afritzler (#329) - Update docs for BIOS/BMC settings and version types @nagadeesh-nagaraja (#321)
- Check for pending tasks during
BIOSSettingsupdate @nagadeesh-nagaraja (#298) - Prepare CRDs folder with kustomize @SzymonSAP (#324)
- Add webhook for
BIOSSettingsresources @nagadeesh-nagaraja (#315) - Remove
Completedstate fromServerMaintenance@stefanhipfel (#286) - Update Helm release workflow @afritzler (#317)
- Add Helm chart publishing workflow @SzymonSAP (#281)
- Add additional unit tests for
BIOSSettingscontroller @nagadeesh-nagaraja (#297) - Add documentation for
BIOSSettingsresource @nagadeesh-nagaraja (#294) - Add
BIOSSettingstype and controller implementation @nagadeesh-nagaraja (#267) - Drop
kube-rbac-proxycontainer usage inconfig@Rohit-0505 (#243) - Add per
BMCprotocol scheme configuration in macdb @afritzler (#261) - Bump golang to 1.24 and
k8s.io/*deps to v0.32.3 @afritzler (#280) - Update API reference docs @afritzler (#275)
- Add
ServerMaintenanceReconcilerimplementation @stefanhipfel (#265) - Bump golangci/golangci-lint-action from 6 to 7 @dependabot[bot] (#268)
- Use upstream docs publishing workflow @ushabelgur (#273)
- Add helm chart @SzymonSAP (#264)
- Enhance
BMCReconcilerfor Improved Robustness and Efficiency @afritzler (#260) - Add
is-default-os-imageannotation to discovery boot SBC @afritzler (#248) - Parallelize
ServerClaimreconciliation @Nuckal777 (#251) - Add
ServerMaintenanceAPI type @afritzler (#208) - Make
Servermax concurrent reconciles configurable @afritzler (#245) - Validate Server discovery failure in an extra test @Nuckal777 (#236)
- Add
instance-typeannotation constant @afritzler (#235) - Order resource deletions in controller tests properly @Nuckal777 (#231)
- Revert "Make
MACAddressfield inBMCEndpointoptional" @afritzler (#225) - Make
macAddressfield in BMCInlineEndpointoptional @defo89 (#224) - Make
MACAddressfield inBMCEndpointoptional @defo89 (#223) - Apply
BMClabels toServeron creation @defo89 (#222) - Add
metaluser and SSH Keypair duringDiscoveryboot @afritzler (#219) - Fix controllerutil.CreateOrPatch() calls @Nuckal777 (#216)
- Add
metalctl consolesubcommand @afritzler (#201) - Add systemUUID to Server CRD @Nuckal777 (#195)
- Add
metalctlcommand line interface @SzymonSAP (#162) - Add
Endpointwebhook ensuring unique MAC addresses @damyan (#187) - Add wait polling for retrieving redfish storages and systems @stefanhipfel (#174)
- Add
TotalSystemMemorytoServerstatus @stefanhipfel (#173) - Add
add-licenseandcheck-licensemakedirective @afritzler (#179) - Migrate to CRD validation rules @Nuckal777 (#169)
- Log
BMCaddress when creating a client for anEndpoint@afritzler (#166) - Add
drivesandvolumestoserver.status.storages@stefanhipfel (#163) - Use lower-case
ServerUUIDs @afritzler (#161) - Fix default webhook port and disable metrics server in test suite @afritzler (#156)
- Add inline
EndpointtoBMCtype @afritzler (#151) - Add initial project documentation @afritzler (#152)
- Extract storage details of a
Serverusing Redfish @stefanhipfel (#143) - Add timeout check in discovery state @stefanhipfel (#136)
- Add
Servermodel to.status@defo89 (#132) - Requeue for Power state polling and ensuring
ServerClaimbinding @defo89 (#131) - Retry with
ForcePowerOffif graceful shutdown times out @defo89 (#129) - Wait for
Serverpower transition @afritzler (#128) - Bump
k8s.io/*deps to v0.31.1 @afritzler (#127) - Add
Tiltfor local development @defo89 (#120) - Add handling of
Resetad-hoc operation toServertype @stefanhipfel (#125) - Change resource naming scheme @afritzler (#123)
- Add time triggered
Serverpolling @afritzler (#114) - Switch default webhook port from
9443to9445@afritzler (#113) - Improve network inteface filtering in
metalprobe@afritzler (#112) - Allow the discovery of
Serverswhich are in the poweredOnstate. @afritzler (#109) - Add
DiscoveryState and reworkInitialpower/pxe handling @defo89 (#98) - Make webhook port configurable @defo89 (#102)
- Expose BIOS configuration in
Servertype @stefanhipfel (#89) - Add sample manifests @afritzler (#96)
- Add
config/devkustomize @defo89 (#95) - Implement
ServerSelectorinServerClaimReconciler@aobort (#86) - Add validating webhook for
ServerClaim@afritzler (#88) - Add support for inline BMC access in
Serverreconciler @afritzler (#84) - Add documentation to API types @afritzler (#75)
- Add API reference docs generation @afritzler (#74)
- Add local dev setup guide @afritzler (#72)
- Bump
k8s.io/*to v0.30.2 @afritzler (#69) - Move project to
ironcore-dev@afritzler (#51) - Optimize Redfish PowerOn Method @hardikdr (#49)
- Adapt default ignition systemd units @hardikdr (#48)
- PXE boot
ServerClaimedServer@afritzler (#36) - Improve removal of initial
ServerBootConfiguration@afritzler (#35) - Remove
Serverfrom registry once reachedAvailable@afritzler (#31) - Fix
BMCreconciliation and print columns @afritzler (#30) - Ensure
ServerBootConfigurationremoval onServeravailable state @afritzler (#29) - Enable caching in container build @afritzler (#21)
- Add
ServerClaimreconciler @afritzler (#19) - Add
RedfishLocalBMC protocol type @afritzler (#17) - Make initial boot OS configurable @afritzler (#5)
- Handle
Serverdeletion @afritzler (#4)
🐛 Bug Fixes
- Allow updates of
{BMC,BIOS}Settingsand{BMC,BIOS}VersionwhenServerMaintenancesare not yet created @nagadeesh-nagaraja (#418) - Fix RBAC for
BIOSVersionSet@afritzler (#414) - Do not omit errors after ensureServerStateTransition @videlov (#407)
- Fix local docs setup @afritzler (#364)
- Fix docs base path @afritzler (#363)
- Fix docs publishing workflow @afritzler (#361)
- Improve resource cleanup in suite tests @SzymonSAP (#328)
- Skip
ServerClaimreconciliation whenServeris inMaintenancestate @nagadeesh-nagaraja (#301) - Add missing RBAC rules for
ServerClaimsin default kustomization @Rohit-0505 (#296) - Fix
Serverstate transitions (maintenance->reseverd->available) @stefanhipfel (#278) - Set the correct
ServerReconcilermax reconciles @afritzler (#246) - Fix
ServerClaimwith label selector claiming multiple servers @Nuckal777 (#230) - Install
docker-cliinmetalprobeservice @defo89 (#229) - Free up
Serverif referencedServerClaimdoes not exist @defo89 (#228) - Revert "Make
MACAddressfield inBMCEndpointoptional" @afritzler (#225) - Fix controllerutil.CreateOrPatch() calls @Nuckal777 (#216)
- Fix webhook port in service to 9445 @afritzler (#202)
- Fix webhook cert injection @aobort (#197)
- Fix sporadic in probe tests @afritzler (#193)
- Fix sporadic test failures @Nuckal777 (#192)
- Fix multiple
ServerClaimreferences @lukasfrank (#190) - Fix BMC IPv6 address handling @damyan (#172)
- Claim only
PoweredOffServers @defo89 (#159) - Fix multiple
ServerClaimsclaiming sameServerobject @afritzler (#158) - Fix default webhook port and disable metrics server in test suite @afritzler (#156)
- Do not double encode Secrets in
BMCSecret@defo89 (#139) - Set
MaxConcurrentReconcilesfor ServerClaim controller @defo89 (#130) - Do not always set
BootSourceOverrideMode@defo89 (#107) - Add Format Key to Default Ignition Secret @defo89 (#105)
- Enable
cert-managerconfig in kustomization @aobort (#94) - Use
CreateOrPatchfor dependent resources likeBMC,Server,ServerBootConfiguration@afritzler (#71) - Allow deletion of the
ServerClaimwhenServerdoes not exist @hardikdr (#70) - Fix reconciling
PowerStateofServerresource fromServerClaim@hardikdr (#50) - Add RestartSec in default ignition @hardikdr (#46)
- Fix
BMCreconciliation and print columns @afritzler (#30) - Fix
metalprobeignition @afritzler (#28) - Use host network when running
metalprobe@afritzler (#27) - Fix nil pointer deref in PXE boot @afritzler (#26)
- Fix init ignition @afritzler (#25)
- Fix registry port @afritzler (#24)
- Fix registry start in manager @afritzler (#23)
- Fix
BMCSecretdecoding when constructing aBMCclient @afritzler (#22) - Fix error handling in BMC controller @afritzler (#20)
- Fix ignition generation for initial boot @afritzler (#3)
🧰 Maintenance
- Bump golang.org/x/crypto from 0.40.0 to 0.41.0 @dependabot[bot] (#427)
- Bump vitepress from 1.6.3 to 1.6.4 @dependabot[bot] (#430)
- Bump golang from 1.24.5 to 1.24.6 @dependabot[bot] (#429)
- Bump actions/checkout from 4 to 5 @dependabot[bot] (#428)
- Bump sigs.k8s.io/yaml from 1.5.0 to 1.6.0 @dependabot[bot] (#406)
- Harmonize lint and test workflows @afritzler (#401)
- Bump github.com/ironcore-dev/controller-utils from 0.9.9 to 0.10.0 @dependabot[bot] (#397)
- Bump golang from 1.24.4 to 1.24.5 @dependabot[bot] (#392)
- Bump golang.org/x/crypto from 0.39.0 to 0.40.0 @dependabot[bot] (#393)
- Harmonize API comments and marker @afritzler (#388)
- Bump sigs.k8s.io/yaml from 1.4.0 to 1.5.0 @dependabot[bot] (#385)
- Update licensing info in readme and docs @afritzler (#381)
- Bump golang from 1.24.3 to 1.24.4 @dependabot[bot] (#357)
- Add label to docs container @afritzler (#365)
- Bump golang.org/x/crypto from 0.38.0 to 0.39.0 @dependabot[bot] (#358)
- Bump actions/configure-pages from 4 to 5 @dependabot[bot] (#360)
- Bump github.com/go-logr/logr from 1.4.2 to 1.4.3 @dependabot[bot] (#353)
- Restrict charts pushing workflow @SzymonSAP (#340)
- Bump golang from 1.24.2 to 1.24.3 @dependabot[bot] (#333)
- Bump golang.org/x/crypto from 0.37.0 to 0.38.0 @dependabot[bot] (#334)
- Bump golangci/golangci-lint-action from 7 to 8 @dependabot[bot] (#327)
- Disable e2e tests on main pushes @afritzler (#318)
- Move crds folder out of templates @SzymonSAP (#320)
- Bump github.com/onsi/gomega from 1.36.3 to 1.37.0 @dependabot[bot] (#282)
- Bump github.com/onsi/ginkgo/v2 from 2.23.3 to 2.23.4 @dependabot[bot] (#284)
- Bump golang.org/x/crypto from 0.36.0 to 0.37.0 @dependabot[bot] (#283)
- Bump golang from 1.24.1 to 1.24.2 @dependabot[bot] (#285)
- Bump golang.org/x/net from 0.37.0 to 0.38.0 @dependabot[bot] (#299)
- Update container build workflow @afritzler (#302)
- Fix typo in
SSHKeyPairSecretPasswordKeyName@stefanhipfel (#279) - Update API reference docs @afritzler (#275)
- Bump golangci/golangci-lint-action from 6 to 7 @dependabot[bot] (#268)
- Bump github.com/onsi/gomega from 1.36.2 to 1.36.3 @dependabot[bot] (#270)
- Bump golang.org/x/net from 0.35.0 to 0.36.0 @dependabot[bot] (#263)
- Bump golang.org/x/crypto from 0.35.0 to 0.36.0 @dependabot[bot] (#259)
- Bump golang from 1.24.0 to 1.24.1 @dependabot[bot] (#256)
- Bump github.com/ironcore-dev/controller-utils from 0.9.7 to 0.9.8 @dependabot[bot] (#258)
- Bump golang.org/x/crypto from 0.33.0 to 0.35.0 @dependabot[bot] (#252)
- Update reuse configuration @afritzler (#249)
- Bump github.com/spf13/cobra from 1.8.1 to 1.9.1 @dependabot[bot] (#241)
- Use new Reuse API format @sap-ospo-bot (#240)
- Bump golang from 1.23.6 to 1.24.0 @dependabot[bot] (#242)
- Bump
golangci-lintto v1.64 @afritzler (#237) - Bump golang.org/x/crypto from 0.32.0 to 0.33.0 @dependabot[bot] (#233)
- Bump golang from 1.23.5 to 1.23.6 @dependabot[bot] (#234)
- Bump github.com/ironcore-dev/controller-utils from 0.9.6 to 0.9.7 @dependabot[bot] (#221)
- Bump golang from 1.23.4 to 1.23.5 @dependabot[bot] (#220)
- Bump golang.org/x/crypto from 0.31.0 to 0.32.0 @dependabot[bot] (#213)
- Bump github.com/onsi/ginkgo/v2 from 2.22.1 to 2.22.2 @dependabot[bot] (#214)
- Bump github.com/onsi/gomega from 1.36.1 to 1.36.2 @dependabot[bot] (#212)
- Bump github.com/onsi/ginkgo/v2 from 2.22.0 to 2.22.1 @dependabot[bot] (#211)
- Bump github.com/ironcore-dev/controller-utils from 0.9.5 to 0.9.6 @dependabot[bot] (#206)
- Fix dev setup documentation @afritzler (#205)
- Bump golang.org/x/crypto from 0.28.0 to 0.31.0 @dependabot[bot] (#204)
- Bump golang from 1.23.3 to 1.23.4 @dependabot[bot] (#203)
- Add installation instructions for
metalctl@afritzler (#200) - Restructure
metalctldocumentation @afritzler (#199) - Add metalctl usage to mkdocs @SzymonSAP (#198)
- Bump fsfe/reuse-action from 4 to 5 @dependabot[bot] (#180)
- Bump github.com/onsi/gomega from 1.35.1 to 1.36.0 @dependabot[bot] (#186)
- Bump github.com/onsi/ginkgo/v2 from 2.21.0 to 2.22.0 @dependabot[bot] (#185)
- Remove certificate mount from kustomization @defo89 (#182)
- Bump github.com/ironcore-dev/controller-utils from 0.9.4 to 0.9.5 @dependabot[bot] (#181)
- Bump github.com/stmcginnis/gofish from 0.19.0 to 0.20.0 @dependabot[bot] (#147)
- Remove certificate resource from kustomization @Nuckal777 (#176)
- Bump golang from 1.23.2 to 1.23.3 @dependabot[bot] (#177)
- Bump github.com/onsi/gomega from 1.34.2 to 1.35.1 @dependabot[bot] (#165)
- Bump github.com/onsi/ginkgo/v2 from 2.20.2 to 2.21.0 @dependabot[bot] (#164)
- Update API reference docs @afritzler (#157)
- Bump python in docs action to 3.10 @afritzler (#154)
- Switch port of local docs setup to
9000@afritzler (#153) - Bump pascalgn/size-label-action from 0.5.4 to 0.5.5 @dependabot[bot] (#150)
- Bump golang from 1.23.1 to 1.23.2 @dependabot[bot] (#140)
- Bump github.com/ironcore-dev/controller-utils from 0.9.3 to 0.9.4 @dependabot[bot] (#141)
- Ensure port 8080 is free when running
make test@afritzler (#133) - Bump golang to 1.23 @afritzler (#126)
- Bump golang from 1.23.0 to 1.23.1 @dependabot[bot] (#122)
- Bump github.com/onsi/gomega from 1.34.1 to 1.34.2 @dependabot[bot] (#118)
- Bump pascalgn/size-label-action from 0.5.2 to 0.5.4 @dependabot[bot] (#115)
- Bump github.com/onsi/ginkgo/v2 from 2.20.0 to 2.20.2 @dependabot[bot] (#119)
- Bump golang from 1.22.6 to 1.23.0 @dependabot[bot] (#111)
- Bump github.com/onsi/ginkgo/v2 from 2.19.1 to 2.20.0 @dependabot[bot] (#110)
- Bump golang from 1.22.5 to 1.22.6 @dependabot[bot] (#106)
- Bump github.com/onsi/gomega from 1.34.0 to 1.34.1 @dependabot[bot] (#101)
- Bump github.com/onsi/ginkgo/v2 from 2.19.0 to 2.19.1 @dependabot[bot] (#92)
- Bump github.com/onsi/gomega from 1.33.1 to 1.34.0 @dependabot[bot] (#91)
- Bump github.com/stmcginnis/gofish from 0.15.0 to 0.19.0 @dependabot[bot] (#83)
- Bump fsfe/reuse-action from 3 to 4 @dependabot[bot] (#78)
- Bump golang from 1.22.4 to 1.22.5 @dependabot[bot] (#79)
- Add documentation to API types @afritzler (#75)
- Bump
k8s.io/*to v0.30.2 @afritzler (#69) - Make project REUSE API compliant @afritzler (#54)
- Rename operator image to
metal-operator-controller-manager@afritzler (#53) - Update project tooling @afritzler (#52)
- Move project to
ironcore-dev@afritzler (#51) - Bump docker/build-push-action from 5 to 6 @dependabot[bot] (#47)
- Bump github.com/go-logr/logr from 1.4.1 to 1.4.2 @dependabot[bot] (#43)
- Bump github.com/onsi/ginkgo/v2 from 2.17.3 to 2.19.0 @dependabot[bot] (#44)
- Bump golang from 1.22.3 to 1.22.4 @dependabot[bot] (#45)
- Bump github.com/onsi/gomega from 1.33.0 to 1.33.1 @dependabot[bot] (#37)
- Bump golang from 1.22.2 to 1.22.3 @dependabot[bot] (#39)
- Bump github.com/onsi/ginkgo/v2 from 2.17.2 to 2.17.3 @dependabot[bot] (#40)
- Bump golangci/golangci-lint-action from 5 to 6 @dependabot[bot] (#41)
- Bump golangci/golangci-lint-action from 4 to 5 @dependabot[bot] (#34)
- Bump github.com/onsi/ginkgo/v2 from 2.17.1 to 2.17.2 @dependabot[bot] (#32)
- Randomize registry port in test suite @afritzler (#18)
- Bump github.com/onsi/gomega from 1.31.1 to 1.33.0 @dependabot[bot] (#10)
- Update dependabot configuration @afritzler (#14)
- Bump pascalgn/size-label-action from 0.5.0 to 0.5.2 @dependabot[bot] (#6)
- Bump k8s.io/client-go from 0.29.3 to 0.29.4 @dependabot[bot] (#7)