Search
Varnish Helm Chart

Configurations

Configuration types

string

A string. While the YAML spec does not require strings to be quoted, it is highly recommended to quote strings to prevent YAML type coercion (e.g., values such as country: NO are treated as country: false by YAML).

Example:

key1: "value"

# or multi-line
key2: |
  value

number

A number.

key1: 42

# or float
key2: 3.14

boolean

A true or false. While the YAML spec also treats keywords such as “yes” and “no” as true and false, respectively, it is highly recommended to use explicit true and false as the value for maintainability.

key1: true

object

A pair of key value.

key1:
  subkey1: "string"
  subkey2: 3.14
  subkey3: true

# alternatively, using JSON syntax
key2: { "subkey1": "string", "subkey2": 3.14, "subkey3": true }

array of objects

An array of objects.

key1:
  - name: "value1"
    subkey: "value"
  - name: "value2"
    subkey: "value"

array of strings

An array of strings.

key1:
  - "string1"
  - "string2"
  - "string3"

# alternatively, using JSON syntax
key1: ["string1", "string2", "string3"]

template string

A pair of key value as a string. Template functions exposed by Helm are available in this type.

key1: |
  subkey1: {{ .Release.Name | quote }}
  subkey2: "hello, world"

# in array of objects
key2: |
  - name: {{ .Release.Name | quote }}
    subkey1: "hello, world"

Chart configurations

nameOverride

  • Type: string

Overrides the name of the chart (without the release name). For example, setting nameOverride to “hello” would produce a deployment named “release-name-hello”. Containers within a pod derive their name from this setting. By default, the name of the chart is used (i.e., “varnish-controller-router”)

fullnameOverride

  • Type: string

Overrides the full name of the chart (with the release name). This setting allows overriding both release name and a deployment name altogether. For example, setting fullnameOverride to “hello” would produce a deployment named “hello”. By default, a composition of a Helm release name and the name of the chart is used (i.e., “release-name-varnish-controller-router”).

Global configurations

global.annotations

  • Type: object or template string
  • Availability: v1.5.0

Applies extra annotations to all workloads. The value can be set as either an object or a template string. Workload annotations can be used to for applying additional metadata or for integrating with external tooling. The annotations specified here will be applied to the workload itself.

To apply annotations on a Pod, use global.podAnnotations. To apply annotations on a specific workload, use router.annotations, and powerdns.annotations.

global.imagePullSecrets

  • Type: array of object

An array of object that conforms to Kubernetes’ imagePullSecrets definition. When set, each item in an array must consist of an object with a key name referencing the Kubernetes a secret.

For example:

global:
  imagePullSecrets:
    - name: registry-quay-k7c2f4m2d5

global.labels

  • Type: object or template string
  • Availability: v1.5.0

Applies extra labels to all workloads. The value can be set as either an object or a template string. Workload labels can be used to for applying additional metadata or for integrating with external tooling. The labels specified here will be applied to the workload itself.

To apply labels on a Pod, use global.podLabels. To apply labels on a specific workload, use router.labels, and powerdns.labels.

global.podAnnotations

  • Type: object or template string
  • Availability: v1.5.0

Applies extra annotations to all Pods. The value can be set as either an object or a template string. Pod annotations can be used to for applying additional metadata or for integrating with external tooling. Annotations specified here will be applied to a Pod itself.

To apply labels on a workload, use global.annotations. To apply labels on a specific Pod, use router.podAnnotations, and powerdns.podAnnotations.

global.podLabels

  • Type: object or template string
  • Availability: v1.5.0

Applies extra labels to all Pods. The value can be set as either an object or a template string. Pod labels can be used to for applying additional metadata or for integrating with external tooling. Labels specified here will be applied to a Pod itself.

To apply labels on a workload, use global.labels. To apply labels on a specific Pod, use router.podLabels, and powerdns.podLabels.

global.podSecurityContext

  • Type: object

