Skip to content

Commit

Permalink
Merge pull request #66 from gardener/allow-nodes-without-hostname
Browse files Browse the repository at this point in the history
Allow nodes without hostname
  • Loading branch information
MartinWeindel committed May 22, 2024
2 parents 3ff2817 + 29f1cd1 commit 1d1d9fa
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 11 deletions.
2 changes: 1 addition & 1 deletion pkg/controller/watch.go
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ func (w *watch) Start(ctx context.Context) error {
w.log.Errorf("unmarshal configmap %s/%s failed: %s", common.NamespaceKubeSystem, common.NameClusterConfigMap, err)
continue
}
cfg, err = deploy.BuildClusterConfig(nodes, pods, internalAPIServer, apiServer)
cfg, err = deploy.BuildClusterConfig(w.log, nodes, pods, internalAPIServer, apiServer)
if err != nil {
w.log.Errorf("building cluster config failed: %w", err)
continue
Expand Down
17 changes: 13 additions & 4 deletions pkg/deploy/clusterconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,16 @@ import (
"github.com/gardener/network-problem-detector/pkg/common"
"github.com/gardener/network-problem-detector/pkg/common/config"

"github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
)

func BuildClusterConfig(nodes []*corev1.Node, agentPods []*corev1.Pod,
internalKubeAPIServer, kubeAPIServer *config.Endpoint,
func BuildClusterConfig(
log logrus.FieldLogger,
nodes []*corev1.Node,
agentPods []*corev1.Pod,
internalKubeAPIServer,
kubeAPIServer *config.Endpoint,
) (*config.ClusterConfig, error) {
clusterConfig := &config.ClusterConfig{
InternalKubeAPIServer: internalKubeAPIServer,
Expand All @@ -36,8 +41,12 @@ func BuildClusterConfig(nodes []*corev1.Node, agentPods []*corev1.Pod,
ip = addr.Address
}
}
if hostname == "" || ip == "" {
return clusterConfig, fmt.Errorf("invalid node: %s", n.Name)
if ip == "" {
log.Infof("ignore node %s without internalIP", n.Name)
continue
}
if hostname == "" {
hostname = n.Name
}
clusterConfig.Nodes = append(clusterConfig.Nodes, config.Node{
Hostname: hostname,
Expand Down
10 changes: 5 additions & 5 deletions pkg/deploy/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,11 +155,11 @@ func (dc *deployCommand) deployAgent(log logrus.FieldLogger, hostnetwork bool,
if err != nil {
return fmt.Errorf("error building service[%t]: %s", hostnetwork, err)
}
acm, err := buildAgentConfigMap()
acm, err := buildAgentConfigMap(log)
if err != nil {
return fmt.Errorf("error building config map: %s", err)
}
ccm, err := buildClusterConfigMap()
ccm, err := buildClusterConfigMap(log)
if err != nil {
return fmt.Errorf("error building config map: %s", err)
}
Expand Down Expand Up @@ -239,15 +239,15 @@ func (dc *deployCommand) deleteSecurityObjects(log logrus.FieldLogger) error {
return nil
}

func (dc *deployCommand) buildAgentConfigMap() (*corev1.ConfigMap, error) {
func (dc *deployCommand) buildAgentConfigMap(_ logrus.FieldLogger) (*corev1.ConfigMap, error) {
agentConfig, err := dc.agentDeployConfig.BuildAgentConfig()
if err != nil {
return nil, err
}
return BuildAgentConfigMap(agentConfig)
}

func (dc *deployCommand) buildClusterConfigMap() (*corev1.ConfigMap, error) {
func (dc *deployCommand) buildClusterConfigMap(log logrus.FieldLogger) (*corev1.ConfigMap, error) {
ctx := context.Background()
svc, err := dc.Clientset.CoreV1().Services(common.NamespaceDefault).Get(ctx, common.NameKubernetesService, metav1.GetOptions{})
if err != nil {
Expand Down Expand Up @@ -278,7 +278,7 @@ func (dc *deployCommand) buildClusterConfigMap() (*corev1.ConfigMap, error) {
return nil, err
}

clusterConfig, err := BuildClusterConfig(nodes, agentPods, internalAPIServer, apiServer)
clusterConfig, err := BuildClusterConfig(log, nodes, agentPods, internalAPIServer, apiServer)
if err != nil {
return nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/deploy/object.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ type Object interface {
metav1.Object
}

type buildObject[T Object] func() (T, error)
type buildObject[T Object] func(log logrus.FieldLogger) (T, error)

type ObjectInterface[T Object] interface {
Create(ctx context.Context, obj T, opts metav1.CreateOptions) (T, error)
Expand Down

0 comments on commit 1d1d9fa

Please sign in to comment.