terraform-provider-nautobot/README.md

78 lines
2.0 KiB
Markdown

# Terraform Provider Nautobot
Nautobot provider created for educational purposes. You can fork it for long-term development :-)
## Requirements
- [Terraform](https://www.terraform.io/downloads.html) >= 0.13.x
- [Go](https://golang.org/doc/install) >= 1.19
## Building The Provider
1. Clone the repository
2. Enter the repository directory
3. Build the provider using the `make` command:
```sh
$ make install
```
## Adding Dependencies
This provider uses [Go modules](https://github.com/golang/go/wiki/Modules).
Please see the Go documentation for the most up-to-date information about using Go modules.
To add a new dependency `github.com/author/dependency` to your Terraform provider:
```
go get github.com/author/dependency
go mod tidy
```
Then commit the changes to `go.mod` and `go.sum`.
## Using the provider
The provide takes two arguments, `url` and `token`. For the data sources and resources supported, take a look at the [internal/provider](internal/provider) folder. In the next example, we capture the data of all manufacturers and create a new manufacturer "Vendor I".
```hcl
terraform {
required_providers {
nautobot = {
version = "0.3.2"
source = "nleiva/nautobot"
}
}
}
provider "nautobot" {
url = "https://demo.nautobot.com/api/"
token = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
data "nautobot_manufacturers" "all" {}
resource "nautobot_manufacturer" "new" {
description = "Created with Terraform"
name = "Vendor I"
}
```
## Developing the Provider
If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (see [Requirements](#requirements) above).
There are a few make tagets you can leverage you can leverage:
- `make install`: To compile the provider.
- `go generate ./...`: To generate or update documentation.
- `make local`: Test local version of the provider.
- `make testacc`: To run the full suite of Acceptance tests.
*Note:* Acceptance tests create real resources, and often cost money to run.
```sh
$ make testacc
```