Murano Solution Template & Github CICD Integration

Github

Apply coding best practices with good branching automated test & deployment by creating a Murano template for your solution.

Code locally & push to your development branch, get direct feedback from Murano validating your scripting, service configuration & automatically update your solution testing deployment.

Table of Contents


1. Create a new repository

Create a Github repo or fork the Murano Getting started template

git clone git@github.com:exosite/getting-started-solution-template.git

The template master branch includes several examples, files, and services. If you wish to start blank, use the empty branch.

If you which to make your repository private, download the Getting Started Solution Template (ZIP), un-zip the content in your new repository folder and commit the content.

IMPORTANT Remove the /services/config.yaml file as it disables auto-deployment.


2. Connect with Murano

Add the Murano-Deploy Github App to your organization.

Murano-Deploy Github App

Then grant access to the repo created in step #1.


3. Start coding

Follow your best practices and create a development branch.

git checkout -b development

Do some modification to your solution code and learn the template structure as documented the Murano Getting started template.

echo "Adding a minor doc change" >> README.md

Then push your changes:

git commit -a -m "First commit"
git push origin development

Now go check your commit in your repository, you should see the following status:

Github status

Here all is successful in the case you have error a relevant error message would be displayed. You will also see the number of solution instance automatically updated by this change. Currently 0.


4. Setup Code review good practices

While each team has it's own requirement, we suggest you do Code-Review through a Pull request and ensure the status check is successful.

Here is how to enable it:


5. Continuous deployment

Follow the Authoring Exchange element page and input your repository name with the branch. Example: https://github.com/exosite/getting-started-solution-template/tree/development.

Then Create a new Application based on your newly created template.

Go through step #3 one more time and you should see 1 solution updated in your Github status.

Note: Any solution can disable auto-update by changing the configuration in the Solution->Services->Config tab.


Open-Source Murano templates

To get you started, have a look at some existing code.

IoT-Connector Customization & Cloud-to-Cloud integration

A common use-case is to connect devices or data input from a 3rd party platform into an Exosite Application such as Exosense. Many popular providers are already integrated for you. Just find them on Exosite Exchange IoT-Marketplace.

If your integration is missing you can create your own as we provide a template & tutorial for that purpose with following templates:


Application vs. IoT-Connector

While you can manually specify which micro-services your template is using. A Murano Solution always includes the following default services.

From those will be added depending on if you choose to create an Application or an IoT-Connector.

Application

IoT-Connector