An object that conforms to Kubernetes’ securityContext definition of a Pod.

For example:

global:
  podSecurityContext:
    fsGroup: 999

This securityContext will be set on all Pods within this chart. For setting securityContext on all containers, see global.securityContext.

global.resources

  • Type: object
  • Availability: v1.5.0

An object that conforms to the Kubernetes resources definition of a Container. This configuration will resources constraint to all containers. To specify resources on a single container, use router.resources, and powerdns.resources.

global.securityContext

  • Type: object

An object that conforms to Kubernetes’ securityContext definition of a Container.

For example:

global:
  securityContext:
    runAsUser: 999
    runAsNonRoot: true

This securityContext will be set on all containers within this chart. For setting securityContext on the Pod itself, see global.podSecurityContext.

global.natsServer.externalAddress

  • Type: string

An FQDN to the NATS server. The value is ignored if global.natsServer.internal.enabled is set to true.

global.natsServer.internal.enabled

  • Type: boolean or string
  • Default: -

Configures Varnish Controller Router to use the internal NATS server. Set this to “-” to inherit the value of nats.enabled. Note that when using a shared values file between Varnish Controller, Varnish Controller Router, and Varnish Enterprise, this value should be set to boolean.

global.natsServer.internal.namespace

  • Type: string

Discovers the internal NATS server within the given namespace. By default, the current namespace is used.

global.natsServer.internal.releaseName

  • Type: string

Overrides the full name of the internal NATS server. Use the current release name if left blank.

global.natsServer.internal.clusterDomain

  • Type: string
  • Default: cluster.local

Overrides the Kubernetes cluster domain. Required if Kubernetes cluster is configured to use different cluster domain than the default. By default, “cluster.local” is used. In most cases, this value should not be changed.

global.natsServer.internal.passwordFrom

  • Type: object
  • Default:
    name: varnish-controller-router-credentials
    key: nats-varnish-password
    

Sets internal NATS password from external secret. For example:

global:
  natsServer:
    internal:
      passwordFrom:
        name: secret-name
        key: nats-password

Internal NATS must be configured separately by setting the following values:

nats:
  container:
    env:
      VARNISH_CONTROLLER_NATS_PASSWORD:
        valueFrom:
          secretKeyRef:
            name: secret-name
            key: nats-password

Service Account configurations

serviceAccount.create

  • Type: boolean
  • Default: true

Create a Kubernetes service account to use with the deployment.

serviceAccount.labels

  • Type: object or template string

Applies extra labels to the service account. The value can be set as either an object or a template string.

serviceAccount.annotations

  • Type: object or template string

Applies extra annotations to the service account. The value can be set as either an object or a template string.

serviceAccount.name

  • Type: string

Overrides the name of the service account. By default, the full name of the chart is used.

Router configurations

router.enabled

  • Type: boolean
  • Default: true

Enables the Varnish Controller Router.

router.extraArgs

  • Type: array of strings
  • Default: []
  • Availability: v1.6.0

Sets the extra arguments to the Varnish Controller Router.

router.extraEnvs

  • Type: array of objects, object, or templated string
  • Availability: v1.5.0

Sets an additional environment variable for Varnish Controller Router container.

Can be set as an array of objects:

extraEnvs:
  - name: MY_ENVIRONMENT_VARIABLE
    value: my_value

Or an object:

extraEnvs:
  MY_ENVIRONMENT_VARIABLE: my_value

Or a templated string:

extraEnvs: |
  - name: MY_ENVIRONMENT_VARIABLE
    value: my_value

router.replicas

  • Type: number
  • Default: 1

Specifies the number of replicas to deploy Varnish Controller Router server. The value is ignored if router.autoscaling.enabled is set to true.

router.labels

  • Type: object or template string

Applies extra labels to the deployment. The value can be set as either an object or a template string. Labels specified here will be applied to the deployment itself. To apply labels on the Pod, use router.podLabels.

