Skip to content

Commit f958bc3

Browse files
Add limit error for prefix
1 parent 65ef7f0 commit f958bc3

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

cloud/linode/cloud.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ type linodeCloud struct {
7272
var (
7373
instanceCache *instances
7474
ipHolderCharLimit int = 23
75+
LoadBalancerPrefixCharLimit int = 20
7576
)
7677

7778
func init() {
@@ -194,6 +195,12 @@ func newCloud() (cloudprovider.Interface, error) {
194195
return nil, fmt.Errorf("%s", msg)
195196
}
196197

198+
if len(Options.LoadBalancerPrefix) > LoadBalancerPrefixCharLimit {
199+
msg := fmt.Sprintf("load-balancer-prefix must be %d characters or less: %s is %d characters\n", LoadBalancerPrefixCharLimit, Options.LoadBalancerPrefix, len(Options.LoadBalancerPrefix))
200+
klog.Error(msg)
201+
return nil, fmt.Errorf("%s", msg)
202+
}
203+
197204
// create struct that satisfies cloudprovider.Interface
198205
lcloud := &linodeCloud{
199206
client: linodeClient,

cloud/linode/cloud_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,16 @@ func TestNewCloud(t *testing.T) {
126126
_, err := newCloud()
127127
assert.Error(t, err, "expected error if ipholdersuffix is longer than 23 chars")
128128
})
129+
130+
t.Run("should fail if load-balancer-prefix is longer than 20 chars", func(t *testing.T) {
131+
prefix := Options.LoadBalancerPrefix
132+
Options.LoadBalancerPrefix = strings.Repeat("a", 21)
133+
defer func() {
134+
Options.LoadBalancerPrefix = prefix
135+
}()
136+
_, err := newCloud()
137+
assert.Error(t, err, "expected error if load-balancer-prefix is longer than 20 chars")
138+
})
129139
}
130140

131141
func Test_linodeCloud_LoadBalancer(t *testing.T) {

main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ func main() {
9898
command.Flags().IntVar(&linode.Options.NodeBalancerBackendIPv4SubnetID, "nodebalancer-backend-ipv4-subnet-id", 0, "ipv4 subnet id to use for NodeBalancer backends")
9999
command.Flags().StringVar(&linode.Options.NodeBalancerBackendIPv4SubnetName, "nodebalancer-backend-ipv4-subnet-name", "", "ipv4 subnet name to use for NodeBalancer backends")
100100
command.Flags().BoolVar(&linode.Options.DisableNodeBalancerVPCBackends, "disable-nodebalancer-vpc-backends", false, "disables nodebalancer backends in VPCs (when enabled, nodebalancers will only have private IPs as backends for backward compatibility)")
101-
command.Flags().StringVar(&linode.Options.LoadBalancerPrefix, "load-balancer-prefix", "ccm-", "Name prefix for LoadBalancers. (Max 20 char.)")
101+
command.Flags().StringVar(&linode.Options.LoadBalancerPrefix, "load-balancer-prefix", "ccm-", "Name prefix for LoadBalancers. (max. 20 char.)")
102102

103103
// Set static flags
104104
command.Flags().VisitAll(func(fl *pflag.Flag) {

0 commit comments

Comments
 (0)