Skip to content
This repository was archived by the owner on Dec 1, 2018. It is now read-only.

Commit 105c0f2

Browse files
authored
Merge pull request #2070 from kawych/release-1.5
Add an option to read Host ID from node annotation if ExternalID is not available
2 parents bd2bb79 + 19be17e commit 105c0f2

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

events/sinks/factory.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func (this *SinkFactory) BuildAll(uris flags.Uris) []core.EventSink {
5959
for _, uri := range uris {
6060
sink, err := this.Build(uri)
6161
if err != nil {
62-
glog.Errorf("Failed to create sink: %v", err)
62+
glog.Errorf("Failed to create %v sink: %v", uri, err)
6363
continue
6464
}
6565
result = append(result, sink)

metrics/sources/summary/summary.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -385,9 +385,10 @@ func (this *summaryMetricsSource) getSystemContainerName(c *stats.ContainerStats
385385

386386
// TODO: The summaryProvider duplicates a lot of code from kubeletProvider, and should be refactored.
387387
type summaryProvider struct {
388-
nodeLister v1listers.NodeLister
389-
reflector *cache.Reflector
390-
kubeletClient *kubelet.KubeletClient
388+
nodeLister v1listers.NodeLister
389+
reflector *cache.Reflector
390+
kubeletClient *kubelet.KubeletClient
391+
hostIDAnnotation string
391392
}
392393

393394
func (this *summaryProvider) GetMetricsSources() []MetricsSource {
@@ -418,10 +419,14 @@ func (this *summaryProvider) getNodeInfo(node *kube_api.Node) (NodeInfo, error)
418419
if hostname == "" {
419420
hostname = node.Name
420421
}
422+
hostID := node.Spec.ExternalID
423+
if hostID == "" && this.hostIDAnnotation != "" {
424+
hostID = node.Annotations[this.hostIDAnnotation]
425+
}
421426
info := NodeInfo{
422427
NodeName: node.Name,
423428
HostName: hostname,
424-
HostID: node.Spec.ExternalID,
429+
HostID: hostID,
425430
Host: kubelet.Host{
426431
IP: ip,
427432
Port: this.kubeletClient.GetPort(),
@@ -432,6 +437,12 @@ func (this *summaryProvider) getNodeInfo(node *kube_api.Node) (NodeInfo, error)
432437
}
433438

434439
func NewSummaryProvider(uri *url.URL) (MetricsSourceProvider, error) {
440+
opts := uri.Query()
441+
442+
hostIDAnnotation := ""
443+
if len(opts["host_id_annotation"]) > 0 {
444+
hostIDAnnotation = opts["host_id_annotation"][0]
445+
}
435446
// create clients
436447
kubeConfig, kubeletConfig, err := kubelet.GetKubeConfigs(uri)
437448
if err != nil {
@@ -446,8 +457,9 @@ func NewSummaryProvider(uri *url.URL) (MetricsSourceProvider, error) {
446457
nodeLister, reflector, _ := util.GetNodeLister(kubeClient)
447458

448459
return &summaryProvider{
449-
nodeLister: nodeLister,
450-
reflector: reflector,
451-
kubeletClient: kubeletClient,
460+
nodeLister: nodeLister,
461+
reflector: reflector,
462+
kubeletClient: kubeletClient,
463+
hostIDAnnotation: hostIDAnnotation,
452464
}, nil
453465
}

0 commit comments

Comments
 (0)