Requirements
- Terraform > 0.12.x
- Go > 1.15 (to build the provider plugin)
Building The Provider
Clone repository to: $GOPATH/src/github.com/draios/terraform-provider-sysdig
$ git clone git@github.com:draios/terraform-provider-sysdig
$ cd terraform-provider-sysdig
$ make build
Using the provider
If you're building the provider, follow the instructions to install it as a plugin. After placing it into your plugins directory, run terraform init to initialize it.
Contribute
If you wish to work on the provider, you'll first need Go installed on your machine (version 1.13+ 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 build
...
$ $GOPATH/bin/terraform-provider-sysdig
...
In order to test the provider, you can simply run make test.
$ make test
If you want to execute the acceptance tests, you can run make testacc.
$ make testacc
To use the local provider you just built, get it installed in your machine with:
$ make install
That will add the provider to the terraform plugins dir. Then just set source and version values appropiately:
provider "aws" {
region = my_region
}
terraform {
required_providers {
sysdig = {
source = "local/sysdiglabs/sysdig"
version = "~> 1.0.0"
}
}
}
To uninstall the plugin:
$ make uninstall
⚠Please note that you need a token for Monitor and Secure, and since the acceptance tests create real infrastructure
you should execute them in an environment where you can remove the resorces easily.
Creating new resource / data sources
TL;DR;
- Create the resource/data source item
- Add the created item into the
provider.go resource or datasource map with its wiring
- With its acceptance test
- Add its documentation page on
./website/docs/
https://www.terraform.io/plugin
https://www.hashicorp.com/blog/testing-hashicorp-terraform
Proposing PR's
- on pull-requests some validations are enforced.
this can be prevented using pre-commit
- for
testacc some credentials are required, check /.envrc.template
Release
- Use semver for releases https://semver.org
- To create a new release, create and push a new tag and it will be released by
/.github/workflows/release.yml
- Notify Sysdig teams on our internal #release-announcements slack channel and optionally in #terraform-provider