governance
mazzle
governance | mazzle | |
---|---|---|
1 | 4 | |
67 | 83 | |
- | - | |
6.1 | 2.3 | |
3 months ago | 7 months ago | |
Go | Python | |
Apache License 2.0 | MIT License |
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.
governance
-
Terraform 1.0 Release
Terraform is such an underappreciated tool. It seems like so much of the hate surrounds HCL1 (back in Terraform before 0.12) and doesn't reflect modern Terraform.
For example, after introducing `for_each` and dynamic blocks, it's possible to nearly entirely ditch variables files and local modules, and just add more infrastructure by editing a local YAML file. The only variables your Terraform code should have should be credentials / other secrets that are not loaded from environment variables by providers. A great public example of this usage pattern is supplied by https://github.com/concourse/governance to manage their GitHub repositories.
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
What are some alternatives?
dhall-terraform - Generate dhall records from terraform resouces, data_sources & providers
dhall-kubernetes - Typecheck, template and modularize your Kubernetes definitions with Dhall
terragrunt - Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.
xontrib-pipeliner - Let your pipe lines flow thru the Python code in xonsh.
terraform-provider-spacelift - Terraform provider to interact with Spacelift
terraform-ls - Terraform Language Server
aws-cloudformation-res
saddle-data-graph - where does it come from, where does it go?
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.
drawio-desktop - Official electron build of draw.io
Pulumi - Pulumi - Infrastructure as Code in any programming language. Build infrastructure intuitively on any cloud using familiar languages 🚀
terraform-lsp - Language Server Protocol for Terraform