pulumi-aws
pulumi-terraform-bridge
Our great sponsors
pulumi-aws | pulumi-terraform-bridge | |
---|---|---|
3 | 7 | |
419 | 180 | |
3.4% | 5.0% | |
9.5 | 9.7 | |
about 14 hours ago | 4 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
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-aws
-
HashiCorp Adopts Business Source License
Sure, but the providers for some of the biggest platforms are maintained by HashiCorp[1] - like the AWS, Azure, GCP, and Kubernetes providers[2], and it appears the Pulumi AWS provider (for example) _does_ use the Terraform AWS provider, even to this day[3].
1. https://developer.hashicorp.com/terraform/registry/providers... - "official" providers are maintained by HashiCorp
2. https://registry.terraform.io/browse/providers?tier=official - The filtered list of "official" providers maintained by HashiCorp
3. https://github.com/pulumi/pulumi-aws/tree/008c4360bc9fc24303... - Just prove it to myself, I can see the `upstream` git submodule, which embeds pulumi/terraform-provider-aws, which is a fork of hashicorp/terraform-provider-aws, although the repo was not created as a fork in Github, so it is not marked as a "fork" and so I have to compare commit histories to tell that it is a fork.
-
Converting Full Terraform Programs to Pulumi
>Isn't pulumi aws just terraform under the hood still?
It depends.
The AWS "Classic" provider uses the terraform provider [1].
The AWS "Native" provider does not, and instead uses the AWS Cloud Control API [2].
[1]: https://github.com/pulumi/pulumi-aws
[2]: https://github.com/pulumi/pulumi-aws-native
-
For IaC: Pulumi or Terraform?
Pulumi uses terraform providers to schematize the CRUD options for some cloud providers. Part of the difficulty with any infrastructure as code offering is that your favourite cloud provider doesn't always provide a full API spec, so we need to somehow figure out what resources can be created, what parameters are available to those resources etc. We take the terraform provider, look at the available operations for that provider and then turned it into a Pulumi schema, which can then be read by the Pulumi engine. If you take a look here you can actually see that generated schema for AWS.
pulumi-terraform-bridge
-
We are the Pulumi Engineering team - Ask us about our new products and features
GA: automatic token mapping and aliasing in the bridge, which we're now using to simplify the resources.go file in bridged providers
-
Converting Full Terraform Programs to Pulumi
Yes, pulumi is just wrapping terraform[1]. So you need to understand both the quirks of that and the quirks of pulumi. And I'm lazy so I just want to deal with one quirk at the time.
[1] https://github.com/pulumi/pulumi-terraform-bridge
-
Weird warning after running pulumi preview
After digging, I saw python libraries in my venv directory that is related to Terraform Bridge and the tool that was used to generate code - https://github.com/pulumi/pulumi-terraform-bridge
-
CDKTF
They have an open source tool that translates the TF providers into Pulumi providers, so people could continue to build updated providers - https://github.com/pulumi/pulumi-terraform-bridge
-
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
-
Is AWS Cloud Development Kit (CDK) right for you?
For provisioning infrastructure in AWS, there are other tools besides those provided by AWS themselves. This includes Terraform and Pulumi. Both of these are not tied to any particular public cloud provider, or not even to public cloud providers only. Any kind of Software-as-a-service (SaaS) provider that can provide some service or infrastructure via programming interfaces can in theory be provisioned by these tools. Terraform has a long list of providers, and Pulumi can use Terraform providers in addition to its providers.
-
For IaC: Pulumi or Terraform?
I think they might use their (pulumi-terraform-bridge)[https://github.com/pulumi/pulumi-terraform-bridge] to generate some of their provider code from the corresponding Terraform providers? (This page mentioned some of their "most interesting providers" are created like this)[https://www.pulumi.com/docs/intro/vs/terraform/#using-terraform-providers].
What are some alternatives?
terracognita - Reads from existing public and private cloud providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
Pulumi - Pulumi - Infrastructure as Code in any programming language. Build infrastructure intuitively on any cloud using familiar languages 🚀
doctl - The official command line interface for the DigitalOcean API.
terraform-ls - Terraform Language Server
humbug - Get usage metrics and crash reports for your API, library, or command line tool.
pulumi-provider-boilerplate - Boilerplate showing how to create a native Pulumi provider
pulumi-kubernetes - A Pulumi resource provider for Kubernetes to manage API resources and workloads in running clusters
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.
pulumi-eks - A Pulumi component for easily creating and managing an Amazon EKS Cluster
terraform-provider-spacelift - Terraform provider to interact with Spacelift
NATS - High-Performance server for NATS.io, the cloud and edge native messaging system.
aws-cloudformation-res