-
Notifications
You must be signed in to change notification settings - Fork 22
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
feat: add pre-flight check for installing ocm-controller #565
Conversation
c3d4d83
to
6e594c4
Compare
8d12cf3
to
09671fc
Compare
|
09671fc
to
cb4ca4a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a question, the command accesses an ocm github repository to fetch things.
I thought, the installation should be based on an OCM component version.
Som the user should be able to specify
- an OCM repository (via the repo spec syntax provided by the lib, like the other commands)
- (optionall) overwrite the component containing the installation files.
This repository (and the appropriate component) can then be searched for the latest version. and the content can be download from the select component version.
Nope. This one isn't designed to use components. That's the mpas bootstraper. This one is fine fetching things from source and repository of the main thing. |
What's the value of introducing a component here other than adding another layer? I'm all for dog-fooding but in this case introducing a component doesn't add any value. |
We would be able to bundle all required components into one OCM component in their correct versions, e.g. specifying the hard-coded version of the cert-manager in https://github.com/open-component-model/ocm/pull/565/files#diff-331ec72911a0b802a9cc3c79d465b30809b711218a47cfc6983e92b3ae0cc81fR75. "we would be able" would also mean we need to create new version of that component with each release. value for the end user: not really different than with the current implementation, but the user needs to know the name of component and its OCM repository. Value for the ocm story: consistency when it comes how to bundle and transport artifacts. Why do we do it differently for mpas? because of the higher number of components? |
FWIW, it's a default version that you can override with a parameter. :)
Partially, yes. Also, for MPAS there was a requirement to provide offline access. This is achieved by providing the ability to create offline artifacts which then can be used for transferring to a specific repository. That repository then can be used for bootstrapping. Here, there was no such requirement. It can just fetch things from the source. :) |
We could do this but it doesn't help or improve the installation process in any way. The artifact in this case is produced by the release pipeline for the controller, which bundles the resources into a specific release artifact.
Generally speaking I totally agree with this point. But in this specific case, we would be wrapping an artifact in a component only to unwrap it elsewhere. I see this as an entirely unnecessary obfuscation.
MPAS is different because we want to bundle everything that is needed to bootstrap MPAS and ensure that it can be transported. When boostrapping MPAS we also care a lot about the sequence and don't just dump everything at the cluster. In the case of the ocm-controller it is not so complicated and we can just dump the prerequisites at the cluster from a single artifact. I think there is a separate discussion to be had about publishing components for all OCM projects and we should certainly do that I agree. |
Description
Add a pre-flight check to see if all conditions are met that are required for the controller to work before installing it.
Closes open-component-model/ocm-controller#285
What type of PR is this? (check all applicable)
Related Tickets & Documents
Screenshots
Added tests?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Added to documentation?
Checklist: