Skip to content

Commit

Permalink
Added support for NodeBalancers UDP
Browse files Browse the repository at this point in the history
  • Loading branch information
ezilber-akamai committed Jan 16, 2025
1 parent 7aeb26e commit 5a7b000
Show file tree
Hide file tree
Showing 23 changed files with 213 additions and 83 deletions.
2 changes: 2 additions & 0 deletions docs/data-sources/nodebalancer.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ In addition to all arguments above, the following attributes are exported:

* `client_conn_throttle` - Throttle connections per second (0-20).

* `client_udp_sess_throttle` - Throttle UDP sessions per second (0-20).

* `created` – When this Linode NodeBalancer was created

* `linode_id` - The ID of a Linode Instance where the NodeBalancer should be attached.
Expand Down
4 changes: 4 additions & 0 deletions docs/data-sources/nodebalancer_config.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ In addition to all arguments above, the following attributes are exported:

* `check_passive` - If true, any response from this backend with a 5xx status code will be enough for it to be considered unhealthy and taken out of rotation.

* `udp_check_port` - Specifies the port on the backend node used for active health checks, which may differ from the port serving traffic.

* `udp_session_timeout` - The idle time in seconds after which a session that hasn’t received packets is destroyed.

* `cipher_suite` - What ciphers to use for SSL connections served by this NodeBalancer. `legacy` is considered insecure and should only be used if necessary. (`recommended`, `legacy`)

* `ssl_commonname` - The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.
Expand Down
4 changes: 4 additions & 0 deletions docs/data-sources/nodebalancer_configs.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@ Each Linode NodeBalancer Config will be stored in the `nodebalancer_configs` att

* `check_passive` - If true, any response from this backend with a 5xx status code will be enough for it to be considered unhealthy and taken out of rotation.

* `udp_check_port` - Specifies the port on the backend node used for active health checks, which may differ from the port serving traffic.

* `udp_session_timeout` - The idle time in seconds after which a session that hasn’t received packets is destroyed.

* `cipher_suite` - What ciphers to use for SSL connections served by this NodeBalancer. `legacy` is considered insecure and should only be used if necessary. (`recommended`, `legacy`)

