1# This file has been modified by Chainguard, Inc.
3# Copyright Chainguard, Inc. All Rights Reserved.
4# Chainguard, Inc. modifications are subject to the license
5# available at: https://www.chainguard.dev/legal/software-license-agreement
7# Copyright Broadcom, Inc. All Rights Reserved.
8# SPDX-License-Identifier: APACHE-2.0
10## @section Global parameters
11## Global Docker image parameters
12## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
16## @param global.imageRegistry Global Docker image registry
17## @param global.imagePullSecrets Global Docker registry secret names as an array
18## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
24 ## - myRegistryKeySecretName
27 defaultStorageClass: ""
28 ## Security parameters
31 ## @param global.security.allowInsecureImages Allows skipping image verification
32 allowInsecureImages: false
33 ## Compatibility adaptations for Kubernetes platforms
36 ## Compatibility adaptations for Openshift
39 ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
41 adaptSecurityContext: auto
43## @section Common parameters
45## @param kubeVersion Override Kubernetes version
48## @param apiVersions Override Kubernetes API versions reported by .Capabilities
51## @param nameOverride String to partially override common.names.name
54## @param fullnameOverride String to fully override common.names.fullname
57## @param namespaceOverride String to fully override common.names.namespace
60## @param commonLabels Labels to add to all deployed objects
63## @param commonAnnotations Annotations to add to all deployed objects
66## @param clusterDomain Kubernetes cluster domain name
68clusterDomain: cluster.local
69## @param extraDeploy Array of extra objects to deploy with the release
72## @param usePasswordFiles Mount credentials as files instead of using environment variables
75## Enable diagnostic mode in the deployment
78 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
81 ## @param diagnosticMode.command Command to override all containers in the deployment
85 ## @param diagnosticMode.args Args to override all containers in the deployment
89## @section Default Init Container Parameters
91 ## 'volume-permissions' init container
92 ## Used to change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each node
95 ## @param defaultInitContainers.volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume
98 ## @param defaultInitContainers.volumePermissions.image.registry [default: REGISTRY_NAME] "volume-permissions" init-containers' image registry
99 ## @param defaultInitContainers.volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] "volume-permissions" init-containers' image repository
100 ## @skip defaultInitContainers.volumePermissions.image.tag "volume-permissions" init-containers' image tag (immutable tags are recommended)
101 ## @param defaultInitContainers.volumePermissions.image.digest "volume-permissions" init-containers' image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
102 ## @param defaultInitContainers.volumePermissions.image.pullPolicy "volume-permissions" init-containers' image pull policy
103 ## @param defaultInitContainers.volumePermissions.image.pullSecrets "volume-permissions" init-containers' image pull secrets
107 repository: iamguarded/os-shell
108 tag: 12-debian-12-r51
110 pullPolicy: IfNotPresent
111 ## Optionally specify an array of imagePullSecrets.
112 ## Secrets must be manually created in the namespace.
113 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
116 ## - myRegistryKeySecretName
119 ## Configure "volume-permissions" init-container Security Context
120 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
121 ## @param defaultInitContainers.volumePermissions.containerSecurityContext.enabled Enabled "volume-permissions" init-containers' Security Context
122 ## @param defaultInitContainers.volumePermissions.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in "volume-permissions" init-containers
123 ## @param defaultInitContainers.volumePermissions.containerSecurityContext.runAsUser Set runAsUser in "volume-permissions" init-containers' Security Context
124 ## @param defaultInitContainers.volumePermissions.containerSecurityContext.privileged Set privileged in "volume-permissions" init-containers' Security Context
125 ## @param defaultInitContainers.volumePermissions.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in "volume-permissions" init-containers' Security Context
126 ## @param defaultInitContainers.volumePermissions.containerSecurityContext.capabilities.add List of capabilities to be added in "volume-permissions" init-containers
127 ## @param defaultInitContainers.volumePermissions.containerSecurityContext.capabilities.drop List of capabilities to be dropped in "volume-permissions" init-containers
128 ## @param defaultInitContainers.volumePermissions.containerSecurityContext.seccompProfile.type Set seccomp profile in "volume-permissions" init-containers
130 containerSecurityContext:
135 allowPrivilegeEscalation: false
140 type: "RuntimeDefault"
141 ## ClickHouse Keeper "volume-permissions" init container resource requests and limits
142 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
143 ## @param defaultInitContainers.volumePermissions.resourcesPreset Set ClickHouse Keeper "volume-permissions" init container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if defaultInitContainers.volumePermissions.resources is set (defaultInitContainers.volumePermissions.resources is recommended for production).
145 resourcesPreset: "nano"
146 ## @param defaultInitContainers.volumePermissions.resources Set ClickHouse Keeper "volume-permissions" init container requests and limits for different resources like CPU or memory (essential for production workloads)
157## @section ClickHouse parameters
159## Iamguarded ClickHouse image
160## @param image.registry [default: REGISTRY_NAME] ClickHouse image registry
161## @param image.repository [default: REPOSITORY_NAME/clickhouse] ClickHouse image repository
162## @skip image.tag ClickHouse image tag (immutable tags are recommended)
163## @param image.digest ClickHouse image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
164## @param image.pullPolicy ClickHouse image pull policy
165## @param image.pullSecrets ClickHouse image pull secrets
166## @param image.debug Enable ClickHouse image debug mode
170 repository: chainguard-private/clickhouse-iamguarded
173 ## Specify a imagePullPolicy
174 ## ref: http://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
176 pullPolicy: IfNotPresent
177 ## Optionally specify an array of imagePullSecrets.
178 ## Secrets must be manually created in the namespace.
179 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
182 ## - myRegistryKeySecretName
188## @param clusterName ClickHouse cluster name
192## @param auth.username ClickHouse Admin username
193## @param auth.password ClickHouse Admin password
194## @param auth.existingSecret Name of a secret containing the Admin password
195## @param auth.existingSecretKey Name of the key inside the existing secret
201 existingSecretKey: ""
202## @param tls.enabled Enable TLS configuration for ClickHouse
203## @param tls.autoGenerated.enabled Enable automatic generation of TLS certificates
204## @param tls.autoGenerated.engine Mechanism to generate the certificates (allowed values: helm, cert-manager)
205## @param tls.autoGenerated.certManager.existingIssuer The name of an existing Issuer to use for generating the certificates (only for `cert-manager` engine)
206## @param tls.autoGenerated.certManager.existingIssuerKind Existing Issuer kind, defaults to Issuer (only for `cert-manager` engine)
207## @param tls.autoGenerated.certManager.keyAlgorithm Key algorithm for the certificates (only for `cert-manager` engine)
208## @param tls.autoGenerated.certManager.keySize Key size for the certificates (only for `cert-manager` engine)
209## @param tls.autoGenerated.certManager.duration Duration for the certificates (only for `cert-manager` engine)
210## @param tls.autoGenerated.certManager.renewBefore Renewal period for the certificates (only for `cert-manager` engine)
211## @param tls.ca CA certificate for TLS. Ignored if `tls.existingCASecret` is set
212## @param tls.existingCASecret The name of an existing Secret containing the CA certificate for TLS
213## @param tls.server.cert TLS certificate for ClickHouse servers. Ignored if `tls.server.existingSecret` is set
214## @param tls.server.key TLS key for ClickHouse servers. Ignored if `tls.server.existingSecret` is set
215## @param tls.server.existingSecret The name of an existing Secret containing the TLS certificates for ClickHouse servers
216## @param tls.keeper.cert TLS certificate for ClickHouse Keeper. Ignored if `tls.keeper.existingSecret` is set
217## @param tls.keeper.key TLS key for ClickHouse Keeper. Ignored if `tls.keeper.existingSecret` is set
218## @param tls.keeper.existingSecret The name of an existing Secret containing the TLS certificates for ClickHouse Keeper
227 existingIssuerKind: ""
242## @param logLevel Logging level
245## @param sampling.enabled Enable logging tables collected by sampling query profiler
249## @param configuration Specify content for ClickHouse configuration (basic one auto-generated based on other values otherwise)
252## @param existingConfigmap The name of an existing ConfigMap with your custom configuration for ClickHouse
255## @param configdFiles Extra configuration files to be mounted at config.d
256## ref: https://clickhouse.com/docs/operations/configuration-files
259## @param existingConfigdConfigmap The name of an existing ConfigMap with extra configuration files for ClickHouse
261existingConfigdConfigmap: ""
262## @param usersdFiles Extra users configuration files to be mounted at users.d
263## ref: https://clickhouse.com/docs/operations/configuration-files#user-settings
266## @param existingUsersdConfigmap The name of an existing ConfigMap with extra users configuration files for ClickHouse
268existingUsersdConfigmap: ""
269## @param existingUsersdSecret The name of an existing Secret with extra users configuration files for ClickHouse
271existingUsersdSecret: ""
272## @param initdbScripts Dictionary of initdb scripts
273## Specify dictionary of scripts to be run at first boot
276## my_init_script.sh: |
278## echo "Do something."
281## @param initdbScriptsSecret ConfigMap with the initdb scripts (Note: Overrides `initdbScripts`)
283initdbScriptsSecret: ""
284## @param startdbScripts Dictionary of startdb scripts
285## Specify dictionary of scripts to be run on every start
288## my_start_script.sh: |
290## echo "Do something."
293## @param startdbScriptsSecret ConfigMap with the startdb scripts (Note: Overrides `startdbScripts`)
295startdbScriptsSecret: ""
296## @param shards Number of ClickHouse shards to deploy
299## @param replicaCount Number of ClickHouse replicas per shard to deploy
300## if keeper enable, same as keeper count, keeper cluster by shards.
303## @param distributeReplicasByZone Schedules replicas of the same shard to different availability zones
305distributeReplicasByZone: false
306## @param exposeMysql Expose MySQL port container port
307## @param exposePostgresql Expose PostgreSQL port container port
310exposePostgresql: true
311## @param containerPorts.http ClickHouse HTTP container port
312## @param containerPorts.https ClickHouse HTTPS container port
313## @param containerPorts.tcp ClickHouse TCP container port
314## @param containerPorts.tcpSecure ClickHouse TCP (secure) container port
315## @param containerPorts.mysql ClickHouse MySQL container port
316## @param containerPorts.postgresql ClickHouse PostgreSQL container port
317## @param containerPorts.interserver ClickHouse Interserver container port
318## @param containerPorts.metrics ClickHouse metrics container port
329## Configure extra options for ClickHouse containers' liveness and readiness probes
330## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
331## @param livenessProbe.enabled Enable livenessProbe on ClickHouse containers
332## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
333## @param livenessProbe.periodSeconds Period seconds for livenessProbe
334## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
335## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
336## @param livenessProbe.successThreshold Success threshold for livenessProbe
341 initialDelaySeconds: 10
345## @param readinessProbe.enabled Enable readinessProbe on ClickHouse containers
346## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
347## @param readinessProbe.periodSeconds Period seconds for readinessProbe
348## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
349## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
350## @param readinessProbe.successThreshold Success threshold for readinessProbe
355 initialDelaySeconds: 10
359## @param startupProbe.enabled Enable startupProbe on ClickHouse containers
360## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
361## @param startupProbe.periodSeconds Period seconds for startupProbe
362## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
363## @param startupProbe.failureThreshold Failure threshold for startupProbe
364## @param startupProbe.successThreshold Success threshold for startupProbe
369 initialDelaySeconds: 10
373## @param customLivenessProbe Custom livenessProbe that overrides the default one
375customLivenessProbe: {}
376## @param customReadinessProbe Custom readinessProbe that overrides the default one
378customReadinessProbe: {}
379## @param customStartupProbe Custom startupProbe that overrides the default one
381customStartupProbe: {}
382## ClickHouse resource requests and limits
383## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
384## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
386resourcesPreset: "small"
387## @param resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
398## Configure Pods Security Context
399## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
400## @param podSecurityContext.enabled Enabled ClickHouse pods' Security Context
401## @param podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
402## @param podSecurityContext.sysctls Set kernel settings using the sysctl interface
403## @param podSecurityContext.supplementalGroups Set filesystem extra groups
404## @param podSecurityContext.fsGroup Set ClickHouse pod's Security Context fsGroup
405## If you are using Kubernetes 1.18, the following code needs to be commented out.
409 fsGroupChangePolicy: Always
411 supplementalGroups: []
413## Configure Container Security Context
414## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
415## @param containerSecurityContext.enabled Enable containers' Security Context
416## @param containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
417## @param containerSecurityContext.runAsUser Set containers' Security Context runAsUser
418## @param containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
419## @param containerSecurityContext.runAsNonRoot Set containers' Security Context runAsNonRoot
420## @param containerSecurityContext.readOnlyRootFilesystem Set read only root file system pod's
421## @param containerSecurityContext.privileged Set ClickHouse container's Security Context privileged
422## @param containerSecurityContext.allowPrivilegeEscalation Set ClickHouse container's Security Context allowPrivilegeEscalation
423## @param containerSecurityContext.capabilities.drop List of capabilities to be dropped
424## @param containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
426containerSecurityContext:
433 allowPrivilegeEscalation: false
434 readOnlyRootFilesystem: true
438 type: "RuntimeDefault"
439## @param command Override default container command (useful when using custom images)
442## @param args Override default container args (useful when using custom images)
445## @param automountServiceAccountToken Mount Service Account token in pod
447automountServiceAccountToken: false
448## @param hostAliases ClickHouse pods host aliases
449## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
452## @param podLabels Extra labels for ClickHouse pods
453## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
456## @param podAnnotations Annotations for ClickHouse pods
457## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
460## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
461## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
464## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
465## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
467podAntiAffinityPreset: soft
468## Node affinity preset
469## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
472 ## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
475 ## @param nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set
478 ## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set
485## @param affinity Affinity for ClickHouse pods assignment
486## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
487## NOTE: `podAffinityPreset`, `podAntiAffinityPreset`, and `nodeAffinityPreset` will be ignored when it's set
490## @param nodeSelector Node labels for ClickHouse pods assignment
491## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
494## @param tolerations Tolerations for ClickHouse pods assignment
495## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
498## @param updateStrategy.type ClickHouse StatefulSet strategy type
499## @param updateStrategy.rollingUpdate ClickHouse StatefulSet rolling update configuration parameters
500## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
505## @param podManagementPolicy Statefulset Pod management policy, it needs to be Parallel to be able to complete the cluster join
506## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
508podManagementPolicy: Parallel
509## @param priorityClassName ClickHouse pods' priorityClassName
512## @param topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
513## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
515topologySpreadConstraints: []
516## @param schedulerName Name of the k8s scheduler (other than default) for ClickHouse pods
517## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
520## @param terminationGracePeriodSeconds Seconds Redmine pod needs to terminate gracefully
521## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
523terminationGracePeriodSeconds: ""
524## @param lifecycleHooks for the ClickHouse container(s) to automate configuration before or after startup
527## @param extraEnvVars Array with extra environment variables to add to ClickHouse nodes
534## @param extraEnvVarsCM Name of existing ConfigMap containing extra env vars for ClickHouse nodes
537## @param extraEnvVarsSecret Name of existing Secret containing extra env vars for ClickHouse nodes
539extraEnvVarsSecret: ""
540## @param extraVolumes Optionally specify extra list of additional volumes for the ClickHouse pod(s)
543## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for the ClickHouse container(s)
546## @param extraVolumeClaimTemplates Optionally specify extra list of additional volumeClaimTemplates for the ClickHouse container(s)
548extraVolumeClaimTemplates: []
549## @param sidecars Add additional sidecar containers to the ClickHouse pod(s)
552## - name: your-image-name
554## imagePullPolicy: Always
557## containerPort: 1234
560## @param initContainers Add additional init containers to the ClickHouse pod(s)
561## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
564## - name: your-image-name
566## imagePullPolicy: Always
567## command: ['sh', '-c', 'echo "hello world"']
570## Pod Disruption Budget configuration
571## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
572## @param pdb.create Enable/disable a Pod Disruption Budget creation
573## @param pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
574## @param pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `pdb.minAvailable` and `pdb.maxUnavailable` are empty.
580## ClickHouse Autoscaling configuration
581## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
585 ## @param autoscaling.vpa.enabled Enable VPA
588 ## @param autoscaling.vpa.annotations Annotations for VPA resource
591 ## @param autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
593 controlledResources: []
594 ## @param autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
598 ## @param autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
603 ## @param autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
604 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
607## @section ClickHouse Traffic Exposure parameters
609## ClickHouse service parameters
612 ## @param service.type ClickHouse service type
615 ## @param service.perReplicaAccess Enable per-replica service creation
616 ## This is useful for exposing individual replicas externally via LoadBalancer or NodePort
618 perReplicaAccess: false
619 ## @param service.ports.http ClickHouse service HTTP port
620 ## @param service.ports.https ClickHouse service HTTPS port
621 ## @param service.ports.tcp ClickHouse service TCP port
622 ## @param service.ports.tcpSecure ClickHouse service TCP (secure) port
623 ## @param service.ports.mysql ClickHouse service MySQL port
624 ## @param service.ports.postgresql ClickHouse service PostgreSQL port
625 ## @param service.ports.interserver ClickHouse service Interserver port
626 ## @param service.ports.metrics ClickHouse service metrics port
637 ## Node ports to expose
638 ## @param service.nodePorts.http Node port for HTTP
639 ## @param service.nodePorts.https Node port for HTTPS
640 ## @param service.nodePorts.tcp Node port for TCP
641 ## @param service.nodePorts.tcpSecure Node port for TCP (with TLS)
642 ## @param service.nodePorts.mysql Node port for MySQL
643 ## @param service.nodePorts.postgresql Node port for PostgreSQL
644 ## @param service.nodePorts.interserver Node port for Interserver
645 ## @param service.nodePorts.metrics Node port for metrics
646 ## NOTE: choose port between <30000-32767>
657 ## @param service.clusterIP ClickHouse service Cluster IP
662 ## @param service.loadBalancerIP ClickHouse service Load Balancer IP (only if per-replica access is disabled)
663 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
666 ## @param service.loadBalancerIPs Array of ClickHouse service Load Balancer IPs (only if per-replica access is enabled). Length must be the same as shards multiplied by replicaCount
673 ## @param service.loadBalancerAnnotations Array of ClickHouse service Load Balancer annotations (only if per-replica access is enabled). Length must be the same as shards multiplied by replicaCount
675 ## loadBalancerAnnotations:
676 ## - external-dns.alpha.kubernetes.io/hostname: 1.external.example.com.
677 ## - external-dns.alpha.kubernetes.io/hostname: 2.external.example.com.
679 loadBalancerAnnotations: []
680 ## @param service.loadBalancerSourceRanges ClickHouse service Load Balancer sources
681 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
683 ## loadBalancerSourceRanges:
686 loadBalancerSourceRanges: []
687 ## @param service.externalTrafficPolicy ClickHouse service external traffic policy
688 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
690 externalTrafficPolicy: Cluster
691 ## @param service.annotations Additional custom annotations for ClickHouse service
694 ## @param service.extraPorts Extra ports to expose in ClickHouse service (normally used with the `sidecars` value)
697 ## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
698 ## Values: ClientIP or None
699 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
701 sessionAffinity: None
702 ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
703 ## sessionAffinityConfig:
705 ## timeoutSeconds: 300
707 sessionAffinityConfig: {}
708 ## Headless service properties
711 ## @param service.headless.annotations Annotations for the headless service.
714 ## @param service.headless.extraPorts Optionally specify extra ports to expose for the headless service.
717## ClickHouse Ingress parameters
718## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
721 ## @param ingress.enabled Enable ingress record generation for ClickHouse
724 ## @param ingress.pathType Ingress path type
726 pathType: ImplementationSpecific
727 ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
730 ## @param ingress.hostname Default host for the ingress record
732 hostname: clickhouse.local
733 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
734 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
735 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
738 ## @param ingress.path Default path for the ingress record
739 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
742 ## @param ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
743 ## Use this parameter to set the required annotations for cert-manager, see
744 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
747 ## kubernetes.io/ingress.class: nginx
748 ## cert-manager.io/cluster-issuer: cluster-issuer-name
751 ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
752 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
754 ## - Use the `ingress.secrets` parameter to create this TLS secret
755 ## - Rely on cert-manager to create it by setting the corresponding annotations
756 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
759 ## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
762 ## @param ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
765 ## - name: clickhouse.local
769 ## @param ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
774 ## serviceName: ssl-redirect
775 ## servicePort: use-annotation
778 ## @param ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
779 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
783 ## - clickhouse.local
784 ## secretName: clickhouse.local-tls
787 ## @param ingress.secrets Custom TLS certificates as secrets
788 ## NOTE: 'key' and 'certificate' are expected in PEM format
789 ## NOTE: 'name' should line up with a 'secretName' set further up
790 ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates
791 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
792 ## It is also possible to create and manage the certificates outside of this helm chart
793 ## Please see README.md for more information
796 ## - name: clickhouse.local-tls
798 ## -----BEGIN RSA PRIVATE KEY-----
800 ## -----END RSA PRIVATE KEY-----
802 ## -----BEGIN CERTIFICATE-----
804 ## -----END CERTIFICATE-----
807 ## @param ingress.extraRules Additional rules to be covered with this ingress record
808 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
811 ## - host: example.local
821## ClickHouse Network Policies
822## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
825 ## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
828 ## @param networkPolicy.allowExternal Don't require client label for connections
829 ## The Policy model to apply. When set to false, only pods with the correct
830 ## client label will have network access to the ports ClickHouse is listening
831 ## on. When true, ClickHouse will accept connections from any source
832 ## (with the correct destination port).
835 ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
837 allowExternalEgress: true
838 ## @param networkPolicy.addExternalClientAccess Allow access from pods with client label set to "true". Ignored if `networkPolicy.allowExternal` is true.
840 addExternalClientAccess: true
841 ## @param networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
851 ## - matchExpressions:
857 ## @param networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
867 ## - matchExpressions:
874 ## @param networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
875 ## @param networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
877 ingressNSMatchLabels: {}
878 ingressNSPodMatchLabels: {}
879## @section ClickHouse Persistence parameters
881## persistentVolumeClaimRetentionPolicy
882## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
883## @param persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
884## @param persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
885## @param persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
887persistentVolumeClaimRetentionPolicy:
891## Enable persistence using Persistent Volume Claims
892## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
895 ## @param persistence.enabled Enable persistence using Persistent Volume Claims
898 ## @param persistence.volumeName Name to assign the volume
901 ## @param persistence.existingClaim Name of an existing PVC to use
904 ## @param persistence.storageClass Storage class of backing PVC
905 ## If defined, storageClassName: <storageClass>
906 ## If set to "-", storageClassName: "", which disables dynamic provisioning
907 ## If undefined (the default) or set to null, no storageClassName spec is
908 ## set, choosing the default provisioner. (gp2 on AWS, standard on
909 ## GKE, AWS & OpenStack)
912 ## @param persistence.labels Persistent Volume Claim labels
915 ## @param persistence.annotations Persistent Volume Claim annotations
918 ## @param persistence.accessModes Persistent Volume Access Modes
922 ## @param persistence.size Size of data volume
925 ## @param persistence.selector Selector to match an existing Persistent Volume for ClickHouse data PVC
926 ## If set, the PVC can't have a PV dynamically provisioned for it
933 ## @param persistence.dataSource Custom PVC data source
936 ## @param persistence.mountPath Mount path of the ClickHouse data volume
938 mountPath: /iamguarded/clickhouse
939## @section ClickHouse Keeper parameters
941 ## @param keeper.enabled Deploy ClickHouse Keeper to provide coordination capabilities
944 ## Iamguarded ClickHouse Keeper image
945 ## @param keeper.image.registry [default: REGISTRY_NAME] ClickHouse Keeper image registry
946 ## @param keeper.image.repository [default: REPOSITORY_NAME/clickhouse-keeper] ClickHouse Keeper image repository
947 ## @skip keeper.image.tag ClickHouse Keeper image tag (immutable tags are recommended)
948 ## @param keeper.image.digest ClickHouse Keeper image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)
949 ## @param keeper.image.pullPolicy ClickHouse Keeper image pull policy
950 ## @param keeper.image.pullSecrets ClickHouse Keeper image pull secrets
951 ## @param keeper.image.debug Enable ClickHouse image debug mode
955 repository: chainguard-private/clickhouse-keeper-iamguarded
958 ## Specify a imagePullPolicy
959 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
960 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
962 pullPolicy: IfNotPresent
963 ## Optionally specify an array of imagePullSecrets.
964 ## Secrets must be manually created in the namespace.
965 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
968 ## - myRegistryKeySecretName
971 ## Set to true if you would like to see extra information on logs
974 ## @param keeper.replicaCount Number of ClickHouse Keeper replicas to deploy
977 ## @param keeper.configuration Specify content for ClickHouse Keeper configuration (basic one auto-generated based on other values otherwise)
980 ## @param keeper.existingConfigmap The name of an existing ConfigMap with your custom configuration for ClickHouse Keeper
982 existingConfigmap: ""
983 ## @param keeper.configdFiles Extra configuration files to be mounted at keeper_config.d
984 ## ref: https://clickhouse.com/docs/operations/configuration-files
987 ## @param keeper.existingConfigdConfigmap The name of an existing ConfigMap with extra configuration files for ClickHouse Keeper
989 existingConfigdConfigmap: ""
990 ## @param keeper.usersdFiles Extra users configuration files to be mounted at users.d
991 ## ref: https://clickhouse.com/docs/operations/configuration-files#user-settings
994 ## @param keeper.existingUsersdConfigmap The name of an existing ConfigMap with extra users configuration files for ClickHouse Keeper
996 existingUsersdConfigmap: ""
997 ## @param keeper.existingUsersdSecret The name of an existing Secret with extra users configuration files for ClickHouse Keeper
999 existingUsersdSecret: ""
1000 ## @param keeper.containerPorts.tcp ClickHouse Keeper TCP container port
1001 ## @param keeper.containerPorts.tcpSecure ClickHouse TCP (secure) container port
1002 ## @param keeper.containerPorts.raft ClickHouse Keeper Raft container port
1008 ## @param keeper.extraContainerPorts ClickHouse Keeper extra containerPorts
1010 extraContainerPorts: []
1011 ## Configure extra options for ClickHouse Keeper containers' liveness and readiness probes
1012 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1013 ## @param keeper.livenessProbe.enabled Enable livenessProbe on ClickHouse Keeper containers
1014 ## @param keeper.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1015 ## @param keeper.livenessProbe.periodSeconds Period seconds for livenessProbe
1016 ## @param keeper.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1017 ## @param keeper.livenessProbe.failureThreshold Failure threshold for livenessProbe
1018 ## @param keeper.livenessProbe.successThreshold Success threshold for livenessProbe
1023 initialDelaySeconds: 10
1027 ## @param keeper.readinessProbe.enabled Enable readinessProbe on ClickHouse Keeper containers
1028 ## @param keeper.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1029 ## @param keeper.readinessProbe.periodSeconds Period seconds for readinessProbe
1030 ## @param keeper.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1031 ## @param keeper.readinessProbe.failureThreshold Failure threshold for readinessProbe
1032 ## @param keeper.readinessProbe.successThreshold Success threshold for readinessProbe
1037 initialDelaySeconds: 10
1041 ## @param keeper.startupProbe.enabled Enable startupProbe on ClickHouse Keeper containers
1042 ## @param keeper.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1043 ## @param keeper.startupProbe.periodSeconds Period seconds for startupProbe
1044 ## @param keeper.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1045 ## @param keeper.startupProbe.failureThreshold Failure threshold for startupProbe
1046 ## @param keeper.startupProbe.successThreshold Success threshold for startupProbe
1051 initialDelaySeconds: 10
1055 ## @param keeper.customLivenessProbe Custom livenessProbe that overrides the default one
1057 customLivenessProbe: {}
1058 ## @param keeper.customReadinessProbe Custom readinessProbe that overrides the default one
1060 customReadinessProbe: {}
1061 ## @param keeper.customStartupProbe Custom startupProbe that overrides the default one
1063 customStartupProbe: {}
1064 ## ClickHouse Keeper resource requests and limits
1065 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1066 ## @param keeper.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if keeper.resources is set (keeper.resources is recommended for production).
1068 resourcesPreset: "small"
1069 ## @param keeper.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1080 ## Configure ClickHouse Keeper pods Security Context
1081 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1082 ## @param keeper.podSecurityContext.enabled Enabled ClickHouse Keeper pods' Security Context
1083 ## @param keeper.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1084 ## @param keeper.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1085 ## @param keeper.podSecurityContext.supplementalGroups Set filesystem extra groups
1086 ## @param keeper.podSecurityContext.fsGroup Set ClickHouse Keeper pod's Security Context fsGroup
1090 fsGroupChangePolicy: Always
1092 supplementalGroups: []
1094 ## Configure ClickHouse Keeper containers (only main one) Security Context
1095 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1096 ## @param keeper.containerSecurityContext.enabled Enabled ClickHouse Keeper containers' Security Context
1097 ## @param keeper.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1098 ## @param keeper.containerSecurityContext.runAsUser Set ClickHouse Keeper containers' Security Context runAsUser
1099 ## @param keeper.containerSecurityContext.runAsGroup Set ClickHouse Keeper containers' Security Context runAsGroup
1100 ## @param keeper.containerSecurityContext.runAsNonRoot Set ClickHouse Keeper containers' Security Context runAsNonRoot
1101 ## @param keeper.containerSecurityContext.privileged Set web container's Security Context privileged
1102 ## @param keeper.containerSecurityContext.allowPrivilegeEscalation Set web container's Security Context allowPrivilegeEscalation
1103 ## @param keeper.containerSecurityContext.readOnlyRootFilesystem Set web container's Security Context readOnlyRootFilesystem
1104 ## @param keeper.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1105 ## @param keeper.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1107 containerSecurityContext:
1114 allowPrivilegeEscalation: false
1115 readOnlyRootFilesystem: true
1119 type: "RuntimeDefault"
1120 ## @param keeper.command Override default container command (useful when using custom images)
1123 ## @param keeper.args Override default container args (useful when using custom images)
1126 ## @param keeper.extraEnvVars Array with extra environment variables to add to ClickHouse Keeper container(s)
1133 ## @param keeper.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for ClickHouse Keeper container(s)
1136 ## @param keeper.extraEnvVarsSecret Name of existing Secret containing extra env vars for ClickHouse Keeper container(s)
1138 extraEnvVarsSecret: ""
1139 ## @param keeper.automountServiceAccountToken Mount Service Account token in pod
1141 automountServiceAccountToken: false
1142 ## @param keeper.hostAliases ClickHouse Keeper pods host aliases
1143 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1146 ## @param keeper.podLabels Extra labels for ClickHouse Keeper pods
1147 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1150 ## @param keeper.podAnnotations Annotations for ClickHouse Keeper pods
1151 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1154 ## @param keeper.podAffinityPreset Pod affinity preset. Ignored if `keeper.affinity` is set. Allowed values: `soft` or `hard`
1155 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1157 podAffinityPreset: ""
1158 ## @param keeper.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `keeper.affinity` is set. Allowed values: `soft` or `hard`
1159 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1161 podAntiAffinityPreset: soft
1162 ## Node affinity preset
1163 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1164 ## @param keeper.nodeAffinityPreset.key Node label key to match. Ignored if `keeper.affinity` is set.
1165 ## @param keeper.nodeAffinityPreset.type Node affinity preset type. Ignored if `keeper.affinity` is set. Allowed values: `soft` or `hard`
1166 ## @param keeper.nodeAffinityPreset.values Node label values to match. Ignored if `keeper.affinity` is set.
1170 ## key: "kubernetes.io/e2e-az-name"
1180 ## @param keeper.affinity Affinity for ClickHouse Keeper pods assignment
1181 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1182 ## NOTE: `keeper.podAffinityPreset`, `keeper.podAntiAffinityPreset`, and `keeper.nodeAffinityPreset` will be ignored when it's set
1185 ## @param keeper.nodeSelector Node labels for ClickHouse Keeper pods assignment
1186 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1189 ## @param keeper.tolerations Tolerations for ClickHouse Keeper pods assignment
1190 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1193 ## @param keeper.updateStrategy.type ClickHouse Keeper StatefulSet strategy type
1194 ## @param keeper.updateStrategy.rollingUpdate ClickHouse Keeper StatefulSet rolling update configuration parameters
1195 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1200 ## @param keeper.podManagementPolicy StatefulSet Pod management policy, it needs to be Parallel to be able to complete the cluster join
1201 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1203 podManagementPolicy: Parallel
1204 ## @param keeper.priorityClassName ClickHouse Keeper pods' priorityClassName
1206 priorityClassName: ""
1207 ## @param keeper.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1208 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1210 topologySpreadConstraints: []
1211 ## @param keeper.schedulerName Name of the k8s scheduler (other than default) for ClickHouse pods
1212 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1215 ## @param keeper.terminationGracePeriodSeconds Seconds Redmine pod needs to terminate gracefully
1216 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1218 terminationGracePeriodSeconds: ""
1219 ## @param keeper.lifecycleHooks for the ClickHouse Keeper container(s) to automate configuration before or after startup
1222 ## @param keeper.extraVolumes Optionally specify extra list of additional volumes for the ClickHouse Keeper pod(s)
1225 ## @param keeper.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the ClickHouse Keeper container(s)
1227 extraVolumeMounts: []
1228 ## @param keeper.sidecars Add additional sidecar containers to the ClickHouse Keeper pod(s)
1231 ## - name: your-image-name
1232 ## image: your-image
1233 ## imagePullPolicy: Always
1236 ## containerPort: 1234
1239 ## @param keeper.initContainers Add additional init containers to the ClickHouse Keeper pod(s)
1240 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1243 ## - name: your-image-name
1244 ## image: your-image
1245 ## imagePullPolicy: Always
1246 ## command: ['sh', '-c', 'echo "hello world"']
1249 ## ClickHouse Keeper Pod Disruption Budget
1250 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
1251 ## @param keeper.pdb.create Deploy a pdb object for the ClickHouse Keeper pods
1252 ## @param keeper.pdb.minAvailable Maximum number/percentage of unavailable ClickHouse Keeper replicas
1253 ## @param keeper.pdb.maxUnavailable Maximum number/percentage of unavailable ClickHouse Keeper replicas
1259 ## ClickHouse Keeper Autoscaling configuration
1260 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
1264 ## @param keeper.autoscaling.vpa.enabled Enable VPA
1267 ## @param keeper.autoscaling.vpa.annotations Annotations for VPA resource
1270 ## @param keeper.autoscaling.vpa.controlledResources VPA List of resources that the vertical pod autoscaler can control. Defaults to cpu and memory
1272 controlledResources: []
1273 ## @param keeper.autoscaling.vpa.maxAllowed VPA Max allowed resources for the pod
1277 ## @param keeper.autoscaling.vpa.minAllowed VPA Min allowed resources for the pod
1282 ## @param keeper.autoscaling.vpa.updatePolicy.updateMode Autoscaling update policy Specifies whether recommended updates are applied when a Pod is started and whether recommended updates are applied during the life of a Pod
1283 ## Possible values are "Off", "Initial", "Recreate", and "Auto".
1286 ## @section ClickHouse Keeper Traffic Exposure parameters
1288 ## ClickHouse Keeper service parameters
1291 ## @param keeper.service.type ClickHouse Keeper service type
1294 ## @param keeper.service.ports.tcp ClickHouse Keeper service TCP port
1295 ## @param keeper.service.ports.tcpSecure ClickHouse Keeper service TCP (secure) port
1296 ## @param keeper.service.ports.raft ClickHouse Keeper service Raft port
1302 ## Node ports to expose
1303 ## @param keeper.service.nodePorts.tcp Node port for ClickHouse Keeper service TCP port
1304 ## @param keeper.service.nodePorts.tcpSecure Node port for ClickHouse Keeper service TCP (secure) port
1305 ## @param keeper.service.nodePorts.raft Node port for ClickHouse Keeper service Raft port
1306 ## NOTE: choose port between <30000-32767>
1312 ## @param keeper.service.clusterIP ClickHouse Keeper service Cluster IP
1317 ## @param keeper.service.loadBalancerIP ClickHouse Keeper service Load Balancer IP
1318 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1321 ## @param keeper.service.loadBalancerSourceRanges ClickHouse Keeper service Load Balancer sources
1322 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1324 ## loadBalancerSourceRanges:
1327 loadBalancerSourceRanges: []
1328 ## @param keeper.service.externalTrafficPolicy ClickHouse Keeper service external traffic policy
1329 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1331 externalTrafficPolicy: Cluster
1332 ## @param keeper.service.annotations Additional custom annotations for ClickHouse Keeper service
1335 ## @param keeper.service.extraPorts Extra ports to expose in ClickHouse Keeper service (normally used with the `sidecars` value)
1338 ## @param keeper.service.sessionAffinity Control where client requests go, to the same pod or round-robin
1339 ## Values: ClientIP or None
1340 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
1342 sessionAffinity: None
1343 ## @param keeper.service.sessionAffinityConfig Additional settings for the sessionAffinity
1344 ## sessionAffinityConfig:
1346 ## timeoutSeconds: 300
1348 sessionAffinityConfig: {}
1349 ## Headless service properties
1352 ## @param keeper.service.headless.annotations Annotations for the headless service.
1355 ## @param keeper.service.headless.extraPorts Optionally specify extra ports to expose for the headless service.
1358 ## ClickHouse Keeper Network Policies
1359 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1362 ## @param keeper.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1365 ## @param keeper.networkPolicy.allowExternal Don't require client label for connections
1366 ## The Policy model to apply. When set to false, only pods with the correct
1367 ## client label will have network access to the ports ClickHouse Keeper is listening
1368 ## on. When true, ClickHouse Keeper will accept connections from any source
1369 ## (with the correct destination port).
1372 ## @param keeper.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1374 allowExternalEgress: true
1375 ## @param keeper.networkPolicy.addExternalClientAccess Allow access from pods with client label set to "true". Ignored if `keeper.networkPolicy.allowExternal` is true.
1377 addExternalClientAccess: true
1378 ## @param keeper.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1388 ## - matchExpressions:
1394 ## @param keeper.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1404 ## - matchExpressions:
1411 ## @param keeper.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1412 ## @param keeper.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1414 ingressNSMatchLabels: {}
1415 ingressNSPodMatchLabels: {}
1416 ## @section ClickHouse Keeper Persistence parameters
1418 ## persistentVolumeClaimRetentionPolicy
1419 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1420 ## @param keeper.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
1421 ## @param keeper.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1422 ## @param keeper.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1424 persistentVolumeClaimRetentionPolicy:
1428 ## Enable persistence using Persistent Volume Claims
1429 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1432 ## @param keeper.persistence.enabled Enable ClickHouse Keeper data persistence using PVC
1435 ## @param keeper.persistence.existingClaim A manually managed Persistent Volume and Claim
1436 ## If defined, PVC must be created manually before volume will be bound
1437 ## The value is evaluated as a template
1440 ## @param keeper.persistence.storageClass PVC Storage Class for ClickHouse Keeper data volume
1441 ## If defined, storageClassName: <storageClass>
1442 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1443 ## If undefined (the default) or set to null, no storageClassName spec is
1444 ## set, choosing the default provisioner.
1447 ## @param keeper.persistence.accessModes Persistent Volume Access Modes
1451 ## @param keeper.persistence.size PVC Storage Request for ClickHouse Keeper data volume
1454 ## @param keeper.persistence.annotations Annotations for the PVC
1457 ## @param keeper.persistence.labels Labels for the PVC
1460 ## @param keeper.persistence.selector Selector to match an existing Persistent Volume for ClickHouse Keeper data PVC. If set, the PVC can't have a PV dynamically provisioned for it
1466 ## @param keeper.persistence.dataSource Custom PVC data source
1469 ## @param keeper.persistence.mountPath Mount path of the ClickHouse Keeper data volume
1471 mountPath: /iamguarded/clickhouse-keeper
1472## @section Other Parameters
1474## ServiceAccount configuration
1477 ## @param serviceAccount.create Specifies whether a ServiceAccount should be created
1480 ## @param serviceAccount.name The name of the ServiceAccount to use.
1481 ## If not set and create is true, a name is generated using the common.names.fullname template
1484 ## @param serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
1487 ## @param serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1489 automountServiceAccountToken: false
1490## @section Prometheus metrics parameters
1492 ## @param metrics.enabled Enable the export of Prometheus metrics
1495 ## @param metrics.podAnnotations Pod annotations for enabling Prometheus to access the metrics endpoint
1498 ## Prometheus Operator ServiceMonitor configuration
1501 ## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
1504 ## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
1507 ## @param metrics.serviceMonitor.annotations Additional custom annotations for the ServiceMonitor
1510 ## @param metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
1513 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in Prometheus
1516 ## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
1519 ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped.
1520 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1525 ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
1526 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1528 ## scrapeTimeout: 10s
1531 ## @param metrics.serviceMonitor.metricRelabelings Specify additional relabeling of metrics
1533 metricRelabelings: []
1534 ## @param metrics.serviceMonitor.relabelings Specify general relabeling
1537 ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
1539 ## prometheus: my-prometheus
1542 ## Prometheus Operator PrometheusRule configuration
1545 ## @param metrics.prometheusRule.enabled Create a PrometheusRule for Prometheus Operator
1548 ## @param metrics.prometheusRule.namespace Namespace for the PrometheusRule Resource (defaults to the Release Namespace)
1551 ## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
1553 additionalLabels: {}
1554 ## @param metrics.prometheusRule.rules PrometheusRule definitions
1555 ## - alert: ClickHouseServerRestart
1557 ## message: ClickHouse server started recently
1558 ## expr: ClickHouseAsyncMetrics_Uptime > 1 < 180
1561 ## severity: warning
1563## @section External ClickHouse Keeper / Zookeeper parameters
1566 ## @param externalZookeeper.servers List of external ClickHouse Keeper / Zookeeper servers to use
1567 ## @param externalZookeeper.port Port of the ClickHouse Keeper / Zookeeper servers