claudio4j commented on issue #4166: URL: https://github.com/apache/camel-k/issues/4166#issuecomment-1558024280
There are three types of camel-k traits 1) Traits that just sets runtime properties in application.properties. The trait properties in this case are just short friendly names. The properties may be consumed from the different libraries: camel, camel-quarkus, quarkus Some of these properties such as customizers or loaders are specific behavior set by camel-k-runtime. Examples: addons/telemetry, addons/resume, addons/vault/* 2) Traits that in addition to setting runtime properties, also creates or modifies k8s objects, such as Role, RoleBindings, Container, etc. Examples: cron, knative, prometheus, master 3) Traits that manipulates only k8s objects. These are not the target of the trait redesign. Examples: keda, deployment, 3scale, jolokia, health, etc. There is camel-catalog that drives the artifacts and dependency resolution according to the runtime, the camel-catalog is generated by camel-k-runtime. There is a capabilities section in camel-catalog that could be enhanced to add more information such as allowed properties, runtime provider and hard dependencies. With this approach the addons/vault/* trais can be removed, then in this case the user has to use the long camel property names, example: Using `kamel run` and the trait with short property names: ``` -t aws-secrets-manager.use-default-credentials-provider -t telemetry.endpoint ``` No traits, setting the runtime property: ``` -p camel.vault.aws.defaultCredentialsProvider -p quarkus.opentelemetry.tracer.exporter.otlp.endpoint ``` In this example, having the short properties enhances the user experience at the expense of having a hard dependency to the runtime property (camel quarkus or camel). In the case the user wants to use a non quarkus runtime, there should be an intermediate layer to decide how the trait behavior should be used for the runtime. This intermediate layer can be camel-k-runtime. The Cron trait has some additional behavior: * a shutdown route strategy when all messages in the exchange has been processed (by camel-k-runtime) * option to use either a k8s CronJob or a pure camel cron (backed by timer, quartz, cron) This was just an example, to collect some feedback about the necessity to have an intermediate layer to negotiate the behavior between camel-k operator and the target runtime. As of today there is camel-k-runtime, that is going to be this intermediate layer. -- 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