Catalog Recipes

Introduction


Catalog Recipes provide the ability to standardize deployment on multiple technologies and across multiple cloud providers.

Recipes contains instructions about ISO images, ports, volumes, environment variables, commands and arguments to execute which are needed when creating a virtual machine layer or a container.

By Default, SOAJS comes equipped with a list of all ready made recipes but also gives you the ability to extend it and create your own.

Recipes are visualized via this module and categorized by Type and Category.

In addition, the Clouds & Deployments module also uses the same visualization to render and categories all deployed containers and virtual machines accordingly.





1. List catalog recipes


On fresh installation, this page will be showing 4 types of recipes: service - daemon - server and cluster. Each type contains one group of recipes at least. In each category, you will found one locked catalog.

The lock means that this is a template recipe which could be used to create new recipes with some custom changes pending on the user need.

The unlocked recipes means that is editable.

The 2 unlocked recipes representing the default recipes that were used by the installer upon installing SOAJS Dashboard for the first time are: Dashboard Nginx RecipeDashboard Service Recipe

  • Dashboard nginx recipe was used to deploy Nginx in the dashboard environment
  • Dashboard service recipe was used to deploy services: urac - oauth - controller - dashboard

On the run, this page will show you the latest version of all the recipes.


1.1 View recipes

Every catalog can be viewed when pressing on the view button. The recipe will open in a read only mode where you can check its properties within a form.

1.2 Edit or delete recipes 

All catalog recipes can be edited or deleted if they are not locked.

While editing a recipe, a modal opens up, similar to the one opened when adding a recipe, containing the recipe.

Every time you modify a recipe, the catalog creates a copy of the old configuration, takes the new updates and generate a new version from them. The old version is then sent to show up under tab Previous versions whereas the latest version is displayed in the main tab.

Before deleting a recipe, make sure you are not using it in any deployment.

1.3 List Previous Versions

This tab contains all the previous versions of every catalog recipe. You can view it or delete it.



2. How to create a recipe


Click on Add New Recipe, choose between Use Existing Template and Start from blank template.

nginx recipe

When creating an nginx recipe to deploy a new environment, make sure to set the published port different than 80.

Port 80 is used by Dashboard nginx which is the default recipe created on the installation, so it will resolve to a conflict.

2.1 Using an existing template

If you choose Use Existing Template, pick one of the existing template, make your custom changes, save and it's ready to be used.

The existing templates are grouped by types: service - daemon - server and cluster.

In the service section you will find the following categories: Service recipe - Nodejs Recipe - Java recipe - Dashboard Service Recipe - TIDBIT Nodejs Recipe and TIDBIT Java Recipe.

In the daemon section you will find the following categories: Daemon Recipe.

In the server section you will find the following categories: Nginx Recipe and Dashboard Nginx Recipe. 

In the cluster section you will find the following categories: Mongo Recipe and Elasticsearch Recipe.

You can use any existing recipe as it is, or make some changes on it.

For example : You can use the Nginx recipe to create another Nginx recipe to deploy DEV environment. Just change the name, description, the published port (in case of Docker swarm) and you are ready to go!!

2.2 Starting from blank template

If you choose Start from blank template, a clean copy will be created with all the possible properties.

First, pick a recipe type from the dropdown list: service - daemon - server - cluster - CDN - system and other.

Then pick the category of your recipe and click on proceed. A modal will open containing all the properties to fill.

The modal is divided to three sections: general information - deploy options and build options.

General Information:

In this section, specify the recipe name and description. The type and category are already there.

Deploy Options:

In this section, fill the information of the following options: image - repositories - readiness probe - restart policy - container - voluming - exposed ports and optional labels.

Build Options:

In this section, you can add any special commands to run once the service is created. In addition, you can add environment variables for your custom use.



3. Catalog Recipes Explanation


Now after we got threw the Catalog Recipes functionality in the dashboard UI, if you like to go deeper and learn more about it's properties, click here.