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 # Labels to apply to all resources.
15 # Please note that this does not add labels to the resources created dynamically by the controllers.
16 # For these resources, you have to add the labels in the template in the cert-manager custom resource:
17 # For example, podTemplate/ ingressTemplate in ACMEChallengeSolverHTTP01Ingress
18 # For more information, see the [cert-manager documentation](https://cert-manager.io/docs/reference/api-docs/#acme.cert-manager.io/v1.ACMEChallengeSolverHTTP01Ingress).
19 # For example, secretTemplate in CertificateSpec
20 # For more information, see the [cert-manager documentation](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec).
22 # The number of old ReplicaSets to retain to allow rollback (if not set, the default Kubernetes value is set to 10).
24 # revisionHistoryLimit: 1
26 # The optional priority class to be used for the cert-manager pods.
29 # Create required ClusterRoles and ClusterRoleBindings for cert-manager.
31 # 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)
32 aggregateClusterRoles: true
34 # Create PodSecurityPolicy for cert-manager.
36 # Note that PodSecurityPolicy was deprecated in Kubernetes 1.21 and removed in Kubernetes 1.25.
38 # Configure the PodSecurityPolicy to use AppArmor.
40 # Set the verbosity of cert-manager. A range of 0 - 6, with 6 being the most verbose.
43 # Override the namespace used for the leader election lease.
44 namespace: "kube-system"
45 # The duration that non-leader candidates will wait after observing a
46 # leadership renewal until attempting to acquire leadership of a led but
47 # unrenewed leader slot. This is effectively the maximum duration that a
48 # leader can be stopped before it is replaced by another candidate.
51# The interval between attempts by the acting master to renew a leadership
52# slot before it stops leading. This must be less than or equal to the
57# The duration the clients should wait between attempting acquisition and
58# renewal of a leadership.
62# This option is equivalent to setting crds.enabled=true and crds.keep=true.
63# Deprecated: use crds.enabled and crds.keep instead.
66 # This option decides if the CRDs should be installed
67 # as part of the Helm installation.
69 # This option makes it so that the "helm.sh/resource-policy": keep
70 # annotation is added to the CRD. This will prevent Helm from uninstalling
71 # the CRD when the Helm release is uninstalled.
72 # WARNING: when the CRDs are removed, all cert-manager custom resources
73 # (Certificates, Issuers, ...) will be removed too by the garbage collector.
75# +docs:section=Controller
77# The number of replicas of the cert-manager controller to run.
79# The default is 1, but in production set this to 2 or 3 to provide high
82# If `replicas > 1`, consider setting `podDisruptionBudget.enabled=true`.
84# Note that cert-manager uses leader election to ensure that there can
85# only be a single instance active at a time.
87# Deployment update strategy for the cert-manager controller deployment.
88# For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy).
98 # Enable or disable the PodDisruptionBudget resource.
100 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
101 # For example, the PodDisruptionBudget will block `kubectl drain`
102 # if it is used on the Node where the only remaining cert-manager
103 # Pod is currently running.
105 # This configures the minimum available pods for disruptions. It can either be set to
106 # an integer (e.g., 1) or a percentage value (e.g., 25%).
107 # It cannot be used if `maxUnavailable` is set.
111# This configures the maximum unavailable pods for disruptions. It can either be set to
112# an integer (e.g., 1) or a percentage value (e.g., 25%).
113# it cannot be used if `minAvailable` is set.
118# A comma-separated list of feature gates that should be enabled on the
121# The maximum number of challenges that can be scheduled as 'processing' at once.
122maxConcurrentChallenges: 60
124 # The container registry to pull the manager image from.
128 # The container image for the cert-manager controller.
130 repository: chainguard-private/cert-manager-controller
131 # Override the image tag to deploy by setting this variable.
132 # If no value is set, the chart's appVersion is used.
136 # Setting a digest will override any tag.
138 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
140 # Kubernetes imagePullPolicy on Deployment.
141 pullPolicy: IfNotPresent
142 registry: chainreg.biz
144 digest: sha256:15aa0a7514e1b5aa7e25aa12a7c45fe5694b12c1356dc8559a3f3d93223b1f00
145# Override the namespace used to store DNS provider credentials etc. for ClusterIssuer
146# resources. By default, the same namespace as cert-manager is deployed within is
147# used. This namespace will not be automatically created by the Helm chart.
148clusterResourceNamespace: ""
149# This namespace allows you to define where the services are installed into.
150# If not set then they use the namespace of the release.
151# This is helpful when installing cert manager as a chart dependency (sub chart).
153# Override the "cert-manager.fullname" value. This value is used as part of
154# most of the names of the resources created by this Helm chart.
156# fullnameOverride: "my-cert-manager"
158# Override the "cert-manager.name" value, which is used to annotate some of
159# the resources that are created by this Chart (using "app.kubernetes.io/name").
160# NOTE: There are some inconsistencies in the Helm chart when it comes to
161# these annotations (some resources use, e.g., "cainjector.name" which resolves
162# to the value "cainjector").
164# nameOverride: "my-cert-manager"
166 # Specifies whether a service account should be created.
168 # The name of the service account to use.
169 # If not set and create is true, a name is generated using the fullname template.
173 # Optional additional annotations to add to the controller's Service Account. Templates are allowed for both keys and values.
174 # Example using templating:
176 # "{{ .Chart.Name }}-helm-chart/version": "{{ .Chart.Version }}"
180 # Optional additional labels to add to the controller's Service Account.
184 # Automount API credentials for a Service Account.
185 automountServiceAccountToken: true
186# Automounting API credentials for a particular pod.
188# automountServiceAccountToken: true
190# When this flag is enabled, secrets will be automatically removed when the certificate resource is deleted.
191enableCertificateOwnerRef: false
192# This property is used to configure options for the controller pod.
193# This allows setting options that would usually be provided using flags.
195# If `apiVersion` and `kind` are unspecified they default to the current latest
196# version (currently `controller.config.cert-manager.io/v1alpha1`). You can pin
197# the version by specifying the `apiVersion` yourself.
201# apiVersion: controller.config.cert-manager.io/v1alpha1
202# kind: ControllerConfiguration
206# leaderElectionConfig:
207# namespace: kube-system
208# kubernetesAPIQPS: 9000
209# kubernetesAPIBurst: 9000
210# numberOfConcurrentWorkers: 200
211# enableGatewayAPI: true
212# # Feature gates as of v1.18.1. Listed with their default values.
213# # See https://cert-manager.io/docs/cli/controller/
215# AdditionalCertificateOutputFormats: true # GA - default=true
216# AllAlpha: false # ALPHA - default=false
217# AllBeta: false # BETA - default=false
218# ExperimentalCertificateSigningRequestControllers: false # ALPHA - default=false
219# ExperimentalGatewayAPISupport: true # BETA - default=true
220# LiteralCertificateSubject: true # BETA - default=true
221# NameConstraints: true # BETA - default=true
222# OtherNames: false # ALPHA - default=false
223# SecretsFilteredCaching: true # BETA - default=true
224# ServerSideApply: false # ALPHA - default=false
225# StableCertificateRequestName: true # BETA - default=true
226# UseCertificateRequestBasicConstraints: false # ALPHA - default=false
227# UseDomainQualifiedFinalizer: true # GA - default=true
228# ValidateCAA: false # ALPHA - default=false
229# DefaultPrivateKeyRotationPolicyAlways: true # BETA - default=true
230# ACMEHTTP01IngressPathTypeExact: true # BETA - default=true
231# # Configure the metrics server for TLS
232# # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
235# secretNamespace: "cert-manager"
236# secretName: "cert-manager-metrics-ca"
238# - cert-manager-metrics
240# Setting Nameservers for DNS01 Self Check.
241# For more information, see the [cert-manager documentation](https://cert-manager.io/docs/configuration/acme/dns01/#setting-nameservers-for-dns01-self-check).
243# A comma-separated string with the host and port of the recursive nameservers cert-manager should query.
244dns01RecursiveNameservers: ""
245# Forces cert-manager to use only the recursive nameservers for verification.
246# Enabling this option could cause the DNS01 self check to take longer owing to caching performed by the recursive nameservers.
247dns01RecursiveNameserversOnly: false
248# Option to disable cert-manager's build-in auto-approver. The auto-approver
249# approves all CertificateRequests that reference issuers matching the 'approveSignerNames'
250# option. This 'disableAutoApproval' option is useful when you want to make all approval decisions
251# using a different approver (like approver-policy - https://github.com/cert-manager/approver-policy).
252disableAutoApproval: false
253# List of signer names that cert-manager will approve by default. CertificateRequests
254# referencing these signer names will be auto-approved by cert-manager. Defaults to just
255# approving the cert-manager.io Issuer and ClusterIssuer issuers. When set to an empty
256# array, ALL issuers will be auto-approved by cert-manager. To disable the auto-approval,
257# because, e.g., you are using approver-policy, you can enable 'disableAutoApproval'.
258# ref: https://cert-manager.io/docs/concepts/certificaterequest/#approval
261 - issuers.cert-manager.io/*
262 - clusterissuers.cert-manager.io/*
263# Additional command line flags to pass to cert-manager controller binary.
264# To see all available flags run `docker run quay.io/jetstack/cert-manager-controller:<version> --help`.
266# Use this flag to enable or disable arbitrary controllers. For example, to disable the CertificateRequests approver.
270# - --controllers=*,-certificaterequests-approver
272# Additional environment variables to pass to cert-manager controller binary.
278# Resources to provide to the cert-manager controller pod.
285# For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
287# Pod Security Context.
288# For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
294# Container Security Context to be set on the controller component container.
295# For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
297containerSecurityContext:
298 allowPrivilegeEscalation: false
302 readOnlyRootFilesystem: true
303# Additional volumes to add to the cert-manager controller pod.
305# Additional volume mounts to add to the cert-manager controller container.
307# Optional additional annotations to add to the controller Deployment.
309# deploymentAnnotations: {}
311# Optional additional annotations to add to the controller Pods.
315# Optional additional labels to add to the controller Pods.
317# Optional annotations to add to the controller Service.
319# serviceAnnotations: {}
321# Optional additional labels to add to the controller Service.
325# 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).
327# serviceIPFamilyPolicy: ""
329# 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.
331# serviceIPFamilies: []
333# Optional DNS settings. These are useful if you have a public and private DNS zone for
334# the same domain on Route 53. The following is an example of ensuring
335# cert-manager can access an ingress or DNS TXT records at all times.
336# Note that this requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for
337# the cluster to work.
340# For more information, see [Pod's DNS Policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
342# podDnsPolicy: "None"
344# Pod DNS configuration. The podDnsConfig field is optional and can work with any podDnsPolicy
345# settings. However, when a Pod's dnsPolicy is set to "None", the dnsConfig field has to be specified.
346# For more information, see [Pod's DNS Config](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config).
353# Optional hostAliases for cert-manager-controller pods. May be useful when performing ACME DNS-01 self checks.
364# The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
366# For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
368# This default ensures that Pods are only scheduled to Linux nodes.
369# It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
372 kubernetes.io/os: linux
375# Optional default issuer to use for ingress resources.
376# +docs:property=ingressShim.defaultIssuerName
377# defaultIssuerName: ""
379# Optional default issuer kind to use for ingress resources.
380# +docs:property=ingressShim.defaultIssuerKind
381# defaultIssuerKind: ""
383# Optional default issuer group to use for ingress resources.
384# +docs:property=ingressShim.defaultIssuerGroup
385# defaultIssuerGroup: ""
387# Use these variables to configure the HTTP_PROXY environment variables.
389# Configures the HTTP_PROXY environment variable where a HTTP proxy is required.
391# http_proxy: "http://proxy:8080"
393# Configures the HTTPS_PROXY environment variable where a HTTP proxy is required.
395# https_proxy: "https://proxy:8080"
397# Configures the NO_PROXY environment variable where a HTTP proxy is required,
398# but certain domains should be excluded.
400# no_proxy: 127.0.0.1,localhost
402# 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).
407# requiredDuringSchedulingIgnoredDuringExecution:
410# - key: foo.bar.com/role
415# 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).
419# - key: foo.bar.com/role
424# 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
427# topologySpreadConstraints:
429# topologyKey: topology.kubernetes.io/zone
430# whenUnsatisfiable: ScheduleAnyway
433# app.kubernetes.io/instance: cert-manager
434# app.kubernetes.io/component: controller
435topologySpreadConstraints: []
436# LivenessProbe settings for the controller container of the controller Pod.
438# This is enabled by default, in order to enable the clock-skew liveness probe that
439# restarts the controller in case of a skew between the system clock and the monotonic clock.
440# LivenessProbe durations and thresholds are based on those used for the Kubernetes
441# controller-manager. For more information see the following on the
442# [Kubernetes GitHub repository](https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245)
446 initialDelaySeconds: 10
451# enableServiceLinks indicates whether information about services should be
452# injected into the pod's environment variables, matching the syntax of Docker
454enableServiceLinks: false
455# +docs:section=Prometheus
457 # Enable Prometheus monitoring for the cert-manager controller and webhook.
458 # If you use the Prometheus Operator, set prometheus.podmonitor.enabled or
459 # prometheus.servicemonitor.enabled, to create a PodMonitor or a
460 # ServiceMonitor resource.
461 # Otherwise, 'prometheus.io' annotations are added to the cert-manager and
462 # cert-manager-webhook Deployments.
463 # Note that you cannot enable both PodMonitor and ServiceMonitor as they are
464 # mutually exclusive. Enabling both will result in an error.
467 # Create a ServiceMonitor to add cert-manager to Prometheus.
469 # The namespace that the service monitor should live in, defaults
470 # to the cert-manager namespace.
472 # namespace: cert-manager
474 # Specifies the `prometheus` label on the created ServiceMonitor. This is
475 # used when different Prometheus instances have label selectors matching
476 # different ServiceMonitors.
477 prometheusInstance: default
478 # The target port to set on the ServiceMonitor. This must match the port that the
479 # cert-manager controller is listening on for metrics.
480 # +docs:type=string,integer
481 targetPort: http-metrics
482 # The path to scrape for metrics.
484 # The interval to scrape metrics.
486 # The timeout before a metrics scrape fails.
488 # Additional labels to add to the ServiceMonitor.
490 # Additional annotations to add to the ServiceMonitor.
492 # Keep labels from scraped data, overriding server-side labels.
494 # EndpointAdditionalProperties allows setting additional properties on the
495 # endpoint such as relabelings, metricRelabelings etc.
498 # endpointAdditionalProperties:
502 # - __meta_kubernetes_pod_node_name
503 # targetLabel: instance
506 endpointAdditionalProperties: {}
507 # Note that you cannot enable both PodMonitor and ServiceMonitor as they are mutually exclusive. Enabling both will result in an error.
509 # Create a PodMonitor to add cert-manager to Prometheus.
511 # The namespace that the pod monitor should live in, defaults
512 # to the cert-manager namespace.
514 # namespace: cert-manager
516 # Specifies the `prometheus` label on the created PodMonitor. This is
517 # used when different Prometheus instances have label selectors matching
518 # different PodMonitors.
519 prometheusInstance: default
520 # The path to scrape for metrics.
522 # The interval to scrape metrics.
524 # The timeout before a metrics scrape fails.
526 # Additional labels to add to the PodMonitor.
528 # Additional annotations to add to the PodMonitor.
530 # Keep labels from scraped data, overriding server-side labels.
532 # EndpointAdditionalProperties allows setting additional properties on the
533 # endpoint such as relabelings, metricRelabelings etc.
536 # endpointAdditionalProperties:
540 # - __meta_kubernetes_pod_node_name
541 # targetLabel: instance
542 # # Configure the PodMonitor for TLS connections
543 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
546 # serverName: cert-manager-metrics
549 # name: cert-manager-metrics-ca
553 endpointAdditionalProperties: {}
554# +docs:section=Webhook
556 # Number of replicas of the cert-manager webhook to run.
558 # The default is 1, but in production set this to 2 or 3 to provide high
561 # If `replicas > 1`, consider setting `webhook.podDisruptionBudget.enabled=true`.
563 # The number of seconds the API server should wait for the webhook to respond before treating the call as a failure.
564 # The value must be between 1 and 30 seconds. For more information, see
565 # [Validating webhook configuration v1](https://kubernetes.io/docs/reference/kubernetes-api/extend-resources/validating-webhook-configuration-v1/).
567 # The default is set to the maximum value of 30 seconds as
568 # users sometimes report that the connection between the K8S API server and
569 # the cert-manager webhook server times out.
570 # If *this* timeout is reached, the error message will be "context deadline exceeded",
571 # which doesn't help the user diagnose what phase of the HTTPS connection timed out.
572 # For example, it could be during DNS resolution, TCP connection, TLS
573 # negotiation, HTTP negotiation, or slow HTTP response from the webhook
575 # By setting this timeout to its maximum value the underlying timeout error
576 # message has more chance of being returned to the end user.
578 # This is used to configure options for the webhook pod.
579 # This allows setting options that would usually be provided using flags.
581 # If `apiVersion` and `kind` are unspecified they default to the current latest
582 # version (currently `webhook.config.cert-manager.io/v1alpha1`). You can pin
583 # the version by specifying the `apiVersion` yourself.
586 # apiVersion: webhook.config.cert-manager.io/v1alpha1
587 # kind: WebhookConfiguration
588 # # The port that the webhook listens on for requests.
589 # # In GKE private clusters, by default Kubernetes apiservers are allowed to
590 # # talk to the cluster nodes only on 443 and 10250. Configuring
591 # # securePort: 10250 therefore will work out-of-the-box without needing to add firewall
592 # # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers < 1000.
593 # # This should be uncommented and set as a default by the chart once
594 # # the apiVersion of WebhookConfiguration graduates beyond v1alpha1.
596 # # Configure the metrics server for TLS
597 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
600 # secretNamespace: "cert-manager"
601 # secretName: "cert-manager-metrics-ca"
603 # - cert-manager-metrics
605 # The update strategy for the cert-manager webhook deployment.
606 # For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy)
610 # type: RollingUpdate
615 # Pod Security Context to be set on the webhook component Pod.
616 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
622 # Container Security Context to be set on the webhook component container.
623 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
625 containerSecurityContext:
626 allowPrivilegeEscalation: false
630 readOnlyRootFilesystem: true
632 # Enable or disable the PodDisruptionBudget resource.
634 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
635 # For example, the PodDisruptionBudget will block `kubectl drain`
636 # if it is used on the Node where the only remaining cert-manager
637 # Pod is currently running.
639 # This property configures the minimum available pods for disruptions. Can either be set to
640 # an integer (e.g., 1) or a percentage value (e.g., 25%).
641 # It cannot be used if `maxUnavailable` is set.
645 # This property configures the maximum unavailable pods for disruptions. Can either be set to
646 # an integer (e.g., 1) or a percentage value (e.g., 25%).
647 # It cannot be used if `minAvailable` is set.
652 # Optional additional annotations to add to the webhook Deployment.
654 # deploymentAnnotations: {}
656 # Optional additional annotations to add to the webhook Pods.
660 # Optional additional annotations to add to the webhook Service.
662 # serviceAnnotations: {}
664 # Optional additional annotations to add to the webhook MutatingWebhookConfiguration.
666 # mutatingWebhookConfigurationAnnotations: {}
668 # Optional additional annotations to add to the webhook ValidatingWebhookConfiguration.
670 # validatingWebhookConfigurationAnnotations: {}
671 validatingWebhookConfiguration:
672 # Configure spec.namespaceSelector for validating webhooks.
676 - key: "cert-manager.io/disable-validation"
680 mutatingWebhookConfiguration:
681 # Configure spec.namespaceSelector for mutating webhooks.
683 namespaceSelector: {}
687 # - key: kubernetes.io/metadata.name
691 # Additional command line flags to pass to cert-manager webhook binary.
692 # To see all available flags run `docker run quay.io/jetstack/cert-manager-webhook:<version> --help`.
694 # Path to a file containing a WebhookConfiguration object used to configure the webhook.
695 # - --config=<path-to-config-file>
697 # Additional environment variables to pass to cert-manager webhook binary.
701 # value: 'some value'
703 # Comma separated list of feature gates that should be enabled on the
706 # Resources to provide to the cert-manager webhook pod.
713 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
715 # Liveness probe values.
716 # For more information, see [Container probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
721 initialDelaySeconds: 60
725 # Readiness probe values.
726 # For more information, see [Container probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
731 initialDelaySeconds: 5
735 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
737 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
739 # This default ensures that Pods are only scheduled to Linux nodes.
740 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
743 kubernetes.io/os: linux
744 # 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).
749 # requiredDuringSchedulingIgnoredDuringExecution:
751 # - matchExpressions:
752 # - key: foo.bar.com/role
757 # 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).
761 # - key: foo.bar.com/role
766 # 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).
769 # topologySpreadConstraints:
771 # topologyKey: topology.kubernetes.io/zone
772 # whenUnsatisfiable: ScheduleAnyway
775 # app.kubernetes.io/instance: cert-manager
776 # app.kubernetes.io/component: controller
777 topologySpreadConstraints: []
778 # Optional additional labels to add to the Webhook Pods.
780 # Optional additional labels to add to the Webhook Service.
782 # 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).
783 serviceIPFamilyPolicy: ""
784 # 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.
785 serviceIPFamilies: []
787 # The container registry to pull the webhook image from.
791 # The container image for the cert-manager webhook
793 repository: chainguard-private/cert-manager-webhook
794 # Override the image tag to deploy by setting this variable.
795 # If no value is set, the chart's appVersion will be used.
799 # Setting a digest will override any tag
801 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
803 # Kubernetes imagePullPolicy on Deployment.
804 pullPolicy: IfNotPresent
805 registry: chainreg.biz
807 digest: sha256:64b5bff1ad90a5eb2233e15e76d58dda61731678b99a0d89c75588bff6bc3faa
809 # Specifies whether a service account should be created.
811 # The name of the service account to use.
812 # If not set and create is true, a name is generated using the fullname template.
816 # Optional additional annotations to add to the webhook's Service Account.
820 # Optional additional labels to add to the webhook's Service Account.
824 # Automount API credentials for a Service Account.
825 automountServiceAccountToken: true
826 # Automounting API credentials for a particular pod.
828 # automountServiceAccountToken: true
830 # The port that the webhook listens on for requests.
831 # In GKE private clusters, by default Kubernetes apiservers are allowed to
832 # talk to the cluster nodes only on 443 and 10250. Configuring
833 # securePort: 10250, therefore will work out-of-the-box without needing to add firewall
834 # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000.
836 # Specifies if the webhook should be started in hostNetwork mode.
838 # Required for use in some managed kubernetes clusters (such as AWS EKS) with custom
839 # CNI (such as calico), because control-plane managed by AWS cannot communicate
840 # with pods' IP CIDR and admission webhooks are not working
842 # Since the default port for the webhook conflicts with kubelet on the host
843 # network, `webhook.securePort` should be changed to an available port if
844 # running in hostNetwork mode.
846 # Specifies how the service should be handled. Useful if you want to expose the
847 # webhook outside of the cluster. In some cases, the control plane cannot
848 # reach internal services.
849 serviceType: ClusterIP
850 # Specify the load balancer IP for the created service.
852 # loadBalancerIP: "10.10.10.10"
854 # Overrides the mutating webhook and validating webhook so they reach the webhook
855 # service using the `url` field instead of a service.
859 # Enables default network policies for webhooks.
861 # Create network policies for the webhooks.
863 # Ingress rule for the webhook network policy. By default, it allows all
870 # Egress rule for the webhook network policy. By default, it allows all
871 # outbound traffic to ports 80 and 443, as well as DNS ports.
883 # On OpenShift and OKD, the Kubernetes API server listens on.
890 # Additional volumes to add to the cert-manager controller pod.
892 # Additional volume mounts to add to the cert-manager controller container.
894 # enableServiceLinks indicates whether information about services should be
895 # injected into the pod's environment variables, matching the syntax of Docker
897 enableServiceLinks: false
898# +docs:section=CA Injector
900 # Create the CA Injector deployment
902 # The number of replicas of the cert-manager cainjector to run.
904 # The default is 1, but in production set this to 2 or 3 to provide high
907 # If `replicas > 1`, consider setting `cainjector.podDisruptionBudget.enabled=true`.
909 # Note that cert-manager uses leader election to ensure that there can
910 # only be a single instance active at a time.
912 # This is used to configure options for the cainjector pod.
913 # It allows setting options that are usually provided via flags.
915 # If `apiVersion` and `kind` are unspecified they default to the current latest
916 # version (currently `cainjector.config.cert-manager.io/v1alpha1`). You can pin
917 # the version by specifying the `apiVersion` yourself.
920 # apiVersion: cainjector.config.cert-manager.io/v1alpha1
921 # kind: CAInjectorConfiguration
925 # leaderElectionConfig:
926 # namespace: kube-system
927 # # Configure the metrics server for TLS
928 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
931 # secretNamespace: "cert-manager"
932 # secretName: "cert-manager-metrics-ca"
934 # - cert-manager-metrics
936 # Deployment update strategy for the cert-manager cainjector deployment.
937 # For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy).
941 # type: RollingUpdate
946 # Pod Security Context to be set on the cainjector component Pod
947 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
953 # Container Security Context to be set on the cainjector component container
954 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
956 containerSecurityContext:
957 allowPrivilegeEscalation: false
961 readOnlyRootFilesystem: true
963 # Enable or disable the PodDisruptionBudget resource.
965 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
966 # For example, the PodDisruptionBudget will block `kubectl drain`
967 # if it is used on the Node where the only remaining cert-manager
968 # Pod is currently running.
970 # `minAvailable` configures the minimum available pods for disruptions. It can either be set to
971 # an integer (e.g., 1) or a percentage value (e.g., 25%).
972 # Cannot be used if `maxUnavailable` is set.
976 # `maxUnavailable` configures the maximum unavailable pods for disruptions. It can either be set to
977 # an integer (e.g., 1) or a percentage value (e.g., 25%).
978 # Cannot be used if `minAvailable` is set.
983 # Optional additional annotations to add to the cainjector Deployment.
985 # deploymentAnnotations: {}
987 # Optional additional annotations to add to the cainjector Pods.
991 # Optional additional annotations to add to the cainjector metrics Service.
993 # serviceAnnotations: {}
995 # Additional command line flags to pass to cert-manager cainjector binary.
996 # To see all available flags run `docker run quay.io/jetstack/cert-manager-cainjector:<version> --help`.
998 # Enable profiling for cainjector.
999 # - --enable-profiling=true
1001 # Additional environment variables to pass to cert-manager cainjector binary.
1005 # value: 'some value'
1007 # Comma separated list of feature gates that should be enabled on the
1010 # Resources to provide to the cert-manager cainjector pod.
1017 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
1019 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
1021 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
1023 # This default ensures that Pods are only scheduled to Linux nodes.
1024 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
1027 kubernetes.io/os: linux
1028 # 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).
1033 # requiredDuringSchedulingIgnoredDuringExecution:
1034 # nodeSelectorTerms:
1035 # - matchExpressions:
1036 # - key: foo.bar.com/role
1041 # 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).
1045 # - key: foo.bar.com/role
1048 # effect: NoSchedule
1050 # 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).
1053 # topologySpreadConstraints:
1055 # topologyKey: topology.kubernetes.io/zone
1056 # whenUnsatisfiable: ScheduleAnyway
1059 # app.kubernetes.io/instance: cert-manager
1060 # app.kubernetes.io/component: controller
1061 topologySpreadConstraints: []
1062 # Optional additional labels to add to the CA Injector Pods.
1064 # Optional additional labels to add to the CA Injector metrics Service.
1067 # The container registry to pull the cainjector image from.
1071 # The container image for the cert-manager cainjector
1073 repository: chainguard-private/cert-manager-cainjector
1074 # Override the image tag to deploy by setting this variable.
1075 # If no value is set, the chart's appVersion will be used.
1079 # Setting a digest will override any tag.
1081 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1083 # Kubernetes imagePullPolicy on Deployment.
1084 pullPolicy: IfNotPresent
1085 registry: chainreg.biz
1087 digest: sha256:29ab7d71313225a31528d3e0af28983e34f2fd96501edc47206a9cdd09553de9
1089 # Specifies whether a service account should be created.
1091 # The name of the service account to use.
1092 # If not set and create is true, a name is generated using the fullname template
1096 # Optional additional annotations to add to the cainjector's Service Account.
1100 # Optional additional labels to add to the cainjector's Service Account.
1104 # Automount API credentials for a Service Account.
1105 automountServiceAccountToken: true
1106 # Automounting API credentials for a particular pod.
1108 # automountServiceAccountToken: true
1110 # Additional volumes to add to the cert-manager controller pod.
1112 # Additional volume mounts to add to the cert-manager controller container.
1114 # enableServiceLinks indicates whether information about services should be
1115 # injected into the pod's environment variables, matching the syntax of Docker
1117 enableServiceLinks: false
1118# +docs:section=ACME Solver
1121 # The container registry to pull the acmesolver image from.
1125 # The container image for the cert-manager acmesolver.
1127 repository: chainguard-private/cert-manager-acmesolver
1128 # Override the image tag to deploy by setting this variable.
1129 # If no value is set, the chart's appVersion is used.
1133 # Setting a digest will override any tag.
1135 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1137 # Kubernetes imagePullPolicy on Deployment.
1138 pullPolicy: IfNotPresent
1139 registry: chainreg.biz
1141 digest: sha256:8ec27d7b6a35e503ad657eab4d8ceb0b240d06e4f2bb659afb68e2cf1f515a28
1142# +docs:section=Startup API Check
1143# This startupapicheck is a Helm post-install hook that waits for the webhook
1144# endpoints to become available.
1145# The check is implemented using a Kubernetes Job - if you are injecting mesh
1146# sidecar proxies into cert-manager pods, ensure that they
1147# are not injected into this Job's pod. Otherwise, the installation may time out
1148# owing to the Job never being completed because the sidecar proxy does not exit.
1149# For more information, see [this note](https://github.com/cert-manager/cert-manager/pull/4414).
1151 # Enables the startup api check.
1153 # Pod Security Context to be set on the startupapicheck component Pod.
1154 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1159 type: RuntimeDefault
1160 # Container Security Context to be set on the controller component container.
1161 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1163 containerSecurityContext:
1164 allowPrivilegeEscalation: false
1168 readOnlyRootFilesystem: true
1169 # Timeout for 'kubectl check api' command.
1173 # Optional additional annotations to add to the startupapicheck Job.
1176 helm.sh/hook: post-install
1177 helm.sh/hook-weight: "1"
1178 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1179 # Optional additional annotations to add to the startupapicheck Pods.
1181 # podAnnotations: {}
1183 # Additional command line flags to pass to startupapicheck binary.
1184 # To see all available flags run `docker run quay.io/jetstack/cert-manager-startupapicheck:<version> --help`.
1186 # Verbose logging is enabled by default so that if startupapicheck fails, you
1187 # can know what exactly caused the failure. Verbose logs include details of
1188 # the webhook URL, IP address and TCP connect errors for example.
1192 # Additional environment variables to pass to cert-manager startupapicheck binary.
1196 # value: 'some value'
1198 # Resources to provide to the cert-manager controller pod.
1205 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
1207 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
1209 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
1211 # This default ensures that Pods are only scheduled to Linux nodes.
1212 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
1215 kubernetes.io/os: linux
1216 # 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).
1220 # requiredDuringSchedulingIgnoredDuringExecution:
1221 # nodeSelectorTerms:
1222 # - matchExpressions:
1223 # - key: foo.bar.com/role
1228 # 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).
1232 # - key: foo.bar.com/role
1235 # effect: NoSchedule
1237 # Optional additional labels to add to the startupapicheck Pods.
1240 # The container registry to pull the startupapicheck image from.
1244 # The container image for the cert-manager startupapicheck.
1246 repository: chainguard-private/cert-manager-startupapicheck
1247 # Override the image tag to deploy by setting this variable.
1248 # If no value is set, the chart's appVersion is used.
1252 # Setting a digest will override any tag.
1254 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1256 # Kubernetes imagePullPolicy on Deployment.
1257 pullPolicy: IfNotPresent
1258 registry: chainreg.biz
1260 digest: sha256:1b8550a65afd768fffba88a9d097b78de7a0b8520a1b859a554f965ba702adab
1262 # annotations for the startup API Check job RBAC and PSP resources.
1265 helm.sh/hook: post-install
1266 helm.sh/hook-weight: "-5"
1267 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1268 # Automounting API credentials for a particular pod.
1270 # automountServiceAccountToken: true
1272 # Specifies whether a service account should be created.
1274 # The name of the service account to use.
1275 # If not set and create is true, a name is generated using the fullname template.
1279 # Optional additional annotations to add to the Job's Service Account.
1282 helm.sh/hook: post-install
1283 helm.sh/hook-weight: "-5"
1284 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1285 # Automount API credentials for a Service Account.
1287 automountServiceAccountToken: true
1288 # Optional additional labels to add to the startupapicheck's Service Account.
1291 # Additional volumes to add to the cert-manager controller pod.
1293 # Additional volume mounts to add to the cert-manager controller container.
1295 # enableServiceLinks indicates whether information about services should be
1296 # injected into pod's environment variables, matching the syntax of Docker
1298 enableServiceLinks: false
1299# Create dynamic manifests via values.
1307# name: '{{ template "cert-manager.fullname" . }}-extra-configmap'
1309# Field used by our release pipeline to produce the static manifests.
1310# The field defaults to "helm" but is set to "static" when we render
1311# the static YAML manifests.
1314# Field that can be used as a condition when cert-manager is a dependency.
1315# This definition is only here as a placeholder such that it is included in
1317# See https://helm.sh/docs/chart_best_practices/dependencies/#conditions-and-tags