VarnishCluster Configuration
Field | Description | Is Required |
---|---|---|
affinity |
Affinity settings for the pods. It allows you to configure onto which nodes Varnish pods should prefer being scheduled. | optional |
priorityClassName |
priorityClass settings for the pods. It allows you to set a PriorityClassName and thus set a priority to your pods, to avoid eviction. | optional |
backend.namespaces |
Namespace(s) to look for backend pods. By default - namespace the VarnishCluster is deployed to. | required |
backend.onlyReady |
Include (false , by default) or exclude (true ) backend pods from the VCL (.Backends template var). Alters .Backends template variable based on Kubernetes health checks (by default not ready pods are also included in VCL) instead of Varnish health probes. |
optional |
backend.port |
The port of the backend pods being cached by Varnish. Can be port name or port number. | required |
backend.selector |
The selector used to identify the backend Pods. | required |
backend.zoneBalancing |
Controls Varnish backend topology aware routing which can assign weights to backends according to their geographical location. | optional |
backend.zoneBalancing.type |
Varnish backend zone-balancing type. Accepted values: disabled , auto , thresholds |
optional |
backend.zoneBalancing.thresholds |
Array of thresholds objects to determine condition and respective weights to be assigned to backends: threshold , local - local backend weight, remote - remote backend weight |
optional |
logLevel |
The minimum enabled logging level. Allowed values: debug , info , warn , error , dpanic , panic , fatal . Default: info |
optional |
logFormat |
Format of the logs. Can be json and console . Default: json |
optional |
monitoring |
The operator monitoring configuration object | optional |
monitoring.grafanaDashboard |
A dashboard that can be installed along with the operator and used in grafana. Installed as a ConfigMap. | optional |
monitoring.grafanaDashboard.enabled |
Enable or disable the ConfigMap installation. Default: false |
optional |
monitoring.grafanaDashboard.datasourceName |
Name of the Grafana datasource the dashboard should use. | required |
monitoring.grafanaDashboard.labels |
ConfigMap labels. Can be used to for discovery by grafana. See the .sidecar.dashboards.label config parameter of Grafana chart for more details. Default: { grafana_dashboard: "1" } |
optional |
monitoring.grafanaDashboard.namespace |
Namespace that the ConfigMap with the dashboard should be installed to. Default to the namespace VarnishCluster is installed to | optional |
monitoring.grafanaDashboard.title |
Title of the Grafana dashboard. Default: Varnish (<cluster namespace>/<name>) |
optional |
monitoring.prometheusServiceMonitor |
The Prometheus ServiceMonitor that is preconfigured to monitors the operator pods. | optional |
monitoring.prometheusServiceMonitor.enabled |
Enable or disable ServiceMontitor installation. Default: false |
optional |
monitoring.prometheusServiceMonitor.labels |
ServiceMonitor labels that will be used by Prometheus instance to discover this ServiceMonitor. | optional |
monitoring.prometheusServiceMonitor.namespace |
The namespace the it should be installed to. Default to the namespace VarnishCluster is installed to | optional |
nodeSelector |
Node selector to control where the Varnish pods should be scheduled | optional |
podDisruptionBudget |
Pod Disruption Budget configuration. Can be used to tell Kubernetes how many pods are required to be up (or allowed to be down) to not cause service disruption | optional |
podDisruptionBudget.minAvailable |
An eviction is allowed if at least minAvailable pods will still be available after the eviction, i.e. even in the absence of the evicted pod |
optional |
podDisruptionBudget.maxUnavailable |
An eviction is allowed if at most maxUnavailable pods are unavailable after the eviction, i.e. even in absence of the evicted pod. This is a mutually exclusive setting with minAvailable |
optional |
replicas |
Number of Varnish nodes | required |
service |
Varnish service configuration. | required |
service.annotations |
Additional annotations for the service. | optional |
service.port |
The port number used to expose Varnish pods. | required |
service.metricsPort |
The port that will expose the Prometheus metrics exporter. Default: 9131 . |
optional |
service.nodePort |
The port number used to set NodePort for Varnish. Service type `NodePort should be selected. | optional |
service.metricsNodePort |
The port number used to set NodePort for Varnish Metrics Exporter. Service type `NodePort should be selected. | optional |
service.controllerMetricsNodePort |
The port number used to set NodePort for Varnish Controller Metrics exporter. Service type `NodePort should be selected. | optional |
service.type |
Type of the Service. Allowed values: ClusterIP ; LoadBalancer ; NodePort . |
optional |
tolerations |
Configuration that defines which node taints can the pods tolerate. For example to allow Varnish pods to run on nodes that are marked (tainted) as machines dedicated for in-memory cache | optional |
updateStrategy |
Allows to control the way Varnish pods will be updated. | optional |
updateStrategy.type |
Defines the type of the update strategy. Default: OnDelete |
optional |
updateStrategy.delayedRollingUpdate |
Configuration for DelayedRollingUpdate strategy |
optional |
updateStrategy.delayedRollingUpdate.delaySeconds |
Indicates the wait time between pod reloads during rolling update. Default: 60 seconds | required |
updateStrategy.rollingUpdate |
Used to communicate parameters when type is RollingUpdate |
optional |
updateStrategy.rollingUpdate.partition |
Partition indicates the ordinal at which the StatefulSet should be partitioned. Default: 0 | optional |
varnish |
An object that defines the configuration of a particular Varnish instance being deployed | optional |
varnish.admAuth |
An object that defines custom kubernetes secret to keep a Varnish authentication data to secure communication for varnishadm utility. Cluster creates its own if omitted. |
optional |
varnish.admAuth.secretName |
The name of kubernetes secret which keeps auth data for varnishadm . |
required |
varnish.admAuth.key |
The key from kubernetes secret which to use to collect data credentials for varnishadm . If the key is omitted, the cluster will use "secret" as the key. If the value associated to the key is empty, the cluster will generate a secret. |
optional |
varnish.args |
Additional Varnish daemon arguments | optional |
varnish.controller |
An object that defines the configuration of a particular Varnish controller being deployed | optional |
varnish.controller.image |
Path to the Varnish Controller image being used. If not defined uses varnish.image +-controller suffix. Something like varnish-controller |
optional |
varnish.controller.imagePullPolicy |
Image pull policy for the container. Default: Always |
optional |
varnish.controller.resources |
Resource requests and limits for Varnish controller container. | optional |
varnish.envFrom |
Injects an env var into the Varnish container from a ConfigMap or Secret. Useful if a value needs to be passed (securely in case of Secret) to the VCL files. So it can be read using std.getenv(). | optional |
varnish.envFrom.configMapRef |
The ConfigMap to select from | optional |
varnish.envFrom.configMapRef.name |
Name of the ConfigMap | optional |
varnish.envFrom.configMapRef.optional |
Specify whether the ConfigMap must be defined | optional |
varnish.envFrom.prefix |
An optional identifier to prepend to each key. Must be a C_IDENTIFIER | optional |
varnish.envFrom.secretRef |
The Secret to select from | optional |
varnish.envFrom.secretRef.name |
Name of the Secret | optional |
varnish.envFrom.secretRef.optional |
Specify whether the Secret must be defined | optional |
varnish.extraInitContainers |
Additional init containers | optional |
varnish.extraVolumeClaimTemplates[] |
VolumeClaimTemplates for the VarnishCluster statefulset | optional |
varnish.extraVolumeClaimTemplates[].metadata |
Metadata for the VolumeClaimTemplate | optional |
varnish.extraVolumeClaimTemplates[].metadata.name |
Name of the volume | optional |
varnish.extraVolumeClaimTemplates[].metadata.labels |
Labels to set for the VolumeClaimTemplate | optional |
varnish.extraVolumeClaimTemplates[].metadata.annotations |
Annotations to set for the VolumeClaimTemplate | optional |
varnish.extraVolumeClaimTemplates[].spec |
Spec for the PersistentVolumeClaim | optional |
varnish.extraVolumeMounts |
Additional volume mounts for the Varnish container | optional |
varnish.extraVolumes |
Additional volumes | optional |
varnish.image |
Path to the Varnish image being used | optional |
varnish.imagePullPolicy |
Image pull policy for the Varnish container. Default: Always |
optional |
varnish.imagePullSecret |
The name of the image pull secret to use to pull container images | optional |
varnish.metricsExporter |
An object that defines the configuration of a particular Varnish Prometheus metrics exporter being deployed | optional |
varnish.metricsExporter.image |
Path to the Varnish Metrics exporter image being used. If not defined uses varnish.image +-metrics-exporter suffix. Something like varnish-metrics-exporter |
optional |
varnish.metricsExporter.imagePullPolicy |
Image pull policy for the container. Default: Always |
optional |
varnish.metricsExporter.resources |
Resource requests and limits for Varnish metrics exporter container. | optional |
varnish.resources |
Resource requests and limits for Varnish container. | optional |
vcl |
An object that defines the VCL ConfigMap configuration | required |
vcl.configMapName |
Name of the ConfigMap containing the VCL configuration files | required |
vcl.entrypointFileName |
The name of the main VCL file | required |
You can also find an example of VarnishCluster
with detailed comments here.