router.annotations

  • Type: object or template string

Applies extra annotations to the deployment. The value can be set as either an object or a template string. Deployment annotations can be used to for applying additional metadata or for integrating with external tooling. Annotations specified here will be applied to the deployment itself. To apply labels on the Pod, use router.podAnnotations.

router.strategy

  • Type: object or template string

Configures a deployment strategy to use to replace existing Pod with a new one

router.http.enabled

  • Type: boolean
  • Default: true

Enables an HTTP-based routing for Varnish Controller Router.

router.http.port

  • Type: number
  • Default: 6081

Specifies a port for an HTTP routing endpoint.

router.https.enabled

  • Type: boolean
  • Default: false

Enables an [HTTPS-based routing][varnish-controller-router-https] for Varnish Controller Router.

router.https.port

  • Type: number
  • Default: 6443

Specifies a port for an HTTPS routing endpoint.

router.management.enabled

  • Type: boolean
  • Default: false

Enables a management interface.

router.management.port

  • Type: number
  • Default: 8092

Specifies a port for a management interface.

router.management.tls

  • Type: boolean
  • Default: false

Whether to enable TLS for a management interface.

router.dns.enabled

  • Type: boolean or string
  • Default: "-"

Enables a DNS-based routing for Varnish Controller Router. When set to “-”, a DNS-based routing will inherit the value of powerdns.enabled. As Varnish Controller Router does not provide a DNS server on its own, a PowerDNS Authoritative Server setup is also required. See also powerdns.enabled for internal PowerDNS Authoritative Server.

If an external PowerDNS Authoritative Server is used, it must be configured to forward DNS traffic to router.dnsService.

router.dns.port

  • Type: number
  • Default: 8091

Specifies a port for a DNS backend.

router.autoscaling.enabled

  • Type: object
  • Default: false

An object for configuring HorizontalPodAutoscaling.

router.autoscaling.minReplicas

  • Type: number
  • Default: 1

Sets the minimum number of replicas to always keep running.

router.autoscaling.maxReplicas

  • Type: number
  • Default: 100

Sets the maximum number of replicas to run at most.

router.autoscaling.metrics

  • Type: object or template string

Sets the HorizontalPodAutoscaling metrics. The value can be set as either an object or a template string.

router.image.repository

  • Type: string
  • Default: quay.io/varnish-software/varnish-controller-router

Sets the repository for Varnish Controller Router image.

router.image.pullPolicy

  • Type: string
  • Default: IfNotPresent

Sets the imagePullPolicy for the Varnish Controller Router image. This can be one of Always, Never, or IfNotPreset.

router.image.tag

  • Type: string
  • Default: same as appVersion

Sets the tag for the Varnish Controller Router image. By default, this is set to the same application version as in the Varnish Controller Helm Chart. If the tag is set to non-exact versions (such as “latest”), make sure to set router.image.pullPolicy to “Always” to make sure the image is always updated.

router.httpService.enabled

  • Type: boolean or string
  • Default: "-"

Configures a HTTP Service to expose HTTP/HTTPS routing endpoints to the cluster or outside of the cluster. When this value is set to “-”, a HTTP service will be enabled based on the values of router.http.enabled and router.https.enabled.

router.httpService.label

  • Type: object or template string

Applies extra labels to the Service. The value can be set as either an object or a template string.

router.httpService.annotations

  • Type: object or template string

Applies extra annotations to the Service. The value can be set as either an object or a template string.

router.httpService.type

  • Type: string
  • Default: NodePort

Sets the type of the Service. Can be either CluterIP, LoadBalancer, or NodePort.

router.httpService.clusterIP

  • Type: string

Sets a custom Service ClusterIP. This value can be set as either an IP address, or a literal string “None”. Only applicable when router.httpService.type is set to ClusterIP.

