Skip to content

Commit 7ed28cd

Browse files
authored
Add public ipv6 node address support (#898)
When used with droplets that have public ipv6 addresses, these will be added to the node metadata.
1 parent 9f0b78f commit 7ed28cd

3 files changed

Lines changed: 339 additions & 85 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
## unreleased
22

3+
* Add public ipv6 node address handling (@gottwald)
4+
35
## v0.1.65 (beta) - January 14, 2026
46

57
* Fix syncTags error handling bug (@gottwald)

cloud-controller-manager/do/common.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,11 +137,20 @@ func nodeAddresses(droplet *godo.Droplet) ([]v1.NodeAddress, error) {
137137
}
138138
addresses = append(addresses, v1.NodeAddress{Type: v1.NodeInternalIP, Address: privateIP})
139139

140-
publicIP, err := droplet.PublicIPv4()
141-
if err != nil || publicIP == "" {
142-
return nil, fmt.Errorf("could not get public ip: %v", err)
140+
publicIPv4, err := droplet.PublicIPv4()
141+
if err != nil || publicIPv4 == "" {
142+
return nil, fmt.Errorf("could not get public ipv4: %v", err)
143+
}
144+
addresses = append(addresses, v1.NodeAddress{Type: v1.NodeExternalIP, Address: publicIPv4})
145+
146+
publicIPv6, err := droplet.PublicIPv6()
147+
if err != nil {
148+
return nil, fmt.Errorf("could not get public ipv6: %v", err)
149+
}
150+
if publicIPv6 != "" {
151+
// not all instances come with ipv6 addresses
152+
addresses = append(addresses, v1.NodeAddress{Type: v1.NodeExternalIP, Address: publicIPv6})
143153
}
144-
addresses = append(addresses, v1.NodeAddress{Type: v1.NodeExternalIP, Address: publicIP})
145154

146155
return addresses, nil
147156
}

0 commit comments

Comments
 (0)