-
Notifications
You must be signed in to change notification settings - Fork 349
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
Implementing a global build strategy #1799
Comments
I think we may need to revisit some of the options we have for kits, as example you can define properties, secrets and configmaps and you don't want to share them across tenants I guess. |
Right, restricting this to "platform" traits may be an option. I.e. using the existing strategy for edge cases. |
Sounds good to me. A couple of questions on top of my head:
Relates to #1693. |
Cool, the Yes, I'd like using |
Right, I think it's also important to revisit the build scheduling that serialises builds, as it is likely to become a bottleneck in a multi-tenant setup. |
Yeah, @lburgazzoli was proposing to experiment with mvnd #1784 , which afaik supports parallel builds. Also the part that pushes to the registry can be parallelized. By parallelizing, we may not do chained builds, but the overall time should be reduced. |
And that's worth doing it in general, not only in the global scenario tbh. |
We also discussed to have some ordering when executing builds: #592 |
Great, I think that use case is a good driver to move forward on the build ordering / parallelisation work. Granted it's worth doing it in the general case also, as noted by @nicolaferraro. |
I'm thinking to how we can improve global mode and I ended up with the following mechanism.
When using global mode, the platform where the global Operator is installed (
camel-system
will be the one) should be the default for all namespaces.If a namespace has no platform (or it has a "empty" special platform, to deal with issues e.g. default kamelets are not installed in current namespace without a platform), then the global platform is used.
The global platform imposes a global build strategy. A local integration kit is not processed locally, instead it is linked to a global kit. It can be linked to an existing global kit, or a new global kit can be created. Status of the local kit will mirror the status of the liked global kit. In the case of OpenShift, upon completion of the global kit, the imagestreams can be also copied over to the local namespace if needed.
This way:
Wdyt @astefanutti , @lburgazzoli ?
The text was updated successfully, but these errors were encountered: