Skip to content

Istio CSR Helm values

nameOverride

Property nameOverride
Type string
Default

nameOverride replaces the name of the chart in the Chart.yaml file, when this is used to construct Kubernetes object names.

replicaCount

Property replicaCount
Type number
Default
1

Number of replicas of Istio CSR to run.

image.registry

Property image.registry
Type string
Default

Target image registry. This value is prepended to the target image repository, if set.
For example:

registry: quay.io
repository: jetstack/cert-manager-istio-csr

image.repository

Property image.repository
Type string
Default
quay.io/jetstack/cert-manager-istio-csr

Target image repository.

image.tag

Property image.tag
Type string
Default

Override the image tag to deploy by setting this variable. If no value is set, the chart's appVersion is used.

image.digest

Property image.digest
Type string
Default

Target image digest. Override any tag, if set.
For example:

digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20

image.pullPolicy

Property image.pullPolicy
Type string
Default
IfNotPresent

Kubernetes imagePullPolicy on Deployment.

imagePullSecrets

Property imagePullSecrets
Type array
Default
[]

Optional secrets used for pulling the Istio CSR container image.

service.type

Property service.type
Type string
Default
ClusterIP

Service type to expose Istio CSR gRPC service.

service.port

Property service.port
Type number
Default
443

Service port to expose Istio CSR gRPC service.

service.nodePort

Property service.nodePort
Type number
Default

Service nodePort to expose Istio CSR gRPC service.

app.logLevel

Property app.logLevel
Type number
Default
1

Verbosity of Istio CSR logging.

app.logFormat

Property app.logFormat
Type string
Default
text

Output format of Istio CSR logging.

app.metrics.port

Property app.metrics.port
Type number
Default
9402

Port for exposing Prometheus metrics on 0.0.0.0 on path '/metrics'.

app.metrics.service.enabled

Property app.metrics.service.enabled
Type bool
Default
true

Create a Service resource to expose metrics endpoint.

app.metrics.service.type

Property app.metrics.service.type
Type string
Default
ClusterIP

Service type to expose metrics.

app.metrics.service.servicemonitor.enabled

Property app.metrics.service.servicemonitor.enabled
Type bool
Default
false

Create Prometheus ServiceMonitor resource for approver-policy.

app.metrics.service.servicemonitor.prometheusInstance

Property app.metrics.service.servicemonitor.prometheusInstance
Type string
Default
default

The value for the "prometheus" label on the ServiceMonitor. This allows for multiple Prometheus instances selecting difference ServiceMonitors using label selectors.

app.metrics.service.servicemonitor.interval

Property app.metrics.service.servicemonitor.interval
Type string
Default
10s

The interval that the Prometheus will scrape for metrics.

app.metrics.service.servicemonitor.scrapeTimeout

Property app.metrics.service.servicemonitor.scrapeTimeout
Type string
Default
5s

The timeout on each metric probe request.

app.metrics.service.servicemonitor.labels

Property app.metrics.service.servicemonitor.labels
Type object
Default
{}

Additional labels to give the ServiceMonitor resource.

app.runtimeConfiguration.create

Property app.runtimeConfiguration.create
Type bool
Default
false

Create the runtime-configuration ConfigMap.

app.runtimeConfiguration.name

Property app.runtimeConfiguration.name
Type string
Default
""

The name of a ConfigMap in the installation namespace to watch, providing runtime configuration of an issuer to use.

If create is set to true then this name is used to create the ConfigMap, otherwise the ConfigMap must exist and the "issuer-name", "issuer-kind" and "issuer-group" keys must be present in it.

app.runtimeConfiguration.issuer.name

Property app.runtimeConfiguration.issuer.name
Type string
Default
istio-ca

Issuer name set on created CertificateRequests for both Istio CSR's serving certificate and incoming gRPC CSRs.

app.runtimeConfiguration.issuer.kind

Property app.runtimeConfiguration.issuer.kind
Type string
Default
Issuer

The issuer kind set on created CertificateRequests for both Istio CSR's serving certificate and incoming gRPC CSRs.

app.runtimeConfiguration.issuer.group

Property app.runtimeConfiguration.issuer.group
Type string
Default
cert-manager.io

The issuer group name set on created CertificateRequests for both Istio CSR's serving certificate and incoming gRPC CSRs.

app.readinessProbe.port

Property app.readinessProbe.port
Type number
Default
6060

Container port to expose Istio CSR HTTP readiness probe on default network interface.

app.readinessProbe.path

Property app.readinessProbe.path
Type string
Default
/readyz

The path to expose the Istio CSR HTTP readiness probe on the default network interface.

app.certmanager.namespace

Property app.certmanager.namespace
Type string
Default
istio-system

The namespace to create CertificateRequests for both Istio CSR's serving certificate and incoming gRPC CSRs.

app.certmanager.preserveCertificateRequests

Property app.certmanager.preserveCertificateRequests
Type bool
Default
false

Don't delete created CertificateRequests once they have been signed.

Warning

