Skip to content

Commit 43c1d06

Browse files
hunchbacklebauce
authored andcommitted
K8s: fix deployment metadata (#1224)
* k8s: deployment minor changes
1 parent d314e66 commit 43c1d06

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

tests/k8s_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ func TestK8sContainerNode(t *testing.T) {
167167
}
168168

169169
func TestK8sDeploymentNode(t *testing.T) {
170-
testNodeCreationFromConfig(t, "deployment", objName+"-deployment")
170+
testNodeCreationFromConfig(t, "deployment", objName+"-deployment", "Selector", "DesiredReplicas", "Replicas", "ReadyReplicas", "AvailableReplicas", "UnavailableReplicas")
171171
}
172172

173173
func TestK8sIngressNode(t *testing.T) {

topology/probes/k8s/deployment.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,18 @@ type deployProbe struct {
4040
}
4141

4242
func dumpDeployment(deploy *v1beta1.Deployment) string {
43-
return fmt.Sprintf("deployment{Name: %s}", deploy.GetName())
43+
return fmt.Sprintf("deployment{Namespace: %s, Name: %s}", deploy.Namespace, deploy.Name)
4444
}
4545

4646
func (p *deployProbe) newMetadata(deploy *v1beta1.Deployment) graph.Metadata {
47-
return newMetadata("deployment", deploy.Namespace, deploy.GetName(), deploy)
47+
m := newMetadata("deployment", deploy.Namespace, deploy.Name, deploy)
48+
m.SetFieldAndNormalize("Selector", deploy.Spec.Selector)
49+
m.SetField("DesiredReplicas", int32ValueOrDefault(deploy.Spec.Replicas, 1))
50+
m.SetField("Replicas", deploy.Status.Replicas)
51+
m.SetField("ReadyReplicas", deploy.Status.ReadyReplicas)
52+
m.SetField("AvailableReplicas", deploy.Status.AvailableReplicas)
53+
m.SetField("UnavailableReplicas", deploy.Status.UnavailableReplicas)
54+
return m
4855
}
4956

5057
func deployUID(deploy *v1beta1.Deployment) graph.Identifier {
@@ -66,8 +73,8 @@ func (p *deployProbe) OnUpdate(oldObj, newObj interface{}) {
6673
p.graph.Lock()
6774
defer p.graph.Unlock()
6875

69-
if nsNode := p.graph.GetNode(deployUID(deploy)); nsNode != nil {
70-
addMetadata(p.graph, nsNode, deploy)
76+
if deployNode := p.graph.GetNode(deployUID(deploy)); deployNode != nil {
77+
addMetadata(p.graph, deployNode, deploy)
7178
logging.GetLogger().Debugf("Updated %s", dumpDeployment(deploy))
7279
}
7380
}
@@ -78,8 +85,8 @@ func (p *deployProbe) OnDelete(obj interface{}) {
7885
p.graph.Lock()
7986
defer p.graph.Unlock()
8087

81-
if nsNode := p.graph.GetNode(deployUID(deploy)); nsNode != nil {
82-
p.graph.DelNode(nsNode)
88+
if deployNode := p.graph.GetNode(deployUID(deploy)); deployNode != nil {
89+
p.graph.DelNode(deployNode)
8390
logging.GetLogger().Debugf("Deleted %s", dumpDeployment(deploy))
8491
}
8592
}

topology/probes/k8s/probe.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ func dumpObject(obj interface{}) string {
4242
}
4343
}
4444

45+
func int32ValueOrDefault(value *int32, defaultValue int32) int32 {
46+
if value == nil {
47+
return defaultValue
48+
}
49+
return *value
50+
}
51+
4552
// Probe for tracking k8s events
4653
type Probe struct {
4754
bundle *probe.ProbeBundle

0 commit comments

Comments
 (0)