From ed87db34b67a1ee60926a71c2fd4b3c223203fc9 Mon Sep 17 00:00:00 2001 From: Sunil Thaha <sthaha@redhat.com> Date: Thu, 24 Jun 2021 16:52:29 +1000 Subject: [PATCH] jsonnet: kube-prometheus adapt to changes to veth interfaces names With OVN, the container veth network interface names that used to start with `veth` has now changed to `<rand-hex>{15}@if<number>`(see Related Links below). This patch adapts to the new change introduced in ovn and ignores the network interfaces that match `[a-z0-9]{15}@if\d+` in addition to those starting with `veth` Related Links: - https://github.com/openshift/ovn-kubernetes/blob/master/go-controller/vendor/github.com/containernetworking/plugins/pkg/ip/link_linux.go#L107 - https://github.com/openshift/ovn-kubernetes/blob/master/go-controller/pkg/cni/helper_linux.go#L148 Signed-off-by: Sunil Thaha <sthaha@redhat.com> (cherry picked from commit 0280f4ddf9bec5f73aebc461760ac96ce2ab8a16) --- jsonnet/kube-prometheus/components/node-exporter.libsonnet | 7 +++++-- manifests/node-exporter-daemonset.yaml | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/jsonnet/kube-prometheus/components/node-exporter.libsonnet b/jsonnet/kube-prometheus/components/node-exporter.libsonnet index 0f07f8af..3d4c65df 100644 --- a/jsonnet/kube-prometheus/components/node-exporter.libsonnet +++ b/jsonnet/kube-prometheus/components/node-exporter.libsonnet @@ -174,8 +174,11 @@ function(params) { '--no-collector.wifi', '--no-collector.hwmon', '--collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/pods/.+)($|/)', - '--collector.netclass.ignored-devices=^(veth.*)$', - '--collector.netdev.device-exclude=^(veth.*)$', + // NOTE: ignore veth network interface associated with containers. + // OVN renames veth.* to <rand-hex>@if<X> where X is /sys/class/net/<if>/ifindex + // thus [a-z0-9] regex below + '--collector.netclass.ignored-devices=^(veth.*|[a-z0-9]+@if\\d+)$', + '--collector.netdev.device-exclude=^(veth.*|[a-z0-9]+@if\\d+)$', ], volumeMounts: [ { name: 'sys', mountPath: '/host/sys', mountPropagation: 'HostToContainer', readOnly: true }, diff --git a/manifests/node-exporter-daemonset.yaml b/manifests/node-exporter-daemonset.yaml index f63d1019..e1111a32 100644 --- a/manifests/node-exporter-daemonset.yaml +++ b/manifests/node-exporter-daemonset.yaml @@ -30,8 +30,8 @@ spec: - --no-collector.wifi - --no-collector.hwmon - --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/pods/.+)($|/) - - --collector.netclass.ignored-devices=^(veth.*)$ - - --collector.netdev.device-exclude=^(veth.*)$ + - --collector.netclass.ignored-devices=^(veth.*|[a-z0-9]+@if\d+)$ + - --collector.netdev.device-exclude=^(veth.*|[a-z0-9]+@if\d+)$ image: quay.io/prometheus/node-exporter:v1.1.2 name: node-exporter resources: -- GitLab