commonLabels:
  component: o11y

## Install Prometheus Operator CRDs
##
crds:
  enabled: true

## Create default rules for monitoring the cluster
##
defaultRules:
  create: false

global:
  rbac:
    create: true
alertmanager:
  enabled: false
grafana:
  enabled: false

kubernetesServiceMonitors:
  enabled: true
# enable core components service mointor
kubeApiServer:
  enabled: true
kubelet:
  enabled: true
  namespace: kube-system
# since we are using k8s provided by CSP, we do not need to monitor those control-plane comopnents.
# enable it if needed in the future.
kubeControllerManager:
  enabled: false
kubeEtcd:
  enabled: false
kubeScheduler:
  enabled: false

coreDns:
  enabled: false
kubeDns:
  enabled: true
kubeProxy:
  enabled: true
kubeStateMetrics:
  enabled: true

## Configuration for kube-state-metrics subchart
##
kube-state-metrics:
  namespaceOverride: ""
  rbac:
    create: true
  releaseLabel: true
  prometheus:
    monitor:
      enabled: true
      ## argocd will overrides the app.kubernetes.io/instance label of kube-state-metrics service
      ## but by default servicemonitor will select with that label, thus we need to override the selector here.
      selectorOverride:
        app.kubernetes.io/name: kube-state-metrics
  collectors:
  - certificatesigningrequests
  - configmaps
  - cronjobs
  - daemonsets
  - deployments
  - endpoints
  - horizontalpodautoscalers
  - ingresses
  - jobs
  - leases
  - limitranges
  - mutatingwebhookconfigurations
  - namespaces
  - networkpolicies
  - nodes
  - persistentvolumeclaims
  - persistentvolumes
  - poddisruptionbudgets
  - pods
  - replicasets
  - replicationcontrollers
  - resourcequotas
  - secrets
  - services
  - statefulsets
  - storageclasses
  - validatingwebhookconfigurations
  - volumeattachments

## Deploy node exporter as a daemonset to all nodes
##
nodeExporter:
  enabled: true
  operatingSystems:
    linux:
      enabled: true
    aix:
      enabled: true
    darwin:
      enabled: true

## Configuration for prometheus-node-exporter subchart
##
prometheus-node-exporter:
  namespaceOverride: ""
  podLabels:
    ## Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards
    ##
    jobLabel: node-exporter
  releaseLabel: true
  extraArgs:
    - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
    - --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$
  service:
    portName: http-metrics
    ipDualStack:
      enabled: false
      ipFamilies: ["IPv6", "IPv4"]
      ipFamilyPolicy: "PreferDualStack"
    labels:
      jobLabel: node-exporter
  prometheus:
    monitor:
      enabled: true
      ## argocd will overrides the app.kubernetes.io/instance label of node-exporter service
      ## but by default servicemonitor will select with that label, thus we need to override the selector here.
      selectorOverride:
        app.kubernetes.io/name: prometheus-node-exporter

prometheusOperator:
  enabled: true
prometheus:
  enabled: false
