# Default values for opentelemetry-collector.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
nameOverride: "last9-otel-collector"
# Valid values are "daemonset", "deployment", and "statefulset".
# Specify which namespace should be used to deploy the resources into
namespaceOverride: "last9"
# Handles basic configuration of components that
# also require k8s modifications to work correctly.
# .Values.config can be used to modify/add to a preset
# component configuration, but CANNOT be used to remove
# preset configuration. If you require removal of any
# sections of a preset configuration, you cannot use
# the preset. Instead, configure the component manually in
# .Values.config and use the other fields supplied in the
# values.yaml to configure k8s as necessary.
# Configures the collector to collect logs.
# Adds the filelog receiver to the logs pipeline
# and adds the necessary volumes and volume mounts.
# Best used with mode = daemonset.
# See https://opentelemetry.io/docs/kubernetes/collector/components/#filelog-receiver for details on the receiver.
includeCollectorLogs: false
# Enabling this writes checkpoints in /var/lib/otelcol/ host directory.
# Note this changes collector's user to root, so that it can write to host directory.
# The maximum bytes size of the recombined field.
# Once the size exceeds the limit, all received entries of the source will be combined and flushed.
maxRecombineLogSize: 102400
# Configures the collector to collect host metrics.
# Adds the hostmetrics receiver to the metrics pipeline
# and adds the necessary volumes and volume mounts.
# Best used with mode = daemonset.
# See https://opentelemetry.io/docs/kubernetes/collector/components/#host-metrics-receiver for details on the receiver.
# Configures the Kubernetes Processor to add Kubernetes metadata.
# Adds the k8sattributes processor to all the pipelines
# and adds the necessary rules to ClusteRole.
# Best used with mode = daemonset.
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-attributes-processor for details on the receiver.
# When enabled the processor will extra all labels for an associated pod and add them as resource attributes.
# The label's exact name will be the key.
extractAllPodLabels: true
# When enabled the processor will extra all annotations for an associated pod and add them as resource attributes.
# The annotation's exact name will be the key.
extractAllPodAnnotations: false
# Configures the collector to collect node, pod, and container metrics from the API server on a kubelet..
# Adds the kubeletstats receiver to the metrics pipeline
# and adds the necessary rules to ClusteRole.
# Best used with mode = daemonset.
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubeletstats-receiver for details on the receiver.
# Configures the collector to collect kubernetes events.
# Adds the k8sobject receiver to the logs pipeline
# and collects kubernetes events by default.
# Best used with mode = deployment or statefulset.
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-objects-receiver for details on the receiver.
# Configures the Kubernetes Cluster Receiver to collect cluster-level metrics.
# Adds the k8s_cluster receiver to the metrics pipeline
# and adds the necessary rules to ClusteRole.
# Best used with mode = deployment or statefulset.
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-cluster-receiver for details on the receiver.
# Specifies whether a configMap should be created (true by default)
# Specifies an existing ConfigMap to be mounted to the pod
# The ConfigMap MUST include the collector configuration via a key named 'relay' or the collector will not start.
# Base collector configuration.
# Use when you need to debug output
# sampling_thereafter: 200
endpoint: "<LAST9_OTLP_ENDPOINT>"
"Authorization": "Basic <LAST9_OTLP_AUTH_HEADER>"
# The health_check extension is mandatory for this chart.
# Without the health_check extension the collector will fail the readiness and liveliness probes.
# The health_check extension can be modified, but should never be removed.
endpoint: ${env:MY_POD_IP}:13133
# set the service name as app label of the container
# - set(attributes["service.name"], attributes["<label_name>"]) where attributes["service.name"] == ""
# Additional resource attributes can be set as follows.
# - set(attributes["<region>"], value)
# - set(attributes["deployment_environment"], "staging")
send_batch_max_size: 50000
# Default memory limiter configuration for the collector based on k8s resource limits.
# This configuration is best suited when you are only shipping logs via the Otel Collector.
# If you want to ship more telemerty signals, then consult with Last9 team to twaek the memory
# check_interval is the time between measurements of memory usage.
# By default limit_mib is set to 85% of ".Values.resources.limits.memory"
# By default spike_limit_mib is set to 15% of ".Values.resources.limits.memory"
spike_limit_percentage: 15
max_recv_msg_size_mib: 16
# If you want to use the core image `otel/opentelemetry-collector`, you also need to change `command.name` value to `otelcol`.
repository: "otel/opentelemetry-collector-contrib"
# Overrides the image tag whose default is the chart appVersion.
# When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value).
# OpenTelemetry Collector executable
# Specifies whether a service account should be created
# Annotations to add to the service account
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
# Specifies whether a clusterRole should be created
# Some presets also trigger the creation of a cluster role and cluster role binding.
# If using one of those presets, this field is no-op.
# Annotations to add to the clusterRole
# Can be used in combination with presets that create a cluster role.
# The name of the clusterRole to use.
# If not set a name is generated using the fullname template
# Can be used in combination with presets that create a cluster role.
# A set of rules as documented here : https://kubernetes.io/docs/reference/access-authn-authz/rbac/
# Can be used in combination with presets that create a cluster role to add additional rules.
# Annotations to add to the clusterRoleBinding
# Can be used in combination with presets that create a cluster role binding.
# The name of the clusterRoleBinding to use.
# If not set a name is generated using the fullname template
# Can be used in combination with presets that create a cluster role binding.
topologySpreadConstraints: []
# Allows for pod scheduler prioritisation
# This also supports template content, which will eventually be converted to yaml.
# This also supports template content, which will eventually be converted to yaml.
# Configuration for ports
# nodePort is also allowed
# The metrics port is disabled by default. However you need to enable the port
# in order to use the ServiceMonitor (serviceMonitor.enabled) or PodMonitor (podMonitor.enabled).
# When enabled, the chart will set the GOMEMLIMIT env var to 80% of the configured resources.limits.memory.
# If no resources.limits.memory are defined then enabling does nothing.
# It is HIGHLY recommend to enable this setting and set a value for resources.limits.memory.
# Resource limits & requests.
# It is HIGHLY recommended to set resource limits.
# Common labels to add to all otel-collector resources. Evaluated as a template.
# app.kubernetes.io/part-of: my-app
# Host networking requested for this pod. Use the host's network namespace.
# Adding entries to Pod /etc/hosts with HostAliases
# https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/
# Pod DNS policy ClusterFirst, ClusterFirstWithHostNet, None, Default, None
# Custom DNS config. Required when DNS policy is None.
# only used with deployment mode
# only used with deployment mode
# List of extra sidecars to add.
# This also supports template content, which will eventually be converted to yaml.
# List of init container specs, e.g. for copying a binary to be executed as a lifecycle hook.
# This also supports template content, which will eventually be converted to yaml.
# Another usage of init containers is e.g. initializing filesystem permissions to the OTLP Collector user `10001` in case you are using persistence and the volume is producing a permission denied error for the OTLP Collector container.
# - 'chown -R 10001: /var/lib/storage/otc' # use the path given as per `extensions.file_storage.directory` & `extraVolumeMounts[x].mountPath`
# - name: opentelemetry-collector-data # use the name of the volume used for persistence
# mountPath: /var/lib/storage/otc # use the path given as per `extensions.file_storage.directory` & `extraVolumeMounts[x].mountPath`
# Pod lifecycle policies.
# liveness probe configuration
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
# Number of seconds after the container has started before startup, liveness or readiness probes are initiated.
# How often in seconds to perform the probe.
# Number of seconds after which the probe times out.
# Minimum consecutive failures for the probe to be considered failed after having succeeded.
# Duration in seconds the pod needs to terminate gracefully upon probe failure.
# terminationGracePeriodSeconds: 10
# readiness probe configuration
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
# Number of seconds after the container has started before startup, liveness or readiness probes are initiated.
# How often (in seconds) to perform the probe.
# Number of seconds after which the probe times out.
# Minimum consecutive successes for the probe to be considered successful after having failed.
# Minimum consecutive failures for the probe to be considered failed after having succeeded.
# Enable the creation of a Service.
# By default, it's enabled on mode != daemonset.
# However, to enable it on mode = daemonset, its creation must be explicitly enabled
# loadBalancerIP: 1.2.3.4
# loadBalancerSourceRanges: []
# By default, Service of type 'LoadBalancer' will be created setting 'externalTrafficPolicy: Cluster'
# unless other value is explicitly set.
# Possible values are Cluster or Local (https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip)
# externalTrafficPolicy: Cluster
# By default, Service will be created setting 'internalTrafficPolicy: Local' on mode = daemonset
# unless other value is explicitly set.
# Setting 'internalTrafficPolicy: Cluster' on a daemonset is not recommended
# internalTrafficPolicy: Cluster
# ingressClassName: nginx
# - host: collector.example.com
# - secretName: collector-tls
# - collector.example.com
# Additional ingresses - only created if ingress.enabled is true
# Useful for when differently annotated ingress services are required
# Each additional ingress needs key "name" set to something unique
# ingressClassName: nginx
# - host: collector.example.com
# - secretName: collector-tls
# - collector.example.com
# The pod monitor by default scrapes the metrics port.
# The metrics port needs to be enabled as well.
# additional labels for the PodMonitor
# release: kube-prometheus-stack
# The service monitor by default scrapes the metrics port.
# The metrics port needs to be enabled as well.
# additional labels for the ServiceMonitor
# release: kube-prometheus-stack
# Used to set relabeling and metricRelabeling configs on the ServiceMonitor
# https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
# PodDisruptionBudget is used only if deployment enabled
# autoscaling is used only if mode is "deployment" or "statefulset"
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
# When 'mode: daemonset', maxSurge cannot be used when hostPort is set for any of the ports
# Create default rules for monitoring the collector
# additional labels for the PrometheusRule
# volumeClaimTemplates for a statefulset
podManagementPolicy: "Parallel"
# Controls if and how PVCs created by the StatefulSet are deleted. Available in Kubernetes 1.23+.
persistentVolumeClaimRetentionPolicy:
# Annotations to add to the NetworkPolicy
# Configure the 'from' clause of the NetworkPolicy.
# By default this will restrict traffic to ports enabled for the Collector. If
# you wish to further restrict traffic to other hosts or specific namespaces,
# see the standard NetworkPolicy 'spec.ingress.from' definition for more info:
# https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
# # Allow traffic from any pod in any namespace, but not external hosts
# - namespaceSelector: {}
# # Allow external access from a specific cidr block
# # Allow access from pods in specific namespaces
# - key: kubernetes.io/metadata.name
# Add additional ingress rules to specific ports
# Useful to allow external hosts/services to access specific ports
# An example is allowing an external prometheus server to scrape metrics
# See the standard NetworkPolicy 'spec.ingress' definition for more info:
# https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
# Restrict egress traffic from the OpenTelemetry collector pod
# See the standard NetworkPolicy 'spec.egress' definition for more info:
# https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
# - namespaceSelector: {}
# Allow containers to share processes across pod namespace
shareProcessNamespace: false