Fails to create metrics when cluster uses dockershim
nicholasdille opened this issue ยท 4 comments
nicholasdille commented
In a cluster (still) using dockershim, the image ID is prefixed with docker-pullable://
by the runtime. As a consequence, the comparison in kubernetes.go#L74 fails for all images.
As a quick workaround, I removed the prefix from c.ImageID
:
--- a/internal/vuln/kubernetes/kubernetes.go
+++ b/internal/vuln/kubernetes/kubernetes.go
@@ -2,6 +2,7 @@ package kubernetes
import (
"context"
+ "strings"
"github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
@@ -71,7 +72,8 @@ func (client *KubeClient) GetContainersWithImage(imageID string) ([]ContainerInf
statuses = append(statuses, p.Status.EphemeralContainerStatuses...)
for _, c := range statuses {
- if c.ImageID == imageID {
+ fixedImageID := strings.ReplaceAll(c.ImageID, "docker-pullable://", "")
+ if fixedImageID == imageID {
infos = append(infos, ContainerInfo{
Namespace: p.Namespace,
PodName: p.Name,
If something like this makes sense as a patch, I'd happily create a PR. But I don't know if k8s.io/client-go offers something more elegant.
ckotzbauer commented
@nicholasdille Thanks for the issue. I think this would be a good patch and I would be happy if you can create a PR for that.
nicholasdille commented
Thank for closing this so quickly. This is really appreciated ๐
ckotzbauer commented
I will cut a release in the evening. ๐
ckotzbauer commented
0.14.1
is out.