When set to “None”, Kubernetes will create a Headless Service, skipping Kubernetes’ proxying mechanism. Note that when Headless Service is used, router.httpService.*.port will be ignored, as Kubernetes port mapping is skipped. The service will instead be accessible via router.http.port and router.https.port.

router.httpService.loadBalancerIP

  • Type: string

Sets a custom Load Balancer IP. Only applicable when router.service.type is set to LoadBalancer.

router.httpService.http.enabled

  • Type: boolean or string
  • Default: "-"

Enables a HTTP Service for HTTP-based routing. When set to “-”, a HTTP Service for HTTP-based will inherit the value of router.http.enabled.

router.httpService.http.port

  • Type: number
  • Default: 80

Sets the port to expose HTTP Service for HTTP-based routing. Traffic to this port will be forwarded to router.http.port within a Pod.

router.httpService.http.nodePort

  • Type: number

Sets the port to expose HTTP Service for HTTP-based routing directly on the node itself. Only applicable when router.service.type is set to NodePort. This value must be within the Kubernetes service-node-port-range (default: 30000-32767).

router.httpService.https.enabled

  • Type: boolean or string
  • Defualt: "-"

Enables a HTTP Service for HTTPS-based routing. When set to “-”, a HTTP Service for HTTP-based will inherit the value of router.https.enabled.

router.httpService.https.port

  • Type: number
  • Default: 443

Sets the port to expose HTTP Service for HTTP-based routing. Traffic to this port will be forwarded to router.https.port within a Pod.

router.httpService.https.nodePort

  • Type: number

Sets the port to expose HTTP Service for HTTP-based routing directly on the node itself. Only applicable when router.service.type is set to NodePort. This value must be within the Kubernetes service-node-port-range (default: 30000-32767).

router.dnsService.enabled

  • Type: boolean or string
  • Default: "-"

Configures a DNS Service to expose DNS-based routing backend to the cluster or outside of the cluster. When this value is set to “-”, a DNS service will be enabled based on the value of router.dns.enabled.

router.dnsService.labels

  • Type: object or template string

Applies extra labels to the Service. The value can be set as either an object or a template string.

router.dnsService.annotations

  • Type: object or template string

Applies extra annotations to the Service. The value can be set as either an object or a template string.

router.dnsService.type

  • Type: string
  • Default: NodePort

Sets the type of the Service. Can be either CluterIP, LoadBalancer, or NodePort.

router.dnsService.clusterIP

  • Type: string

Sets a custom Service ClusterIP. This value can be set as either an IP address, or a literal string “None”. Only applicable when router.dnsService.type is set to ClusterIP.

When set to “None”, Kubernetes will create a Headless Service, skipping Kubernetes’ proxying mechanism. Note that when Headless Service is used, router.dnsService.port will be ignored, as Kubernetes port mapping is skipped. The service will instead be accessible via router.dns.port.

router.dnsService.loadBalancerIP

  • Type: string

Sets a custom Load Balancer IP. Only applicable when router.service.type is set to LoadBalancer.

router.dnsService.port

  • Type: number
  • Default: 8091

Sets the port to expose DNS Service for DNS-based routing backend. Traffic to this port will be forwarded to router.dns.port within a Pod.

router.managementService.enabled

  • Type: boolean or string
  • Default: "-"

Configures a Management Service. When this value is set to “-”, a management service will be enabled based on the value of router.management.enabled.

router.managementService.labels

  • Type: object or template string

Applies extra labels to the Service. The value can be set as either an object or a template string.

router.managementService.annotations

  • Type: object or template string

Applies extra annotations to the Service. The value can be set as either an object or a template string.

router.managementService.type

  • Type: string
  • Default: NodePort

Sets the type of the Service. Can be either CluterIP, LoadBalancer, or NodePort.

router.managementService.clusterIP

  • Type: string

Sets a custom Service ClusterIP. This value can be set as either an IP address, or a literal string “None”. Only applicable when router.managementService.type is set to ClusterIP.

