Skip to content

Commit 0eaee05

Browse files
committed
assign ipv6 addresses to linodes
1 parent 89df2ec commit 0eaee05

File tree

4 files changed

+25
-2
lines changed

4 files changed

+25
-2
lines changed

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,3 +152,5 @@ require (
152152
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
153153
sigs.k8s.io/yaml v1.4.0 // indirect
154154
)
155+
156+
replace github.com/linode/linodego => github.com/linode/linodego v1.51.1-0.20250529150649-a12f95fbddd5

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
177177
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
178178
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
179179
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
180-
github.com/linode/linodego v1.52.1 h1:HJ1cz1n9n3chRP9UrtqmP91+xTi0Q5l+H/4z4tpkwgQ=
181-
github.com/linode/linodego v1.52.1/go.mod h1:zEN2sX+cSdp67EuRY1HJiyuLujoa7HqvVwNEcJv3iXw=
180+
github.com/linode/linodego v1.51.1-0.20250529150649-a12f95fbddd5 h1:qCTCFaliZIiYi3iIh9bYpGBL3t8f89qZvvNg4gyoHa8=
181+
github.com/linode/linodego v1.51.1-0.20250529150649-a12f95fbddd5/go.mod h1:zEN2sX+cSdp67EuRY1HJiyuLujoa7HqvVwNEcJv3iXw=
182182
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
183183
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
184184
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=

internal/controller/linodemachine_controller_helpers.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,13 @@ func getVPCInterfaceConfig(ctx context.Context, machineScope *scope.MachineScope
495495
IPv4: &linodego.VPCIPv4{
496496
NAT1To1: ptr.To("any"),
497497
},
498+
IPv6: &linodego.InstanceConfigInterfaceCreateOptionsIPv6{
499+
Ranges: []linodego.InstanceConfigInterfaceCreateOptionsIPv6Range{
500+
{
501+
Range: ptr.To("/64"),
502+
},
503+
},
504+
},
498505
}, nil
499506
}
500507

internal/controller/linodevpc_controller_helpers.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222

2323
"github.com/go-logr/logr"
2424
"github.com/linode/linodego"
25+
"k8s.io/utils/ptr"
2526

2627
infrav1alpha2 "github.com/linode/cluster-api-provider-linode/api/v1alpha2"
2728
"github.com/linode/cluster-api-provider-linode/cloud/scope"
@@ -93,15 +94,28 @@ func updateVPCSpecSubnets(vpcScope *scope.VPCScope, vpc *linodego.VPC) {
9394

9495
func linodeVPCSpecToVPCCreateConfig(vpcSpec infrav1alpha2.LinodeVPCSpec) *linodego.VPCCreateOptions {
9596
subnets := make([]linodego.VPCSubnetCreateOptions, len(vpcSpec.Subnets))
97+
vpcIPv6 := []linodego.VPCCreateOptionsIPv6{
98+
{
99+
Range: ptr.To("/48"),
100+
},
101+
}
102+
subnetIPv6 := []linodego.VPCSubnetCreateOptionsIPv6{
103+
{
104+
Range: ptr.To("/56"),
105+
},
106+
}
96107
for idx, subnet := range vpcSpec.Subnets {
97108
subnets[idx] = linodego.VPCSubnetCreateOptions{
98109
Label: subnet.Label,
99110
IPv4: subnet.IPv4,
111+
IPv6: subnetIPv6,
100112
}
101113
}
114+
102115
return &linodego.VPCCreateOptions{
103116
Description: vpcSpec.Description,
104117
Region: vpcSpec.Region,
105118
Subnets: subnets,
119+
IPv6: vpcIPv6,
106120
}
107121
}

0 commit comments

Comments
 (0)