Skip to content

Commit 87e27be

Browse files
committed
use UID for deployment as key instead of name
Signed-off-by: odubajDT <[email protected]>
1 parent 973d0c1 commit 87e27be

File tree

5 files changed

+34
-33
lines changed

5 files changed

+34
-33
lines changed

processor/k8sattributesprocessor/client_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ func (f *fakeClient) GetNode(nodeName string) (*kube.Node, bool) {
7272
return node, ok
7373
}
7474

75-
func (f *fakeClient) GetDeployment(deploymentName string) (*kube.Deployment, bool) {
76-
d, ok := f.Deployments[deploymentName]
75+
func (f *fakeClient) GetDeployment(deploymentUID string) (*kube.Deployment, bool) {
76+
d, ok := f.Deployments[deploymentUID]
7777
return d, ok
7878
}
7979

processor/k8sattributesprocessor/internal/kube/client.go

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ type WatchClient struct {
7474
Nodes map[string]*Node
7575

7676
// A map containing Deployment related data, used to associate them with resources.
77-
// Key is deployment name
77+
// Key is deployment uid
7878
Deployments map[string]*Deployment
7979

8080
// A map containing ReplicaSets related data, used to associate them with resources.
@@ -431,7 +431,7 @@ func (c *WatchClient) handleDeploymentDelete(obj any) {
431431
if deployment, ok := ignoreDeletedFinalStateUnknown(obj).(*apps_v1.Deployment); ok {
432432
c.m.Lock()
433433
if n, ok := c.Deployments[deployment.Name]; ok {
434-
delete(c.Deployments, n.Name)
434+
delete(c.Deployments, n.UID)
435435
}
436436
c.m.Unlock()
437437
} else {
@@ -869,19 +869,19 @@ func (c *WatchClient) extractDeploymentAttributes(d *apps_v1.Deployment) map[str
869869

870870
func (c *WatchClient) podFromAPI(pod *api_v1.Pod) *Pod {
871871
newPod := &Pod{
872-
Name: pod.Name,
873-
Namespace: pod.GetNamespace(),
874-
NodeName: pod.Spec.NodeName,
875-
DeploymentName: "",
876-
Address: pod.Status.PodIP,
877-
HostNetwork: pod.Spec.HostNetwork,
878-
PodUID: string(pod.UID),
879-
StartTime: pod.Status.StartTime,
872+
Name: pod.Name,
873+
Namespace: pod.GetNamespace(),
874+
NodeName: pod.Spec.NodeName,
875+
DeploymentUID: "",
876+
Address: pod.Status.PodIP,
877+
HostNetwork: pod.Spec.HostNetwork,
878+
PodUID: string(pod.UID),
879+
StartTime: pod.Status.StartTime,
880880
}
881881

882882
if replicaset, ok := c.getReplicaSet(getPodReplicaSetUID(pod)); ok {
883-
if replicaset.Deployment.Name != "" {
884-
newPod.DeploymentName = replicaset.Deployment.Name
883+
if replicaset.Deployment.UID != "" {
884+
newPod.DeploymentUID = replicaset.Deployment.UID
885885
}
886886
}
887887

@@ -1172,12 +1172,13 @@ func (c *WatchClient) addOrUpdateNode(node *api_v1.Node) {
11721172
func (c *WatchClient) addOrUpdateDeployment(deployment *apps_v1.Deployment) {
11731173
newDeployment := &Deployment{
11741174
Name: deployment.Name,
1175+
UID: string(deployment.UID),
11751176
}
11761177
newDeployment.Attributes = c.extractDeploymentAttributes(deployment)
11771178

11781179
c.m.Lock()
1179-
if deployment.Name != "" {
1180-
c.Deployments[deployment.Name] = newDeployment
1180+
if deployment.UID != "" {
1181+
c.Deployments[string(deployment.UID)] = newDeployment
11811182
}
11821183
c.m.Unlock()
11831184
}

processor/k8sattributesprocessor/internal/kube/client_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1426,7 +1426,7 @@ func TestDeploymentExtractionRules(t *testing.T) {
14261426
t.Run(tc.name, func(t *testing.T) {
14271427
c.Rules = tc.rules
14281428
c.handleDeploymentAdd(deployment)
1429-
n, ok := c.GetDeployment(deployment.Name)
1429+
n, ok := c.GetDeployment(string(deployment.UID))
14301430
require.True(t, ok)
14311431

14321432
assert.Equal(t, len(tc.attributes), len(n.Attributes))

processor/k8sattributesprocessor/internal/kube/kube.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,16 +107,16 @@ type APIClientsetProvider func(config k8sconfig.APIConfig) (kubernetes.Interface
107107

108108
// Pod represents a kubernetes pod.
109109
type Pod struct {
110-
Name string
111-
Address string
112-
PodUID string
113-
Attributes map[string]string
114-
StartTime *metav1.Time
115-
Ignore bool
116-
Namespace string
117-
NodeName string
118-
DeploymentName string
119-
HostNetwork bool
110+
Name string
111+
Address string
112+
PodUID string
113+
Attributes map[string]string
114+
StartTime *metav1.Time
115+
Ignore bool
116+
Namespace string
117+
NodeName string
118+
DeploymentUID string
119+
HostNetwork bool
120120

121121
// Containers specifies all containers in this pod.
122122
Containers PodContainers

processor/k8sattributesprocessor/processor.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ func (kp *kubernetesprocessor) processResource(ctx context.Context, resource pco
185185
}
186186
}
187187

188-
deployment := getDeploymentName(pod, resource.Attributes())
188+
deployment := getDeploymentUID(pod, resource.Attributes())
189189
if deployment != "" {
190190
attrsToAdd := kp.getAttributesForPodsDeployment(deployment)
191191
for key, val := range attrsToAdd {
@@ -215,9 +215,9 @@ func getNodeName(pod *kube.Pod, resAttrs pcommon.Map) string {
215215
return stringAttributeFromMap(resAttrs, conventions.AttributeK8SNodeName)
216216
}
217217

218-
func getDeploymentName(pod *kube.Pod, resAttrs pcommon.Map) string {
219-
if pod != nil && pod.DeploymentName != "" {
220-
return pod.DeploymentName
218+
func getDeploymentUID(pod *kube.Pod, resAttrs pcommon.Map) string {
219+
if pod != nil && pod.DeploymentUID != "" {
220+
return pod.DeploymentUID
221221
}
222222
return stringAttributeFromMap(resAttrs, conventions.AttributeK8SDeploymentName)
223223
}
@@ -308,8 +308,8 @@ func (kp *kubernetesprocessor) getAttributesForPodsNode(nodeName string) map[str
308308
return node.Attributes
309309
}
310310

311-
func (kp *kubernetesprocessor) getAttributesForPodsDeployment(deploymentName string) map[string]string {
312-
d, ok := kp.kc.GetDeployment(deploymentName)
311+
func (kp *kubernetesprocessor) getAttributesForPodsDeployment(deploymentUID string) map[string]string {
312+
d, ok := kp.kc.GetDeployment(deploymentUID)
313313
if !ok {
314314
return nil
315315
}

0 commit comments

Comments
 (0)