Skip to content

Commit bf666b5

Browse files
dmicheneauazrod
authored andcommitted
feat: Add ALB Service Engine Group datasource (#900)
Co-authored-by: David MICHENEAU <david.micheneau@orange.com> feat: Add Org Certificate Library datasource feat: remove sdk depend feat: Add ALB Service Engine Group datasource (#911) Co-authored-by: David MICHENEAU <david.micheneau@orange.com> feat: Add Org certificate library (#962) Co-authored-by: David MICHENEAU <david.micheneau@orange.com> chore: refacto certificate to new SDK struct refactor: LB service engine to new SDK (#979) Co-authored-by: David MICHENEAU <david.micheneau@orange.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> chore: rename alb to elb (#980) feat(elb): add ress/data `cloudavenue_elb_pool` (#981) feat: add ress/data `elb_virtual_service` (#985)
1 parent 668b1fa commit bf666b5

File tree

85 files changed

+6543
-1479
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+6543
-1479
lines changed

.changelog/892.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:new-data-source
2+
`datasource/cloudavenue_elb_service_engine_group` - Added a new data source to retrieve information about a Service Engine Group.
3+
```

.changelog/901.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:new-data-source
2+
`datasource/cloudavenue_elb_service_engine_groups` - Added a new data source to list all Service Engine Group attached to an Edge Gateway.
3+
```

.changelog/904.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
```release-note:feature
2+
`resource/cloudavenue_org_certificate_library` - Added new resource to manage certificate in the Cloud Avenue Organization.
3+
```
4+
5+
```release-note:feature
6+
`datasource/cloudavenue_org_certificate_library` - Added new datasource to get certificate information in the Cloud Avenue Organization.
7+
```

.changelog/973.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
```release-note:new-resource
2+
`resource/cloudavenue_elb_virtual_service` - Add new resource `cloudavenue_elb_virtual_service` to manage edgegateway load balancer virtual services. A virtual service advertises an IP address and ports to the external world and listens for client traffic.
3+
```
4+
5+
```release-note:new-data-source
6+
`datasource/cloudavenue_elb_virtual_service` - Add new datasource `cloudavenue_elb_virtual_service` to read details of an existing edgegateway load balancer virtual service.
7+
```

.changelog/974.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
```release-note:new-resource
2+
`resource/cloudavenue_elb_pool` - Added new resource `cloudavenue_elb_pool` to manage edgegateway load balancer pools. Pools maintain the list of servers assigned to them and perform health monitoring, load balancing, persistence.
3+
```
4+
5+
```release-note:new-data-source
6+
`datasource/cloudavenue_elb_pool` - Added new datasource `cloudavenue_elb_pool` to read details of an existing edgegateway load balancer pool.
7+
```

.devcontainer/devcontainer.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"remoteUser": "vscode",
5151
"updateRemoteUserUID": true,
5252
"features": {
53-
"github-cli": "latest",
53+
"ghcr.io/devcontainers/features/github-cli:1": {},
5454
"ghcr.io/devcontainers/features/terraform:1": {},
5555
"ghcr.io/guiyomh/features/golangci-lint:0": {},
5656
"ghcr.io/meaningful-ooo/devcontainer-features/fish": {},
@@ -59,4 +59,4 @@
5959
},
6060
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind",
6161
"workspaceFolder": "/workspace"
62-
}
62+
}

docs/data-sources/alb_pool.md

-64
This file was deleted.

