3# Default values for cert-manager.
4# This is a YAML-formatted file.
5# Declare variables to be passed into your templates.
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/).
12 # - name: "image-pull-secret"
14 # Global node selector
16 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
18 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
20 # If a component-specific nodeSelector is also set, it will be merged and take precedence.
23 # Labels to apply to all resources.
24 # Please note that this does not add labels to the resources created dynamically by the controllers.
25 # For these resources, you have to add the labels in the template in the cert-manager custom resource:
26 # For example, podTemplate/ ingressTemplate in ACMEChallengeSolverHTTP01Ingress
27 # For more information, see the [cert-manager documentation](https://cert-manager.io/docs/reference/api-docs/#acme.cert-manager.io/v1.ACMEChallengeSolverHTTP01Ingress).
28 # For example, secretTemplate in CertificateSpec
29 # For more information, see the [cert-manager documentation](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec).
31 # The number of old ReplicaSets to retain to allow rollback (if not set, the default Kubernetes value is set to 10).
33 # revisionHistoryLimit: 1
35 # The optional priority class to be used for the cert-manager pods.
37 # Set all pods to run in a user namespace without host access.
38 # Experimental: may be removed once the Kubernetes User Namespaces feature is GA.
41 # - Kubernetes ≥ 1.33, or
42 # - Kubernetes 1.27–1.32 with UserNamespacesSupport feature gate enabled.
44 # Set to false to run pods in a user namespace without host access.
46 # See [limitations](https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/#limitations) for details.
50 # Create required ClusterRoles and ClusterRoleBindings for cert-manager.
52 # 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)
53 aggregateClusterRoles: true
55 # Create PodSecurityPolicy for cert-manager.
57 # Note that PodSecurityPolicy was deprecated in Kubernetes 1.21 and removed in Kubernetes 1.25.
59 # Configure the PodSecurityPolicy to use AppArmor.
61 # Set the verbosity of cert-manager. A range of 0 - 6, with 6 being the most verbose.
64 # Override the namespace used for the leader election lease.
65 namespace: "kube-system"
66 # The duration that non-leader candidates will wait after observing a
67 # leadership renewal until attempting to acquire leadership of a led but
68 # unrenewed leader slot. This is effectively the maximum duration that a
69 # leader can be stopped before it is replaced by another candidate.
72# The interval between attempts by the acting master to renew a leadership
73# slot before it stops leading. This must be less than or equal to the
78# The duration the clients should wait between attempting acquisition and
79# renewal of a leadership.
83# This option is equivalent to setting crds.enabled=true and crds.keep=true.
84# Deprecated: use crds.enabled and crds.keep instead.
87 # This option decides if the CRDs should be installed
88 # as part of the Helm installation.
90 # This option makes it so that the "helm.sh/resource-policy": keep
91 # annotation is added to the CRD. This will prevent Helm from uninstalling
92 # the CRD when the Helm release is uninstalled.
93 # WARNING: when the CRDs are removed, all cert-manager custom resources
94 # (Certificates, Issuers, ...) will be removed too by the garbage collector.
96# +docs:section=Controller
98# The number of replicas of the cert-manager controller to run.
100# The default is 1, but in production set this to 2 or 3 to provide high
103# If `replicas > 1`, consider setting `podDisruptionBudget.enabled=true`.
105# Note that cert-manager uses leader election to ensure that there can
106# only be a single instance active at a time.
108# Deployment update strategy for the cert-manager controller deployment.
109# For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy).
119 # Enable or disable the PodDisruptionBudget resource.
121 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
122 # For example, the PodDisruptionBudget will block `kubectl drain`
123 # if it is used on the Node where the only remaining cert-manager
124 # Pod is currently running.
126 # This configures the minimum available pods for disruptions. It can either be set to
127 # an integer (e.g., 1) or a percentage value (e.g., 25%).
128 # It cannot be used if `maxUnavailable` is set.
132# This configures the maximum unavailable pods for disruptions. It can either be set to
133# an integer (e.g., 1) or a percentage value (e.g., 25%).
134# it cannot be used if `minAvailable` is set.
139# A comma-separated list of feature gates that should be enabled on the
142# The maximum number of challenges that can be scheduled as 'processing' at once.
143maxConcurrentChallenges: 60
145 # The container registry to pull the manager image from.
149 # The container image for the cert-manager controller.
151 repository: chainguard-private/cert-manager-controller
152 # Override the image tag to deploy by setting this variable.
153 # If no value is set, the chart's appVersion is used.
157 # Setting a digest will override any tag.
159 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
161 # Kubernetes imagePullPolicy on Deployment.
162 pullPolicy: IfNotPresent
165 digest: sha256:1b447f90c535ea6fe23eb67879e7ac0b8f7dc2ac4258b4f5dc041c7809cb57cd
166# Override the namespace used to store DNS provider credentials etc. for ClusterIssuer
167# resources. By default, the same namespace as cert-manager is deployed within is
168# used. This namespace will not be automatically created by the Helm chart.
169clusterResourceNamespace: ""
170# This namespace allows you to define where the services are installed into.
171# If not set then they use the namespace of the release.
172# This is helpful when installing cert manager as a chart dependency (sub chart).
174# Override the "cert-manager.fullname" value. This value is used as part of
175# most of the names of the resources created by this Helm chart.
177# fullnameOverride: "my-cert-manager"
179# Override the "cert-manager.name" value, which is used to annotate some of
180# the resources that are created by this Chart (using "app.kubernetes.io/name").
181# NOTE: There are some inconsistencies in the Helm chart when it comes to
182# these annotations (some resources use, e.g., "cainjector.name" which resolves
183# to the value "cainjector").
185# nameOverride: "my-cert-manager"
187 # Specifies whether a service account should be created.
189 # The name of the service account to use.
190 # If not set and create is true, a name is generated using the fullname template.
194 # Optional additional annotations to add to the controller's Service Account. Templates are allowed for both keys and values.
195 # Example using templating:
197 # "{{ .Chart.Name }}-helm-chart/version": "{{ .Chart.Version }}"
201 # Optional additional labels to add to the controller's Service Account.
205 # Automount API credentials for a Service Account.
206 automountServiceAccountToken: true
207# Automounting API credentials for a particular pod.
209# automountServiceAccountToken: true
211# When this flag is enabled, secrets will be automatically removed when the certificate resource is deleted.
212enableCertificateOwnerRef: false
213# This property is used to configure options for the controller pod.
214# This allows setting options that would usually be provided using flags.
216# If `apiVersion` and `kind` are unspecified they default to the current latest
217# version (currently `controller.config.cert-manager.io/v1alpha1`). You can pin
218# the version by specifying the `apiVersion` yourself.
222# apiVersion: controller.config.cert-manager.io/v1alpha1
223# kind: ControllerConfiguration
227# leaderElectionConfig:
228# namespace: kube-system
229# kubernetesAPIQPS: 9000
230# kubernetesAPIBurst: 9000
231# numberOfConcurrentWorkers: 200
232# enableGatewayAPI: true
233# # Feature gates as of v1.18.1. Listed with their default values.
234# # See https://cert-manager.io/docs/cli/controller/
236# AdditionalCertificateOutputFormats: true # GA - default=true
237# AllAlpha: false # ALPHA - default=false
238# AllBeta: false # BETA - default=false
239# ExperimentalCertificateSigningRequestControllers: false # ALPHA - default=false
240# ExperimentalGatewayAPISupport: true # BETA - default=true
241# LiteralCertificateSubject: true # BETA - default=true
242# NameConstraints: true # BETA - default=true
243# OtherNames: false # ALPHA - default=false
244# SecretsFilteredCaching: true # BETA - default=true
245# ServerSideApply: false # ALPHA - default=false
246# StableCertificateRequestName: true # BETA - default=true
247# UseCertificateRequestBasicConstraints: false # ALPHA - default=false
248# UseDomainQualifiedFinalizer: true # GA - default=true
249# ValidateCAA: false # ALPHA - default=false
250# DefaultPrivateKeyRotationPolicyAlways: true # BETA - default=true
251# ACMEHTTP01IngressPathTypeExact: true # BETA - default=true
252# # Configure the metrics server for TLS
253# # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
256# secretNamespace: "cert-manager"
257# secretName: "cert-manager-metrics-ca"
259# - cert-manager-metrics
261# Setting Nameservers for DNS01 Self Check.
262# For more information, see the [cert-manager documentation](https://cert-manager.io/docs/configuration/acme/dns01/#setting-nameservers-for-dns01-self-check).
264# A comma-separated string with the host and port of the recursive nameservers cert-manager should query.
265dns01RecursiveNameservers: ""
266# Forces cert-manager to use only the recursive nameservers for verification.
267# Enabling this option could cause the DNS01 self check to take longer owing to caching performed by the recursive nameservers.
268dns01RecursiveNameserversOnly: false
269# Option to disable cert-manager's build-in auto-approver. The auto-approver
270# approves all CertificateRequests that reference issuers matching the 'approveSignerNames'
271# option. This 'disableAutoApproval' option is useful when you want to make all approval decisions
272# using a different approver (like approver-policy - https://github.com/cert-manager/approver-policy).
273disableAutoApproval: false
274# List of signer names that cert-manager will approve by default. CertificateRequests
275# referencing these signer names will be auto-approved by cert-manager. Defaults to just
276# approving the cert-manager.io Issuer and ClusterIssuer issuers. When set to an empty
277# array, ALL issuers will be auto-approved by cert-manager. To disable the auto-approval,
278# because, e.g., you are using approver-policy, you can enable 'disableAutoApproval'.
279# ref: https://cert-manager.io/docs/concepts/certificaterequest/#approval
282 - issuers.cert-manager.io/*
283 - clusterissuers.cert-manager.io/*
284# Additional command line flags to pass to cert-manager controller binary.
285# To see all available flags run `docker run quay.io/jetstack/cert-manager-controller:<version> --help`.
287# Use this flag to enable or disable arbitrary controllers. For example, to disable the CertificateRequests approver.
291# - --controllers=*,-certificaterequests-approver
293# Additional environment variables to pass to cert-manager controller binary.
299# Resources to provide to the cert-manager controller pod.
306# For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
308# Pod Security Context.
309# For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
315# Container Security Context to be set on the controller component container.
316# For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
318containerSecurityContext:
319 allowPrivilegeEscalation: false
323 readOnlyRootFilesystem: true
324# Additional volumes to add to the cert-manager controller pod.
326# Additional volume mounts to add to the cert-manager controller container.
328# Optional additional annotations to add to the controller Deployment.
330# deploymentAnnotations: {}
332# Optional additional annotations to add to the controller Pods.
336# Optional additional labels to add to the controller Pods.
338# Optional annotations to add to the controller Service.
340# serviceAnnotations: {}
342# Optional additional labels to add to the controller Service.
346# 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).
348# serviceIPFamilyPolicy: ""
350# 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.
352# serviceIPFamilies: []
354# Optional DNS settings. These are useful if you have a public and private DNS zone for
355# the same domain on Route 53. The following is an example of ensuring
356# cert-manager can access an ingress or DNS TXT records at all times.
357# Note that this requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for
358# the cluster to work.
361# For more information, see [Pod's DNS Policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
363# podDnsPolicy: "None"
365# Pod DNS configuration. The podDnsConfig field is optional and can work with any podDnsPolicy
366# settings. However, when a Pod's dnsPolicy is set to "None", the dnsConfig field has to be specified.
367# For more information, see [Pod's DNS Config](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config).
374# Optional hostAliases for cert-manager-controller pods. May be useful when performing ACME DNS-01 self checks.
385# The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
387# For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
389# This default ensures that Pods are only scheduled to Linux nodes.
390# It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
393 kubernetes.io/os: linux
396# Optional default issuer to use for ingress resources.
397# +docs:property=ingressShim.defaultIssuerName
398# defaultIssuerName: ""
400# Optional default issuer kind to use for ingress resources.
401# +docs:property=ingressShim.defaultIssuerKind
402# defaultIssuerKind: ""
404# Optional default issuer group to use for ingress resources.
405# +docs:property=ingressShim.defaultIssuerGroup
406# defaultIssuerGroup: ""
408# Use these variables to configure the HTTP_PROXY environment variables.
410# Configures the HTTP_PROXY environment variable where a HTTP proxy is required.
412# http_proxy: "http://proxy:8080"
414# Configures the HTTPS_PROXY environment variable where a HTTP proxy is required.
416# https_proxy: "https://proxy:8080"
418# Configures the NO_PROXY environment variable where a HTTP proxy is required,
419# but certain domains should be excluded.
421# no_proxy: 127.0.0.1,localhost
423# 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).
428# requiredDuringSchedulingIgnoredDuringExecution:
431# - key: foo.bar.com/role
436# 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).
440# - key: foo.bar.com/role
445# 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
448# topologySpreadConstraints:
450# topologyKey: topology.kubernetes.io/zone
451# whenUnsatisfiable: ScheduleAnyway
454# app.kubernetes.io/instance: cert-manager
455# app.kubernetes.io/component: controller
456topologySpreadConstraints: []
457# LivenessProbe settings for the controller container of the controller Pod.
459# This is enabled by default, in order to enable the clock-skew liveness probe that
460# restarts the controller in case of a skew between the system clock and the monotonic clock.
461# LivenessProbe durations and thresholds are based on those used for the Kubernetes
462# controller-manager. For more information see the following on the
463# [Kubernetes GitHub repository](https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245)
467 initialDelaySeconds: 10
472# enableServiceLinks indicates whether information about services should be
473# injected into the pod's environment variables, matching the syntax of Docker
475enableServiceLinks: false
476# +docs:section=Prometheus
478 # Enable Prometheus monitoring for the cert-manager controller and webhook.
479 # If you use the Prometheus Operator, set prometheus.podmonitor.enabled or
480 # prometheus.servicemonitor.enabled, to create a PodMonitor or a
481 # ServiceMonitor resource.
482 # Otherwise, 'prometheus.io' annotations are added to the cert-manager and
483 # cert-manager-webhook Deployments.
484 # Note that you cannot enable both PodMonitor and ServiceMonitor as they are
485 # mutually exclusive. Enabling both will result in an error.
488 # Create a ServiceMonitor to add cert-manager to Prometheus.
490 # The namespace that the service monitor should live in, defaults
491 # to the cert-manager namespace.
493 # namespace: cert-manager
495 # Specifies the `prometheus` label on the created ServiceMonitor. This is
496 # used when different Prometheus instances have label selectors matching
497 # different ServiceMonitors.
498 prometheusInstance: default
499 # The target port to set on the ServiceMonitor. This must match the port that the
500 # cert-manager controller is listening on for metrics.
501 # +docs:type=string,integer
502 targetPort: http-metrics
503 # The path to scrape for metrics.
505 # The interval to scrape metrics.
507 # The timeout before a metrics scrape fails.
509 # Additional labels to add to the ServiceMonitor.
511 # Additional annotations to add to the ServiceMonitor.
513 # Keep labels from scraped data, overriding server-side labels.
515 # EndpointAdditionalProperties allows setting additional properties on the
516 # endpoint such as relabelings, metricRelabelings etc.
519 # endpointAdditionalProperties:
523 # - __meta_kubernetes_pod_node_name
524 # targetLabel: instance
527 endpointAdditionalProperties: {}
528 # Note that you cannot enable both PodMonitor and ServiceMonitor as they are mutually exclusive. Enabling both will result in an error.
530 # Create a PodMonitor to add cert-manager to Prometheus.
532 # The namespace that the pod monitor should live in, defaults
533 # to the cert-manager namespace.
535 # namespace: cert-manager
537 # Specifies the `prometheus` label on the created PodMonitor. This is
538 # used when different Prometheus instances have label selectors matching
539 # different PodMonitors.
540 prometheusInstance: default
541 # The path to scrape for metrics.
543 # The interval to scrape metrics.
545 # The timeout before a metrics scrape fails.
547 # Additional labels to add to the PodMonitor.
549 # Additional annotations to add to the PodMonitor.
551 # Keep labels from scraped data, overriding server-side labels.
553 # EndpointAdditionalProperties allows setting additional properties on the
554 # endpoint such as relabelings, metricRelabelings etc.
557 # endpointAdditionalProperties:
561 # - __meta_kubernetes_pod_node_name
562 # targetLabel: instance
563 # # Configure the PodMonitor for TLS connections
564 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
567 # serverName: cert-manager-metrics
570 # name: cert-manager-metrics-ca
574 endpointAdditionalProperties: {}
575# +docs:section=Webhook
577 # Number of replicas of the cert-manager webhook to run.
579 # The default is 1, but in production set this to 2 or 3 to provide high
582 # If `replicas > 1`, consider setting `webhook.podDisruptionBudget.enabled=true`.
584 # The number of seconds the API server should wait for the webhook to respond before treating the call as a failure.
585 # The value must be between 1 and 30 seconds. For more information, see
586 # [Validating webhook configuration v1](https://kubernetes.io/docs/reference/kubernetes-api/extend-resources/validating-webhook-configuration-v1/).
588 # The default is set to the maximum value of 30 seconds as
589 # users sometimes report that the connection between the K8S API server and
590 # the cert-manager webhook server times out.
591 # If *this* timeout is reached, the error message will be "context deadline exceeded",
592 # which doesn't help the user diagnose what phase of the HTTPS connection timed out.
593 # For example, it could be during DNS resolution, TCP connection, TLS
594 # negotiation, HTTP negotiation, or slow HTTP response from the webhook
596 # By setting this timeout to its maximum value the underlying timeout error
597 # message has more chance of being returned to the end user.
599 # This is used to configure options for the webhook pod.
600 # This allows setting options that would usually be provided using flags.
602 # If `apiVersion` and `kind` are unspecified they default to the current latest
603 # version (currently `webhook.config.cert-manager.io/v1alpha1`). You can pin
604 # the version by specifying the `apiVersion` yourself.
607 # apiVersion: webhook.config.cert-manager.io/v1alpha1
608 # kind: WebhookConfiguration
609 # # The port that the webhook listens on for requests.
610 # # In GKE private clusters, by default Kubernetes apiservers are allowed to
611 # # talk to the cluster nodes only on 443 and 10250. Configuring
612 # # securePort: 10250 therefore will work out-of-the-box without needing to add firewall
613 # # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers < 1000.
614 # # This should be uncommented and set as a default by the chart once
615 # # the apiVersion of WebhookConfiguration graduates beyond v1alpha1.
617 # # Configure the metrics server for TLS
618 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
621 # secretNamespace: "cert-manager"
622 # secretName: "cert-manager-metrics-ca"
624 # - cert-manager-metrics
626 # The update strategy for the cert-manager webhook deployment.
627 # For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy)
631 # type: RollingUpdate
636 # Pod Security Context to be set on the webhook component Pod.
637 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
643 # Container Security Context to be set on the webhook component container.
644 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
646 containerSecurityContext:
647 allowPrivilegeEscalation: false
651 readOnlyRootFilesystem: true
653 # Enable or disable the PodDisruptionBudget resource.
655 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
656 # For example, the PodDisruptionBudget will block `kubectl drain`
657 # if it is used on the Node where the only remaining cert-manager
658 # Pod is currently running.
660 # This property configures the minimum available pods for disruptions. Can either be set to
661 # an integer (e.g., 1) or a percentage value (e.g., 25%).
662 # It cannot be used if `maxUnavailable` is set.
666 # This property configures the maximum unavailable pods for disruptions. Can either be set to
667 # an integer (e.g., 1) or a percentage value (e.g., 25%).
668 # It cannot be used if `minAvailable` is set.
673 # Optional additional annotations to add to the webhook Deployment.
675 # deploymentAnnotations: {}
677 # Optional additional annotations to add to the webhook Pods.
681 # Optional additional annotations to add to the webhook Service.
683 # serviceAnnotations: {}
685 # Optional additional annotations to add to the webhook MutatingWebhookConfiguration.
687 # mutatingWebhookConfigurationAnnotations: {}
689 # Optional additional annotations to add to the webhook ValidatingWebhookConfiguration.
691 # validatingWebhookConfigurationAnnotations: {}
692 validatingWebhookConfiguration:
693 # Configure spec.namespaceSelector for validating webhooks.
697 - key: "cert-manager.io/disable-validation"
701 mutatingWebhookConfiguration:
702 # Configure spec.namespaceSelector for mutating webhooks.
704 namespaceSelector: {}
708 # - key: kubernetes.io/metadata.name
712 # Additional command line flags to pass to cert-manager webhook binary.
713 # To see all available flags run `docker run quay.io/jetstack/cert-manager-webhook:<version> --help`.
715 # Path to a file containing a WebhookConfiguration object used to configure the webhook.
716 # - --config=<path-to-config-file>
718 # Additional environment variables to pass to cert-manager webhook binary.
722 # value: 'some value'
724 # Comma separated list of feature gates that should be enabled on the
727 # Resources to provide to the cert-manager webhook pod.
734 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
736 # Liveness probe values.
737 # For more information, see [Container probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
742 initialDelaySeconds: 60
746 # Readiness probe values.
747 # For more information, see [Container probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
752 initialDelaySeconds: 5
756 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
758 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
760 # This default ensures that Pods are only scheduled to Linux nodes.
761 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
764 kubernetes.io/os: linux
765 # 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).
770 # requiredDuringSchedulingIgnoredDuringExecution:
772 # - matchExpressions:
773 # - key: foo.bar.com/role
778 # 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).
782 # - key: foo.bar.com/role
787 # 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).
790 # topologySpreadConstraints:
792 # topologyKey: topology.kubernetes.io/zone
793 # whenUnsatisfiable: ScheduleAnyway
796 # app.kubernetes.io/instance: cert-manager
797 # app.kubernetes.io/component: controller
798 topologySpreadConstraints: []
799 # Optional additional labels to add to the Webhook Pods.
801 # Optional additional labels to add to the Webhook Service.
803 # 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).
804 serviceIPFamilyPolicy: ""
805 # 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.
806 serviceIPFamilies: []
808 # The container registry to pull the webhook image from.
812 # The container image for the cert-manager webhook
814 repository: chainguard-private/cert-manager-webhook
815 # Override the image tag to deploy by setting this variable.
816 # If no value is set, the chart's appVersion will be used.
820 # Setting a digest will override any tag
822 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
824 # Kubernetes imagePullPolicy on Deployment.
825 pullPolicy: IfNotPresent
828 digest: sha256:223de8fafb153429003a7d6e3a8e68374a7c8cb5b1491d186a77a77ca0915aee
830 # Specifies whether a service account should be created.
832 # The name of the service account to use.
833 # If not set and create is true, a name is generated using the fullname template.
837 # Optional additional annotations to add to the webhook's Service Account.
841 # Optional additional labels to add to the webhook's Service Account.
845 # Automount API credentials for a Service Account.
846 automountServiceAccountToken: true
847 # Automounting API credentials for a particular pod.
849 # automountServiceAccountToken: true
851 # The port that the webhook listens on for requests.
852 # In GKE private clusters, by default Kubernetes apiservers are allowed to
853 # talk to the cluster nodes only on 443 and 10250. Configuring
854 # securePort: 10250, therefore will work out-of-the-box without needing to add firewall
855 # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000.
857 # Specifies if the webhook should be started in hostNetwork mode.
859 # Required for use in some managed kubernetes clusters (such as AWS EKS) with custom
860 # CNI (such as calico), because control-plane managed by AWS cannot communicate
861 # with pods' IP CIDR and admission webhooks are not working
863 # Since the default port for the webhook conflicts with kubelet on the host
864 # network, `webhook.securePort` should be changed to an available port if
865 # running in hostNetwork mode.
867 # Specifies how the service should be handled. Useful if you want to expose the
868 # webhook outside of the cluster. In some cases, the control plane cannot
869 # reach internal services.
870 serviceType: ClusterIP
871 # Specify the load balancer IP for the created service.
873 # loadBalancerIP: "10.10.10.10"
875 # Overrides the mutating webhook and validating webhook so they reach the webhook
876 # service using the `url` field instead of a service.
880 # Enables default network policies for webhooks.
882 # Create network policies for the webhooks.
884 # Ingress rule for the webhook network policy. By default, it allows all
893 # Egress rule for the webhook network policy. By default, it allows all
894 # outbound traffic to ports 80 and 443, as well as DNS ports.
906 # On OpenShift and OKD, the Kubernetes API server listens on.
915 # Additional volumes to add to the cert-manager controller pod.
917 # Additional volume mounts to add to the cert-manager controller container.
919 # enableServiceLinks indicates whether information about services should be
920 # injected into the pod's environment variables, matching the syntax of Docker
922 enableServiceLinks: false
923# +docs:section=CA Injector
925 # Create the CA Injector deployment
927 # The number of replicas of the cert-manager cainjector to run.
929 # The default is 1, but in production set this to 2 or 3 to provide high
932 # If `replicas > 1`, consider setting `cainjector.podDisruptionBudget.enabled=true`.
934 # Note that cert-manager uses leader election to ensure that there can
935 # only be a single instance active at a time.
937 # This is used to configure options for the cainjector pod.
938 # It allows setting options that are usually provided via flags.
940 # If `apiVersion` and `kind` are unspecified they default to the current latest
941 # version (currently `cainjector.config.cert-manager.io/v1alpha1`). You can pin
942 # the version by specifying the `apiVersion` yourself.
945 # apiVersion: cainjector.config.cert-manager.io/v1alpha1
946 # kind: CAInjectorConfiguration
950 # leaderElectionConfig:
951 # namespace: kube-system
952 # # Configure the metrics server for TLS
953 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
956 # secretNamespace: "cert-manager"
957 # secretName: "cert-manager-metrics-ca"
959 # - cert-manager-metrics
961 # Deployment update strategy for the cert-manager cainjector deployment.
962 # For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy).
966 # type: RollingUpdate
971 # Pod Security Context to be set on the cainjector component Pod
972 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
978 # Container Security Context to be set on the cainjector component container
979 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
981 containerSecurityContext:
982 allowPrivilegeEscalation: false
986 readOnlyRootFilesystem: true
988 # Enable or disable the PodDisruptionBudget resource.
990 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
991 # For example, the PodDisruptionBudget will block `kubectl drain`
992 # if it is used on the Node where the only remaining cert-manager
993 # Pod is currently running.
995 # `minAvailable` configures the minimum available pods for disruptions. It can either be set to
996 # an integer (e.g., 1) or a percentage value (e.g., 25%).
997 # Cannot be used if `maxUnavailable` is set.
1001 # `maxUnavailable` configures the maximum unavailable pods for disruptions. It can either be set to
1002 # an integer (e.g., 1) or a percentage value (e.g., 25%).
1003 # Cannot be used if `minAvailable` is set.
1005 # +docs:type=unknown
1008 # Optional additional annotations to add to the cainjector Deployment.
1010 # deploymentAnnotations: {}
1012 # Optional additional annotations to add to the cainjector Pods.
1014 # podAnnotations: {}
1016 # Optional additional annotations to add to the cainjector metrics Service.
1018 # serviceAnnotations: {}
1020 # Additional command line flags to pass to cert-manager cainjector binary.
1021 # To see all available flags run `docker run quay.io/jetstack/cert-manager-cainjector:<version> --help`.
1023 # Enable profiling for cainjector.
1024 # - --enable-profiling=true
1026 # Additional environment variables to pass to cert-manager cainjector binary.
1030 # value: 'some value'
1032 # Comma separated list of feature gates that should be enabled on the
1035 # Resources to provide to the cert-manager cainjector pod.
1042 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
1044 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
1046 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
1048 # This default ensures that Pods are only scheduled to Linux nodes.
1049 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
1052 kubernetes.io/os: linux
1053 # 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).
1058 # requiredDuringSchedulingIgnoredDuringExecution:
1059 # nodeSelectorTerms:
1060 # - matchExpressions:
1061 # - key: foo.bar.com/role
1066 # 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).
1070 # - key: foo.bar.com/role
1073 # effect: NoSchedule
1075 # 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).
1078 # topologySpreadConstraints:
1080 # topologyKey: topology.kubernetes.io/zone
1081 # whenUnsatisfiable: ScheduleAnyway
1084 # app.kubernetes.io/instance: cert-manager
1085 # app.kubernetes.io/component: controller
1086 topologySpreadConstraints: []
1087 # Optional additional labels to add to the CA Injector Pods.
1089 # Optional additional labels to add to the CA Injector metrics Service.
1092 # The container registry to pull the cainjector image from.
1096 # The container image for the cert-manager cainjector
1098 repository: chainguard-private/cert-manager-cainjector
1099 # Override the image tag to deploy by setting this variable.
1100 # If no value is set, the chart's appVersion will be used.
1104 # Setting a digest will override any tag.
1106 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1108 # Kubernetes imagePullPolicy on Deployment.
1109 pullPolicy: IfNotPresent
1112 digest: sha256:9a895c2d98bda14886dda637ee16f845175684538fe7093fd89cdbcc36f043ae
1114 # Specifies whether a service account should be created.
1116 # The name of the service account to use.
1117 # If not set and create is true, a name is generated using the fullname template
1121 # Optional additional annotations to add to the cainjector's Service Account.
1125 # Optional additional labels to add to the cainjector's Service Account.
1129 # Automount API credentials for a Service Account.
1130 automountServiceAccountToken: true
1131 # Automounting API credentials for a particular pod.
1133 # automountServiceAccountToken: true
1135 # Additional volumes to add to the cert-manager controller pod.
1137 # Additional volume mounts to add to the cert-manager controller container.
1139 # enableServiceLinks indicates whether information about services should be
1140 # injected into the pod's environment variables, matching the syntax of Docker
1142 enableServiceLinks: false
1143# +docs:section=ACME Solver
1146 # The container registry to pull the acmesolver image from.
1150 # The container image for the cert-manager acmesolver.
1152 repository: chainguard-private/cert-manager-acmesolver
1153 # Override the image tag to deploy by setting this variable.
1154 # If no value is set, the chart's appVersion is used.
1158 # Setting a digest will override any tag.
1160 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1162 # Kubernetes imagePullPolicy on Deployment.
1163 pullPolicy: IfNotPresent
1166 digest: sha256:96919b7376a3846b51421275c0f41b34ce81acdb18227ad8d0571bedfcec646d
1167# +docs:section=Startup API Check
1168# This startupapicheck is a Helm post-install hook that waits for the webhook
1169# endpoints to become available.
1170# The check is implemented using a Kubernetes Job - if you are injecting mesh
1171# sidecar proxies into cert-manager pods, ensure that they
1172# are not injected into this Job's pod. Otherwise, the installation may time out
1173# owing to the Job never being completed because the sidecar proxy does not exit.
1174# For more information, see [this note](https://github.com/cert-manager/cert-manager/pull/4414).
1176 # Enables the startup api check.
1178 # Pod Security Context to be set on the startupapicheck component Pod.
1179 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1184 type: RuntimeDefault
1185 # Container Security Context to be set on the controller component container.
1186 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1188 containerSecurityContext:
1189 allowPrivilegeEscalation: false
1193 readOnlyRootFilesystem: true
1194 # Timeout for 'kubectl check api' command.
1198 # Optional additional annotations to add to the startupapicheck Job.
1201 helm.sh/hook: post-install
1202 helm.sh/hook-weight: "1"
1203 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1204 # Optional additional annotations to add to the startupapicheck Pods.
1206 # podAnnotations: {}
1208 # Additional command line flags to pass to startupapicheck binary.
1209 # To see all available flags run `docker run quay.io/jetstack/cert-manager-startupapicheck:<version> --help`.
1211 # Verbose logging is enabled by default so that if startupapicheck fails, you
1212 # can know what exactly caused the failure. Verbose logs include details of
1213 # the webhook URL, IP address and TCP connect errors for example.
1217 # Additional environment variables to pass to cert-manager startupapicheck binary.
1221 # value: 'some value'
1223 # Resources to provide to the cert-manager controller pod.
1230 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
1232 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
1234 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
1236 # This default ensures that Pods are only scheduled to Linux nodes.
1237 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
1240 kubernetes.io/os: linux
1241 # 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).
1245 # requiredDuringSchedulingIgnoredDuringExecution:
1246 # nodeSelectorTerms:
1247 # - matchExpressions:
1248 # - key: foo.bar.com/role
1253 # 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).
1257 # - key: foo.bar.com/role
1260 # effect: NoSchedule
1262 # Optional additional labels to add to the startupapicheck Pods.
1265 # The container registry to pull the startupapicheck image from.
1269 # The container image for the cert-manager startupapicheck.
1271 repository: chainguard-private/cert-manager-startupapicheck
1272 # Override the image tag to deploy by setting this variable.
1273 # If no value is set, the chart's appVersion is used.
1277 # Setting a digest will override any tag.
1279 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1281 # Kubernetes imagePullPolicy on Deployment.
1282 pullPolicy: IfNotPresent
1285 digest: sha256:f566e87b88862d26efd05492fd845266c3f3ab631f88e449d1d2508bfe04c39b
1287 # annotations for the startup API Check job RBAC and PSP resources.
1290 helm.sh/hook: post-install
1291 helm.sh/hook-weight: "-5"
1292 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1293 # Automounting API credentials for a particular pod.
1295 # automountServiceAccountToken: true
1297 # Specifies whether a service account should be created.
1299 # The name of the service account to use.
1300 # If not set and create is true, a name is generated using the fullname template.
1304 # Optional additional annotations to add to the Job's Service Account.
1307 helm.sh/hook: post-install
1308 helm.sh/hook-weight: "-5"
1309 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1310 # Automount API credentials for a Service Account.
1312 automountServiceAccountToken: true
1313 # Optional additional labels to add to the startupapicheck's Service Account.
1316 # Additional volumes to add to the cert-manager controller pod.
1318 # Additional volume mounts to add to the cert-manager controller container.
1320 # enableServiceLinks indicates whether information about services should be
1321 # injected into pod's environment variables, matching the syntax of Docker
1323 enableServiceLinks: false
1324# Create dynamic manifests via values.
1332# name: '{{ template "cert-manager.fullname" . }}-extra-configmap'
1334# Field used by our release pipeline to produce the static manifests.
1335# The field defaults to "helm" but is set to "static" when we render
1336# the static YAML manifests.
1339# Field that can be used as a condition when cert-manager is a dependency.
1340# This definition is only here as a placeholder such that it is included in
1342# See https://helm.sh/docs/chart_best_practices/dependencies/#conditions-and-tags