Giter Site home page Giter Site logo

teshel / pulumi-tf-provider-boilerplate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pulumi/pulumi-tf-provider-boilerplate

0.0 1.0 0.0 51 KB

Boilerplate code for Terraform provider-backed Pulumi packages

License: Apache License 2.0

Makefile 42.39% Go 43.70% Shell 13.90%

pulumi-tf-provider-boilerplate's Introduction

Terraform Bridge Provider Boilerplate

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).

Creating a Pulumi Terraform Bridge Provider

First, clone this repo with the name of the desired provider in place of xyz:

git clone https://github.com/pulumi/pulumi-tf-provider-boilerplate pulumi-xyz

Second, replace references to xyz 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.

Add dependencies

In order to properly build the sdks, the following tools are expected:

In the root of the repository, run:

  • go get github.com/pulumi/scripts/gomod-doccopy (Note: do not set GO111MODULE=on here)
  • GO111MODULE=on go get github.com/pulumi/pulumi-terraform@master
  • GO111MODULE=on go get github.com/terraform-providers/terraform-provider-xyz (where xyz is the name of the provider)
  • GO111MODULE=on go mod vendor
  • make ensure

Build the provider:

  • Edit resources.go to map each resource, and specify provider information
  • Enumerate any examples in examples/examples_test.go
  • make

Installing

This package is available in many languages in the standard packaging formats.

Node.js (Java/TypeScript)

To use from JavaScript or TypeScript in Node.js, install using either npm:

$ npm install @pulumi/xyx

or yarn:

$ yarn add @pulumi/xyx

Python

To use from Python, install using pip:

$ pip install pulumi_xyx

Go

To use from Go, use go get to grab the latest version of the library

$ go get github.com/pulumi/pulumi-xyz/sdk/go/...

Configuration

The following configuration points are available for the xyz provider:

  • xyz:apiKey (environment: XYZ_API_KEY) - the API key for xyz
  • xyz:region (environment: XYZ_REGION) - the region in which to deploy resources

Reference

For detailed reference documentation, please visit the API docs.

pulumi-tf-provider-boilerplate's People

Contributors

ibrasho avatar jen20 avatar justinvp avatar lukehoban avatar stack72 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.