- Terraform Provider OpenSearch
- Compatibility
- Version and Branching
- Contributing
- Maintainer Responsibilities
- Getting Help
- Code of Conduct
- Security
- License
- Copyright
This is a terraform provider to provision OpenSearch resources.
This provider will target compatibility with major versions of OpenSearch, each major version of this provider corresponding to the major version of OpenSearch.
OpenSearch version | Supported |
---|---|
2.x | ✅ |
Examples of resources can be found in the examples directory.
- Cluster Settings
- Audit Config
- Component templates
- Index and Composable templates
- Data Streams
- Ingest Pipeline
- Security
- Snapshot Repository
- Anomaly Detection
- Index State Management
- Dashboards Visualization
- Dashboards Tenant
- Alerting Monitors
- Notification Channels
./script/install-tools
export OSS_IMAGE="opensearchproject/opensearch:2"
docker-compose up -d
docker-compose ps -a # Checks that the process is running
export OPENSEARCH_URL=http://admin:admin@localhost:9200
export TF_LOG=INFO
TF_ACC=1 go test ./... -v -parallel 20 -cover -short
cd provider/
TF_ACC=2 go test -run TestAccOpensearchOpenDistroDashboardTenant -v -cover -short
golangci-lint run --out-format=github-actions
Build the executable, and start in debug mode:
$ go build
$ ./terraform-provider-opensearch -debuggable # or start in debug mode in your IDE
{"@level":"debug","@message":"plugin address","@timestamp":"2022-05-17T10:10:04.331668+01:00","address":"/var/folders/32/3mbbgs9x0r5bf991ltrl3p280010fs/T/plugin1346340234","network":"unix"}
Provider started, to attach Terraform set the TF_REATTACH_PROVIDERS env var:
TF_REATTACH_PROVIDERS='{"registry.terraform.io/opensearch-project/opensearch":{"Protocol":"grpc","ProtocolVersion":5,"Pid":79075,"Test":true,"Addr":{"Network":"unix","String":"/var/folders/32/3mbbgs9x0r5bf991ltrl3p280010fs/T/plugin1346340234"}}}'
In another terminal, you can test your terraform code:
$ cd <my-project/terraform>
$ export TF_REATTACH_PROVIDERS=<env var above>
$ terraform apply
The local provider will be used instead, and you should see debug information printed to the terminal.
As of now, this terraform-provider-opensearch repository maintains 2 branches:
- main (2.x.x OpenSearch development)
- 1.x (1.x.x OpenSearch development)
Contributors should choose the corresponding branch(es) when commiting their change(s):
- If you have a change for a specific version, only open PR to specific branch
- If you have a change for all available versions, first open a PR on
main
, then open a backport PR with[x]
in the title, with labelbackport 1.x
, etc.
See developer guide and how to contribute to this project.
If you find a bug, or have a feature request, please don't hesitate to open an issue in this repository.
For more information, see project website and documentation. If you need help and are unsure where to open an issue, try forums.
This project has adopted the Amazon Open Source Code of Conduct. For more information see the Code of Conduct FAQ, or contact [email protected] with any additional questions or comments.
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our vulnerability reporting page. Please do not create a public GitHub issue.
This project is licensed under the Apache v2.0 License.
Copyright OpenSearch Contributors. See NOTICE for details.