Do not enable this option in production, or environments with any non-trivial number of workloads for an extended period. Doing so will balloon the resource consumption of both ETCD and the API server, leading to errors and slow down. This option is intended for debugging purposes only, for limited periods.

app.certmanager.additionalAnnotations

Property app.certmanager.additionalAnnotations
Type array
Default
[]

Additional annotations to include on certificate requests.
Takes key/value pairs in the format:

additionalAnnotations:
  - name: custom.cert-manager.io/policy-name
    value: istio-csr

app.certmanager.issuer.enabled

Property app.certmanager.issuer.enabled
Type bool
Default
true

Enable the default issuer, this is the issuer used when no runtime configuration is provided.

When enabled, the Istio CSR Pod will not be "Ready" until the issuer has been used to issue the Istio CSR GRPC certificate.

For Istio CSR to function, either this or runtime configuration must be enabled.

app.certmanager.issuer.name

Property app.certmanager.issuer.name
Type string
Default
istio-ca

The issuer name set on created CertificateRequests for both Istio CSR's serving certificate and incoming gRPC CSRs.

app.certmanager.issuer.kind

Property app.certmanager.issuer.kind
Type string
Default
Issuer

The issuer kind set on created CertificateRequests for both Istio CSR's serving certificate and incoming gRPC CSRs.

app.certmanager.issuer.group

Property app.certmanager.issuer.group
Type string
Default
cert-manager.io

The issuer group name set on created CertificateRequests for both Istio CSR's serving certificate and incoming gRPC CSRs.

app.tls.trustDomain

Property app.tls.trustDomain
Type string
Default
cluster.local

The Istio cluster's trust domain.

app.tls.rootCAFile

Property app.tls.rootCAFile
Type unknown
Default
null

An optional file location to a PEM encoded root CA that the root CA. ConfigMap in all namespaces will be populated with. If empty, the CA returned from cert-manager for the serving certificate will be used.

app.tls.certificateDNSNames[0]

Property app.tls.certificateDNSNames[0]
Type string
Default
cert-manager-istio-csr.cert-manager.svc

app.tls.certificateDuration

Property app.tls.certificateDuration
Type string
Default
1h

Requested duration of gRPC serving certificate. Will be automatically renewed.
Based on NIST 800-204A recommendations (SM-DR13). For more information, see here.

app.tls.istiodCertificateEnable

Property app.tls.istiodCertificateEnable
Type boolean,string,null
Default
true

If true, create the istiod certificate using a cert-manager certificate as part of the install. If set to "dynamic", will create the cert dynamically when Istio CSR pods start up. If false, no cert is created.

app.tls.istiodCertificateDuration

Property app.tls.istiodCertificateDuration
Type string
Default
1h

Requested duration of istio's Certificate. It will be automatically renewed. The default is based on NIST 800-204A recommendations (SM-DR13). For more information, see here.

Warning

cert-manager does not allow a duration on Certificates less than 1 hour.

app.tls.istiodCertificateRenewBefore

Property app.tls.istiodCertificateRenewBefore
Type string
Default
30m

Amount of time to wait before trying to renew the istiod certificate. This value must be smaller than the certificate's duration.

app.tls.istiodPrivateKeyAlgorithm

Property app.tls.istiodPrivateKeyAlgorithm
Type string
Default
""

Private key algorithm to use. For backwards compatibility, this defaults to the same value as app.server.serving.signatureAlgorithm.

app.tls.istiodPrivateKeySize

Property app.tls.istiodPrivateKeySize
Type number
Default
2048

The parameter for the istiod certificate key. For RSA, this must be a number of bits >= 2048. For ECDSA, it can only be 256 or 384, corresponding to P-256 and P-384 respectively.

app.tls.istiodAdditionalDNSNames

Property app.tls.istiodAdditionalDNSNames
Type array
Default
[]

Provide additional DNS names to request on the istiod certificate. This is useful if istiod is accessible via multiple DNS names and/or outside of the cluster.

app.server.authenticators.enableClientCert

Property app.server.authenticators.enableClientCert
Type bool
Default
false

Enable the client certificate authenticator. This will allow workloads to use preexisting certificates to authenticate with Istio CSR when rotating their certificate.

app.server.clusterID

Property app.server.clusterID
Type string
Default
Kubernetes

The istio cluster ID to verify incoming CSRs.

app.server.maxCertificateDuration

Property app.server.maxCertificateDuration
Type string
Default
1h

Maximum validity duration that can be requested for a certificate. Istio CSR will request a duration of the smaller of this value, and that of the incoming gRPC CSR.
Based on NIST 800-204A recommendations (SM-DR13). For more information, see here.

app.server.serving.address

Property app.server.serving.address
Type string
Default
0.0.0.0

Container address to serve Istio CSR gRPC service.

app.server.serving.port

Property app.server.serving.port
Type number
Default
6443

Container port to serve Istio CSR gRPC service.

app.server.serving.certificateKeySize

Property app.server.serving.certificateKeySize
Type number
Default
2048

