Skip to content

Latest commit

 

History

History
157 lines (119 loc) · 15.6 KB

File metadata and controls

157 lines (119 loc) · 15.6 KB

2GIS Search API service

Use this Helm chart to deploy Search API service, which is a part of 2GIS's On-Premise Search services.

Read more about the On-Premise solution here.

Note:

All On-Premise services are beta, and under development.

See the documentation to learn about:

  • Architecture of the service.

  • Installing the service.

    When filling in the keys for values-search.yaml configuration file, refer to the documentation and the list of keys below.

  • Updating the service.

Values

Docker Registry settings

Name Description Value
dgctlDockerRegistry Docker Registry endpoint where On-Premise services' images reside. Format: host:port ""

Common settings

Name Description Value
podAnnotations Kubernetes pod annotations {}
podLabels Kubernetes pod labels {}
replicaCount A replica count for the pod 1
revisionHistoryLimit Revision history limit (used for rolling back a deployment). 3
nodeSelector Kubernetes node selectors {}
affinity Kubernetes pod affinity {}
tolerations Kubernetes tolerations settings []
redeployLabel If this label is changed since the last deployment, the whole chart will be redeployed ""

Deployment Artifacts Storage settings

Name Description Value
dgctlStorage.host S3 endpoint. Format: host:port ""
dgctlStorage.bucket S3 bucket name ""
dgctlStorage.accessKey S3 access key for accessing the bucket ""
dgctlStorage.secretKey S3 secret key for accessing the bucket ""
dgctlStorage.manifest The path to the manifest file. Format: manifests/0000000000.json
This file contains the description of pieces of data that the service requires to operate
""
dgctlStorage.secure If S3 uses https. false
dgctlStorage.region S3 region ""

Deployment settings

Name Description Value
api.image.repository Repository 2gis-on-premise/search-api
api.image.tag Tag 7.80.0
api.image.pullPolicy Image pull policy IfNotPresent

API settings

Name Description Value
api.dataDir Path to the directory storing search indexes /data
api.fcgiPort TCP port of the Search API 9090
api.logLevel Log level Info
api.logFormat Log format: json or plaintext json
api.timeout Search timeout (in milliseconds) 5000
api.configOpt Additional options (for debugging purposes) []

NGINX settings

Name Description Value
nginx.image.repository Docker Repository 2gis-on-premise/search-nginx
nginx.image.tag Docker image tag 1.21.6
nginx.image.pullPolicy Image pull policy IfNotPresent
nginx.httpPort HTTP port on which NGINX will be listening 8080

Strategy settings

Name Description Value
strategy.type Type of Kubernetes deployment. Can be Recreate or RollingUpdate Strategy RollingUpdate
strategy.rollingUpdate.maxUnavailable Maximum number of pods that can be created over the desired number of pods when doing rolling update 0
strategy.rollingUpdate.maxSurge Maximum number of pods that can be unavailable during the rolling update process 1

Service settings

Name Description Value
service.annotations Kubernetes service annotations {}
service.labels Kubernetes service labels {}
service.type Kubernetes service type ClusterIP
service.port Service port 80

Kubernetes Pod Disruption Budget settings

Name Description Value
pdb.enabled If PDB is enabled for the service true
pdb.minAvailable How many pods must be available after the eviction ""
pdb.maxUnavailable How many pods can be unavailable after the eviction 1

Kubernetes Horizontal Pod Autoscaling settings

Name Description Value
hpa.enabled If HPA is enabled for the service false
hpa.minReplicas Lower limit for the number of replicas to which the autoscaler can scale down 1
hpa.maxReplicas Upper limit for the number of replicas to which the autoscaler can scale up 2
hpa.scaleDownStabilizationWindowSeconds Scale-down window ""
hpa.scaleUpStabilizationWindowSeconds Scale-up window ""
hpa.targetCPUUtilizationPercentage Target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used 80
hpa.targetMemoryUtilizationPercentage Target average memory utilization (represented as a percentage of requested memory) over all the pods; if not specified the default autoscaling policy will be used ""

Kubernetes Ingress settings

Name Description Value
ingress.enabled If Ingress is enabled for the service. false
ingress.className Name of the Ingress controller class. nginx
ingress.hosts[0].host Hostname for the Ingress service. search-api.example.com
ingress.hosts[0].paths[0].path Path of the host for the Ingress service. /
ingress.hosts[0].paths[0].pathType Type of the path for the Ingress service. Prefix
ingress.tls TLS configuration []

api.resources Kubernetes resource management settings

Name Description Value
api.resources Limits for the API service {}
api.resources.requests.cpu A CPU request, e.g., 100m
api.resources.requests.memory A memory request, e.g., 128Mi
api.resources.limits.cpu A CPU limit, e.g., 100m
api.resources.limits.memory A memory limit, e.g., 128Mi
nginx.resources Limits for the NGINX service {}
nginx.resources.requests.cpu A CPU request, e.g., 100m
nginx.resources.requests.memory A memory request, e.g., 128Mi
nginx.resources.limits.cpu A CPU limit, e.g., 100m
nginx.resources.limits.memory A memory limit, e.g., 128Mi

customCAs Custom Certificate Authority

Name Description Value
customCAs.bundle Custom CA text representation of the X.509 PEM public-key certificate ""
customCAs.certsPath Custom CA bundle mount directory in the container. If empty, the default value: "/usr/local/share/ca-certificates" ""

Maintainers

Name Email Url
2gis on-premise@2gis.com https://github.com/2gis