Endjin - Home

Introducing the Azure CNAB Quickstarts Library

by Mike Larah

Azure CNAB Quickstarts Library

Over the last few months, endjin have been working together with Microsoft to create the Azure CNAB Quickstarts Library in GitHub.

CNAB (Cloud-Native Application Bundle) is a new specification designed for facilitating the bundling, installing and managing of cloud-native or distributed apps. It provides you with a way to containerise your installation process, and easily deploy & share your entire solution across any cloud, on-prem, or at the edge.

We’re excited about CNAB as it offers a much needed abstraction for defining all the required artefacts and steps to install your applications, bringing together whatever multitude of tools, their pre-requisites, and the runbooks required.

As an example, you could be creating cross-cloud PaaS infrastructure with the Azure and AWS CLIs, deploying your container images to a Kubernetes cluster with Helm, and configuring your application with Bash and PowerShell scripts; it is to distributed solutions what MSIs are to Windows applications.

We created the Quickstarts Library so that the community can discover and use bundles for deploying applications and solutions, learn how to create their own bundles, and contribute back to the library. The library is designed to be optimized for bundles that use Azure resources, but is not limited to Azure only.

We’ve built a CI/CD workflow in the repository using custom GitHub Actions to enable automatic building of bundles and publishing of bundles to a public Azure Container Registry. The custom actions can be found in this GitHub repository if you are interested in how the workflow works or want to use the actions in your own workflow.

Currently the library supports bundles made using Porter, which is a tool implementing the CNAB spec, capable of building, publishing, invoking, and updating bundles.

We’re launching the library with the following bundles, and hope to see more contributions over the next few months, both from internal teams and the community.

Bundle Description
airflow Installs Apache Airflow on your Kubernetes cluster
aks Deploys Azure Kubernetes Service (AKS)
aks-aad-oauth-proxy Installs an OAuth2 Proxy into your AKS cluster, configured with Azure Active Directory
aks-nginx-ingress Installs an nginx ingress controller on your AKS cluster
dapr Installs Dapr on your Kubernetes cluster
ghost Installs Ghost on your Kubernetes cluster
kubeflow Installs KubeFlow on your Kubernetes cluster
mattermost-team-edition Installs Mattermost Team Edition on your Kubernetes cluster
pi-k-three-s Sets up Kubernetes and Tiller on a Raspberry Pi cluster using k3s
sql-server-always-on-aks Installs and configures SQL Server Always On on a new AKS cluster
wordpress Installs WordPress on your Kubernetes cluster

Keep an eye on our blog for a video explaining more about CNAB, Porter, and the Quickstarts Library, and check out the library to get started.

About the author

Mike is a Software Engineer at endjin with 7 years of experience in solving business problems with technology. He has worked on a wide range of projects for clients across industries such as financial services, recruitment, and retail, with a strong focus on Azure technologies.