nicolaferraro opened a new pull request #2058:
URL: https://github.com/apache/camel-k/pull/2058


   <!-- Description -->
   
   Fix #1799
   
   This is the best strategy I could think about, and it comes with no copies 
or redundant information.
   
   Basically, the behavior of Camel K is now the following when running an 
integration with a global operator in another namespace:
   - If there's an integrationplatform in the local integration namespace, then 
Camel K behaves as today
   - If there's no integrationplatform in the local integration namespace, then 
the operator looks for an integrationplatform in the operator namespace (or it 
creates one when possible, i.e. OpenShift currently) and all the hard work 
(like checking kits and building images) is done in the global operator 
namespace
   
   In the new context, when I run an integration, tipically I have:
   - Integration in the user namespace
   - IntegrationKit in the **operator namespace**
   - Build in the **operator namespace**
   - CamelCatalog in the **operator namespace**
   - IntegrationPlatform in the **operator namespace**
   
   I.e. the disconnection happens at integration level, all other pieces remain 
local (in the operator namespace).
   To locate the kit and all other platform resources, a new `status` -> 
`platformNamespace` has been added to the Integration and it represents where 
all supporting resources are located.
   
   On OpenShift, the `pull-secret` trait also adds the `system:image-puller` 
role (thanks @astefanutti) to the integration service account, so no image 
transfer between namespaces: all (cluster-wide) integrations with the same set 
of dependencies will point to the same imagestream.
   
   This allows to have, by default, a single builder with warmed up cache, that 
also builds images for the whole cluster, so images are shared and time to run 
the integrations is drastically reduced.
   
   Missing parts:
   - [ ] E2E tests
   
   <!--
   Enter your extended release note in the below block. If the PR requires
   additional action from users switching to the new release, include the string
   "action required". If no release note is required, write "NONE". 
   
   You can (optionally) mark this PR with labels "kind/bug" or "kind/feature" 
to make sure
   the text is added to the right section of the release notes. 
   -->
   
   **Release Note**
   ```release-note
   A cluster-wide global Camel K operator now has the same (or better) 
performance than local Camel K operators
   ```
   


----------------------------------------------------------------
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.

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


Reply via email to