* `ssl_commonname` - The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.
Expand Down
3 changes: 3 additions & 0 deletions docs/resources/nodebalancer.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ resource "linode_nodebalancer" "foobar" {
label = "mynodebalancer"
region = "us-east"
client_conn_throttle = 20
client_udp_sess_throttle = 10
tags = ["foobar"]
}
```
Expand All @@ -36,6 +37,8 @@ The following arguments are supported:

* `client_conn_throttle` - (Optional) Throttle connections per second (0-20). Set to 0 (default) to disable throttling.

* `client_udp_sess_throttle` - Throttle UDP sessions per second (0-20). Set to 0 (default) to disable throttling.

* `tags` - (Optional) A list of tags applied to this object. Tags are case-insensitive and are for organizational purposes only.

## Attributes Reference
Expand Down
5 changes: 5 additions & 0 deletions docs/resources/nodebalancer_config.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ resource "linode_nodebalancer_config" "foofig" {
check_path = "/foo"
check_attempts = 3
check_timeout = 30
udp_check_port = 12345
stickiness = "http_cookie"
algorithm = "source"
}
Expand Down Expand Up @@ -65,6 +66,8 @@ The following arguments are supported:

* `check_passive` - (Optional) If true, any response from this backend with a 5xx status code will be enough for it to be considered unhealthy and taken out of rotation.

* `udp_check_port` - (Optional) Specifies the port on the backend node used for active health checks, which may differ from the port serving traffic.

* `cipher_suite` - (Optional) What ciphers to use for SSL connections served by this NodeBalancer. `legacy` is considered insecure and should only be used if necessary.

* `ssl_cert` - (Optional) The certificate this port is serving. This is not returned. If set, this field will come back as `<REDACTED>`. Please use the ssl_commonname and ssl_fingerprint to identify the certificate.
Expand All @@ -75,6 +78,8 @@ The following arguments are supported:

This resource exports the following attributes:

* `udp_session_timeout` - The read-only idle time in seconds after which a session that hasn’t received packets is destroyed.

* `ssl_commonname` - The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.

* `ssl_fingerprint` - The read-only fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.
Expand Down
4 changes: 3 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ require (
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.4
github.com/aws/aws-sdk-go-v2/service/s3 v1.72.2
github.com/aws/smithy-go v1.22.1
github.com/go-resty/resty/v2 v2.16.2
github.com/go-resty/resty/v2 v2.16.3
github.com/google/go-cmp v0.6.0
github.com/hashicorp/go-cty v1.4.1-0.20200723130312-85980079f637
github.com/hashicorp/go-hclog v1.6.3
Expand All @@ -32,6 +32,8 @@ require (
golang.org/x/sync v0.10.0
)

replace github.com/linode/linodego => github.com/linode/linodego v0.0.0-20250115202254-23f71617a419

require (
github.com/ProtonMail/go-crypto v1.1.0-alpha.2 // indirect
github.com/agext/levenshtein v1.2.2 // indirect
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2Kv
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
github.com/go-resty/resty/v2 v2.16.2 h1:CpRqTjIzq/rweXUt9+GxzzQdlkqMdt8Lm/fuK/CAbAg=
github.com/go-resty/resty/v2 v2.16.2/go.mod h1:0fHAoK7JoBy/Ch36N8VFeMsK7xQOHhvWaC3iOktwmIU=
github.com/go-resty/resty/v2 v2.16.3 h1:zacNT7lt4b8M/io2Ahj6yPypL7bqx9n1iprfQuodV+E=
github.com/go-resty/resty/v2 v2.16.3/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA=
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
Expand Down Expand Up @@ -192,8 +192,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/linode/linodego v1.45.0 h1:jds704+yDlxX+1s854Bhyeonzde3MBZksp3Yvgi49L0=
github.com/linode/linodego v1.45.0/go.mod h1:J5qs5Qg8KafUbE9ltYzwxcNpJXaGwLcvOVyDJNZS2As=
github.com/linode/linodego v0.0.0-20250115202254-23f71617a419 h1:6PD2j8vXmWVGNiVMdyYOYvBkerVRRRwMi/d0FI09qao=
github.com/linode/linodego v0.0.0-20250115202254-23f71617a419/go.mod h1:vyklQRzZUWhFVBZdYx4dcYJU/gG9yKB9VUcUs6ub0Lk=
github.com/linode/linodego/k8s v1.25.2 h1:PY6S0sAD3xANVvM9WY38bz9GqMTjIbytC8IJJ9Cv23o=
github.com/linode/linodego/k8s v1.25.2/go.mod h1:DC1XCSRZRGsmaa/ggpDPSDUmOM6aK1bhSIP6+f9Cwhc=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
Expand Down
1 change: 1 addition & 0 deletions linode/nb/datasource_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ func TestAccDataSourceNodeBalancer_basic(t *testing.T) {
checkNodeBalancerExists,
resource.TestCheckResourceAttr(resName, "label", nodebalancerName),
resource.TestCheckResourceAttr(resName, "client_conn_throttle", "20"),
resource.TestCheckResourceAttr(resName, "client_udp_sess_throttle", "0"),
resource.TestCheckResourceAttr(resName, "region", testRegion),
resource.TestCheckResourceAttrSet(resName, "hostname"),
resource.TestCheckResourceAttrSet(resName, "ipv4"),
Expand Down
4 changes: 4 additions & 0 deletions linode/nb/framework_datasource_schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ var NodeBalancerAttributes = map[string]schema.Attribute{
Description: "Throttle connections per second (0-20). Set to 0 (zero) to disable throttling.",
Computed: true,
},
"client_udp_sess_throttle": schema.Int64Attribute{
Description: "Throttle UDP sessions per second (0-20). Set to 0 (zero) to disable throttling.",
Computed: true,
},
"hostname": schema.StringAttribute{
Description: "This NodeBalancer's hostname, ending with .nodebalancer.linode.com",
Computed: true,
Expand Down
59 changes: 34 additions & 25 deletions linode/nb/framework_models.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,20 @@ import (
// NodeBalancerModel describes the Terraform resource data model to match the
// resource schema.
type NodeBalancerModel struct {
ID types.String `tfsdk:"id"`
Label types.String `tfsdk:"label"`
Region types.String `tfsdk:"region"`
ClientConnThrottle types.Int64 `tfsdk:"client_conn_throttle"`
FirewallID types.Int64 `tfsdk:"firewall_id"`
Hostname types.String `tfsdk:"hostname"`
IPv4 types.String `tfsdk:"ipv4"`
IPv6 types.String `tfsdk:"ipv6"`
Created timetypes.RFC3339 `tfsdk:"created"`
Updated timetypes.RFC3339 `tfsdk:"updated"`
Transfer types.List `tfsdk:"transfer"`
Tags types.Set `tfsdk:"tags"`
Firewalls types.List `tfsdk:"firewalls"`
ID types.String `tfsdk:"id"`
Label types.String `tfsdk:"label"`
Region types.String `tfsdk:"region"`
ClientConnThrottle types.Int64 `tfsdk:"client_conn_throttle"`
ClientUDPSessThrottle types.Int64 `tfsdk:"client_udp_sess_throttle"`
FirewallID types.Int64 `tfsdk:"firewall_id"`
Hostname types.String `tfsdk:"hostname"`
IPv4 types.String `tfsdk:"ipv4"`
IPv6 types.String `tfsdk:"ipv6"`
Created timetypes.RFC3339 `tfsdk:"created"`
Updated timetypes.RFC3339 `tfsdk:"updated"`
Transfer types.List `tfsdk:"transfer"`
Tags types.Set `tfsdk:"tags"`
Firewalls types.List `tfsdk:"firewalls"`
}

type FirewallModel struct {
Expand Down Expand Up @@ -78,6 +79,9 @@ func (data *NodeBalancerModel) FlattenNodeBalancer(
data.ClientConnThrottle = helper.KeepOrUpdateInt64(
data.ClientConnThrottle, int64(nodebalancer.ClientConnThrottle), preserveKnown,
)
data.ClientUDPSessThrottle = helper.KeepOrUpdateInt64(
data.ClientUDPSessThrottle, int64(nodebalancer.ClientUDPSessThrottle), preserveKnown,
)
data.Hostname = helper.KeepOrUpdateStringPointer(data.Hostname, nodebalancer.Hostname, preserveKnown)
data.IPv4 = helper.KeepOrUpdateStringPointer(data.IPv4, nodebalancer.IPv4, preserveKnown)
data.IPv6 = helper.KeepOrUpdateStringPointer(data.IPv6, nodebalancer.IPv6, preserveKnown)
Expand Down Expand Up @@ -112,6 +116,9 @@ func (data *NodeBalancerModel) CopyFrom(other NodeBalancerModel, preserveKnown b
data.ClientConnThrottle = helper.KeepOrUpdateValue(
data.ClientConnThrottle, other.ClientConnThrottle, preserveKnown,
)
data.ClientUDPSessThrottle = helper.KeepOrUpdateValue(
data.ClientUDPSessThrottle, other.ClientUDPSessThrottle, preserveKnown,
)
data.FirewallID = helper.KeepOrUpdateValue(data.FirewallID, other.FirewallID, preserveKnown)
data.Hostname = helper.KeepOrUpdateValue(data.Hostname, other.Hostname, preserveKnown)
data.IPv4 = helper.KeepOrUpdateValue(data.IPv4, other.IPv4, preserveKnown)
Expand Down Expand Up @@ -210,18 +217,19 @@ func UpgradeResourceStateValue(val string) (types.Float64, diag.Diagnostic) {
// NodeBalancerDataSourceModel describes the Terraform data model to match the
// data source schema.
type NodeBalancerDataSourceModel struct {
ID types.Int64 `tfsdk:"id"`
Label types.String `tfsdk:"label"`
Region types.String `tfsdk:"region"`
ClientConnThrottle types.Int64 `tfsdk:"client_conn_throttle"`
Hostname types.String `tfsdk:"hostname"`
IPv4 types.String `tfsdk:"ipv4"`
IPv6 types.String `tfsdk:"ipv6"`
Created timetypes.RFC3339 `tfsdk:"created"`
Updated timetypes.RFC3339 `tfsdk:"updated"`
Transfer types.List `tfsdk:"transfer"`
Tags types.Set `tfsdk:"tags"`
Firewalls []NBFirewallModel `tfsdk:"firewalls"`
ID types.Int64 `tfsdk:"id"`
Label types.String `tfsdk:"label"`
Region types.String `tfsdk:"region"`
ClientConnThrottle types.Int64 `tfsdk:"client_conn_throttle"`
ClientUDPSessThrottle types.Int64 `tfsdk:"client_udp_sess_throttle"`
Hostname types.String `tfsdk:"hostname"`
IPv4 types.String `tfsdk:"ipv4"`
IPv6 types.String `tfsdk:"ipv6"`
Created timetypes.RFC3339 `tfsdk:"created"`
Updated timetypes.RFC3339 `tfsdk:"updated"`
Transfer types.List `tfsdk:"transfer"`
Tags types.Set `tfsdk:"tags"`
Firewalls []NBFirewallModel `tfsdk:"firewalls"`
}

type NBFirewallModel struct {
Expand All @@ -246,6 +254,7 @@ func (data *NodeBalancerDataSourceModel) flattenNodeBalancer(
data.Label = types.StringPointerValue(nodebalancer.Label)
data.Region = types.StringValue(nodebalancer.Region)
data.ClientConnThrottle = types.Int64Value(int64(nodebalancer.ClientConnThrottle))
data.ClientUDPSessThrottle = types.Int64Value(int64(nodebalancer.ClientUDPSessThrottle))
data.Hostname = types.StringPointerValue(nodebalancer.Hostname)
data.IPv4 = types.StringPointerValue(nodebalancer.IPv4)
data.IPv6 = types.StringPointerValue(nodebalancer.IPv6)
Expand Down
20 changes: 11 additions & 9 deletions linode/nb/framework_models_unit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,16 @@ func TestFlattenNodeBalancer(t *testing.T) {
label := "test-nodebalancer"

nodeBalancer := &linodego.NodeBalancer{
ID: 123,
Label: &label,
Region: "us-east",
ClientConnThrottle: 10,
Hostname: &hostname,
IPv4: &IPv4,
IPv6: &IPv6,
Created: &createdTime,
Updated: &updatedTime,
ID: 123,
Label: &label,
Region: "us-east",
ClientConnThrottle: 10,
ClientUDPSessThrottle: 5,
Hostname: &hostname,
IPv4: &IPv4,
IPv6: &IPv6,
Created: &createdTime,
Updated: &updatedTime,
Transfer: linodego.NodeBalancerTransfer{
In: &transferIn,
Out: &transferOut,
Expand All @@ -73,6 +74,7 @@ func TestFlattenNodeBalancer(t *testing.T) {
assert.Equal(t, types.StringValue("123"), nodeBalancerModel.ID)
assert.Equal(t, types.StringValue("us-east"), nodeBalancerModel.Region)
assert.Equal(t, types.Int64Value(10), nodeBalancerModel.ClientConnThrottle)
assert.Equal(t, types.Int64Value(5), nodeBalancerModel.ClientUDPSessThrottle)
assert.Equal(t, types.StringPointerValue(&hostname), nodeBalancerModel.Hostname)
assert.Equal(t, types.StringPointerValue(&IPv4), nodeBalancerModel.IPv4)
assert.Equal(t, types.StringPointerValue(&IPv6), nodeBalancerModel.IPv6)
Expand Down
29 changes: 23 additions & 6 deletions linode/nb/framework_resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,19 @@ func (r *Resource) Create(
return
}

clientUDPSessThrottle := helper.FrameworkSafeInt64ToInt(
data.ClientUDPSessThrottle.ValueInt64(),
&resp.Diagnostics,
)
if resp.Diagnostics.HasError() {
return
}

createOpts := linodego.NodeBalancerCreateOptions{
Region: data.Region.ValueString(),
Label: data.Label.ValueStringPointer(),
ClientConnThrottle: &clientConnThrottle,
Region: data.Region.ValueString(),
Label: data.Label.ValueStringPointer(),
ClientConnThrottle: &clientConnThrottle,
ClientUDPSessThrottle: &clientUDPSessThrottle,
}

if !data.FirewallID.IsNull() {
Expand Down Expand Up @@ -198,7 +207,7 @@ func (r *Resource) Update(

isEqual := state.Label.Equal(plan.Label) &&
state.ClientConnThrottle.Equal(plan.ClientConnThrottle) &&
state.Tags.Equal(plan.Tags)
state.Tags.Equal(plan.Tags) && state.ClientUDPSessThrottle.Equal(plan.ClientUDPSessThrottle)

if !isEqual {
clientConnThrottle := helper.FrameworkSafeInt64ToInt(
Expand All @@ -208,9 +217,17 @@ func (r *Resource) Update(
if resp.Diagnostics.HasError() {
return
}
clientUDPSessThrottle := helper.FrameworkSafeInt64ToInt(
plan.ClientUDPSessThrottle.ValueInt64(),
&resp.Diagnostics,
)
if resp.Diagnostics.HasError() {
return
}
updateOpts := linodego.NodeBalancerUpdateOptions{
Label: plan.Label.ValueStringPointer(),
ClientConnThrottle: &clientConnThrottle,
Label: plan.Label.ValueStringPointer(),
ClientConnThrottle: &clientConnThrottle,
ClientUDPSessThrottle: &clientUDPSessThrottle,
}
resp.Diagnostics.Append(plan.Tags.ElementsAs(ctx, &updateOpts.Tags, false)...)
if resp.Diagnostics.HasError() {
Expand Down
9 changes: 9 additions & 0 deletions linode/nb/framework_resource_schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,15 @@ var frameworkResourceSchema = schema.Schema{
Computed: true,
Default: int64default.StaticInt64(0),
},
"client_udp_sess_throttle": schema.Int64Attribute{
Description: "Throttle UDP sessions per second (0-20). Set to 0 (zero) to disable throttling.",
Validators: []validator.Int64{
int64validator.Between(0, 20),
},
Optional: true,
Computed: true,
Default: int64default.StaticInt64(0),
},
"firewall_id": schema.Int64Attribute{
Description: "ID for the firewall you'd like to use with this NodeBalancer.",
Optional: true,
Expand Down
20 changes: 20 additions & 0 deletions linode/nb/resource_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ func TestAccResourceNodeBalancer_basic_smoke(t *testing.T) {
checkNodeBalancerExists,
resource.TestCheckResourceAttr(resName, "label", nodebalancerName),
resource.TestCheckResourceAttr(resName, "client_conn_throttle", "20"),
resource.TestCheckResourceAttr(resName, "client_udp_sess_throttle", "10"),
resource.TestCheckResourceAttr(resName, "region", testRegion),

resource.TestCheckResourceAttrSet(resName, "hostname"),
Expand Down Expand Up @@ -133,6 +134,7 @@ func TestAccResourceNodeBalancer_update(t *testing.T) {
checkNodeBalancerExists,
resource.TestCheckResourceAttr(resName, "label", nodebalancerName),
resource.TestCheckResourceAttr(resName, "client_conn_throttle", "20"),
resource.TestCheckResourceAttr(resName, "client_udp_sess_throttle", "10"),
resource.TestCheckResourceAttr(resName, "region", testRegion),

resource.TestCheckResourceAttrSet(resName, "hostname"),
Expand All @@ -144,7 +146,25 @@ func TestAccResourceNodeBalancer_update(t *testing.T) {
resource.TestCheckResourceAttr(resName, "tags.0", "tf_test"),
),
},
{
Config: tmpl.Updates(t, nodebalancerName, testRegion),
Check: resource.ComposeTestCheckFunc(
checkNodeBalancerExists,
resource.TestCheckResourceAttr(resName, "label", nodebalancerName+"_r"),
resource.TestCheckResourceAttr(resName, "client_conn_throttle", "0"),
resource.TestCheckResourceAttr(resName, "client_udp_sess_throttle", "5"),
resource.TestCheckResourceAttr(resName, "region", testRegion),

resource.TestCheckResourceAttrSet(resName, "hostname"),
resource.TestCheckResourceAttrSet(resName, "ipv4"),
resource.TestCheckResourceAttrSet(resName, "ipv6"),
resource.TestCheckResourceAttrSet(resName, "created"),
resource.TestCheckResourceAttrSet(resName, "updated"),
resource.TestCheckResourceAttr(resName, "tags.#", "2"),
resource.TestCheckResourceAttr(resName, "tags.0", "tf_test"),
resource.TestCheckResourceAttr(resName, "tags.1", "tf_test_2"),
),
},
{
ResourceName: resName,
ImportState: true,
Expand Down
1 change: 1 addition & 0 deletions linode/nb/tmpl/basic.gotf
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ resource "linode_nodebalancer" "foobar" {
label = "{{.Label}}"
region = "{{ .Region }}"
client_conn_throttle = 20
client_udp_sess_throttle = 10
tags = ["tf_test"]
firewall_id = linode_firewall.e2e_test_firewall.id
}
Expand Down
1 change: 1 addition & 0 deletions linode/nb/tmpl/updates.gotf
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ resource "linode_nodebalancer" "foobar" {
label = "{{.Label}}_r"
region = "{{ .Region }}"
client_conn_throttle = 0
client_udp_sess_throttle = 5
tags = ["tf_test", "tf_test_2"]
firewall_id = linode_firewall.e2e_test_firewall.id
}
Expand Down
Loading

0 comments on commit 5a7b000

Please sign in to comment.