pulumi-tf-provider-boilerplate
mazzle
pulumi-tf-provider-boilerplate | mazzle | |
---|---|---|
3 | 4 | |
68 | 83 | |
- | - | |
6.1 | 2.3 | |
13 days 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.
pulumi-tf-provider-boilerplate
-
We are the Pulumi Engineering team - Ask us about our new products and features
I'm interested in how to take existing high-quality Terraform Providers and convert them into Pulumi providers. Can you discuss the future roadmap for this project and any others around this effort.
-
What's missing in Pulumi?
The documentation on https://github.com/pulumi/pulumi-tf-provider-boilerplate would benefit from more examples and further explanation. I had to reverse engineer the pulumi-aws provider to be able to wrap an existing TF provider.
-
Terraform 1.0 Release
> If Pulumi didn't bless it, it doesn't exist in Pulumi's world.
That has not been my experience. I have personally ported a Sentry TF provider into Pulumi, and I will grant you that their docs and examples are bordering on active user hatred for exercising the process, but it does work:
https://github.com/pulumi/pulumi-terraform-bridge#adapting-a...
https://github.com/pulumi/pulumi-tf-provider-boilerplate#rea...
What mystifies me about that situation is that I do actually appreciate the amount of silliness that is required to avoid using Pulumi cloud: they are not financially incentivized to make that easy, but I'd guess a lot more folks would nope right out if they didn't make it possible
However, I would think they'd want to make ingesting a TF provider into Pulumi as smooth and reliable as possible, so they don't have people close their browser tab when they don't find a supported provider for Pulumi but it exists in TF
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?
civo-production-ready-kubernetes - The repository for the CIVO Navigate talk: How To Build A Production Ready Kubernetes
dhall-kubernetes - Typecheck, template and modularize your Kubernetes definitions with Dhall
aws-cloudformation-resource-providers-rds - The CloudFormation Resource Provider Package For Amazon Relational Database Service
xontrib-pipeliner - Let your pipe lines flow thru the Python code in xonsh.
pulumi-aws-native - AWS Native Provider for Pulumi
governance - Documentation and automation for the Concourse project governance model.
terraform-lsp - Language Server Protocol for Terraform
terraform-ls - Terraform Language Server
cnab-spec - Cloud Native Application Bundle Specification
saddle-data-graph - where does it come from, where does it go?
drawio-desktop - Official electron build of draw.io