-
Notifications
You must be signed in to change notification settings - Fork 345
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
Operator creates too many repositories #3003
Comments
I think you can find answers in #2736 for the question related to IntegrationKits. We use incremental builds, so, there may be several layers. |
Hi @squakez thanks for pointing us this out. I have some questions so far
Background of these question is that we need to have a production grade platform. Remaining Integration Kits and Repositories with no function won't even work as we're running ouf of ressources. Best |
No problem, I'll try answering inline.
Just copying the description of documentation related to the IntegrationKit:
In theory you should not delete IntegrationKit generated by the platform. If you run
I think this is something similar of what was described in #2737.
Yeah, it's a complex topic which need to be revisited. Thanks for popping it up.
|
By the way, you may have also been affected by #3007 which may have caused the incremental build not to work at all in the latest Camel K versions. Your question made me dig and discover this bug, thanks for it! This wrong behavior could be an additional reason to the high amount of containers you have experienced lately. |
Thanks @squakez for the reply. Let me summarize my understanding ..
Best |
No problem. About point 1, that is not correct. The Kit should be reused as a base layer for Integrations that are similar (for instance, a similar set of dependencies). Let's say you develop this integration:
And then, another integration such as
We expect, the second integration to have an IntegrationKit built on top of the first IntegrationKit as there is only 1 dependency difference between both. Unfortunately, you may have experienced #3007, which lately made the incremental build to be broken. About point 3, I am not sure to understand the question. Do you refers to the |
@squakez I was wrong with point 3, the Integration Kit was the one for my test Integration. Are there standards in which namespaces the Integration Kits are coming up? What's about point 2? And here, when I'm going to delete the repository, will this be re-created? Best |
The |
Hi @squakez I did just perform the following commands
The current namespace is
Further I checked the Integration Kit and the Integration
So the Integration Kit was being created in the namespace Do you have any suggestions what might be wrong here? 2 further questions ..
|
All seems good. As you've installed the operator globally (
The kit will be used once again if that Integration Pod needs to be rescheduled or as an incremental layer for any further kit which has a similar set of dependencies.
A Builder is a configuration required by the build task to perform its operation. I think it can be removed once it has finished its duties. However I think it would be safer to let the operator perform those kind of cleaning (when this consider necessary) in order to avoid tampering the consistency of the whole system. |
Tx @squakez for the replies. The overall picture becomes more and more clear now. Could we influence the repository name and/or Integration Kit name when being created? This would help in terms of clarity which one is related to which configuration. Is there a way to figure out all running integrations to a given Integration Kit? So is there actually any kind of cleaning the operator is providing (e.g. garbage collection)? Or will be provided within next version? We want to use all this stuff into production and so far we need to be clear what's necessary for a stable CI/CD with less ressources as possible. P.S. Many questions, I can offer that we're going to contribute by extending the documentation. May be others would have the same questions. |
@squakez One further question from an architecture point of view. If an Integration Kit is being used by multiple Integrations, the Integration itself isn't self contained; as it has dependencies to an Integration Kit. The relation between Integration Kits and Integrations is 1:n, what I got from your answers. How does this fit into a micro service pattern? As I understand the micro service approach such a micro service should be autonomous. The first autonomous layer with Camel-K are multiple integrations dependent to one Integration Kit. What are the reasons behind this? How could be reached an autonomy of single Integrations? |
Glad to help and clarify.
No, this is not possible. The name is autogenerated and it calculate hashes in order to simplify the comparison between kits.
Not automatically. You can get the Integration spec and figure it out the Kit used there.
Not yet, but it's definetely under the radar. See #2736
Contributions are welcome as usual! |
Sharing a base layer is a tradeoff required to improve the speed for build/execution and to reduce the resource needed to store the images. I don't think it affect the autonomy of the microservice, given that the Kit is immutable. Also, when working with containers you always use some layer built in top of another. This is exactly the same concept. |
Tx @squakez that makes the concept behind more clear as well. One of the main concepts behind Camel-K is to run the builds of an integration on the cluster, maintained by the Camel-K Operator. Nevertheless, is there a way when everything has been tested in test environment and an appropriate Integration Kit (built sometime before) is existing in the production cluster to perform the Integration image build somewhere else as at the production cluster? Background is that we want to separate the image build from the production runtime? This would make even more sense as we want to use the native build option introduced in Camel-K 1.7 that is resource consuming. |
This issue has been automatically marked as stale due to 90 days of inactivity. |
Hello,
while developing some routes the operator creates very much Integration-kits and new repositories in the registry.
So my questions are:
When does the operator create a new kit/repository?
How can i avoid this circumstance and get more control over my repos?
Thanks in advance
The text was updated successfully, but these errors were encountered: