Skip to content

Commit

Permalink
WIP(ELB): Synchronized ELB resources and data sources.
Browse files Browse the repository at this point in the history
  • Loading branch information
Zippo-Wang committed Jan 25, 2024
1 parent ba09928 commit 59572fd
Show file tree
Hide file tree
Showing 23 changed files with 1,806 additions and 740 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
subcategory: "Elastic Load Balance (ELB)"
---

# flexibleengine_lb_loadbalancer_v2
# flexibleengine_lb_loadbalancer

Use this data source to get a specific elb loadbalancer within FlexibleEngine.

Expand All @@ -11,32 +11,37 @@ Use this data source to get a specific elb loadbalancer within FlexibleEngine.
```hcl
variable "lb_name" {}
data "flexibleengine_lb_loadbalancer_v2" "test" {
data "flexibleengine_lb_loadbalancer" "test" {
name = var.lb_name
}
```

## Argument Reference

* `region` - (Optional, String) The region in which to query the data source. If omitted, the provider-level region
will be used.
* `region` - (Optional, String) Specifies the region in which to obtain the load balancer. If omitted, the
provider-level region will be used.

* `name` - (Optional, String) Specifies the name of the load balancer.

* `id` - (Optional, String) Specifies the data source ID of the load balancer in UUID format.

* `description` - (Optional, String) Specifies the supplementary information about the load balancer.
* `status` - (Optional, String) Specifies the operating status of the load balancer. Valid values are *ONLINE* and
*FROZEN*.

* `vip_subnet_id` - (Optional, String) Specifies the ID of the subnet where the load balancer works.
* `description` - (Optional, String) Specifies the supplementary information about the load balancer.

* `vip_address` - (Optional, String) Specifies the private IP address of the load balancer.

* `vip_subnet_id` - (Optional, String) Specifies the **IPv4 subnet ID** of the subnet where the load balancer works.

* `enterprise_project_id` - (Optional, String) Specifies the enterprise project id of the load balancer.

## Attribute Reference

In addition to all arguments above, the following attributes are exported:

* `vip_port_id` - The ID of the port bound to the private IP address of the load balancer.
* `tags` - The tags associated with the load balancer.

* `status` - The operating status of the load balancer.
* `vip_port_id` - The ID of the port bound to the private IP address of the load balancer.

* `tags` - The tags associated with the load balancer.
* `public_ip` - The EIP address that is associated to the Load Balancer instance.
70 changes: 70 additions & 0 deletions docs/resources/lb_member.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
subcategory: "Elastic Load Balance (ELB)"
description: ""
page_title: "flexibleengine_lb_member"
---

# flexibleengine_lb_member

Manages an **enhanced** load balancer member resource within FlexibleEngine.

## Example Usage

```hcl
variable "lb_pool_id" {}
variable "ipv4_subnet_id" {}
resource "flexibleengine_lb_member" "member_1" {
address = "192.168.199.23"
protocol_port = 8080
pool_id = var.lb_pool_id
subnet_id = var.ipv4_subnet_id
}
```

## Argument Reference

The following arguments are supported:

* `region` - (Optional, String, ForceNew) The region in which to create the ELB member resource. If omitted, the
provider-level region will be used. Changing this creates a new member.

* `pool_id` - (Required, String, ForceNew) The id of the pool that this member will be assigned to.
Changing this creates a new member.

* `subnet_id` - (Required, String, ForceNew) The **IPv4 subnet ID** of the subnet in which to access the member.
Changing this creates a new member.

* `name` - (Optional, String) Human-readable name for the member.

* `address` - (Required, String, ForceNew) The IP address of the member to receive traffic from the load balancer.
Changing this creates a new member.

* `protocol_port` - (Required, Int, ForceNew) The port on which to listen for client traffic. Changing this creates a
new member.

* `weight` - (Optional, Int) A positive integer value that indicates the relative portion of traffic that this member
should receive from the pool. For example, a member with a weight of 10 receives five times as much traffic as a
member with a weight of 2.

## Attribute Reference

In addition to all arguments above, the following attributes are exported:

* `id` - The unique ID for the member.

## Timeouts

This resource provides the following timeouts configuration options:

