From ebde695bfdb7f8f4a083d128c83a811cb41d4a15 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sun, 10 May 2026 17:30:19 -0500 Subject: [PATCH] k8s: add T-Mobile Home Internet gateway prometheus exporter Deploys tpaulus/tmobile-internet-exporter against the G4AR at 192.168.12.1, picked up by the existing kubernetes-services scrape job via prometheus.io/scrape annotations on the Service. --- .../cluster/argocd/apps/tmobile-exporter.yaml | 23 ++++++++++ home/cluster/tmobile-exporter/deployment.yaml | 44 +++++++++++++++++++ .../tmobile-exporter/kustomization.yaml | 5 +++ home/cluster/tmobile-exporter/service.yaml | 19 ++++++++ 4 files changed, 91 insertions(+) create mode 100644 home/cluster/argocd/apps/tmobile-exporter.yaml create mode 100644 home/cluster/tmobile-exporter/deployment.yaml create mode 100644 home/cluster/tmobile-exporter/kustomization.yaml create mode 100644 home/cluster/tmobile-exporter/service.yaml diff --git a/home/cluster/argocd/apps/tmobile-exporter.yaml b/home/cluster/argocd/apps/tmobile-exporter.yaml new file mode 100644 index 0000000..79924b0 --- /dev/null +++ b/home/cluster/argocd/apps/tmobile-exporter.yaml @@ -0,0 +1,23 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: tmobile-exporter + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + source: + repoURL: https://codeberg.org/gmcintire/infra.git + targetRevision: main + path: home/cluster/tmobile-exporter + destination: + server: https://kubernetes.default.svc + namespace: monitoring + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/home/cluster/tmobile-exporter/deployment.yaml b/home/cluster/tmobile-exporter/deployment.yaml new file mode 100644 index 0000000..700d816 --- /dev/null +++ b/home/cluster/tmobile-exporter/deployment.yaml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: tmobile-exporter + namespace: monitoring + labels: + app.kubernetes.io/name: tmobile-exporter +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: tmobile-exporter + template: + metadata: + labels: + app.kubernetes.io/name: tmobile-exporter + spec: + containers: + - name: exporter + image: ghcr.io/tpaulus/tmobile-internet-exporter:main + imagePullPolicy: Always + args: + - -target=192.168.12.1 + - -listen=:9099 + ports: + - name: metrics + containerPort: 9099 + protocol: TCP + resources: + requests: + cpu: 10m + memory: 16Mi + limits: + memory: 64Mi + securityContext: + runAsNonRoot: true + runAsUser: 65532 + runAsGroup: 65532 + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: + drop: ["ALL"] + seccompProfile: + type: RuntimeDefault diff --git a/home/cluster/tmobile-exporter/kustomization.yaml b/home/cluster/tmobile-exporter/kustomization.yaml new file mode 100644 index 0000000..a33121c --- /dev/null +++ b/home/cluster/tmobile-exporter/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - deployment.yaml + - service.yaml diff --git a/home/cluster/tmobile-exporter/service.yaml b/home/cluster/tmobile-exporter/service.yaml new file mode 100644 index 0000000..9216f65 --- /dev/null +++ b/home/cluster/tmobile-exporter/service.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + name: tmobile-exporter + namespace: monitoring + labels: + app.kubernetes.io/name: tmobile-exporter + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9099" + prometheus.io/job: tmobile_gateway +spec: + selector: + app.kubernetes.io/name: tmobile-exporter + ports: + - name: metrics + port: 9099 + targetPort: metrics + protocol: TCP