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-nlb

Terraform module to manage Network Load Balancer resources within the Yandex.Cloud.
https://github.com/terraform-yacloud-modules/terraform-yandex-nlb

hacktoberfest iac terraform terraform-module yandex yandex-cloud

Last synced: 3 months ago
JSON representation

Terraform module to manage Network Load Balancer resources within the Yandex.Cloud.

Awesome Lists containing this project

README

        

# Yandex Cloud Network Load Balancer Terraform module

Terraform module which creates Yandex Cloud Network Load Balancer resources.

## Examples

Examples codified under
the [`examples`](https://github.com/terraform-yacloud-modules/terraform-yandex-nlb/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.3 |
| [yandex](#requirement\_yandex) | >= 0.72.0 |

## Providers

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

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [yandex_lb_network_load_balancer.main](https://registry.terraform.io/providers/yandex-cloud/yandex/latest/docs/resources/lb_network_load_balancer) | resource |
| [yandex_lb_target_group.main](https://registry.terraform.io/providers/yandex-cloud/yandex/latest/docs/resources/lb_target_group) | resource |
| [yandex_vpc_address.pip](https://registry.terraform.io/providers/yandex-cloud/yandex/latest/docs/resources/vpc_address) | resource |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [create\_pip](#input\_create\_pip) | If true, public IP will be created | `bool` | `true` | no |
| [create\_target\_group](#input\_create\_target\_group) | If true, target group will be created | `bool` | `false` | no |
| [description](#input\_description) | Network load balancer description | `string` | `""` | no |
| [health\_check](#input\_health\_check) | Target group health check |

object({
enabled = optional(bool, false)
name = string
interval = optional(number, 2)
timeout = optional(number, 1)
unhealthy_threshold = optional(number, 2)
healthy_threshold = optional(number, 3)
http_options = optional(object({
port = optional(number)
path = optional(string, "/")
}), null)
tcp_options = optional(object({
port = optional(number)
}), null)
})
|
{
"name": "app"
}
| no |
| [labels](#input\_labels) | A set of labels | `map(string)` | `{}` | no |
| [listeners](#input\_listeners) | Network load balancer listeners |
list(object({
name = optional(string)
port = optional(number)
target_port = optional(number)
protocol = optional(string, "tcp")
is_public = optional(bool, false)
ip_version = optional(string, "ipv4")
}))
| `[]` | no |
| [name](#input\_name) | Network load balancer name | `string` | n/a | yes |
| [pip](#input\_pip) | Public IP address for the network load balancer | `string` | `null` | no |
| [pip\_zone\_id](#input\_pip\_zone\_id) | Public IP zone | `string` | `"ru-central1-a"` | no |
| [region\_id](#input\_region\_id) | ID of the availability zone where the network load balancer resides | `string` | `null` | no |
| [subnet\_id](#input\_subnet\_id) | Private subnet where IP for NLB listener will be allocated | `string` | `null` | no |
| [target\_group\_ids](#input\_target\_group\_ids) | IDs of target groups that will be attached to Network Load Balancer | `list(string)` | `[]` | no |
| [targets](#input\_targets) | Network load balancer targets |
list(object({
address = string
subnet_id = string
}))
| `[]` | no |
| [type](#input\_type) | Network load balancer type; Can be internal or external | `string` | `"internal"` | no |

## Outputs

| Name | Description |
|------|-------------|
| [external\_ip](#output\_external\_ip) | External IP address of the Network Load Balancer |
| [id](#output\_id) | Network Load Balancer ID |
| [name](#output\_name) | Network Load Balancer name |
| [tg\_id](#output\_tg\_id) | Target group ID |
| [tg\_name](#output\_tg\_name) | Target group name |

## License

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