[[installation]]
= Installation

Camel K allows us to run integrations directly on a Kubernetes or OpenShift cluster.
To use it, you need to be connected to a cloud environment or to a local cluster created for development purposes.

[[requirements]]
== Requirements

Camel K installation is usually straightforward, but for certain cluster types you need to apply specific configuration settings
before installing it. Customized instructions are needed for the following cluster types:

- xref:installation/platform/minikube.adoc[Minikube]
- xref:installation/platform/crc.adoc[Red Hat CodeReady Containers (CRC)]
- xref:installation/platform/gke.adoc[Google Kubernetes Engine (GKE)]
- xref:installation/platform/openshift.adoc[OpenShift]
- xref:installation/platform/iks.adoc[IBM Kubernetes Services (IKS)]
- xref:installation/platform/k3s.adoc[K3s]
- xref:installation/platform/kind.adoc[Kind]

Other cluster types (such as OpenShift clusters) should *not need* prior configuration.

NOTE: Minishift is no longer supported since Camel K 1.5.0. You can use xref:installation/platform/crc.adoc[CRC] for a local OpenShift cluster.

[[procedure]]
== Procedure

To start using Camel K you need the **"kamel"** CLI tool, that can be used to both configure the cluster and run integrations.
Look into the https://github.com/apache/camel-k/releases[release page] for the latest version of the *camel-k-client* tool for your specific platform.

Download and uncompress the archive. It contains a small binary file named `kamel` that you should put into your system path.
For example, if you're using Linux, you can put `kamel` in `/usr/bin`.

Once you have put the `kamel` CLI in the path, log into your cluster using the standard `oc` (OpenShift) or `kubectl` (Kubernetes) client tool and execute the following command to install Camel K:

[source]
----
kamel install
----

This will configure the cluster with the Camel K custom resource definitions and install the operator on the current namespace.

IMPORTANT: Custom Resource Definitions (CRD) are cluster-wide objects and you need admin rights to install them. Fortunately, this
operation can be done *once per cluster*. So, if the `kamel install` operation fails, you'll be asked to repeat it when logged as admin.
For CRC, this means executing `oc login -u system:admin` then `kamel install --cluster-setup` only for the first-time installation.

You're now ready to xref:running/running.adoc[run some integrations].

[[helm]]
== Installation via Helm

Camel K is also available in Helm Hub for installation.
Follow the instructions on the https://hub.helm.sh/charts/camel-k/camel-k[Camel K] page for more information.

[[advanced]]
== Advanced configuration

Camel K installation can be configured with certain special settings available for experienced users. You can manage resources such as limiting memory and CPU, provide a policy for `Pod` scheduling and `Toleration`. You can also configure the application to run multiple operators on the same namespace. Have a look at the "advanced" section under the "installation" menu.
