-
Notifications
You must be signed in to change notification settings - Fork 213
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updates developer docs with more helpful setup information #571
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,9 +12,9 @@ | |
- [Terraform](https://www.terraform.io/downloads.html) 0.12.x | ||
- [Go](https://golang.org/doc/install) 1.11 (to build the provider plugin) | ||
|
||
## Building The Provider | ||
## Building the Provider | ||
|
||
Clone repository to: `$GOPATH/src/github.com/terraform-providers/terraform-provider-pagerduty` | ||
Clone repository to: `$GOPATH/src/github.com/PagerDuty/terraform-provider-pagerduty` | ||
|
||
```sh | ||
$ mkdir -p $GOPATH/src/github.com/PagerDuty; cd $GOPATH/src/github.com/PagerDuty | ||
|
@@ -26,28 +26,78 @@ Enter the provider directory and build the provider | |
```sh | ||
$ cd $GOPATH/src/github.com/PagerDuty/terraform-provider-pagerduty | ||
$ make build | ||
``` | ||
|
||
## Using the provider | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This has simply been changed to "Usage" with some minor formatting changes. |
||
|
||
Please refer to https://registry.terraform.io/providers/PagerDuty/pagerduty/latest/docs for | ||
examples on how to use the provider and detailed documentation about the | ||
Resources and Data Sources the provider has. | ||
|
||
## Developing the Provider | ||
|
||
If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (version 1.11+ is *required*). You'll also need to correctly setup a [GOPATH](http://golang.org/doc/code.html#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. | ||
|
||
```sh | ||
$ make build | ||
... | ||
$ $GOPATH/bin/terraform-provider-pagerduty | ||
... | ||
``` | ||
|
||
### Testing | ||
This will build the provider and put the provider binary in the `$GOPATH/bin` directory. | ||
|
||
## Usage | ||
|
||
Please refer to Terraform docs for [PagerDuty Provider](https://registry.terraform.io/providers/PagerDuty/pagerduty/latest/docs) | ||
for examples on how to use the provider and detailed documentation about the Resources and Data Sources the provider has. | ||
|
||
## Development | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Development has been renamed from "Developing the Provider" and expanded into 4 sections:
|
||
|
||
### Setup Local Environment | ||
|
||
Before developing the provider, ensure that you have go correctly installed. | ||
|
||
* Install [Go](http://www.golang.org) on your machine (version 1.11+ is *required*). | ||
* Correctly setup a [GOPATH](http://golang.org/doc/code.html#GOPATH), as well as adding `$GOPATH/bin` to your `$PATH`. | ||
|
||
### Setup Local PagerDuty Provider | ||
|
||
Make changes to the PagerDuty provider and post a pull request for review. | ||
|
||
1. [Create a fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) of the **upstream** repository `https://github.com/PagerDuty/terraform-provider-pagerduty` | ||
2. Clone the new **origin** repository to your local go src path: `$GOPATH/src/github.com/<your-github-username>/terraform-provider-pagerduty` | ||
3. optionally make development easier by setting the [**upstream**](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-for-a-fork) repository | ||
``` | ||
$ git remote add upstream git@github.com:PagerDuty/terraform-provider-pagerduty.git | ||
``` | ||
4. Make any changes on your local machine and post a PR to the **upstream** repository | ||
|
||
### Run Dev Build with Local Terraform Module | ||
|
||
> Note: Development overrides work only in Terraform v0.14 and later. Using a dev_overrides block in your CLI configuration will cause Terraform v0.13 to reject the configuration as invalid. | ||
|
||
1. Build the provider with your latest changes. (See [Building the Provider](https://github.com/PagerDuty/terraform-provider-pagerduty#building-the-provider)) | ||
2. Override the pagerduty provider with your local build. (See [Development Overrides for Provider Developers](https://www.terraform.io/cli/config/config-file#development-overrides-for-provider-developers)) | ||
* Create the file `$HOME/.terraformrc` and paste the following content into it. Be sure to change the path to wherever your binary is located. It is currently set to the default for go builds. | ||
```terraform | ||
provider_installation { | ||
dev_overrides { | ||
"pagerduty/pagerduty" = "/<ABSOLUTE_PATH_TO>/<YOUR_HOME_PATH>/go/bin" | ||
} | ||
direct {} | ||
} | ||
``` | ||
3. Goto a local terraform module and start running terraform. (See [Using the Provider](https://github.com/PagerDuty/terraform-provider-pagerduty#using-the-provider)). You may need to first install the latest module and provider | ||
versions allowed within the new configured constraints. Verify with the below warning message. | ||
```sh | ||
$ terraform init -upgrade | ||
$ terraform plan | ||
... | ||
│ Warning: Provider development overrides are in effect | ||
``` | ||
4. See `api_url_override` from Terraform docs for [PagerDuty Provider](https://registry.terraform.io/providers/PagerDuty/pagerduty/latest/docs#argument-reference) to set a custom proxy endpoint as PagerDuty client api url overriding service_region setup. | ||
|
||
### Setup local logs | ||
|
||
1. See [Debugging Terraform](https://www.terraform.io/internals/debugging). Either add this to your shell's profile | ||
(example: `~/.bashrc`), or just execute these commands: | ||
``` | ||
export TF_LOG=trace | ||
export TF_LOG_PATH="/PATH/TO/YOUR/LOG_FILE.log" | ||
``` | ||
2. stream logs | ||
``` | ||
$ tail -f /PATH/TO/YOUR/LOG_FILE.log | ||
``` | ||
|
||
## Testing | ||
|
||
In order to test the provider, you can simply run `make test`. | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This provider path does not exist: https://github.com/terraform-providers/terraform-provider-pagerduty