= Camel K CLI (kamel)

The Camel K command line interface, `kamel`, is the main entry point for running integrations on a Kubernetes cluster.

Releases of the Camel K CLI are available on:

- Apache Mirrors (official): https://downloads.apache.org/camel/camel-k/
- Github Releases: https://github.com/apache/camel-k/releases
- Homebrew (Mac and Linux): https://formulae.brew.sh/formula/kamel

== Available Commands

Some of the most used commands are:

.Useful Commands
[cols="1m,2,2m"]
|===
|Name |Description |Example

|help
|Obtain the full list of available commands
|kamel help

|init
|Initialize empty Camel K files (besides Java you can also do this for other languages like Groovy, Kotlin, XML, YAML)
|kamel init Routes.java

|run
|Run an integration on Kubernetes
|kamel run Routes.java

|debug
|Debug a remote integration using a local debugger
|kamel debug my-integration

|get
|Get integrations deployed on Kubernetes
|kamel get

|describe
|Get detailed information on a resource
|kamel describe integration routes

|log
|Print the logs of a running integration
|kamel log routes

|delete
|Delete integrations deployed on Kubernetes
|kamel delete routes

|===

The list above is not the full list of available commands.
You can run `kamel help` to obtain the full list.
Each command also takes the `--help` as option to output more information, e.g.:

[source,console]
----
$ kamel run --help
----

== Global Flags

While each command has a dedicated set of flags, there are global flags that are available to every command:

.Global Flags
[cols="1,2,2m"]
|===
|Flag |Description |Example

|`--kube-config PATH`
|Path to the config file to use for CLI requests
|kamel install --kube-config ~/.kube/config

|`-h` or `--help`
|Help for `kamel`, or the command
|kamel run --help

|`-n` or `--namespace NAME`
|Namespace to use for all operations
|kamel get --namespace NAME

|===

For command-specific flags, run `--help` with the command to obtain the full list, e.g.:

[source,console]
----
$ kamel <command> --help
----

== Modeline

Some command options in the CLI can be also specified as modeline in the source file, take a look at the xref:cli/modeline.adoc[Modeline] section
for more information.

[[image-registry]]
== Image Registry

The CLI can be used to xref:configuration/dependencies.adoc#local-dependencies[upload] content to the Image Registry.
To do so, the registry options need to be correctly set during xref:installation/registry/registry.adoc[installation].
If the Image Registry uses a custom certificate authority then it needs to be trusted by the CLI see
link:https://go.dev/src/crypto/x509/root_unix.go[SSL_CERT_FILE].
If the Image registry uses authentication then it should be configured correctly in `$HOME/.docker/config.json`;
see link:https://docs.docker.com/engine/reference/commandline/login/[Docker Credentials store]].
