forked from LibreTranslate/helm-chart
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvalues.yaml
246 lines (221 loc) · 8.06 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
# values.yaml for the libretranslate helm chart
# -- Number of replicas
replicaCount: 1
# -- Extra annotations for pods
podAnnotations: {}
# -- Extra annotations
annotations: {}
# -- Extra tolerations for pods
tolerations: []
# -- Chart name override
nameOverride: ""
# -- Full name of the deployment to override the default one
fullnameOverride: ""
# Image settings
image:
# -- default image is pulled from docker hub
repository: libretranslate/libretranslate
# -- if you set the image tag to latest, set the pull policy to "latest"
pullPolicy: IfNotPresent
# -- this defaults to appVersion in Chart.yaml, but you can override it
tag: ""
# Using a Private Registry
# If you want to use a custom image from a private registry, you'll need to
# create an image pull secret with the registry's credentials:
# kubectl create secret docker-registry my-registry-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
# imagePullSecrets:
# - name: my-registry-secret
imagePullSecrets: []
# Service settings
service:
type: ClusterIP
# -- targetPort for the service. If you update this,
# you also need to update appConfig.port to match
port: 5000
# Ingress settings
ingress:
enabled: false
# -- set this to the name of the ingress controller class to use like nginx
className: ""
annotations:
# cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/proxy-body-size: 10m
# Check for the adminUser key below.
# This will enable basic auth for the whole site.
# nginx.ingress.kubernetes.io/auth-type: basic
# nginx.ingress.kubernetes.io/auth-secret: libretranslate-auth
# nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required'
hosts:
- host: translate.example.com
paths:
- path: /
pathType: Prefix
# tls:
# - secretName: libretranslate-secret-tls
# hosts:
# - translate.example.com
# Security Context
securityContext:
fsGroup: 1032
# Security Context for init container
initContainerSecurityContext:
runAsUser: 0
runAsGroup: 0
# Pod Security Context
podSecurityContext:
runAsUser: 1032
runAsGroup: 1032
# Persistent settings
persistence:
# enable persistence
enabled: false
db:
storageClass: ""
accessMode: ""
size: "1Gi"
# -- use an existing persistent volume claim for the database. Setting this
# will ignore all other persistence.db parameters
existingClaim: ""
models:
storageClass: ""
accessMode: ""
# -- as of August 2023, the models are about 6.6GB in size for all languages
size: "10Gi"
# -- use an existing persistent volume claim for the models. Setting this
# will ignore all other persistence.models parameters
existingClaim: ""
# Resource limits
resources:
limits:
cpu: 2000m
memory: 2Gi
requests:
cpu: 500m
memory: 1Gi
# -- Readiness probe for kubernetes
readinessProbe: {}
# exec:
# command:
# - /app/venv/bin/python
# - /app/scripts/healthcheck.py
# initialDelaySeconds: 10
# periodSeconds: 5
# -- Liveness probe for kubernetes
livenessProbe: {}
# exec:
# command:
# - /app/venv/bin/python
# - scripts/healthcheck.py
# initialDelaySeconds: 10
# periodSeconds: 5
# Auth secret for basic authentication
# generate base64-user-password-pair: htpasswd -nb <username> <password> | base64
#
# e.g.: htpasswd -nb admin mySecretPassword | base64
# This is used by the nginx ingress controller to enable basic auth for the
# whole site. It will create a secret with the name libretranslate-auth.
adminUser:
# -- copy the username in base64 as a reference, e.g. YWRtaW4K
name: ""
# -- copy the output from the htpasswd command here as a reference,
# e.g. YWRtaW46JGFwcjEkYlpydmYvUFYkSHBHSlhqZU1EN0ZON2kyYndsMVRNMQoK
auth: ""
# -- copy the password as base64 for the admin user here as a reference
# e.g. bXlTZWNyZXRQYXNzd29yZAo=
password: ""
# -- use an existing secret for admin user
existingSecret: ""
# key in existing secret
secretKeys:
name: "name"
auth: "auth"
password: "password"
# Settings / Flags
appSettings:
# -- Enable debug environment (Default: Disabled)
debug: "false"
# -- Enable SSL (Default: Disabled)
ssl: "false"
# -- Enable API keys database for per-client rate limits when --req-limit
# is reached (Default: Don't use API keys)
apiKeys: "false"
# -- Require use of an API key for programmatic access to the API, unless the
# request origin matches this domain (Default: No restrictions on domain origin)
requireApiKeyOrigin: ""
# -- Set this to an api key secret you'd like to use, or an existing k8s Secret
# use appSettings.existingSecret and appSettings.secretKeys.apiKeySecret. This
# currently acts as the default API Key. Uses appConfig.reqLimit as the default
# requests per minute. If you do not set appConfig.reqLimit (or leave it as "null"),
# the default requests per minute is 120
requireApiKeySecret: ""
# -- Allow user suggestions (Default: Disabled)
suggestions: "false"
# -- Disable files translation (Default: File translation allowed)
disableFilesTranslation: "false"
# -- Disable web ui (Default: Web Ui enabled)
disableWebUi: "false"
# -- Update language models at startup (Default: Only on if no models found)
updateModels: "false"
# -- Enable the /metrics endpoint for exporting Prometheus usage metrics
# (Default: Disabled)
metrics: "false"
# -- use an existing Kubernetes Secret for api key origin and secret
existingSecret: ""
# keys in an existing Kubernetes Secret
secretKeys:
# -- key in existing Kubernetes Secret for api key origin. If set,
# ignores appSettings.requireApiKeyOrigin
apiKeyOrigin: ""
# -- key in existing Kubernetes Secret for api key secret. If set,
# ignores appSettings.requireApiKeySecret
apiKeySecret: "secret"
# Configuration Parameters
appConfig:
# -- Set host to bind the server to (Default: 127.0.0.1)
host: "0.0.0.0"
# -- Set port to bind the server to
port: "5000"
# -- Set character limit (Default: No limit)
charLimit: "null"
# -- Set maximum number of requests per minute per client (outside of limits
# set by api keys). The default is "null" which means "no limit". If you set
# this to "null", and you provide an api key secret, we will set the default
# api key requests per minute to 120 by default, as you MUST set an api key limit
reqLimit: "null"
# -- Storage URI to use for request limit data storage. See Flask Limiter
reqLimitStorage: "memory://"
# -- Set maximum number of texts to translate in a batch request
# (Default: No limit)
batchLimit: "null"
# -- Enable Google Analytics on the API client page by providing an ID
# (Default: Empty (no tracking))
gaId: ""
# -- Set frontend default language - source
frontendLanguageSource: "auto"
# -- Set frontend default language - target. Default is to match site's locale
frontendLanguageTarget: "locale"
# -- Set frontend translation timeout
frontendTimeout: "500"
# -- Use a specific path inside the container for the local database.
# Can be absolute or relative
apiKeysDbPath: "/app/db/api_keys.db"
# -- Use a specific path inside the container for the local database.
# Must be the same as apiKeysDbPath
apiKeysDbPathMount: "/app/db"
# -- Use this remote endpoint to query for valid API keys instead of using the
# local database (Default: Empty (use local db instead))
apiKeysRemote: ""
# -- Show a link in the UI where to direct users to get an API key
# (Default: Empty (no link shown on web ui))
getApiKeyLink: ""
# -- Shared storage URI to use for multi-process data sharing (e.g. when using gunicorn)
sharedStorage: "memory://"
# -- Set available languages (Default: Empty (use all from argostranslate))
loadOnly: ""
# -- Set number of threads (Default: 4)
threads: "4"
# -- Protect the /metrics endpoint by allowing only clients that have a valid
# Authorization Bearer token (Default: Empty (no auth required))
metricsAuthToken: ""
# -- Add prefix to URL: example.com:5000/url-prefix/ (Default: /)
urlPrefix: ""