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.
|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.