#jinja2: trim_blocks: True, lstrip_blocks: True --- apiVersion: v1 kind: ConfigMap metadata: name: kube-prometheus-stack-values data: values.yaml: | crds: enabled: true cleanPrometheusOperatorObjectNames: true alertmanager: enabled: false kube-state-metrics: metricLabelsAllowlist: - "deployments=[*]" - "persistentvolumeclaims=[*]" - "pods=[*]" prometheus: monitor: enabled: true relabelings: - action: replace sourceLabels: ["__meta_kubernetes_pod_node_name"] regex: ^(.*)$ replacement: $1 targetLabel: kubernetes_node kubelet: enabled: true serviceMonitor: metricRelabelings: # Remove duplicate labels provided by k3s - action: keep 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: replace sourceLabels: ["node"] targetLabel: instance # Drop high cardinality labels - action: labeldrop regex: (uid) - action: labeldrop regex: (id|name) - action: drop sourceLabels: ["__name__"] regex: (rest_client_request_duration_seconds_bucket|rest_client_request_duration_seconds_sum|rest_client_request_duration_seconds_count) kubeApiServer: enabled: true serviceMonitor: metricRelabelings: # Remove duplicate labels provided by k3s - action: keep sourceLabels: ["__name__"] regex: (aggregator_openapi|aggregator_unavailable|apiextensions_openapi|apiserver_admission|apiserver_audit|apiserver_cache|apiserver_cel|apiserver_client|apiserver_crd|apiserver_current|apiserver_envelope|apiserver_flowcontrol|apiserver_init|apiserver_kube|apiserver_longrunning|apiserver_request|apiserver_requested|apiserver_response|apiserver_selfrequest|apiserver_storage|apiserver_terminated|apiserver_tls|apiserver_watch|apiserver_webhooks|authenticated_user|authentication|disabled_metric|etcd_bookmark|etcd_lease|etcd_request|field_validation|get_token|go|grpc_client|hidden_metric|kube_apiserver|kubernetes_build|kubernetes_feature|node_authorizer|pod_security|process_cpu|process_max|process_open|process_resident|process_start|process_virtual|registered_metric|rest_client|scrape_duration|scrape_samples|scrape_series|serviceaccount_legacy|serviceaccount_stale|serviceaccount_valid|watch_cache|workqueue)_(.+) # Drop high cardinality labels - action: drop sourceLabels: ["__name__"] regex: (apiserver|etcd|rest_client)_request(|_sli|_slo)_duration_seconds_bucket - action: drop sourceLabels: ["__name__"] regex: (apiserver_response_sizes_bucket|apiserver_watch_events_sizes_bucket) kubeControllerManager: enabled: true endpoints: &endpoints {% for item in bootstrap_nodes.master %} - {{ item.address }} {% endfor %} serviceMonitor: metricRelabelings: # Remove duplicate labels provided by k3s - action: keep sourceLabels: ["__name__"] regex: "(apiserver_audit|apiserver_client|apiserver_delegated|apiserver_envelope|apiserver_storage|apiserver_webhooks|attachdetach_controller|authenticated_user|authentication|cronjob_controller|disabled_metric|endpoint_slice|ephemeral_volume|garbagecollector_controller|get_token|go|hidden_metric|job_controller|kubernetes_build|kubernetes_feature|leader_election|node_collector|node_ipam|process_cpu|process_max|process_open|process_resident|process_start|process_virtual|pv_collector|registered_metric|replicaset_controller|rest_client|retroactive_storageclass|root_ca|running_managed|scrape_duration|scrape_samples|scrape_series|service_controller|storage_count|storage_operation|ttl_after|volume_operation|workqueue)_(.+)" kubeEtcd: {% if bootstrap_nodes.master | length > 1 %} enabled: true {% else %} enabled: false {% endif %} endpoints: *endpoints kubeScheduler: enabled: true endpoints: *endpoints serviceMonitor: metricRelabelings: # Remove duplicate labels provided by k3s - action: keep sourceLabels: ["__name__"] regex: "(apiserver_audit|apiserver_client|apiserver_delegated|apiserver_envelope|apiserver_storage|apiserver_webhooks|authenticated_user|authentication|disabled_metric|go|hidden_metric|kubernetes_build|kubernetes_feature|leader_election|process_cpu|process_max|process_open|process_resident|process_start|process_virtual|registered_metric|rest_client|scheduler|scrape_duration|scrape_samples|scrape_series|workqueue)_(.+)" kubeProxy: enabled: false # Disabled due to eBPF prometheus: ingress: enabled: true ingressClassName: internal {% if homepage.enabled | default(false) %} annotations: gethomepage.dev/enabled: "true" gethomepage.dev/icon: prometheus.png gethomepage.dev/name: Prometheus gethomepage.dev/group: Observability gethomepage.dev/widget.type: prometheus {% endif %} pathType: Prefix hosts: - "prometheus.${SECRET_DOMAIN}" tls: - hosts: - "prometheus.${SECRET_DOMAIN}" prometheusSpec: ruleSelectorNilUsesHelmValues: false serviceMonitorSelectorNilUsesHelmValues: false podMonitorSelectorNilUsesHelmValues: false probeSelectorNilUsesHelmValues: false scrapeConfigSelectorNilUsesHelmValues: false enableAdminAPI: true walCompression: true retentionSize: 8GB storageSpec: volumeClaimTemplate: spec: storageClassName: openebs-hostpath resources: requests: storage: 10Gi grafana: enabled: false forceDeployDashboards: true sidecar: dashboards: multicluster: etcd: enabled: true