Chapter 5. Managing Camel K integrations
You can manage Red Hat Integration - Camel K integrations using the Camel K command line or using development tools. This chapter explains how to manage Camel K integrations on the command line and provides links to additional resources that explain how to use the VS Code development tools.
5.1. Managing Camel K integrations
Camel K provides different options for managing Camel K integrations on your OpenShift cluster on the command line. This section shows simple examples of using the following commands:
-
kamel get
-
kamel describe
-
kamel log
-
kamel delete
Prerequisites
- Section 3.1, “Setting up your Camel K development environment”
- You must already have a Camel integration written in Java, XML, or YAML DSL
Procedure
Ensure that the Camel K Operator is running on your OpenShift cluster, for example:
$ oc get pod NAME READY STATUS RESTARTS AGE camel-k-operator-86b8d94b4-pk7d6 1/1 Running 0 6m28s
Enter the
kamel run
command to run your integration in the cloud on OpenShift. For example:$ kamel run hello.camelk.yaml integration "hello" created
Enter the
kamel get
command to check the status of the integration:$ kamel get NAME PHASE KIT hello Building Kit kit-bqatqib5t4kse5vukt40
Enter the
kamel describe
command print detailed information about the integration:$ kamel describe integration hello kamel describe integration hello Name: hello Namespace: camel-k-test Creation Timestamp: Tue, 14 Apr 2020 16:57:04 +0100 Phase: Running Runtime Version: 1.1.0 Kit: kit-bqatqib5t4kse5vukt40 Image: image-registry.openshift-image-registry.svc:5000/camel-k-test/camel-k-kit-bqatqib5t4kse5vukt40@sha256:3788d571e6534ab27620b6826e6a4f10c23fc871d2f8f60673b7c20e617d6463 Version: 1.0.0-RC2 Dependencies: camel:log camel:timer mvn:org.apache.camel.k/camel-k-loader-yaml mvn:org.apache.camel.k/camel-k-runtime-main Sources: Name Language Compression Ref Ref Key hello.camelk.yaml yaml false Conditions: Type Status Reason Message IntegrationPlatformAvailable True IntegrationPlatformAvailable camel-k IntegrationKitAvailable True IntegrationKitAvailable kit-bqatqib5t4kse5vukt40 CronJobAvailable False CronJobNotAvailableReason different controller strategy used (deployment) DeploymentAvailable True DeploymentAvailable deployment name is hello ServiceAvailable False ServiceNotAvailable no http service required ExposureAvailable False RouteNotAvailable no target service found
Enter the
kamel log
command to print the log tostdout
:$ kamel log hello ... 1] 2020-04-14 16:03:41.205 INFO [Camel (camel-k) thread #1 - timer://yaml] info - Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello Camel K from yaml] [1] 2020-04-14 16:03:42.205 INFO [Camel (camel-k) thread #1 - timer://yaml] info - Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello Camel K from yaml] [1] 2020-04-14 16:03:43.204 INFO [Camel (camel-k) thread #1 - timer://yaml] info - Exchange[ExchangePattern: InOnly, BodyType: String, Body: Hello Camel K from yaml] ...
-
Press
Ctrl-C
to terminate logging in the terminal. Enter the
kamel delete
to delete the integration deployed on OpenShift:$ kamel delete hello Integration hello deleted
Additional resources
- For more details on logging, see Section 5.2, “Managing Camel K integration logging levels”
- For faster deployment turnaround times, see Section 3.6, “Running Camel K integrations in development mode”
- For details of development tools to manage integrations, see VS Code Tooling for Apache Camel K by Red Hat
5.2. Managing Camel K integration logging levels
Camel K uses Apache Log4j 2 as the logging framework for integrations. You can configure the logging levels of various loggers on the command line at runtime by specifying the logging.level
prefix as an integration property. For example:
--property logging.level.org.apache.camel=DEBUG
Procedure
Enter the
kamel run
command and specify the logging level using the--property
option. For example:$ kamel run --property logging.level.org.apache.camel=DEBUG HelloCamelK.java --dev ... [1] 2020-04-13 17:02:17.970 DEBUG [main] PropertiesComponentFactoryResolver - Detected and using PropertiesComponent: org.apache.camel.component.properties.PropertiesComponent@3e92efc3 [1] 2020-04-13 17:02:17.974 INFO [main] ApplicationRuntime - Listener org.apache.camel.k.listener.PropertiesFunctionsConfigurer@4b5a5ed1 executed in phase Starting [1] 2020-04-13 17:02:17.984 INFO [main] RuntimeSupport - Looking up loader for language: java [1] 2020-04-13 17:02:17.987 INFO [main] RuntimeSupport - Found loader org.apache.camel.k.loader.java.JavaSourceLoader@4facf68f for language java from service definition [1] 2020-04-13 17:02:18.553 INFO [main] RoutesConfigurer - Loading routes from: file:/etc/camel/sources/i-source-000/HelloCamelK.java?language=java [1] 2020-04-13 17:02:18.553 INFO [main] ApplicationRuntime - Listener org.apache.camel.k.listener.RoutesConfigurer@49c386c8 executed in phase ConfigureRoutes [1] 2020-04-13 17:02:18.555 DEBUG [main] PropertiesComponent - Parsed location: /etc/camel/conf/application.properties [1] 2020-04-13 17:02:18.557 INFO [main] BaseMainSupport - Using properties from: file:/etc/camel/conf/application.properties [1] 2020-04-13 17:02:18.563 DEBUG [main] BaseMainSupport - Properties from Camel properties component: [1] 2020-04-13 17:02:18.598 DEBUG [main] RoutesConfigurer - RoutesCollectorEnabled: org.apache.camel.k.main.ApplicationRuntime$NoRoutesCollector@2f953efd [1] 2020-04-13 17:02:18.598 DEBUG [main] RoutesConfigurer - Adding routes into CamelContext from RoutesBuilder: Routes: [] [1] 2020-04-13 17:02:18.598 DEBUG [main] DefaultCamelContext - Adding routes from builder: Routes: [] ...
-
Press
Ctrl-C
to terminate logging in the terminal.
Additional resources
- For more details on the logging framework, see the Apache Log4j 2 documentation
- For details of development tools to view logging, see VS Code Tooling for Apache Camel K by Red Hat