pulumi/sdk/go
Fraser Waters 8446f2208c Allow mapping requests to install plugins
Enabling fix for https://github.com/pulumi/pulumi-terraform-bridge/issues/1130

This adds two new bits of logic to the plugin mapper.

Firstly when getting a mapping request for a given package X, as well as
searching to see if we have an X plugin already installed to call it's
`GetMapping` method first, we now also try to install X if we don't
already have it. The install failing is not considered an error, we'll
just try the other plugins to see if they map and then possibly return
empty (as before).

Secondly the converter can pass a hint to what the pulumi plugin for the
ecosystem plugin is. If no hint is given we assume the pulumi plugin
name is the same as the ecosystem name. But this can be used for example
in the terraform converter to tell the engine that for example the
terraform provider "azurerm" is called "azure" in pulumi.

The hint is just a hint, if the name doesn't match all the other plugins
will be searched as before.
2023-05-29 14:53:04 +01:00
..
auto Merge #12990 2023-05-22 19:10:54 +00:00
common Merge #13030 2023-05-26 05:26:03 +00:00
pulumi Fix race condition in go/generate function. 2023-05-04 07:42:08 -04:00
pulumi-language-go Allow mapping requests to install plugins 2023-05-29 14:53:04 +01:00
Makefile Fix makefiles 2023-05-26 11:00:45 +01:00
README.md `pulumi update` => `pulumi up` (#2702) 2019-05-06 14:00:18 -07:00

README.md

Pulumi Golang SDK

This directory contains support for writing Pulumi programs in the Go language. There are two aspects to this:

  • pulumi/ contains the client language bindings Pulumi program's code directly against;
  • pulumi-language-go/ contains the language host plugin that the Pulumi engine uses to orchestrate updates.

To author a Pulumi program in Go, simply say so in your Pulumi.yaml

name: <my-project>
runtime: go

and ensure you have pulumi-language-go on your path (it is distributed in the Pulumi download automatically).

By default, the language plugin will use your project's name, <my-project>, as the executable that it loads. This too must be on your path for the language provider to load it when you run pulumi preview or pulumi up.