Skip to content

Repository files navigation

Terraform logo

Terraform Provider for Sysdig

Contribute

Requirements

  • Terraform >= 1.0 is recommended (the provider supports > 0.12.x)
  • Go > Go version specified in go.mod

All of the above (plus just, golangci-lint, goreleaser, terraform, and every other dev/CI tool) are installed via Nix: run nix develop and you get the exact same toolchain versions that CI uses, instead of whatever happens to be on your $PATH. This is why the provider is built with Nix on every dev machine and in every CI/CD workflow — same versions everywhere, no "works on my machine" drift.

Develop

First clone the source repository:

$ git clone git@github.com:draios/terraform-provider-sysdig
$ cd terraform-provider-sysdig
$ just build

If you're a rookie, check Official Terraform Provider development guides

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/

Compile

To compile the provider, run just build. This will build the provider and put the provider binary in the $(go env GOPATH)/bin directory, which should be in your PATH.

$ just build
$ $GOPATH/bin/terraform-provider-sysdig

Tests

In order to test the provider, you can simply run just test to run unit-tests. For acceptance tests, you can run just testacc, but note that

  • Sysdig Monitor 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

Install (local)

To use the local provider you just built, follow the instructions to install it as a plugin. in your machine with:

$ just 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 = "~> 3.0.0"
    }
  }
}

To uninstall the plugin:

$ just uninstall

Proposing PR's

Release

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!

giphy

Releases

Used by

Contributors

Languages