[[creating-cluster]]
Creating a Development Cluster
==============================

There are various options for creating a development cluster:

[[minishift]]
== Minishift

You can run Camel K integrations on OpenShift using the Minishift cluster creation tool.
Follow the instructions in the https://github.com/minishift/minishift#getting-started[getting started guide] for the installation.

After installing the `minishift` binary, you need to enable the `admin-user` addon:

```
minishift addons enable admin-user
```

NOTE: the admin user addon should be enabled before starting the cluster for the first time

Then you can start the cluster with:

```
minishift start
```

You can now proceed to link:/README.adoc[install Camel K].

[[minikube]]
== Minikube

You can run Camel K integrations on plain Kubernetes using the Minikube cluster creation tool.
Follow the instructions in the https://github.com/kubernetes/minikube#installation[official doc] for the installation.

Start a new instance of Minikube using the command:

```
minikube start
```

After the startup process is completed, you need to **enable the `registry` addon**:

```
minikube addons enable registry
```

You can now proceed to link:/README.adoc[install Camel K].
