diff --git a/assets/node-exporter/daemonset.yaml b/assets/node-exporter/daemonset.yaml index 59cb1bb9eb..444dccaf57 100644 --- a/assets/node-exporter/daemonset.yaml +++ b/assets/node-exporter/daemonset.yaml @@ -41,6 +41,7 @@ spec: - --collector.cpu.info - --collector.textfile.directory=/var/node_exporter/textfile - --no-collector.btrfs + command: ["/bin/bash", "/entryponit"] image: quay.io/prometheus/node-exporter:v1.5.0 name: node-exporter resources: @@ -61,6 +62,9 @@ spec: - mountPath: /var/node_exporter/textfile name: node-exporter-textfile readOnly: true + - mountPath: /entryponit + name: node-exporter-entrypoint + readOnly: true workingDir: /var/node_exporter/textfile - args: - --logtostderr @@ -164,6 +168,9 @@ spec: - name: node-exporter-kube-rbac-proxy-config secret: secretName: node-exporter-kube-rbac-proxy-config + - configMap: + name: node-exporter-entrypoint + name: node-exporter-entrypoint updateStrategy: rollingUpdate: maxUnavailable: 10% diff --git a/assets/node-exporter/entrypoint.yaml b/assets/node-exporter/entrypoint.yaml new file mode 100644 index 0000000000..c49645d22c --- /dev/null +++ b/assets/node-exporter/entrypoint.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: node-exporter-entrypoint + namespace: openshift-monitoring +data: + entrypoint: | + export GOMAXPROCS=4 + + # no affinity even when cpusets is set as requests is not integer + NUM_CPUS=$(grep -c '^processor' "/proc/cpuinfo" 2>/dev/null || echo "0") + + if [ "$NUM_CPUS" -lt "$GOMAXPROCS" ]; then + export GOMAXPROCS="$NUM_CPUS" + fi + + echo "Set GOMAXPROCS=$GOMAXPROCS" + + # TODO: maybe get /bin/node_exporter somewhere? envvar? + exec /bin/node_exporter "$@" \ No newline at end of file