valdar commented on issue #3397:
URL: https://github.com/apache/camel-k/issues/3397#issuecomment-1735525398

   I think there is the opportunity to expand a little bit the scope of this 
issue by also provide a way to have multiple versions of the camel-k operator 
installed in parallel using label selection to restrict the resources each 
camel-k operator should watch and reconcile.
   
   This would also hopefully simplify requiring a specific installation of the 
camel-k operator using the camel-k bundle without requiring to hand craft and 
tweak deployments.
   
   ### Current State
   The camel-k bundle sets up a camel-k operator upon installation which then 
relies on **IntegrationPlatforms** to configure its behavior.  
   
   
![current](https://github.com/apache/camel-k/assets/8052/9ece0ae2-5064-404d-b775-40522604138b)
   
   The **IntegrationPlatform** is meant to:
   
   - configure various aspect of the operator i.e. the registry where container 
images are pushed, some maven build configurations options, etc
   
   - provide a basic multi tenancy model where each tenant is tied to a 
platform and scoped using an **operator_id** (in the form of a label/annotation 
on any resource that should be reconciled by the same operator) 
   
   - provide a basic support for platform vs user configurations i.e. the 
platform admin can configure some aspect of the camel-k operatore but users can 
further customize them by creating a local **IntegrationPlatform**
   
   - provide a basic support for running more than one camel-k operator by 
introducing the concept of secondary platform
   
   Even if some initial support for having multiple running camel-k operators 
exists, in order to have another operator installed, a deployment must be hand 
crafted and deployed to kubernetes resulting in additional manual work to be 
done and increasing the complexity of handling updated as the deployment must 
be amended manually as the camel-k bundle is not aware of such additional 
operators.
   
   Also, dealing with multiple **IntegrationPlatforms** is very confusing, it 
is not used very often and discouraged.
   
   ### Proposed  state
   Introduce a new model where the **IntegrationPlatform** is not used only to 
configure some aspect of the operator, but also as a way to request the 
deployment of a specific Camel K operator. Within this model there won’t be a 
single camel-k operator dealing with a multitude of configurations and 
behaviors but a number of camel-k operators reconciling specific resources 
potentially with specific requirements and behaviors.
   
   To make this possible the camel-k operator needs to be split (at least from 
a responsibility point of view) into:
   
   - camel-k platform controller which is responsible to reconcile 
**IntegrationPlatforms**
   
   - camel-k operator which is responsible to reconcile all other camel-k CR 
such as Integration, Kamelet, KameletBinding, etc
   
   
![proposed](https://github.com/apache/camel-k/assets/8052/179c3f4f-e504-401c-a60f-af552e8fb9d1)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to