blob: 4bd3ebf5f39c058208c6502a6395e29fec41c29e [file] [log] [blame]
gioc895c1d2026-07-23 17:18:25 +04001# +docs:section=Global
2
3# Default values for cert-manager.
4# This is a YAML-formatted file.
5# Declare variables to be passed into your templates.
6global:
7 # Reference to one or more secrets to be used when pulling images.
8 # For more information, see [Pull an Image from a Private Registry](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/).
9 #
10 # For example:
11 # imagePullSecrets:
12 # - name: "image-pull-secret"
13 imagePullSecrets: []
14
15 # Global node selector
16 #
17 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
18 # matching labels.
19 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
20 #
21 # If a component-specific nodeSelector is also set, it will be merged and take precedence.
22 # +docs:property
23 nodeSelector: {}
24
25 # Labels to apply to all resources.
26 # Please note that this does not add labels to the resources created dynamically by the controllers.
27 # For these resources, you have to add the labels in the template in the cert-manager custom resource:
28 # For example, podTemplate/ ingressTemplate in ACMEChallengeSolverHTTP01Ingress
29 # For more information, see the [cert-manager documentation](https://cert-manager.io/docs/reference/api-docs/#acme.cert-manager.io/v1.ACMEChallengeSolverHTTP01Ingress).
30 # For example, secretTemplate in CertificateSpec
31 # For more information, see the [cert-manager documentation](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec).
32 commonLabels: {}
33
34 # The number of old ReplicaSets to retain to allow rollback (if not set, the default Kubernetes value is set to 10).
35 # +docs:property
36 # revisionHistoryLimit: 1
37
38 # The optional priority class to be used for the cert-manager pods.
39 priorityClassName: ""
40
41 # Set all pods to run in a user namespace without host access.
42 # Experimental: may be removed once the Kubernetes User Namespaces feature is GA.
43 #
44 # Requirements:
45 # - Kubernetes ≥ 1.33, or
46 # - Kubernetes 1.27–1.32 with UserNamespacesSupport feature gate enabled.
47 #
48 # Set to false to run pods in a user namespace without host access.
49 #
50 # See [limitations](https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/#limitations) for details.
51 # +docs:property
52 # hostUsers: false
53
54 rbac:
55 # Create required ClusterRoles and ClusterRoleBindings for cert-manager.
56 create: true
57 # Aggregate ClusterRoles to Kubernetes default user-facing roles. For more information, see [User-facing roles](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles)
58 aggregateClusterRoles: true
59
60 podSecurityPolicy:
61 # Create PodSecurityPolicy for cert-manager.
62 #
63 # Note that PodSecurityPolicy was deprecated in Kubernetes 1.21 and removed in Kubernetes 1.25.
64 enabled: false
65 # Configure the PodSecurityPolicy to use AppArmor.
66 useAppArmor: true
67
68 # Set the verbosity of cert-manager. A range of 0 - 6, with 6 being the most verbose.
69 logLevel: 2
70
71 leaderElection:
72 # Override the namespace used for the leader election lease.
73 namespace: "kube-system"
74
75 # The duration that non-leader candidates will wait after observing a
76 # leadership renewal until attempting to acquire leadership of a led but
77 # unrenewed leader slot. This is effectively the maximum duration that a
78 # leader can be stopped before it is replaced by another candidate.
79 # +docs:property
80 # leaseDuration: 60s
81
82 # The interval between attempts by the acting master to renew a leadership
83 # slot before it stops leading. This must be less than or equal to the
84 # lease duration.
85 # +docs:property
86 # renewDeadline: 40s
87
88 # The duration the clients should wait between attempting acquisition and
89 # renewal of a leadership.
90 # +docs:property
91 # retryPeriod: 15s
92
93# This option is equivalent to setting crds.enabled=true and crds.keep=true.
94# Deprecated: use crds.enabled and crds.keep instead.
95installCRDs: false
96
97crds:
98 # This option decides if the CRDs should be installed
99 # as part of the Helm installation.
100 enabled: false
101
102 # This option makes it so that the "helm.sh/resource-policy": keep
103 # annotation is added to the CRD. This will prevent Helm from uninstalling
104 # the CRD when the Helm release is uninstalled.
105 # WARNING: when the CRDs are removed, all cert-manager custom resources
106 # (Certificates, Issuers, ...) will be removed too by the garbage collector.
107 keep: true
108
109# +docs:section=Controller
110
111# The number of replicas of the cert-manager controller to run.
112#
113# The default is 1, but in production set this to 2 or 3 to provide high
114# availability.
115#
116# If `replicas > 1`, consider setting `podDisruptionBudget.enabled=true`.
117#
118# Note that cert-manager uses leader election to ensure that there can
119# only be a single instance active at a time.
120replicaCount: 1
121
122# Deployment update strategy for the cert-manager controller deployment.
123# For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy).
124#
125# For example:
126# strategy:
127# type: RollingUpdate
128# rollingUpdate:
129# maxSurge: 0
130# maxUnavailable: 1
131strategy: {}
132
133podDisruptionBudget:
134 # Enable or disable the PodDisruptionBudget resource.
135 #
136 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
137 # For example, the PodDisruptionBudget will block `kubectl drain`
138 # if it is used on the Node where the only remaining cert-manager
139 # Pod is currently running.
140 enabled: false
141
142 # This configures the minimum available pods for disruptions. It can either be set to
143 # an integer (e.g., 1) or a percentage value (e.g., 25%).
144 # It cannot be used if `maxUnavailable` is set.
145 # +docs:property
146 # +docs:type=unknown
147 # minAvailable: 1
148
149 # This configures the maximum unavailable pods for disruptions. It can either be set to
150 # an integer (e.g., 1) or a percentage value (e.g., 25%).
151 # it cannot be used if `minAvailable` is set.
152 # +docs:property
153 # +docs:type=unknown
154 # maxUnavailable: 1
155
156 # This configures how to act with unhealthy pods during eviction
157 # Note that this requires Kubernetes 1.31 or `PDBUnhealthyPodEvictionPolicy` feature gate enabled for
158 # the cluster to work.
159 # +docs:property
160 # +docs:type=string
161 # unhealthyPodEvictionPolicy: AlwaysAllow
162
163# A comma-separated list of feature gates that should be enabled on the
164# controller pod.
165featureGates: ""
166
167# The maximum number of challenges that can be scheduled as 'processing' at once.
168maxConcurrentChallenges: 60
169
170# The container registry used for all cert-manager images by default.
171# This can include path prefixes (e.g. `artifactory.example.com/docker`).
172# +docs:property
173imageRegistry: quay.io
174
175# The repository namespace used for all cert-manager images by default.
176# Examples:
177# - jetstack
178# - cert-manager
179# +docs:property
180imageNamespace: jetstack
181
182image:
183 # Deprecated: per-component registry prefix.
184 #
185 # If set, this value is *prepended* to the image repository that the chart would otherwise render.
186 # This applies both when `image.repository` is set and when the repository is computed from
187 # `imageRegistry` + `imageNamespace` + `image.name`.
188 #
189 # This can produce "double registry" style references such as `legacy.example.io/quay.io/jetstack/...`.
190 # Prefer using the global `imageRegistry`/`imageNamespace` values.
191 # +docs:property
192 # registry: ""
193
194 # The image name for the cert-manager controller.
195 # This is used (together with `imageRegistry` and `imageNamespace`) to construct the full image reference.
196 # +docs:property
197 name: cert-manager-controller
198
199 # Full repository override (takes precedence over `imageRegistry`, `imageNamespace`, and `image.name`).
200 # Example: quay.io/jetstack/cert-manager-controller
201 # +docs:property
202 repository: ""
203
204 # Override the image tag to deploy by setting this variable.
205 # If no value is set, the chart's appVersion is used.
206 # +docs:property
207 # tag: vX.Y.Z
208
209 # Setting a digest pins the image. If a tag is also set, the rendered reference will include
210 # both ("image:tag@digest"), though only the digest will be used for pulling.
211 # +docs:property
212 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
213
214 # Kubernetes imagePullPolicy on Deployment.
215 pullPolicy: IfNotPresent
216
217# Override the namespace used to store DNS provider credentials etc. for ClusterIssuer
218# resources. By default, the same namespace as cert-manager is deployed within is
219# used. This namespace will not be automatically created by the Helm chart.
220clusterResourceNamespace: ""
221
222# This namespace allows you to define where the services are installed into.
223# If not set then they use the namespace of the release.
224# This is helpful when installing cert manager as a chart dependency (sub chart).
225namespace: ""
226
227# Override the "cert-manager.fullname" value. This value is used as part of
228# most of the names of the resources created by this Helm chart.
229# +docs:property
230# fullnameOverride: "my-cert-manager"
231
232# Override the "cert-manager.name" value, which is used to annotate some of
233# the resources that are created by this Chart (using "app.kubernetes.io/name").
234# NOTE: There are some inconsistencies in the Helm chart when it comes to
235# these annotations (some resources use, e.g., "cainjector.name" which resolves
236# to the value "cainjector").
237# +docs:property
238# nameOverride: "my-cert-manager"
239
240serviceAccount:
241 # Specifies whether a service account should be created.
242 create: true
243
244 # The name of the service account to use.
245 # If not set and create is true, a name is generated using the fullname template.
246 # +docs:property
247 # name: ""
248
249 # Optional additional annotations to add to the controller's Service Account. Templates are allowed for both keys and values.
250 # Example using templating:
251 # annotations:
252 # "{{ .Chart.Name }}-helm-chart/version": "{{ .Chart.Version }}"
253 # +docs:property
254 # annotations: {}
255
256 # Optional additional labels to add to the controller's Service Account.
257 # +docs:property
258 # labels: {}
259
260 # Automount API credentials for a Service Account.
261 automountServiceAccountToken: true
262
263# Automounting API credentials for a particular pod.
264# +docs:property
265# automountServiceAccountToken: true
266
267# When this flag is enabled, secrets will be automatically removed when the certificate resource is deleted.
268enableCertificateOwnerRef: false
269
270# This property is used to configure options for the controller pod.
271# This allows setting options that would usually be provided using flags.
272#
273# If `apiVersion` and `kind` are unspecified they default to the current latest
274# version (currently `controller.config.cert-manager.io/v1alpha1`). You can pin
275# the version by specifying the `apiVersion` yourself.
276#
277# For example:
278# config:
279# apiVersion: controller.config.cert-manager.io/v1alpha1
280# kind: ControllerConfiguration
281# logging:
282# verbosity: 2
283# format: text
284# leaderElectionConfig:
285# namespace: kube-system
286# kubernetesAPIQPS: 9000
287# kubernetesAPIBurst: 9000
288# numberOfConcurrentWorkers: 200
289# enableGatewayAPI: true
290# # Feature gates as of v1.20.0. Listed with their default values.
291# # See https://cert-manager.io/docs/cli/controller/
292# featureGates:
293# AllAlpha: false # ALPHA - default=false
294# AllBeta: false # BETA - default=false
295# ACMEHTTP01IngressPathTypeExact: true # BETA - default=true
296# ExperimentalCertificateSigningRequestControllers: false # ALPHA - default=false
297# ExperimentalGatewayAPISupport: true # BETA - default=true
298# LiteralCertificateSubject: true # BETA - default=true
299# NameConstraints: true # BETA - default=true
300# OtherNames: true # BETA - default=true
301# SecretsFilteredCaching: true # BETA - default=true
302# ServerSideApply: false # ALPHA - default=false
303# StableCertificateRequestName: true # BETA - default=true
304# UseCertificateRequestBasicConstraints: false # ALPHA - default=false
305# # Configure the metrics server for TLS
306# # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
307# metricsTLSConfig:
308# dynamic:
309# secretNamespace: "cert-manager"
310# secretName: "cert-manager-metrics-ca"
311# dnsNames:
312# - cert-manager-metrics
313# # Configure PEM size limits for certificate validation
314# # Useful for certificates with many DNS names (e.g., Istio gateways with 100+ DNS names)
315# pemSizeLimitsConfig:
316# maxCertificateSize: 36500 # Maximum size in bytes for individual certificates (default: 36500)
317# maxPrivateKeySize: 13000 # Maximum size in bytes for private keys (default: 13000)
318# maxChainLength: 95000 # Maximum size in bytes for certificate chains (default: 95000)
319# maxBundleSize: 330000 # Maximum size in bytes for certificate bundles (default: 330000)
320config: {}
321
322# Setting Nameservers for DNS01 Self Check.
323# For more information, see the [cert-manager documentation](https://cert-manager.io/docs/configuration/acme/dns01/#setting-nameservers-for-dns01-self-check).
324
325# A comma-separated string with the host and port of the recursive nameservers cert-manager should query.
326dns01RecursiveNameservers: ""
327
328# Forces cert-manager to use only the recursive nameservers for verification.
329# Enabling this option could cause the DNS01 self check to take longer owing to caching performed by the recursive nameservers.
330dns01RecursiveNameserversOnly: false
331
332# Option to disable cert-manager's build-in auto-approver. The auto-approver
333# approves all CertificateRequests that reference issuers matching the 'approveSignerNames'
334# option. This 'disableAutoApproval' option is useful when you want to make all approval decisions
335# using a different approver (like approver-policy - https://github.com/cert-manager/approver-policy).
336disableAutoApproval: false
337
338# List of signer names that cert-manager will approve by default. CertificateRequests
339# referencing these signer names will be auto-approved by cert-manager. Defaults to just
340# approving the cert-manager.io Issuer and ClusterIssuer issuers. When set to an empty
341# array, ALL issuers will be auto-approved by cert-manager. To disable the auto-approval,
342# because, e.g., you are using approver-policy, you can enable 'disableAutoApproval'.
343# ref: https://cert-manager.io/docs/concepts/certificaterequest/#approval
344# +docs:property
345approveSignerNames:
346- issuers.cert-manager.io/*
347- clusterissuers.cert-manager.io/*
348
349# Additional command line flags to pass to cert-manager controller binary.
350# To see all available flags run `docker run quay.io/jetstack/cert-manager-controller:<version> --help`.
351#
352# Use this flag to enable or disable arbitrary controllers. For example, to disable the CertificateRequests approver.
353#
354# For example:
355# extraArgs:
356# - --controllers=*,-certificaterequests-approver
357extraArgs: []
358
359# Extra containers to add to the pod spec in the deployment of the cert-manager controller.
360# For example, to deploy the [aws_signing_helper](https://github.com/aws/rolesanywhere-credential-helper) (replacing the ARNs as relevant):
361#
362# extraEnv:
363# - name: AWS_EC2_METADATA_SERVICE_ENDPOINT
364# - value: http://127.0.0.1:9911
365# extraContainers:
366# - name: rolesanywhere-credential-helper
367# image: public.ecr.aws/rolesanywhere/credential-helper:latest
368# command: [aws_signing_helper]
369# args:
370# - serve
371# - --private-key
372# - /etc/cert/tls.key
373# - --certificate
374# - /etc/cert/tls.crt
375# - --role-arn
376# - $ROLE_ARN
377# - --profile-arn
378# - $PROFILE_ARN
379# - --trust-anchor-arn
380# - $TRUST_ANCHOR_ARN
381# volumeMounts:
382# - name: cert
383# mountPath: /etc/cert/
384# readOnly: true
385# volumes:
386# - name: cert
387# secret:
388# secretName: cert
389extraContainers: []
390
391# Additional environment variables to pass to cert-manager controller binary.
392# For example:
393# extraEnv:
394# - name: SOME_VAR
395# value: 'some value'
396extraEnv: []
397
398# Resources to provide to the cert-manager controller pod.
399#
400# For example:
401# requests:
402# cpu: 10m
403# memory: 32Mi
404#
405# For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
406resources: {}
407
408# Pod Security Context.
409# For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
410# +docs:property
411securityContext:
412 runAsNonRoot: true
413 seccompProfile:
414 type: RuntimeDefault
415
416# Container Security Context to be set on the controller component container.
417# For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
418# +docs:property
419containerSecurityContext:
420 allowPrivilegeEscalation: false
421 capabilities:
422 drop:
423 - ALL
424 readOnlyRootFilesystem: true
425
426# Additional volumes to add to the cert-manager controller pod.
427volumes: []
428
429# Additional volume mounts to add to the cert-manager controller container.
430volumeMounts: []
431
432# Optional additional annotations to add to the controller Deployment.
433# +docs:property
434# deploymentAnnotations: {}
435
436# Optional additional annotations to add to the controller Pods.
437# +docs:property
438# podAnnotations: {}
439
440# Optional additional labels to add to the controller Pods.
441podLabels: {}
442
443# Optional annotations to add to the controller Service.
444# +docs:property
445# serviceAnnotations: {}
446
447# Optional additional labels to add to the controller Service.
448# +docs:property
449# serviceLabels: {}
450
451# Optionally set the IP family policy for the controller Service to configure dual-stack; see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services).
452# +docs:property
453# serviceIPFamilyPolicy: ""
454
455# Optionally set the IP families for the controller Service that should be supported, in the order in which they should be applied to ClusterIP. Can be IPv4 and/or IPv6.
456# +docs:property
457# serviceIPFamilies: []
458
459# Optional DNS settings. These are useful if you have a public and private DNS zone for
460# the same domain on Route 53. The following is an example of ensuring
461# cert-manager can access an ingress or DNS TXT records at all times.
462# Note that this requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for
463# the cluster to work.
464
465# Pod DNS policy.
466# For more information, see [Pod's DNS Policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
467# +docs:property
468# podDnsPolicy: "None"
469
470# Pod DNS configuration. The podDnsConfig field is optional and can work with any podDnsPolicy
471# settings. However, when a Pod's dnsPolicy is set to "None", the dnsConfig field has to be specified.
472# For more information, see [Pod's DNS Config](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config).
473# +docs:property
474# podDnsConfig:
475# nameservers:
476# - "1.1.1.1"
477# - "8.8.8.8"
478
479# Optional hostAliases for cert-manager-controller pods. May be useful when performing ACME DNS-01 self checks.
480hostAliases: []
481# - ip: 127.0.0.1
482# hostnames:
483# - foo.local
484# - bar.local
485# - ip: 10.1.2.3
486# hostnames:
487# - foo.remote
488# - bar.remote
489
490# The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
491# matching labels.
492# For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
493#
494# This default ensures that Pods are only scheduled to Linux nodes.
495# It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
496# +docs:property
497nodeSelector:
498 kubernetes.io/os: linux
499
500# Enables default network policies for cert-manager.
501# This provides a way for you to restrict network traffic
502# between cert-manager components and other pods.
503# For more information, see [Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
504# NOTE: an incorrect networkPolicy will cause traffic to be dropped
505networkPolicy:
506 # Create network policies for cert-manager.
507 enabled: false
508
509 # Ingress rule for the cert-manager network policy.
510 # By default all pods are allowed access to:
511 # http-metrics and http-healthz ports
512 # +docs:property
513 ingress:
514 - ports:
515 - port: http-metrics
516 protocol: TCP
517 - port: http-healthz
518 protocol: TCP
519
520
521 # Egress rule for the cert-manager network policy. By default, it allows all
522 # outbound traffic to ports 80 and 443, as well as DNS ports.
523 # +docs:property
524 egress:
525 - ports:
526 - port: 80
527 protocol: TCP
528 - port: 443
529 protocol: TCP
530 - port: 53
531 protocol: TCP
532 - port: 53
533 protocol: UDP
534 # On OpenShift and OKD, the Kubernetes API server listens on.
535 # port 6443.
536 - port: 6443
537 protocol: TCP
538
539# +docs:ignore
540ingressShim: {}
541
542 # Optional default issuer to use for ingress resources.
543 # +docs:property=ingressShim.defaultIssuerName
544 # defaultIssuerName: ""
545
546 # Optional default issuer kind to use for ingress resources.
547 # +docs:property=ingressShim.defaultIssuerKind
548 # defaultIssuerKind: ""
549
550 # Optional default issuer group to use for ingress resources.
551 # +docs:property=ingressShim.defaultIssuerGroup
552 # defaultIssuerGroup: ""
553
554# Use these variables to configure the HTTP_PROXY environment variables.
555
556# Configures the HTTP_PROXY environment variable where a HTTP proxy is required.
557# +docs:property
558# http_proxy: "http://proxy:8080"
559
560# Configures the HTTPS_PROXY environment variable where a HTTP proxy is required.
561# +docs:property
562# https_proxy: "https://proxy:8080"
563
564# Configures the NO_PROXY environment variable where a HTTP proxy is required,
565# but certain domains should be excluded.
566# +docs:property
567# no_proxy: 127.0.0.1,localhost
568
569# A Kubernetes Affinity, if required. For more information, see [Affinity v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#affinity-v1-core).
570#
571# For example:
572# affinity:
573# nodeAffinity:
574# requiredDuringSchedulingIgnoredDuringExecution:
575# nodeSelectorTerms:
576# - matchExpressions:
577# - key: foo.bar.com/role
578# operator: In
579# values:
580# - master
581affinity: {}
582
583# A 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).
584#
585# For example:
586# tolerations:
587# - key: foo.bar.com/role
588# operator: Equal
589# value: master
590# effect: NoSchedule
591tolerations: []
592
593# A list of Kubernetes TopologySpreadConstraints, if required. For more information, see [Topology spread constraint v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#topologyspreadconstraint-v1-core
594#
595# For example:
596# topologySpreadConstraints:
597# - maxSkew: 2
598# topologyKey: topology.kubernetes.io/zone
599# whenUnsatisfiable: ScheduleAnyway
600# labelSelector:
601# matchLabels:
602# app.kubernetes.io/instance: cert-manager
603# app.kubernetes.io/component: controller
604topologySpreadConstraints: []
605
606# LivenessProbe settings for the controller container of the controller Pod.
607#
608# This is enabled by default, in order to enable the clock-skew liveness probe that
609# restarts the controller in case of a skew between the system clock and the monotonic clock.
610# LivenessProbe durations and thresholds are based on those used for the Kubernetes
611# controller-manager. For more information see the following on the
612# [Kubernetes GitHub repository](https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245)
613# +docs:property
614livenessProbe:
615 enabled: true
616 initialDelaySeconds: 10
617 periodSeconds: 10
618 timeoutSeconds: 15
619 successThreshold: 1
620 failureThreshold: 8
621
622# enableServiceLinks indicates whether information about services should be
623# injected into the pod's environment variables, matching the syntax of Docker
624# links.
625enableServiceLinks: false
626
627# +docs:section=Prometheus
628
629prometheus:
630 # Enable Prometheus monitoring for the cert-manager controller and webhook.
631 # If you use the Prometheus Operator, set prometheus.podmonitor.enabled or
632 # prometheus.servicemonitor.enabled, to create a PodMonitor or a
633 # ServiceMonitor resource.
634 # Otherwise, 'prometheus.io' annotations are added to the cert-manager and
635 # cert-manager-webhook Deployments.
636 # Note that you cannot enable both PodMonitor and ServiceMonitor as they are
637 # mutually exclusive. Enabling both will result in an error.
638 enabled: true
639
640 servicemonitor:
641 # Create a ServiceMonitor to add cert-manager to Prometheus.
642 enabled: false
643
644 # The namespace that the service monitor should live in, defaults
645 # to the cert-manager namespace.
646 # +docs:property
647 # namespace: cert-manager
648
649 # Specifies the `prometheus` label on the created ServiceMonitor. This is
650 # used when different Prometheus instances have label selectors matching
651 # different ServiceMonitors.
652 prometheusInstance: default
653
654 # The target port to set on the ServiceMonitor. This must match the port that the
655 # cert-manager controller is listening on for metrics.
656 # +docs:type=string,integer
657 targetPort: http-metrics
658
659 # The path to scrape for metrics.
660 path: /metrics
661
662 # The interval to scrape metrics.
663 interval: 60s
664
665 # The timeout before a metrics scrape fails.
666 scrapeTimeout: 30s
667
668 # Additional labels to add to the ServiceMonitor.
669 labels: {}
670
671 # Additional annotations to add to the ServiceMonitor.
672 annotations: {}
673
674 # Keep labels from scraped data, overriding server-side labels.
675 honorLabels: false
676
677 # EndpointAdditionalProperties allows setting additional properties on the
678 # endpoint such as relabelings, metricRelabelings etc.
679 #
680 # For example:
681 # endpointAdditionalProperties:
682 # relabelings:
683 # - action: replace
684 # sourceLabels:
685 # - __meta_kubernetes_pod_node_name
686 # targetLabel: instance
687 #
688 # +docs:property
689 endpointAdditionalProperties: {}
690
691 # Note that you cannot enable both PodMonitor and ServiceMonitor as they are mutually exclusive. Enabling both will result in an error.
692 podmonitor:
693 # Create a PodMonitor to add cert-manager to Prometheus.
694 enabled: false
695
696 # The namespace that the pod monitor should live in, defaults
697 # to the cert-manager namespace.
698 # +docs:property
699 # namespace: cert-manager
700
701 # Specifies the `prometheus` label on the created PodMonitor. This is
702 # used when different Prometheus instances have label selectors matching
703 # different PodMonitors.
704 prometheusInstance: default
705
706 # The path to scrape for metrics.
707 path: /metrics
708
709 # The interval to scrape metrics.
710 interval: 60s
711
712 # The timeout before a metrics scrape fails.
713 scrapeTimeout: 30s
714
715 # Additional labels to add to the PodMonitor.
716 labels: {}
717
718 # Additional annotations to add to the PodMonitor.
719 annotations: {}
720
721 # Keep labels from scraped data, overriding server-side labels.
722 honorLabels: false
723
724 # EndpointAdditionalProperties allows setting additional properties on the
725 # endpoint such as relabelings, metricRelabelings etc.
726 #
727 # For example:
728 # endpointAdditionalProperties:
729 # relabelings:
730 # - action: replace
731 # sourceLabels:
732 # - __meta_kubernetes_pod_node_name
733 # targetLabel: instance
734 # # Configure the PodMonitor for TLS connections
735 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
736 # scheme: https
737 # tlsConfig:
738 # serverName: cert-manager-metrics
739 # ca:
740 # secret:
741 # name: cert-manager-metrics-ca
742 # key: "tls.crt"
743 #
744 # +docs:property
745 endpointAdditionalProperties: {}
746
747# +docs:section=Webhook
748
749webhook:
750 # Number of replicas of the cert-manager webhook to run.
751 #
752 # The default is 1, but in production set this to 2 or 3 to provide high
753 # availability.
754 #
755 # If `replicas > 1`, consider setting `webhook.podDisruptionBudget.enabled=true`.
756 replicaCount: 1
757
758 # The number of seconds the API server should wait for the webhook to respond before treating the call as a failure.
759 # The value must be between 1 and 30 seconds. For more information, see
760 # [Validating webhook configuration v1](https://kubernetes.io/docs/reference/kubernetes-api/extend-resources/validating-webhook-configuration-v1/).
761 #
762 # The default is set to the maximum value of 30 seconds as
763 # users sometimes report that the connection between the K8S API server and
764 # the cert-manager webhook server times out.
765 # If *this* timeout is reached, the error message will be "context deadline exceeded",
766 # which doesn't help the user diagnose what phase of the HTTPS connection timed out.
767 # For example, it could be during DNS resolution, TCP connection, TLS
768 # negotiation, HTTP negotiation, or slow HTTP response from the webhook
769 # server.
770 # By setting this timeout to its maximum value the underlying timeout error
771 # message has more chance of being returned to the end user.
772 timeoutSeconds: 30
773
774 # This is used to configure options for the webhook pod.
775 # This allows setting options that would usually be provided using flags.
776 #
777 # If `apiVersion` and `kind` are unspecified they default to the current latest
778 # version (currently `webhook.config.cert-manager.io/v1alpha1`). You can pin
779 # the version by specifying the `apiVersion` yourself.
780 #
781 # For example:
782 # apiVersion: webhook.config.cert-manager.io/v1alpha1
783 # kind: WebhookConfiguration
784 # # The port that the webhook listens on for requests.
785 # # In GKE private clusters, by default Kubernetes apiservers are allowed to
786 # # talk to the cluster nodes only on 443 and 10250. Configuring
787 # # securePort: 10250 therefore will work out-of-the-box without needing to add firewall
788 # # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers < 1000.
789 # # This should be uncommented and set as a default by the chart once
790 # # the apiVersion of WebhookConfiguration graduates beyond v1alpha1.
791 # securePort: 10250
792 # # Configure the metrics server for TLS
793 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
794 # metricsTLSConfig:
795 # dynamic:
796 # secretNamespace: "cert-manager"
797 # secretName: "cert-manager-metrics-ca"
798 # dnsNames:
799 # - cert-manager-metrics
800 config: {}
801
802 # The update strategy for the cert-manager webhook deployment.
803 # For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy)
804 #
805 # For example:
806 # strategy:
807 # type: RollingUpdate
808 # rollingUpdate:
809 # maxSurge: 0
810 # maxUnavailable: 1
811 strategy: {}
812
813 # Pod Security Context to be set on the webhook component Pod.
814 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
815 # +docs:property
816 securityContext:
817 runAsNonRoot: true
818 seccompProfile:
819 type: RuntimeDefault
820
821 # Container Security Context to be set on the webhook component container.
822 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
823 # +docs:property
824 containerSecurityContext:
825 allowPrivilegeEscalation: false
826 capabilities:
827 drop:
828 - ALL
829 readOnlyRootFilesystem: true
830
831 podDisruptionBudget:
832 # Enable or disable the PodDisruptionBudget resource.
833 #
834 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
835 # For example, the PodDisruptionBudget will block `kubectl drain`
836 # if it is used on the Node where the only remaining cert-manager
837 # Pod is currently running.
838 enabled: false
839
840 # This property configures the minimum available pods for disruptions. Can either be set to
841 # an integer (e.g., 1) or a percentage value (e.g., 25%).
842 # It cannot be used if `maxUnavailable` is set.
843 # +docs:property
844 # +docs:type=unknown
845 # minAvailable: 1
846
847 # This property configures the maximum unavailable pods for disruptions. Can either be set to
848 # an integer (e.g., 1) or a percentage value (e.g., 25%).
849 # It cannot be used if `minAvailable` is set.
850 # +docs:property
851 # +docs:type=unknown
852 # maxUnavailable: 1
853
854 # This configures how to act with unhealthy pods during eviction
855 # Note that this requires Kubernetes 1.31 or `PDBUnhealthyPodEvictionPolicy` feature gate enabled for
856 # the cluster to work.
857 # +docs:property
858 # +docs:type=string
859 # unhealthyPodEvictionPolicy: AlwaysAllow
860
861 # Optional additional annotations to add to the webhook Deployment.
862 # +docs:property
863 # deploymentAnnotations: {}
864
865 # Optional additional annotations to add to the webhook Pods.
866 # +docs:property
867 # podAnnotations: {}
868
869 # Optional additional annotations to add to the webhook Service.
870 # +docs:property
871 # serviceAnnotations: {}
872
873 # Optional additional annotations to add to the webhook MutatingWebhookConfiguration.
874 # +docs:property
875 # mutatingWebhookConfigurationAnnotations: {}
876
877 # Optional additional annotations to add to the webhook ValidatingWebhookConfiguration.
878 # +docs:property
879 # validatingWebhookConfigurationAnnotations: {}
880
881 validatingWebhookConfiguration:
882 # Configure spec.namespaceSelector for validating webhooks.
883 # +docs:property
884 namespaceSelector:
885 matchExpressions:
886 - key: "cert-manager.io/disable-validation"
887 operator: "NotIn"
888 values:
889 - "true"
890
891 mutatingWebhookConfiguration:
892 # Configure spec.namespaceSelector for mutating webhooks.
893 # +docs:property
894 namespaceSelector: {}
895 # matchLabels:
896 # key: value
897 # matchExpressions:
898 # - key: kubernetes.io/metadata.name
899 # operator: NotIn
900 # values:
901 # - kube-system
902
903
904 # Additional command line flags to pass to cert-manager webhook binary.
905 # To see all available flags run `docker run quay.io/jetstack/cert-manager-webhook:<version> --help`.
906 extraArgs: []
907 # Path to a file containing a WebhookConfiguration object used to configure the webhook.
908 # - --config=<path-to-config-file>
909
910 # Additional environment variables to pass to cert-manager webhook binary.
911 # For example:
912 # extraEnv:
913 # - name: SOME_VAR
914 # value: 'some value'
915 extraEnv: []
916
917 # Comma separated list of feature gates that should be enabled on the
918 # webhook pod.
919 featureGates: ""
920
921 # Resources to provide to the cert-manager webhook pod.
922 #
923 # For example:
924 # requests:
925 # cpu: 10m
926 # memory: 32Mi
927 #
928 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
929 resources: {}
930
931 # Liveness probe values.
932 # For more information, see [Container probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
933 #
934 # +docs:property
935 livenessProbe:
936 failureThreshold: 3
937 initialDelaySeconds: 60
938 periodSeconds: 10
939 successThreshold: 1
940 timeoutSeconds: 1
941
942 # Readiness probe values.
943 # For more information, see [Container probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
944 #
945 # +docs:property
946 readinessProbe:
947 failureThreshold: 3
948 initialDelaySeconds: 5
949 periodSeconds: 5
950 successThreshold: 1
951 timeoutSeconds: 1
952
953 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
954 # matching labels.
955 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
956 #
957 # This default ensures that Pods are only scheduled to Linux nodes.
958 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
959 # +docs:property
960 nodeSelector:
961 kubernetes.io/os: linux
962
963 # A Kubernetes Affinity, if required. For more information, see [Affinity v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#affinity-v1-core).
964 #
965 # For example:
966 # affinity:
967 # nodeAffinity:
968 # requiredDuringSchedulingIgnoredDuringExecution:
969 # nodeSelectorTerms:
970 # - matchExpressions:
971 # - key: foo.bar.com/role
972 # operator: In
973 # values:
974 # - master
975 affinity: {}
976
977 # A 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).
978 #
979 # For example:
980 # tolerations:
981 # - key: foo.bar.com/role
982 # operator: Equal
983 # value: master
984 # effect: NoSchedule
985 tolerations: []
986
987 # A list of Kubernetes TopologySpreadConstraints, if required. For more information, see [Topology spread constraint v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#topologyspreadconstraint-v1-core).
988 #
989 # For example:
990 # topologySpreadConstraints:
991 # - maxSkew: 2
992 # topologyKey: topology.kubernetes.io/zone
993 # whenUnsatisfiable: ScheduleAnyway
994 # labelSelector:
995 # matchLabels:
996 # app.kubernetes.io/instance: cert-manager
997 # app.kubernetes.io/component: controller
998 topologySpreadConstraints: []
999
1000 # Optional additional labels to add to the Webhook Pods.
1001 podLabels: {}
1002
1003 # Optional additional labels to add to the Webhook Service.
1004 serviceLabels: {}
1005
1006 # Optionally set the IP family policy for the controller Service to configure dual-stack; see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services).
1007 serviceIPFamilyPolicy: ""
1008
1009 # Optionally set the IP families for the controller Service that should be supported, in the order in which they should be applied to ClusterIP. Can be IPv4 and/or IPv6.
1010 serviceIPFamilies: []
1011
1012 image:
1013 # Deprecated: per-component registry prefix.
1014 #
1015 # If set, this value is *prepended* to the image repository that the chart would otherwise render.
1016 # This applies both when `webhook.image.repository` is set and when the repository is computed from
1017 # `imageRegistry` + `imageNamespace` + `webhook.image.name`.
1018 #
1019 # This can produce "double registry" style references such as `legacy.example.io/quay.io/jetstack/...`.
1020 # Prefer using the global `imageRegistry`/`imageNamespace` values.
1021 # +docs:property
1022 # registry: ""
1023
1024 # The image name for the cert-manager webhook.
1025 # +docs:property
1026 name: cert-manager-webhook
1027
1028 # Full repository override (takes precedence over `imageRegistry`, `imageNamespace`, and `webhook.image.name`).
1029 # +docs:property
1030 repository: ""
1031
1032 # Override the image tag to deploy by setting this variable.
1033 # If no value is set, the chart's appVersion will be used.
1034 # +docs:property
1035 # tag: vX.Y.Z
1036
1037 # Setting a digest pins the image. If a tag is also set, the rendered reference will include
1038 # both ("image:tag@digest"), though only the digest will be used for pulling.
1039 # +docs:property
1040 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1041
1042 # Kubernetes imagePullPolicy on Deployment.
1043 pullPolicy: IfNotPresent
1044
1045 serviceAccount:
1046 # Specifies whether a service account should be created.
1047 create: true
1048
1049 # The name of the service account to use.
1050 # If not set and create is true, a name is generated using the fullname template.
1051 # +docs:property
1052 # name: ""
1053
1054 # Optional additional annotations to add to the webhook's Service Account.
1055 # +docs:property
1056 # annotations: {}
1057
1058 # Optional additional labels to add to the webhook's Service Account.
1059 # +docs:property
1060 # labels: {}
1061
1062 # Automount API credentials for a Service Account.
1063 automountServiceAccountToken: true
1064
1065 # Automounting API credentials for a particular pod.
1066 # +docs:property
1067 # automountServiceAccountToken: true
1068
1069 # The port that the webhook listens on for requests.
1070 # In GKE private clusters, by default Kubernetes apiservers are allowed to
1071 # talk to the cluster nodes only on 443 and 10250. Configuring
1072 # securePort: 10250, therefore will work out-of-the-box without needing to add firewall
1073 # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000.
1074 securePort: 10250
1075
1076 # Specifies if the webhook should be started in hostNetwork mode.
1077 #
1078 # Required for use in some managed kubernetes clusters (such as AWS EKS) with custom
1079 # CNI (such as calico), because control-plane managed by AWS cannot communicate
1080 # with pods' IP CIDR and admission webhooks are not working
1081 #
1082 # Since the default port for the webhook conflicts with kubelet on the host
1083 # network, `webhook.securePort` should be changed to an available port if
1084 # running in hostNetwork mode.
1085 hostNetwork: false
1086
1087 # Specifies how the service should be handled. Useful if you want to expose the
1088 # webhook outside of the cluster. In some cases, the control plane cannot
1089 # reach internal services.
1090 serviceType: ClusterIP
1091
1092 # Specify the load balancer IP for the created service.
1093 # +docs:property
1094 # loadBalancerIP: "10.10.10.10"
1095
1096 # Overrides the mutating webhook and validating webhook so they reach the webhook
1097 # service using the `url` field instead of a service.
1098 url: {}
1099 # host:
1100
1101 # Enables default network policies for webhooks.
1102 # This provides a way for you to restrict network traffic
1103 # between cert-manager components and other pods.
1104 # For more information, see [Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
1105 # NOTE: an incorrect networkPolicy will cause traffic to be dropped
1106 networkPolicy:
1107 # Create network policies for the webhooks.
1108 enabled: false
1109
1110 # Ingress rule for the webhook network policy.
1111 # By default all pods are allowed access to:
1112 # https, http-metrics, and http-healthz ports
1113 # +docs:property
1114 ingress:
1115 - ports:
1116 - port: https
1117 protocol: TCP
1118 - port: healthcheck
1119 protocol: TCP
1120 - port: http-metrics
1121 protocol: TCP
1122
1123 # Egress rule for the webhook network policy. By default, it allows all
1124 # outbound traffic to ports 80 and 443, as well as DNS ports.
1125 # +docs:property
1126 egress:
1127 - ports:
1128 - port: 80
1129 protocol: TCP
1130 - port: 443
1131 protocol: TCP
1132 - port: 53
1133 protocol: TCP
1134 - port: 53
1135 protocol: UDP
1136 # On OpenShift and OKD, the Kubernetes API server listens on.
1137 # port 6443.
1138 - port: 6443
1139 protocol: TCP
1140
1141 # Additional volumes to add to the cert-manager controller pod.
1142 volumes: []
1143
1144 # Additional volume mounts to add to the cert-manager controller container.
1145 volumeMounts: []
1146
1147 # enableServiceLinks indicates whether information about services should be
1148 # injected into the pod's environment variables, matching the syntax of Docker
1149 # links.
1150 enableServiceLinks: false
1151
1152 # enableClientVerification turns on client verification of requests
1153 # made to the webhook server
1154 enableClientVerification: false
1155 # the client CA file to be used for verification
1156 clientCAFile: ""
1157 # Subject names to verify for the client certificate.
1158 # Multiple values may be supplied as a comma-separated list.
1159 apiserverClientCertSubjects: ""
1160
1161# +docs:section=CA Injector
1162
1163cainjector:
1164 # Create the CA Injector deployment
1165 enabled: true
1166
1167 # The number of replicas of the cert-manager cainjector to run.
1168 #
1169 # The default is 1, but in production set this to 2 or 3 to provide high
1170 # availability.
1171 #
1172 # If `replicas > 1`, consider setting `cainjector.podDisruptionBudget.enabled=true`.
1173 #
1174 # Note that cert-manager uses leader election to ensure that there can
1175 # only be a single instance active at a time.
1176 replicaCount: 1
1177
1178 # This is used to configure options for the cainjector pod.
1179 # It allows setting options that are usually provided via flags.
1180 #
1181 # If `apiVersion` and `kind` are unspecified they default to the current latest
1182 # version (currently `cainjector.config.cert-manager.io/v1alpha1`). You can pin
1183 # the version by specifying the `apiVersion` yourself.
1184 #
1185 # For example:
1186 # apiVersion: cainjector.config.cert-manager.io/v1alpha1
1187 # kind: CAInjectorConfiguration
1188 # logging:
1189 # verbosity: 2
1190 # format: text
1191 # leaderElectionConfig:
1192 # namespace: kube-system
1193 # # Configure the metrics server for TLS
1194 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
1195 # metricsTLSConfig:
1196 # dynamic:
1197 # secretNamespace: "cert-manager"
1198 # secretName: "cert-manager-metrics-ca"
1199 # dnsNames:
1200 # - cert-manager-metrics
1201 config: {}
1202
1203 # Deployment update strategy for the cert-manager cainjector deployment.
1204 # For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy).
1205 #
1206 # For example:
1207 # strategy:
1208 # type: RollingUpdate
1209 # rollingUpdate:
1210 # maxSurge: 0
1211 # maxUnavailable: 1
1212 strategy: {}
1213
1214 # Pod Security Context to be set on the cainjector component Pod
1215 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1216 # +docs:property
1217 securityContext:
1218 runAsNonRoot: true
1219 seccompProfile:
1220 type: RuntimeDefault
1221
1222 # Container Security Context to be set on the cainjector component container
1223 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1224 # +docs:property
1225 containerSecurityContext:
1226 allowPrivilegeEscalation: false
1227 capabilities:
1228 drop:
1229 - ALL
1230 readOnlyRootFilesystem: true
1231
1232 # Enables default network policies for cainjector.
1233 # This provides a way for you to restrict network traffic
1234 # between cert-manager components and other pods.
1235 # For more information, see [Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
1236 # NOTE: an incorrect networkPolicy will cause traffic to be dropped
1237 networkPolicy:
1238 # Create network policies for the cainjector.
1239 enabled: false
1240
1241 # Ingress rule for the webhook cainjector policy.
1242 # By default all pods are allowed access to:
1243 # http-metrics port
1244 # +docs:property
1245 ingress:
1246 - ports:
1247 - port: http-metrics
1248 protocol: TCP
1249
1250 # Egress rule for the cainjector network policy. By default, it allows all
1251 # outbound traffic to ports 80 and 443, as well as DNS ports.
1252 # +docs:property
1253 egress:
1254 - ports:
1255 - port: 80
1256 protocol: TCP
1257 - port: 443
1258 protocol: TCP
1259 - port: 53
1260 protocol: TCP
1261 - port: 53
1262 protocol: UDP
1263 # On OpenShift and OKD, the Kubernetes API server listens on.
1264 # port 6443.
1265 - port: 6443
1266 protocol: TCP
1267
1268 podDisruptionBudget:
1269 # Enable or disable the PodDisruptionBudget resource.
1270 #
1271 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
1272 # For example, the PodDisruptionBudget will block `kubectl drain`
1273 # if it is used on the Node where the only remaining cert-manager
1274 # Pod is currently running.
1275 enabled: false
1276
1277 # `minAvailable` configures the minimum available pods for disruptions. It can either be set to
1278 # an integer (e.g., 1) or a percentage value (e.g., 25%).
1279 # Cannot be used if `maxUnavailable` is set.
1280 # +docs:property
1281 # +docs:type=unknown
1282 # minAvailable: 1
1283
1284 # `maxUnavailable` configures the maximum unavailable pods for disruptions. It can either be set to
1285 # an integer (e.g., 1) or a percentage value (e.g., 25%).
1286 # Cannot be used if `minAvailable` is set.
1287 # +docs:property
1288 # +docs:type=unknown
1289 # maxUnavailable: 1
1290
1291 # This configures how to act with unhealthy pods during eviction
1292 # Note that this requires Kubernetes 1.31 or `PDBUnhealthyPodEvictionPolicy` feature gate enabled for
1293 # the cluster to work.
1294 # +docs:property
1295 # +docs:type=string
1296 # unhealthyPodEvictionPolicy: AlwaysAllow
1297
1298 # Optional additional annotations to add to the cainjector Deployment.
1299 # +docs:property
1300 # deploymentAnnotations: {}
1301
1302 # Optional additional annotations to add to the cainjector Pods.
1303 # +docs:property
1304 # podAnnotations: {}
1305
1306 # Optional additional annotations to add to the cainjector metrics Service.
1307 # +docs:property
1308 # serviceAnnotations: {}
1309
1310 # Additional command line flags to pass to cert-manager cainjector binary.
1311 # To see all available flags run `docker run quay.io/jetstack/cert-manager-cainjector:<version> --help`.
1312 extraArgs: []
1313 # Enable profiling for cainjector.
1314 # - --enable-profiling=true
1315
1316 # Additional environment variables to pass to cert-manager cainjector binary.
1317 # For example:
1318 # extraEnv:
1319 # - name: SOME_VAR
1320 # value: 'some value'
1321 extraEnv: []
1322
1323 # Comma separated list of feature gates that should be enabled on the
1324 # cainjector pod.
1325 featureGates: ""
1326
1327 # Resources to provide to the cert-manager cainjector pod.
1328 #
1329 # For example:
1330 # requests:
1331 # cpu: 10m
1332 # memory: 32Mi
1333 #
1334 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
1335 resources: {}
1336
1337
1338 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
1339 # matching labels.
1340 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
1341 #
1342 # This default ensures that Pods are only scheduled to Linux nodes.
1343 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
1344 # +docs:property
1345 nodeSelector:
1346 kubernetes.io/os: linux
1347
1348 # A Kubernetes Affinity, if required. For more information, see [Affinity v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#affinity-v1-core).
1349 #
1350 # For example:
1351 # affinity:
1352 # nodeAffinity:
1353 # requiredDuringSchedulingIgnoredDuringExecution:
1354 # nodeSelectorTerms:
1355 # - matchExpressions:
1356 # - key: foo.bar.com/role
1357 # operator: In
1358 # values:
1359 # - master
1360 affinity: {}
1361
1362 # A 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).
1363 #
1364 # For example:
1365 # tolerations:
1366 # - key: foo.bar.com/role
1367 # operator: Equal
1368 # value: master
1369 # effect: NoSchedule
1370 tolerations: []
1371
1372 # A list of Kubernetes TopologySpreadConstraints, if required. For more information, see [Topology spread constraint v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#topologyspreadconstraint-v1-core).
1373 #
1374 # For example:
1375 # topologySpreadConstraints:
1376 # - maxSkew: 2
1377 # topologyKey: topology.kubernetes.io/zone
1378 # whenUnsatisfiable: ScheduleAnyway
1379 # labelSelector:
1380 # matchLabels:
1381 # app.kubernetes.io/instance: cert-manager
1382 # app.kubernetes.io/component: controller
1383 topologySpreadConstraints: []
1384
1385 # Optional additional labels to add to the CA Injector Pods.
1386 podLabels: {}
1387
1388 # Optional additional labels to add to the CA Injector metrics Service.
1389 serviceLabels: {}
1390
1391 image:
1392 # Deprecated: per-component registry prefix.
1393 #
1394 # If set, this value is *prepended* to the image repository that the chart would otherwise render.
1395 # This applies both when `cainjector.image.repository` is set and when the repository is computed from
1396 # `imageRegistry` + `imageNamespace` + `cainjector.image.name`.
1397 #
1398 # This can produce "double registry" style references such as `legacy.example.io/quay.io/jetstack/...`.
1399 # Prefer using the global `imageRegistry`/`imageNamespace` values.
1400 # +docs:property
1401 # registry: ""
1402
1403 # The image name for the cert-manager cainjector.
1404 # +docs:property
1405 name: cert-manager-cainjector
1406
1407 # Full repository override (takes precedence over `imageRegistry`, `imageNamespace`, and `cainjector.image.name`).
1408 # +docs:property
1409 repository: ""
1410
1411 # Override the image tag to deploy by setting this variable.
1412 # If no value is set, the chart's appVersion will be used.
1413 # +docs:property
1414 # tag: vX.Y.Z
1415
1416 # Setting a digest pins the image. If a tag is also set, the rendered reference will include
1417 # both ("image:tag@digest"), though only the digest will be used for pulling.
1418 # +docs:property
1419 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1420
1421 # Kubernetes imagePullPolicy on Deployment.
1422 pullPolicy: IfNotPresent
1423
1424 serviceAccount:
1425 # Specifies whether a service account should be created.
1426 create: true
1427
1428 # The name of the service account to use.
1429 # If not set and create is true, a name is generated using the fullname template
1430 # +docs:property
1431 # name: ""
1432
1433 # Optional additional annotations to add to the cainjector's Service Account.
1434 # +docs:property
1435 # annotations: {}
1436
1437 # Optional additional labels to add to the cainjector's Service Account.
1438 # +docs:property
1439 # labels: {}
1440
1441 # Automount API credentials for a Service Account.
1442 automountServiceAccountToken: true
1443
1444 # Automounting API credentials for a particular pod.
1445 # +docs:property
1446 # automountServiceAccountToken: true
1447
1448 # Additional volumes to add to the cert-manager controller pod.
1449 volumes: []
1450
1451 # Additional volume mounts to add to the cert-manager controller container.
1452 volumeMounts: []
1453
1454 # enableServiceLinks indicates whether information about services should be
1455 # injected into the pod's environment variables, matching the syntax of Docker
1456 # links.
1457 enableServiceLinks: false
1458
1459# +docs:section=ACME Solver
1460
1461acmesolver:
1462 image:
1463 # Deprecated: per-component registry prefix.
1464 #
1465 # If set, this value is *prepended* to the image repository that the chart would otherwise render.
1466 # This applies both when `acmesolver.image.repository` is set and when the repository is computed from
1467 # `imageRegistry` + `imageNamespace` + `acmesolver.image.name`.
1468 #
1469 # This can produce "double registry" style references such as `legacy.example.io/quay.io/jetstack/...`.
1470 # Prefer using the global `imageRegistry`/`imageNamespace` values.
1471 # +docs:property
1472 # registry: ""
1473
1474 # The image name for the cert-manager acmesolver.
1475 # +docs:property
1476 name: cert-manager-acmesolver
1477
1478 # Full repository override (takes precedence over `imageRegistry`, `imageNamespace`, and `acmesolver.image.name`).
1479 # +docs:property
1480 repository: ""
1481
1482 # Override the image tag to deploy by setting this variable.
1483 # If no value is set, the chart's appVersion is used.
1484 # +docs:property
1485 # tag: vX.Y.Z
1486
1487 # Setting a digest pins the image. If a tag is also set, the rendered reference will include
1488 # both ("image:tag@digest"), though only the digest will be used for pulling.
1489 # +docs:property
1490 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1491
1492 # Kubernetes imagePullPolicy on Deployment.
1493 pullPolicy: IfNotPresent
1494
1495# +docs:section=Startup API Check
1496# This startupapicheck is a Helm post-install hook that waits for the webhook
1497# endpoints to become available.
1498# The check is implemented using a Kubernetes Job - if you are injecting mesh
1499# sidecar proxies into cert-manager pods, ensure that they
1500# are not injected into this Job's pod. Otherwise, the installation may time out
1501# owing to the Job never being completed because the sidecar proxy does not exit.
1502# For more information, see [this note](https://github.com/cert-manager/cert-manager/pull/4414).
1503
1504startupapicheck:
1505 # Enables the startup api check.
1506 enabled: true
1507
1508 # Pod Security Context to be set on the startupapicheck component Pod.
1509 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1510 # +docs:property
1511 securityContext:
1512 runAsNonRoot: true
1513 seccompProfile:
1514 type: RuntimeDefault
1515
1516 # Container Security Context to be set on the controller component container.
1517 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1518 # +docs:property
1519 containerSecurityContext:
1520 allowPrivilegeEscalation: false
1521 capabilities:
1522 drop:
1523 - ALL
1524 readOnlyRootFilesystem: true
1525
1526 # Timeout for 'kubectl check api' command.
1527 timeout: 1m
1528
1529 # Job backoffLimit
1530 backoffLimit: 4
1531
1532 # Optional additional annotations to add to the startupapicheck Job.
1533 # +docs:property
1534 jobAnnotations:
1535 helm.sh/hook: post-install
1536 helm.sh/hook-weight: "1"
1537 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1538
1539 # Optional additional annotations to add to the startupapicheck Pods.
1540 # +docs:property
1541 # podAnnotations: {}
1542
1543 # Additional command line flags to pass to startupapicheck binary.
1544 # To see all available flags run `docker run quay.io/jetstack/cert-manager-startupapicheck:<version> --help`.
1545 #
1546 # Verbose logging is enabled by default so that if startupapicheck fails, you
1547 # can know what exactly caused the failure. Verbose logs include details of
1548 # the webhook URL, IP address and TCP connect errors for example.
1549 # +docs:property
1550 extraArgs:
1551 - -v
1552
1553 # Additional environment variables to pass to cert-manager startupapicheck binary.
1554 # For example:
1555 # extraEnv:
1556 # - name: SOME_VAR
1557 # value: 'some value'
1558 extraEnv: []
1559
1560 # Resources to provide to the cert-manager controller pod.
1561 #
1562 # For example:
1563 # requests:
1564 # cpu: 10m
1565 # memory: 32Mi
1566 #
1567 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
1568 resources: {}
1569
1570
1571 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
1572 # matching labels.
1573 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
1574 #
1575 # This default ensures that Pods are only scheduled to Linux nodes.
1576 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
1577 # +docs:property
1578 nodeSelector:
1579 kubernetes.io/os: linux
1580
1581 # A Kubernetes Affinity, if required. For more information, see [Affinity v1 core](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#affinity-v1-core).
1582 # For example:
1583 # affinity:
1584 # nodeAffinity:
1585 # requiredDuringSchedulingIgnoredDuringExecution:
1586 # nodeSelectorTerms:
1587 # - matchExpressions:
1588 # - key: foo.bar.com/role
1589 # operator: In
1590 # values:
1591 # - master
1592 affinity: {}
1593
1594 # A 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).
1595 #
1596 # For example:
1597 # tolerations:
1598 # - key: foo.bar.com/role
1599 # operator: Equal
1600 # value: master
1601 # effect: NoSchedule
1602 tolerations: []
1603
1604 # Optional additional labels to add to the startupapicheck Pods.
1605 podLabels: {}
1606
1607 image:
1608 # Deprecated: per-component registry prefix.
1609 #
1610 # If set, this value is *prepended* to the image repository that the chart would otherwise render.
1611 # This applies both when `startupapicheck.image.repository` is set and when the repository is computed from
1612 # `imageRegistry` + `imageNamespace` + `startupapicheck.image.name`.
1613 #
1614 # This can produce "double registry" style references such as `legacy.example.io/quay.io/jetstack/...`.
1615 # Prefer using the global `imageRegistry`/`imageNamespace` values.
1616 # +docs:property
1617 # registry: ""
1618
1619 # The image name for the cert-manager startupapicheck.
1620 # +docs:property
1621 name: cert-manager-startupapicheck
1622
1623 # Full repository override (takes precedence over `imageRegistry`, `imageNamespace`, and `startupapicheck.image.name`).
1624 # +docs:property
1625 repository: ""
1626
1627 # Override the image tag to deploy by setting this variable.
1628 # If no value is set, the chart's appVersion is used.
1629 # +docs:property
1630 # tag: vX.Y.Z
1631
1632 # Setting a digest pins the image. If a tag is also set, the rendered reference will include
1633 # both ("image:tag@digest"), though only the digest will be used for pulling.
1634 # +docs:property
1635 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1636
1637 # Kubernetes imagePullPolicy on Deployment.
1638 pullPolicy: IfNotPresent
1639
1640 rbac:
1641 # annotations for the startup API Check job RBAC and PSP resources.
1642 # +docs:property
1643 annotations:
1644 helm.sh/hook: post-install
1645 helm.sh/hook-weight: "-5"
1646 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1647
1648 # Automounting API credentials for a particular pod.
1649 # +docs:property
1650 # automountServiceAccountToken: true
1651
1652 serviceAccount:
1653 # Specifies whether a service account should be created.
1654 create: true
1655
1656 # The name of the service account to use.
1657 # If not set and create is true, a name is generated using the fullname template.
1658 # +docs:property
1659 # name: ""
1660
1661 # Optional additional annotations to add to the Job's Service Account.
1662 # +docs:property
1663 annotations:
1664 helm.sh/hook: post-install
1665 helm.sh/hook-weight: "-5"
1666 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1667
1668 # Automount API credentials for a Service Account.
1669 # +docs:property
1670 automountServiceAccountToken: true
1671
1672 # Optional additional labels to add to the startupapicheck's Service Account.
1673 # +docs:property
1674 # labels: {}
1675
1676 # Additional volumes to add to the cert-manager controller pod.
1677 volumes: []
1678
1679 # Additional volume mounts to add to the cert-manager controller container.
1680 volumeMounts: []
1681
1682 # enableServiceLinks indicates whether information about services should be
1683 # injected into pod's environment variables, matching the syntax of Docker
1684 # links.
1685 enableServiceLinks: false
1686
1687# Create dynamic manifests via values.
1688#
1689# For example:
1690# extraObjects:
1691# - |
1692# apiVersion: v1
1693# kind: ConfigMap
1694# metadata:
1695# name: '{{ template "cert-manager.fullname" . }}-extra-configmap'
1696extraObjects: []
1697
1698# Field used by our release pipeline to produce the static manifests.
1699# The field defaults to "helm" but is set to "static" when we render
1700# the static YAML manifests.
1701# +docs:hidden
1702creator: "helm"
1703
1704# Field that can be used as a condition when cert-manager is a dependency.
1705# This definition is only here as a placeholder such that it is included in
1706# the json schema.
1707# See https://helm.sh/docs/chart_best_practices/dependencies/#conditions-and-tags
1708# for more info.
1709# +docs:hidden
1710enabled: true