apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: kube-prometheus-stack namespace: monitoring spec: interval: 5m chart: spec: chart: kube-prometheus-stack version: "64.0.0" sourceRef: kind: HelmRepository name: prometheus-community namespace: flux-system values: alertmanager: enabled: false grafana: enabled: false # enabled dashboards even with grafana being disabled #forceDeployDashboards: true #defaultDashboardsTimezone: America/New_York prometheus: enabled: false defaultRule: create: false rules: general: false kubelet: enabled: true serviceMonitor: metricRelabelings: # Remove duplicate metrics - sourceLabels: ["__name__"] regex: "(apiserver_audit|apiserver_client|apiserver_delegated|apiserver_envelope|apiserver_storage|apiserver_webhooks|authentication_token|cadvisor_version|container_blkio|container_cpu|container_fs|container_last|container_memory|container_network|container_oom|container_processes|container|csi_operations|disabled_metric|get_token|go|hidden_metric|kubelet_certificate|kubelet_cgroup|kubelet_container|kubelet_containers|kubelet_cpu|kubelet_device|kubelet_graceful|kubelet_http|kubelet_lifecycle|kubelet_managed|kubelet_node|kubelet_pleg|kubelet_pod|kubelet_run|kubelet_running|kubelet_runtime|kubelet_server|kubelet_started|kubelet_volume|kubernetes_build|kubernetes_feature|machine_cpu|machine_memory|machine_nvm|machine_scrape|node_namespace|plugin_manager|prober_probe|process_cpu|process_max|process_open|process_resident|process_start|process_virtual|registered_metric|rest_client|scrape_duration|scrape_samples|scrape_series|storage_operation|volume_manager|volume_operation|workqueue)_(.+)" action: keep - sourceLabels: ["node"] targetLabel: instance action: replace kubeApiServer: serviceMonitor: selector: k8s-app: kube-apiserver kubeScheduler: service: selector: k8s-app: kube-scheduler kubeControllerManager: &kubeControllerManager service: selector: k8s-app: kube-controller-manager kubeEtcd: <<: *kubeControllerManager # etcd runs on control plane nodes prometheus-node-exporter: fullnameOverride: node-exporter prometheus: monitor: enabled: true relabelings: - action: replace regex: (.*) replacement: $1 sourceLabels: ["__meta_kubernetes_pod_node_name"] targetLabel: kubernetes_node kube-state-metrics: fullnameOverride: kube-state-metrics metricLabelsAllowlist: - pods=[*] - deployments=[*] - persistentvolumeclaims=[*] prometheus: monitor: enabled: true relabelings: - action: replace regex: (.*) replacement: $1 sourceLabels: ["__meta_kubernetes_pod_node_name"] targetLabel: kubernetes_node