cert-manager: upgrade from 1.12.17 to 1.17.4
Change-Id: Iea0d6eac22a57f9f1fc522e6abdd9359fbbd1415
diff --git a/charts/cert-manager/values.yaml b/charts/cert-manager/values.yaml
index 66df39a..a8c94f8 100644
--- a/charts/cert-manager/values.yaml
+++ b/charts/cert-manager/values.yaml
@@ -1,96 +1,161 @@
+# +docs:section=Global
+
# Default values for cert-manager.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global:
- # Reference to one or more secrets to be used when pulling images
- # ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
+ # Reference to one or more secrets to be used when pulling images.
+ # For more information, see [Pull an Image from a Private Registry](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/).
+ #
+ # For example:
+ # imagePullSecrets:
+ # - name: "image-pull-secret"
imagePullSecrets: []
- # - name: "image-pull-secret"
- # Labels to apply to all resources
+ # Labels to apply to all resources.
# Please note that this does not add labels to the resources created dynamically by the controllers.
# For these resources, you have to add the labels in the template in the cert-manager custom resource:
- # eg. podTemplate/ ingressTemplate in ACMEChallengeSolverHTTP01Ingress
- # ref: https://cert-manager.io/docs/reference/api-docs/#acme.cert-manager.io/v1.ACMEChallengeSolverHTTP01Ingress
- # eg. secretTemplate in CertificateSpec
- # ref: https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
+ # For example, podTemplate/ ingressTemplate in ACMEChallengeSolverHTTP01Ingress
+ # For more information, see the [cert-manager documentation](https://cert-manager.io/docs/reference/api-docs/#acme.cert-manager.io/v1.ACMEChallengeSolverHTTP01Ingress).
+ # For example, secretTemplate in CertificateSpec
+ # For more information, see the [cert-manager documentation](https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec).
commonLabels: {}
- # team_name: dev
- # Optional priority class to be used for the cert-manager pods
+ # The number of old ReplicaSets to retain to allow rollback (if not set, the default Kubernetes value is set to 10).
+ # +docs:property
+ # revisionHistoryLimit: 1
+
+ # The optional priority class to be used for the cert-manager pods.
priorityClassName: ""
+
rbac:
+ # Create required ClusterRoles and ClusterRoleBindings for cert-manager.
create: true
- # Aggregate ClusterRoles to Kubernetes default user-facing roles. Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles
+ # 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)
aggregateClusterRoles: true
podSecurityPolicy:
+ # Create PodSecurityPolicy for cert-manager.
+ #
+ # Note that PodSecurityPolicy was deprecated in Kubernetes 1.21 and removed in Kubernetes 1.25.
enabled: false
+ # Configure the PodSecurityPolicy to use AppArmor.
useAppArmor: true
- # Set the verbosity of cert-manager. Range of 0 - 6 with 6 being the most verbose.
+ # Set the verbosity of cert-manager. A range of 0 - 6, with 6 being the most verbose.
logLevel: 2
leaderElection:
- # Override the namespace used for the leader election lease
+ # Override the namespace used for the leader election lease.
namespace: "kube-system"
# The duration that non-leader candidates will wait after observing a
# leadership renewal until attempting to acquire leadership of a led but
# unrenewed leader slot. This is effectively the maximum duration that a
# leader can be stopped before it is replaced by another candidate.
+ # +docs:property
# leaseDuration: 60s
# The interval between attempts by the acting master to renew a leadership
# slot before it stops leading. This must be less than or equal to the
# lease duration.
+ # +docs:property
# renewDeadline: 40s
# The duration the clients should wait between attempting acquisition and
# renewal of a leadership.
+ # +docs:property
# retryPeriod: 15s
+# This option is equivalent to setting crds.enabled=true and crds.keep=true.
+# Deprecated: use crds.enabled and crds.keep instead.
installCRDs: false
-replicaCount: 1
-
-strategy: {}
- # type: RollingUpdate
- # rollingUpdate:
- # maxSurge: 0
- # maxUnavailable: 1
-
-podDisruptionBudget:
+crds:
+ # This option decides if the CRDs should be installed
+ # as part of the Helm installation.
enabled: false
- minAvailable: 1
+ # This option makes it so that the "helm.sh/resource-policy": keep
+ # annotation is added to the CRD. This will prevent Helm from uninstalling
+ # the CRD when the Helm release is uninstalled.
+ # WARNING: when the CRDs are removed, all cert-manager custom resources
+ # (Certificates, Issuers, ...) will be removed too by the garbage collector.
+ keep: true
+
+# +docs:section=Controller
+
+# The number of replicas of the cert-manager controller to run.
+#
+# The default is 1, but in production set this to 2 or 3 to provide high
+# availability.
+#
+# If `replicas > 1`, consider setting `podDisruptionBudget.enabled=true`.
+#
+# Note that cert-manager uses leader election to ensure that there can
+# only be a single instance active at a time.
+replicaCount: 1
+
+# Deployment update strategy for the cert-manager controller deployment.
+# For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy).
+#
+# For example:
+# strategy:
+# type: RollingUpdate
+# rollingUpdate:
+# maxSurge: 0
+# maxUnavailable: 1
+strategy: {}
+
+podDisruptionBudget:
+ # Enable or disable the PodDisruptionBudget resource.
+ #
+ # This prevents downtime during voluntary disruptions such as during a Node upgrade.
+ # For example, the PodDisruptionBudget will block `kubectl drain`
+ # if it is used on the Node where the only remaining cert-manager
+ # Pod is currently running.
+ enabled: false
+
+ # This configures the minimum available pods for disruptions. It can either be set to
+ # an integer (e.g. 1) or a percentage value (e.g. 25%).
+ # It cannot be used if `maxUnavailable` is set.
+ # +docs:property
+ # +docs:type=unknown
+ # minAvailable: 1
+
+ # This configures the maximum unavailable pods for disruptions. It can either be set to
+ # an integer (e.g. 1) or a percentage value (e.g. 25%).
+ # it cannot be used if `minAvailable` is set.
+ # +docs:property
+ # +docs:type=unknown
# maxUnavailable: 1
- # minAvailable and maxUnavailable can either be set to an integer (e.g. 1)
- # or a percentage value (e.g. 25%)
-
-# Comma separated list of feature gates that should be enabled on the controller
-# Note: do not use this field to pass feature gate values into webhook
-# component as this behaviour relies on a bug that will be fixed in cert-manager 1.13
-# https://github.com/cert-manager/cert-manager/pull/6093
-# Use webhook.extraArgs to pass --feature-gates flag directly instead.
+# A comma-separated list of feature gates that should be enabled on the
+# controller pod.
featureGates: ""
-# The maximum number of challenges that can be scheduled as 'processing' at once
+# The maximum number of challenges that can be scheduled as 'processing' at once.
maxConcurrentChallenges: 60
image:
- repository: quay.io/jetstack/cert-manager-controller
- # You can manage a registry with
+ # The container registry to pull the manager image from.
+ # +docs:property
# registry: quay.io
- # repository: jetstack/cert-manager-controller
+
+ # The container image for the cert-manager controller.
+ # +docs:property
+ repository: quay.io/jetstack/cert-manager-controller
# Override the image tag to deploy by setting this variable.
- # If no value is set, the chart's appVersion will be used.
- # tag: canary
+ # If no value is set, the chart's appVersion is used.
+ # +docs:property
+ # tag: vX.Y.Z
- # Setting a digest will override any tag
+ # Setting a digest will override any tag.
+ # +docs:property
# digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
+
+ # Kubernetes imagePullPolicy on Deployment.
pullPolicy: IfNotPresent
# Override the namespace used to store DNS provider credentials etc. for ClusterIssuer
@@ -98,130 +163,281 @@
# used. This namespace will not be automatically created by the Helm chart.
clusterResourceNamespace: ""
-# This namespace allows you to define where the services will be installed into
-# if not set then they will use the namespace of the release
-# This is helpful when installing cert manager as a chart dependency (sub chart)
+# This namespace allows you to define where the services are installed into.
+# If not set then they use the namespace of the release.
+# This is helpful when installing cert manager as a chart dependency (sub chart).
namespace: ""
+# Override the "cert-manager.fullname" value. This value is used as part of
+# most of the names of the resources created by this Helm chart.
+# +docs:property
+# fullnameOverride: "my-cert-manager"
+
+# Override the "cert-manager.name" value, which is used to annotate some of
+# the resources that are created by this Chart (using "app.kubernetes.io/name").
+# NOTE: There are some inconsistencies in the Helm chart when it comes to
+# these annotations (some resources use eg. "cainjector.name" which resolves
+# to the value "cainjector").
+# +docs:property
+# nameOverride: "my-cert-manager"
+
serviceAccount:
- # Specifies whether a service account should be created
+ # Specifies whether a service account should be created.
create: true
+
# The name of the service account to use.
- # If not set and create is true, a name is generated using the fullname template
+ # If not set and create is true, a name is generated using the fullname template.
+ # +docs:property
# name: ""
- # Optional additional annotations to add to the controller's ServiceAccount
+
+ # Optional additional annotations to add to the controller's Service Account. Templates are allowed for both keys and values.
+ # Example using templating:
+ # annotations:
+ # "{{ .Chart.Name }}-helm-chart/version": "{{ .Chart.Version }}"
+ # +docs:property
# annotations: {}
- # Automount API credentials for a Service Account.
- # Optional additional labels to add to the controller's ServiceAccount
+
+ # Optional additional labels to add to the controller's Service Account.
+ # +docs:property
# labels: {}
+
+ # Automount API credentials for a Service Account.
automountServiceAccountToken: true
-# Automounting API credentials for a particular pod
+# Automounting API credentials for a particular pod.
+# +docs:property
# automountServiceAccountToken: true
-# When this flag is enabled, secrets will be automatically removed when the certificate resource is deleted
+# When this flag is enabled, secrets will be automatically removed when the certificate resource is deleted.
enableCertificateOwnerRef: false
-# Setting Nameservers for DNS01 Self Check
-# See: https://cert-manager.io/docs/configuration/acme/dns01/#setting-nameservers-for-dns01-self-check
+# This property is used to configure options for the controller pod.
+# This allows setting options that would usually be provided using flags.
+#
+# If `apiVersion` and `kind` are unspecified they default to the current latest
+# version (currently `controller.config.cert-manager.io/v1alpha1`). You can pin
+# the version by specifying the `apiVersion` yourself.
+#
+# For example:
+# config:
+# apiVersion: controller.config.cert-manager.io/v1alpha1
+# kind: ControllerConfiguration
+# logging:
+# verbosity: 2
+# format: text
+# leaderElectionConfig:
+# namespace: kube-system
+# kubernetesAPIQPS: 9000
+# kubernetesAPIBurst: 9000
+# numberOfConcurrentWorkers: 200
+# enableGatewayAPI: true
+# # Feature gates as of v1.17.0. Listed with their default values.
+# # See https://cert-manager.io/docs/cli/controller/
+# featureGates:
+# AdditionalCertificateOutputFormats: true # BETA - default=true
+# AllAlpha: false # ALPHA - default=false
+# AllBeta: false # BETA - default=false
+# ExperimentalCertificateSigningRequestControllers: false # ALPHA - default=false
+# ExperimentalGatewayAPISupport: true # BETA - default=true
+# LiteralCertificateSubject: true # BETA - default=true
+# NameConstraints: true # BETA - default=true
+# OtherNames: false # ALPHA - default=false
+# SecretsFilteredCaching: true # BETA - default=true
+# ServerSideApply: false # ALPHA - default=false
+# StableCertificateRequestName: true # BETA - default=true
+# UseCertificateRequestBasicConstraints: false # ALPHA - default=false
+# UseDomainQualifiedFinalizer: true # BETA - default=false
+# ValidateCAA: false # ALPHA - default=false
+# # Configure the metrics server for TLS
+# # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
+# metricsTLSConfig:
+# dynamic:
+# secretNamespace: "cert-manager"
+# secretName: "cert-manager-metrics-ca"
+# dnsNames:
+# - cert-manager-metrics
+config: {}
-# Comma separated string with host and port of the recursive nameservers cert-manager should query
+# Setting Nameservers for DNS01 Self Check.
+# For more information, see the [cert-manager documentation](https://cert-manager.io/docs/configuration/acme/dns01/#setting-nameservers-for-dns01-self-check).
+
+# A comma-separated string with the host and port of the recursive nameservers cert-manager should query.
dns01RecursiveNameservers: ""
-# Forces cert-manager to only use the recursive nameservers for verification.
-# Enabling this option could cause the DNS01 self check to take longer due to caching performed by the recursive nameservers
+# Forces cert-manager to use only the recursive nameservers for verification.
+# Enabling this option could cause the DNS01 self check to take longer owing to caching performed by the recursive nameservers.
dns01RecursiveNameserversOnly: false
+# Option to disable cert-manager's build-in auto-approver. The auto-approver
+# approves all CertificateRequests that reference issuers matching the 'approveSignerNames'
+# option. This 'disableAutoApproval' option is useful when you want to make all approval decisions
+# using a different approver (like approver-policy - https://github.com/cert-manager/approver-policy).
+disableAutoApproval: false
+
+# List of signer names that cert-manager will approve by default. CertificateRequests
+# referencing these signer names will be auto-approved by cert-manager. Defaults to just
+# approving the cert-manager.io Issuer and ClusterIssuer issuers. When set to an empty
+# array, ALL issuers will be auto-approved by cert-manager. To disable the auto-approval,
+# because eg. you are using approver-policy, you can enable 'disableAutoApproval'.
+# ref: https://cert-manager.io/docs/concepts/certificaterequest/#approval
+# +docs:property
+approveSignerNames:
+- issuers.cert-manager.io/*
+- clusterissuers.cert-manager.io/*
+
# Additional command line flags to pass to cert-manager controller binary.
-# To see all available flags run docker run quay.io/jetstack/cert-manager-controller:<version> --help
+# To see all available flags run `docker run quay.io/jetstack/cert-manager-controller:<version> --help`.
+#
+# Use this flag to enable or disable arbitrary controllers. For example, to disable the CertificateRequests approver.
+#
+# For example:
+# extraArgs:
+# - --controllers=*,-certificaterequests-approver
extraArgs: []
- # Use this flag to enable or disable arbitrary controllers, for example, disable the CertificiateRequests approver
- # - --controllers=*,-certificaterequests-approver
+# Additional environment variables to pass to cert-manager controller binary.
+# For example:
+# extraEnv:
+# - name: SOME_VAR
+# value: 'some value'
extraEnv: []
-# - name: SOME_VAR
-# value: 'some value'
+# Resources to provide to the cert-manager controller pod.
+#
+# For example:
+# requests:
+# cpu: 10m
+# memory: 32Mi
+#
+# For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
resources: {}
- # requests:
- # cpu: 10m
- # memory: 32Mi
-# Pod Security Context
-# ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+# Pod Security Context.
+# For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
+# +docs:property
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
-# Container Security Context to be set on the controller component container
-# ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+# Container Security Context to be set on the controller component container.
+# For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
+# +docs:property
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
- # readOnlyRootFilesystem: true
- # runAsNonRoot: true
+ readOnlyRootFilesystem: true
-
+# Additional volumes to add to the cert-manager controller pod.
volumes: []
+# Additional volume mounts to add to the cert-manager controller container.
volumeMounts: []
-# Optional additional annotations to add to the controller Deployment
+# Optional additional annotations to add to the controller Deployment.
+# +docs:property
# deploymentAnnotations: {}
-# Optional additional annotations to add to the controller Pods
+# Optional additional annotations to add to the controller Pods.
+# +docs:property
# podAnnotations: {}
+# Optional additional labels to add to the controller Pods.
podLabels: {}
-# Optional annotations to add to the controller Service
+# Optional annotations to add to the controller Service.
+# +docs:property
# serviceAnnotations: {}
-# Optional additional labels to add to the controller Service
+# Optional additional labels to add to the controller Service.
+# +docs:property
# serviceLabels: {}
-# Optional DNS settings, useful if you have a public and private DNS zone for
-# the same domain on Route 53. What follows is an example of ensuring
+# 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).
+# +docs:property
+# serviceIPFamilyPolicy: ""
+
+# 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.
+# +docs:property
+# serviceIPFamilies: []
+
+# Optional DNS settings. These are useful if you have a public and private DNS zone for
+# the same domain on Route 53. The following is an example of ensuring
# cert-manager can access an ingress or DNS TXT records at all times.
-# NOTE: This requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for
+# Note that this requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for
# the cluster to work.
+
+# Pod DNS policy.
+# For more information, see [Pod's DNS Policy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
+# +docs:property
# podDnsPolicy: "None"
+
+# Pod DNS configuration. The podDnsConfig field is optional and can work with any podDnsPolicy
+# settings. However, when a Pod's dnsPolicy is set to "None", the dnsConfig field has to be specified.
+# For more information, see [Pod's DNS Config](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config).
+# +docs:property
# podDnsConfig:
# nameservers:
# - "1.1.1.1"
# - "8.8.8.8"
+# Optional hostAliases for cert-manager-controller pods. May be useful when performing ACME DNS-01 self checks.
+hostAliases: []
+# - ip: 127.0.0.1
+# hostnames:
+# - foo.local
+# - bar.local
+# - ip: 10.1.2.3
+# hostnames:
+# - foo.remote
+# - bar.remote
+
+# The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
+# matching labels.
+# For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
+#
+# This default ensures that Pods are only scheduled to Linux nodes.
+# It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
+# +docs:property
nodeSelector:
kubernetes.io/os: linux
+# +docs:ignore
ingressShim: {}
+
+ # Optional default issuer to use for ingress resources.
+ # +docs:property=ingressShim.defaultIssuerName
# defaultIssuerName: ""
+
+ # Optional default issuer kind to use for ingress resources.
+ # +docs:property=ingressShim.defaultIssuerKind
# defaultIssuerKind: ""
+
+ # Optional default issuer group to use for ingress resources.
+ # +docs:property=ingressShim.defaultIssuerGroup
# defaultIssuerGroup: ""
-prometheus:
- enabled: true
- servicemonitor:
- enabled: false
- prometheusInstance: default
- targetPort: 9402
- path: /metrics
- interval: 60s
- scrapeTimeout: 30s
- labels: {}
- annotations: {}
- honorLabels: false
+# Use these variables to configure the HTTP_PROXY environment variables.
-# Use these variables to configure the HTTP_PROXY environment variables
+# Configures the HTTP_PROXY environment variable where a HTTP proxy is required.
+# +docs:property
# http_proxy: "http://proxy:8080"
+
+# Configures the HTTPS_PROXY environment variable where a HTTP proxy is required.
+# +docs:property
# https_proxy: "https://proxy:8080"
+
+# Configures the NO_PROXY environment variable where a HTTP proxy is required,
+# but certain domains should be excluded.
+# +docs:property
# no_proxy: 127.0.0.1,localhost
-# A Kubernetes Affinty, if required; see https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#affinity-v1-core
-# for example:
+
+# 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).
+#
+# For example:
# affinity:
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
@@ -233,8 +449,9 @@
# - master
affinity: {}
-# A list of Kubernetes Tolerations, if required; see https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core
-# for example:
+# 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).
+#
+# For example:
# tolerations:
# - key: foo.bar.com/role
# operator: Equal
@@ -242,8 +459,9 @@
# effect: NoSchedule
tolerations: []
-# A list of Kubernetes TopologySpreadConstraints, if required; see https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#topologyspreadconstraint-v1-core
-# for example:
+# 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
+#
+# For example:
# topologySpreadConstraints:
# - maxSkew: 2
# topologyKey: topology.kubernetes.io/zone
@@ -256,108 +474,336 @@
# LivenessProbe settings for the controller container of the controller Pod.
#
-# Disabled by default, because the controller has a leader election mechanism
-# which should cause it to exit if it is unable to renew its leader election
-# record.
+# This is enabled by default, in order to enable the clock-skew liveness probe that
+# restarts the controller in case of a skew between the system clock and the monotonic clock.
# LivenessProbe durations and thresholds are based on those used for the Kubernetes
-# controller-manager. See:
-# https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245
+# controller-manager. For more information see the following on the
+# [Kubernetes GitHub repository](https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245)
+# +docs:property
livenessProbe:
- enabled: false
+ enabled: true
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 15
successThreshold: 1
failureThreshold: 8
+# enableServiceLinks indicates whether information about services should be
+# injected into the pod's environment variables, matching the syntax of Docker
+# links.
+enableServiceLinks: false
+
+# +docs:section=Prometheus
+
+prometheus:
+ # Enable Prometheus monitoring for the cert-manager controller and webhook.
+ # If you use the Prometheus Operator, set prometheus.podmonitor.enabled or
+ # prometheus.servicemonitor.enabled, to create a PodMonitor or a
+ # ServiceMonitor resource.
+ # Otherwise, 'prometheus.io' annotations are added to the cert-manager and
+ # cert-manager-webhook Deployments.
+ # Note that you can not enable both PodMonitor and ServiceMonitor as they are
+ # mutually exclusive. Enabling both will result in an error.
+ enabled: true
+
+ servicemonitor:
+ # Create a ServiceMonitor to add cert-manager to Prometheus.
+ enabled: false
+
+ # The namespace that the service monitor should live in, defaults
+ # to the cert-manager namespace.
+ # +docs:property
+ # namespace: cert-manager
+
+ # Specifies the `prometheus` label on the created ServiceMonitor. This is
+ # used when different Prometheus instances have label selectors matching
+ # different ServiceMonitors.
+ prometheusInstance: default
+
+ # The target port to set on the ServiceMonitor. This must match the port that the
+ # cert-manager controller is listening on for metrics.
+ targetPort: 9402
+
+ # The path to scrape for metrics.
+ path: /metrics
+
+ # The interval to scrape metrics.
+ interval: 60s
+
+ # The timeout before a metrics scrape fails.
+ scrapeTimeout: 30s
+
+ # Additional labels to add to the ServiceMonitor.
+ labels: {}
+
+ # Additional annotations to add to the ServiceMonitor.
+ annotations: {}
+
+ # Keep labels from scraped data, overriding server-side labels.
+ honorLabels: false
+
+ # EndpointAdditionalProperties allows setting additional properties on the
+ # endpoint such as relabelings, metricRelabelings etc.
+ #
+ # For example:
+ # endpointAdditionalProperties:
+ # relabelings:
+ # - action: replace
+ # sourceLabels:
+ # - __meta_kubernetes_pod_node_name
+ # targetLabel: instance
+ #
+ # +docs:property
+ endpointAdditionalProperties: {}
+
+ # Note that you can not enable both PodMonitor and ServiceMonitor as they are mutually exclusive. Enabling both will result in an error.
+ podmonitor:
+ # Create a PodMonitor to add cert-manager to Prometheus.
+ enabled: false
+
+ # The namespace that the pod monitor should live in, defaults
+ # to the cert-manager namespace.
+ # +docs:property
+ # namespace: cert-manager
+
+ # Specifies the `prometheus` label on the created PodMonitor. This is
+ # used when different Prometheus instances have label selectors matching
+ # different PodMonitors.
+ prometheusInstance: default
+
+ # The path to scrape for metrics.
+ path: /metrics
+
+ # The interval to scrape metrics.
+ interval: 60s
+
+ # The timeout before a metrics scrape fails.
+ scrapeTimeout: 30s
+
+ # Additional labels to add to the PodMonitor.
+ labels: {}
+
+ # Additional annotations to add to the PodMonitor.
+ annotations: {}
+
+ # Keep labels from scraped data, overriding server-side labels.
+ honorLabels: false
+
+ # EndpointAdditionalProperties allows setting additional properties on the
+ # endpoint such as relabelings, metricRelabelings etc.
+ #
+ # For example:
+ # endpointAdditionalProperties:
+ # relabelings:
+ # - action: replace
+ # sourceLabels:
+ # - __meta_kubernetes_pod_node_name
+ # targetLabel: instance
+ # # Configure the PodMonitor for TLS connections
+ # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
+ # scheme: https
+ # tlsConfig:
+ # serverName: cert-manager-metrics
+ # ca:
+ # secret:
+ # name: cert-manager-metrics-ca
+ # key: "tls.crt"
+ #
+ # +docs:property
+ endpointAdditionalProperties: {}
+
+# +docs:section=Webhook
+
webhook:
+ # Number of replicas of the cert-manager webhook to run.
+ #
+ # The default is 1, but in production set this to 2 or 3 to provide high
+ # availability.
+ #
+ # If `replicas > 1`, consider setting `webhook.podDisruptionBudget.enabled=true`.
replicaCount: 1
- timeoutSeconds: 10
- # Used to configure options for the webhook pod.
- # This allows setting options that'd usually be provided via flags.
- # An APIVersion and Kind must be specified in your values.yaml file.
- # Flags will override options that are set here.
- config:
- # apiVersion: webhook.config.cert-manager.io/v1alpha1
- # kind: WebhookConfiguration
+ # The number of seconds the API server should wait for the webhook to respond before treating the call as a failure.
+ # The value must be between 1 and 30 seconds. For more information, see
+ # [Validating webhook configuration v1](https://kubernetes.io/docs/reference/kubernetes-api/extend-resources/validating-webhook-configuration-v1/).
+ #
+ # The default is set to the maximum value of 30 seconds as
+ # users sometimes report that the connection between the K8S API server and
+ # the cert-manager webhook server times out.
+ # If *this* timeout is reached, the error message will be "context deadline exceeded",
+ # which doesn't help the user diagnose what phase of the HTTPS connection timed out.
+ # For example, it could be during DNS resolution, TCP connection, TLS
+ # negotiation, HTTP negotiation, or slow HTTP response from the webhook
+ # server.
+ # By setting this timeout to its maximum value the underlying timeout error
+ # message has more chance of being returned to the end user.
+ timeoutSeconds: 30
- # The port that the webhook should listen on for requests.
- # In GKE private clusters, by default kubernetes apiservers are allowed to
- # talk to the cluster nodes only on 443 and 10250. so configuring
- # securePort: 10250, will work out of the box without needing to add firewall
- # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000.
- # This should be uncommented and set as a default by the chart once we graduate
- # the apiVersion of WebhookConfiguration past v1alpha1.
- # securePort: 10250
+ # This is used to configure options for the webhook pod.
+ # This allows setting options that would usually be provided using flags.
+ #
+ # If `apiVersion` and `kind` are unspecified they default to the current latest
+ # version (currently `webhook.config.cert-manager.io/v1alpha1`). You can pin
+ # the version by specifying the `apiVersion` yourself.
+ #
+ # For example:
+ # apiVersion: webhook.config.cert-manager.io/v1alpha1
+ # kind: WebhookConfiguration
+ # # The port that the webhook listens on for requests.
+ # # In GKE private clusters, by default Kubernetes apiservers are allowed to
+ # # talk to the cluster nodes only on 443 and 10250. Configuring
+ # # securePort: 10250 therefore will work out-of-the-box without needing to add firewall
+ # # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers < 1000.
+ # # This should be uncommented and set as a default by the chart once
+ # # the apiVersion of WebhookConfiguration graduates beyond v1alpha1.
+ # securePort: 10250
+ # # Configure the metrics server for TLS
+ # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
+ # metricsTLSConfig:
+ # dynamic:
+ # secretNamespace: "cert-manager"
+ # secretName: "cert-manager-metrics-ca"
+ # dnsNames:
+ # - cert-manager-metrics
+ config: {}
+ # The update strategy for the cert-manager webhook deployment.
+ # For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy)
+ #
+ # For example:
+ # strategy:
+ # type: RollingUpdate
+ # rollingUpdate:
+ # maxSurge: 0
+ # maxUnavailable: 1
strategy: {}
- # type: RollingUpdate
- # rollingUpdate:
- # maxSurge: 0
- # maxUnavailable: 1
- # Pod Security Context to be set on the webhook component Pod
- # ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+ # Pod Security Context to be set on the webhook component Pod.
+ # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
+ # +docs:property
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
- podDisruptionBudget:
- enabled: false
-
- minAvailable: 1
- # maxUnavailable: 1
-
- # minAvailable and maxUnavailable can either be set to an integer (e.g. 1)
- # or a percentage value (e.g. 25%)
-
- # Container Security Context to be set on the webhook component container
- # ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+ # Container Security Context to be set on the webhook component container.
+ # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
+ # +docs:property
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
- # readOnlyRootFilesystem: true
- # runAsNonRoot: true
+ readOnlyRootFilesystem: true
- # Optional additional annotations to add to the webhook Deployment
+ podDisruptionBudget:
+ # Enable or disable the PodDisruptionBudget resource.
+ #
+ # This prevents downtime during voluntary disruptions such as during a Node upgrade.
+ # For example, the PodDisruptionBudget will block `kubectl drain`
+ # if it is used on the Node where the only remaining cert-manager
+ # Pod is currently running.
+ enabled: false
+
+ # This property configures the minimum available pods for disruptions. Can either be set to
+ # an integer (e.g. 1) or a percentage value (e.g. 25%).
+ # It cannot be used if `maxUnavailable` is set.
+ # +docs:property
+ # +docs:type=unknown
+ # minAvailable: 1
+
+ # This property configures the maximum unavailable pods for disruptions. Can either be set to
+ # an integer (e.g. 1) or a percentage value (e.g. 25%).
+ # It cannot be used if `minAvailable` is set.
+ # +docs:property
+ # +docs:type=unknown
+ # maxUnavailable: 1
+
+ # Optional additional annotations to add to the webhook Deployment.
+ # +docs:property
# deploymentAnnotations: {}
- # Optional additional annotations to add to the webhook Pods
+ # Optional additional annotations to add to the webhook Pods.
+ # +docs:property
# podAnnotations: {}
- # Optional additional annotations to add to the webhook Service
+ # Optional additional annotations to add to the webhook Service.
+ # +docs:property
# serviceAnnotations: {}
- # Optional additional annotations to add to the webhook MutatingWebhookConfiguration
+ # Optional additional annotations to add to the webhook MutatingWebhookConfiguration.
+ # +docs:property
# mutatingWebhookConfigurationAnnotations: {}
- # Optional additional annotations to add to the webhook ValidatingWebhookConfiguration
+ # Optional additional annotations to add to the webhook ValidatingWebhookConfiguration.
+ # +docs:property
# validatingWebhookConfigurationAnnotations: {}
+ validatingWebhookConfiguration:
+ # Configure spec.namespaceSelector for validating webhooks.
+ # +docs:property
+ namespaceSelector:
+ matchExpressions:
+ - key: "cert-manager.io/disable-validation"
+ operator: "NotIn"
+ values:
+ - "true"
+
+ mutatingWebhookConfiguration:
+ # Configure spec.namespaceSelector for mutating webhooks.
+ # +docs:property
+ namespaceSelector: {}
+ # matchLabels:
+ # key: value
+ # matchExpressions:
+ # - key: kubernetes.io/metadata.name
+ # operator: NotIn
+ # values:
+ # - kube-system
+
+
# Additional command line flags to pass to cert-manager webhook binary.
- # To see all available flags run docker run quay.io/jetstack/cert-manager-webhook:<version> --help
+ # To see all available flags run `docker run quay.io/jetstack/cert-manager-webhook:<version> --help`.
extraArgs: []
- # Path to a file containing a WebhookConfiguration object used to configure the webhook
+ # Path to a file containing a WebhookConfiguration object used to configure the webhook.
# - --config=<path-to-config-file>
- resources: {}
- # requests:
- # cpu: 10m
- # memory: 32Mi
+ # Additional environment variables to pass to cert-manager webhook binary.
+ # For example:
+ # extraEnv:
+ # - name: SOME_VAR
+ # value: 'some value'
+ extraEnv: []
- ## Liveness and readiness probe values
- ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
- ##
+ # Comma separated list of feature gates that should be enabled on the
+ # webhook pod.
+ featureGates: ""
+
+ # Resources to provide to the cert-manager webhook pod.
+ #
+ # For example:
+ # requests:
+ # cpu: 10m
+ # memory: 32Mi
+ #
+ # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
+ resources: {}
+
+ # Liveness probe values.
+ # For more information, see [Container probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
+ #
+ # +docs:property
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 60
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
+
+ # Readiness probe values.
+ # For more information, see [Container probes](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
+ #
+ # +docs:property
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 5
@@ -365,57 +811,115 @@
successThreshold: 1
timeoutSeconds: 1
+ # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
+ # matching labels.
+ # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
+ #
+ # This default ensures that Pods are only scheduled to Linux nodes.
+ # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
+ # +docs:property
nodeSelector:
kubernetes.io/os: linux
+ # 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).
+ #
+ # For example:
+ # affinity:
+ # nodeAffinity:
+ # requiredDuringSchedulingIgnoredDuringExecution:
+ # nodeSelectorTerms:
+ # - matchExpressions:
+ # - key: foo.bar.com/role
+ # operator: In
+ # values:
+ # - master
affinity: {}
+ # 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).
+ #
+ # For example:
+ # tolerations:
+ # - key: foo.bar.com/role
+ # operator: Equal
+ # value: master
+ # effect: NoSchedule
tolerations: []
+ # 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).
+ #
+ # For example:
+ # topologySpreadConstraints:
+ # - maxSkew: 2
+ # topologyKey: topology.kubernetes.io/zone
+ # whenUnsatisfiable: ScheduleAnyway
+ # labelSelector:
+ # matchLabels:
+ # app.kubernetes.io/instance: cert-manager
+ # app.kubernetes.io/component: controller
topologySpreadConstraints: []
- # Optional additional labels to add to the Webhook Pods
+ # Optional additional labels to add to the Webhook Pods.
podLabels: {}
- # Optional additional labels to add to the Webhook Service
+ # Optional additional labels to add to the Webhook Service.
serviceLabels: {}
+ # 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).
+ serviceIPFamilyPolicy: ""
+
+ # 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.
+ serviceIPFamilies: []
+
image:
- repository: quay.io/jetstack/cert-manager-webhook
- # You can manage a registry with
+ # The container registry to pull the webhook image from.
+ # +docs:property
# registry: quay.io
- # repository: jetstack/cert-manager-webhook
+
+ # The container image for the cert-manager webhook
+ # +docs:property
+ repository: quay.io/jetstack/cert-manager-webhook
# Override the image tag to deploy by setting this variable.
# If no value is set, the chart's appVersion will be used.
- # tag: canary
+ # +docs:property
+ # tag: vX.Y.Z
# Setting a digest will override any tag
+ # +docs:property
# digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
+ # Kubernetes imagePullPolicy on Deployment.
pullPolicy: IfNotPresent
serviceAccount:
- # Specifies whether a service account should be created
+ # Specifies whether a service account should be created.
create: true
+
# The name of the service account to use.
- # If not set and create is true, a name is generated using the fullname template
+ # If not set and create is true, a name is generated using the fullname template.
+ # +docs:property
# name: ""
- # Optional additional annotations to add to the controller's ServiceAccount
+
+ # Optional additional annotations to add to the webhook's Service Account.
+ # +docs:property
# annotations: {}
- # Optional additional labels to add to the webhook's ServiceAccount
+
+ # Optional additional labels to add to the webhook's Service Account.
+ # +docs:property
# labels: {}
+
# Automount API credentials for a Service Account.
automountServiceAccountToken: true
- # Automounting API credentials for a particular pod
+ # Automounting API credentials for a particular pod.
+ # +docs:property
# automountServiceAccountToken: true
- # The port that the webhook should listen on for requests.
- # In GKE private clusters, by default kubernetes apiservers are allowed to
- # talk to the cluster nodes only on 443 and 10250. so configuring
- # securePort: 10250, will work out of the box without needing to add firewall
- # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000
+ # The port that the webhook listens on for requests.
+ # In GKE private clusters, by default Kubernetes apiservers are allowed to
+ # talk to the cluster nodes only on 443 and 10250. Configuring
+ # securePort: 10250, therefore will work out-of-the-box without needing to add firewall
+ # rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000.
securePort: 10250
# Specifies if the webhook should be started in hostNetwork mode.
@@ -430,10 +934,13 @@
hostNetwork: false
# Specifies how the service should be handled. Useful if you want to expose the
- # webhook to outside of the cluster. In some cases, the control plane cannot
+ # webhook outside of the cluster. In some cases, the control plane cannot
# reach internal services.
serviceType: ClusterIP
- # loadBalancerIP:
+
+ # Specify the load balancer IP for the created service.
+ # +docs:property
+ # loadBalancerIP: "10.10.10.10"
# Overrides the mutating webhook and validating webhook so they reach the webhook
# service using the `url` field instead of a service.
@@ -442,11 +949,20 @@
# Enables default network policies for webhooks.
networkPolicy:
+ # Create network policies for the webhooks.
enabled: false
+
+ # Ingress rule for the webhook network policy. By default, it allows all
+ # inbound traffic.
+ # +docs:property
ingress:
- from:
- ipBlock:
cidr: 0.0.0.0/0
+
+ # Egress rule for the webhook network policy. By default, it allows all
+ # outbound traffic to ports 80 and 443, as well as DNS ports.
+ # +docs:property
egress:
- ports:
- port: 80
@@ -457,7 +973,7 @@
protocol: TCP
- port: 53
protocol: UDP
- # On OpenShift and OKD, the Kubernetes API server listens on
+ # On OpenShift and OKD, the Kubernetes API server listens on.
# port 6443.
- port: 6443
protocol: TCP
@@ -465,228 +981,485 @@
- ipBlock:
cidr: 0.0.0.0/0
+ # Additional volumes to add to the cert-manager controller pod.
volumes: []
+
+ # Additional volume mounts to add to the cert-manager controller container.
volumeMounts: []
+ # enableServiceLinks indicates whether information about services should be
+ # injected into the pod's environment variables, matching the syntax of Docker
+ # links.
+ enableServiceLinks: false
+
+# +docs:section=CA Injector
+
cainjector:
+ # Create the CA Injector deployment
enabled: true
+
+ # The number of replicas of the cert-manager cainjector to run.
+ #
+ # The default is 1, but in production set this to 2 or 3 to provide high
+ # availability.
+ #
+ # If `replicas > 1`, consider setting `cainjector.podDisruptionBudget.enabled=true`.
+ #
+ # Note that cert-manager uses leader election to ensure that there can
+ # only be a single instance active at a time.
replicaCount: 1
+ # This is used to configure options for the cainjector pod.
+ # It allows setting options that are usually provided via flags.
+ #
+ # If `apiVersion` and `kind` are unspecified they default to the current latest
+ # version (currently `cainjector.config.cert-manager.io/v1alpha1`). You can pin
+ # the version by specifying the `apiVersion` yourself.
+ #
+ # For example:
+ # apiVersion: cainjector.config.cert-manager.io/v1alpha1
+ # kind: CAInjectorConfiguration
+ # logging:
+ # verbosity: 2
+ # format: text
+ # leaderElectionConfig:
+ # namespace: kube-system
+ # # Configure the metrics server for TLS
+ # # See https://cert-manager.io/docs/devops-tips/prometheus-metrics/#tls
+ # metricsTLSConfig:
+ # dynamic:
+ # secretNamespace: "cert-manager"
+ # secretName: "cert-manager-metrics-ca"
+ # dnsNames:
+ # - cert-manager-metrics
+ config: {}
+
+ # Deployment update strategy for the cert-manager cainjector deployment.
+ # For more information, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy).
+ #
+ # For example:
+ # strategy:
+ # type: RollingUpdate
+ # rollingUpdate:
+ # maxSurge: 0
+ # maxUnavailable: 1
strategy: {}
- # type: RollingUpdate
- # rollingUpdate:
- # maxSurge: 0
- # maxUnavailable: 1
# Pod Security Context to be set on the cainjector component Pod
- # ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+ # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
+ # +docs:property
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
- podDisruptionBudget:
- enabled: false
-
- minAvailable: 1
- # maxUnavailable: 1
-
- # minAvailable and maxUnavailable can either be set to an integer (e.g. 1)
- # or a percentage value (e.g. 25%)
-
# Container Security Context to be set on the cainjector component container
- # ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+ # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
+ # +docs:property
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
- # readOnlyRootFilesystem: true
- # runAsNonRoot: true
+ readOnlyRootFilesystem: true
+ podDisruptionBudget:
+ # Enable or disable the PodDisruptionBudget resource.
+ #
+ # This prevents downtime during voluntary disruptions such as during a Node upgrade.
+ # For example, the PodDisruptionBudget will block `kubectl drain`
+ # if it is used on the Node where the only remaining cert-manager
+ # Pod is currently running.
+ enabled: false
- # Optional additional annotations to add to the cainjector Deployment
+ # `minAvailable` configures the minimum available pods for disruptions. It can either be set to
+ # an integer (e.g. 1) or a percentage value (e.g. 25%).
+ # Cannot be used if `maxUnavailable` is set.
+ # +docs:property
+ # +docs:type=unknown
+ # minAvailable: 1
+
+ # `maxUnavailable` configures the maximum unavailable pods for disruptions. It can either be set to
+ # an integer (e.g. 1) or a percentage value (e.g. 25%).
+ # Cannot be used if `minAvailable` is set.
+ # +docs:property
+ # +docs:type=unknown
+ # maxUnavailable: 1
+
+ # Optional additional annotations to add to the cainjector Deployment.
+ # +docs:property
# deploymentAnnotations: {}
- # Optional additional annotations to add to the cainjector Pods
+ # Optional additional annotations to add to the cainjector Pods.
+ # +docs:property
# podAnnotations: {}
+ # Optional additional annotations to add to the cainjector metrics Service.
+ # +docs:property
+ # serviceAnnotations: {}
+
# Additional command line flags to pass to cert-manager cainjector binary.
- # To see all available flags run docker run quay.io/jetstack/cert-manager-cainjector:<version> --help
+ # To see all available flags run `docker run quay.io/jetstack/cert-manager-cainjector:<version> --help`.
extraArgs: []
- # Enable profiling for cainjector
+ # Enable profiling for cainjector.
# - --enable-profiling=true
- resources: {}
- # requests:
- # cpu: 10m
- # memory: 32Mi
+ # Additional environment variables to pass to cert-manager cainjector binary.
+ # For example:
+ # extraEnv:
+ # - name: SOME_VAR
+ # value: 'some value'
+ extraEnv: []
+ # Comma separated list of feature gates that should be enabled on the
+ # cainjector pod.
+ featureGates: ""
+
+ # Resources to provide to the cert-manager cainjector pod.
+ #
+ # For example:
+ # requests:
+ # cpu: 10m
+ # memory: 32Mi
+ #
+ # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
+ resources: {}
+
+
+ # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
+ # matching labels.
+ # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
+ #
+ # This default ensures that Pods are only scheduled to Linux nodes.
+ # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
+ # +docs:property
nodeSelector:
kubernetes.io/os: linux
+ # 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).
+ #
+ # For example:
+ # affinity:
+ # nodeAffinity:
+ # requiredDuringSchedulingIgnoredDuringExecution:
+ # nodeSelectorTerms:
+ # - matchExpressions:
+ # - key: foo.bar.com/role
+ # operator: In
+ # values:
+ # - master
affinity: {}
+ # 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).
+ #
+ # For example:
+ # tolerations:
+ # - key: foo.bar.com/role
+ # operator: Equal
+ # value: master
+ # effect: NoSchedule
tolerations: []
+ # 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).
+ #
+ # For example:
+ # topologySpreadConstraints:
+ # - maxSkew: 2
+ # topologyKey: topology.kubernetes.io/zone
+ # whenUnsatisfiable: ScheduleAnyway
+ # labelSelector:
+ # matchLabels:
+ # app.kubernetes.io/instance: cert-manager
+ # app.kubernetes.io/component: controller
topologySpreadConstraints: []
- # Optional additional labels to add to the CA Injector Pods
+ # Optional additional labels to add to the CA Injector Pods.
podLabels: {}
+ # Optional additional labels to add to the CA Injector metrics Service.
+ serviceLabels: {}
+
image:
- repository: quay.io/jetstack/cert-manager-cainjector
- # You can manage a registry with
+ # The container registry to pull the cainjector image from.
+ # +docs:property
# registry: quay.io
- # repository: jetstack/cert-manager-cainjector
+
+ # The container image for the cert-manager cainjector
+ # +docs:property
+ repository: quay.io/jetstack/cert-manager-cainjector
# Override the image tag to deploy by setting this variable.
# If no value is set, the chart's appVersion will be used.
- # tag: canary
+ # +docs:property
+ # tag: vX.Y.Z
- # Setting a digest will override any tag
+ # Setting a digest will override any tag.
+ # +docs:property
# digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
+ # Kubernetes imagePullPolicy on Deployment.
pullPolicy: IfNotPresent
serviceAccount:
- # Specifies whether a service account should be created
+ # Specifies whether a service account should be created.
create: true
+
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
+ # +docs:property
# name: ""
- # Optional additional annotations to add to the controller's ServiceAccount
+
+ # Optional additional annotations to add to the cainjector's Service Account.
+ # +docs:property
# annotations: {}
- # Automount API credentials for a Service Account.
- # Optional additional labels to add to the cainjector's ServiceAccount
+
+ # Optional additional labels to add to the cainjector's Service Account.
+ # +docs:property
# labels: {}
+
+ # Automount API credentials for a Service Account.
automountServiceAccountToken: true
- # Automounting API credentials for a particular pod
+ # Automounting API credentials for a particular pod.
+ # +docs:property
# automountServiceAccountToken: true
+ # Additional volumes to add to the cert-manager controller pod.
volumes: []
+
+ # Additional volume mounts to add to the cert-manager controller container.
volumeMounts: []
+ # enableServiceLinks indicates whether information about services should be
+ # injected into the pod's environment variables, matching the syntax of Docker
+ # links.
+ enableServiceLinks: false
+
+# +docs:section=ACME Solver
+
acmesolver:
image:
- repository: quay.io/jetstack/cert-manager-acmesolver
- # You can manage a registry with
+ # The container registry to pull the acmesolver image from.
+ # +docs:property
# registry: quay.io
- # repository: jetstack/cert-manager-acmesolver
+
+ # The container image for the cert-manager acmesolver.
+ # +docs:property
+ repository: quay.io/jetstack/cert-manager-acmesolver
# Override the image tag to deploy by setting this variable.
- # If no value is set, the chart's appVersion will be used.
- # tag: canary
+ # If no value is set, the chart's appVersion is used.
+ # +docs:property
+ # tag: vX.Y.Z
- # Setting a digest will override any tag
+ # Setting a digest will override any tag.
+ # +docs:property
# digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
+ # Kubernetes imagePullPolicy on Deployment.
+ pullPolicy: IfNotPresent
+
+# +docs:section=Startup API Check
# This startupapicheck is a Helm post-install hook that waits for the webhook
# endpoints to become available.
-# The check is implemented using a Kubernetes Job- if you are injecting mesh
-# sidecar proxies into cert-manager pods, you probably want to ensure that they
-# are not injected into this Job's pod. Otherwise the installation may time out
-# due to the Job never being completed because the sidecar proxy does not exit.
-# See https://github.com/cert-manager/cert-manager/pull/4414 for context.
+# The check is implemented using a Kubernetes Job - if you are injecting mesh
+# sidecar proxies into cert-manager pods, ensure that they
+# are not injected into this Job's pod. Otherwise, the installation may time out
+# owing to the Job never being completed because the sidecar proxy does not exit.
+# For more information, see [this note](https://github.com/cert-manager/cert-manager/pull/4414).
+
startupapicheck:
+ # Enables the startup api check.
enabled: true
- # Pod Security Context to be set on the startupapicheck component Pod
- # ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+ # Pod Security Context to be set on the startupapicheck component Pod.
+ # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
+ # +docs:property
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
- # Container Security Context to be set on the controller component container
- # ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+ # Container Security Context to be set on the controller component container.
+ # For more information, see [Configure a Security Context for a Pod or Container](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/).
+ # +docs:property
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
- # readOnlyRootFilesystem: true
- # runAsNonRoot: true
+ readOnlyRootFilesystem: true
- # Timeout for 'kubectl check api' command
+ # Timeout for 'kubectl check api' command.
timeout: 1m
# Job backoffLimit
backoffLimit: 4
- # Optional additional annotations to add to the startupapicheck Job
+ # Optional additional annotations to add to the startupapicheck Job.
+ # +docs:property
jobAnnotations:
helm.sh/hook: post-install
helm.sh/hook-weight: "1"
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
- # Optional additional annotations to add to the startupapicheck Pods
+ # Optional additional annotations to add to the startupapicheck Pods.
+ # +docs:property
# podAnnotations: {}
# Additional command line flags to pass to startupapicheck binary.
- # To see all available flags run docker run quay.io/jetstack/cert-manager-ctl:<version> --help
- extraArgs: []
+ # To see all available flags run `docker run quay.io/jetstack/cert-manager-startupapicheck:<version> --help`.
+ #
+ # Verbose logging is enabled by default so that if startupapicheck fails, you
+ # can know what exactly caused the failure. Verbose logs include details of
+ # the webhook URL, IP address and TCP connect errors for example.
+ # +docs:property
+ extraArgs:
+ - -v
+ # Additional environment variables to pass to cert-manager startupapicheck binary.
+ # For example:
+ # extraEnv:
+ # - name: SOME_VAR
+ # value: 'some value'
+ extraEnv: []
+
+ # Resources to provide to the cert-manager controller pod.
+ #
+ # For example:
+ # requests:
+ # cpu: 10m
+ # memory: 32Mi
+ #
+ # For more information, see [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
resources: {}
- # requests:
- # cpu: 10m
- # memory: 32Mi
+
+ # The nodeSelector on Pods tells Kubernetes to schedule Pods on the nodes with
+ # matching labels.
+ # For more information, see [Assigning Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
+ #
+ # This default ensures that Pods are only scheduled to Linux nodes.
+ # It prevents Pods being scheduled to Windows nodes in a mixed OS cluster.
+ # +docs:property
nodeSelector:
kubernetes.io/os: linux
+ # 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).
+ # For example:
+ # affinity:
+ # nodeAffinity:
+ # requiredDuringSchedulingIgnoredDuringExecution:
+ # nodeSelectorTerms:
+ # - matchExpressions:
+ # - key: foo.bar.com/role
+ # operator: In
+ # values:
+ # - master
affinity: {}
+ # 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).
+ #
+ # For example:
+ # tolerations:
+ # - key: foo.bar.com/role
+ # operator: Equal
+ # value: master
+ # effect: NoSchedule
tolerations: []
- # Optional additional labels to add to the startupapicheck Pods
+ # Optional additional labels to add to the startupapicheck Pods.
podLabels: {}
image:
- repository: quay.io/jetstack/cert-manager-ctl
- # You can manage a registry with
+ # The container registry to pull the startupapicheck image from.
+ # +docs:property
# registry: quay.io
- # repository: jetstack/cert-manager-ctl
+
+ # The container image for the cert-manager startupapicheck.
+ # +docs:property
+ repository: quay.io/jetstack/cert-manager-startupapicheck
# Override the image tag to deploy by setting this variable.
- # If no value is set, the chart's appVersion will be used.
- # tag: canary
+ # If no value is set, the chart's appVersion is used.
+ # +docs:property
+ # tag: vX.Y.Z
- # Setting a digest will override any tag
+ # Setting a digest will override any tag.
+ # +docs:property
# digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20
+ # Kubernetes imagePullPolicy on Deployment.
pullPolicy: IfNotPresent
rbac:
- # annotations for the startup API Check job RBAC and PSP resources
+ # annotations for the startup API Check job RBAC and PSP resources.
+ # +docs:property
annotations:
helm.sh/hook: post-install
helm.sh/hook-weight: "-5"
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
- # Automounting API credentials for a particular pod
+ # Automounting API credentials for a particular pod.
+ # +docs:property
# automountServiceAccountToken: true
serviceAccount:
- # Specifies whether a service account should be created
+ # Specifies whether a service account should be created.
create: true
# The name of the service account to use.
- # If not set and create is true, a name is generated using the fullname template
+ # If not set and create is true, a name is generated using the fullname template.
+ # +docs:property
# name: ""
- # Optional additional annotations to add to the Job's ServiceAccount
+ # Optional additional annotations to add to the Job's Service Account.
+ # +docs:property
annotations:
helm.sh/hook: post-install
helm.sh/hook-weight: "-5"
helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
# Automount API credentials for a Service Account.
+ # +docs:property
automountServiceAccountToken: true
- # Optional additional labels to add to the startupapicheck's ServiceAccount
+ # Optional additional labels to add to the startupapicheck's Service Account.
+ # +docs:property
# labels: {}
+ # Additional volumes to add to the cert-manager controller pod.
volumes: []
+
+ # Additional volume mounts to add to the cert-manager controller container.
volumeMounts: []
+
+ # enableServiceLinks indicates whether information about services should be
+ # injected into pod's environment variables, matching the syntax of Docker
+ # links.
+ enableServiceLinks: false
+
+# Create dynamic manifests via values.
+#
+# For example:
+# extraObjects:
+# - |
+# apiVersion: v1
+# kind: ConfigMap
+# metadata:
+# name: '{{ template "cert-manager.fullname" . }}-extra-configmap'
+extraObjects: []
+
+# Field used by our release pipeline to produce the static manifests.
+# The field defaults to "helm" but is set to "static" when we render
+# the static YAML manifests.
+# +docs:hidden
+creator: "helm"
+
+# Field that can be used as a condition when cert-manager is a dependency.
+# This definition is only here as a placeholder such that it is included in
+# the json schema.
+# See https://helm.sh/docs/chart_best_practices/dependencies/#conditions-and-tags
+# for more info.
+# +docs:hidden
+enabled: true