This repository contains boilerplate code for building a new Pulumi provider which wraps an existing Terraform provider, if the existing provider uses Go Modules.
Modify this README to describe:
- The type of resources the provider manages
- Add a build status image from Travis at the top of the README
- Update package names in the information below
- Add any important documentation of concepts (e.g. the "serverless" components in the AWS provider).
Note: Go 1.12 is needed to build Pulumi providers using Go Modules. Currently, we recommend pinning the version in .travis.yml
to 1.12.1
to work around an issue with running later versions on Travis CI.
First, clone this repo with the name of the desired provider in place of rabbitmq
:
git clone https://github.com/pulumi/pulumi-tf-provider-boilerplate pulumi-rabbitmq
Second, replace references to rabbitmq
with the name of your provider:
make prepare NAME=foo REPOSITORY=github.com/pulumi/pulumi-foo
Next, list the configuration points for the provider in the area of the README.
Note: If the name of the desired Pulumi provider differs from the name of the Terraform provider, you will need to carefully distinguish between the references - see https://github.com/pulumi/pulumi-azure for an example.
In order to properly build the sdks, the following tools are expected:
- tf2pulumi (See the project's README for installation instructions: https://github.com/pulumi/tf2pulumi)
- pandoc (
brew install pandoc
)
In the root of the repository, run:
go get github.com/pulumi/scripts/gomod-doccopy
(Note: do not setGO111MODULE=on
here)GO111MODULE=on go get github.com/pulumi/pulumi-terraform@master
GO111MODULE=on go get github.com/terraform-providers/terraform-provider-rabbitmq
(whererabbitmq
is the name of the provider)GO111MODULE=on go mod vendor
make ensure
- Edit
resources.go
to map each resource, and specify provider information - Enumerate any examples in
examples/examples_test.go
make
This package is available in many languages in the standard packaging formats.
To use from JavaScript or TypeScript in Node.js, install using either npm
:
$ npm install @pulumi/xyx
or yarn
:
$ yarn add @pulumi/xyx
To use from Python, install using pip
:
$ pip install pulumi_xyx
To use from Go, use go get
to grab the latest version of the library
$ go get github.com/pulumi/pulumi-rabbitmq/sdk/go/...
The following configuration points are available for the rabbitmq
provider:
rabbitmq:endpoint
(Required) The HTTP URL of the management plugin on the RabbitMQ server. The RabbitMQ management plugin must be enabled in order to use this provder. Note: This is not the IP address or hostname of the RabbitMQ server that you would use to access RabbitMQ directly.rabbitmq:username
- (Required) Username to use to authenticate with the server.rabbitmq:password
- (Optional) Password for the given user.rabbitmq:insecure
- (Optional) Trust self-signed certificates.rabbitmq:cacert_file
- (Optional) The path to a custom CA / intermediate certificate.
For detailed reference documentation, please visit the API docs.