Camel K Operator fine tuning

Camel K Operators offers several possibility of customization. The default installation could be good in the most of the cases, but, we have a series of configuration that can be applied when you want to fine tune your Camel K operator and get the very best of it. The following settings will work for an installation via kamel CLI, but the same configuration could be done with the other installation procedures by applying the required changes on the related configuration files.

changing some of the following configuration may affect the behavior of your Camel K Operator. Make sure to understand how to properly tune each configuration.

Operator configuration

The operator installation can be customized by using the following parameters:

--operator-env-vars stringArray               Add an environment variable to set in the operator Pod(s), as <name=value>
-x, --operator-id string                      Set the operator id that is used to select the resources this operator should manage (default "camel-k")
--operator-image string                       Set the operator Image used for the operator deployment
--operator-image-pull-policy string           Set the operator ImagePullPolicy used for the operator deployment
--skip-cluster-setup                          Skip the cluster-setup phase
--skip-default-kamelets-setup                 Skip installation of the default Kamelets from catalog
--skip-operator-setup                         Do not install the operator in the namespace (in case there's a global one)
--skip-registry-setup                         Skip the registry-setup phase (may negatively impact building of integrations)

The above parameters are helpful to change the default Camel K operator configuration or to partially skip certain advanced configuration resources.

Resource management

We provide certain configuration to better "operationalize" the Camel K Operator:

--node-selector stringArray                   Add a NodeSelector to the operator Pod
--operator-resources stringArray              Define the resources requests and limits assigned to the operator Pod as <requestType.requestResource=value> (i.e., limits.memory=256Mi)
--toleration stringArray                      Add a Toleration to the operator Pod

More detailed information on the resource management page.

Build configuration

We have several configuration used to influence the building of an integration:

--base-image string                           Set the base Image used to run integrations
--build-publish-strategy string               Set the build publish strategy
--build-publish-strategy-option stringArray   Add a build publish strategy option, as <name=value>
--build-strategy string                       Set the build strategy
--build-order-strategy string                 Set the build order strategy
--build-timeout string                        Set how long the build process can last
--max-running-pipelines int                   Maximum number of parallel running pipelines

A very important set of configuration you can provide is related to Maven:

--maven-ca-secret string                      Configure the secret key containing the Maven CA certificates (secret/key)
--maven-cli-option stringArray                Add a default Maven CLI option to the list of arguments for Maven commands
--maven-extension stringArray                 Add a Maven build extension
--maven-local-repository string               Path of the local Maven repository
--maven-property stringArray                  Add a Maven property
--maven-repository stringArray                Add a Maven repository
--maven-settings string                       Configure the source of the Maven settings (configmap|secret:name[/key])

You can learn more in details in the Maven configuration page.

Publish configuration

Camel K requires a container registry where to store the applications built. These are the main configurations:

--organization string                         A organization on the Docker Hub that can be used to publish images
--registry string                             A container registry that can be used to publish images
--registry-auth-file string                   A container registry configuration file containing authorization tokens for pushing and pulling images
--registry-auth-password string               The container registry authentication password
--registry-auth-server string                 The container registry authentication server
--registry-auth-username string               The container registry authentication username
--registry-insecure                           Configure registry access in insecure mode or not (`http` vs `https`)
--registry-secret string                      A secret used to push/pull images to the container registry

We have a dedicated section to explain more in details how to configure a registry.

Monitoring

Camel K Operator provides certain monitoring capabilities. You can change the default settings:

--health-port int                             The port of the health endpoint (default 8081)
--monitoring                                  To enable or disable the operator monitoring
--monitoring-port int                         The port of the metrics endpoint (default 8080)
--log-level string                            The level of operator logging (default - info): info or 0, debug or 1 (default "info")

You can learn more about how to monitor Camel K Operator.

Debugging

Camel K offers the possibility to execute debugging on the same operator program. Here is the list of settings available:

--debugging                                   To enable or disable the operator debugging
--debugging-path string                       The path to the kamel executable file (default "/usr/local/bin/kamel")
--debugging-port int                          The port of the debugger (default 4040)

Installation topology

We have also certain configuration that let you control how to deploy your Camel K Operator(s):

--global                                      Configure the operator to watch all namespaces. No integration platform is created. You can run integrations in a namespace by installing an integration platform: 'kamel install --skip-operator-setup -n my-namespace'
--operator-id string                          Set the operator id that is used to select the resources this operator should manage (default "camel-k")

Learn more about Camel K multi-tenancy.

OLM Specific parameters

OLM is one of the methodology and we have a few handy parameters to customize it:

--olm                                         Try to install everything via OLM (Operator Lifecycle Manager) if available (default true)
--olm-channel string                          Name of the Camel K channel in the OLM source or marketplace
--olm-global-namespace string                 A namespace containing an OperatorGroup that defines global scope for the operator (used in combination with the --global flag)
--olm-operator-name string                    Name of the Camel K operator in the OLM source or marketplace
--olm-package string                          Name of the Camel K package in the OLM source or marketplace
--olm-source string                           Name of the OLM source providing the Camel K package (defaults to the standard Operator Hub source)
--olm-source-namespace string                 Namespace where the OLM source is available
--olm-starting-csv string                     Allow to install a specific version from the operator source instead of latest available from the channel

Have a look at OLM installation procedure.