-
Notifications
You must be signed in to change notification settings - Fork 32
Description
Description
Implement the installation of mandatory modules based on ModuleReleaseMeta. See tickets #2630 and #2634 for the exact information in the ModuleReleaseMeta.
KLM shall:
- NOT sync ModuleReleaseMeta of mandatory module (ModuleReleaseMeta with
.spec.mandatory
is NOT synced to SKR #2680) - NOT sync ModuleTemplates belonging to a mandatory module
- (may be removed from KCP entirely)
- install the version of the mandatory module specified in the ModuleReleaseMeta
Dev Notes
Investigate whether it is beneficial to keep the mandatory module installation and deletion controllers separate from the regular ones, or if it technically makes more sense to remove the separate controllers and integrate it into the regular ones.
The switch from old to new approach can be done seamlessly by executing the following order:
- Release the new fields of ModuleReleaseMeta
- Mandatory Module Teams provide the new fields in the ModuleReleaseMeta. ModuleTemplates are continued to be built as before and pushed to KCP
- as KLM doesn't know the new fields, they are simply ignored
- Introduce the changes to KLM switching to the new ModuleReleaseMeta.
- at time of releasing, make sure that the version in the MRM matches the highest version we have a ModuleTemplate for
KLM now regocnizes the new format and can handle it - with the release of KLM, it switched to the new approach
- at time of releasing, make sure that the version in the MRM matches the highest version we have a ModuleTemplate for
- Remove the the obsolete fields from the ModuleTemplate
- again, ModuleTemplate may be completely removed for mandatory modules
Caution
The second point above requires module teams to have updated their data and the submission pipeline to support the process. The ticket to track this will be created in #2629. Once there, it should be linked as a prerequisite for releasing the functionality.
Reasons
Carve out from: #2615
KLM shall install mandatory modules with the information available from ModuleReleaseMeta only. No ModuleTemplate involed.
AC
- When new ModuleReleaseMeta with
.spec.mandatory
is deployed to KCP- Then the module is installed to all SKRs in version
.spec.mandatory.version
- Then the module is installed to all SKRs in version
- When
.spec.mandatory.version
is bumped- Then the new version of the module is installed
- When
.spec.mandatory.version
is reduced- Then KLM leaves the current version installed
[ ] Then a metric is emitted indicating the misconfiguration of a mandatory module- this will be discussed in a separate issue
- When a ModuleReleaseMeta with
.spec.mandatory
is removed from KCP- Then the module is uninstalled from all SKRs
- E2E tests updated where necessary