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 versions
Default values
Chart metadata
Images

Tag:

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

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.