* `create` - Default is 10 minutes.
* `update` - Default is 10 minutes.
* `delete` - Default is 10 minutes.

## Import

ELB member can be imported using the pool ID and member ID separated by a slash, e.g.

```shell
terraform import flexibleengine_lb_member.member_1 e0bd694a-abbe-450e-b329-0931fd1cc5eb/4086b0c9-b18c-4d1c-b6b8-4c56c3ad2a9e
```
61 changes: 0 additions & 61 deletions docs/resources/lb_member_v2.md

This file was deleted.

111 changes: 111 additions & 0 deletions docs/resources/lb_monitor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
---
subcategory: "Elastic Load Balance (ELB)"
description: ""
page_title: "flexibleengine_lb_monitor"
---

# flexibleengine_lb_monitor

Manages an **enhanced** load balancer monitor resource within FlexibleEngine.

## Example Usage

### TCP Health Check

```hcl
resource "flexibleengine_lb_monitor" "monitor_tcp" {
pool_id = var.pool_id
type = "TCP"
delay = 5
timeout = 3
max_retries = 3
}
```

### UDP Health Check

```hcl
resource "flexibleengine_lb_monitor" "monitor_udp" {
pool_id = var.pool_id
type = "UDP_CONNECT"
delay = 5
timeout = 3
max_retries = 3
}
```

### HTTP Health Check

```hcl
resource "flexibleengine_lb_monitor" "monitor_http" {
pool_id = var.pool_id
type = "HTTP"
delay = 5
timeout = 3
max_retries = 3
url_path = "/test"
expected_codes = "200-202"
}
```

## Argument Reference

The following arguments are supported:

* `region` - (Optional, String, ForceNew) The region in which to create the ELB monitor resource. If omitted, the
provider-level region will be used. Changing this creates a new monitor.

* `pool_id` - (Required, String, ForceNew) Specifies the id of the pool that this monitor will be assigned to. Changing
this creates a new monitor.

* `type` - (Required, String, ForceNew) Specifies the monitor protocol.
The value can be *TCP*, *UDP_CONNECT*, or *HTTP*.
If the listener protocol is UDP, the monitor protocol must be *UDP_CONNECT*. Changing this creates a new monitor.

* `delay` - (Required, Int) Specifies the maximum time between health checks in the unit of second. The value ranges
from 1 to 50.

* `timeout` - (Required, Int) Specifies the health check timeout duration in the unit of second.
The value ranges from 1 to 50 and must be less than the `delay` value.

* `max_retries` - (Required, Int) Specifies the maximum number of consecutive health checks after which the backend
servers are declared *healthy*. The value ranges from 1 to 10.

-> Backend servers can be declared *unhealthy* after **three** consecutive health checks that detect these backend
servers are unhealthy, regardless of the value set for `max_retries`.

* `name` - (Optional, String) Specifies the health check name. The value contains a maximum of 255 characters.

* `port` - (Optional, Int) Specifies the health check port. The port number ranges from 1 to 65535. If not specified,
the port of the backend server will be used as the health check port.

* `url_path` - (Optional, String) Specifies the HTTP request path for the health check. Required for HTTP type.
The value starts with a slash (/) and contains a maximum of 255 characters.

* `http_method` - (Optional, String) Specifies the HTTP request method. Required for HTTP type.
The default value is *GET*.

* `expected_codes` - (Optional, String) Specifies the expected HTTP status code. Required for HTTP type.
You can either specify a single status like "200", or a range like "200-202".

## Attribute Reference

In addition to all arguments above, the following attributes are exported:

* `id` - The unique ID for the monitor.

## Timeouts

This resource provides the following timeouts configuration options:

* `create` - Default is 10 minutes.
* `update` - Default is 10 minutes.
* `delete` - Default is 10 minutes.

## Import

ELB monitor can be imported using the monitor ID, e.g.

```shell
terraform import flexibleengine_lb_monitor.monitor_1 5c20fdad-7288-11eb-b817-0255ac10158b
```
69 changes: 0 additions & 69 deletions docs/resources/lb_monitor_v2.md

This file was deleted.

Loading

0 comments on commit 59572fd

Please sign in to comment.