4 # Create required ClusterRoles, Roles, ClusterRoleBindings and RoleBindings for trust-manager.
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
11 # This option decides if the CRDs should be installed
12 # as part of the Helm installation.
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.
20# +docs:section=Trust Manager
22# The number of replicas of trust-manager to run.
25# Use integer to set a fixed number of replicas
28# Use null, if you want to omit the replicas field and use the Kubernetes default value.
31# Use a string if you want to insert a variable for post-processing of the rendered template.
32# replicaCount: ${REPLICAS_OVERRIDE:=3}
34# +docs:type=number,string,null
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
40revisionHistoryLimit: 10
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).
46# For Private docker registries, authentication is needed. Registry secrets are applied to the service account.
48# The container registry used for trust-manager images by default.
49# This can include path prefixes (e.g. "artifactory.example.com/docker").
52# The repository namespace used for trust-manager images by default.
57imageNamespace: jetstack
59 # Target image registry. This value is prepended to the target image repository, if set.
61 # registry: legacy.example.io
62 # Deprecated: per-component registry prefix.
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`.
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.
74 # Full repository override (takes precedence over `imageRegistry`, `imageNamespace`,
76 # Example: quay.io/jetstack/trust-manager
78 repository: cgr.dev/chainguard-private/trust-manager
79 # The image name for trust-manager.
80 # This is used (together with `imageRegistry` and `imageNamespace`) to construct the full
84 # Override the image tag to deploy by setting this variable.
85 # If no value is set, the chart's appVersion is used.
89 # Target image digest. Override any tag, if set.
91 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
95 # Kubernetes imagePullPolicy on Deployment.
96 pullPolicy: IfNotPresent
98 digest: sha256:f8e5b128d376afa8fc160f25ddc62385c7cbaf744dafb5f105cf9d189aa179c0
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.
102 # Kubernetes pod resource limits for default package init container.
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/).
116 allowPrivilegeEscalation: false
120 readOnlyRootFilesystem: true
125 # Target image registry. This value is prepended to the target image repository, if set.
128 # repository: jetstack/cert-manager-package-debian
129 # Deprecated: per-component registry prefix.
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`.
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.
141 # Full repository override (takes precedence over `imageRegistry`, `imageNamespace`,
143 # Example: quay.io/jetstack/trust-manager
145 repository: cgr.dev/chainguard-private/cert-manager-package-12
146 # The image name for trust-manager.
147 # This is used (together with `imageRegistry` and `imageNamespace`) to construct the full
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.
156 # Target image digest. Override any tag, if set.
158 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
162 # WARNING: For internal use only, is overwritten before releasing the chart.
164 _defaultReference: :20250419-deb12u1.1
165 # imagePullPolicy for the default package image.
166 pullPolicy: IfNotPresent
168 digest: sha256:29ce1318f5821acef2be9209f0a88c362bb3b6a11598a13853bd69d8a4e36505
169# Automounting API credentials for the trust-manager pod.
171automountServiceAccountToken: true
173 # Specifies whether a service account should be created.
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.
180 # Automount API credentials for a Service Account.
182 automountServiceAccountToken: true
183# Additional volumes to add to the trust-manager pod.
185# Additional volume mounts to add to the trust-manager container.
188 # If set to true, enable writing trust bundles to Kubernetes Secrets as a target.
189 # trust-manager can only write to secrets which are explicitly allowed via either authorizedSecrets or authorizedSecretsAll.
190 # Note that enabling secret targets will grant trust-manager read access to all secrets in the cluster.
192 # If set to true, grant read/write permission to all secrets across the cluster. Use with caution!
193 # If set, ignores the authorizedSecrets list.
194 authorizedSecretsAll: false
195 # A list of secret names which trust-manager will be permitted to read and write across all namespaces.
196 # These are the only allowable Secrets that can be used as targets. If the list is empty (and authorizedSecretsAll is false),
197 # trust-manager can't write to secrets and can only read secrets in the trust namespace for use as sources.
198 authorizedSecrets: []
199# Kubernetes pod resource limits for trust.
210# 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/).
211podSecurityContext: {}
212# Configure the priority class of the pod. For more information, see [PriorityClass](https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass).
214# Configure the nodeSelector; defaults to any Linux node (trust-manager doesn't support Windows nodes)
217 kubernetes.io/os: linux
218# Kubernetes Affinity. For more information, see [Affinity v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#affinity-v1-core).
222# requiredDuringSchedulingIgnoredDuringExecution:
225# - key: foo.bar.com/role
230# 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).
233# - key: foo.bar.com/role
238# List of Kubernetes TopologySpreadConstraints. For more information, see [TopologySpreadConstraint v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#topologyspreadconstraint-v1-core).
240# topologySpreadConstraints:
242# topologyKey: topology.kubernetes.io/zone
243# whenUnsatisfiable: ScheduleAnyway
246# app.kubernetes.io/name: trust-manager
247topologySpreadConstraints: []
248filterExpiredCertificates:
249 # Whether to filter expired certificates from the trust bundle.
252 # Filter non-CA certificates, only CAs are used in the resulting Bundle.
255 # Minimum TLS version supported. If omitted, the default Go minimum version will be used.
257 # Comma-separated list of cipher suites for the webhook server. If omitted, the default Go cipher suites will be used.
258 # Only affects TLS 1.2; TLS 1.3 cipher suites are not configurable in Go.
259 # Acceptable names match Kubernetes component-base (same as kube-apiserver --tls-cipher-suites);
260 # see [TLSCipherPossibleValues](https://pkg.go.dev/k8s.io/component-base/cli/flag#TLSCipherPossibleValues).
261 # Some listed values are considered insecure — prefer [PreferredTLSCipherNames](https://pkg.go.dev/k8s.io/component-base/cli/flag#PreferredTLSCipherNames).
263 # Comma-separated list of numeric Go crypto/tls CurveID values for the webhook server (for example 23,29 for P-256 and X25519).
264 # 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.
265 # The order of the list is ignored. If omitted, the default Go curves will be used. See https://pkg.go.dev/crypto/tls#CurveID.
267 # The format of trust-manager logging. Accepted values are text or json.
269 # The verbosity of trust-manager logging. This takes a value from 1-5, with the higher value being more verbose.
272 # Whether to enable leader election for trust-manager.
274 # The duration that non-leader candidates will wait to force acquire leadership.
275 # 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.
277 # The interval between attempts by the acting leader to renew a leadership slot before it stops leading.
278 # This MUST be less than or equal to the lease duration.
279 # 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 # The container port on which to expose the trust-manager HTTP readiness probe using the default network interface.
284 # The path on which to expose the trust-manager HTTP readiness probe using the default network interface.
287 # The namespace used as the trust source. Note that the namespace _must_ exist
288 # before installing trust-manager.
289 namespace: cert-manager
290 # List of target namespaces that trust-manager can write to. By default, trust-manager can write targets in any namespace.
292 # targetNamespaces: ["ns-1", "ns-2"]
294 # 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/).
297 allowPrivilegeEscalation: false
301 readOnlyRootFilesystem: true
305 # Pod labels to add to trust-manager pods.
307 # Pod annotations to add to trust-manager pods.
309 # +docs:section=Webhook
311 # Host that the webhook listens on.
313 # Port that the webhook listens on.
315 # Timeout of webhook HTTP request.
318 # The type of Kubernetes Service used by the Webhook.
320 # Set the ip family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
322 # 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.
324 # The nodePort set on the Service used by the webhook.
329 # Whether to issue a webhook cert using Helm, which removes the need to install cert-manager.
330 # 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.
331 # It's safer and easier to rely on cert-manager for issuing the webhook cert - avoid using Helm-generated certs in production.
334 # 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.
336 # The namespace in which cert-manager was installed. Only used if `app.webhook.tls.approverPolicy.enabled` is true.
337 certManagerNamespace: "cert-manager"
338 # The name of cert-manager's Service Account. Only used if `app.webhook.tls.approverPolicy.enabled` is true.
339 certManagerServiceAccount: "cert-manager"
340 # Configure certificate duration and add labels/annotations to secrets created by Certificate resources when using cert-manager provisioned TLS certificate.
342 # Certificate duration, if unset/empty the default from cert-manager will be used. Example configuration to set 1 year: duration: 8766h
347 # my-secret-annotation-1: "foo"
348 # my-secret-annotation-2: "bar"
350 # my-secret-label: foo
351 # 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.
353 # +docs:section=Metrics
355 # The port for exposing Prometheus metrics on 0.0.0.0 on path '/metrics'.
357 # The service to expose metrics endpoint.
359 # Create a Service resource to expose the metrics endpoint.
361 # The Service type to expose metrics.
363 # Set the ip family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
365 # 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.
367 # The ServiceMonitor resource for this Service.
369 # Create a Prometheus ServiceMonitor for trust-manager.
371 # Sets the value of the "prometheus" label on the ServiceMonitor.
372 # This is used so that separate Prometheus instances can select different ServiceMonitors using labels.
373 prometheusInstance: default
374 # The interval to scrape the metrics.
376 # The timeout for a metrics scrape.
378 # Additional labels to add to the ServiceMonitor.
380 # EndpointAdditionalProperties allows setting additional properties on the
381 # endpoint such as relabelings, metricRelabelings etc.
384 # endpointAdditionalProperties:
388 # - __meta_kubernetes_pod_node_name
389 # targetLabel: instance
392 endpointAdditionalProperties: {}
394 # Enable or disable the PodDisruptionBudget resource.
396 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
397 # For example, the PodDisruptionBudget will block `kubectl drain`
398 # if it is used on the Node where the only remaining trust-manager
399 # Pod is currently running.
401 # This configures the minimum available pods for disruptions. It can either be set to
402 # an integer (e.g. 1) or a percentage value (e.g. 25%).
403 # It cannot be used if `maxUnavailable` is set.
407# This configures the maximum unavailable pods for disruptions. It can either be set to
408# an integer (e.g. 1) or a percentage value (e.g. 25%).
409# it cannot be used if `minAvailable` is set.
414# Labels to apply to all resources
416# Annotations to apply to all resources
417# NOTE: These annotations won't be added to the CRDs.
419# Extra manifests to be deployed. This is useful for deploying additional resources that are not part of the chart.
422# - apiVersion: cilium.io/v2
423# kind: CiliumNetworkPolicy
426# namespace: trust-manager
430# io.cilium.k8s.policy.serviceaccount: trust-manager
435# Field to optionally disable installation of the chart when wrapping it as a
436# dependency in another chart.
437# This matched the helm best practices:
438# https://helm.sh/docs/chart_best_practices/dependencies/#conditions-and-tags