-
Notifications
You must be signed in to change notification settings - Fork 0
/
create_elbv2_load_balancer.fp
48 lines (39 loc) · 1.36 KB
/
create_elbv2_load_balancer.fp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
pipeline "create_elbv2_load_balancer" {
title = "Create ELBv2 Load Balancer"
description = "Creates a v2 load balancer (application, network or gateway)."
param "region" {
type = string
description = local.region_param_description
}
param "cred" {
type = string
description = local.cred_param_description
default = "default"
}
param "name" {
type = string
description = "The name for the load balancer."
}
param "type" {
type = string
description = "The type of load balancer (e.g., 'application' for Application Load Balancer, 'network' for Network Load Balancer)."
}
param "availability_zones" {
type = list(string)
description = "A list of availability zones to associate with the load balancer."
}
step "container" "create_elbv2_load_balancer" {
image = "public.ecr.aws/aws-cli/aws-cli"
cmd = concat(
["elbv2", "create-load-balancer"],
["--name", param.name],
["--type", param.type],
flatten([for az in param.availability_zones : ["--availability-zones", az]])
)
env = merge(credential.aws[param.cred].env, { AWS_REGION = param.region })
}
output "load_balancers" {
description = "Information about the load balancer."
value = jsondecode(step.container.create_elbv2_load_balancer.stdout).LoadBalancers
}
}