DirectorySecurity AdvisoriesPricing
Sign in
Directory
trust-manager logoHELM

trust-manager

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
# +docs:section=Global
2
global:
3
rbac:
4
# Create required ClusterRoles, Roles, ClusterRoleBindings and RoleBindings for trust-manager.
5
create: true
6
# Aggregate read access to Bundles into the "cluster-reader" ClusterRole, mirroring how cert-manager aggregates its cluster-scoped ClusterIssuers. Bundle is a cluster-scoped resource, so this only takes effect for subjects bound via a ClusterRoleBinding.
7
# For more information, see [User-facing roles](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles).
8
aggregateClusterRoles: true
9
# +docs:section=CRDs
10
crds:
11
# This option decides if the CRDs should be installed
12
# as part of the Helm installation.
13
enabled: true
14
# This option makes it so that the "helm.sh/resource-policy": keep
15
# annotation is added to the CRD. This will prevent Helm from uninstalling
16
# the CRD when the Helm release is uninstalled.
17
# WARNING: when the CRDs are removed, all cert-manager custom resources
18
# (Certificates, Issuers, ...) will be removed too by the garbage collector.
19
keep: true
20
# +docs:section=Trust Manager
21
22
# The number of replicas of trust-manager to run.
23
#
24
# For example:
25
# Use integer to set a fixed number of replicas
26
# replicaCount: 2
27
#
28
# Use null, if you want to omit the replicas field and use the Kubernetes default value.
29
# replicaCount: null
30
#
31
# Use a string if you want to insert a variable for post-processing of the rendered template.
32
# replicaCount: ${REPLICAS_OVERRIDE:=3}
33
#
34
# +docs:type=number,string,null
35
replicaCount: 1
36
# The number of old ReplicaSets to retain to allow rollback.
37
# This is used to control the number of old ReplicaSets that are retained to allow rollback.
38
# If set to 0, no old ReplicaSets are retained.
39
# +docs:type=number,null
40
revisionHistoryLimit: 10
41
nameOverride: ""
42
# The namespace to install trust-manager into.
43
# If not set, the namespace of the release is used.
44
# This is helpful when installing trust-manager as a chart dependency (sub chart).
45
namespace: ""
46
# For Private docker registries, authentication is needed. Registry secrets are applied to the service account.
47
imagePullSecrets: []
48
# The container registry used for trust-manager images by default.
49
# This can include path prefixes (e.g. "artifactory.example.com/docker").
50
# +docs:property
51
imageRegistry: quay.io
52
# The repository namespace used for trust-manager images by default.
53
# Examples:
54
# - jetstack
55
# - cert-manager
56
# +docs:property
57
imageNamespace: jetstack
58
image:
59
# Target image registry. This value is prepended to the target image repository, if set.
60
# For example:
61
# registry: legacy.example.io
62
# Deprecated: per-component registry prefix.
63
#
64
# If set, this value is *prepended* to the image repository that the chart would otherwise render.
65
# This applies both when `image.repository` is set and when the repository is computed from
66
# `imageRegistry` + `imageNamespace` + `image.name`.
67
#
68
# This can produce "double registry" style references such as
69
# `legacy.example.io/quay.io/jetstack/...`. Prefer using the global
70
# `imageRegistry`/`imageNamespace` values.
71
# +docs:property
72
# registry: quay.io
73
74
# Full repository override (takes precedence over `imageRegistry`, `imageNamespace`,
75
# and `image.name`).
76
# Example: quay.io/jetstack/trust-manager
77
# +docs:property
78
repository: cgr.dev/chainguard-private/trust-manager-fips
79
# The image name for trust-manager.
80
# This is used (together with `imageRegistry` and `imageNamespace`) to construct the full
81
# image reference.
82
# +docs:property
83
name: trust-manager
84
# Override the image tag to deploy by setting this variable.
85
# If no value is set, the chart's appVersion is used.
86
# +docs:property
87
# tag: vX.Y.Z
88
89
# Target image digest. Override any tag, if set.
90
# For example:
91
# digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
92
# +docs:property
93
# digest: sha256:...
94
95
# Kubernetes imagePullPolicy on Deployment.
96
pullPolicy: IfNotPresent
97
tag: 0.26.0-r0
98
digest: sha256:e727aca91fa3575a7d1352352ac1ee2f53f4bcb942bcddff5615b0789a7ac0b1
99
defaultPackage:
100
# Whether to load the default trust package during pod initialization, and include it in main container args. This container enables the 'useDefaultCAs' source on Bundles.
101
enabled: true
102
# Kubernetes pod resource limits for default package init container.
103
#
104
# For example:
105
# resources:
106
# limits:
107
# cpu: 100m
108
# memory: 128Mi
109
# requests:
110
# cpu: 100m
111
# memory: 128Mi
112
resources: {}
113
# Security Context to be set on the trust-manager default package init container. For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
114
# +docs:property
115
securityContext:
116
allowPrivilegeEscalation: false
117
capabilities:
118
drop:
119
- ALL
120
readOnlyRootFilesystem: true
121
runAsNonRoot: true
122
seccompProfile:
123
type: RuntimeDefault
124
defaultPackageImage:
125
# Target image registry. This value is prepended to the target image repository, if set.
126
# For example:
127
# registry: quay.io
128
# repository: jetstack/cert-manager-package-debian
129
# Deprecated: per-component registry prefix.
130
#
131
# If set, this value is *prepended* to the image repository that the chart would otherwise render.
132
# This applies both when `image.repository` is set and when the repository is computed from
133
# `imageRegistry` + `imageNamespace` + `image.name`.
134
#
135
# This can produce "double registry" style references such as
136
# `legacy.example.io/quay.io/jetstack/...`. Prefer using the global
137
# `imageRegistry`/`imageNamespace` values.
138
# +docs:property
139
# registry: quay.io
140
141
# Full repository override (takes precedence over `imageRegistry`, `imageNamespace`,
142
# and `image.name`).
143
# Example: quay.io/jetstack/trust-manager
144
# +docs:property
145
repository: cgr.dev/chainguard-private/cert-manager-package-12-fips
146
# The image name for trust-manager.
147
# This is used (together with `imageRegistry` and `imageNamespace`) to construct the full
148
# image reference.
149
# +docs:property
150
name: trust-pkg-debian-trixie
151
# Override the image tag of the default package image.
152
# Is set at chart build time to the version specified in ./make/00_debian_trixie_version.mk.
153
# +docs:property
154
# tag: vX.Y.Z
155
156
# Target image digest. Override any tag, if set.
157
# For example:
158
# digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
159
# +docs:property
160
# digest: sha256:...
161
162
# WARNING: For internal use only, is overwritten before releasing the chart.
163
# +docs:hidden
164
_defaultReference: :20250419-deb12u2.1
165
# imagePullPolicy for the default package image.
166
pullPolicy: IfNotPresent
167
tag: 20250419.12.2.1-r1
168
digest: sha256:0fefcbaeeff98b787173872dc9c5972ec8db6499cb3539486bf472e4407a946c
169
# Automounting API credentials for the trust-manager pod.
170
# +docs:property
171
automountServiceAccountToken: true
172
serviceAccount:
173
# Specifies whether a service account should be created.
174
create: true
175
# The name of the service account to use.
176
# If not set and create is true, a name is generated using the fullname template.
177
# +docs:property
178
# name: ""
179
180
# Automount API credentials for a Service Account.
181
# +docs:property
182
automountServiceAccountToken: true
183
# Additional volumes to add to the trust-manager pod.
184
volumes: []
185
# Additional volume mounts to add to the trust-manager container.
186
volumeMounts: []
187
secretTargets:
188
# If set to true, enable writing trust bundles to Kubernetes Secrets as a target.
189
# Enabling this alone changes no RBAC: the Secret rules are emitted only once authorizedSecrets or
190
# authorizedSecretsAll is configured. Once one of them is, trust-manager is granted read access to
191
# all Secrets in scope: cluster-wide by default, or — when app.targetNamespaces is set — only in those
192
# namespaces plus the trust namespace.
193
enabled: false
194
# If set to true, grant read/write permission to all secrets across the cluster. Use with caution!
195
# If set, ignores the authorizedSecrets list.
196
authorizedSecretsAll: false
197
# A list of secret names which trust-manager will be permitted to write (patch and delete) within the configured scope (cluster-wide by default, or — when app.targetNamespaces is set — the target namespaces plus the trust namespace).
198
# Read access is NOT limited to these names: configuring this list (or authorizedSecretsAll) grants
199
# trust-manager read (get/list/watch) on all Secrets in scope (cluster-wide, or — when app.targetNamespaces
200
# is set — those namespaces plus the trust namespace). Only patching and deleting are restricted to these
201
# names. Kubernetes RBAC ignores resourceNames for the create verb, because the API server does not
202
# know the object's name at authorization time. If the list is empty (and authorizedSecretsAll is false),
203
# trust-manager can't write to secrets and can only read secrets in the trust namespace for use as sources.
204
authorizedSecrets: []
205
# Kubernetes pod resource limits for trust.
206
#
207
# For example:
208
# resources:
209
# limits:
210
# cpu: 100m
211
# memory: 128Mi
212
# requests:
213
# cpu: 100m
214
# memory: 128Mi
215
resources: {}
216
# Security Context to be set on the trust-manager Pod. For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
217
podSecurityContext: {}
218
# Configure the priority class of the pod. For more information, see [PriorityClass](https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass).
219
priorityClassName: ""
220
# Configure the nodeSelector; defaults to any Linux node (trust-manager doesn't support Windows nodes)
221
# +docs:property
222
nodeSelector:
223
kubernetes.io/os: linux
224
# Kubernetes Affinity. For more information, see [Affinity v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#affinity-v1-core).
225
# For example:
226
# affinity:
227
# nodeAffinity:
228
# requiredDuringSchedulingIgnoredDuringExecution:
229
# nodeSelectorTerms:
230
# - matchExpressions:
231
# - key: foo.bar.com/role
232
# operator: In
233
# values:
234
# - master
235
affinity: {}
236
# List of Kubernetes Tolerations, if required. For more information, see [Toleration v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core).
237
# For example:
238
# tolerations:
239
# - key: foo.bar.com/role
240
# operator: Equal
241
# value: master
242
# effect: NoSchedule
243
tolerations: []
244
# List of Kubernetes TopologySpreadConstraints. For more information, see [TopologySpreadConstraint v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#topologyspreadconstraint-v1-core).
245
# For example:
246
# topologySpreadConstraints:
247
# - maxSkew: 2
248
# topologyKey: topology.kubernetes.io/zone
249
# whenUnsatisfiable: ScheduleAnyway
250
# labelSelector:
251
# matchLabels:
252
# app.kubernetes.io/name: trust-manager
253
topologySpreadConstraints: []
254
filterExpiredCertificates:
255
# Whether to filter expired certificates from the trust bundle.
256
enabled: false
257
filterNonCACerts:
258
# Filter non-CA certificates, only CAs are used in the resulting Bundle.
259
enabled: false
260
app:
261
# Minimum TLS version supported. If omitted, the default Go minimum version will be used.
262
minTLSVersion: ""
263
# Comma-separated list of cipher suites for the webhook server. If omitted, the default Go cipher suites will be used.
264
# Only affects TLS 1.2; TLS 1.3 cipher suites are not configurable in Go.
265
# Acceptable names match Kubernetes component-base (same as kube-apiserver --tls-cipher-suites);
266
# see [TLSCipherPossibleValues](https://pkg.go.dev/k8s.io/component-base/cli/flag#TLSCipherPossibleValues).
267
# Some listed values are considered insecure — prefer [PreferredTLSCipherNames](https://pkg.go.dev/k8s.io/component-base/cli/flag#PreferredTLSCipherNames).
268
cipherSuites: ""
269
# Comma-separated list of numeric Go crypto/tls CurveID values for the webhook server (for example 23,29 for P-256 and X25519).
270
# Applies to TLS 1.2 and TLS 1.3 key exchange. Unlike cipherSuites, this still takes effect when the webhook is TLS 1.3-only.
271
# The order of the list is ignored. If omitted, the default Go curves will be used. See https://pkg.go.dev/crypto/tls#CurveID.
272
curvePreferences: ""
273
# The format of trust-manager logging. Accepted values are text or json.
274
logFormat: text
275
# The verbosity of trust-manager logging. This takes a value from 1-5, with the higher value being more verbose.
276
logLevel: 1
277
leaderElection:
278
# Whether to enable leader election for trust-manager.
279
enabled: true
280
# The duration that non-leader candidates will wait to force acquire leadership.
281
# The default should be sufficient in a healthy cluster but can be slightly increased to prevent trust-manager from restart-looping when the API server is overloaded.
282
leaseDuration: 15s
283
# The interval between attempts by the acting leader to renew a leadership slot before it stops leading.
284
# This MUST be less than or equal to the lease duration.
285
# The default should be sufficient in a healthy cluster but can be slightly increased to prevent trust-manager from restart-looping when the API server is overloaded.
286
renewDeadline: 10s
287
readinessProbe:
288
# The container port on which to expose the trust-manager HTTP readiness probe using the default network interface.
289
port: 6060
290
# The path on which to expose the trust-manager HTTP readiness probe using the default network interface.
291
path: "/readyz"
292
trust:
293
# The namespace used as the trust source. Note that the namespace _must_ exist
294
# before installing trust-manager.
295
namespace: cert-manager
296
# List of target namespaces that trust-manager can write to. By default, trust-manager can write targets in any namespace.
297
# +docs:property
298
# targetNamespaces: ["ns-1", "ns-2"]
299
300
# Security Context to be set on the trust-manager app container. For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
301
# +docs:property
302
securityContext:
303
allowPrivilegeEscalation: false
304
capabilities:
305
drop:
306
- ALL
307
readOnlyRootFilesystem: true
308
runAsNonRoot: true
309
seccompProfile:
310
type: RuntimeDefault
311
# Pod labels to add to trust-manager pods.
312
# On a key collision these win over commonLabels. The "app" label cannot be
313
# overridden, because it must match the selectors that target these Pods.
314
podLabels: {}
315
# Pod annotations to add to trust-manager pods.
316
podAnnotations: {}
317
# +docs:section=Webhook
318
webhook:
319
# Host that the webhook listens on.
320
host: 0.0.0.0
321
# Port that the webhook listens on.
322
port: 6443
323
# Timeout of webhook HTTP request.
324
timeoutSeconds: 5
325
service:
326
# The type of Kubernetes Service used by the Webhook.
327
type: ClusterIP
328
# Set the ip family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
329
ipFamilyPolicy: ""
330
# Sets the families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6.
331
ipFamilies: []
332
# The nodePort set on the Service used by the webhook.
333
# +docs:property
334
# nodePort: 8080
335
tls:
336
helmCert:
337
# Whether to issue a webhook cert using Helm, which removes the need to install cert-manager.
338
# Helm-issued certificates can be challenging to rotate and maintain, and the issued cert will have a duration of 10 years and be modified when trust-manager is updated.
339
# It's safer and easier to rely on cert-manager for issuing the webhook cert - avoid using Helm-generated certs in production.
340
enabled: false
341
approverPolicy:
342
# Whether to create an approver-policy CertificateRequestPolicy allowing auto-approval of the trust-manager webhook certificate. If you have approver-policy installed, you almost certainly want to enable this.
343
enabled: false
344
# The namespace in which cert-manager was installed. Only used if `app.webhook.tls.approverPolicy.enabled` is true.
345
certManagerNamespace: "cert-manager"
346
# The name of cert-manager's Service Account. Only used if `app.webhook.tls.approverPolicy.enabled` is true.
347
certManagerServiceAccount: "cert-manager"
348
# Configure certificate duration and add labels/annotations to secrets created by Certificate resources when using cert-manager provisioned TLS certificate.
349
certificate:
350
# Certificate duration, if unset/empty the default from cert-manager will be used. Example configuration to set 1 year: duration: 8766h
351
duration: ""
352
secretTemplate: {}
353
# For example:
354
# annotations:
355
# my-secret-annotation-1: "foo"
356
# my-secret-annotation-2: "bar"
357
# labels:
358
# my-secret-label: foo
359
# This value specifies if the app should be started in hostNetwork mode. It is required for use in some managed Kubernetes clusters (such as AWS EKS) with custom CNI.
360
hostNetwork: false
361
# +docs:section=Metrics
362
metrics:
363
# The port for exposing Prometheus metrics on 0.0.0.0 on path '/metrics'.
364
port: 9402
365
# The service to expose metrics endpoint.
366
service:
367
# Create a Service resource to expose the metrics endpoint.
368
enabled: true
369
# The Service type to expose metrics.
370
type: ClusterIP
371
# Set the ip family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
372
ipFamilyPolicy: ""
373
# Sets the families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6.
374
ipFamilies: []
375
# The ServiceMonitor resource for this Service.
376
servicemonitor:
377
# Create a Prometheus ServiceMonitor for trust-manager.
378
enabled: false
379
# Sets the value of the "prometheus" label on the ServiceMonitor.
380
# This is used so that separate Prometheus instances can select different ServiceMonitors using labels.
381
prometheusInstance: default
382
# The interval to scrape the metrics.
383
interval: 10s
384
# The timeout for a metrics scrape.
385
scrapeTimeout: 5s
386
# Additional labels to add to the ServiceMonitor.
387
labels: {}
388
# EndpointAdditionalProperties allows setting additional properties on the
389
# endpoint such as relabelings, metricRelabelings etc.
390
#
391
# For example:
392
# endpointAdditionalProperties:
393
# relabelings:
394
# - action: replace
395
# sourceLabels:
396
# - __meta_kubernetes_pod_node_name
397
# targetLabel: instance
398
#
399
# +docs:property
400
endpointAdditionalProperties: {}
401
podDisruptionBudget:
402
# Enable or disable the PodDisruptionBudget resource.
403
#
404
# This prevents downtime during voluntary disruptions such as during a Node upgrade.
405
# For example, the PodDisruptionBudget will block `kubectl drain`
406
# if it is used on the Node where the only remaining trust-manager
407
# Pod is currently running.
408
enabled: false
409
# This configures the minimum available pods for disruptions. It can either be set to
410
# an integer (e.g. 1) or a percentage value (e.g. 25%).
411
# It cannot be used if `maxUnavailable` is set.
412
# +docs:type=unknown
413
# +docs:property
414
# minAvailable: 1
415
# This configures the maximum unavailable pods for disruptions. It can either be set to
416
# an integer (e.g. 1) or a percentage value (e.g. 25%).
417
# it cannot be used if `minAvailable` is set.
418
# +docs:type=unknown
419
# +docs:property
420
# maxUnavailable: 1
421
422
# Labels to apply to all resources.
423
# On a key collision these win over the chart's own labels, except where
424
# something selects on the label and overriding it would break that selection:
425
# "app" on the trust-manager Pods, "app" and "app.kubernetes.io/component" on
426
# the metrics Service, "prometheus" on the ServiceMonitor, and
427
# "rbac.authorization.k8s.io/aggregate-to-cluster-reader" on the aggregated
428
# ClusterRole. Those keep the chart's value on the resource in question, and
429
# are still applied from commonLabels to every other resource.
430
commonLabels: {}
431
# Annotations to apply to all resources
432
# NOTE: These annotations won't be added to the CRDs.
433
commonAnnotations: {}
434
# Extra manifests to be deployed. This is useful for deploying additional resources that are not part of the chart.
435
# For example:
436
# extraObjects:
437
# - apiVersion: cilium.io/v2
438
# kind: CiliumNetworkPolicy
439
# metadata:
440
# name: trust-manager
441
# namespace: trust-manager
442
# spec:
443
# endpointSelector:
444
# matchLabels:
445
# io.cilium.k8s.policy.serviceaccount: trust-manager
446
# egress:
447
# - toEntities:
448
# - kube-apiserver
449
extraObjects: []
450
# Field to optionally disable installation of the chart when wrapping it as a
451
# dependency in another chart.
452
# This matched the helm best practices:
453
# https://helm.sh/docs/chart_best_practices/dependencies/#conditions-and-tags
454
# +docs:hidden
455
enabled: true
456

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.