- Terraform Registry - Sysdig Provider Docs
- Blog on how to use this provider with Sysdig Secure
- Terraform
- Website https://www.terraform.io
- Mailing list on Google Groups
- Terraform > 0.12.x
- Go > Go version specified in go.mod
- Correctly setup a GOPATH, as well as adding
$GOPATH/bin
to your$PATH
.
- Correctly setup a GOPATH, as well as adding
First clone source repository to: $GOPATH/src/github.com/draios/terraform-provider-sysdig
$ git clone [email protected]:draios/terraform-provider-sysdig
$ cd terraform-provider-sysdig
$ make build
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
.
- Follow Terraform acceptance test guideliness
- Please note that you need a token for Sysdig Monitor and another one for Sysdig Secure, and since the acceptance tests create real infrastructure you should execute them in an environment where you can remove the resources easily.
- Acceptance tests are launched in Sysdig production
+kubelab
test environment
$ make testacc
To use the local provider you just built, follow the instructions to install it as a plugin. in your machine with:
$ make install
That will add the provider to the terraform plugins dir. Then just set source
and version
values appropriately:
provider "aws" {
region = my_region
}
terraform {
required_providers {
sysdig = {
source = "local/sysdiglabs/sysdig"
version = "~> 1.0.0"
}
}
}
To uninstall the plugin:
$ make uninstall
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/
Interesting resources
-
if it's your first time, validate you're taking into account every aspect of the
./github/pull_request_template
-
on pull-requests some validations are enforced.
- Defined in
/.pre-commit-config.yaml
- You can work on this before even pushing to remote, using pre-commit plugin
- Defined in
-
for the PR title use conventional commit format so when the branch is squashed to main branch it follows a convention
-
for Acceptance Tests
testacc
some credentials are required, check/.envrc.template
To create a new release, create and push a new tag, and it will be released following /. github/workflows/release.yml
.
- Before releasing check the diff between previous tag and master branch, to spot major changes
- For tag, use semver
- Review Released Draft Note, and make it as clear as possible.
- Notify Sysdig teams on our internal #release-announcements slack channel and optionally in #terraform-provider
Mange takk!