nicolaferraro commented on issue #115: Introducing Traits
URL: https://github.com/apache/camel-k/issues/115#issuecomment-423816437
 
 
   Well, if we talk about the specific lifecycles associated to traits in 
custom resources, I think we don't need to add new services, as it's the role 
of the operator to update CRs and related kubernetes objects to reflect the 
configuration set by the user. We need to abstract the code associated to the 
traits from the main state machine, but we can define internal modules for 
that, we don't need to split the operator into physical distinct services. It 
adds complexity.
   
   E.g. if instead of creating a Deployment, the operator needs to create a 
CronJob, that is just internal logic that we just need to modularize 
(interceptors?) to make it more maintainable. Same if we need to expose a 
service.
   
   A different thing is when a trait requires something at infrastructure level.
   
   E.g. if I have a integration `from("kafka:topic").to("log:msg")` and I want 
to shutdown the integration when there are no new messages in the `topic`, 
maybe I'd activate a distinct "watchdog" service to handle it.
   
   The "maven-builder", that is now embedded in the operator is another service 
that will be externalized, although I don't know if there'll be a `s2i-build` 
trait or it will be a general cluster configuration.
   The "graal-builder" is something we should think to create outside the 
operator, enabled by a trait.
   
   In my view, the operator should continue to handle the state machine, 
creating, destroying and interacting with external services to perform some 
actions in order to move the state forward. Traits are one of the sources the 
operator will use to decide if a external service should be started or not.
   
   
   
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on 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


With regards,
Apache Git Services

Reply via email to