mazzle
cnab-spec
mazzle | cnab-spec | |
---|---|---|
4 | 8 | |
83 | 939 | |
- | 0.0% | |
2.3 | 0.0 | |
7 months ago | over 1 year ago | |
Python | Shell | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mazzle
-
Shells Are Two Things
I've been experimenting with alternative pipeline syntaxes.
One example is using Graphviz graph files as an execution plan for software deployments. You can see a graph here:
https://github.com/samsquire/mazzle/blob/master/docs/archite...
I wrote code with networkx to parse this graph dot file and then follow the plan topologically, spinning up packer, terraform, bash scripts, compilation and so on. It also executes graph nodes in parallel where it can.
I talk about it here https://devops-pipeline.com/
My problem with bash pipelines is passing data along and referring to previous steps' data. You kind of need to enrich the data that goes along the pipeline.
-
Graphviz v7
I use Graphviz dot syntax to configure entire cloud computing environments in the order they must be built. This is pipelines as code and infrastructure as code
It's very powerful! Not every organisation can bring up an entire environment with one command.
Here is a executable diagram of a build worker cloud nodes, Kubernetes, consul, vault, Debian package server, Java app, SSH bastion, Prometheus, grafana, DNS and security groups.
https://github.com/samsquire/mazzle/blob/master/docs/archite...
The tool also parallelises the build based on the graph so packer builds can run in parallel.
https://devops-pipeline.com/
It also has a GUI but it's not ready for other people to use.
- Terraform v1.0 Is Out
-
Terraform 1.0 Release
I use a tool I wrote to layer my infrastructure with layers called components and I configure it with a Graphviz file.
My tool, called mazzle (previously devops-pipeline) would run parts of the graph that can run in parallel in parallel. It can also run parts of the build on SSH workers. You bring up the workers at the beginning of the build.
Here's an example of a graph generated from graphviz file: https://github.com/samsquire/mazzle/blob/master/docs/archite...
This graph brings up a hashicorp vault server, Java application, bastion proxy etc.
here's the graphviz file: https://github.com/samsquire/mazzle-starter/blob/master/arch...
It describes the ordering of the infrastructure, the invocation of Ansible, packer, shell scripts to set up vault etc.
The idea is to be able to bring up a new environment by changing one parameter. There's a React GUI too.
https://devops-pipeline.com
cnab-spec
-
No docker options
CNAB
-
Kubernetes Application Archive !! Bundle up a Kubernetes application 📦 into a single static OCI compliant archive.
Similar to https://cnab.io/ then?
-
Stronger abstraction for deployments
IMO Cloud native application bundle is what you are looking for: https://cnab.io/
-
Deployment Packaging Solutions
have you looked at CNAB ? since it uses standard OCI compliance you can have your entire application bundle on Azure registry (azure registry is OCI 2 compliant registry) and you can get more information about how to do it using ORAS cli
- Tools to Run Kubernetes Locally
-
k8s based platform
Check https://cnab.io/ and https://porter.sh/
-
Terraform 1.0 Release
I'm closely tracking an effort by Microsoft that aims to do a lot of what you're describing since I find myself bridging between these tools and deploying stacks that span tools and roles. [CNAB](https://cnab.io/) and the front-running implementation, [Porter](https://porter.sh/), enable one-step infra deployments, packaged as a single OCI-compatible container, with any number of steps, using the best tools for each of those steps. Think of using aws-cli for some initialization step (create or verify presence of a state bucket), applying some terraform to create infra, and finishing with a helm chart to complete deployment of app components. Each stage in a bundle packages not only the code to run it but also the execution binary of the tool that runs it. The spec and porter are still a moving target but it's a promising space and a nice adjacent evolution of the current state of tooling.
- Cloud Native Application Bundles Security (CNAB-SEC) 1.0.0 GA 2020
What are some alternatives?
dhall-kubernetes - Typecheck, template and modularize your Kubernetes definitions with Dhall
kapp-controller - Continuous delivery and package management for Kubernetes.
xontrib-pipeliner - Let your pipe lines flow thru the Python code in xonsh.
helm-charts - Komodor.io public helm charts
governance - Documentation and automation for the Concourse project governance model.
kubevela - The Modern Application Platform.
terraform-ls - Terraform Language Server
porter - Porter enables you to package your application artifact, client tools, configuration and deployment logic together as an installer that you can distribute, and install with a single command.
saddle-data-graph - where does it come from, where does it go?
terraform - Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
drawio-desktop - Official electron build of draw.io
kpt - Automate Kubernetes Configuration Editing