When set to “None”, Kubernetes will create a Headless Service, skipping Kubernetes’ proxying mechanism. Note that when Headless Service is used, router.managementService.port will be ignored, as Kubernetes port mapping is skipped. The service will instead be accessible via router.management.port.

router.managementService.loadBalancerIP

  • Type: string

Sets a custom Load Balancer IP. Only applicable when router.service.type is set to LoadBalancer.

router.managementService.port

  • Type: number
  • Default: 8092

Sets the port to expose Management Service. Traffic to this port will be forwarded to router.management.port within a Pod.

router.podAnnotations

  • Type: object or template string

Applies extra annotations to the Pod. The value can be set as either an object or a template string. Pod annotations can be used to for applying additional metadata or for integrating with external tooling. Annotations specified here will be applied to the Pod. To apply labels on the deployment, use router.annotations.

router.podLabels

  • Type: object or template string

Applies extra labels to the Pod. The value can be set as either an object or a template string. Labels specified here will be applied to the Pod itself. To apply labels on the deployment, use router.labels.

router.securityContext

  • Type: object

An object that conforms to Kubernetes’ securityContext definition of a Container.

For example:

router:
  securityContext:
    runAsUser: 999

This securityContext will be set on the Varnish Controller Router container. For setting securityContext on the Pod itself, see global.podSecurityContext. For setting securityContext to all containers, see global.securityContext.

router.grace

Whether to make Varnish Controller Router keep an endpoint active after the Varnish Controller Agent has stopped, as long as it is still responding to the health check. Setting this to false makes an endpoint disappear immediately once Varnish Controller Agent has stopped.

router.useReleaseName

  • Type: boolean
  • Default: false

When router.replicas is set to 1, use Helm Chart release name as Varnish Controller Router server name.

router.startupProbe

  • Type: object
  • Default: {}

An object that conforms to Kubernetes’ startupProbe definition of a Container.

router.readinessProbe

  • Type: object
  • Default:
    initialDelaySeconds: 5
    periodSeconds: 10
    timeoutSeconds: 1
    successThreshold: 1
    failureThreshold: 3
    

An object that confirms to the Kubernetes readinessProbe definition of a Container.

router.livenessProbe

  • Type: object
  • Default:
    initialDelaySeconds: 30
    periodSeconds: 10
    timeoutSeconds: 5
    successThreshold: 1
    failureThreshold: 3
    

An object that confirms to the Kubernetes livenessProbe definition of a Container.

router.resources

  • Type: object

An object that conforms to the Kubernetes resources definition of a Container. This configuration can be used to limit resources consumed by the Varnish Controller Router container.

router.nodeSelector

  • Type: object or template string

An object that conforms to Kubernetes’ nodeSelector definition of a Pod. This configuration is used to select a node to schedule a Pod to. The value can be set as either an object or a template string.

router.tolerations

  • Type: array of strings or template string

An object that conforms to Kubernetes’ tolerations definition of a Pod. This configuration is used to allow the Pod to be scheduled to nodes with specific taints. The value can be set as either an array of strings or a template string.

router.affinity

  • Type: object or template string
  • Default: template string
podAntiAffinity:
  requiredDuringSchedulingIgnoredDuringExecution:
    - labelSelector:
        matchLabels:
          app.kubernetes.io/name: {{ include "varnish-controller-router.name" . }}
          app.kubernetes.io/instance: {{ .Release.Name }}
      topologyKey: kubernetes.io/hostname

This configuration is used to fine-grain control the scheduling of the Pod. By default, this is set to ensure all Varnish Controller Router Pods are always run in a different node. To disable this behavior, set to empty string (""). The value can be set as either an object or a template string.

PowerDNS Authoritative Server configurations

powerdns.enabled

  • Type: boolean
  • Default: false

Enables the PowerDNS Authoritative Server.

powerdns.extraArgs

  • Type: array of strings
  • Default: []
  • Availability: v1.6.0

