mirror of
https://github.com/LibreTranslate/LibreTranslate.git
synced 2024-11-15 12:00:33 +01:00
45 lines
3.2 KiB
Plaintext
45 lines
3.2 KiB
Plaintext
|
1. Get the application URL by running these commands:
|
||
|
{{- if .Values.ingress.enabled }}
|
||
|
http{{ if .Values.ingress.tls }}s{{ end }}://{{ index .Values.ingress.hosts 0 "host" }}{{ index .Values.ingress.hosts 0 "paths" 0 "path" }}
|
||
|
{{- if .name }}
|
||
|
- http{{ if .Values.ingress.tls }}s{{ end }}://{{ .name }}{{ .path }}
|
||
|
{{- end }}
|
||
|
{{- else if contains "NodePort" .Values.service.type }}
|
||
|
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "libretranslate.fullname" . }})
|
||
|
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||
|
echo http://$NODE_IP:$NODE_PORT
|
||
|
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||
|
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||
|
You can watch the status of by running 'kubectl get svc -w {{ include "libretranslate.fullname" . }}'
|
||
|
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "libretranslate.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
||
|
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
||
|
{{- else if contains "ClusterIP" .Values.service.type }}
|
||
|
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "libretranslate.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||
|
echo "Visit http://127.0.0.1:8080 to use your application"
|
||
|
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:{{ .Values.service.port }}
|
||
|
{{- end }}
|
||
|
|
||
|
2. Get your admin username and password:
|
||
|
|
||
|
USER=$(kubectl get secret {{ include "libretranslate.fullname" . }}-auth -o jsonpath="{.data.username}" | base64 --decode)
|
||
|
PASSWORD=$(kubectl get secret {{ include "libretranslate.fullname" . }}-auth -o jsonpath="{.data.password}" | base64 --decode)
|
||
|
|
||
|
echo "Username: $USER"
|
||
|
echo "Password: $PASSWORD"
|
||
|
|
||
|
3. Manage your LibreTranslate API keys:
|
||
|
|
||
|
If you setted `--api-keys true` to use the api keys in the StatefulSet, you can manage them with the following commands:
|
||
|
|
||
|
# this will add an api key with a limit of 120 requests per minute
|
||
|
kubectl exec -it {{ include "libretranslate.fullname" . }}-0 -c {{ include "libretranslate.fullname" . }} -- /bin/bash -c "source ./venv/bin/activate && ltmanage keys add --key req-limit-120 120"
|
||
|
|
||
|
# returns a list of all api keys
|
||
|
kubectl exec -it {{ include "libretranslate.fullname" . }}-0 -c {{ include "libretranslate.fullname" . }} -- /bin/bash -c "source ./venv/bin/activate && ltmanage keys"
|
||
|
|
||
|
# remove an api key
|
||
|
kubectl exec -it {{ include "libretranslate.fullname" . }}-0 -c {{ include "libretranslate.fullname" . }} -- /bin/bash -c "source ./venv/bin/activate && ltmanage keys remove req-limit-120"
|
||
|
|
||
|
*** Be aware that the api keys are stored in a sqlite database in the pod. If you scale the pod to multiple replicas, the api keys will not be synced between the pods. You can use a shared storage to sync the api keys between the pods. For example, you can use a NFS storage class with a ReadWriteMany access mode to store the api keys in a shared perspective. ***
|
||
|
|
||
|
```
|