[BETA] Deploying to Rancher

WARNING! This is a new sub-generator, of BETA quality. Use it at your own risk! Feedback is highly welcome!

This sub-generator allows deployment of your JHipster application to Rancher.

Limitations

  • Cassandra and Mongo cluster are not supported for now.

Pre-requisites

You have to install:

You must have a Docker registry. If you don’t have one, you can use the official Docker Hub

Running the sub-generator

To generate config files for Rancher, run this command in a new folder:

jhipster rancher-compose

Then answer all the questions to deploy your application.

Which type of application would you like to deploy?

Your type of application depends on whether you wish to deploy a microservices architecture or classical applications.

Enter the root directory where your applications are located

Enter the path.

Which applications do you want to include in your Rancher configuration?

Select your applications.

Do you want to setup monitoring for your applications ?

Deploy JHipster Console or Prometheus to do monitoring on your application

Enter the admin password used to secure the JHipster Registry admin

This question is only displayed if you choose microservices architecture.

Would you like to enable rancher load balancing support?

Activate Load balancing service on Rancher. It will only bind your gateway application and map port 80 to your gateway port (by default 8080).

What should we use for the base Docker repository name?

If you choose Docker Hub as main registry, it will be your Docker Hub login.

What command should we use for push Docker image to repository?

The default command to push to Docker Hub is docker push For example, if you use the Google Cloud to host your Docker images, it will be: gcloud docker push

Updating your deployed application

Preparing a new deployment

When your application is already deployed, you can re-deploy it by building a new Docker image:

./mvnw package -Pprod -DskipTests dockerfile:build

Or when using gradle:

./gradlew -Pprod bootRepackage buildDocker -x test

Pushing to your Docker registry (Docker Hub)

Tag locally your image:

docker tag application username/application

Push your image to Docker Hub:

docker push username/application

Generating your Rancher configuration

Create rancher folder on root folder

mkdir rancher

Go to it and generate yout rancher configuration

cd rancher
jhipster rancher-compose

Follow instruction and answer all questions. You will then have to new files docker-compose.ymland rancher-compose.yml.

Use local configuration for Config server

On same folder as your rancher configuration you should have a directory with name registry-config-sidekick when using a registry.

This sidekick allow you to use a local configuration file (located inside the directory) for the deployed config server instance compare to GIT method.

To use it, you need to build this image and deploy it to the same registry as your previous built image.

cd registry-config-sidekick
docker build -t username/registry-config-sidekick .
docker push username/registry-config-sidekick

Configuration files will be included into this image and then the Config Server instance will be able to map those files and use them.

Deploying to your Rancher server

Once all your images have been pushed into your registry, you will be able to create your Stack on your Rancher server and use both your docker-compose configuration and the rancher-compose one.

By default rancher-compose deploy only one instance of each service for performance purpose.

More information