The parameter for serving certificate key. For RSA, this must be a number of bits >= 2048. For ECDSA, it can only be 256 or 384, corresponding to P-256 and P-384 respectively.

app.server.serving.signatureAlgorithm

Property app.server.serving.signatureAlgorithm
Type string
Default
RSA

The type of private key to generate for the serving certificate. Only RSA (default) and ECDSA are supported. NB: This variable is named incorrectly; it controls private key algorithm, not signature algorithm.

app.server.caTrustedNodeAccounts

Property app.server.caTrustedNodeAccounts
Type string
Default
""

A comma-separated list of service accounts that are allowed to use node authentication for CSRs, eg. "istio-system/ztunnel"

app.istio.revisions[0]

Property app.istio.revisions[0]
Type string
Default
default

app.istio.namespace

Property app.istio.namespace
Type string
Default
istio-system

The namespace where the istio control-plane is running.

app.controller.leaderElectionNamespace

Property app.controller.leaderElectionNamespace
Type string
Default
istio-system

app.controller.configmapNamespaceSelector

Property app.controller.configmapNamespaceSelector
Type string
Default

If set, limit where Istio CSR creates configmaps with root ca certificates. If unset, configmap created in ALL namespaces.
Example: maistra.io/member-of=istio-system

app.controller.disableKubernetesClientRateLimiter

Property app.controller.disableKubernetesClientRateLimiter
Type bool
Default
false

This parameter allows you to disable the default Kubernetes client rate limiter if Istio CSR exceeds the default QPS (5) and Burst (10) limits. For example, in large clusters with many Istio workloads, restarting the Pods may cause Istio CSR to send bursts Kubernetes API requests that exceed the limits of the default Kubernetes client rate limiter and Istio CSR will become slow to issue certificates for your workloads. Only disable client rate limiting if the Kubernetes API server supports API Priority and Fairness, to avoid overloading the server.

deploymentLabels

Property deploymentLabels
Type object
Default
{}

Optional extra labels for deployment.

deploymentAnnotations

Property deploymentAnnotations
Type object
Default
{}

Optional extra annotations for deployment.

podLabels

Property podLabels
Type object
Default
{}

Optional extra labels for pod.

podAnnotations

Property podAnnotations
Type object
Default
{}

Optional extra annotations for pod.

volumes

Property volumes
Type array
Default
[]

Optional extra volumes. Useful for mounting custom root CAs.

For example:

volumes:
- name: root-ca
  secret:
    secretName: root-cert

volumeMounts

Property volumeMounts
Type array
Default
[]

Optional extra volume mounts. Useful for mounting custom root CAs.

For example:

volumeMounts:
- name: root-ca
  mountPath: /etc/tls

resources

Property resources
Type object
Default
{}

Kubernetes pod resources. For more information, see Resource Management for Pods and Containers.

For example:

resources:
  limits:
    cpu: 100m
    memory: 128Mi
  requests:
    cpu: 100m
    memory: 128Mi

securityContext.allowPrivilegeEscalation

Property securityContext.allowPrivilegeEscalation
Type bool
Default
false

securityContext.readOnlyRootFilesystem

Property securityContext.readOnlyRootFilesystem
Type bool
Default
true

securityContext.runAsNonRoot

Property securityContext.runAsNonRoot
Type bool
Default
true

securityContext.capabilities.drop[0]

Property securityContext.capabilities.drop[0]
Type string
Default
ALL

affinity

Property affinity
Type object
Default
{}

Expects input structure as per specification.

For example:

affinity:
  nodeAffinity:
   requiredDuringSchedulingIgnoredDuringExecution:
     nodeSelectorTerms:
     - matchExpressions:
       - key: foo.bar.com/role
         operator: In
         values:
         - master

tolerations

Property tolerations
Type array
Default
[]

Expects input structure as per specification.

For example:

tolerations:
- key: foo.bar.com/role
  operator: Equal
  value: master
  effect: NoSchedule

topologySpreadConstraints

Property topologySpreadConstraints
Type array
Default
[]

List of Kubernetes TopologySpreadConstraints. For more information, see TopologySpreadConstraint v1 core.

For example:

topologySpreadConstraints:
- maxSkew: 2
  topologyKey: topology.kubernetes.io/zone
  whenUnsatisfiable: ScheduleAnyway
  labelSelector:
    matchLabels:
      app.kubernetes.io/name: cert-manager-istio-csr
      app.kubernetes.io/instance: istio-csr

nodeSelector

Property nodeSelector
Type object
Default
kubernetes.io/os: linux

Kubernetes node selector: node labels for pod assignment.

commonLabels

Property commonLabels
Type object
Default
{}

Labels to apply to all resources

extraObjects

Property extraObjects
Type array
Default
[]

Create resources alongside installing Istio CSR, via Helm values. Can accept an array of YAML-formatted resources. Each array entry can include multiple YAML documents, separated by '---'

For example:

extraObjects:
  - |
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: '{{ template "cert-manager-istio-csr.fullname" . }}-extra-configmap'