Sets the extra arguments to the PowerDNS server.

powerdns.extraEnvs

  • Type: array of objects, object, or templated string
  • Availability: v1.5.0

Sets an additional environment variable for PowerDNS Authoritative Server container.

Can be set as an array of objects:

extraEnvs:
  - name: MY_ENVIRONMENT_VARIABLE
    value: my_value

Or an object:

extraEnvs:
  MY_ENVIRONMENT_VARIABLE: my_value

Or a templated string:

extraEnvs: |
  - name: MY_ENVIRONMENT_VARIABLE
    value: my_value

powerdns.replicas

  • Type: number
  • Default: 1

Specifies the number of replicas to deploy PowerDNS Authoritative Server. The value is ignored if powerdns.autoscaling.enabled is set to true.

powerdns.labels

  • Type: object or template string

Applies extra labels to the deployment. The value can be set as either an object or a template string. Labels specified here will be applied to the deployment itself. To apply labels on the Pod, use powerdns.podLabels.

powerdns.annotations

  • Type: object or template string

Applies extra annotations to the deployment. The value can be set as either an object or a template string. Deployment annotations can be used to for applying additional metadata or for integrating with external tooling. Annotations specified here will be applied to the deployment itself. To apply labels on the Pod, use powerdns.podAnnotations.

powerdns.strategy

  • Type: object or template string

Configures a deployment strategy to use to replace existing Pod with a new one

powerdns.autoscaling.enabled

  • Type: boolean
  • Default: false

An object for configuring HorizontalPodAutoscaling.

powerdns.autoscaling.minReplicas

  • Type: number
  • Default: 1

Sets the minimum number of replicas to always keep running.

powerdns.autoscaling.maxReplicas

  • Type: number
  • Default: 100

Sets the maximum number of replicas to run at most.

powerdns.autoscaling.metrics

  • Type: object or template string

Sets the HorizontalPodAutoscaling metrics. The value can be set as either an object or a template string.

powerdns.image.repository

  • Type: string
  • Default: docker.io/powerdns/pdns-auth-45

Sets the repository for PowerDNS Authoritative Server image.

powerdns.image.pullPolicy

  • Type: string
  • Default: IfNotPresent

Sets the imagePullPolicy for the PowerDNS Authoritative Server image. This can be one of Always, Never, or IfNotPreset.

powerdns.image.tag

  • Type: string
  • Default: 4.5.5

Sets the tag for the PowerDNS Authoritative Server image.

powerdns.dns.port

  • Type: number
  • Default: 53

Specifies a port for a DNS service.

powerdns.service.enabled

  • Type: boolean
  • Default: true

Configures a DNS Service to the cluster or outside of the cluster.

powerdns.service.labels

  • Type: object or template string

Applies extra labels to the Service. The value can be set as either an object or a template string.

powerdns.service.annotations

  • Type: object or template string

Applies extra annotations to the Service. The value can be set as either an object or a template string.

powerdns.service.type

  • Type: string
  • Default: NodePort

Sets the type of the Service. Can be either CluterIP, LoadBalancer, or NodePort.

powerdns.service.clusterIP

  • Type: string

Sets a custom Service ClusterIP. This value can be set as either an IP address, or a literal string “None”. Only applicable when powerdns.service.type is set to ClusterIP.

When set to “None”, Kubernetes will create a Headless Service, skipping Kubernetes’ proxying mechanism. Note that when Headless Service is used, powerdns.service.port will be ignored, as Kubernetes port mapping is skipped. The service will instead be accessible via powerdns.dns.port.

powerdns.service.loadBalancerIP

  • Type: string

Sets a custom Load Balancer IP. Only applicable when powerdns.service.type is set to LoadBalancer.

powerdns.service.port

  • Type: number
  • Default: 53

Sets the port to expose DNS Service. Traffic to this port will be forwarded to powerdns.dns.port within a Pod.

