fix(monitoring): drop ethtool exporter (#572)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
deleted file mode 100644
index db5094d..0000000
--- a/.github/workflows/test.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: test
-on:
- pull_request: {}
-
-jobs:
- build-prometheus-ethtool-exporter:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - uses: tj-actions/changed-files@v36
- id: changed-files
- with:
- files: images/prometheus-ethtool-exporter/*
- - uses: docker/setup-qemu-action@v2
- if: steps.changed-files.outputs.any_changed == 'true'
- - uses: docker/setup-buildx-action@v2
- if: steps.changed-files.outputs.any_changed == 'true'
- - run: echo PROJECT_REF=$(cat images/prometheus-ethtool-exporter/ref) >> $GITHUB_ENV
- if: steps.changed-files.outputs.any_changed == 'true'
- - uses: docker/login-action@v2
- if: steps.changed-files.outputs.any_changed == 'true'
- with:
- registry: quay.io
- username: ${{ secrets.QUAY_USERNAME }}
- password: ${{ secrets.QUAY_ROBOT_TOKEN }}
- - uses: docker/build-push-action@v4
- if: steps.changed-files.outputs.any_changed == 'true'
- with:
- context: images/prometheus-ethtool-exporter
- cache-from: type=gha,scope=prometheus-ethtool-exporter
- cache-to: type=gha,mode=max,scope=prometheus-ethtool-exporter
- platforms: linux/amd64,linux/arm64
- push: true
- build-args: |
- PROJECT_REF=${{ env.PROJECT_REF }}
- tags: |
- quay.io/vexxhost/ethtool-exporter:${{ env.PROJECT_REF }}
diff --git a/images/prometheus-ethtool-exporter/.dockerignore b/images/prometheus-ethtool-exporter/.dockerignore
deleted file mode 100644
index 72e8ffc..0000000
--- a/images/prometheus-ethtool-exporter/.dockerignore
+++ /dev/null
@@ -1 +0,0 @@
-*
diff --git a/images/prometheus-ethtool-exporter/Dockerfile b/images/prometheus-ethtool-exporter/Dockerfile
deleted file mode 100644
index b413b93..0000000
--- a/images/prometheus-ethtool-exporter/Dockerfile
+++ /dev/null
@@ -1,26 +0,0 @@
-# syntax=docker/dockerfile:1.4
-
-FROM python:3
-
-# Install binary dependencies
-RUN <<EOF
- apt-get update
- apt-get install -y --no-install-recommends \
- ethtool
- apt-get clean
- rm -rfv /var/lib/apt/lists/*
-EOF
-
-# Install Python dependencies
-RUN --mount=type=cache,target=/root/.cache <<EOF
- pip install prometheus-client==0.14.1
-EOF
-
-# Install exporter
-ARG PROJECT_REF
-ADD --chmod=755 \
- https://raw.githubusercontent.com/Showmax/prometheus-ethtool-exporter/${PROJECT_REF}/ethtool-exporter.py \
- /usr/local/bin/ethtool-exporter
-
-# Set annotations
-ENTRYPOINT ["/usr/local/bin/ethtool-exporter"]
diff --git a/images/prometheus-ethtool-exporter/ref b/images/prometheus-ethtool-exporter/ref
deleted file mode 100644
index 59f3562..0000000
--- a/images/prometheus-ethtool-exporter/ref
+++ /dev/null
@@ -1 +0,0 @@
-5f05120a743a71adcbceb9f8ee1d43ecc7c4183a
diff --git a/molecule/ceph/molecule.yml b/molecule/ceph/molecule.yml
index 76277c2..90c6a83 100644
--- a/molecule/ceph/molecule.yml
+++ b/molecule/ceph/molecule.yml
@@ -62,7 +62,6 @@
kube-prometheus-stack,
loki,
vector,
- prometheus-ethtool-exporter,
ipmi-exporter,
prometheus-pushgateway,
multipathd,
diff --git a/playbooks/openstack.yml b/playbooks/openstack.yml
index 45e1d45..2a8e93a 100644
--- a/playbooks/openstack.yml
+++ b/playbooks/openstack.yml
@@ -59,10 +59,6 @@
tags:
- vector
- - role: prometheus_ethtool_exporter
- tags:
- - prometheus-ethtool-exporter
-
- role: ipmi_exporter
tags:
- ipmi-exporter
diff --git a/roles/defaults/vars/main.yml b/roles/defaults/vars/main.yml
index 22d7fff..b168dca 100644
--- a/roles/defaults/vars/main.yml
+++ b/roles/defaults/vars/main.yml
@@ -164,7 +164,6 @@
placement_db_sync: quay.io/vexxhost/placement@sha256:ef2f95bdc3c88504b3a2297bf314728788126008f9bafba337e53d48a7dd19c3 # image-source: quay.io/vexxhost/placement:zed
placement: quay.io/vexxhost/placement@sha256:ef2f95bdc3c88504b3a2297bf314728788126008f9bafba337e53d48a7dd19c3 # image-source: quay.io/vexxhost/placement:zed
prometheus_config_reloader: quay.io/prometheus-operator/prometheus-config-reloader:v0.67.1
- prometheus_ethtool_exporter: quay.io/vexxhost/ethtool-exporter:5f05120a743a71adcbceb9f8ee1d43ecc7c4183a
prometheus_ipmi_exporter: us-docker.pkg.dev/vexxhost-infra/openstack/ipmi-exporter:1.4.0
prometheus_memcached_exporter: quay.io/prometheus/memcached-exporter:v0.10.0
prometheus_mysqld_exporter: quay.io/prometheus/mysqld-exporter:v0.14.0
diff --git a/roles/kube_prometheus_stack/files/jsonnet/legacy.libsonnet b/roles/kube_prometheus_stack/files/jsonnet/legacy.libsonnet
index 649c95e..50ea305 100644
--- a/roles/kube_prometheus_stack/files/jsonnet/legacy.libsonnet
+++ b/roles/kube_prometheus_stack/files/jsonnet/legacy.libsonnet
@@ -1,22 +1,4 @@
{
- 'ethtool-exporter': {
- prometheusAlerts+:: {
- groups: [
- {
- name: 'rules',
- rules: [
- {
- alert: 'EthernetReceiveDiscards',
- expr: 'rate(node_net_ethtool{type="rx_discards"}[1m]) > 0',
- labels: {
- severity: 'warning',
- },
- },
- ],
- },
- ],
- },
- },
'ipmi-exporter': {
prometheusAlerts+:: {
groups: [
diff --git a/roles/kube_prometheus_stack/tasks/main.yml b/roles/kube_prometheus_stack/tasks/main.yml
index 5bdc548..57fb1ad 100644
--- a/roles/kube_prometheus_stack/tasks/main.yml
+++ b/roles/kube_prometheus_stack/tasks/main.yml
@@ -103,6 +103,14 @@
src: /etc/kubernetes/pki/etcd/healthcheck-client.key
register: _etcd_healthcheck_client_key
+- name: Uninstall the legacy "ethtool-exporter"
+ kubernetes.core.k8s:
+ state: absent
+ api_version: v1
+ kind: DaemonSet
+ name: ethtool-exporter
+ namespace: "{{ kube_prometheus_stack_helm_release_namespace }}"
+
- name: Uninstall the legacy HelmRelease
run_once: true
block:
diff --git a/roles/kube_prometheus_stack/vars/main.yml b/roles/kube_prometheus_stack/vars/main.yml
index d68a7a1..472504c 100644
--- a/roles/kube_prometheus_stack/vars/main.yml
+++ b/roles/kube_prometheus_stack/vars/main.yml
@@ -314,14 +314,6 @@
targetLabel: instance
scrapeTimeout: 30s
additionalPodMonitors:
- - name: ethtool-exporter
- jobLabel: job
- selector:
- matchLabels:
- application: ethtool-exporter
- podMetricsEndpoints:
- - port: metrics
- relabelings: *relabelings_instance_to_node_name
- name: ipmi-exporter
jobLabel: job
selector:
diff --git a/roles/prometheus_ethtool_exporter/README.md b/roles/prometheus_ethtool_exporter/README.md
deleted file mode 100644
index 94b5a06..0000000
--- a/roles/prometheus_ethtool_exporter/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# `prometheus_ethtool_exporter`
diff --git a/roles/prometheus_ethtool_exporter/defaults/main.yml b/roles/prometheus_ethtool_exporter/defaults/main.yml
deleted file mode 100644
index c4b6723..0000000
--- a/roles/prometheus_ethtool_exporter/defaults/main.yml
+++ /dev/null
@@ -1 +0,0 @@
-prometheus_ethtool_exporter_image_tag: 5f05120a743a71adcbceb9f8ee1d43ecc7c4183a
diff --git a/roles/prometheus_ethtool_exporter/meta/main.yml b/roles/prometheus_ethtool_exporter/meta/main.yml
deleted file mode 100644
index f58a81e..0000000
--- a/roles/prometheus_ethtool_exporter/meta/main.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (c) 2022 VEXXHOST, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-galaxy_info:
- author: VEXXHOST, Inc.
- description: Ansible role for Prometheus "ethtool" exporter
- license: Apache-2.0
- min_ansible_version: 5.5.0
- standalone: false
- platforms:
- - name: Ubuntu
- versions:
- - focal
-
-dependencies:
- - role: defaults
diff --git a/roles/prometheus_ethtool_exporter/tasks/main.yml b/roles/prometheus_ethtool_exporter/tasks/main.yml
deleted file mode 100644
index 5381e9c..0000000
--- a/roles/prometheus_ethtool_exporter/tasks/main.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-- name: Deploy exporter
- kubernetes.core.k8s:
- state: present
- definition:
- - apiVersion: apps/v1
- kind: DaemonSet
- metadata:
- name: ethtool-exporter
- namespace: monitoring
- labels:
- application: ethtool-exporter
- spec:
- updateStrategy:
- rollingUpdate:
- maxUnavailable: 100%
- selector:
- matchLabels:
- application: ethtool-exporter
- template:
- metadata:
- labels:
- application: ethtool-exporter
- job: ethtool
- spec:
- hostNetwork: true
- terminationGracePeriodSeconds: 0
- containers:
- - name: ethtool-exporter
- env:
- - name: IP
- valueFrom:
- fieldRef:
- fieldPath: status.podIP
- image: "{{ atmosphere_images['prometheus_ethtool_exporter'] | vexxhost.kubernetes.docker_image('ref') }}"
- args:
- - "-L"
- - "$(IP)"
- - "-p"
- - "9417"
- - "-I"
- - "(eth|em|eno|ens|enp)[0-9s]+"
- ports:
- - name: metrics
- containerPort: 9417