feat: introduce Module and ModuleClass CRDs for enhanced module manag… - #35
Conversation
…ement - Added Module and ModuleClass Custom Resource Definitions (CRDs) to facilitate the management of platform modules. - Updated existing CRD references in kustomization.yaml to reflect the new module structure. - Introduced HelmChartTemplate and KustomizationTemplate types for defining deployment strategies. - Enhanced ModuleSpec and ModuleStatus to track the state of modules and their associated classes. - Implemented deepcopy functions for new types to ensure compatibility and maintainability.
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a significant refactoring of the platform's module management system by renaming the Highlights
Changelog
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request performs a large-scale refactoring to rename the addons API group to module and the ModuleTemplate kind to ModuleClass. This change improves clarity and aligns the terminology with common industry patterns. The renaming has been applied consistently and thoroughly across all Custom Resource Definitions, Go type definitions, generated code, and documentation. The changes are well-executed and I did not find any issues.
There was a problem hiding this comment.
Pull request overview
This PR introduces a new “Module / ModuleClass” API surface for managing platform modules, including new Helm- and Kustomize-based deployment templates, and updates the generated CRDs/manifests accordingly.
Changes:
- Renames the API group and type naming from the prior addons/template terminology to
module.otterscale.iowithModule+ModuleClass. - Adds
HelmChartTemplateandKustomizationTemplatetypes (plus related supporting structs) for module deployment strategies. - Regenerates CRD YAML and deepcopy implementations to reflect the new API types/fields.
Reviewed changes
Copilot reviewed 8 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
module/v1alpha1/zz_generated.deepcopy.go |
Adds deepcopy support for ModuleClass* and updates renamed fields. |
module/v1alpha1/moduleclass_types.go |
Defines the ModuleClass CRD Go types and spec schema. |
module/v1alpha1/module_types.go |
Updates Module spec/status to reference ModuleClass and renamed generation fields. |
module/v1alpha1/kustomization_types.go |
Introduces Kustomize deployment templates and related supporting structs. |
module/v1alpha1/helm_types.go |
Introduces Helm deployment templates and release status structs. |
module/v1alpha1/groupversion_info.go |
Switches API group registration to module.otterscale.io and registers ModuleClass. |
config/crd/kustomization.yaml |
Updates CRD base references to the new group/type files. |
config/crd/bases/module.otterscale.io_modules.yaml |
Updates the Module CRD to the new group and field names. |
config/crd/bases/module.otterscale.io_moduleclasses.yaml |
Adds/updates the ModuleClass CRD under the new group. |
README.md |
Updates the API summary table to module.otterscale.io and ModuleClass. |
Comments suppressed due to low confidence (2)
module/v1alpha1/groupversion_info.go:30
- The API group for Module/ModuleClass is being renamed from
addons.otterscale.iotomodule.otterscale.io, which is a breaking change for any existing clusters/manifests (existing CRs will no longer be served under the old apiVersion). If this rename is intentional, please document the migration/upgrade path (e.g., removal of old CRDs, how to migrate existing Module CRs) in the PR description or upgrade notes, or consider supporting conversion/dual-serving if backward compatibility is required.
module/v1alpha1/module_types.go:123 - This comment still refers to a “platform addon” even though the API has been renamed to modules/classes. To avoid confusion in generated CRD descriptions and docs, please update the wording to consistently use “platform module”.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…ement