/
values.yaml
425 lines (340 loc) · 19.1 KB
/
values.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
# @section Docker Registry settings
# @param dgctlDockerRegistry Docker Registry endpoint where On-Premise services' images reside. Format: `host:port`.
dgctlDockerRegistry: ''
# @section Deployment Artifacts Storage settings
# @param dgctlStorage.host S3 endpoint. Format: `host:port`.
# @param dgctlStorage.secure If S3 uses https.
# @param dgctlStorage.bucket S3 bucket name.
# @param dgctlStorage.accessKey S3 access key for accessing the bucket.
# @param dgctlStorage.secretKey S3 secret key for accessing the bucket.
# @param dgctlStorage.manifest The path to the [manifest file](https://docs.2gis.com/en/on-premise/overview#nav-lvl2@paramCommon_deployment_steps). Format: `manifests/0000000000.json`.<br> This file contains the description of pieces of data that the service requires to operate.
dgctlStorage:
host: ''
secure: false
bucket: ''
accessKey: ''
secretKey: ''
manifest: ''
# @section Tiles API configuration
# @param name Name of the deployment.
# @param warningText Warning message on raster tiles for 'soft' block. Should contain '%d' for the number of days until the 'hard' block and '%s' for the account manager contact information.
# @param errorText Error message on raster tiles for 'hard' block. Should contain '%s' for the account manager contact information.
# @param emailManager Account manager contact information that will be used in warning and error messages on raster tiles for all kinds of blocks.
# @param logLevel Logging level for 'api', 'proxy', 'importer' (can be overridden by {service}.logLevelOverride option). Allowed options: info|warn|debug|error. If not defined, 'info' level will be used.
# @param logFormat Logging format for 'api', 'proxy', 'importer' (can be overridden by {service}.logFormatOverride option). Allowed options: text|json. If not defined, 'json' format will be used.
# @extra types **Tiles [types](https://docs.2gis.com/en/on-premise/map#nav-lvl1@paramArchitecture) enabled in Tiles API**
# @param types[0].kind Kind of tiles, should be one of: web, raster, native, mapbox.
# @param types[0].subtype Subtype of the additional tiles data. Should be empty for the regular tiles.
# @param types[0].name Name for the tileset. If empty, the value from the kind is used.
# @param types[0].keyspace Custom user defined keyspace. If the parameter is set, the database cleaning and maintenance processes are skipped.
# @param types[0].importAndCleanerDisabled If import and cleaner tasks are disabled for this tileset.
name: tiles-api
warningText: License expiring in %d days.\nPlease contact your account manager.\n%s
errorText: License expired.\nPlease contact your account manager.\n%s
emailManager: on-premise@2gis.com
logLevel: info
logFormat: json
types:
- kind: ''
subtype: ''
name: ''
keyspace: ''
importAndCleanerDisabled: false
# @section Apache Cassandra Data Storage settings
# @extra cassandra **Common settings**
# @param cassandra.environment Environment name (`prod`, `stage`, etc).<br>Support for differently named environments allows hosting multiple Tiles API deployments on a single Cassandra cluster.
# @param cassandra.hosts An array of the one of more IP adresses or hostnames of the Apache Cassandra installation.
# @param cassandra.replicaFactor Apache Cassandra [replication factor](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/architecture/archDataDistributeReplication.html).
# @param cassandra.consistencyLevelRead Apache Cassandra [read consistency level](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html#Writeconsistencylevels).
# @param cassandra.consistencyLevelWrite Apache Cassandra [write consistency level](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html#Readconsistencylevels).
# @param cassandra.timeout Timeout for connect attempts to the database.
# @extra cassandra.credentials **Credentials for accessing Apache Cassandra**
# @param cassandra.credentials.user User name to connect to the database.
# @param cassandra.credentials.password User password to connect to the database.
# @param cassandra.credentials.jmxUser JMX user name to be used by the Kubernetes Importer Job's cleaner process.
# @param cassandra.credentials.jmxPassword JMX password to be used by the Kubernetes Importer Job's cleaner process.
# @extra cassandra.ssl **SSL configuration for accessing Apache Cassandra**
# @param cassandra.ssl.enabled If Apache Cassandra uses SSL for client connections.
cassandra:
environment: ''
timeout: 90s
hosts: []
credentials:
user: cassandra
password: cassandra
jmxUser: cassandra
jmxPassword: cassandra
ssl:
enabled: false
replicaFactor: 3
consistencyLevelRead: LOCAL_QUORUM
consistencyLevelWrite: LOCAL_QUORUM
# @section API Keys proxy settings
# @extra proxy **Common settings**
# @param proxy.logLevelOverride A custom proxy logging level. Allowed options: info|warn|debug|error. If not defined, 'info' level will be used.
# @param proxy.logFormatOverride A custom proxy logging format. Allowed options: text|json. If not defined, 'json' format will be used.
# @param proxy.containerPort Port the proxy listens on.
# @param proxy.timeout Proxy timeout, in seconds.
# @extra proxy.resources **Kubernetes [resource management settings](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)**
# @param proxy.resources.requests.cpu A CPU request.
# @param proxy.resources.requests.memory A memory request.
# @param proxy.resources.limits.cpu A CPU limit.
# @param proxy.resources.limits.memory A memory limit.
# @extra proxy.image **Docker image settings**
# @param proxy.image.repository Docker Repository.
# @param proxy.image.tag Docker image tag.
# @param proxy.image.pullPolicy Kubernetes pull policy for the service's Docker image.
# @extra proxy.access **API Keys service access settings**
# @param proxy.access.enabled If access to the [API Keys service](https://docs.2gis.com/en/on-premise/keys) is enabled.
# @param proxy.access.url API Keys endpoint url, ex: http://keys-api.svc. **Required**
# @param proxy.access.token Service key for Keys API. **Required**
# @param proxy.access.syncPeriod Proxy sync period.
# @extra proxy.access.bss **BSS statistics receiver settings**
# @param proxy.access.bss.enabled If statistics receiver is enabled.
# @param proxy.access.bss.url BSS statistics receiver endpoint url, ex: http(s)://host:port/path. **Required**
proxy:
logLevelOverride:
logFormatOverride:
image:
repository: 2gis-on-premise/tiles-api-proxy
tag: 4.51.5
pullPolicy: IfNotPresent
containerPort: 5000
timeout: 5s
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 1
memory: 512Mi
access:
enabled: false
url: ''
token: ''
syncPeriod: 2m
bss:
enabled: false
url: ''
# @section Tiles API settings
# @extra api **Common settings**
# @param api.terminationGracePeriodSeconds Duration in seconds the Tiles API service pod needs to terminate gracefully.
# @param api.containerPort Tiles API container port.
# @param api.logLevelOverride A custom api logging level. Allowed options: info|warn|debug|error. If not defined, 'info' level will be used.
# @param api.logFormatOverride A custom api logging format. Allowed options: text|json. If not defined, 'json' format will be used.
# @param api.labels Kubernetes [labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/).
# @param api.annotations Kubernetes [annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/).
# @param api.podAnnotations Kubernetes [pod annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/).
# @param api.podLabels Kubernetes [pod labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/).
# @param api.nodeSelector Kubernetes [node selectors](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector).
# @param api.affinity Kubernetes pod [affinity settings](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity).
# @param api.tolerations Kubernetes [tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) settings.
# @param api.replicaCount A replica count for the pod.
# @param api.revisionHistory Revision history limit (used for [rolling back](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) a deployment).
# @extra api.resources **Kubernetes [resource management settings](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)**
# @param api.resources.requests.cpu A CPU request.
# @param api.resources.requests.memory A memory request.
# @param api.resources.limits.cpu A CPU limit.
# @param api.resources.limits.memory A memory limit.
api:
# @extra api.image **Docker image settings**
# @param api.image.repository Docker Repository.
# @param api.image.tag Docker image tag.
# @param api.image.pullPolicy Kubernetes pull policy for the service's Docker image.
# @param api.imagePullSecrets Kubernetes image pull secrets.
image:
repository: 2gis-on-premise/tiles-api
tag: 4.51.5
pullPolicy: IfNotPresent
terminationGracePeriodSeconds: 30
containerPort: 8000
logLevelOverride:
logFormatOverride:
labels: {}
annotations: {}
replicaCount: 3
revisionHistory: 1
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 1
memory: 512Mi
podAnnotations: {}
podLabels: {}
nodeSelector: {}
affinity: {}
tolerations: {}
imagePullSecrets: []
# @extra api.strategy.rollingUpdate **Service's Rolling Update strategy settings**
# @param api.strategy.rollingUpdate.maxUnavailable Maximum number of pods that can be created over the desired number of pods when doing [rolling update](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#rolling-update-deployment).
# @param api.strategy.rollingUpdate.maxSurge Maximum number of pods that can be unavailable during the [rolling update](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#rolling-update-deployment) process.
strategy:
rollingUpdate:
maxUnavailable: 0
maxSurge: 1
# @extra api.service **Kubernetes [service settings](https://kubernetes.io/docs/concepts/services-networking/service/) to expose the service**
# @param api.service.port Service port.
# @param api.service.type Kubernetes [service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types).
# @param api.service.annotations Kubernetes [service annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/).
# @param api.service.labels Kubernetes [service labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/).
service:
port: 80
type: ClusterIP
annotations: {}
labels: {}
# @section Kubernetes [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) settings
# @param api.ingress.enabled If Ingress is enabled for the service.
# @param api.ingress.className Name of the Ingress controller class.
# @param api.ingress.hosts[0].host Hostname for the Ingress service.
# @param api.ingress.hosts[0].paths[0].path Path of the host for the Ingress service.
# @param api.ingress.hosts[0].paths[0].pathType Type of the path for the Ingress service.
# @param api.ingress.tls TLS configuration
ingress:
enabled: false
className: nginx
hosts:
- host: tiles-api.example.com
paths:
- path: /
pathType: Prefix
tls: []
# - hosts:
# - tiles-api.example.com
# secretName: secret.tls
# @section Kubernetes [pod disruption budget](https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets) settings
# @param api.pdb.enabled If PDB is enabled for the service.
# @param api.pdb.minAvailable How many pods must be available after the eviction.
# @param api.pdb.maxUnavailable How many pods can be unavailable after the eviction.
pdb:
enabled: true
minAvailable: ''
maxUnavailable: 1
# @section Kubernetes [Horizontal Pod Autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) settings
# @param api.hpa.enabled If HPA is enabled for the service.
# @param api.hpa.minReplicas Lower limit for the number of replicas to which the autoscaler can scale down.
# @param api.hpa.maxReplicas Upper limit for the number of replicas to which the autoscaler can scale up.
# @param api.hpa.scaleDownStabilizationWindowSeconds Scale-down window.
# @param api.hpa.scaleUpStabilizationWindowSeconds Scale-up window.
# @param api.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.
# @param api.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.
hpa:
enabled: false
minReplicas: 1
maxReplicas: 1
scaleDownStabilizationWindowSeconds: ''
scaleUpStabilizationWindowSeconds: ''
targetCPUUtilizationPercentage: 50
targetMemoryUtilizationPercentage: ''
# @section Kubernetes [Vertical Pod Autoscaling](https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/README.md) settings
# @param api.vpa.enabled If VPA is enabled for the service.
# @param api.vpa.updateMode VPA [update mode](https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler#quick-start).
# @param api.vpa.minAllowed.cpu Lower limit for the number of CPUs to which the autoscaler can scale down.
# @param api.vpa.minAllowed.memory Lower limit for the RAM size to which the autoscaler can scale down.
# @param api.vpa.maxAllowed.cpu Upper limit for the number of CPUs to which the autoscaler can scale up.
# @param api.vpa.maxAllowed.memory Upper limit for the RAM size to which the autoscaler can scale up.
vpa:
enabled: false
updateMode: Auto
minAllowed:
cpu: 100m
memory: 128Mi
maxAllowed:
cpu: 1
memory: 512Mi
# @section Kubernetes Importer job settings
# @extra importer **Common settings**
# @param importer.enabled If Importer job is enabled.
# @param importer.serviceAccountOverride A custom service account for creating import/cleaning processes. If not defined it will be created automatically.
# @param importer.logLevelOverride A custom importer logging level. Allowed options: info|warn|debug|error. If not defined, 'info' level will be used.
# @param importer.logFormatOverride A custom importer logging format. Allowed options: text|json. If not defined, 'json' format will be used.
# @param importer.workerNum Number of parallel import processes (workers).
# @param importer.writerNum Number of write processes per import process (worker).
# @param importer.workerNumAttempts Number of attempts for import process (worker) if it is failing.
# @param importer.tolerations Kubernetes [tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) settings.
# @param importer.nodeSelector Kubernetes [node selectors](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector).
# @extra importer.resources **Kubernetes [resource management settings](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)**
# @param importer.resources.requests.cpu A CPU request.
# @param importer.resources.requests.memory A memory request.
# @param importer.resources.limits.cpu A CPU limit.
# @param importer.resources.limits.memory A memory limit.
importer:
enabled: true
serviceAccountOverride: ''
logLevelOverride:
logFormatOverride:
# @extra importer.image **Docker image settings**
# @param importer.image.repository Docker Repository.
# @param importer.image.tag Docker image tag.
# @param importer.image.pullPolicy Kubernetes pull policy for the service's Docker image.
# @param importer.imagePullSecrets Kubernetes image pull secrets.
image:
repository: 2gis-on-premise/tiles-api-importer
tag: 4.51.5
pullPolicy: IfNotPresent
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 100m
memory: 256Mi
workerNum: 6
writerNum: 8
workerNumAttempts: 3
# @extra importer.cleaner **Cassandra keyspace lifecycle management and Cleaner settings**
# @param importer.forceImport If enabled, then the Importer job will delete existing keyspace and do import, otherwise import will be skipped.
# @param importer.clearSnapshots If enabled, then the Importer job will delete keyspace's snapshot as well when deleting a keyspace.<br>It executes the `nodetool clearsnapshot` command over JMX to do so, and therefore requires JMS to be enabled on the Cassandra side, and `cassandra.credentials.jmxUser`/`cassandra.credentials.jmxPassword` values to be set.
# @param importer.cassandraHostsClockTimeCheckLimit Maximum difference over cassandra hosts clock time.
# @param importer.cleaner.enabled Enables deletion of obsolete tilesets before making new imports.
# @param importer.cleaner.limit Limit on the number of old tilesets to leave untouched when cleaning, minimum 1.
# @extra importer.workerResources **Kubernetes [resource management settings](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the cleaner process**
# @param importer.cleaner.resources.requests.cpu A CPU request.
# @param importer.cleaner.resources.requests.memory A memory request.
# @param importer.cleaner.resources.limits.cpu A CPU limit.
# @param importer.cleaner.resources.limits.memory A memory limit.
forceImport: false
clearSnapshots: false
cassandraHostsClockTimeCheckLimit: 1s
tolerations: {}
imagePullSecrets: []
nodeSelector: {}
# @extra importer.workerResources **Kubernetes [resource management settings](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for the workers**
# @param importer.workerResources.requests.cpu A CPU request.
# @param importer.workerResources.requests.memory A memory request.
# @param importer.workerResources.limits.cpu A CPU limit.
# @param importer.workerResources.limits.memory A memory limit.
workerResources:
requests:
cpu: 256m
memory: 512Mi
limits:
cpu: 2
memory: 2048Mi
cleaner:
enabled: false
limit: 3
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 1000m
memory: 512Mi
# @section License service settings
# @param license.url Address of the License service. Ex: https://license.svc
# @param license.retryPeriod Duration how often tiles server should try to update license status if it is failing to get it.
license:
url: ''
retryPeriod: 30s
# @section **Custom Certificate Authority**
# @param customCAs.bundle Custom CA [text representation of the X.509 PEM public-key certificate](https://www.rfc-editor.org/rfc/rfc7468#section-5.1)
# @param customCAs.certsPath Custom CA bundle mount directory in the container.
customCAs:
bundle: ''
# bundle: |
# -----BEGIN CERTIFICATE-----
# ...
# -----END CERTIFICATE-----
certsPath: ''