diff --git a/README.MD b/README.MD
index 626a5f9..39f2e9c 100644
--- a/README.MD
+++ b/README.MD
@@ -6,7 +6,7 @@ The helm chart is to be used to run Manticore Search in Kubernetes. It enables h
### What this helm chart does
* Deploys a StatefulSet with one or multiple Manticore Search pods (aka workers) that constitute a replication cluster.
-* Deploys a StatefulSet with a single Manticore Search balancer instance.
+* Rolls out a Deployment with one or multiple (you can configure it in `values.yaml`) Manticore Search balancer instance.
* Deploys needed services.
* Provides Prometheus exporter for the running instances of Manticore Search.
@@ -153,7 +153,9 @@ Each 5 seconds (see `balancer.runInterval`) the balancer:
* Checks tables on the 1st active worker.
* If it differs from its current state it catches up by reloading itself with a new tables configuration.
-When a worker stops it also sends a singal to the balancer, so it doesn't have to wait 5 seconds.
+When a worker starts or stops it also sends a signal to the balancer, so it doesn't have to wait 5 seconds.
+
+To increase high availability (HA) read operations, you can increment the balancer replica count. For this reason, you have the `balancer.replicaCount` parameter in `values.json`.
### How does auto OPTIMIZE work?
To enable automatic index compaction you need to update `values.yaml` and set `optimize.enabled = true`. `optimize.interval` controls how often to attempt disk chunks merging.
@@ -215,63 +217,72 @@ Read more details in [k8s documentation](https://kubernetes.io/docs/concepts/ser
# Variables
-| Variable | Description | Default |
-|---|---|---|
-| balancer.runInterval | How often to check for schema changes on workers, seconds | 5 |
-| balancer.config.content | Balancer config (only section `searchd`) | searchd
{
listen = /var/run/mysqld/mysqld.sock:mysql
listen = 9306:mysql
listen = 9308:http
log = /dev/stdout
query_log = /dev/stdout
query_log_format = sphinxql
pid_file = /var/run/manticore/searchd.pid
binlog_path = /var/lib/manticore/data
} |
-| worker.replicaCount | Default workers count (number of replicas) | 3 |
-| worker.clusterName | Name of replication cluster | manticore |
-| worker.persistence.size | Worker max storage size (mounted volume) | 1Gi |
-| worker.persistence.storageClass | Worker storage class | - |
+| Variable | Description | Default |
+|---|----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| balancer.replicaCount | Default balancers count (number of replicas) | 1 |
+| balancer.runInterval | How often to check for schema changes on workers, seconds | 5 |
+| balancer.config.content | Balancer config (only section `searchd`) | searchd
{
listen = /var/run/mysqld/mysqld.sock:mysql
listen = 9306:mysql
listen = 9308:http
log = /dev/stdout
query_log = /dev/stdout
query_log_format = sphinxql
pid_file = /var/run/manticore/searchd.pid
binlog_path = /var/lib/manticore/data
} |
+| worker.replicaCount | Default workers count (number of replicas) | 3 |
+| worker.replicationMode | Workers replication mode | master-slave |
+| worker.clusterName | Name of replication cluster | manticore |
+| worker.persistence.size | Worker max storage size (mounted volume) | 1Gi |
+| worker.persistence.storageClass | Worker storage class | - |
| worker.config.content | Worker config (only section `searchd`).
**Important**: you must always pass `$ip` to the config for proper functioning | searchd
{
listen = /var/run/mysqld/mysqld.sock:mysql
listen = 9306:mysql
listen = 9308:http
listen = 9301:mysql_vip
listen = $ip:9312
listen = $ip:9315-9415:replication
binlog_path = /var/lib/manticore/data
log = /dev/stdout
query_log = /dev/stdout
query_log_format = sphinxql
pid_file = /var/run/manticore/searchd.pid
data_dir = /var/lib/manticore
shutdown_timeout = 25s
auto_optimize = 0
} |
-| exporter.enabled | Enable Prometheus exporter pod | false |
+| exporter.enabled | Enable Prometheus exporter pod | false |
#### More Variables
-| Variable | Description | Default |
-|---|---|---|
-| balancer.image.repository | Balancer docker image repository | Docker hub
-| balancer.image.tag | Balancer image version | Same as chart version |
-| balancer.image.pullPolicy | Balancer docker image update policy | IfNotPresent |
-| balancer.service.ql.port | Balancer service SQL port (for searchd) | 9306 |
-| balancer.service.ql.targetPort | Balancer service SQL targetPort (for searchd) | 9306 |
-| balancer.service.http.port | Balancer service HTTP port (for searchd) | 9306 |
-| balancer.service.http.targetPort | Balancer service HTTP targetPort (for searchd) | 9306 |
-| balancer.service.observer.port | Balancer service port (for observer) | 8080 |
-| balancer.service.observer.targetPort | Balancer service targetPort (for observer) | 8080 |
-| balancer.config.path | Path to balancer config | /mnt/configmap.conf
-| balancer.config.index_ha_strategy | Distributed indexes HA strategy | nodeads
-| balancer.resources | Allows to set resources for balancer like mem or cpu requests and limits (see k8s docs for details) | {} |
-| worker.image.repository | Worker docker image repository | Docker hub |
-| worker.image.tag | Worker image version | Same as chart version |
-| worker.image.pullPolicy | Worker docker image update policy | IfNotPresent |
-| worker.quorumRecovery | Worker quorum auto recovery | false |
-| worker.quorumCheckInterval | Check quorum ever so often (seconds) | 15 |
-| worker.service.ql.port | Worker service SQL port | 9306 |
-| worker.service.ql.targetPort | Worker service SQL targetPort | 9306 |
-| worker.service.http.port | Worker service HTTP port | 9306 |
-| worker.service.http.targetPort | Worker service HTTP targetPort | 9306 |
-| worker.config.path | Path to worker config | /mnt/configmap.conf |
-| worker.resources | Allows to set resources for worker like mem or cpu requests and limits (see k8s docs for details) | {} |
-| nameOverride | Allows to override chart name | "" |
-| fullNameOverride | Allows to override full chart name | "" |
-| serviceAccount.annotations | Allows to add service account annotations | "" |
-| serviceAccount.name | Service account name | "manticore-sa" |
-| podAnnotations | Allows to set pods annotations for worker and balancer | {} |
-| podSecurityContext | Allows to set pod security contexts | {} |
-| securityContext | Allows to set security contexts (see k8s docs for details) | {} |
-| nodeSelector | Allows to set node selector for worker and balancer | {} |
-| tolerations | Allows to set tolerations (see k8s docs for details) | {} |
-| affinity | Allows to set affinity (see k8s docs for details) | {} |
-| exporter.image.repository | Prometheus exporter docker image repository | Docker hub |
-| exporter.image.tag | Prometheus exporter image version | Same as chart version |
-| exporter.image.pullPolicy | Prometheus exporter image update policy (see k8s docs for details) | IfNotPresent |
-| exporter.image.annotations | Prometheus exporter annotations (Need for correct resolving) | prometheus.io/path: /metrics
prometheus.io/port: "8081"
prometheus.io/scrape: "true" |
-| exporter.resources | Allows to set resources for exporter like mem or cpu requests and limits (see k8s docs for details) | {} |
-| optimize.enabled | Switch on auto optimize script | false |
-| optimize.interval | Interval in seconds for running optimize script | false |
+| Variable | Description | Default |
+|---------------------------------------|-----------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
+| balancer.extraPackages | Should it install the extra packages like Manticore Columnar Library for support of the columnar storage and secondary indexes, Manticore Buddy for support for specific commands etc | true |
+| balancer.image.repository | Balancer docker image repository | Docker hub |
+| balancer.image.tag | Balancer image version | Same as chart version |
+| balancer.image.pullPolicy | Balancer docker image update policy | IfNotPresent |
+| balancer.service.ql.port | Balancer service SQL port (for searchd) | 9306 |
+| balancer.service.ql.targetPort | Balancer service SQL targetPort (for searchd) | 9306 |
+| balancer.service.http.port | Balancer service HTTP port (for searchd) | 9306 |
+| balancer.service.http.targetPort | Balancer service HTTP targetPort (for searchd) | 9306 |
+| balancer.service.observer.port | Balancer service port (for observer) | 8080 |
+| balancer.service.observer.targetPort | Balancer service targetPort (for observer) | 8080 |
+| balancer.service.binary.port | Balancer service binary port (for searchd) | 9312 |
+| balancer.service.binary.targetPort | Balancer service binary targetPort (for searchd) | 9312 |
+| balancer.config.path | Path to balancer config | /mnt/configmap.conf |
+| balancer.config.index_ha_strategy | Distributed indexes HA strategy | nodeads |
+| balancer.resources | Allows to set resources for balancer like mem or cpu requests and limits (see k8s docs for details) | {} |
+| worker.image.repository | Worker docker image repository | Docker hub |
+| worker.image.tag | Worker image version | Same as chart version |
+| worker.image.pullPolicy | Worker docker image update policy | IfNotPresent |
+| worker.quorumRecovery | Worker quorum auto recovery | false |
+| worker.quorumCheckInterval | Check quorum ever so often (seconds) | 15 |
+| worker.autoAddTablesInCluster | Automatically adds all tables into cluster | 15 |
+| worker.service.ql.port | Worker service SQL port | 9306 |
+| worker.service.ql.targetPort | Worker service SQL targetPort | 9306 |
+| worker.service.http.port | Worker service HTTP port | 9306 |
+| worker.service.http.targetPort | Worker service HTTP targetPort | 9306 |
+| worker.config.path | Path to worker config | /mnt/configmap.conf |
+| worker.resources | Allows to set resources for worker like mem or cpu requests and limits (see k8s docs for details) | {} |
+| nameOverride | Allows to override chart name | "" |
+| fullNameOverride | Allows to override full chart name | "" |
+| serviceAccount.annotations | Allows to add service account annotations | "" |
+| serviceAccount.name | Service account name | "manticore-sa" |
+| podAnnotations | Allows to set pods annotations for worker and balancer | {} |
+| podSecurityContext | Allows to set pod security contexts | {} |
+| securityContext | Allows to set security contexts (see k8s docs for details) | {} |
+| nodeSelector | Allows to set node selector for worker and balancer | {} |
+| tolerations | Allows to set tolerations (see k8s docs for details) | {} |
+| affinity | Allows to set affinity (see k8s docs for details) | {} |
+| exporter.image.repository | Prometheus exporter docker image repository | Docker hub |
+| exporter.image.tag | Prometheus exporter image version | Same as chart version |
+| exporter.image.pullPolicy | Prometheus exporter image update policy (see k8s docs for details) | IfNotPresent |
+| exporter.image.annotations | Prometheus exporter annotations (Need for correct resolving) | prometheus.io/path: /metrics
prometheus.io/port: "8081"
prometheus.io/scrape: "true" |
+| exporter.resources | Allows to set resources for exporter like mem or cpu requests and limits (see k8s docs for details) | {} |
+| optimize.enabled | Switch on auto optimize script | true |
+| optimize.interval | Interval in seconds for running optimize script | 30 |
+| serviceMonitor.enabled | Enables service monitor resource for exporting runtime metrics to Prometheus | false |
+| serviceMonitor.interval | Set how frequently Prometheus should scrape | 30s |
+| serviceMonitor.scrapeTimeout | Set timeout for scrape | 10s |