docs/data-sources/elb_pool.md

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
---
2+
page_title: "cloudavenue_elb_pool Data Source - cloudavenue"
3+
subcategory: "ELB (EdgeGateway Load Balancer)"
4+
description: |-
5+
The cloudavenue_elb_pool data source allows you to retrieve information about an existing edgegateway load balancer pool.
6+
---
7+
8+
# cloudavenue_elb_pool (Data Source)
9+
10+
The `cloudavenue_elb_pool` data source allows you to retrieve information about an existing edgegateway load balancer pool.
11+
12+
## Example Usage
13+
14+
```terraform
15+
data "cloudavenue_elb_pool" "example" {
16+
name = "example"
17+
edge_gateway_id = cloudavenue_edge_gateway.example.id
18+
}
19+
```
20+
21+
<!-- schema generated by tfplugindocs -->
22+
## Schema
23+
24+
### Required
25+
26+
- `name` (String) The name of the pool.
27+
28+
### Optional
29+
30+
- `edge_gateway_id` (String) The ID of the Edge Gateway. Ensure that one and only one attribute from this collection is set : `edge_gateway_name`, `edge_gateway_id`.
31+
- `edge_gateway_name` (String) The name of the Edge Gateway. Ensure that one and only one attribute from this collection is set : `edge_gateway_name`, `edge_gateway_id`.
32+
33+
### Read-Only
34+
35+
- `algorithm` (String) The heart of a load balancer is its ability to effectively distribute traffic across healthy servers. If persistence is enabled, only the first connection from a client is load balanced. While the persistence remains in effect, subsequent connections or requests from a client are directed to the same server.
36+
- `default_port` (Number) DefaultPort defines destination server port used by the traffic sent to the member.
37+
- `description` (String) The name of the pool.
38+
- `enabled` (Boolean) Enable or disable the pool.
39+
- `health` (Attributes) . (see [below for nested schema](#nestedatt--health))
40+
- `id` (String) The ID of the pool.
41+
- `members` (Attributes) . (see [below for nested schema](#nestedatt--members))
42+
- `persistence` (Attributes) . (see [below for nested schema](#nestedatt--persistence))
43+
- `tls` (Attributes) . (see [below for nested schema](#nestedatt--tls))
44+
45+
<a id="nestedatt--health"></a>
46+
### Nested Schema for `health`
47+
48+
Read-Only:
49+
50+
- `monitors` (List of String) The active health monitors.
51+
- `passive_monitoring_enabled` (Boolean) PassiveMonitoringEnabled sets if client traffic should be used to check if pool member is up or down.
52+
53+
54+
<a id="nestedatt--members"></a>
55+
### Nested Schema for `members`
56+
57+
Read-Only:
58+
59+
- `graceful_timeout_period` (String) Maximum time (in minutes) to gracefully disable a member. Virtual service waits for the specified time before terminating the existing connections to the members that are disabled. Special values: `0` represents `Immediate` and `-1` represents `Infinite`. The maximum value is `7200` minutes.
60+
- `target_group` (String) The group contains reference to the Edge Firewall Group representing destination servers which are used by the Load Balancer Pool to direct load balanced traffic. This permit to reference `IP Set` or `Static Group` ID.
61+
- `targets` (Attributes List) targets field defines list of destination servers which are used by the Load Balancer Pool to direct load balanced traffic. (see [below for nested schema](#nestedatt--members--targets))
62+
63+
<a id="nestedatt--members--targets"></a>
64+
### Nested Schema for `members.targets`
65+
66+
Read-Only:
67+
68+
- `enabled` (Boolean) Enable or disable the member.
69+
- `ip_address` (String) The IP address of the member.
70+
- `port` (Number) The port of the member.
71+
- `ratio` (Number) The ratio of the member. The ratio of each pool member denotes the traffic that goes to each server pool member. A server with a ratio of 2 gets twice as much traffic as a server with a ratio of 1.
72+
73+
74+
75+
<a id="nestedatt--persistence"></a>
76+
### Nested Schema for `persistence`
77+
78+
Read-Only:
79+
80+
- `type` (String) The type of the persistence.
81+
- `value` (String) The value of the persistence.
82+
83+
84+
<a id="nestedatt--tls"></a>
85+
### Nested Schema for `tls`
86+
87+
Read-Only:
88+
89+
- `ca_certificate_refs` (List of String) The CA certificate references point to root certificates to use when validating certificates presented by the pool members.
90+
- `common_name_check_enabled` (Boolean) Enable common name check for server certificate. If enabled and no explicit domain name is specified, the incoming host header will be used to do the match.
91+
- `domain_names` (List of String) The domain names of the TLS check. This attribute is taken into account if the `common_name_check_enabled` is set to `true`.
92+
- `enabled` (Boolean) Enable or disable the TLS.
93+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
page_title: "cloudavenue_elb_service_engine_group Data Source - cloudavenue"
3+
subcategory: "ELB (EdgeGateway Load Balancer)"
4+
description: |-
5+
The cloudavenue_elb_service_engine_group data source allows you to retrieve information about an Service Engine Group of an Edge Gateway.
6+
---
7+
8+
# cloudavenue_elb_service_engine_group (Data Source)
9+
10+
The `cloudavenue_elb_service_engine_group` data source allows you to retrieve information about an Service Engine Group of an Edge Gateway.
11+
12+
## Example Usage
13+
14+
```terraform
15+
data "cloudavenue_elb_service_engine_group" "example" {
16+
name = "my-service-engine"
17+
edge_gateway_name = data.cloudavenue_edge_gateway.example.name
18+
}
19+
20+
output "example" {
21+
value = data.cloudavenue_elb_service_engine_group.example
22+
}
23+
```
24+
25+
<!-- schema generated by tfplugindocs -->
26+
## Schema
27+
28+
### Optional
29+
30+
- `edge_gateway_id` (String) Edge gateway ID in which ELB Service Engine Group should be located. Ensure that one and only one attribute from this collection is set : `edge_gateway_id`, `edge_gateway_name`.
31+
- `edge_gateway_name` (String) Edge gateway Name in which ELB Service Engine Group should be located. Ensure that one and only one attribute from this collection is set : `edge_gateway_id`, `edge_gateway_name`.
32+
- `id` (String) The ID of the ELB Service Engine Group. Ensure that one and only one attribute from this collection is set : `id`, `name`.
33+
- `name` (String) The name of the ELB Service Engine Group. Ensure that one and only one attribute from this collection is set : `id`, `name`.
34+
35+
### Read-Only
36+
37+
- `deployed_virtual_services` (Number) The number of deployed virtual services on the ELB Service Engine Group.
38+
- `max_virtual_services` (Number) The maximum number of virtual services that can be deployed on the ELB Service Engine Group.
39+
- `reserved_virtual_services` (Number) The number of reserved virtual services for the ELB Service Engine Group.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
page_title: "cloudavenue_elb_service_engine_groups Data Source - cloudavenue"
3+
subcategory: "ELB (EdgeGateway Load Balancer)"
4+
description: |-
5+
The cloudavenue_elb_service_engine_groups data source allows you to retrieve information about all the Service Engine Group of an Edge Gateway.
6+
---
7+
8+
# cloudavenue_elb_service_engine_groups (Data Source)
9+
10+
The `cloudavenue_elb_service_engine_groups` data source allows you to retrieve information about all the Service Engine Group of an Edge Gateway.
11+
12+
## Example Usage
13+
14+
```terraform
15+
data "cloudavenue_elb_service_engine_groups" "example" {
16+
edge_gateway_name = data.cloudavenue_edge_gateway.example.name
17+
}
18+
19+
output "example" {
20+
value = data.cloudavenue_elb_service_engine_groups.example
21+
}
22+
```
23+
24+
<!-- schema generated by tfplugindocs -->
25+
## Schema
26+
27+
### Optional
28+
29+
- `edge_gateway_id` (String) Edge gateway ID in which EdgeGateway LoadBalancer Service Engine Group should be located. Ensure that one and only one attribute from this collection is set : `edge_gateway_id`, `edge_gateway_name`.
30+
- `edge_gateway_name` (String) Edge gateway Name in which EdgeGateway LoadBalancer Service Engine Group should be located. Ensure that one and only one attribute from this collection is set : `edge_gateway_id`, `edge_gateway_name`.
31+
32+
### Read-Only
33+
34+
- `id` (String) The ID of the ELB service engine groups.
35+
- `service_engine_groups` (Attributes List) The list of service engine groups. (see [below for nested schema](#nestedatt--service_engine_groups))
36+
37+
<a id="nestedatt--service_engine_groups"></a>
38+
### Nested Schema for `service_engine_groups`
39+
40+
Optional:
41+
42+
- `edge_gateway_id` (String) Edge gateway ID in which ELB Service Engine Group should be located. Ensure that one and only one attribute from this collection is set : `edge_gateway_id`, `edge_gateway_name`.
43+
- `edge_gateway_name` (String) Edge gateway Name in which ELB Service Engine Group should be located. Ensure that one and only one attribute from this collection is set : `edge_gateway_id`, `edge_gateway_name`.
44+
- `id` (String) The ID of the ELB Service Engine Group. Ensure that one and only one attribute from this collection is set : `id`, `name`.
45+
- `name` (String) The name of the ELB Service Engine Group. Ensure that one and only one attribute from this collection is set : `id`, `name`.
46+
47+
Read-Only:
48+
49+
- `deployed_virtual_services` (Number) The number of deployed virtual services on the ELB Service Engine Group.
50+
- `max_virtual_services` (Number) The maximum number of virtual services that can be deployed on the ELB Service Engine Group.
51+
- `reserved_virtual_services` (Number) The number of reserved virtual services for the ELB Service Engine Group.
+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
page_title: "cloudavenue_elb_virtual_service Data Source - cloudavenue"
3+
subcategory: "ELB (EdgeGateway Load Balancer)"
4+
description: |-
5+
Provides a data source to read ELB Virtual services for particular Gateway. A virtual service advertises an IP address and ports to the external world and listens for client traffic. When a virtual service receives traffic, it directs it to members in ELB Pool.
6+
---
7+
8+
# cloudavenue_elb_virtual_service (Data Source)
9+
10+
Provides a data source to read ELB Virtual services for particular Gateway. A virtual service advertises an IP address and ports to the external world and listens for client traffic. When a virtual service receives traffic, it directs it to members in ELB Pool.
11+
12+
## Example Usage
13+
14+
```terraform
15+
data "cloudavenue_elb_virtual_service" "example" {
16+
name = "example"
17+
edge_gateway_id = data.cloudavenue_edgegateway.example.id
18+
}
19+
```
20+
21+
<!-- schema generated by tfplugindocs -->
22+
## Schema
23+
24+
### Required
25+
26+
- `name` (String) The name of the ELB Virtual Service.
27+
28+
### Optional
29+
30+
- `edge_gateway_id` (String) The ID of the edge gateway on which the ELB Virtual Service is to be created. Ensure that one and only one attribute from this collection is set : `edge_gateway_name`, `edge_gateway_id`.
31+
- `edge_gateway_name` (String) The name of the edge gateway on which the ELB Virtual Service is to be created. Ensure that one and only one attribute from this collection is set : `edge_gateway_name`, `edge_gateway_id`.
32+
33+
### Read-Only
34+
35+
- `certificate_id` (String) The ID of the certificate. The certificate must be uploaded to your certificate library before it can be used. The certificate MUSTN'T be expired.
36+
- `description` (String) The description of the ELB Virtual Service.
37+
- `enabled` (Boolean) Defines if the ELB Virtual Service is enabled.
38+
- `id` (String) The ID of the ELB virtual service.
39+
- `pool_id` (String) The ID of the ELB Server Pool associated.
40+
- `pool_name` (String) The name of the ELB Server Pool associated.
41+
- `service_engine_group_name` (String) The name of the service Engine Group (Take the first one if not specified).
42+
- `service_ports` (Attributes List) The service port of the ELB Virtual Service. The service port is the port on which the virtual service listens for client traffic. (see [below for nested schema](#nestedatt--service_ports))
43+
- `service_type` (String) The type of the service. The different modes that the ELB supports for handling TCP traffic and various parameters that can be tuned for optimization of the TCP traffic are also detailed here.
44+
- `virtual_ip` (String) The virtual IP address of the ELB Virtual Service.
45+
46+
<a id="nestedatt--service_ports"></a>
47+
### Nested Schema for `service_ports`
48+
49+
Read-Only:
50+
51+
- `end` (Number) The end port of the service port range. If not specified, only the `start` value is used.
52+
- `start` (Number) The start port of the service port range or exact port number if `end` is not set.
53+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
page_title: "cloudavenue_org_certificate_library Data Source - cloudavenue"
3+
subcategory: "Organization"
4+
description: |-
5+
The cloudavenue_org_certificate_library data source allows you to retrieve information about an certificate in your organization's library.
6+
---
7+
8+
# cloudavenue_org_certificate_library (Data Source)
9+
10+
The `cloudavenue_org_certificate_library` data source allows you to retrieve information about an certificate in your organization's library.
11+
12+
## Example Usage
13+
14+
```terraform
15+
data "cloudavenue_org_certificate_library" "example" {
16+
name = "my-certificate-library"
17+
}
18+
```
19+
20+
<!-- schema generated by tfplugindocs -->
21+
## Schema
22+
23+
### Optional
24+
25+
- `id` (String) The ID of the certificate library. Ensure that one and only one attribute from this collection is set : `name`, `id`.
26+
- `name` (String) The name of the certificate library. Ensure that one and only one attribute from this collection is set : `name`, `id`.
27+
28+
### Read-Only
29+
30+
- `certificate` (String) The certificate content. It can be a PEM encoded certificate or a certificate chain.
31+
- `description` (String) The description of the certificate library.

0 commit comments

Comments
 (0)