Skip to content

Commit 4531a91

Browse files
author
Murali Reddy
committed
Handle both cases where node can be registered with master either
by host name or FQDN. kubelet can be started with --hostname-override with configurable value. In AWS envirinment typcally its set FQDN obtained from the metda data. This fix ensures we can deploy kube-router in case nodes are registered with FQDN Fixes #17
1 parent 0751387 commit 4531a91

File tree

4 files changed

+43
-6
lines changed

4 files changed

+43
-6
lines changed

app/controllers/network_policy_controller.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616

1717
"github.com/cloudnativelabs/kube-router/app/options"
1818
"github.com/cloudnativelabs/kube-router/app/watchers"
19+
"github.com/cloudnativelabs/kube-router/utils"
1920
"github.com/coreos/go-iptables/iptables"
2021
"github.com/golang/glog"
2122
"github.com/janeczku/go-ipset/ipset"
@@ -775,12 +776,19 @@ func NewNetworkPolicyController(clientset *kubernetes.Clientset, config *options
775776
if err != nil {
776777
panic(err.Error())
777778
}
778-
npc.nodeHostName = nodeHostName
779+
nodeFqdnHostName := utils.GetFqdn()
779780

780781
node, err := clientset.Core().Nodes().Get(nodeHostName, metav1.GetOptions{})
781782
if err != nil {
782-
panic(err.Error())
783+
node, err = clientset.Core().Nodes().Get(nodeFqdnHostName, metav1.GetOptions{})
784+
if err != nil {
785+
panic(err.Error())
786+
}
787+
npc.nodeHostName = nodeFqdnHostName
788+
} else {
789+
npc.nodeHostName = nodeHostName
783790
}
791+
784792
nodeIP, err := getNodeIP(node)
785793
if err != nil {
786794
panic(err.Error())

app/controllers/network_routes_controller.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,12 +258,19 @@ func NewNetworkRoutingController(clientset *kubernetes.Clientset, kubeRouterConf
258258
if err != nil {
259259
panic(err.Error())
260260
}
261-
nrc.nodeHostName = nodeHostName
261+
nodeFqdnHostName := utils.GetFqdn()
262262

263263
node, err := clientset.Core().Nodes().Get(nodeHostName, metav1.GetOptions{})
264264
if err != nil {
265-
panic(err.Error())
265+
node, err = clientset.Core().Nodes().Get(nodeFqdnHostName, metav1.GetOptions{})
266+
if err != nil {
267+
panic(err.Error())
268+
}
269+
nrc.nodeHostName = nodeFqdnHostName
270+
} else {
271+
nrc.nodeHostName = nodeHostName
266272
}
273+
267274
nodeIP, err := getNodeIP(node)
268275
if err != nil {
269276
panic(err.Error())

app/controllers/network_services_controller.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -547,11 +547,17 @@ func NewNetworkServicesController(clientset *kubernetes.Clientset, config *optio
547547
if err != nil {
548548
panic(err.Error())
549549
}
550-
nsc.nodeHostName = nodeHostName
550+
nodeFqdnHostName := utils.GetFqdn()
551551

552552
node, err := clientset.Core().Nodes().Get(nodeHostName, v1.GetOptions{})
553553
if err != nil {
554-
panic(err.Error())
554+
node, err = clientset.Core().Nodes().Get(nodeFqdnHostName, v1.GetOptions{})
555+
if err != nil {
556+
panic(err.Error())
557+
}
558+
nsc.nodeHostName = nodeFqdnHostName
559+
} else {
560+
nsc.nodeHostName = nodeHostName
555561
}
556562
nodeIP, err := getNodeIP(node)
557563
if err != nil {

utils/fqdn.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package utils
2+
3+
import (
4+
"bytes"
5+
"os/exec"
6+
)
7+
8+
func GetFqdn() string {
9+
cmd := exec.Command("hostname", "-f")
10+
var out bytes.Buffer
11+
cmd.Stdout = &out
12+
cmd.Run()
13+
fqdn := out.String()
14+
fqdn = fqdn[:len(fqdn)-1]
15+
return fqdn
16+
}

0 commit comments

Comments
 (0)