Skip to content

Commit 9260776

Browse files
add node-internal-dns/node-external-dns address pass-through support (#10852)
* add --node-internal-dns and --node-external-dns Signed-off-by: Arne Winter <[email protected]> Co-authored-by: Brad Davidson <[email protected]> (cherry picked from commit c4c11e5) Signed-off-by: Brad Davidson <[email protected]>
1 parent 75b6304 commit 9260776

File tree

6 files changed

+57
-0
lines changed

6 files changed

+57
-0
lines changed

Diff for: pkg/agent/config/config.go

+12
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,18 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
640640
nodeConfig.AgentConfig.NodeExternalIP = nodeConfig.AgentConfig.NodeExternalIPs[0].String()
641641
}
642642

643+
var nodeExternalDNSs []string
644+
for _, dnsString := range envInfo.NodeExternalDNS.Value() {
645+
nodeExternalDNSs = append(nodeExternalDNSs, strings.Split(dnsString, ",")...)
646+
}
647+
nodeConfig.AgentConfig.NodeExternalDNSs = nodeExternalDNSs
648+
649+
var nodeInternalDNSs []string
650+
for _, dnsString := range envInfo.NodeInternalDNS.Value() {
651+
nodeInternalDNSs = append(nodeInternalDNSs, strings.Split(dnsString, ",")...)
652+
}
653+
nodeConfig.AgentConfig.NodeInternalDNSs = nodeInternalDNSs
654+
643655
nodeConfig.NoFlannel = nodeConfig.FlannelBackend == config.FlannelBackendNone
644656
if !nodeConfig.NoFlannel {
645657
hostLocal, err := exec.LookPath("host-local")

Diff for: pkg/agent/run.go

+11
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,17 @@ func updateAddressAnnotations(nodeConfig *daemonconfig.Node, nodeAnnotations map
491491
}
492492
}
493493

494+
if len(agentConfig.NodeInternalDNSs) > 0 {
495+
result[cp.InternalDNSKey] = strings.Join(agentConfig.NodeInternalDNSs, ",")
496+
} else {
497+
delete(result, cp.InternalDNSKey)
498+
}
499+
if len(agentConfig.NodeExternalDNSs) > 0 {
500+
result[cp.ExternalDNSKey] = strings.Join(agentConfig.NodeExternalDNSs, ",")
501+
} else {
502+
delete(result, cp.ExternalDNSKey)
503+
}
504+
494505
result = labels.Merge(nodeAnnotations, result)
495506
return result, !equality.Semantic.DeepEqual(nodeAnnotations, result)
496507
}

Diff for: pkg/cli/cmds/agent.go

+14
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ type Agent struct {
2323
BindAddress string
2424
NodeIP cli.StringSlice
2525
NodeExternalIP cli.StringSlice
26+
NodeInternalDNS cli.StringSlice
27+
NodeExternalDNS cli.StringSlice
2628
NodeName string
2729
PauseImage string
2830
Snapshotter string
@@ -81,6 +83,16 @@ var (
8183
Usage: "(agent/networking) IPv4/IPv6 external IP addresses to advertise for node",
8284
Value: &AgentConfig.NodeExternalIP,
8385
}
86+
NodeInternalDNSFlag = &cli.StringSliceFlag{
87+
Name: "node-internal-dns",
88+
Usage: "(agent/networking) internal DNS addresses to advertise for node",
89+
Value: &AgentConfig.NodeInternalDNS,
90+
}
91+
NodeExternalDNSFlag = &cli.StringSliceFlag{
92+
Name: "node-external-dns",
93+
Usage: "(agent/networking) external DNS addresses to advertise for node",
94+
Value: &AgentConfig.NodeExternalDNS,
95+
}
8496
NodeNameFlag = &cli.StringFlag{
8597
Name: "node-name",
8698
Usage: "(agent/node) Node name",
@@ -302,6 +314,8 @@ func NewAgentCommand(action func(ctx *cli.Context) error) cli.Command {
302314
NodeIPFlag,
303315
BindAddressFlag,
304316
NodeExternalIPFlag,
317+
NodeInternalDNSFlag,
318+
NodeExternalDNSFlag,
305319
ResolvConfFlag,
306320
FlannelIfaceFlag,
307321
FlannelConfFlag,

Diff for: pkg/cli/cmds/server.go

+2
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,8 @@ var ServerFlags = []cli.Flag{
561561
AirgapExtraRegistryFlag,
562562
NodeIPFlag,
563563
NodeExternalIPFlag,
564+
NodeInternalDNSFlag,
565+
NodeExternalDNSFlag,
564566
ResolvConfFlag,
565567
FlannelIfaceFlag,
566568
FlannelConfFlag,

Diff for: pkg/cloudprovider/instances.go

+16
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import (
1515
var (
1616
InternalIPKey = version.Program + ".io/internal-ip"
1717
ExternalIPKey = version.Program + ".io/external-ip"
18+
InternalDNSKey = version.Program + ".io/internal-dns"
19+
ExternalDNSKey = version.Program + ".io/external-dns"
1820
HostnameKey = version.Program + ".io/hostname"
1921
)
2022

@@ -79,6 +81,20 @@ func (k *k3s) InstanceMetadata(ctx context.Context, node *corev1.Node) (*cloudpr
7981
metadata.NodeAddresses = append(metadata.NodeAddresses, corev1.NodeAddress{Type: corev1.NodeExternalIP, Address: address})
8082
}
8183

84+
// check internal dns
85+
if address := node.Annotations[InternalDNSKey]; address != "" {
86+
for _, v := range strings.Split(address, ",") {
87+
metadata.NodeAddresses = append(metadata.NodeAddresses, corev1.NodeAddress{Type: corev1.NodeInternalDNS, Address: v})
88+
}
89+
}
90+
91+
// check external dns
92+
if address := node.Annotations[ExternalDNSKey]; address != "" {
93+
for _, v := range strings.Split(address, ",") {
94+
metadata.NodeAddresses = append(metadata.NodeAddresses, corev1.NodeAddress{Type: corev1.NodeExternalDNS, Address: v})
95+
}
96+
}
97+
8298
// check hostname
8399
if address := node.Annotations[HostnameKey]; address != "" {
84100
metadata.NodeAddresses = append(metadata.NodeAddresses, corev1.NodeAddress{Type: corev1.NodeHostName, Address: address})

Diff for: pkg/daemons/config/types.go

+2
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,8 @@ type Agent struct {
125125
NodeIPs []net.IP
126126
NodeExternalIP string
127127
NodeExternalIPs []net.IP
128+
NodeInternalDNSs []string
129+
NodeExternalDNSs []string
128130
RuntimeSocket string
129131
ImageServiceSocket string
130132
ListenAddress string

0 commit comments

Comments
 (0)