- 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 git@github.com:draios/terraform-provider-sysdig
$ cd terraform-provider-sysdig
$ make build
If you're a rookie, check Official Terraform Provider development guides
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/
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
to run unit-tests.
For acceptance tests, you can run make testacc
, but note that
- Sysdig Montir and/or Secure credentials are required, check
/.envrc.template
- acceptance tests rely on the creation of real infrastructure, you should execute them in an environment where you can remove the resources easily.
If you're a rookie, check Terraform acceptance test guidelines
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
-
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
-
acceptance tests are launched in Sysdig production
+kubelab
test environment
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!