Refactor: implement kubernetes tagger in separate struct

This commit is contained in:
Bryan Boreham
2018-07-20 21:57:05 +00:00
parent b87464f53a
commit dd21a55a1e
3 changed files with 10 additions and 4 deletions

View File

@@ -238,8 +238,15 @@ func isPauseContainer(n report.Node, rpt report.Report) bool {
return false
}
// Tagger adds pod parents to container nodes.
type Tagger struct {
}
// Name of this tagger, for metrics gathering
func (Tagger) Name() string { return "K8s" }
// Tag adds pod parents to container nodes.
func (r *Reporter) Tag(rpt report.Report) (report.Report, error) {
func (r *Tagger) Tag(rpt report.Report) (report.Report, error) {
for id, n := range rpt.Container.Nodes {
uid, ok := n.Latest.Lookup(docker.LabelPrefix + "io.kubernetes.pod.uid")
if !ok {

View File

@@ -328,8 +328,7 @@ func TestTagger(t *testing.T) {
docker.LabelPrefix + "io.kubernetes.pod.uid": "123456",
}))
hr := controls.NewDefaultHandlerRegistry()
rpt, err := kubernetes.NewReporter(newMockClient(), nil, "", "", nil, hr, "", 0).Tag(rpt)
rpt, err := (&kubernetes.Tagger{}).Tag(rpt)
if err != nil {
t.Errorf("Unexpected error: %v", err)
}

View File

@@ -273,7 +273,7 @@ func probeMain(flags probeFlags, targets []appclient.Target) {
reporter := kubernetes.NewReporter(client, clients, probeID, hostID, p, handlerRegistry, flags.kubernetesNodeName, flags.kubernetesKubeletPort)
defer reporter.Stop()
p.AddReporter(reporter)
p.AddTagger(reporter)
p.AddTagger(&kubernetes.Tagger{})
} else {
log.Errorf("Kubernetes: failed to start client: %v", err)
log.Errorf("Kubernetes: make sure to run Scope inside a POD with a service account or provide valid probe.kubernetes.* flags")