sysdiglabs/terraform-provider-sysdig

GitHub: sysdiglabs/terraform-provider-sysdig

Sysdig Terraform Provider 允许团队通过 Terraform 以代码方式管理 Sysdig Secure 的安全策略和监控配置。

Stars: 56 | Forks: 55

Terraform logo # Sysdig 的 Terraform Provider - **[Terraform Registry - Sysdig Provider 文档](https://registry.terraform.io/providers/sysdiglabs/sysdig/latest/docs)** - [关于如何配合 Sysdig Secure 使用此 provider 的博客](https://sysdig.com/blog/using-terraform-for-container-security-as-code/) ## 要求 - 推荐使用 [Terraform](https://www.terraform.io/downloads.html) >= 1.0(该 provider 支持 > 0.12.x) - [Go](https://golang.org/doc/install) > [go.mod](./go.mod#L3) 中指定的 Go 版本 ## 开发 首先**克隆**源代码仓库: ``` $ git clone git@github.com:draios/terraform-provider-sysdig $ cd terraform-provider-sysdig $ make build ``` 如果你是新手,请查阅 [官方 Terraform Provider 开发指南](https://developer.hashicorp.com/terraform/plugin/framework) ### 创建新的 resource / data source 长话短说(TL;DR): - 创建 resource / data source 项目 - 将创建的项目连同其关联配置添加到 `provider.go` 的 resource 或 datasource map 中 - 包含其[验收**测试**](#tests) - 在 `./website/docs/` 中添加其**文档**页面 ## 编译 要**编译** provider,请运行 `make build`。这将会构建 provider,并将 provider 二进制文件放在 `$(go env GOPATH)/bin` 目录中,该目录应该包含在你的 `PATH` 中。 ``` $ make build $ $GOPATH/bin/terraform-provider-sysdig ``` ## 测试 为了**测试** provider,你可以直接运行 `make test` 来执行单元测试。 对于验收测试,你可以运行 `make testacc`,但请注意: - 需要 Sysdig Monitor 和/或 Secure 的凭据,请查看 [`/.envrc.template`](https://github.com/sysdiglabs/terraform-provider-sysdig/blob/master/.envrc.template) - **验收测试依赖于真实基础设施的创建**,你应该在一个可以轻松删除资源的环境中执行它们。 如果你是新手,请查阅 [Terraform 验收测试指南](https://developer.hashicorp.com/terraform/plugin/testing) ## 安装(本地) 要使用你刚刚构建的本地 provider,请按照以下说明在你的机器上[将其作为插件**安装**](https://www.terraform.io/docs/plugins/basics.html#installing-a-plugin): ``` $ make install ``` 这会将该 provider 添加到 terraform 插件目录中。然后只需适当设置 `source` 和 `version` 的值: ``` provider "aws" { region = my_region } terraform { required_providers { sysdig = { source = "local/sysdiglabs/sysdig" version = "~> 3.0.0" } } } ``` 卸载插件: ``` $ make uninstall ``` ## 提交 PR * 如果你是第一次提交,请确认你已考虑到 [`./github/pull_request_template`](.github/pull_request_template.md) 中的所有方面 * 在 pull request 中会强制执行一些验证。 - 定义在 [`/.pre-commit-config.yaml`](https://github.com/sysdiglabs/terraform-provider-sysdig/blob/master/.pre-commit-config.yaml) 中 - 你甚至可以在推送到远程之前使用 [**pre-commit**](https://pre-commit.com) 插件进行这些验证 * PR 标题请使用[约定式提交格式](https://www.conventionalcommits.org/en/v1.0.0/),这样当分支被压缩合并到主分支时,它也会遵循相应的约定 * 验收测试将在 [Sysdig 生产环境的 `+kubelab` 测试环境](https://github.com/sysdiglabs/terraform-provider-sysdig/blob/master/.github/workflows/ci-pull-request.yml#L82-L83)中启动 ## 发布 要创建新版本,请创建并推送一个新的 **tag**,它将根据 [`/.github/workflows/release.yml`](https://github.com/sysdiglabs/terraform-provider-sysdig/blob/master/.github/workflows/release.yml) 进行发布。 * 发布前,请检查上一个 tag 与 master 分支之间的**差异**,以便发现重大更改 * 对于 **tag**,请使用 **[semver](https://semver.org)** * 审查已发布的草稿说明,并尽量使其清晰明了。 * 在我们的内部 Slack 频道 #release-announcements 中通知 Sysdig 团队,也可以选择在 #terraform-provider 中通知。

Mange takk! ![giphy](https://user-images.githubusercontent.com/1073243/200767344-7435f322-24c0-44d2-ac56-468791c84ca5.gif)
标签:ECS, EVTX分析, Go, LNA, Ruby工具, Terraform, 安全策略管理, 日志审计, 自动化运维