== Camel Clustered Route Controller Example Spring Boot

This example shows how to work with a simple Apache Camel application using Spring Boot and a Master component.

=== How to run in local

1. build the project:

    mvn clean package

2. Then run the first camel node:

    mvn spring-boot:run

3. in a separate shell, run the second camel node:

    mvn spring-boot:run

=== How to run on OpenShift cluster

1. create openshift project:

    oc new-project camel-master

2. create dedicated service account:

    oc create sa camel-sa

3. create project role to manage leases:

    oc create role camel-leases --verb=get,list,watch,create,update,patch,delete --resource=leases -n camel-master

4. create project role to manage pods:

    oc create role camel-pods --verb=get,list,watch,create,update,patch,delete --resource=pods -n camel-master

5. add roles to service account:

    oc policy add-role-to-user camel-leases -z camel-sa -n camel-master --role-namespace camel-master

    oc policy add-role-to-user camel-pods -z camel-sa -n camel-master --role-namespace camel-master

6. run the build and deploy using profile `openshift`:

    mvn clean package -Popenshift


the generated deployment config will scale to 2 pods so that we can verify that only one will be the cluster leader, so it will be the only one consuming the message

=== Help and contributions

If you hit any problem using Camel or have some feedback, then please
https://camel.apache.org/support.html[let us know].

We also love contributors, so
https://camel.apache.org/contributing.html[get involved] :-)

The Camel riders!
