DirectorySecurity AdvisoriesPricing
Sign in
Directory
opentelemetry-collector logoHELM

opentelemetry-collector

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart tags
Default values
Chart metadata
Images

Tag:
Compare:

1
# Default values for opentelemetry-collector.
2
# This is a YAML-formatted file.
3
# Declare variables to be passed into your templates.
4
5
nameOverride: ""
6
fullnameOverride: ""
7
# -- Valid values are "daemonset", "deployment", and "statefulset".
8
mode: ""
9
# -- Override the default apiVersion for custom controllers or for testing new API versions.
10
apiVersion: "apps/v1"
11
# -- Specify which namespace should be used to deploy the resources into
12
namespaceOverride: ""
13
# Handles basic configuration of components that
14
# also require k8s modifications to work correctly.
15
# .Values.config can be used to modify/add to a preset
16
# component configuration, but CANNOT be used to remove
17
# preset configuration. If you require removal of any
18
# sections of a preset configuration, you cannot use
19
# the preset. Instead, configure the component manually in
20
# .Values.config and use the other fields supplied in the
21
# values.yaml to configure k8s as necessary.
22
presets:
23
# Configures the collector to collect logs.
24
# Adds the file_log receiver to the logs pipeline
25
# and adds the necessary volumes and volume mounts.
26
# Best used with mode = daemonset.
27
# See https://opentelemetry.io/docs/kubernetes/collector/components/#filelog-receiver for details on the receiver.
28
logsCollection:
29
enabled: false
30
includeCollectorLogs: false
31
# -- Enabling this writes checkpoints in /var/lib/otelcol/ host directory.
32
# Note this changes collector's user to root, so that it can write to host directory.
33
storeCheckpoints: false
34
# -- The maximum bytes size of the recombined field.
35
# Once the size exceeds the limit, all received entries of the source will be combined and flushed.
36
maxRecombineLogSize: 102400
37
# Configures the collector to collect host metrics.
38
# Adds the hostmetrics receiver to the metrics pipeline
39
# and adds the necessary volumes and volume mounts.
40
# Best used with mode = daemonset.
41
# See https://opentelemetry.io/docs/kubernetes/collector/components/#host-metrics-receiver for details on the receiver.
42
hostMetrics:
43
enabled: false
44
# Configures the Kubernetes Processor to add Kubernetes metadata.
45
# Adds the k8s_attributes processor to all the pipelines
46
# and adds a preset of minimum required RBAC rules to ClusterRole.
47
# Best used with mode = daemonset.
48
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-attributes-processor for details on the receiver.
49
kubernetesAttributes:
50
enabled: false
51
# -- When enabled the processor will extract all labels for an associated pod and add them as resource attributes.
52
# The label's exact name will be the key.
53
extractAllPodLabels: false
54
# -- When enabled the processor will extract all annotations for an associated pod and add them as resource attributes.
55
# The annotation's exact name will be the key.
56
extractAllPodAnnotations: false
57
# Configures the collector to collect node, pod, and container metrics from the API server on a kubelet.
58
# Adds the kubeletstats receiver to the metrics pipeline
59
# and adds the necessary rules to ClusterRole.
60
# Best used with mode = daemonset.
61
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubeletstats-receiver for details on the receiver.
62
kubeletMetrics:
63
enabled: false
64
# Configures the collector to collect kubernetes events.
65
# Adds the k8sobjects receiver to the logs pipeline
66
# and collects kubernetes events by default.
67
# Best used with mode = deployment or statefulset.
68
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-objects-receiver for details on the receiver.
69
kubernetesEvents:
70
enabled: false
71
# -- When enabled, the preset uses the k8s_events receiver instead of k8sobjects. Will default to true in a future release.
72
useK8sEventsReceiver: false
73
# Collects Kubernetes objects via the k8sobjects receiver in pull mode (default interval: 1h).
74
# Can be used with mode = deployment, statefulset, or daemonset.
75
# Compatible with kubernetesEvents preset. Extra resources can be added via
76
# config.receivers.k8sobjects.objects (ClusterRole rules must be added manually via clusterRole.rules).
77
kubernetesObjects:
78
enabled: false
79
# When enabled with mode = daemonset, leader election is setup to prevent telemetry duplication.
80
# disableLeaderElection: false
81
# When enabled, watch mode is added alongside pull to stream real-time changes.
82
watch: false
83
# Core Kubernetes workload resources: pods, nodes, namespaces, services, serviceaccounts, deployments, replicasets, daemonsets, statefulsets, jobs, cronjobs
84
core:
85
enabled: true
86
# RBAC resources: roles, rolebindings, clusterroles, clusterrolebindings
87
rbac:
88
enabled: true
89
# Storage resources: storageclasses, persistentvolumes, persistentvolumeclaims
90
storage:
91
enabled: true
92
# Networking resources: ingresses, networkpolicies
93
networking:
94
enabled: true
95
# Autoscaling resources: horizontalpodautoscalers
96
autoscaling:
97
enabled: true
98
# VPA resources: verticalpodautoscalers (requires VPA CRD to be installed)
99
vpa:
100
enabled: false
101
# Policy resources: poddisruptionbudgets
102
policy:
103
enabled: true
104
# API extensions resources: customresourcedefinitions
105
apiExtensions:
106
enabled: true
107
# Kubernetes events, collected in watch mode.
108
events:
109
enabled: false
110
# Configures the Kubernetes Cluster Receiver to collect cluster-level metrics.
111
# Adds the k8s_cluster receiver to the metrics pipeline
112
# and adds the necessary rules to ClusterRole.
113
# Can be used with mode = deployment, statefulset, or daemonset.
114
# When used as a daemonset or with multiple replicas, leader election is set up to prevent duplication.
115
# See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-cluster-receiver for details on the receiver.
116
clusterMetrics:
117
enabled: false
118
# When enabled with mode = daemonset or with multiple replicas, leader election is set up to prevent telemetry duplication.
119
# disableLeaderElection: false
120
# Configures the collector to collect logs and metrics from pods with specific annotations.
121
# This preset can not be used together with the `logsCollection` preset.
122
# Adds the receiver_creator receiver to the logs and metrics pipelines
123
# and adds the necessary rules to ClusterRole.
124
# Best used with mode = daemonset.
125
# See https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/receivercreator/README.md#generate-receiver-configurations-from-provided-hints for details on the receiver.
126
annotationDiscovery:
127
logs:
128
enabled: false
129
metrics:
130
enabled: false
131
# Configures the collector to collect profiling data.
132
# Adds profiles pipeline with the profiling receiver,
133
# and adds the necessary volumes, security context and host PID access.
134
#
135
# Warning: The profiling receiver requires elevated capabilities and hostPID,
136
# so it should be used with a dedicated collector distribution (e.g. otelcol-ebpf-profiler)
137
# rather than the general-purpose k8s distribution. This avoids granting elevated privileges
138
# to the same collector that handles metrics, traces, and logs.
139
# See https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol-ebpf-profiler for more details.
140
# When enabled, the collector is also scheduled on Linux nodes only.
141
profiling:
142
enabled: false
143
# Configures the collector to detect resource attributes using the resourcedetection processor.
144
# Adds the resourcedetection/env processor to all pipelines.
145
# Each detector can be enabled individually. Base detectors 'env' and 'k8s_api' are always included when any detector is enabled.
146
# Typically used to resolve the 'k8s.cluster.name' resource attribute.
147
# See https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/resourcedetectionprocessor for details.
148
resourceDetection:
149
enabled: false
150
env:
151
enabled: true
152
k8s_api:
153
enabled: true
154
eks:
155
enabled: false
156
aks:
157
enabled: false
158
gcp:
159
enabled: false
160
configMap:
161
# -- Specifies whether a configMap should be created (true by default)
162
create: true
163
# Specifies an existing ConfigMap to be mounted to the pod
164
# The ConfigMap MUST include the collector configuration via a key named 'relay' or the collector will not start.
165
# This also supports template content, which will eventually be converted to yaml.
166
existingName: ""
167
# Specifies the relative path to custom ConfigMap template file. This option SHOULD be used when bundling a custom
168
# ConfigMap template, as it enables pod restart via a template checksum annotation.
169
# existingPath: ""
170
# When enabled, the chart will configure the collector to emit its traces, metrics, and logs over http via the OTLP using the Otel Go SDK.
171
# If internalTelemetryViaOTLP.metrics.enabled the chart will remove the default prometheus receiver (which was configured to scrape the Collector's metrics).
172
# Learn more about the Collector telemetry at https://opentelemetry.io/docs/collector/internal-telemetry/.
173
#
174
# THIS OPTION IS EXPERIMENTAL AND SUBJECT TO BREAKING CHANGES
175
internalTelemetryViaOTLP:
176
# -- The endpoint where the telemetry will be exported
177
endpoint: ""
178
# -- Optional headers to configure the exporters
179
headers: []
180
# - name: "x-dest-auth"
181
# value: "some auth key"
182
traces:
183
enabled: false
184
# -- overrides internalTelemetryViaOTLP.endpoint for traces
185
endpoint: ""
186
# -- overrides internalTelemetryViaOTLP.headers for traces
187
headers: []
188
metrics:
189
enabled: false
190
# -- overrides internalTelemetryViaOTLP.endpoint for metrics
191
endpoint: ""
192
# -- overrides internalTelemetryViaOTLP.headers for metrics
193
headers: []
194
logs:
195
enabled: false
196
# -- overrides internalTelemetryViaOTLP.endpoint for logs
197
endpoint: ""
198
# -- overrides internalTelemetryViaOTLP.headers for logs
199
headers: []
200
# Rewrite deprecated component names (e.g. k8sattributes -> k8s_attributes
201
# processor, k8snode -> k8s_api resourcedetection detector) in the generated
202
# config. Set to false if using older Collector images that do not recognize the
203
# new names. Renamed from rewriteDeprecatedProcessorNames in chart 0.162.0.
204
rewriteDeprecatedComponentNames: true
205
# Base collector configuration.
206
# Supports templating. To escape existing instances of {{ }}, use {{` <original content> `}}.
207
# For example, {{ REDACTED_EMAIL }} becomes {{` {{ REDACTED_EMAIL }} `}}.
208
# -- Base collector configuration. Supports templating; see the prose above this key in values.yaml.
209
# @default -- OTLP receivers plus the debug exporter wired into logs, metrics and traces pipelines; see [values.yaml](./values.yaml)
210
config:
211
exporters:
212
debug: {}
213
extensions:
214
# The health_check extension is mandatory for this chart.
215
# Without the health_check extension the collector will fail the readiness and liveness probes.
216
# The health_check extension can be modified, but should never be removed.
217
health_check:
218
endpoint: ${env:MY_POD_IP}:13133
219
processors:
220
batch: {}
221
# Default memory limiter configuration for the collector based on k8s resource limits.
222
memory_limiter:
223
# check_interval is the time between measurements of memory usage.
224
check_interval: 5s
225
# By default limit_mib is set to 80% of ".Values.resources.limits.memory"
226
limit_percentage: 80
227
# By default spike_limit_mib is set to 25% of ".Values.resources.limits.memory"
228
spike_limit_percentage: 25
229
receivers:
230
jaeger:
231
protocols:
232
grpc:
233
endpoint: ${env:MY_POD_IP}:14250
234
thrift_http:
235
endpoint: ${env:MY_POD_IP}:14268
236
thrift_compact:
237
endpoint: ${env:MY_POD_IP}:6831
238
otlp:
239
protocols:
240
grpc:
241
endpoint: ${env:MY_POD_IP}:4317
242
http:
243
endpoint: ${env:MY_POD_IP}:4318
244
# if internalTelemetryViaOTLP.metrics.enabled = true, prometheus receiver will be removed
245
prometheus:
246
config:
247
scrape_configs:
248
- job_name: opentelemetry-collector
249
scrape_interval: 10s
250
static_configs:
251
- targets:
252
- ${env:MY_POD_IP}:8888
253
zipkin:
254
endpoint: ${env:MY_POD_IP}:9411
255
service:
256
telemetry:
257
resource:
258
k8s.namespace.name: "${env:OTEL_K8S_NAMESPACE}"
259
k8s.node.name: "${env:OTEL_K8S_NODE_NAME}"
260
k8s.node.ip: "${env:OTEL_K8S_NODE_IP}"
261
k8s.pod.name: "${env:OTEL_K8S_POD_NAME}"
262
k8s.pod.ip: "${env:OTEL_K8S_POD_IP}"
263
host.name: "${env:OTEL_K8S_NODE_NAME}"
264
metrics:
265
readers:
266
- pull:
267
exporter:
268
prometheus:
269
host: ${env:MY_POD_IP}
270
port: 8888
271
extensions:
272
- health_check
273
pipelines:
274
logs:
275
exporters:
276
- debug
277
processors:
278
- memory_limiter
279
- batch
280
receivers:
281
- otlp
282
metrics:
283
exporters:
284
- debug
285
processors:
286
- memory_limiter
287
- batch
288
receivers:
289
- otlp
290
# if internalTelemetryViaOTLP.metrics.enabled = true, prometheus receiver will be removed
291
- prometheus
292
traces:
293
exporters:
294
- debug
295
processors:
296
- memory_limiter
297
- batch
298
receivers:
299
- otlp
300
- jaeger
301
- zipkin
302
# Helm currently has an issue (https://github.com/helm/helm/pull/12879) when using null to remove
303
# default configuration from a subchart. The result is that you cannot remove default configuration
304
# from `config`, such as a specific receiver or a specific pipeline, when the chart is used as a
305
# subchart.
306
#
307
# Until the helm bug is fixed, this field is provided as an alternative when using this chart as a subchart.
308
# It is not recommended to use this field when installing the chart directly.
309
#
310
# When not empty, `alternateConfig` will be used to set the collector's configuration. It has NO default
311
# values and IS NOT MERGED with config. Any configuration provided via `config` will be ignored when
312
# `alternateConfig` is set. You MUST provide your own collector configuration.
313
#
314
# Reminder that the healthcheck extension (or something else that provides the same functionality) is required.
315
#
316
# Components configured by presets will be injected in the same way they are for `config`.
317
alternateConfig: {}
318
image:
319
# -- If you want to use the core image `otel/opentelemetry-collector`, you also need to change `command.name` value to `otelcol`.
320
repository: cgr.dev/chainguard-private/opentelemetry-collector-contrib
321
pullPolicy: IfNotPresent
322
# -- Overrides the image tag whose default is the chart appVersion.
323
tag: 0.163.0-r2
324
# -- When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value).
325
digest: sha256:4e266a0384c737f81bc44e50a098d03537e04391c4d245c533d8bd6fdc4d8dc3
326
imagePullSecrets: []
327
# OpenTelemetry Collector executable
328
command:
329
name: ""
330
extraArgs: []
331
serviceAccount:
332
# -- Specifies whether a service account should be created
333
create: true
334
# -- Annotations to add to the service account
335
annotations: {}
336
# -- The name of the service account to use.
337
# If not set and create is true, a name is generated using the fullname template
338
name: ""
339
# -- Automatically mount a ServiceAccount's API credentials?
340
automountServiceAccountToken: true
341
clusterRole:
342
# Specifies whether a clusterRole should be created
343
# Some presets also trigger the creation of a cluster role and cluster role binding.
344
# If using one of those presets, this field is no-op.
345
create: false
346
# -- Annotations to add to the clusterRole
347
# Can be used in combination with presets that create a cluster role.
348
annotations: {}
349
# The name of the clusterRole to use.
350
# If not set a name is generated using the fullname template
351
# Can be used in combination with presets that create a cluster role.
352
name: ""
353
# A set of rules as documented here : https://kubernetes.io/docs/reference/access-authn-authz/rbac/
354
# Can be used in combination with presets that create a cluster role to add additional rules.
355
rules: []
356
# - apiGroups:
357
# - ''
358
# resources:
359
# - 'pods'
360
# - 'nodes'
361
# verbs:
362
# - 'get'
363
# - 'list'
364
# - 'watch'
365
366
clusterRoleBinding:
367
# -- Annotations to add to the clusterRoleBinding
368
# Can be used in combination with presets that create a cluster role binding.
369
annotations: {}
370
# The name of the clusterRoleBinding to use.
371
# If not set a name is generated using the fullname template
372
# Can be used in combination with presets that create a cluster role binding.
373
name: ""
374
podSecurityContext: {}
375
securityContext: {}
376
nodeSelector: {}
377
tolerations: []
378
affinity: {}
379
topologySpreadConstraints: []
380
# -- Allows for pod scheduler prioritisation
381
priorityClassName: ""
382
# -- Allows for pod to use a specific runtime class, e.g. gvisor, kata-containers
383
# Also useful for the pod security admissions plugins that rely on runtimeClassName
384
runtimeClassName: ""
385
terminationGracePeriodSeconds: 30
386
# -- This also supports template content, which will eventually be converted to yaml.
387
extraEnvs: []
388
# -- This also supports template content, which will eventually be converted to yaml.
389
extraEnvsFrom: []
390
# -- This also supports template content, which will eventually be converted to yaml.
391
extraVolumes: []
392
# -- This also supports template content, which will eventually be converted to yaml.
393
extraVolumeMounts: []
394
# -- This also supports template content, which will eventually be converted to yaml.
395
extraManifests: []
396
# Configuration for ports
397
# nodePort is also allowed
398
ports:
399
otlp:
400
enabled: true
401
containerPort: 4317
402
servicePort: 4317
403
hostPort: 4317
404
protocol: TCP
405
# nodePort: 30317
406
appProtocol: grpc
407
otlp-http:
408
enabled: true
409
containerPort: 4318
410
servicePort: 4318
411
hostPort: 4318
412
protocol: TCP
413
jaeger-compact:
414
enabled: true
415
containerPort: 6831
416
servicePort: 6831
417
hostPort: 6831
418
protocol: UDP
419
jaeger-thrift:
420
enabled: true
421
containerPort: 14268
422
servicePort: 14268
423
hostPort: 14268
424
protocol: TCP
425
jaeger-grpc:
426
enabled: true
427
containerPort: 14250
428
servicePort: 14250
429
hostPort: 14250
430
protocol: TCP
431
zipkin:
432
enabled: true
433
containerPort: 9411
434
servicePort: 9411
435
hostPort: 9411
436
protocol: TCP
437
metrics:
438
# The metrics port is disabled by default. However you need to enable the port
439
# in order to use the ServiceMonitor (serviceMonitor.enabled) or PodMonitor (podMonitor.enabled).
440
enabled: false
441
containerPort: 8888
442
servicePort: 8888
443
protocol: TCP
444
# When enabled, the chart will set the GOMEMLIMIT env var to 80% of the configured resources.limits.memory.
445
# If no resources.limits.memory are defined then enabling does nothing.
446
# It is HIGHLY recommend to enable this setting and set a value for resources.limits.memory.
447
useGOMEMLIMIT: true
448
# -- Container resize policy for in-place resource resize (Kubernetes >= 1.27).
449
# https://kubernetes.io/docs/concepts/workloads/autoscaling/#in-place-resizing
450
resizePolicy: []
451
# resizePolicy:
452
# - resourceName: cpu
453
# restartPolicy: NotRequired
454
# - resourceName: memory
455
# restartPolicy: RestartContainer
456
457
# -- Resource limits & requests.
458
# It is HIGHLY recommended to set resource limits.
459
resources: {}
460
# resources:
461
# limits:
462
# cpu: 250m
463
# memory: 512Mi
464
465
enableConfigChecksumAnnotation: true
466
podAnnotations: {}
467
podLabels: {}
468
# -- Common labels to add to all otel-collector resources. Evaluated as a template.
469
additionalLabels: {}
470
# app.kubernetes.io/part-of: my-app
471
472
# -- Host networking requested for this pod. Use the host's network namespace.
473
hostNetwork: false
474
# Enable sharing the host's PID namespace with the pod.
475
# WARNING: This grants visibility into all host processes and should only be enabled when required.
476
hostPID: false
477
# -- Adding entries to Pod /etc/hosts with HostAliases
478
# https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/
479
hostAliases: []
480
# - ip: "1.2.3.4"
481
# hostnames:
482
# - "my.host.com"
483
484
# -- Pod DNS policy ClusterFirst, ClusterFirstWithHostNet, None, Default, None
485
dnsPolicy: ""
486
# -- Custom DNS config. Required when DNS policy is None.
487
dnsConfig: {}
488
# -- Custom kube scheduler name.
489
schedulerName: ""
490
# -- only used with deployment and statefulset modes.
491
replicaCount: 1
492
revisionHistoryLimit: 10
493
annotations: {}
494
# -- List of extra sidecars to add.
495
# This also supports template content, which will eventually be converted to yaml.
496
extraContainers: []
497
# extraContainers:
498
# - name: test
499
# command:
500
# - cp
501
# args:
502
# - /bin/sleep
503
# - /test/sleep
504
# image: busybox:latest
505
# volumeMounts:
506
# - name: test
507
# mountPath: /test
508
509
# List of init container specs, e.g. for copying a binary to be executed as a lifecycle hook.
510
# This also supports template content, which will eventually be converted to yaml.
511
# 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.
512
initContainers: []
513
# initContainers:
514
# - name: test
515
# image: busybox:latest
516
# command:
517
# - cp
518
# args:
519
# - /bin/sleep
520
# - /test/sleep
521
# volumeMounts:
522
# - name: test
523
# mountPath: /test
524
# - name: init-fs
525
# image: busybox:latest
526
# command:
527
# - sh
528
# - '-c'
529
# - 'chown -R 10001: /var/lib/storage/otc' # use the path given as per `extensions.file_storage.directory` & `extraVolumeMounts[x].mountPath`
530
# volumeMounts:
531
# - name: opentelemetry-collector-data # use the name of the volume used for persistence
532
# mountPath: /var/lib/storage/otc # use the path given as per `extensions.file_storage.directory` & `extraVolumeMounts[x].mountPath`
533
534
# -- Pod lifecycle policies.
535
lifecycleHooks: {}
536
# lifecycleHooks:
537
# preStop:
538
# exec:
539
# command:
540
# - /test/sleep
541
# - "5"
542
543
# liveness probe configuration
544
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
545
##
546
livenessProbe:
547
# Number of seconds after the container has started before startup, liveness or readiness probes are initiated.
548
# initialDelaySeconds: 1
549
# How often in seconds to perform the probe.
550
# periodSeconds: 10
551
# Number of seconds after which the probe times out.
552
# timeoutSeconds: 1
553
# Minimum consecutive failures for the probe to be considered failed after having succeeded.
554
# failureThreshold: 1
555
# Duration in seconds the pod needs to terminate gracefully upon probe failure.
556
# terminationGracePeriodSeconds: 10
557
httpGet:
558
port: 13133
559
path: /
560
# readiness probe configuration
561
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
562
##
563
readinessProbe:
564
# Number of seconds after the container has started before startup, liveness or readiness probes are initiated.
565
# initialDelaySeconds: 1
566
# How often (in seconds) to perform the probe.
567
# periodSeconds: 10
568
# Number of seconds after which the probe times out.
569
# timeoutSeconds: 1
570
# Minimum consecutive successes for the probe to be considered successful after having failed.
571
# successThreshold: 1
572
# Minimum consecutive failures for the probe to be considered failed after having succeeded.
573
# failureThreshold: 1
574
httpGet:
575
port: 13133
576
path: /
577
# startup probe configuration
578
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
579
##
580
startupProbe: {}
581
# Number of seconds after the container has started before startup probes are initiated.
582
# initialDelaySeconds: 1
583
# How often in seconds to perform the probe.
584
# periodSeconds: 10
585
# Number of seconds after which the probe times out.
586
# timeoutSeconds: 1
587
# Minimum consecutive failures for the probe to be considered failed after having succeeded.
588
# failureThreshold: 1
589
# Duration in seconds the pod needs to terminate gracefully upon probe failure.
590
# terminationGracePeriodSeconds: 10
591
# httpGet:
592
# port: 13133
593
# path: /
594
595
service:
596
# Enable the creation of a Service.
597
# By default, it's enabled on mode != daemonset.
598
# However, to enable it on mode = daemonset, its creation must be explicitly enabled
599
# enabled: true
600
type: ClusterIP
601
# Supported values: PreferClose (deprecated in K8s 1.33+), PreferSameZone, PreferSameNode
602
# trafficDistribution: PreferClose
603
# type: LoadBalancer
604
# loadBalancerIP: 1.2.3.4
605
# loadBalancerSourceRanges: []
606
607
# By default, Service of type 'LoadBalancer' or 'NodePort' will be created setting 'externalTrafficPolicy: Cluster'
608
# unless other value is explicitly set.
609
# Possible values are Cluster or Local (https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip)
610
# externalTrafficPolicy: Cluster
611
annotations: {}
612
# By default, Service will be created setting 'internalTrafficPolicy: Local' on mode = daemonset
613
# unless other value is explicitly set.
614
# Setting 'internalTrafficPolicy: Cluster' on a daemonset is not recommended
615
# internalTrafficPolicy: Cluster
616
ingress:
617
enabled: false
618
# annotations: {}
619
# ingressClassName: nginx
620
# hosts:
621
# - host: collector.example.com
622
# paths:
623
# - path: /
624
# pathType: Prefix
625
# port: 4318
626
# tls:
627
# - secretName: collector-tls
628
# hosts:
629
# - collector.example.com
630
631
# Additional ingresses - only created if ingress.enabled is true
632
# Useful for when differently annotated ingress services are required
633
# Each additional ingress needs key "name" set to something unique
634
additionalIngresses: []
635
# - name: cloudwatch
636
# ingressClassName: nginx
637
# annotations: {}
638
# hosts:
639
# - host: collector.example.com
640
# paths:
641
# - path: /
642
# pathType: Prefix
643
# port: 4318
644
# tls:
645
# - secretName: collector-tls
646
# hosts:
647
# - collector.example.com
648
# Gateway API HTTPRoute. An alternative to ingress for exposing the
649
# collector's HTTP-based receivers through a Gateway API implementation.
650
# Requires the Gateway API CRDs to be installed in the cluster.
651
httproute:
652
enabled: false
653
# HTTPRoute apiVersion (defaults to "gateway.networking.k8s.io/v1" when empty)
654
apiVersion: ""
655
annotations: {}
656
# parentRefs reference the Gateway(s) this HTTPRoute is attached to
657
# parentRefs:
658
# - name: my-gateway
659
# namespace: gateway-system
660
# sectionName: otlp-http
661
parentRefs: []
662
# hostnames matched against the HTTP Host header to select this route
663
# hostnames:
664
# - collector.example.com
665
hostnames: []
666
# rules associate request matches with a backend port on the collector
667
# service. backendRefs "name" defaults to the collector service when omitted.
668
# rules:
669
# - matches:
670
# - path:
671
# type: PathPrefix
672
# value: /
673
# backendRefs:
674
# - port: 4318
675
rules: []
676
podMonitor:
677
# -- The pod monitor by default scrapes the metrics port.
678
# The metrics port needs to be enabled as well.
679
enabled: false
680
metricsEndpoints:
681
- port: metrics
682
# interval: 15s
683
# -- additional labels for the PodMonitor
684
extraLabels: {}
685
# release: kube-prometheus-stack
686
serviceMonitor:
687
# -- The service monitor by default scrapes the metrics port.
688
# The metrics port needs to be enabled as well.
689
enabled: false
690
metricsEndpoints:
691
- port: metrics
692
# interval: 15s
693
# -- additional labels for the ServiceMonitor
694
extraLabels: {}
695
# release: kube-prometheus-stack
696
# Used to set relabeling and metricRelabeling configs on the ServiceMonitor
697
# https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
698
relabelings: []
699
metricRelabelings: []
700
# -- Sets a sample limit on the ServiceMonitor
701
sampleLimit: 0
702
# PodDisruptionBudget is used only if mode is "deployment" or "statefulset"
703
podDisruptionBudget:
704
enabled: false
705
# minAvailable: 2
706
# maxUnavailable: 1
707
708
# autoscaling is used only if mode is "deployment" or "statefulset"
709
autoscaling:
710
enabled: false
711
minReplicas: 1
712
maxReplicas: 10
713
behavior: {}
714
targetCPUUtilizationPercentage: 80
715
# targetMemoryUtilizationPercentage: 80
716
# Supply an array of custom metrics to be used for autoscaling. It includes externalMetrics, objectMetrics, and podsMetrics.
717
additionalMetrics: []
718
rollout:
719
rollingUpdate: {}
720
# When 'mode: daemonset', maxSurge cannot be used when hostPort is set for any of the ports
721
# maxSurge: 25%
722
# maxUnavailable: 0
723
strategy: RollingUpdate
724
prometheusRule:
725
enabled: false
726
groups: []
727
# Create default rules for monitoring the collector
728
defaultRules:
729
enabled: false
730
# -- Additional labels for PrometheusRule alerts
731
additionalRuleLabels: {}
732
# -- Additional annotations for PrometheusRule alerts
733
additionalRuleAnnotations: {}
734
# -- additional labels for the PrometheusRule
735
extraLabels: {}
736
statefulset:
737
# -- volumeClaimTemplates for a statefulset
738
volumeClaimTemplates: []
739
podManagementPolicy: "Parallel"
740
# Controls if and how PVCs created by the StatefulSet are deleted. Available in Kubernetes 1.23+.
741
persistentVolumeClaimRetentionPolicy:
742
enabled: false
743
whenDeleted: Retain
744
whenScaled: Retain
745
networkPolicy:
746
enabled: false
747
# -- Annotations to add to the NetworkPolicy
748
annotations: {}
749
# Configure the 'from' clause of the NetworkPolicy.
750
# By default this will restrict traffic to ports enabled for the Collector. If
751
# you wish to further restrict traffic to other hosts or specific namespaces,
752
# see the standard NetworkPolicy 'spec.ingress.from' definition for more info:
753
# https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
754
allowIngressFrom: []
755
# # Allow traffic from any pod in any namespace, but not external hosts
756
# - namespaceSelector: {}
757
# # Allow external access from a specific cidr block
758
# - ipBlock:
759
# cidr: 192.168.1.64/32
760
# # Allow access from pods in specific namespaces
761
# - namespaceSelector:
762
# matchExpressions:
763
# - key: kubernetes.io/metadata.name
764
# operator: In
765
# values:
766
# - "cats"
767
# - "dogs"
768
769
# Add additional ingress rules to specific ports
770
# Useful to allow external hosts/services to access specific ports
771
# An example is allowing an external prometheus server to scrape metrics
772
#
773
# See the standard NetworkPolicy 'spec.ingress' definition for more info:
774
# https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
775
extraIngressRules: []
776
# - ports:
777
# - port: metrics
778
# protocol: TCP
779
# from:
780
# - ipBlock:
781
# cidr: 192.168.1.64/32
782
783
# Restrict egress traffic from the OpenTelemetry collector pod
784
# See the standard NetworkPolicy 'spec.egress' definition for more info:
785
# https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/
786
egressRules: []
787
# - to:
788
# - namespaceSelector: {}
789
# - ipBlock:
790
# cidr: 192.168.10.10/24
791
# ports:
792
# - port: 1234
793
# protocol: TCP
794
# -- Allow containers to share processes across pod namespace
795
shareProcessNamespace: false
796

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.