Add Talos-compatible Metrics Server addon

This commit is contained in:
Marco van Zijl 2026-05-17 11:59:01 +02:00
parent d46d14bb81
commit 88a48ac987
4 changed files with 86 additions and 0 deletions

View File

@ -0,0 +1,11 @@
apiVersion: v2
name: metrics-server
description: Kubernetes Metrics Server wrapper chart
type: application
version: 1.0.0
appVersion: "0.8.0"
dependencies:
- name: metrics-server
version: 3.13.0
repository: https://kubernetes-sigs.github.io/metrics-server/

View File

@ -0,0 +1,21 @@
# Metrics Server
Metrics Server provides the Kubernetes Metrics API for live resource usage,
including `kubectl top` and future HPA/VPA resource metrics.
It is intentionally small and not scraped by Prometheus. Prometheus/Grafana
remain the source for historical dashboards and alerting.
Talos kubelets use serving certificates that are not trusted by metrics-server
unless kubelet server certificate rotation and CSR approval are configured.
This deployment uses `--kubelet-insecure-tls` so it works with the current
Talos configuration.
After syncing, verify:
```bash
kubectl -n kube-system get deploy metrics-server
kubectl get apiservice v1beta1.metrics.k8s.io
kubectl top nodes
kubectl top pods -n litellm
```

View File

@ -0,0 +1,29 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: metrics-server
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "-4"
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: https://git.mvzijl.nl/marco/veda.git
targetRevision: applicationset-rewrite
path: apps/metrics-server
helm:
releaseName: metrics-server
valueFiles:
- values.yaml
destination:
server: https://kubernetes.default.svc
namespace: kube-system
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=false
- ServerSideApply=true

View File

@ -0,0 +1,25 @@
metrics-server:
replicas: 1
defaultArgs:
- --cert-dir=/tmp
- --kubelet-preferred-address-types=InternalIP,Hostname,ExternalIP
- --kubelet-use-node-status-port
- --kubelet-insecure-tls
- --metric-resolution=15s
podDisruptionBudget:
enabled: false
metrics:
enabled: false
serviceMonitor:
enabled: false
resources:
requests:
cpu: 25m
memory: 64Mi
limits:
memory: 128Mi