-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Module catalogue improvements #1472
Comments
Acceptance Criteria for EPIC:
Timebox: 2 Days Sub Issues:
|
I think we should use K8s explicit types and avoid obscure solutions (like mounted ConfigMaps/Secrets) for the Module Catalogue. |
Requirement 1:
Use case 1: User wants to enable a specific version of a module in their cluster.
Use case 2: User wants to enable a specific channel of a module in their cluster.
Analysis:This requirement implies there are many versions of the given module to choose from. Another requirement is that versions may "belong to" a set of channels, so there is a mapping between versions and channels. API Changes:
Implementation details:ModuleTemplate: An example of current ModuleTemplate CR type (version is an annotation):
An example of the "new" ModuleTemplate CR type with the version attribute:
In addition I would like to have the module name be an explicit attribute in the ModuleTemplate CR. The label may remain for easier searching, but the module name should be explicit. |
Modified channel/version design proposal:At this moment we only allow users to select the I propose to make the following changes in the ModuleTemplate API:
Example:
Channels mutability issues:What if the team releases a module version as standalone, and later wants to publish it in the
I opt for option 2. as it simplifies module management - as ModuleTemplates are immutable, it's simpler to distribute/cache them. |
Requirement 4
Option 1: The modified ModuleTemplate CR example:
Option 2: |
Requirement 3
For now there is not enough information provided about the possible scenarios here. But it looks like we can implement this in the Lifecycle-Manager code, without affecting the API. One possible solution would be to add additional metadata to some ModuleTemplate CRs that would define the alternative repository URL. It could be an annotation. Note: If all the repository URLs are to be replaced with a single value, this can also be implemented as the CLI argument to the Lifecycle-Manager process. This would then affect ALL Modules in given environment. We can implement both options anyway. |
Hi @pbochynski , We have some questions here, based on the current shipping kcp concept, we are versioning release channel, with the current approach, KLM is possible to use the latest channel version to get a list of latest module version. However, in order to support the following request:
How it aligned with the channel version then, to support multiple module versions, KLM must know all history versions of the channel first. Other questions:
|
You can have a look at my PoC where I describe all component versions available in all channels: The value of the feature is that you can decide about timing. You can still have a test cluster pinned to the fast channel, but your production channel you will upgrade when your SRE/dev team is available, and customers won't be affected. You can switch your production cluster to the version from the fast channel the next day after you successfully tested it on another cluster. So it is more control for the user. Of course, if you don't upgrade in 2 weeks (or whatever time we still support that version) you will be upgraded automatically. |
After clarified with @pbochynski:
|
@pbochynski Hi Piotr, |
EDIT: discussed the above with Xin. Basically, this is already described in point 4. here: #1472 (comment). If the user configured a channel, e.g., |
TODO: Consider introducing module version in MT's spec field |
Description
Module catalogue (in this case - collection of Module Templates setup) should be adapted to the new requirements:
As for the implementation options, there are two main ones:
Reasons
We should adapt to the changing requirements and Community Modules concept.
Acceptance Criteria
Open Questions
Related Tickets
.spec.manager
info to determine the module manager #1831.spec.channel
in ModuleTemplate #1839.spec.manager
info to ModuleTemplate #1840.spec.info
to ModuleTemplate #1841.spec.resources
to ModuleTemplate #1842.spec.associatedResources
to ModuleTemplate #1843ModuleReleaseMeta
CRD #1848ModuleReleaseMeta
CRD in Kyma Reconcile Loop #1849ModuleReleaseMeta
CR Changes #1850ModuleTemplate
andModuleReleaseMeta
CRs #1851.spec.resources
modulectl#53.spec.associatedResources
modulectl#54.spec.info
modulectl#55.spec.manager
modulectl#57metadata.name
is<module-name>-<version>
modulectl#62The text was updated successfully, but these errors were encountered: