You are on page 1of 2

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. ***

```

You might also like