ElasticSearch installation
Document version: 250. Automatically generated.
Elasticsearch is a search engine based on the Lucene library.
It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.
ElasticSearch 7.17.18 is used as a storage for transcriptions of all conversations conducted with bots.
Our installation is designed to run inside the Kubernetes cluster.
Prerequisites
- Kubernetes cluster
- Helm (version 3 or higher)
- Access to Automate HELM Charts repository charts.sentione.com is granted
- Access to harbor-vm-proxy.sentione.com docker images repository is granted
- Local-path-provisioner (this is optional, but highly reccomended for data persistence. It may also be replaced with other dynamic PV provisioner like OpenEBS)
Steps
Add helm repository
To add the helm repository, use:
helm repo add sentione-hub https://charts.sentione.com/repository/helm --username USERNAME --password PASSWORD
and fetch repository data:
helm repo update
Container images repo access
The chart is based on images available on harbor-vm-proxy.sentione.com which requires authorization. Secret should be created by;
kubectl create secret \
docker-registry sec-harbor-vm-proxy.sentione.com \
--docker-server=<PRIVATE_REPO_ADDRESS> \
--docker-username=<USER> \
--docker-password=<PASSOWRD> \
--docker-email=<EMAIL> \
--namespace <NAMESPACE>
Values preparation
Before deploying the chart prepare values.yaml
file, according to this minimal template:
clusterDomain: cluster.local
elasticPassword: password
elasticUsername: elastic
replicas: 2
minimumMasterNodes: 1
volumeClaimTemplate:
storageClassName: local-path
Elasticsearch cluster size
The default deployment creates a 2 replicasreplicas: n
Data persistence
Elasticsearch is used as a storage for transcriptions of all conversations conducted with bots.
We recommend not turning off persistence as it causes data loss.
Deployment
In order to deploy the chart run, while replacing $ELASTICSEARCH_NAMESPACE
with the desired namespace in Kubernetes:
helm -n $ELASTICSEARCH_NAMESPACE upgrade --install elasticsearch sentione-hub/elasticsearch -f ./values.yaml --version 7.17.9-v2
Elasticsearch post-install
Copy elastic-stack-ca secret to namespace with sentione applications
kubectl get secret elastic-stack-ca --namespace=elasticsearch -o yaml | sed 's/namespace: .*/namespace: sentione/' | kubectl apply -f -
Updated 4 days ago