-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Official "build environment" image for building new Pulumi providers #111
Comments
cc @stack72 |
Hi @christophermaier . This request sounds like something we'd be able to accept in one form or another.
I'm moving this issue to the Docker Container repo. |
@RobbieMcKinstry Sorry for the delay; yes, I'd be happy to submit a PR with this. Looking at the existing Dockerfiles here, it looks like the most direct path forward would be to add an additional build target to the all-in-one Thanks! |
I think that works for us! Please be aware of this open issue that will result in CI build failures. Thanks very much for offering your assistance! :) |
Adds a new `build-environment` target to the all-in-one Pulumi Dockerfile, which adds `pulumictl`, `golangci-lint`, and `goreleaser` to encapsulate the tools needed to build a Terraform-boilerplate-based Pulumi provider, as laid out in https://github.com/pulumi/pulumi-tf-provider-boilerplate. Fixes pulumi#111 (see that issue for further background and rationale). Signed-off-by: Christopher Maier <[email protected]>
Adds a new `build-environment` target to the all-in-one Pulumi Dockerfile, which adds `pulumictl`, `golangci-lint`, and `goreleaser` to encapsulate the tools needed to build a Terraform-boilerplate-based Pulumi provider, as laid out in https://github.com/pulumi/pulumi-tf-provider-boilerplate. Fixes pulumi/pulumi-docker-containers#111 (see that issue for further background and rationale). Signed-off-by: Christopher Maier <[email protected]> Signed-off-by: Christopher Maier <[email protected]>
Hello!
Issue details
I'm currently in the process of converting a handful of Terraform providers to Pulumi providers, using the pulumi-tf-provider-boilerplate as a starting point.
In order to avoid having to install Go, NodeJS, .NET, and Python runtimes in my CI agents1, I'm running build steps in a container that has them all. Naturally, I started with the official
pulumi/pulumi
image since it has all that already. However, this image does not have everything needed for building providers and SDKs, as currently implemented in thepulumi-tf-provider-boilerplate
repository. In particular, it is missingpulumictl
,golangci-lint
, andgoreleaser
. Additionally, thepulumi/pulumi
image is clearly intended for runningpulumi
(itsENTRYPOINT
ispulumi
), and thus requires additional modifications in order to be used as a build container in CI environments (or on developer workstations, though that is not my personal concern in this issue at this time).For my own use, I have created the following
Dockerfile
:It would be useful to have an official image along these lines, however, as I feel this would make it easier for people to contribute new Pulumi providers, and would not require everyone to "reinvent the wheel". This is particularly true for developers that may not have familiarity with some of the language ecosystems that Pulumi works in (at my company, we work with Python and NodeJS, but not Go or .NET, for instance). Such an image need not be the existing
pulumi/pulumi
image (these seem like related, but distinct usecases, after all), or even based on it; I simply took this approach for expediency.Thanks! 🙇
Footnotes
While I am aware of the Github Action workflows that Pulumi has set up for these kind of providers, which obviate the need for build containers like this, not everyone uses (or wants to use) Github Actions, so a more platform-agnostic solution would help with broader adoption. We use Buildkite for CI, for what it's worth, though other CI platforms would have similar needs. ↩
The text was updated successfully, but these errors were encountered: