Summary
Convert the project from the default single-group Kubebuilder layout to a multi-group layout so additional API groups can be added cleanly alongside the existing maintenance.metal.ironcore.dev group.
Motivation
Today all APIs live under api/v1alpha1/ and all controllers under internal/controller/. The project is expected to grow beyond the current Console CRD and the maintenance group, and adding more groups under the single-group layout would mix unrelated types and reconcilers in the same directories.
Proposed Changes
- Enable multi-group mode:
kubebuilder edit --multigroup=true
- Move the existing API and controller into group-scoped directories:
api/v1alpha1/ → api/maintenance/v1alpha1/
internal/controller/ → internal/controller/maintenance/
- Update import paths in all Go files (
cmd/main.go, controller, tests, etc.).
- Update the
path field for the Console resource in PROJECT.
- Fix relative CRD paths in the test suite (
suite_test.go needs one additional ..).
- Regenerate manifests and deepcopy:
- Verify everything still builds and tests pass:
Acceptance Criteria
PROJECT contains multigroup: true and the updated resource path.
Console types live under api/maintenance/v1alpha1/ and its controller under internal/controller/maintenance/.
make manifests generate produces no diff after the move.
make test passes.
- No functional change to the
Console CRD or reconciler behavior.
Out of Scope
- Adding any new API group or kind. This issue is purely the layout change.
Summary
Convert the project from the default single-group Kubebuilder layout to a multi-group layout so additional API groups can be added cleanly alongside the existing
maintenance.metal.ironcore.devgroup.Motivation
Today all APIs live under
api/v1alpha1/and all controllers underinternal/controller/. The project is expected to grow beyond the currentConsoleCRD and themaintenancegroup, and adding more groups under the single-group layout would mix unrelated types and reconcilers in the same directories.Proposed Changes
api/v1alpha1/→api/maintenance/v1alpha1/internal/controller/→internal/controller/maintenance/cmd/main.go, controller, tests, etc.).pathfield for theConsoleresource inPROJECT.suite_test.goneeds one additional..).make lint-fix testAcceptance Criteria
PROJECTcontainsmultigroup: trueand the updated resourcepath.Consoletypes live underapi/maintenance/v1alpha1/and its controller underinternal/controller/maintenance/.make manifests generateproduces no diff after the move.make testpasses.ConsoleCRD or reconciler behavior.Out of Scope