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

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.