diff --git a/containermetadata/containermetadata.go b/containermetadata/containermetadata.go index 8f8f096..c0f322d 100644 --- a/containermetadata/containermetadata.go +++ b/containermetadata/containermetadata.go @@ -259,7 +259,8 @@ func createKubernetesClient(ctx context.Context, instance *Handler) error { instance.nodeName, err = getNodeName() if err != nil { - return fmt.Errorf("failed to get kubernetes node name; %v", err) + log.Errorf("failed to get kubernetes node name; %v", err) + instance.nodeName = "UNKNOWN" } instance.containerMetadataCache, err = getContainerMetadataCache(ctx, instance) @@ -492,7 +493,9 @@ func (h *Handler) getKubernetesPodMetadata(pidContainerID string) ( FieldSelector: "spec.nodeName=" + h.nodeName, }) if err != nil { - return ContainerMetadata{}, fmt.Errorf("failed to retrieve kubernetes pods, %v", err) + containerMetadata := ContainerMetadata{} + h.containerMetadataCache.Add(pidContainerID, containerMetadata) + return containerMetadata, fmt.Errorf("failed to retrieve kubernetes pods, %v", err) } for j := range pods.Items { @@ -520,7 +523,9 @@ func (h *Handler) getKubernetesPodMetadata(pidContainerID string) ( } } - return ContainerMetadata{}, + containerMetadata := ContainerMetadata{} + h.containerMetadataCache.Add(pidContainerID, containerMetadata) + return containerMetadata, fmt.Errorf("failed to find matching kubernetes pod/container metadata for "+ "containerID '%v' in %d pods", pidContainerID, len(pods.Items)) }