## @section Global parameters
## Global Docker image parameters
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
##

## @param global.imageRegistry Global Docker image registry
## @param global.imagePullSecrets Global Docker registry secret names as an array
## @param global.storageClass Global StorageClass for Persistent Volume(s)
##
global:
  imageRegistry: ""
  ## E.g.
  ## imagePullSecrets:
  ##   - myRegistryKeySecretName
  ##
  imagePullSecrets: []
  storageClass: ""

## @section Common parameters
##

## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
##
kubeVersion: ""
## @param nameOverride String to partially override %%COMPONENT_NAME%%.fullname template with a string (will prepend the release name)
##
nameOverride: ""
## @param fullnameOverride String to fully override %%COMPONENT_NAME%%.fullname template with a string
##
fullnameOverride: ""
## @param commonLabels Add labels to all the deployed resources
##
commonLabels: {}
## @param commonAnnotations Add annotations to all the deployed resources
##
commonAnnotations: {}
## @param extraDeploy Extra objects to deploy (value evaluated as a template)
##
extraDeploy: []
## Enable diagnostic mode in the deployment(s)/statefulset(s)
##
diagnosticMode:
  ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
  ##
  enabled: false
  ## @param diagnosticMode.command Command to override all containers in the the deployment(s)/statefulset(s)
  ##
  command:
    - sleep
  ## @param diagnosticMode.args Args to override all containers in the the deployment(s)/statefulset(s)
  ##
  args:
    - infinity

## @section Wavefront Common parameters
##

## @param clusterName This is a unique name for the cluster (required)
## All metrics will receive a `cluster` tag with this value
##
clusterName: KUBERNETES_CLUSTER_NAME
## @param wavefront.url Wavefront URL for your cluster (required)
## @param wavefront.token Wavefront API Token (required)
## @param wavefront.existingSecret Name of an existing secret containing the token
##
wavefront:
  url: https://YOUR_CLUSTER.wavefront.com
  token: YOUR_API_TOKEN
  existingSecret: ""
## @param podSecurityPolicy.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
##
podSecurityPolicy:
  create: false

## RBAC configuration
##
rbac:
  ## @param rbac.create Specifies whether RBAC resources should be created
  ##
  create: true
  ## @param rbac.rules Custom RBAC rules to set
  ## e.g:
  ## rules:
  ##   - apiGroups:
  ##       - ""
  ##     resources:
  ##       - pods
  ##     verbs:
  ##       - get
  ##       - list
  ##
  rules: []

## Pods Service Account
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
## @param serviceAccount.create Specifies whether a ServiceAccount should be created
## @param serviceAccount.name Name of the service account to use. If not set and create is true, a name is generated using the fullname template.
## @param serviceAccount.automountServiceAccountToken Automount service account token for the server service account
## @param serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
serviceAccount:
  create: true
  name: ""
  automountServiceAccountToken: true
  annotations: {}
## @param projectPacific.enabled Enable and create role binding for Tanzu Kubernetes cluster
## If enabled, a role binding to handle pod security policy will be installed within the Kubernetes cluster
##
projectPacific:
  enabled: false
## @param tkgi.enabled Properties for TKGI environments. If enabled, a role binding to handle pod security policy will be installed within the TKGI cluster
##
tkgi:
  enabled: false

## @section Collector parameters
##

