diff --git a/apps/templates/whisper-priv-folder.yaml b/apps/templates/whisper-priv-folder.yaml new file mode 100644 index 0000000..0313d80 --- /dev/null +++ b/apps/templates/whisper-priv-folder.yaml @@ -0,0 +1,21 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: whisper + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + source: + repoURL: https://github.com/rubenhensen/k8scd.git + targetRevision: HEAD + path: whishper-priv + destination: + server: https://kubernetes.default.svc + namespace: whisper-priv + syncPolicy: + syncOptions: + - CreateNamespace=true + automated: + selfHeal: true diff --git a/whishper-priv/env-configmap.yaml b/whishper-priv/env-configmap.yaml new file mode 100644 index 0000000..c9d3a79 --- /dev/null +++ b/whishper-priv/env-configmap.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + DB_PASS: whishper + DB_USER: whishper + LT_LOAD_ONLY: es,en,fr,nl + WHISHPER_HOST: http://127.0.0.1:8082 + WHISPER_MODELS: tiny,small,large-v3 +kind: ConfigMap +metadata: + labels: + io.kompose.service: mongo-env + name: env diff --git a/whishper-priv/mongo-claim0-persistentvolumeclaim.yaml b/whishper-priv/mongo-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..cda1e34 --- /dev/null +++ b/whishper-priv/mongo-claim0-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: mongo-claim10 + name: mongo-claim10 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi diff --git a/whishper-priv/mongo-claim1-persistentvolumeclaim.yaml b/whishper-priv/mongo-claim1-persistentvolumeclaim.yaml new file mode 100644 index 0000000..b873d38 --- /dev/null +++ b/whishper-priv/mongo-claim1-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +# apiVersion: v1 +# kind: PersistentVolumeClaim +# metadata: +# labels: +# io.kompose.service: mongo-claim1 +# name: mongo-claim1 +# spec: +# accessModes: +# - ReadWriteOnce +# resources: +# requests: +# storage: 10Gi diff --git a/whishper-priv/mongo-deployment.yaml b/whishper-priv/mongo-deployment.yaml new file mode 100644 index 0000000..3a903f2 --- /dev/null +++ b/whishper-priv/mongo-deployment.yaml @@ -0,0 +1,76 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: kompose convert + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: mongo + name: mongo +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: mongo + strategy: + type: Recreate + template: + metadata: + annotations: + kompose.cmd: kompose convert + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: mongo + spec: + containers: + # - args: + # - --logpath + # - /var/log/mongodb/mongod.log + - env: + - name: DB_PASS + valueFrom: + configMapKeyRef: + key: DB_PASS + name: env + - name: DB_USER + valueFrom: + configMapKeyRef: + key: DB_USER + name: env + - name: LT_LOAD_ONLY + valueFrom: + configMapKeyRef: + key: LT_LOAD_ONLY + name: env + - name: MONGO_INITDB_ROOT_PASSWORD + value: whishper + - name: MONGO_INITDB_ROOT_USERNAME + value: whishper + - name: WHISHPER_HOST + valueFrom: + configMapKeyRef: + key: WHISHPER_HOST + name: env + - name: WHISPER_MODELS + valueFrom: + configMapKeyRef: + key: WHISPER_MODELS + name: env + image: mongo + name: mongo + ports: + - containerPort: 27017 + protocol: TCP + volumeMounts: + - mountPath: /data/db + name: mongo-claim0 + # - mountPath: /var/log/mongodb + # name: mongo-claim1 + restartPolicy: Always + volumes: + - name: mongo-claim0 + persistentVolumeClaim: + claimName: mongo-claim10 + # - name: mongo-claim1 + # persistentVolumeClaim: + # claimName: mongo-claim1 diff --git a/whishper-priv/mongo-service.yaml b/whishper-priv/mongo-service.yaml new file mode 100644 index 0000000..11e7802 --- /dev/null +++ b/whishper-priv/mongo-service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + kompose.cmd: kompose convert + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: mongo + name: mongo +spec: + ports: + - name: "27017" + port: 27017 + targetPort: 27017 + selector: + io.kompose.service: mongo diff --git a/whishper-priv/translate-claim0-persistentvolumeclaim.yaml b/whishper-priv/translate-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..091672b --- /dev/null +++ b/whishper-priv/translate-claim0-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: translate-claim0 + name: translate-claim0 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi diff --git a/whishper-priv/translate-claim1-persistentvolumeclaim.yaml b/whishper-priv/translate-claim1-persistentvolumeclaim.yaml new file mode 100644 index 0000000..756fe6c --- /dev/null +++ b/whishper-priv/translate-claim1-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: translate-claim1 + name: translate-claim1 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi diff --git a/whishper-priv/translate-deployment.yaml b/whishper-priv/translate-deployment.yaml new file mode 100644 index 0000000..4686e2f --- /dev/null +++ b/whishper-priv/translate-deployment.yaml @@ -0,0 +1,85 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: kompose convert + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: translate + name: translate +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: translate + strategy: + type: Recreate + template: + metadata: + annotations: + kompose.cmd: kompose convert + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: translate + spec: + containers: + - image: libretranslate/libretranslate:latest + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + livenessProbe: + exec: + command: + - ./venv/bin/python scripts/healthcheck.py + failureThreshold: 5 + periodSeconds: 2 + timeoutSeconds: 3 + name: whisper-libretranslate + ports: + - containerPort: 5000 + protocol: TCP + tty: true + volumeMounts: + - mountPath: /home/libretranslate/.local/share + name: translate-claim0 + - mountPath: /home/libretranslate/.local/cache + name: translate-claim1 + env: + - name: DB_PASS + valueFrom: + configMapKeyRef: + key: DB_PASS + name: env + - name: DB_USER + valueFrom: + configMapKeyRef: + key: DB_USER + name: env + - name: LT_DISABLE_WEB_UI + value: "true" + - name: LT_LOAD_ONLY + valueFrom: + configMapKeyRef: + key: LT_LOAD_ONLY + name: env + - name: LT_UPDATE_MODELS + value: "true" + - name: WHISHPER_HOST + valueFrom: + configMapKeyRef: + key: WHISHPER_HOST + name: env + - name: WHISPER_MODELS + valueFrom: + configMapKeyRef: + key: WHISPER_MODELS + name: env + restartPolicy: Always + volumes: + - name: translate-claim0 + persistentVolumeClaim: + claimName: translate-claim0 + - name: translate-claim1 + persistentVolumeClaim: + claimName: translate-claim1 diff --git a/whishper-priv/translate-service.yaml b/whishper-priv/translate-service.yaml new file mode 100644 index 0000000..0225668 --- /dev/null +++ b/whishper-priv/translate-service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + kompose.cmd: kompose convert + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: translate + name: translate +spec: + ports: + - name: "5000" + port: 5000 + targetPort: 5000 + selector: + io.kompose.service: translate diff --git a/whishper-priv/whishper-claim0-persistentvolumeclaim.yaml b/whishper-priv/whishper-claim0-persistentvolumeclaim.yaml new file mode 100644 index 0000000..14b490c --- /dev/null +++ b/whishper-priv/whishper-claim0-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: whishper-claim0 + name: whishper-claim0 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi diff --git a/whishper-priv/whishper-claim1-persistentvolumeclaim.yaml b/whishper-priv/whishper-claim1-persistentvolumeclaim.yaml new file mode 100644 index 0000000..4a499ec --- /dev/null +++ b/whishper-priv/whishper-claim1-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: whishper-claim1 + name: whishper-claim1 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi diff --git a/whishper-priv/whishper-deployment.yaml b/whishper-priv/whishper-deployment.yaml new file mode 100644 index 0000000..663773c --- /dev/null +++ b/whishper-priv/whishper-deployment.yaml @@ -0,0 +1,81 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: kompose convert + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: whishper + name: whishper +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: whishper + strategy: + type: Recreate + template: + metadata: + annotations: + kompose.cmd: kompose convert + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: whishper + spec: + containers: + - env: + - name: CPU_THREADS + value: "4" + - name: DB_PASS + valueFrom: + configMapKeyRef: + key: DB_PASS + name: env + - name: DB_USER + valueFrom: + configMapKeyRef: + key: DB_USER + name: env + - name: LT_LOAD_ONLY + valueFrom: + configMapKeyRef: + key: LT_LOAD_ONLY + name: env + - name: PUBLIC_API_HOST + - name: PUBLIC_INTERNAL_API_HOST + value: http://127.0.0.1:80 + - name: PUBLIC_TRANSLATION_API_HOST + - name: PUBLIC_WHISHPER_PROFILE + value: cpu + - name: UPLOAD_DIR + value: /app/uploads + - name: WHISHPER_HOST + valueFrom: + configMapKeyRef: + key: WHISHPER_HOST + name: env + - name: WHISPER_MODELS + valueFrom: + configMapKeyRef: + key: WHISPER_MODELS + name: env + - name: WHISPER_MODELS_DIR + value: /app/models + image: pluja/whishper:latest + name: whishper + ports: + - containerPort: 80 + protocol: TCP + volumeMounts: + - mountPath: /app/uploads + name: whishper-claim0 + - mountPath: /var/log/whishper + name: whishper-claim1 + restartPolicy: Always + volumes: + - name: whishper-claim0 + persistentVolumeClaim: + claimName: whishper-claim0 + - name: whishper-claim1 + persistentVolumeClaim: + claimName: whishper-claim1 diff --git a/whishper-priv/whishper-ingress.yaml b/whishper-priv/whishper-ingress.yaml new file mode 100644 index 0000000..bd47c6e --- /dev/null +++ b/whishper-priv/whishper-ingress.yaml @@ -0,0 +1,54 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: whisper-ingress + annotations: + # nginx.ingress.kubernetes.io/rewrite-target: / + cert-manager.io/cluster-issuer: prod-cluster-issuer + nginx.ingress.kubernetes.io/ssl-passthrough: "false" + nginx.ingress.kubernetes.io/enable-cors: "true" + # type of authentication + nginx.ingress.kubernetes.io/auth-type: basic + # name of the secret that contains the user/password definitions + nginx.ingress.kubernetes.io/auth-secret: whisper-basic-auth + # message to display with an appropriate context why the authentication is required + nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required ' + nginx.ingress.kubernetes.io/proxy-body-size: "0" + # nginx.ingress.kubernetes.io/cors-allow-origin: "http://localhost:3000/" + # nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS, DELETE" + # If you encounter a redirect loop or are getting a 307 response code + # then you need to force the nginx ingress to connect to the backend using HTTPS. + # + # nginx.ingress.kubernetes.io/backend-protocol: "HTTP" + # namespace: ente-photos +spec: + ingressClassName: nginx + rules: + - host: whisper.hensen.io + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: whishper + port: + number: 8082 + - host: whishper.hensen.io + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: whishper + port: + number: 8082 + + # TLS configuration for HTTPS + tls: + # TLS secretName used on ClusterIssuer + - secretName: letsencrypt-prod + hosts: + - whisper.hensen.io + - whishper.hensen.io diff --git a/whishper-priv/whishper-service.yaml b/whishper-priv/whishper-service.yaml new file mode 100644 index 0000000..b4cda44 --- /dev/null +++ b/whishper-priv/whishper-service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + kompose.cmd: kompose convert + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: whishper + name: whishper +spec: + ports: + - name: "8082" + port: 8082 + targetPort: 80 + selector: + io.kompose.service: whishper