powerdns.service.nodePort

  • Type: number

Sets the port to expose DNS Service on the node itself. Only applicable when powerdns.service.type is set to NodePort. This value must be within the Kubernetes service-node-port-range (default: 30000-32767).

powerdns.podAnnotations

  • Type: object or template string

Applies extra annotations to the Pod. The value can be set as either an object or a template string. Pod annotations can be used to for applying additional metadata or for integrating with external tooling. Annotations specified here will be applied to the Pod. To apply labels on the deployment, use powerdns.annotations.

powerdns.podLabels

  • Type: object or template string

Applies extra labels to the Pod. The value can be set as either an object or a template string. Labels specified here will be applied to the Pod itself. To apply labels on the deployment, use powerdns.labels.

powerdns.securityContext

  • Type: object or template string

An object that conforms to Kubernetes’ securityContext definition of a Container.

For example:

router:
  securityContext:
    runAsUser: 999

This securityContext will be set on the Varnish Controller Router container. For setting securityContext on the Pod itself, see global.podSecurityContext. For setting securityContext to all containers, see global.securityContext.

powerdns.config

  • Type: object
  • Default:
    negqueryCacheTtl: 0
    queryCacheTtl: 0
    cacheTtl: 0
    zoneCacheRefreshInterval: 0
    loglevel: 4
    logDnsQueries: true
    queryLogging: true
    maxTcpConnections: 20000
    maxQueueLength: 50000
    distributorThreads: 50
    ednsSubnetProcessing: true
    consistentBackends: true
    

A PowerDNS Authoritative Server configuration. All key names will be transformed to a kebab-case expected by PowerDNS Authoritative Server. For example, negqueryCacheTtl will be transformed into negquery-cache-ttl.

If not present, launch will be set to remote, and remoteConnectionString will be set to the Varnish Controller Router’s DNS routing backend service. It is advised to not add these configuration keys to powerdns.config.

powerdns.startupProbe

  • Type: object

An object that conforms to Kubernetes’ startupProbe definition of a Container.

powerdns.readinessProbe

  • Type: object
  • Default:
    initialDelaySeconds: 30
    periodSeconds: 10
    timeoutSeconds: 5
    successThreshold: 1
    failureThreshold: 3
    

An object that confirms to the Kubernetes readinessProbe definition of a Container.

powerdns.livenessProbe

  • Type: object
  • Default:
    initialDelaySeconds: 30
    periodSeconds: 10
    timeoutSeconds: 5
    successThreshold: 1
    failureThreshold: 3
    

An object that confirms to the Kubernetes livenessProbe definition of a Container.

powerdns.resources

  • Type: object

An object that conforms to the Kubernetes resources definition of a Container. This configuration can be used to limit resources consumed by the PowerDNS Authoritative Server container.

powerdns.nodeSelector

  • Type: object or template string

An object that conforms to Kubernetes’ nodeSelector definition of a Pod. This configuration is used to select a node to schedule a Pod to. The value can be set as either an object or a template string.

powerdns.tolerations

  • Type: array of strings or template string

An object that conforms to Kubernetes’ tolerations definition of a Pod. This configuration is used to allow the Pod to be scheduled to nodes with specific taints. The value can be set as either an array of strings or a template string.

powerdns.affinity

  • Type: object or template string
  • Default: template string
podAntiAffinity:
  requiredDuringSchedulingIgnoredDuringExecution:
    - labelSelector:
        matchLabels:
          app.kubernetes.io/name: {{ include "varnish-controller-router.name" . }}-powerdns
          app.kubernetes.io/instance: {{ .Release.Name }}
      topologyKey: kubernetes.io/hostname

This configuration is used to fine-grain control the scheduling of the Pod. By default, this is set to ensure all PowerDNS Authoritative Server Pods are always run in a different node. To disable this behavior, set to empty string (""). The value can be set as either an object or a template string.