## Wavefront Collector is responsible to get all Kubernetes metrics from your cluster.
## It will capture Kubernetes resources metrics available from the kubelets,
## as well as auto-discovery capabilities.
##
collector:
  ## @param collector.enabled Setup and enable the Wavefront collector to gather metrics
  ##
  enabled: true
  ## @param collector.image.registry Wavefront collector image registry
  ## @param collector.image.repository Wavefront collector image repository
  ## @param collector.image.tag Wavefront collector image tag (immutable tags are recommended)
  ## @param collector.image.digest Wavefront collector image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
  ## @param collector.image.pullPolicy image pull policy
  ## @param collector.image.pullSecrets Specify docker-registry secret names as an array
  ##
  image:
    registry: docker.io
    repository: bitnami/wavefront-kubernetes-collector
    tag: 1.13.0-scratch-r0
    digest: ""
    ## Specify a imagePullPolicy
    ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
    ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
    ##
    pullPolicy: IfNotPresent
    ## Optionally specify an array of imagePullSecrets.
    ## Secrets must be manually created in the namespace.
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
    ## Example:
    ## pullSecrets:
    ##   - myRegistryKeySecretName
    ##
    pullSecrets: []
  ## @param collector.hostAliases Deployment pod host aliases
  ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  ##
  hostAliases: []
  ## @param collector.useDaemonset Use Wavefront collector in Daemonset mode
  ## If set to false, Deployment will be used for the collector.
  ## Setting this to true is strongly recommended
  ##
  useDaemonset: true
  ## @param collector.usePKSPrefix If installing into a TKGi/PKS environment, set this to true. Prefixes metrics with 'pks.kubernetes.'
  ##
  usePKSPrefix: false
  ## @param collector.maxProcs Maximum number of CPUs that can be used simultaneously
  ## e.g:
  ## maxProcs: 0
  ##
  maxProcs: ""
  ## @param collector.logLevel Log level. Allowed values: `info`, `debug` or `trace`
  ##
  logLevel: ""
  ## @param collector.interval Default metrics collection interval
  ## e.g:
  ## interval: 60s
  ##
  interval: ""
  ## @param collector.flushInterval How often to force a metrics flush
  ## e.g:
  ## flushInterval: 10s
  ##
  flushInterval: ""
  ## @param collector.sinkDelay Timeout for exporting data
  ## e.g:
  ## sinkDelay: 20s
  ##
  sinkDelay: ""
  ## @param collector.useReadOnlyPort Use un-authenticated port for kubelet
  ## If set to true, will use the unauthenticated real only port for the kubelet
  ## If set to false, will use the encrypted full access port for the kubelet (default false)
  ##
  useReadOnlyPort: false
  ## @param collector.useProxy Use a Wavefront Proxy to send metrics through
  ## When true you must either specify a value for `collector.proxyAddress` or set `proxy.enabled` to true
  ## If set to false, metrics will be sent to Wavefront via the Direct Ingestion API
  ##
  useProxy: true
  ## @param collector.proxyAddress Can be used to specify a specific address for the Wavefront Proxy
  ## The proxy can be anywhere network reachable including outside of the cluster
  ## Required if `collector.useProxy` is true and `proxy.enabled` is false
  ## e.g:
  ## proxyAddress: wavefront-proxy:2878
  ##
  proxyAddress: ""
  ## @param collector.kubernetesState Collect metrics about Kubernetes resource states
  ## These metrics are more efficient than kube-state-metrics
  ##
  kubernetesState: true
  ## @param collector.apiServerMetrics Collect metrics about Kubernetes API server
  ##
  apiServerMetrics: false
  ## @param collector.tags Map of tags to apply to all metrics collected by the collector
  ## Sample tags to include (env, region)
  ## tags:
  ##   env: production
  ##   region: us-west-2
  ##
  tags: {}
  ## @param collector.hostOSMetrics If set to true, host OS metrics will be collected
  ##
  hostOSMetrics: false
  ## Filters to apply towards all metrics collected by the collector
  ## @param collector.filters.metricDenyList [array] Optimized metrics collection to omit peripheral metrics.
  ## @param collector.filters.tagExclude [array] Filter out generated labels
  ## e.g:
  ##   filters:
  ##     tagWhilelistSets:
  ##     - kind:
  ##       - "Deployment"
  ##     - reason:
  ##       - "ScalingReplicaSet"
  ##       - "ReplicaSetCreateError"
  ##     - kind:
  ##       - "HorizontalPodAutoscaler"
  ##       reason:
  ##       - "Failed*"
  ##
  filters:
    metricDenyList:
      - 'kubernetes.sys_container.*'
      - 'kubernetes.collector.runtime.*'
      - 'kubernetes.*.network.rx_rate'
      - 'kubernetes.*.network.rx_errors_rate'
      - 'kubernetes.*.network.tx_rate'
      - 'kubernetes.*.network.tx_errors_rate'
      - 'kubernetes.*.memory.page_faults'
      - 'kubernetes.*.memory.page_faults_rate'
      - 'kubernetes.*.memory.major_page_faults'
      - 'kubernetes.*.memory.major_page_faults_rate'
      - 'kubernetes.*.filesystem.inodes'
      - 'kubernetes.*.filesystem.inodes_free'
      - 'kubernetes.*.ephemeral_storage.request'
      - 'kubernetes.*.ephemeral_storage.limit'
    tagExclude:
      - 'label?controller?revision*'
      - 'label?pod?template*'
      - 'annotation_kubectl_kubernetes_io_last_applied_configuration'
  ## Events can also be collected and sent to Wavefront.
  ## Requires Wavefront Proxy 6.0 or greater.
  ## Events should be filtered before being enabled, see event filtering documentation for details
  ## Ref: https://github.com/wavefrontHQ/wavefront-collector-for-kubernetes/blob/master/docs/filtering.md
  ##
  events:
    ## @param collector.events.enabled Events can also be collected and sent to Wavefront
    ##
    enabled: false
    ## @param collector.events.filters Optional filtering of events collected
    ##
    filters: {}
  ## Rules based discovery configuration
  ## Ref: https://github.com/wavefrontHQ/wavefront-kubernetes-collector/blob/master/docs/discovery.md
  ##
  discovery:
    ## @param collector.discovery.enabled Rules based and Prometheus endpoints auto-discovery
    ##
    enabled: true
    ## @param collector.discovery.annotationPrefix When specified, this replaces `prometheus.io` as the prefix for annotations used to auto-discover Prometheus endpoints
    ## e.g:
    ##  annotationPrefix: "wavefront.com"
    ##
    annotationPrefix: ""
    ## @param collector.discovery.enableRuntimeConfigs Whether to enable runtime discovery configurations
    ## Ref: https://github.com/wavefrontHQ/wavefront-collector-for-kubernetes/blob/master/docs/discovery.md#runtime-configurations
    ##
    enableRuntimeConfigs: true
    ## @param collector.discovery.config Configuration for rules based auto-discovery
    ## e.g:
    ##   config:
    ## # auto-discover a sample prometheus application
    ##   - name: prom-example
    ##     type: prometheus
    ##     selectors:
    ##       labels:
    ##         k8s-app:
    ##         - prom-example
    ##     port: 8080
    ##     path: /metrics
    ##     prefix: kube.prom-example.
    ##     tags:
    ##       alt_name: sample-app
    ## # auto-discover mongodb pods (replace USER:PASSWORD)
    ##   - name: mongodb
    ##     type: telegraf/mongodb
    ##     selectors:
    ##       images:
    ##       - '*mongo:*'
    ##     port: 27017
    ##     conf: |
    ##       servers = ["mongodb://USER:PASSWORD@${host}:${port}"]
    ##       gather_perdb_stats = true
    ##     filters:
    ##       metricBlacklist:
    ##       - 'mongodb.member.status'
    ##       - 'mongodb.state'
    ##       - 'mongodb.db.stats.type'
    ## # auto-discover rabbitmq pods (replace USER and PASSWORD)
    ##   - name: rabbitmq
    ##     type: telegraf/rabbitmq
    ##     selectors:
    ##       images:
    ##       - '*rabbitmq:*'
    ##     port: 15672
    ##     conf: |
    ##       url = "http://${host}:${port}"
    ##       username = "USER"
    ##       password = "PASSWORD"
    ##
    config: []
  ## @param collector.controlplane.enabled Enable metrics for control plane dashboard
  ## @param collector.controlplane.collection.interval The collection interval for the control plane
  ##
  controlplane:
    enabled: true
    collection:
      interval: 120s
  ## @param collector.existingConfigmap Name of existing ConfigMap with collector configuration
  ##
  existingConfigmap: ""
  ## @param collector.command Override default container command (useful when using custom images)
  ##
  command: []
  ## @param collector.args Override default container args (useful when using custom images)
  ##
  args: []
  ## Wavefront Collector resource requests and limits
  ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  ## We usually recommend not to specify default resources and to leave this as a conscious
  ## choice for the user. This also increases chances charts run on environments with little
  ## resources, such as Minikube. If you do want to specify resources, uncomment the following
  ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  ## @param collector.resources.limits The resources limits for the collector container
  ## @param collector.resources.requests The requested resources for the collector container
  ##
  resources:
    ## Example:
    ## limits:
    ##    cpu: 200m
    ##    memory: 256Mi
    ##
    limits: {}
    ## Examples:
    ## requests:
    ##    cpu: 200m
    ##    memory: 10Mi
    ##
    requests: {}
  ## Container Security Context configuration
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
  ## @param collector.containerSecurityContext.enabled Enable Container Security Context configuration
  ## @param collector.containerSecurityContext.runAsUser Set Container's Security Context runAsUser
  ## @param collector.containerSecurityContext.runAsNonRoot Set Container's Security Context runAsNonRoot
  ## @param collector.containerSecurityContext.readOnlyRootFilesystem Mount / (root) as a readonly filesystem on container
  ##
  containerSecurityContext:
    enabled: true
    runAsUser: 1001
    runAsNonRoot: true
    readOnlyRootFilesystem: true

  ## Pod Security Context configuration
  ## @param collector.podSecurityContext.enabled Enable Pod Security Context configuration
  ## @param collector.podSecurityContext.fsGroup Group ID for the volumes of the pod
  ##
  podSecurityContext:
    enabled: true
    fsGroup: 1001
  ## @param collector.podAffinityPreset Wavefront collector pod affinity preset. Ignored if `collector.affinity` is set. Allowed values: `soft` or `hard`
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  ##
  podAffinityPreset: ""
  ## @param collector.podAntiAffinityPreset Wavefront collector pod anti-affinity preset. Ignored if `collector.affinity` is set. Allowed values: `soft` or `hard`
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  ##
  podAntiAffinityPreset: soft
  ## Wavefront Collector Node affinity preset
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
  ##
  nodeAffinityPreset:
    ## @param collector.nodeAffinityPreset.type Wavefront collector node affinity preset type. Ignored if `collector.affinity` is set. Allowed values: `soft` or `hard`
    ##
    type: ""
    ## @param collector.nodeAffinityPreset.key Wavefront collector node label key to match Ignored if `collector.affinity` is set.
    ## E.g.
    ## key: "kubernetes.io/e2e-az-name"
    ##
    key: ""
    ## @param collector.nodeAffinityPreset.values Wavefront collector node label values to match. Ignored if `collector.affinity` is set.
    ## E.g.
    ## values:
    ##   - e2e-az1
    ##   - e2e-az2
    ##
    values: []
  ## @param collector.affinity Wavefront collector affinity for pod assignment
  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  ## Note: collector.podAffinityPreset, collector.podAntiAffinityPreset, and collector.nodeAffinityPreset will be ignored when it's set
  ##
  affinity: {}
  ## @param collector.nodeSelector Wavefront collector node labels for pod assignment
  ## ref: https://kubernetes.io/docs/user-guide/node-selection/
  ##
  nodeSelector: {}
  ## @param collector.tolerations Wavefront collector tolerations for pod assignment
  ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  ##
  tolerations: []
  ## @param collector.schedulerName Name of the k8s scheduler (other than default)
  ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  ##
  schedulerName: ""
  ## @param collector.terminationGracePeriodSeconds In seconds, time the given to the %%MAIN_CONTAINER_NAME%% pod needs to terminate gracefully
  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
  ##
  terminationGracePeriodSeconds: ""
  ## @param collector.topologySpreadConstraints Topology Spread Constraints for pod assignment
  ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  ## The value is evaluated as a template
  ##
  topologySpreadConstraints: []
  ## @param collector.podLabels Wavefront collector pod extra labels
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  ##
  podLabels: {}
  ## @param collector.podAnnotations Annotations for Wavefront collector pods
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  podAnnotations: {}
  ## @param collector.priorityClassName Wavefront Collector pods' priority
  ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  ##
  priorityClassName: ""
  ## @param collector.lifecycleHooks Lifecycle hooks for the Wavefront Collector container to automate configuration before or after startup
  ##
  lifecycleHooks: {}
  ## @param collector.customLivenessProbe Override default liveness probe
  ##
  customLivenessProbe: {}
  ## @param collector.customReadinessProbe Override default readiness probe
  ##
  customReadinessProbe: {}
  ## @param collector.customStartupProbe Override default startup probe
  ##
  customStartupProbe: {}
  ## @param collector.updateStrategy.type Update strategy - only really applicable for deployments with RWO PVs attached
  ## If replicas = 1, an update can get "stuck", as the previous pod remains attached to the
  ## PV, and the "incoming" pod can never start. Changing the strategy to "Recreate" will
  ## terminate the single previous pod, so that the new, incoming pod can attach to the PV
  ##
  updateStrategy:
    type: RollingUpdate
  ## @param collector.extraEnvVars Extra environment variables to be set on collector container
  ## For example:
  ##  - name: BEARER_AUTH
  ##    value: true
  ##
  extraEnvVars: []
  ## @param collector.extraEnvVarsCM Name of existing ConfigMap containing extra environment variables
  ##
  extraEnvVarsCM: ""
  ## @param collector.extraEnvVarsSecret Name of existing Secret containing extra environment variables
  ##
  extraEnvVarsSecret: ""
  ## @param collector.extraVolumes Optionally specify extra list of additional volumes for collector container
  ##
  extraVolumes: []
  ## @param collector.extraVolumeMounts Optionally specify extra list of additional volumeMounts for collector container
  ##
  extraVolumeMounts: []
  ## @param collector.initContainers Add init containers to the Wavefront proxy pods
  ## Example:
  ## initContainers:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  initContainers: []
  ## @param collector.sidecars Add sidecars to the Wavefront proxy pods
  ## Example:
  ## sidecars:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  sidecars: []

