Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/terraform-yacloud-modules/terraform-yandex-mdb-opensearch

Terraform module to manage OpenSearch resources within the Yandex.Cloud.
https://github.com/terraform-yacloud-modules/terraform-yandex-mdb-opensearch

iac opensearch terraform terraform-modules yandex yandex-cloud

Last synced: 28 days ago
JSON representation

Terraform module to manage OpenSearch resources within the Yandex.Cloud.

Awesome Lists containing this project

README

        

# Yandex Cloud OpenSearch Terraform module

[![Github tag](https://img.shields.io/github/v/tag/terraform-yacloud-modules/terraform-yandex-mdb-opensearch)](https://github.com/terraform-yacloud-modules/terraform-yandex-mdb-opensearch/releases) [![support opentofu](https://img.shields.io/badge/supports-opentofu-green)](https://opentofu.org/) ![maintenance status](https://img.shields.io/maintenance/yes/2024.svg)

Terraform module which creates Yandex Cloud OpenSearch resources.

## Examples

Examples codified under
the [`examples`](https://github.com/terraform-yacloud-modules/terraform-yandex-module-template/tree/main/examples) are intended
to give users references for how to use the module(s) as well as testing/validating changes to the source code of the
module. If contributing to the project, please be sure to make any appropriate updates to the relevant examples to allow
maintainers to test your changes and to keep the examples up to date for users. Thank you!

## Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
| [random](#requirement\_random) | >= 3.1.0 |
| [yandex](#requirement\_yandex) | >= 0.72.0 |

## Providers

| Name | Version |
|------|---------|
| [random](#provider\_random) | >= 3.1.0 |
| [yandex](#provider\_yandex) | >= 0.72.0 |

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [random_password.admin_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |
| [yandex_mdb_opensearch_cluster.main](https://registry.terraform.io/providers/yandex-cloud/yandex/latest/docs/resources/mdb_opensearch_cluster) | resource |
| [yandex_client_config.client](https://registry.terraform.io/providers/yandex-cloud/yandex/latest/docs/data-sources/client_config) | data source |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [admin\_password](#input\_admin\_password) | Password for admin user of OpenSearch. Will be omitted, if generate\_admin\_password is true | `string` | `null` | no |
| [dashboard\_nodes](#input\_dashboard\_nodes) | A map that contains information about OpenSearch dashboard nodes.
Configuration attributes:
resources - (Required) Resources allocated to hosts of this OpenSearch node group.
hosts\_count - (Required) Number of hosts in this node group.
zones\_ids - (Required) A set of availability zones where hosts of node group may be allocated.
subnet\_ids - (Optional) A set of the subnets, to which the hosts belongs. The subnets must be a part of the network to which the cluster belongs.
assign\_public\_ip - (Optional) Sets whether the hosts should get a public IP address on creation.
roles - (Optional) A set of OpenSearch roles assigned to hosts. |

map(object({
resources = object({
resource_preset_id = string
disk_size = string
disk_type_id = string
})
hosts_count = number
zones_ids = optional(
list(string), ["ru-central1-a", "ru-central1-b", "ru-central1-c"]
)
subnet_ids = optional(list(string), [])
assign_public_ip = bool
}))
| `{}` | no |
| [deletion\_protection](#input\_deletion\_protection) | Inhibits deletion of the cluster. | `bool` | `false` | no |
| [description](#input\_description) | OpenSearch cluster description | `string` | `""` | no |
| [environment](#input\_environment) | Deployment environment of the OpenSearch cluster | `string` | `"PRODUCTION"` | no |
| [folder\_id](#input\_folder\_id) | The ID of the Yandex Cloud Folder that the resources belongs to.

Allows to create bucket in different folder.
It will try to create bucket using IAM-token in provider config, not using access\_key.
If omitted, folder\_id specified in provider config and access\_key is used. | `string` | `null` | no |
| [generate\_admin\_password](#input\_generate\_admin\_password) | If true, admin password for OpenSearch cluster will be generated. | `bool` | `true` | no |
| [labels](#input\_labels) | Object for setting tags (or labels) for bucket.
For more information see https://cloud.yandex.com/en/docs/storage/concepts/tags. | `map(string)` | `{}` | no |
| [maintenance\_window\_day](#input\_maintenance\_window\_day) | Day of week for maintenance window if window type is weekly. | `string` | `null` | no |
| [maintenance\_window\_hour](#input\_maintenance\_window\_hour) | Hour of day in UTC time zone (1-24) for maintenance window if window type is weekly. | `number` | `null` | no |
| [maintenance\_window\_type](#input\_maintenance\_window\_type) | Type of maintenance window. A day and hour of window need to be specified with weekly window. | `string` | `"ANYTIME"` | no |
| [name](#input\_name) | OpenSearch cluster name | `string` | n/a | yes |
| [network\_id](#input\_network\_id) | ID of the network, to which the OpenSearch cluster belongs. | `string` | n/a | yes |
| [opensearch\_nodes](#input\_opensearch\_nodes) | A map that contains information about OpenSearch cluster nodes.
Configuration attributes:
resources - (Required) Resources allocated to hosts of this OpenSearch node group.
hosts\_count - (Required) Number of hosts in this node group.
zones\_ids - (Required) A set of availability zones where hosts of node group may be allocated.
subnet\_ids - (Optional) A set of the subnets, to which the hosts belongs. The subnets must be a part of the network to which the cluster belongs.
assign\_public\_ip - (Optional) Sets whether the hosts should get a public IP address on creation.
roles - (Optional) A set of OpenSearch roles assigned to hosts. |
map(object({
resources = object({
resource_preset_id = string
disk_size = string
disk_type_id = string
})
hosts_count = number
zones_ids = optional(
list(string), ["ru-central1-a", "ru-central1-b", "ru-central1-c"]
)
subnet_ids = optional(list(string))
assign_public_ip = bool
roles = optional(list(string))
}))
| `{}` | no |
| [opensearch\_plugins](#input\_opensearch\_plugins) | A set of requested OpenSearch plugins. | `list(string)` | `[]` | no |
| [opensearch\_version](#input\_opensearch\_version) | Version of OpenSearch. | `string` | `null` | no |
| [security\_group\_ids](#input\_security\_group\_ids) | A set of ids of security groups assigned to hosts of the cluster. | `list(string)` | `[]` | no |
| [service\_account\_id](#input\_service\_account\_id) | ID of the service account authorized for this cluster. | `string` | `null` | no |

## Outputs

| Name | Description |
|------|-------------|
| [admin\_password](#output\_admin\_password) | OpenSearch cluster admin password |

## License

Apache-2.0 Licensed.
See [LICENSE](https://github.com/terraform-yacloud-modules/terraform-yandex-module-template/blob/main/LICENSE).