Giter VIP home page Giter VIP logo

terraform-provider-ns1's Introduction

NS1 Terraform Provider

This project is in active development.

Contents

  1. Upgrading from Terraform 0.12 - considerations when upgrading from previous versions of Terraform
  2. Requirements - lists the requirements for building the provider
  3. Building The Provider - lists the steps for building the provider
  4. Using The Provider - details how to use the provider
  5. Developing The Provider - steps for contributing back to the provider
  6. Known Isssues/Roadmap - check here for some of the improvements we are working on

Upgrading from Terraform 0.12

In preperation for the 0.13 release of Terraform, this repo has recently changed locations from the Hashicorp GitHub org to one owned by NS1.

As a result, in order to upgrade an existing config and state to Terraform 0.13 and use NS1 provider v1.8.5 and above, you'll need to update your config's required_providers block to point to the new location.

The 0.13upgrade tool will display a warning suggesting as much, but will not enforce this or automatically update your config.

Note that this block is only required if updating an existing state from 0.12 or below. Fresh deployments via Terraform 0.13 or above will automatically detect the new location of the provider.

Here is an example required_providers block enforcing the new location of this provider and Terraform 0.13 or greater:

terraform {
  required_providers {
    ns1 = {
      source = "ns1-terraform/ns1"
    }
  }
  required_version = ">= 0.13"
}

Requirements

  • Terraform 0.13+
  • Go 1.12+ (to build the provider plugin)

Building The Provider

Clone repository to: $GOPATH/src/github.com/ns1-terraform/terraform-provider-ns1

$ mkdir -p $GOPATH/src/github.com/ns1-terraform
$ cd $GOPATH/src/github.com/ns1-terraform
$ git clone [email protected]:ns1-terraform/terraform-provider-ns1.git

Enter the provider directory and build the provider

$ cd $GOPATH/src/github.com/ns1-terraform/terraform-provider-ns1
$ make build

Using The Provider

The documentation and examples for NS1 Resources and Data Sources is maintained as part of this repository, in the /website directory. This is published to registry.terraform.io/providers/ns1-terraform/ns1/latest/docs as part of the release process.

Developing The Provider

If you wish to work on the provider, you'll first need Go installed on your machine (version 1.12+ is required). You'll also need to correctly setup a GOPATH, as well as adding $GOPATH/bin to your $PATH.

To compile the provider, run make build. This will build the provider and put the provider binary in the $GOPATH/bin directory.

$ make bin
...
$ $GOPATH/bin/terraform-provider-ns1
...

In order to test the provider, you can simply run make test.

$ make test

In order to run the full suite of Acceptance tests, run make testacc.

Note: Acceptance tests create real resources, and often cost money to run.

$ make testacc

Some helpful things for debugging:

  • Set TF_LOG=DEBUG for verbose logging.
  • Additionally set NS1_DEBUG environment variable to include details of the API requests in the logs.

Contributions

Pull Requests and issues are welcome. See the NS1 Contribution Guidelines for more information.

Known Issues/Roadmap

  • Currently, some arguments marked as required in resource documentation are de-facto optional. A resource will be created/updated without error, but in general will lead to a "dirty terraform" state, since the defaulted attributes on the returned state may not match the resource descriptions. We're working on making these either truly Required or truly Optional as appropriate.
  • Currently, some resources do not return attributes for optional features that are unused. We are working on making the resource schemas fixed, with proper defaults returned for optional/unused features.

terraform-provider-ns1's People

Contributors

zach-johnson avatar eravin-ns1 avatar mburtless avatar alistanis avatar grubernaut avatar caiofayres avatar xaf avatar jfarrell-ns1 avatar appilon avatar natedaly avatar radeksimko avatar zahiar avatar seddarj avatar pcatalini avatar pashap avatar stack72 avatar epelkey avatar siwyd avatar tombuildsstuff avatar mobarzanek avatar decarvalhorobinson avatar dghermanns1 avatar rupa avatar mioi avatar lvfrazao avatar sam-caldwell avatar mbfrahry avatar tshougrakpam avatar sergey-kreytor avatar dependabot[bot] 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.