## @section Proxy parameters
##

## Wavefront Proxy is a metrics forwarder that is used to relay metrics to the Wavefront SaaS service.
## It can receive metrics from the Wavefront Collector as well as other metrics collection services
## within your cluster. The proxy also supports preprocessor rules to allow you to further filter
## and enhance your metric names, and tags. Should network connectivity fall between the proxy and
## Wavefront SaaS service, the proxy will buffer metrics, which will be flushed when connectivity resumes.
## Ref: https://docs.wavefront.com/proxies.html
##
proxy:
  ## @param proxy.enabled Setup and enable Wavefront proxy to send metrics through
  ##
  enabled: true
  ## @param proxy.image.registry Wavefront proxy image registry
  ## @param proxy.image.repository Wavefront proxy image repository
  ## @param proxy.image.tag Wavefront proxy image tag (immutable tags are recommended)
  ## @param proxy.image.digest Wavefront proxy image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
  ## @param proxy.image.pullPolicy Wavefront proxy image pull policy
  ## @param proxy.image.pullSecrets Specify docker-registry secret names as an array
  ##
  image:
    registry: docker.io
    repository: bitnami/wavefront-proxy
    tag: 11.4.0-debian-11-r36
    digest: ""
    ## Specify a imagePullPolicy
    ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
    ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
    ##
    pullPolicy: IfNotPresent
    ## Optionally specify an array of imagePullSecrets.
    ## Secrets must be manually created in the namespace.
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
    ## Example:
    ## pullSecrets:
    ##   - myRegistryKeySecretName
    ##
    pullSecrets: []
  ## @param proxy.hostAliases Deployment pod host aliases
  ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  ##
  hostAliases: []
  ## Wavefront Proxy resource requests and limits
  ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  ## We usually recommend not to specify default resources and to leave this as a conscious
  ## choice for the user. This also increases chances charts run on environments with little
  ## resources, such as Minikube. If you do want to specify resources, uncomment the following
  ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  ## @param proxy.resources.limits The resources limits for the proxy container
  ## @param proxy.resources.requests The requested resources for the proxy container
  ##
  resources:
    ## Example:
    ## limits:
    ##    cpu: 100m
    ##    memory: 4Gi
    ##
    limits: {}
    ## Examples:
    ## requests:
    ##    cpu: 100m
    ##    memory: 1Gi
    ##
    requests: {}
  ## Container Security Context configuration
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
  ## @param proxy.containerSecurityContext.enabled Enable Container Security Context configuration
  ## @param proxy.containerSecurityContext.runAsUser Set Container's Security Context runAsUser
  ## @param proxy.containerSecurityContext.runAsNonRoot Set Container's Security Context runAsNonRoot
  ## @param proxy.containerSecurityContext.readOnlyRootFilesystem Mount / (root) as a readonly filesystem on Proxy container
  ##
  containerSecurityContext:
    enabled: true
    runAsUser: 1001
    runAsNonRoot: true
    readOnlyRootFilesystem: true

  ## Pod Security Context configuration
  ## @param proxy.podSecurityContext.enabled Enable Pod Security Context configuration
  ## @param proxy.podSecurityContext.fsGroup Group ID for the volumes of the pod
  ##
  podSecurityContext:
    enabled: true
    fsGroup: 1001
  ## @param proxy.podAffinityPreset Wavefront proxy pod affinity preset. Ignored if `proxy.affinity` is set. Allowed values: `soft` or `hard`
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  ##
  podAffinityPreset: ""
  ## @param proxy.podAntiAffinityPreset Wavefront proxy pod anti-affinity preset. Ignored if `proxy.affinity` is set. Allowed values: `soft` or `hard`
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  ##
  podAntiAffinityPreset: soft
  ## Wavefront Proxy Node affinity preset
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
  ##
  nodeAffinityPreset:
    ## @param proxy.nodeAffinityPreset.type Wavefront proxy node affinity preset type. Ignored if `proxy.affinity` is set. Allowed values: `soft` or `hard`
    ##
    type: ""
    ## @param proxy.nodeAffinityPreset.key Wavefront proxy node label key to match Ignored if `proxy.affinity` is set.
    ## E.g.
    ## key: "kubernetes.io/e2e-az-name"
    ##
    key: ""
    ## @param proxy.nodeAffinityPreset.values Wavefront proxy node label values to match. Ignored if `proxy.affinity` is set.
    ## E.g.
    ## values:
    ##   - e2e-az1
    ##   - e2e-az2
    ##
    values: []
  ## @param proxy.affinity Wavefront proxy affinity for pod assignment
  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  ## Note: proxy.podAffinityPreset, proxy.podAntiAffinityPreset, and proxy.nodeAffinityPreset will be ignored when it's set
  ##
  affinity: {}
  ## @param proxy.nodeSelector Wavefront proxy node labels for pod assignment
  ## ref: https://kubernetes.io/docs/user-guide/node-selection/
  ##
  nodeSelector: {}
  ## @param proxy.tolerations Wavefront proxy tolerations for pod assignment
  ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  ##
  tolerations: []
  ## @param proxy.schedulerName Name of the k8s scheduler (other than default)
  ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  ##
  schedulerName: ""
  ## @param proxy.terminationGracePeriodSeconds In seconds, time the given to the %%MAIN_CONTAINER_NAME%% pod needs to terminate gracefully
  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
  ##
  terminationGracePeriodSeconds: ""
  ## @param proxy.topologySpreadConstraints Topology Spread Constraints for pod assignment
  ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  ## The value is evaluated as a template
  ##
  topologySpreadConstraints: []
  ## @param proxy.podLabels Wavefront proxy pod extra labels
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  ##
  podLabels: {}
  ## @param proxy.podAnnotations Annotations for Wavefront proxy pods
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  podAnnotations: {}
  ## @param proxy.priorityClassName Wavefront proxy pods' priority class name
  ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  ##
  priorityClassName: ""
  ## @param proxy.lifecycleHooks Lifecycle hooks for the Wavefront proxy container to automate configuration before or after startup
  ##
  lifecycleHooks: {}
  ## Wavefront Proxy liveness probe. Evaluated as a template.
  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
  ## @param proxy.livenessProbe.enabled Enable livenessProbe
  ## @param proxy.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
  ## @param proxy.livenessProbe.periodSeconds Period seconds for livenessProbe
  ## @param proxy.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
  ## @param proxy.livenessProbe.failureThreshold Failure threshold for livenessProbe
  ## @param proxy.livenessProbe.successThreshold Success threshold for livenessProbe
  ##
  livenessProbe:
    enabled: true
    initialDelaySeconds: 10
    timeoutSeconds: 1
    periodSeconds: 20
    failureThreshold: 6
    successThreshold: 1
  ## Wavefront Proxy readiness probe. Evaluated as a template.
  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
  ## @param proxy.readinessProbe.enabled Enable readinessProbe
  ## @param proxy.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
  ## @param proxy.readinessProbe.periodSeconds Period seconds for readinessProbe
  ## @param proxy.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
  ## @param proxy.readinessProbe.failureThreshold Failure threshold for readinessProbe
  ## @param proxy.readinessProbe.successThreshold Success threshold for readinessProbe
  ##
  readinessProbe:
    enabled: true
    initialDelaySeconds: 10
    timeoutSeconds: 1
    periodSeconds: 20
    failureThreshold: 6
    successThreshold: 1
  ## Wavefront Proxy startup probe. Evaluated as a template.
  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
  ## @param proxy.startupProbe.enabled Enable startupProbe
  ## @param proxy.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
  ## @param proxy.startupProbe.periodSeconds Period seconds for startupProbe
  ## @param proxy.startupProbe.timeoutSeconds Timeout seconds for startupProbe
  ## @param proxy.startupProbe.failureThreshold Failure threshold for startupProbe
  ## @param proxy.startupProbe.successThreshold Success threshold for startupProbe
  ##
  startupProbe:
    enabled: false
    initialDelaySeconds: 10
    timeoutSeconds: 1
    periodSeconds: 20
    failureThreshold: 6
    successThreshold: 1
  ## @param proxy.customLivenessProbe Override default liveness probe
  ##
  customLivenessProbe: {}
  ## @param proxy.customReadinessProbe Override default readiness probe
  ##
  customReadinessProbe: {}
  ## @param proxy.customStartupProbe Override default startup probe
  ##
  customStartupProbe: {}
  ## @param proxy.updateStrategy.type Update strategy - only really applicable for deployments with RWO PVs attached
  ## If replicas = 1, an update can get "stuck", as the previous pod remains attached to the
  ## PV, and the "incoming" pod can never start. Changing the strategy to "Recreate" will
  ## terminate the single previous pod, so that the new, incoming pod can attach to the PV
  ##
  updateStrategy:
    type: RollingUpdate
  ## @param proxy.extraEnvVars Extra environment variables to be set on proxy container
  ## For example:
  ##  - name: BEARER_AUTH
  ##    value: true
  ##
  extraEnvVars: []
  ## @param proxy.extraEnvVarsCM Name of existing ConfigMap containing extra environment variables
  ##
  extraEnvVarsCM: ""
  ## @param proxy.extraEnvVarsSecret Name of existing Secret containing extra environment variables
  ##
  extraEnvVarsSecret: ""
  ## @param proxy.extraVolumes Optionally specify extra list of additional volumes for proxy container
  ##
  extraVolumes: []
  ## @param proxy.extraVolumeMounts Optionally specify extra list of additional volumeMounts for proxy container
  ##
  extraVolumeMounts: []
  ## @param proxy.initContainers Add init containers to the Wavefront proxy pods
  ## Example:
  ## initContainers:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  initContainers: []
  ## @param proxy.sidecars Add sidecars to the Wavefront proxy pods
  ## Example:
  ## sidecars:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  sidecars: []
  ## @param proxy.replicaCount ReplicaCount to deploy for Wavefront proxy (usually 1)
  ## DEPRECATED: proxy.replicas has been deprecated, and will be removed in the next major release.
  ##
  replicaCount: 1
  ## @param proxy.port The port number the proxy will listen on for metrics in Wavefront data format
  ##
  port: 2878
  ## @param proxy.tracePort The port number the proxy will listen on for tracing spans in Wavefront trace data format (usually 30000)
  ## e.g:
  ## tracePort: 30000
  ##
  tracePort: ""
  ## @param proxy.jaegerPort The port number the proxy will listen on for tracing spans in Jaeger data format (usually 30001)
  ## e.g:
  ## jaegerPort: 30001
  ##
  jaegerPort: ""
  ## @param proxy.traceJaegerHttpListenerPort TCP ports to receive Jaeger Thrift formatted data via HTTP. The data is then sent to Wavefront in Wavefront span format (usually 30080)
  ## e.g:
  ## traceJaegerHttpListenerPort: 30080
  ##
  traceJaegerHttpListenerPort: ""
  ## @param proxy.traceJaegerGrpcListenerPort TCP ports to receive Jaeger GRPC formatted data via HTTP (usually 14250)
  ## e.g:
  ## traceJaegerGrpcListenerPort: 14250
  ##
  traceJaegerGrpcListenerPort: ""
  ## @param proxy.zipkinPort The port number the proxy will listen on for tracing spans in Zipkin data format (usually 9411)
  ## e.g:
  ## zipkinPort: 9411
  ##
  zipkinPort: ""
  ## @param proxy.traceSamplingRate Sampling rate to apply to tracing spans sent to the proxy
  ## This rate is applied to all data formats the proxy is listening on.
  ## Value should be between 0.0 and 1.0
  ## e.g:
  ## traceSamplingRate: 0.25
  ##
  traceSamplingRate: ""
  ## @param proxy.traceSamplingDuration When set to greater than 0, spans that exceed this duration will force trace to be sampled (ms)
  ## spans that are greater than or equal to this value will be sampled.
  ## e.g:
  ## traceSamplingDuration: 500
  ##
  traceSamplingDuration: ""
  ## @param proxy.traceJaegerApplicationName Custom application name for traces received on Jaeger's traceJaegerListenerPorts or traceJaegerHttpListenerPorts.
  ## e.g:
  ## traceJaegerApplicationName: MyJaegerDemo
  ##
  traceJaegerApplicationName: ""
  ## @param proxy.traceZipkinApplicationName Custom application name for traces received on Zipkin's traceZipkinListenerPorts.
  ## e.g:
  ## traceZipkinApplicationName: MyZipkinDemo
  ##
  traceZipkinApplicationName: ""
  ## @param proxy.histogramPort Port for histogram distribution format data (usually 40000)
  ## e.g:
  ## histogramPort: 40000
  ##
  histogramPort: ""
  ## @param proxy.histogramMinutePort Port to accumulate 1-minute based histograms on Wavefront data format (usually 40001)
  ## e.g:
  ## histogramMinutePort: 40001
  ##
  histogramMinutePort: ""
  ## @param proxy.histogramHourPort Port to accumulate 1-hour based histograms on Wavefront data format (usually 40002)
  ## e.g:
  ## histogramHourPort: 40002
  ##
  histogramHourPort: ""
  ## @param proxy.histogramDayPort Port to accumulate 1-day based histograms on Wavefront data format (usually 40003)
  ## e.g:
  ## histogramDayPort: 40003
  ##
  histogramDayPort: ""
  ## @param proxy.deltaCounterPort Port to accumulate 1-minute delta counters on Wavefront data format (usually 50000)
  ## e.g:
  ## deltaCounterPort: 50000
  ##
  deltaCounterPort: ""
  ## @param proxy.command Override default container command (useful when using custom images)
  ##
  command: []
  ## @param proxy.args Any configuration property can be passed to the proxy via command line args in the format: `--<property_name> <value>`
  ## Multiple properties can be specified separated by whitespace
  ## Ref: https://docs.wavefront.com/proxies_configuring.html
  ##
  args: ""
  ## @param proxy.heap Wavefront proxy Java heap maximum usage (java -Xmx command line option)
  ## By default Java will consume up to 4G of heap memory
  ## e.g:
  ## heap: 1024m
  ##
  heap: ""
  ## @param proxy.existingConfigmap Name of existing ConfigMap with Proxy preprocessor configuration
  ##
  existingConfigmap: ""
  ## @param proxy.preprocessor Preprocessor rules is a powerful way to apply filtering or to enhance metrics as they flow
  ## through the proxy. You can configure the rules here. By default a rule to drop Kubernetes
  ## generated labels is applied to remove unnecessary and often noisy tags.
  ## Ref: https://docs.wavefront.com/proxies_preprocessor_rules.html
  ## e.g:
  ## preprocessor:
  ##   rules.yaml: |
  ##     '2878':
  ##     # fix %2F to be a / instead.  May be required on EKS.
  ##     - rule    : fix-forward-slash
  ##       action  : replaceRegex
  ##       scope   : pointLine
  ##       search  : "%2F"
  ##       replace : "/"
  ##     # replace bad characters ("&", "$", "!", "@") with underscores in the entire point line string
  ##     - rule    : replace-badchars
  ##       action  : replaceRegex
  ##       scope   : pointLine
  ##       search  : "[&\\$!@]"
  ##       replace : "_"
  ##
  preprocessor: {}

## @section Kube State Metrics parameters
##

## kube-state-metrics are used to get metrics about the state of the Kubernetes scheduler
## @param kube-state-metrics.enabled If enabled the kube-state-metrics chart will be installed as a subchart and the collector will be configured to capture metrics.
##
kube-state-metrics:
  enabled: false
