blob: 54257c79e8b1b7422233f6745390dabefdfa1f32 [file] [log] [blame]
gio15aa6632026-07-23 17:14:23 +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# A comma-separated list of feature gates that should be enabled on the
157# controller pod.
158featureGates: ""
159
160# The maximum number of challenges that can be scheduled as 'processing' at once.
161maxConcurrentChallenges: 60
162
163image:
164 # The container registry to pull the manager image from.
165 # +docs:property
166 # registry: quay.io
167
168 # The container image for the cert-manager controller.
169 # +docs:property
170 repository: quay.io/jetstack/cert-manager-controller
171
172 # Override the image tag to deploy by setting this variable.
173 # If no value is set, the chart's appVersion is used.
174 # +docs:property
175 # tag: vX.Y.Z
176
177 # Setting a digest will override any tag.
178 # +docs:property
179 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
180
181 # Kubernetes imagePullPolicy on Deployment.
182 pullPolicy: IfNotPresent
183
184# Override the namespace used to store DNS provider credentials etc. for ClusterIssuer
185# resources. By default, the same namespace as cert-manager is deployed within is
186# used. This namespace will not be automatically created by the Helm chart.
187clusterResourceNamespace: ""
188
189# This namespace allows you to define where the services are installed into.
190# If not set then they use the namespace of the release.
191# This is helpful when installing cert manager as a chart dependency (sub chart).
192namespace: ""
193
194# Override the "cert-manager.fullname" value. This value is used as part of
195# most of the names of the resources created by this Helm chart.
196# +docs:property
197# fullnameOverride: "my-cert-manager"
198
199# Override the "cert-manager.name" value, which is used to annotate some of
200# the resources that are created by this Chart (using "app.kubernetes.io/name").
201# NOTE: There are some inconsistencies in the Helm chart when it comes to
202# these annotations (some resources use, e.g., "cainjector.name" which resolves
203# to the value "cainjector").
204# +docs:property
205# nameOverride: "my-cert-manager"
206
207serviceAccount:
208 # Specifies whether a service account should be created.
209 create: true
210
211 # The name of the service account to use.
212 # If not set and create is true, a name is generated using the fullname template.
213 # +docs:property
214 # name: ""
215
216 # Optional additional annotations to add to the controller's Service Account. Templates are allowed for both keys and values.
217 # Example using templating:
218 # annotations:
219 # "{{ .Chart.Name }}-helm-chart/version": "{{ .Chart.Version }}"
220 # +docs:property
221 # annotations: {}
222
223 # Optional additional labels to add to the controller's Service Account.
224 # +docs:property
225 # labels: {}
226
227 # Automount API credentials for a Service Account.
228 automountServiceAccountToken: true
229
230# Automounting API credentials for a particular pod.
231# +docs:property
232# automountServiceAccountToken: true
233
234# When this flag is enabled, secrets will be automatically removed when the certificate resource is deleted.
235enableCertificateOwnerRef: false
236
237# This property is used to configure options for the controller pod.
238# This allows setting options that would usually be provided using flags.
239#
240# If `apiVersion` and `kind` are unspecified they default to the current latest
241# version (currently `controller.config.cert-manager.io/v1alpha1`). You can pin
242# the version by specifying the `apiVersion` yourself.
243#
244# For example:
245# config:
246# apiVersion: controller.config.cert-manager.io/v1alpha1
247# kind: ControllerConfiguration
248# logging:
249# verbosity: 2
250# format: text
251# leaderElectionConfig:
252# namespace: kube-system
253# kubernetesAPIQPS: 9000
254# kubernetesAPIBurst: 9000
255# numberOfConcurrentWorkers: 200
256# enableGatewayAPI: true
257# # Feature gates as of v1.18.1. Listed with their default values.
258# # See https://cert-manager.io/docs/cli/controller/
259# featureGates:
260# AdditionalCertificateOutputFormats: true # GA - default=true
261# AllAlpha: false # ALPHA - default=false
262# AllBeta: false # BETA - default=false
263# ExperimentalCertificateSigningRequestControllers: false # ALPHA - default=false
264# ExperimentalGatewayAPISupport: true # BETA - default=true
265# LiteralCertificateSubject: true # BETA - default=true
266# NameConstraints: true # BETA - default=true
267# OtherNames: false # ALPHA - default=false
268# SecretsFilteredCaching: true # BETA - default=true
269# ServerSideApply: false # ALPHA - default=false
270# StableCertificateRequestName: true # BETA - default=true
271# UseCertificateRequestBasicConstraints: false # ALPHA - default=false
272# UseDomainQualifiedFinalizer: true # GA - default=true
273# ValidateCAA: false # ALPHA - default=false
274# DefaultPrivateKeyRotationPolicyAlways: true # BETA - default=true
275# ACMEHTTP01IngressPathTypeExact: true # BETA - default=true
276# # Configure the metrics server for TLS
277# # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
278# metricsTLSConfig:
279# dynamic:
280# secretNamespace: "cert-manager"
281# secretName: "cert-manager-metrics-ca"
282# dnsNames:
283# - cert-manager-metrics
284config: {}
285
286# Setting Nameservers for DNS01 Self Check.
287# For more information, see the [cert-manager documentation](https://cert-manager.io/docs/configuration/acme/dns01/#setting-nameservers-for-dns01-self-check).
288
289# A comma-separated string with the host and port of the recursive nameservers cert-manager should query.
290dns01RecursiveNameservers: ""
291
292# Forces cert-manager to use only the recursive nameservers for verification.
293# Enabling this option could cause the DNS01 self check to take longer owing to caching performed by the recursive nameservers.
294dns01RecursiveNameserversOnly: false
295
296# Option to disable cert-manager's build-in auto-approver. The auto-approver
297# approves all CertificateRequests that reference issuers matching the 'approveSignerNames'
298# option. This 'disableAutoApproval' option is useful when you want to make all approval decisions
299# using a different approver (like approver-policy - https://github.com/cert-manager/approver-policy).
300disableAutoApproval: false
301
302# List of signer names that cert-manager will approve by default. CertificateRequests
303# referencing these signer names will be auto-approved by cert-manager. Defaults to just
304# approving the cert-manager.io Issuer and ClusterIssuer issuers. When set to an empty
305# array, ALL issuers will be auto-approved by cert-manager. To disable the auto-approval,
306# because, e.g., you are using approver-policy, you can enable 'disableAutoApproval'.
307# ref: https://cert-manager.io/docs/concepts/certificaterequest/#approval
308# +docs:property
309approveSignerNames:
310- issuers.cert-manager.io/*
311- clusterissuers.cert-manager.io/*
312
313# Additional command line flags to pass to cert-manager controller binary.
314# To see all available flags run `docker run quay.io/jetstack/cert-manager-controller:<version> --help`.
315#
316# Use this flag to enable or disable arbitrary controllers. For example, to disable the CertificateRequests approver.
317#
318# For example:
319# extraArgs:
320# - --controllers=*,-certificaterequests-approver
321extraArgs: []
322
323# Additional environment variables to pass to cert-manager controller binary.
324# For example:
325# extraEnv:
326# - name: SOME_VAR
327# value: 'some value'
328extraEnv: []
329
330# Resources to provide to the cert-manager controller pod.
331#
332# For example:
333# requests:
334# cpu: 10m
335# memory: 32Mi
336#
337# For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
338resources: {}
339
340# Pod Security Context.
341# For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
342# +docs:property
343securityContext:
344 runAsNonRoot: true
345 seccompProfile:
346 type: RuntimeDefault
347
348# Container Security Context to be set on the controller component container.
349# For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
350# +docs:property
351containerSecurityContext:
352 allowPrivilegeEscalation: false
353 capabilities:
354 drop:
355 - ALL
356 readOnlyRootFilesystem: true
357
358# Additional volumes to add to the cert-manager controller pod.
359volumes: []
360
361# Additional volume mounts to add to the cert-manager controller container.
362volumeMounts: []
363
364# Optional additional annotations to add to the controller Deployment.
365# +docs:property
366# deploymentAnnotations: {}
367
368# Optional additional annotations to add to the controller Pods.
369# +docs:property
370# podAnnotations: {}
371
372# Optional additional labels to add to the controller Pods.
373podLabels: {}
374
375# Optional annotations to add to the controller Service.
376# +docs:property
377# serviceAnnotations: {}
378
379# Optional additional labels to add to the controller Service.
380# +docs:property
381# serviceLabels: {}
382
383# 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).
384# +docs:property
385# serviceIPFamilyPolicy: ""
386
387# 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.
388# +docs:property
389# serviceIPFamilies: []
390
391# Optional DNS settings. These are useful if you have a public and private DNS zone for
392# the same domain on Route 53. The following is an example of ensuring
393# cert-manager can access an ingress or DNS TXT records at all times.
394# Note that this requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for
395# the cluster to work.
396
397# Pod DNS policy.
398# For more information, see [Pod's DNS Policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
399# +docs:property
400# podDnsPolicy: "None"
401
402# Pod DNS configuration. The podDnsConfig field is optional and can work with any podDnsPolicy
403# settings. However, when a Pod's dnsPolicy is set to "None", the dnsConfig field has to be specified.
404# For more information, see [Pod's DNS Config](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config).
405# +docs:property
406# podDnsConfig:
407# nameservers:
408# - "1.1.1.1"
409# - "8.8.8.8"
410
411# Optional hostAliases for cert-manager-controller pods. May be useful when performing ACME DNS-01 self checks.
412hostAliases: []
413# - ip: 127.0.0.1
414# hostnames:
415# - foo.local
416# - bar.local
417# - ip: 10.1.2.3
418# hostnames:
419# - foo.remote
420# - bar.remote
421
422# The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
423# matching labels.
424# For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
425#
426# This default ensures that Pods are only scheduled to Linux nodes.
427# It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
428# +docs:property
429nodeSelector:
430 kubernetes.io/os: linux
431
432# +docs:ignore
433ingressShim: {}
434
435 # Optional default issuer to use for ingress resources.
436 # +docs:property=ingressShim.defaultIssuerName
437 # defaultIssuerName: ""
438
439 # Optional default issuer kind to use for ingress resources.
440 # +docs:property=ingressShim.defaultIssuerKind
441 # defaultIssuerKind: ""
442
443 # Optional default issuer group to use for ingress resources.
444 # +docs:property=ingressShim.defaultIssuerGroup
445 # defaultIssuerGroup: ""
446
447# Use these variables to configure the HTTP_PROXY environment variables.
448
449# Configures the HTTP_PROXY environment variable where a HTTP proxy is required.
450# +docs:property
451# http_proxy: "http://proxy:8080"
452
453# Configures the HTTPS_PROXY environment variable where a HTTP proxy is required.
454# +docs:property
455# https_proxy: "https://proxy:8080"
456
457# Configures the NO_PROXY environment variable where a HTTP proxy is required,
458# but certain domains should be excluded.
459# +docs:property
460# no_proxy: 127.0.0.1,localhost
461
462# 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).
463#
464# For example:
465# affinity:
466# nodeAffinity:
467# requiredDuringSchedulingIgnoredDuringExecution:
468# nodeSelectorTerms:
469# - matchExpressions:
470# - key: foo.bar.com/role
471# operator: In
472# values:
473# - master
474affinity: {}
475
476# 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).
477#
478# For example:
479# tolerations:
480# - key: foo.bar.com/role
481# operator: Equal
482# value: master
483# effect: NoSchedule
484tolerations: []
485
486# 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
487#
488# For example:
489# topologySpreadConstraints:
490# - maxSkew: 2
491# topologyKey: topology.kubernetes.io/zone
492# whenUnsatisfiable: ScheduleAnyway
493# labelSelector:
494# matchLabels:
495# app.kubernetes.io/instance: cert-manager
496# app.kubernetes.io/component: controller
497topologySpreadConstraints: []
498
499# LivenessProbe settings for the controller container of the controller Pod.
500#
501# This is enabled by default, in order to enable the clock-skew liveness probe that
502# restarts the controller in case of a skew between the system clock and the monotonic clock.
503# LivenessProbe durations and thresholds are based on those used for the Kubernetes
504# controller-manager. For more information see the following on the
505# [Kubernetes GitHub repository](https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245)
506# +docs:property
507livenessProbe:
508 enabled: true
509 initialDelaySeconds: 10
510 periodSeconds: 10
511 timeoutSeconds: 15
512 successThreshold: 1
513 failureThreshold: 8
514
515# enableServiceLinks indicates whether information about services should be
516# injected into the pod's environment variables, matching the syntax of Docker
517# links.
518enableServiceLinks: false
519
520# +docs:section=Prometheus
521
522prometheus:
523 # Enable Prometheus monitoring for the cert-manager controller and webhook.
524 # If you use the Prometheus Operator, set prometheus.podmonitor.enabled or
525 # prometheus.servicemonitor.enabled, to create a PodMonitor or a
526 # ServiceMonitor resource.
527 # Otherwise, 'prometheus.io' annotations are added to the cert-manager and
528 # cert-manager-webhook Deployments.
529 # Note that you cannot enable both PodMonitor and ServiceMonitor as they are
530 # mutually exclusive. Enabling both will result in an error.
531 enabled: true
532
533 servicemonitor:
534 # Create a ServiceMonitor to add cert-manager to Prometheus.
535 enabled: false
536
537 # The namespace that the service monitor should live in, defaults
538 # to the cert-manager namespace.
539 # +docs:property
540 # namespace: cert-manager
541
542 # Specifies the `prometheus` label on the created ServiceMonitor. This is
543 # used when different Prometheus instances have label selectors matching
544 # different ServiceMonitors.
545 prometheusInstance: default
546
547 # The target port to set on the ServiceMonitor. This must match the port that the
548 # cert-manager controller is listening on for metrics.
549 # +docs:type=string,integer
550 targetPort: http-metrics
551
552 # The path to scrape for metrics.
553 path: /metrics
554
555 # The interval to scrape metrics.
556 interval: 60s
557
558 # The timeout before a metrics scrape fails.
559 scrapeTimeout: 30s
560
561 # Additional labels to add to the ServiceMonitor.
562 labels: {}
563
564 # Additional annotations to add to the ServiceMonitor.
565 annotations: {}
566
567 # Keep labels from scraped data, overriding server-side labels.
568 honorLabels: false
569
570 # EndpointAdditionalProperties allows setting additional properties on the
571 # endpoint such as relabelings, metricRelabelings etc.
572 #
573 # For example:
574 # endpointAdditionalProperties:
575 # relabelings:
576 # - action: replace
577 # sourceLabels:
578 # - __meta_kubernetes_pod_node_name
579 # targetLabel: instance
580 #
581 # +docs:property
582 endpointAdditionalProperties: {}
583
584 # Note that you cannot enable both PodMonitor and ServiceMonitor as they are mutually exclusive. Enabling both will result in an error.
585 podmonitor:
586 # Create a PodMonitor to add cert-manager to Prometheus.
587 enabled: false
588
589 # The namespace that the pod monitor should live in, defaults
590 # to the cert-manager namespace.
591 # +docs:property
592 # namespace: cert-manager
593
594 # Specifies the `prometheus` label on the created PodMonitor. This is
595 # used when different Prometheus instances have label selectors matching
596 # different PodMonitors.
597 prometheusInstance: default
598
599 # The path to scrape for metrics.
600 path: /metrics
601
602 # The interval to scrape metrics.
603 interval: 60s
604
605 # The timeout before a metrics scrape fails.
606 scrapeTimeout: 30s
607
608 # Additional labels to add to the PodMonitor.
609 labels: {}
610
611 # Additional annotations to add to the PodMonitor.
612 annotations: {}
613
614 # Keep labels from scraped data, overriding server-side labels.
615 honorLabels: false
616
617 # EndpointAdditionalProperties allows setting additional properties on the
618 # endpoint such as relabelings, metricRelabelings etc.
619 #
620 # For example:
621 # endpointAdditionalProperties:
622 # relabelings:
623 # - action: replace
624 # sourceLabels:
625 # - __meta_kubernetes_pod_node_name
626 # targetLabel: instance
627 # # Configure the PodMonitor for TLS connections
628 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
629 # scheme: https
630 # tlsConfig:
631 # serverName: cert-manager-metrics
632 # ca:
633 # secret:
634 # name: cert-manager-metrics-ca
635 # key: "tls.crt"
636 #
637 # +docs:property
638 endpointAdditionalProperties: {}
639
640# +docs:section=Webhook
641
642webhook:
643 # Number of replicas of the cert-manager webhook to run.
644 #
645 # The default is 1, but in production set this to 2 or 3 to provide high
646 # availability.
647 #
648 # If `replicas > 1`, consider setting `webhook.podDisruptionBudget.enabled=true`.
649 replicaCount: 1
650
651 # The number of seconds the API server should wait for the webhook to respond before treating the call as a failure.
652 # The value must be between 1 and 30 seconds. For more information, see
653 # [Validating webhook configuration v1](https://kubernetes.io/docs/reference/kubernetes-api/extend-resources/validating-webhook-configuration-v1/).
654 #
655 # The default is set to the maximum value of 30 seconds as
656 # users sometimes report that the connection between the K8S API server and
657 # the cert-manager webhook server times out.
658 # If *this* timeout is reached, the error message will be "context deadline exceeded",
659 # which doesn't help the user diagnose what phase of the HTTPS connection timed out.
660 # For example, it could be during DNS resolution, TCP connection, TLS
661 # negotiation, HTTP negotiation, or slow HTTP response from the webhook
662 # server.
663 # By setting this timeout to its maximum value the underlying timeout error
664 # message has more chance of being returned to the end user.
665 timeoutSeconds: 30
666
667 # This is used to configure options for the webhook pod.
668 # This allows setting options that would usually be provided using flags.
669 #
670 # If `apiVersion` and `kind` are unspecified they default to the current latest
671 # version (currently `webhook.config.cert-manager.io/v1alpha1`). You can pin
672 # the version by specifying the `apiVersion` yourself.
673 #
674 # For example:
675 # apiVersion: webhook.config.cert-manager.io/v1alpha1
676 # kind: WebhookConfiguration
677 # # The port that the webhook listens on for requests.
678 # # In GKE private clusters, by default Kubernetes apiservers are allowed to
679 # # talk to the cluster nodes only on 443 and 10250. Configuring
680 # # securePort: 10250 therefore will work out-of-the-box without needing to add firewall
681 # # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers < 1000.
682 # # This should be uncommented and set as a default by the chart once
683 # # the apiVersion of WebhookConfiguration graduates beyond v1alpha1.
684 # securePort: 10250
685 # # Configure the metrics server for TLS
686 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
687 # metricsTLSConfig:
688 # dynamic:
689 # secretNamespace: "cert-manager"
690 # secretName: "cert-manager-metrics-ca"
691 # dnsNames:
692 # - cert-manager-metrics
693 config: {}
694
695 # The update strategy for the cert-manager webhook deployment.
696 # For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy)
697 #
698 # For example:
699 # strategy:
700 # type: RollingUpdate
701 # rollingUpdate:
702 # maxSurge: 0
703 # maxUnavailable: 1
704 strategy: {}
705
706 # Pod Security Context to be set on the webhook component Pod.
707 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
708 # +docs:property
709 securityContext:
710 runAsNonRoot: true
711 seccompProfile:
712 type: RuntimeDefault
713
714 # Container Security Context to be set on the webhook component container.
715 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
716 # +docs:property
717 containerSecurityContext:
718 allowPrivilegeEscalation: false
719 capabilities:
720 drop:
721 - ALL
722 readOnlyRootFilesystem: true
723
724 podDisruptionBudget:
725 # Enable or disable the PodDisruptionBudget resource.
726 #
727 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
728 # For example, the PodDisruptionBudget will block `kubectl drain`
729 # if it is used on the Node where the only remaining cert-manager
730 # Pod is currently running.
731 enabled: false
732
733 # This property configures the minimum available pods for disruptions. Can either be set to
734 # an integer (e.g., 1) or a percentage value (e.g., 25%).
735 # It cannot be used if `maxUnavailable` is set.
736 # +docs:property
737 # +docs:type=unknown
738 # minAvailable: 1
739
740 # This property configures the maximum unavailable pods for disruptions. Can either be set to
741 # an integer (e.g., 1) or a percentage value (e.g., 25%).
742 # It cannot be used if `minAvailable` is set.
743 # +docs:property
744 # +docs:type=unknown
745 # maxUnavailable: 1
746
747 # Optional additional annotations to add to the webhook Deployment.
748 # +docs:property
749 # deploymentAnnotations: {}
750
751 # Optional additional annotations to add to the webhook Pods.
752 # +docs:property
753 # podAnnotations: {}
754
755 # Optional additional annotations to add to the webhook Service.
756 # +docs:property
757 # serviceAnnotations: {}
758
759 # Optional additional annotations to add to the webhook MutatingWebhookConfiguration.
760 # +docs:property
761 # mutatingWebhookConfigurationAnnotations: {}
762
763 # Optional additional annotations to add to the webhook ValidatingWebhookConfiguration.
764 # +docs:property
765 # validatingWebhookConfigurationAnnotations: {}
766
767 validatingWebhookConfiguration:
768 # Configure spec.namespaceSelector for validating webhooks.
769 # +docs:property
770 namespaceSelector:
771 matchExpressions:
772 - key: "cert-manager.io/disable-validation"
773 operator: "NotIn"
774 values:
775 - "true"
776
777 mutatingWebhookConfiguration:
778 # Configure spec.namespaceSelector for mutating webhooks.
779 # +docs:property
780 namespaceSelector: {}
781 # matchLabels:
782 # key: value
783 # matchExpressions:
784 # - key: kubernetes.io/metadata.name
785 # operator: NotIn
786 # values:
787 # - kube-system
788
789
790 # Additional command line flags to pass to cert-manager webhook binary.
791 # To see all available flags run `docker run quay.io/jetstack/cert-manager-webhook:<version> --help`.
792 extraArgs: []
793 # Path to a file containing a WebhookConfiguration object used to configure the webhook.
794 # - --config=<path-to-config-file>
795
796 # Additional environment variables to pass to cert-manager webhook binary.
797 # For example:
798 # extraEnv:
799 # - name: SOME_VAR
800 # value: 'some value'
801 extraEnv: []
802
803 # Comma separated list of feature gates that should be enabled on the
804 # webhook pod.
805 featureGates: ""
806
807 # Resources to provide to the cert-manager webhook pod.
808 #
809 # For example:
810 # requests:
811 # cpu: 10m
812 # memory: 32Mi
813 #
814 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
815 resources: {}
816
817 # Liveness probe values.
818 # For more information, see [Container probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
819 #
820 # +docs:property
821 livenessProbe:
822 failureThreshold: 3
823 initialDelaySeconds: 60
824 periodSeconds: 10
825 successThreshold: 1
826 timeoutSeconds: 1
827
828 # Readiness probe values.
829 # For more information, see [Container probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
830 #
831 # +docs:property
832 readinessProbe:
833 failureThreshold: 3
834 initialDelaySeconds: 5
835 periodSeconds: 5
836 successThreshold: 1
837 timeoutSeconds: 1
838
839 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
840 # matching labels.
841 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
842 #
843 # This default ensures that Pods are only scheduled to Linux nodes.
844 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
845 # +docs:property
846 nodeSelector:
847 kubernetes.io/os: linux
848
849 # 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).
850 #
851 # For example:
852 # affinity:
853 # nodeAffinity:
854 # requiredDuringSchedulingIgnoredDuringExecution:
855 # nodeSelectorTerms:
856 # - matchExpressions:
857 # - key: foo.bar.com/role
858 # operator: In
859 # values:
860 # - master
861 affinity: {}
862
863 # 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).
864 #
865 # For example:
866 # tolerations:
867 # - key: foo.bar.com/role
868 # operator: Equal
869 # value: master
870 # effect: NoSchedule
871 tolerations: []
872
873 # 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).
874 #
875 # For example:
876 # topologySpreadConstraints:
877 # - maxSkew: 2
878 # topologyKey: topology.kubernetes.io/zone
879 # whenUnsatisfiable: ScheduleAnyway
880 # labelSelector:
881 # matchLabels:
882 # app.kubernetes.io/instance: cert-manager
883 # app.kubernetes.io/component: controller
884 topologySpreadConstraints: []
885
886 # Optional additional labels to add to the Webhook Pods.
887 podLabels: {}
888
889 # Optional additional labels to add to the Webhook Service.
890 serviceLabels: {}
891
892 # 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).
893 serviceIPFamilyPolicy: ""
894
895 # 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.
896 serviceIPFamilies: []
897
898 image:
899 # The container registry to pull the webhook image from.
900 # +docs:property
901 # registry: quay.io
902
903 # The container image for the cert-manager webhook
904 # +docs:property
905 repository: quay.io/jetstack/cert-manager-webhook
906
907 # Override the image tag to deploy by setting this variable.
908 # If no value is set, the chart's appVersion will be used.
909 # +docs:property
910 # tag: vX.Y.Z
911
912 # Setting a digest will override any tag
913 # +docs:property
914 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
915
916 # Kubernetes imagePullPolicy on Deployment.
917 pullPolicy: IfNotPresent
918
919 serviceAccount:
920 # Specifies whether a service account should be created.
921 create: true
922
923 # The name of the service account to use.
924 # If not set and create is true, a name is generated using the fullname template.
925 # +docs:property
926 # name: ""
927
928 # Optional additional annotations to add to the webhook's Service Account.
929 # +docs:property
930 # annotations: {}
931
932 # Optional additional labels to add to the webhook's Service Account.
933 # +docs:property
934 # labels: {}
935
936 # Automount API credentials for a Service Account.
937 automountServiceAccountToken: true
938
939 # Automounting API credentials for a particular pod.
940 # +docs:property
941 # automountServiceAccountToken: true
942
943 # The port that the webhook listens on for requests.
944 # In GKE private clusters, by default Kubernetes apiservers are allowed to
945 # talk to the cluster nodes only on 443 and 10250. Configuring
946 # securePort: 10250, therefore will work out-of-the-box without needing to add firewall
947 # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000.
948 securePort: 10250
949
950 # Specifies if the webhook should be started in hostNetwork mode.
951 #
952 # Required for use in some managed kubernetes clusters (such as AWS EKS) with custom
953 # CNI (such as calico), because control-plane managed by AWS cannot communicate
954 # with pods' IP CIDR and admission webhooks are not working
955 #
956 # Since the default port for the webhook conflicts with kubelet on the host
957 # network, `webhook.securePort` should be changed to an available port if
958 # running in hostNetwork mode.
959 hostNetwork: false
960
961 # Specifies how the service should be handled. Useful if you want to expose the
962 # webhook outside of the cluster. In some cases, the control plane cannot
963 # reach internal services.
964 serviceType: ClusterIP
965
966 # Specify the load balancer IP for the created service.
967 # +docs:property
968 # loadBalancerIP: "10.10.10.10"
969
970 # Overrides the mutating webhook and validating webhook so they reach the webhook
971 # service using the `url` field instead of a service.
972 url: {}
973 # host:
974
975 # Enables default network policies for webhooks.
976 networkPolicy:
977 # Create network policies for the webhooks.
978 enabled: false
979
980 # Ingress rule for the webhook network policy. By default, it allows all
981 # inbound traffic.
982 # +docs:property
983 ingress:
984 - from:
985 - ipBlock:
986 cidr: 0.0.0.0/0
987 - ipBlock:
988 cidr: "::/0"
989
990 # Egress rule for the webhook network policy. By default, it allows all
991 # outbound traffic to ports 80 and 443, as well as DNS ports.
992 # +docs:property
993 egress:
994 - ports:
995 - port: 80
996 protocol: TCP
997 - port: 443
998 protocol: TCP
999 - port: 53
1000 protocol: TCP
1001 - port: 53
1002 protocol: UDP
1003 # On OpenShift and OKD, the Kubernetes API server listens on.
1004 # port 6443.
1005 - port: 6443
1006 protocol: TCP
1007 to:
1008 - ipBlock:
1009 cidr: 0.0.0.0/0
1010 - ipBlock:
1011 cidr: "::/0"
1012
1013 # Additional volumes to add to the cert-manager controller pod.
1014 volumes: []
1015
1016 # Additional volume mounts to add to the cert-manager controller container.
1017 volumeMounts: []
1018
1019 # enableServiceLinks indicates whether information about services should be
1020 # injected into the pod's environment variables, matching the syntax of Docker
1021 # links.
1022 enableServiceLinks: false
1023
1024# +docs:section=CA Injector
1025
1026cainjector:
1027 # Create the CA Injector deployment
1028 enabled: true
1029
1030 # The number of replicas of the cert-manager cainjector to run.
1031 #
1032 # The default is 1, but in production set this to 2 or 3 to provide high
1033 # availability.
1034 #
1035 # If `replicas > 1`, consider setting `cainjector.podDisruptionBudget.enabled=true`.
1036 #
1037 # Note that cert-manager uses leader election to ensure that there can
1038 # only be a single instance active at a time.
1039 replicaCount: 1
1040
1041 # This is used to configure options for the cainjector pod.
1042 # It allows setting options that are usually provided via flags.
1043 #
1044 # If `apiVersion` and `kind` are unspecified they default to the current latest
1045 # version (currently `cainjector.config.cert-manager.io/v1alpha1`). You can pin
1046 # the version by specifying the `apiVersion` yourself.
1047 #
1048 # For example:
1049 # apiVersion: cainjector.config.cert-manager.io/v1alpha1
1050 # kind: CAInjectorConfiguration
1051 # logging:
1052 # verbosity: 2
1053 # format: text
1054 # leaderElectionConfig:
1055 # namespace: kube-system
1056 # # Configure the metrics server for TLS
1057 # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
1058 # metricsTLSConfig:
1059 # dynamic:
1060 # secretNamespace: "cert-manager"
1061 # secretName: "cert-manager-metrics-ca"
1062 # dnsNames:
1063 # - cert-manager-metrics
1064 config: {}
1065
1066 # Deployment update strategy for the cert-manager cainjector deployment.
1067 # For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy).
1068 #
1069 # For example:
1070 # strategy:
1071 # type: RollingUpdate
1072 # rollingUpdate:
1073 # maxSurge: 0
1074 # maxUnavailable: 1
1075 strategy: {}
1076
1077 # Pod Security Context to be set on the cainjector component Pod
1078 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1079 # +docs:property
1080 securityContext:
1081 runAsNonRoot: true
1082 seccompProfile:
1083 type: RuntimeDefault
1084
1085 # Container Security Context to be set on the cainjector component container
1086 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1087 # +docs:property
1088 containerSecurityContext:
1089 allowPrivilegeEscalation: false
1090 capabilities:
1091 drop:
1092 - ALL
1093 readOnlyRootFilesystem: true
1094
1095 podDisruptionBudget:
1096 # Enable or disable the PodDisruptionBudget resource.
1097 #
1098 # This prevents downtime during voluntary disruptions such as during a Node upgrade.
1099 # For example, the PodDisruptionBudget will block `kubectl drain`
1100 # if it is used on the Node where the only remaining cert-manager
1101 # Pod is currently running.
1102 enabled: false
1103
1104 # `minAvailable` configures the minimum available pods for disruptions. It can either be set to
1105 # an integer (e.g., 1) or a percentage value (e.g., 25%).
1106 # Cannot be used if `maxUnavailable` is set.
1107 # +docs:property
1108 # +docs:type=unknown
1109 # minAvailable: 1
1110
1111 # `maxUnavailable` configures the maximum unavailable pods for disruptions. It can either be set to
1112 # an integer (e.g., 1) or a percentage value (e.g., 25%).
1113 # Cannot be used if `minAvailable` is set.
1114 # +docs:property
1115 # +docs:type=unknown
1116 # maxUnavailable: 1
1117
1118 # Optional additional annotations to add to the cainjector Deployment.
1119 # +docs:property
1120 # deploymentAnnotations: {}
1121
1122 # Optional additional annotations to add to the cainjector Pods.
1123 # +docs:property
1124 # podAnnotations: {}
1125
1126 # Optional additional annotations to add to the cainjector metrics Service.
1127 # +docs:property
1128 # serviceAnnotations: {}
1129
1130 # Additional command line flags to pass to cert-manager cainjector binary.
1131 # To see all available flags run `docker run quay.io/jetstack/cert-manager-cainjector:<version> --help`.
1132 extraArgs: []
1133 # Enable profiling for cainjector.
1134 # - --enable-profiling=true
1135
1136 # Additional environment variables to pass to cert-manager cainjector binary.
1137 # For example:
1138 # extraEnv:
1139 # - name: SOME_VAR
1140 # value: 'some value'
1141 extraEnv: []
1142
1143 # Comma separated list of feature gates that should be enabled on the
1144 # cainjector pod.
1145 featureGates: ""
1146
1147 # Resources to provide to the cert-manager cainjector pod.
1148 #
1149 # For example:
1150 # requests:
1151 # cpu: 10m
1152 # memory: 32Mi
1153 #
1154 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
1155 resources: {}
1156
1157
1158 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
1159 # matching labels.
1160 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
1161 #
1162 # This default ensures that Pods are only scheduled to Linux nodes.
1163 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
1164 # +docs:property
1165 nodeSelector:
1166 kubernetes.io/os: linux
1167
1168 # 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).
1169 #
1170 # For example:
1171 # affinity:
1172 # nodeAffinity:
1173 # requiredDuringSchedulingIgnoredDuringExecution:
1174 # nodeSelectorTerms:
1175 # - matchExpressions:
1176 # - key: foo.bar.com/role
1177 # operator: In
1178 # values:
1179 # - master
1180 affinity: {}
1181
1182 # 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).
1183 #
1184 # For example:
1185 # tolerations:
1186 # - key: foo.bar.com/role
1187 # operator: Equal
1188 # value: master
1189 # effect: NoSchedule
1190 tolerations: []
1191
1192 # 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).
1193 #
1194 # For example:
1195 # topologySpreadConstraints:
1196 # - maxSkew: 2
1197 # topologyKey: topology.kubernetes.io/zone
1198 # whenUnsatisfiable: ScheduleAnyway
1199 # labelSelector:
1200 # matchLabels:
1201 # app.kubernetes.io/instance: cert-manager
1202 # app.kubernetes.io/component: controller
1203 topologySpreadConstraints: []
1204
1205 # Optional additional labels to add to the CA Injector Pods.
1206 podLabels: {}
1207
1208 # Optional additional labels to add to the CA Injector metrics Service.
1209 serviceLabels: {}
1210
1211 image:
1212 # The container registry to pull the cainjector image from.
1213 # +docs:property
1214 # registry: quay.io
1215
1216 # The container image for the cert-manager cainjector
1217 # +docs:property
1218 repository: quay.io/jetstack/cert-manager-cainjector
1219
1220 # Override the image tag to deploy by setting this variable.
1221 # If no value is set, the chart's appVersion will be used.
1222 # +docs:property
1223 # tag: vX.Y.Z
1224
1225 # Setting a digest will override any tag.
1226 # +docs:property
1227 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1228
1229 # Kubernetes imagePullPolicy on Deployment.
1230 pullPolicy: IfNotPresent
1231
1232 serviceAccount:
1233 # Specifies whether a service account should be created.
1234 create: true
1235
1236 # The name of the service account to use.
1237 # If not set and create is true, a name is generated using the fullname template
1238 # +docs:property
1239 # name: ""
1240
1241 # Optional additional annotations to add to the cainjector's Service Account.
1242 # +docs:property
1243 # annotations: {}
1244
1245 # Optional additional labels to add to the cainjector's Service Account.
1246 # +docs:property
1247 # labels: {}
1248
1249 # Automount API credentials for a Service Account.
1250 automountServiceAccountToken: true
1251
1252 # Automounting API credentials for a particular pod.
1253 # +docs:property
1254 # automountServiceAccountToken: true
1255
1256 # Additional volumes to add to the cert-manager controller pod.
1257 volumes: []
1258
1259 # Additional volume mounts to add to the cert-manager controller container.
1260 volumeMounts: []
1261
1262 # enableServiceLinks indicates whether information about services should be
1263 # injected into the pod's environment variables, matching the syntax of Docker
1264 # links.
1265 enableServiceLinks: false
1266
1267# +docs:section=ACME Solver
1268
1269acmesolver:
1270 image:
1271 # The container registry to pull the acmesolver image from.
1272 # +docs:property
1273 # registry: quay.io
1274
1275 # The container image for the cert-manager acmesolver.
1276 # +docs:property
1277 repository: quay.io/jetstack/cert-manager-acmesolver
1278
1279 # Override the image tag to deploy by setting this variable.
1280 # If no value is set, the chart's appVersion is used.
1281 # +docs:property
1282 # tag: vX.Y.Z
1283
1284 # Setting a digest will override any tag.
1285 # +docs:property
1286 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1287
1288 # Kubernetes imagePullPolicy on Deployment.
1289 pullPolicy: IfNotPresent
1290
1291# +docs:section=Startup API Check
1292# This startupapicheck is a Helm post-install hook that waits for the webhook
1293# endpoints to become available.
1294# The check is implemented using a Kubernetes Job - if you are injecting mesh
1295# sidecar proxies into cert-manager pods, ensure that they
1296# are not injected into this Job's pod. Otherwise, the installation may time out
1297# owing to the Job never being completed because the sidecar proxy does not exit.
1298# For more information, see [this note](https://github.com/cert-manager/cert-manager/pull/4414).
1299
1300startupapicheck:
1301 # Enables the startup api check.
1302 enabled: true
1303
1304 # Pod Security Context to be set on the startupapicheck component Pod.
1305 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1306 # +docs:property
1307 securityContext:
1308 runAsNonRoot: true
1309 seccompProfile:
1310 type: RuntimeDefault
1311
1312 # Container Security Context to be set on the controller component container.
1313 # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
1314 # +docs:property
1315 containerSecurityContext:
1316 allowPrivilegeEscalation: false
1317 capabilities:
1318 drop:
1319 - ALL
1320 readOnlyRootFilesystem: true
1321
1322 # Timeout for 'kubectl check api' command.
1323 timeout: 1m
1324
1325 # Job backoffLimit
1326 backoffLimit: 4
1327
1328 # Optional additional annotations to add to the startupapicheck Job.
1329 # +docs:property
1330 jobAnnotations:
1331 helm.sh/hook: post-install
1332 helm.sh/hook-weight: "1"
1333 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1334
1335 # Optional additional annotations to add to the startupapicheck Pods.
1336 # +docs:property
1337 # podAnnotations: {}
1338
1339 # Additional command line flags to pass to startupapicheck binary.
1340 # To see all available flags run `docker run quay.io/jetstack/cert-manager-startupapicheck:<version> --help`.
1341 #
1342 # Verbose logging is enabled by default so that if startupapicheck fails, you
1343 # can know what exactly caused the failure. Verbose logs include details of
1344 # the webhook URL, IP address and TCP connect errors for example.
1345 # +docs:property
1346 extraArgs:
1347 - -v
1348
1349 # Additional environment variables to pass to cert-manager startupapicheck binary.
1350 # For example:
1351 # extraEnv:
1352 # - name: SOME_VAR
1353 # value: 'some value'
1354 extraEnv: []
1355
1356 # Resources to provide to the cert-manager controller pod.
1357 #
1358 # For example:
1359 # requests:
1360 # cpu: 10m
1361 # memory: 32Mi
1362 #
1363 # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
1364 resources: {}
1365
1366
1367 # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
1368 # matching labels.
1369 # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
1370 #
1371 # This default ensures that Pods are only scheduled to Linux nodes.
1372 # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
1373 # +docs:property
1374 nodeSelector:
1375 kubernetes.io/os: linux
1376
1377 # 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).
1378 # For example:
1379 # affinity:
1380 # nodeAffinity:
1381 # requiredDuringSchedulingIgnoredDuringExecution:
1382 # nodeSelectorTerms:
1383 # - matchExpressions:
1384 # - key: foo.bar.com/role
1385 # operator: In
1386 # values:
1387 # - master
1388 affinity: {}
1389
1390 # 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).
1391 #
1392 # For example:
1393 # tolerations:
1394 # - key: foo.bar.com/role
1395 # operator: Equal
1396 # value: master
1397 # effect: NoSchedule
1398 tolerations: []
1399
1400 # Optional additional labels to add to the startupapicheck Pods.
1401 podLabels: {}
1402
1403 image:
1404 # The container registry to pull the startupapicheck image from.
1405 # +docs:property
1406 # registry: quay.io
1407
1408 # The container image for the cert-manager startupapicheck.
1409 # +docs:property
1410 repository: quay.io/jetstack/cert-manager-startupapicheck
1411
1412 # Override the image tag to deploy by setting this variable.
1413 # If no value is set, the chart's appVersion is used.
1414 # +docs:property
1415 # tag: vX.Y.Z
1416
1417 # Setting a digest will override any tag.
1418 # +docs:property
1419 # digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
1420
1421 # Kubernetes imagePullPolicy on Deployment.
1422 pullPolicy: IfNotPresent
1423
1424 rbac:
1425 # annotations for the startup API Check job RBAC and PSP resources.
1426 # +docs:property
1427 annotations:
1428 helm.sh/hook: post-install
1429 helm.sh/hook-weight: "-5"
1430 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1431
1432 # Automounting API credentials for a particular pod.
1433 # +docs:property
1434 # automountServiceAccountToken: true
1435
1436 serviceAccount:
1437 # Specifies whether a service account should be created.
1438 create: true
1439
1440 # The name of the service account to use.
1441 # If not set and create is true, a name is generated using the fullname template.
1442 # +docs:property
1443 # name: ""
1444
1445 # Optional additional annotations to add to the Job's Service Account.
1446 # +docs:property
1447 annotations:
1448 helm.sh/hook: post-install
1449 helm.sh/hook-weight: "-5"
1450 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
1451
1452 # Automount API credentials for a Service Account.
1453 # +docs:property
1454 automountServiceAccountToken: true
1455
1456 # Optional additional labels to add to the startupapicheck's Service Account.
1457 # +docs:property
1458 # labels: {}
1459
1460 # Additional volumes to add to the cert-manager controller pod.
1461 volumes: []
1462
1463 # Additional volume mounts to add to the cert-manager controller container.
1464 volumeMounts: []
1465
1466 # enableServiceLinks indicates whether information about services should be
1467 # injected into pod's environment variables, matching the syntax of Docker
1468 # links.
1469 enableServiceLinks: false
1470
1471# Create dynamic manifests via values.
1472#
1473# For example:
1474# extraObjects:
1475# - |
1476# apiVersion: v1
1477# kind: ConfigMap
1478# metadata:
1479# name: '{{ template "cert-manager.fullname" . }}-extra-configmap'
1480extraObjects: []
1481
1482# Field used by our release pipeline to produce the static manifests.
1483# The field defaults to "helm" but is set to "static" when we render
1484# the static YAML manifests.
1485# +docs:hidden
1486creator: "helm"
1487
1488# Field that can be used as a condition when cert-manager is a dependency.
1489# This definition is only here as a placeholder such that it is included in
1490# the json schema.
1491# See https://helm.sh/docs/chart_best_practices/dependencies/#conditions-and-tags
1492# for more info.
1493# +docs:hidden
1494enabled: true