pulumi/sdk/go
Thomas Gummerer afcdb34918
add NewPluginSpec helper function (#17798)
We want to be able to get plugins from arbitrary git repositories. To do
this, we need to parse the URL we get passed, so we can resolve it
properly.

Introduce a new NewPluginSpec helper to do that, so we can use it
consistently throughout the codebase.

Also extend this method to recognize such plugin names, and deal with
them appropriately, setting the `PluginDownloadURL`, and specifying that
this is a remote plugin.

Note that we also need to mangle the names slightly, as `/` will create
new subfolders on the filesystem, which doesn't work well with our
current plugin detection mechanisms. Rather than trying to make that
work, replace them with `_`, which currently cannot be used in plugin
names, and thus are safe to re-use here.

This is the first step towards allowing users to specify git
repositories as plugins.
2025-01-02 11:38:44 +00:00
..
auto auto/go: interrupt programs gracefully on context cancel (#18124) 2025-01-02 11:38:28 +00:00
common add NewPluginSpec helper function (#17798) 2025-01-02 11:38:44 +00:00
internal Add OutputWithDependencies (#17856) 2024-11-26 09:53:24 +00:00
property Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
pulumi Ignore DependsOn for direct form invokes instead of raising an error (#18089) 2024-12-20 16:40:43 +00:00
pulumi-internal/netutil try to choose a consistent port for debugging (#17271) 2024-09-18 10:06:17 +00:00
pulumi-language-go Changelog and go.mod updates for v3.144.1 (#18099) 2024-12-21 02:00:20 +00:00
pulumix Enable goheader rule and add missing license headers (#15473) 2024-09-09 12:05:45 +00:00
Makefile sdk/go: fix test_fast Makefile target (#16811) 2024-07-26 10:25:04 +00: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.