From 9efb9577c494389476898537a546f49e72f4325f Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Sun, 4 Oct 2026 17:05:37 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(tilt)=20use=20the=20helm=20d?= =?UTF-8?q?ev-backend=20chart?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use the shared helm `dev-backend` chart to deploy the backend in the Tilt dev stack, instead of maintaining our own copy. The goal is to share more common pieces of the dev experience and dev stack across projects, so we do not maintain N different versions of similar setups. The only adjustment needed was to backport Garage into the shared chart. Originally started by @rouja. --- bin/Tiltfile | 17 +- src/helm/env.d/common.yaml.gotmpl | 41 +++-- .../env.d/dev-dinum/values.egress.yaml.gotmpl | 5 +- .../dev-dinum/values.livekit.yaml.gotmpl | 3 +- .../dev-keycloak/values.egress.yaml.gotmpl | 5 +- .../dev-keycloak/values.livekit.yaml.gotmpl | 3 +- src/helm/extra/templates/garage.yaml | 172 ------------------ .../extra/templates/kc-postgresql-sts.yaml | 61 ------- src/helm/extra/templates/keycloak-sts.yaml | 104 ----------- src/helm/extra/templates/postgresql-sts.yaml | 70 ------- src/helm/extra/templates/redis.yaml | 65 ------- src/helm/helmfile.yaml.gotmpl | 58 +++++- 12 files changed, 100 insertions(+), 504 deletions(-) delete mode 100644 src/helm/extra/templates/garage.yaml delete mode 100644 src/helm/extra/templates/kc-postgresql-sts.yaml delete mode 100644 src/helm/extra/templates/keycloak-sts.yaml delete mode 100644 src/helm/extra/templates/postgresql-sts.yaml delete mode 100644 src/helm/extra/templates/redis.yaml diff --git a/bin/Tiltfile b/bin/Tiltfile index bd42416ea..7f2510d82 100644 --- a/bin/Tiltfile +++ b/bin/Tiltfile @@ -104,15 +104,16 @@ k8s_yaml(secret_yaml_generic( k8s_yaml(local('cd ../src/helm && helmfile -n meet -e ${DEV_ENV:-dev-keycloak} template .')) -k8s_resource('garage-cors', resource_deps=['garage']) -k8s_resource('meet-backend', resource_deps=['postgresql', 'garage-cors', 'redis', 'livekit-livekit-server']) -k8s_resource('meet-celery-backend', resource_deps=['redis']) -k8s_resource('meet-celery-summarize', resource_deps=['redis']) -k8s_resource('meet-celery-summary-backend', resource_deps=['redis']) -k8s_resource('meet-celery-transcribe-default', resource_deps=['redis']) -k8s_resource('livekit-livekit-server', resource_deps=['redis']) +k8s_resource('dev-backend-garage-cors', resource_deps=['dev-backend-garage']) +k8s_resource('dev-backend-keycloak', resource_deps=['dev-backend-keycloak-pg']) +k8s_resource('meet-backend', resource_deps=['dev-backend-postgres', 'dev-backend-garage-cors', 'dev-backend-redis', 'dev-backend-keycloak', 'livekit-livekit-server']) +k8s_resource('meet-celery-backend', resource_deps=['dev-backend-redis']) +k8s_resource('meet-celery-summarize', resource_deps=['dev-backend-redis']) +k8s_resource('meet-celery-summary-backend', resource_deps=['dev-backend-redis']) +k8s_resource('meet-celery-transcribe-default', resource_deps=['dev-backend-redis']) +k8s_resource('livekit-livekit-server', resource_deps=['dev-backend-redis']) k8s_resource('livekit-livekit-server-test-connection', resource_deps=['livekit-livekit-server']) -k8s_resource('keycloak', resource_deps=['kc-postgresql']) +k8s_resource('livekit-egress', resource_deps=['livekit-livekit-server']) # Trigger once on launch k8s_resource( 'meet-backend-createsuperuser', diff --git a/src/helm/env.d/common.yaml.gotmpl b/src/helm/env.d/common.yaml.gotmpl index 92846c51e..4685472f5 100644 --- a/src/helm/env.d/common.yaml.gotmpl +++ b/src/helm/env.d/common.yaml.gotmpl @@ -24,7 +24,7 @@ _summaryEnvVars: &summaryEnvVars APP_NAME: summary-microservice APP_API_TOKEN: password AWS_STORAGE_BUCKET_NAME: meet-media-storage - AWS_S3_ENDPOINT_URL: http://garage.meet.svc.cluster.local:9000/ + AWS_S3_ENDPOINT_URL: http://dev-backend-garage.meet.svc.cluster.local:9000/ AWS_S3_ACCESS_KEY_ID: meet-access-key AWS_S3_SECRET_ACCESS_KEY: meet-secret-access-key AWS_S3_SECURE_ACCESS: False @@ -69,9 +69,9 @@ _summaryEnvVars: &summaryEnvVars LLM_MODEL: Qwen/Qwen3-Coder-30B-A3B-Instruct WEBHOOK_API_TOKEN: password WEBHOOK_URL: https://www.mock-impress.com/webhook/ - CELERY_BROKER_URL: redis://default:pass@redis-master:6379/1 - CELERY_RESULT_BACKEND: redis://default:pass@redis-master:6379/1 - TASK_TRACKER_REDIS_URL: redis://default:pass@redis-master:6379/1 + CELERY_BROKER_URL: redis://user:pass@dev-backend-redis:6379/1 + CELERY_RESULT_BACKEND: redis://user:pass@dev-backend-redis:6379/1 + TASK_TRACKER_REDIS_URL: redis://user:pass@dev-backend-redis:6379/1 IS_RESOLVE_SPEAKER_IDENTITIES_ENABLED: true RESOLVE_SPEAKER_IDENTITIES_DEFAULT_OVERLAP: 0.5 RESOLVE_SPEAKER_ENABLE_SPLIT_ON_WORDS: true @@ -127,12 +127,21 @@ backend: LOGIN_REDIRECT_URL_FAILURE: https://meet.127.0.0.1.nip.io LOGOUT_REDIRECT_URL: https://meet.127.0.0.1.nip.io # Databases - DB_HOST: postgres - DB_NAME: meet - DB_USER: dinum - DB_PASSWORD: pass + DB_HOST: dev-backend-postgres + DB_NAME: + secretKeyRef: + name: dev-backend-postgres + key: database + DB_USER: + secretKeyRef: + name: dev-backend-postgres + key: username + DB_PASSWORD: + secretKeyRef: + name: dev-backend-postgres + key: password DB_PORT: 5432 - REDIS_URL: redis://default:pass@redis-master:6379/1 + REDIS_URL: redis://user:pass@dev-backend-redis:6379/1 # Static files STORAGES_STATICFILES_BACKEND: django.contrib.staticfiles.storage.StaticFilesStorage # Permissions @@ -163,7 +172,7 @@ backend: FRONTEND_TRANSCRIPTION_DESTINATION: "https://docs.numerique.gouv.fr" FRONTEND_IS_SILENT_LOGIN_ENABLED: False # S3 Storage - AWS_S3_ENDPOINT_URL: http://garage.meet.svc.cluster.local:9000 + AWS_S3_ENDPOINT_URL: http://dev-backend-garage.meet.svc.cluster.local:9000 AWS_S3_ACCESS_KEY_ID: meet-access-key AWS_S3_SECRET_ACCESS_KEY: meet-secret-access-key AWS_STORAGE_BUCKET_NAME: meet-media-storage @@ -186,7 +195,7 @@ backend: MEDIA_BASE_URL: https://meet.127.0.0.1.nip.io FILE_UPLOAD_ENABLED: True CELERY_ENABLED: True - CELERY_BROKER_URL: redis://default:pass@redis-master:6379/1 + CELERY_BROKER_URL: redis://user:pass@dev-backend-redis:6379/1 # Recording & Transcription RECORDING_ENABLE: True SUMMARY_SERVICE_ENDPOINT: http://meet-summary:80/api/v2/async-jobs/transcribe/ @@ -266,11 +275,11 @@ ingressMedia: annotations: nginx.ingress.kubernetes.io/auth-url: https://meet.127.0.0.1.nip.io/api/v1.0/recordings/media-auth/ nginx.ingress.kubernetes.io/auth-response-headers: "Authorization, X-Amz-Date, X-Amz-Content-SHA256" - nginx.ingress.kubernetes.io/upstream-vhost: garage.meet.svc.cluster.local:9000 + nginx.ingress.kubernetes.io/upstream-vhost: dev-backend-garage.meet.svc.cluster.local:9000 nginx.ingress.kubernetes.io/rewrite-target: /meet-media-storage/$1 serviceMedia: - host: garage.meet.svc.cluster.local + host: dev-backend-garage.meet.svc.cluster.local port: 9000 # ---- Extra ingress/service for background file uploads ------------ @@ -282,11 +291,11 @@ ingressMediaFiles: annotations: nginx.ingress.kubernetes.io/auth-url: https://meet.127.0.0.1.nip.io/api/v1.0/files/media-auth/ nginx.ingress.kubernetes.io/auth-response-headers: "Authorization, X-Amz-Date, X-Amz-Content-SHA256" - nginx.ingress.kubernetes.io/upstream-vhost: garage.meet.svc.cluster.local:9000 + nginx.ingress.kubernetes.io/upstream-vhost: dev-backend-garage.meet.svc.cluster.local:9000 nginx.ingress.kubernetes.io/rewrite-target: /meet-media-storage/files/$1 serviceMediaFiles: - host: garage.meet.svc.cluster.local + host: dev-backend-garage.meet.svc.cluster.local port: 9000 # ---- STT Orchestration Microservice Components -------------------- @@ -364,7 +373,7 @@ agentMetadata: {{- end }} {{- end }} ENABLE_SILERO_VAD: "false" - AWS_S3_ENDPOINT_URL: garage.meet.svc.cluster.local:9000 + AWS_S3_ENDPOINT_URL: dev-backend-garage.meet.svc.cluster.local:9000 AWS_S3_ACCESS_KEY_ID: meet-access-key AWS_S3_SECRET_ACCESS_KEY: meet-secret-access-key AWS_S3_SECURE_ACCESS: False diff --git a/src/helm/env.d/dev-dinum/values.egress.yaml.gotmpl b/src/helm/env.d/dev-dinum/values.egress.yaml.gotmpl index 185f05ba7..5e6f14f6f 100644 --- a/src/helm/env.d/dev-dinum/values.egress.yaml.gotmpl +++ b/src/helm/env.d/dev-dinum/values.egress.yaml.gotmpl @@ -13,14 +13,15 @@ egress: {{- end }} {{- end }} redis: - address: redis-master:6379 + address: dev-backend-redis:6379 + username: user password: pass s3: access_key: meet-access-key secret: meet-secret-access-key region: local bucket: meet-media-storage - endpoint: http://garage:9000 + endpoint: http://dev-backend-garage:9000 force_path_style: true loadBalancer: diff --git a/src/helm/env.d/dev-dinum/values.livekit.yaml.gotmpl b/src/helm/env.d/dev-dinum/values.livekit.yaml.gotmpl index dd63e5143..7a9856de4 100644 --- a/src/helm/env.d/dev-dinum/values.livekit.yaml.gotmpl +++ b/src/helm/env.d/dev-dinum/values.livekit.yaml.gotmpl @@ -14,7 +14,8 @@ livekit: port_range_end: 60000 tcp_port: 7881 redis: - address: redis-master:6379 + address: dev-backend-redis:6379 + username: user password: pass keys: turn: diff --git a/src/helm/env.d/dev-keycloak/values.egress.yaml.gotmpl b/src/helm/env.d/dev-keycloak/values.egress.yaml.gotmpl index 707e39914..336092a6f 100644 --- a/src/helm/env.d/dev-keycloak/values.egress.yaml.gotmpl +++ b/src/helm/env.d/dev-keycloak/values.egress.yaml.gotmpl @@ -16,14 +16,15 @@ egress: {{- end }} {{- end }} redis: - address: redis-master:6379 + address: dev-backend-redis:6379 + username: user password: pass s3: access_key: meet-access-key secret: meet-secret-access-key region: local bucket: meet-media-storage - endpoint: http://garage:9000 + endpoint: http://dev-backend-garage:9000 force_path_style: true loadBalancer: diff --git a/src/helm/env.d/dev-keycloak/values.livekit.yaml.gotmpl b/src/helm/env.d/dev-keycloak/values.livekit.yaml.gotmpl index dd63e5143..7a9856de4 100644 --- a/src/helm/env.d/dev-keycloak/values.livekit.yaml.gotmpl +++ b/src/helm/env.d/dev-keycloak/values.livekit.yaml.gotmpl @@ -14,7 +14,8 @@ livekit: port_range_end: 60000 tcp_port: 7881 redis: - address: redis-master:6379 + address: dev-backend-redis:6379 + username: user password: pass keys: turn: diff --git a/src/helm/extra/templates/garage.yaml b/src/helm/extra/templates/garage.yaml deleted file mode 100644 index 19955c32b..000000000 --- a/src/helm/extra/templates/garage.yaml +++ /dev/null @@ -1,172 +0,0 @@ ---- -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: garage - annotations: - nginx.ingress.kubernetes.io/proxy-body-size: 10m -spec: - rules: - - host: "garage.127.0.0.1.nip.io" - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: garage - port: - number: 9000 - tls: - - hosts: - - garage.127.0.0.1.nip.io - secretName: meet-tls ---- -apiVersion: v1 -kind: Service -metadata: - name: garage - namespace: {{ .Release.Namespace | quote }} -spec: - ports: - - name: client - port: 9000 - protocol: TCP - targetPort: 9000 - selector: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: garage - type: ClusterIP ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: garage-config - namespace: {{ .Release.Namespace | quote }} -data: - garage.toml: | - metadata_dir = "/var/lib/garage/meta" - data_dir = "/var/lib/garage/data" - db_engine = "lmdb" - - replication_factor = 1 - - rpc_bind_addr = "127.0.0.1:3901" - rpc_public_addr = "127.0.0.1:3901" - - [s3_api] - api_bind_addr = "[::]:9000" - # Clients must sign their requests for this region (AWS_S3_REGION_NAME) - s3_region = "local" ---- -apiVersion: v1 -kind: Secret -metadata: - name: garage-dev - namespace: {{ .Release.Namespace | quote }} -type: Opaque -data: - GARAGE_RPC_SECRET: {{ printf "%s/garage-rpc-secret" .Release.Namespace | sha256sum | b64enc }} ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: garage - namespace: {{ .Release.Namespace | quote }} - labels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: garage -spec: - selector: - matchLabels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: garage - replicas: 1 - template: - metadata: - labels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: garage - spec: - containers: - - name: garage - command: - - /garage - - server - - --single-node - - --default-bucket - env: - - name: GARAGE_RPC_SECRET - valueFrom: - secretKeyRef: - name: garage-dev - key: GARAGE_RPC_SECRET - - name: GARAGE_DEFAULT_ACCESS_KEY - value: meet-access-key - - name: GARAGE_DEFAULT_SECRET_KEY - value: meet-secret-access-key - - name: GARAGE_DEFAULT_BUCKET - value: meet-media-storage - image: "dxflrs/garage:v2.4.1" - imagePullPolicy: IfNotPresent - ports: - - containerPort: 9000 - name: client - readinessProbe: - exec: - command: - - /garage - - health - volumeMounts: - - mountPath: /etc/garage.toml - name: config - subPath: garage.toml - - mountPath: /var/lib/garage - name: data - volumes: - - name: config - configMap: - name: garage-config - - name: data - emptyDir: ---- -# Garage denies cross-origin requests by default: allow the frontend to upload -# files straight to the bucket -apiVersion: batch/v1 -kind: Job -metadata: - name: garage-cors -spec: - template: - spec: - containers: - - name: aws-cli - image: amazon/aws-cli:2.37.1 - env: - - name: AWS_ACCESS_KEY_ID - value: meet-access-key - - name: AWS_SECRET_ACCESS_KEY - value: meet-secret-access-key - - name: AWS_DEFAULT_REGION - value: local - - name: AWS_ENDPOINT_URL - value: http://garage:9000 - - name: BUCKET - value: meet-media-storage - command: - - /bin/sh - - -c - - | - deadline=$(($(date +%s) + 300)) - until aws s3api head-bucket --bucket="$BUCKET" --cli-connect-timeout=5; do - if [ "$(date +%s)" -ge "$deadline" ]; then - echo "Bucket $BUCKET still unavailable on $AWS_ENDPOINT_URL" >&2 - exit 1 - fi - echo "Waiting for bucket $BUCKET on $AWS_ENDPOINT_URL" - sleep 5 - done - exec aws s3api put-bucket-cors --bucket="$BUCKET" \ - --cors-configuration='{"CORSRules": [{"AllowedOrigins": ["https://meet.127.0.0.1.nip.io"], "AllowedMethods": ["GET", "HEAD", "PUT"], "AllowedHeaders": ["*"], "ExposeHeaders": ["ETag"]}]}' - restartPolicy: Never - backoffLimit: 3 diff --git a/src/helm/extra/templates/kc-postgresql-sts.yaml b/src/helm/extra/templates/kc-postgresql-sts.yaml deleted file mode 100644 index 07e7f742c..000000000 --- a/src/helm/extra/templates/kc-postgresql-sts.yaml +++ /dev/null @@ -1,61 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: kc-postgres - namespace: {{ .Release.Namespace | quote }} -spec: - ports: - - name: tcp-postgresql - port: 5432 - protocol: TCP - targetPort: tcp-postgresql - selector: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: kc-postgresql - type: ClusterIP ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: kc-postgresql - namespace: {{ .Release.Namespace | quote }} -spec: - selector: - matchLabels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: kc-postgresql - serviceName: "kc-postgres" - replicas: 1 - template: - metadata: - labels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: kc-postgresql - spec: - terminationGracePeriodSeconds: 10 - containers: - - name: pg - image: postgres:16-alpine - ports: - - containerPort: 5432 - name: tcp-postgresql - env: - - name: POSTGRES_PASSWORD - value: pass - - name: POSTGRES_USER - value: dinum - - name: POSTGRES_DB - value: keycloak - volumeMounts: - - name: data - mountPath: /var/lib/postgresql - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 1Gi - diff --git a/src/helm/extra/templates/keycloak-sts.yaml b/src/helm/extra/templates/keycloak-sts.yaml deleted file mode 100644 index 32188f454..000000000 --- a/src/helm/extra/templates/keycloak-sts.yaml +++ /dev/null @@ -1,104 +0,0 @@ ---- -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: keycloak -spec: - rules: - - host: "keycloak.127.0.0.1.nip.io" - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: keycloak - port: - number: 8080 - tls: - - hosts: - - keycloak.127.0.0.1.nip.io - secretName: meet-tls ---- -apiVersion: v1 -kind: Service -metadata: - name: keycloak - namespace: {{ .Release.Namespace | quote }} -spec: - ports: - - name: tcp-keycloak - port: 8080 - protocol: TCP - targetPort: tcp-keycloak - selector: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: keycloak - type: ClusterIP ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: realm -data: - meet.json: | -{{ .Values.realm | indent 4 }} ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: keycloak - namespace: {{ .Release.Namespace | quote }} -spec: - selector: - matchLabels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: keycloak - serviceName: "keycloak" - replicas: 1 - template: - metadata: - labels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: keycloak - spec: - terminationGracePeriodSeconds: 10 - containers: - - name: keycloak - image: quay.io/keycloak/keycloak:20.0.1 - args: - - start-dev - - --features=preview - - --import-realm - - --proxy=edge - - --hostname=keycloak.127.0.0.1.nip.io - - --hostname-strict=false - - --hostname-strict-https=false - ports: - - containerPort: 8080 - name: tcp-keycloak - env: - - name: KEYCLOAK_ADMIN - value: admin - - name: KEYCLOAK_ADMIN_PASSWORD - value: admin - - name: PROXY_ADDRESS_FORWARDING - value: 'true' - - name: KC_DB_URL_HOST - value: kc_postgresql - - name: KC_DB_URL_DATABASE - value: keycloak - - name: KC_DB_PASSWORD - value: pass - - name: KC_DB_USERNAME - value: dinum - - name: KC_DB_SCHEMA - value: public - volumeMounts: - - name: realm - mountPath: "/opt/keycloak/data/import" - readOnly: true - volumes: - - name: realm - configMap: - name: realm diff --git a/src/helm/extra/templates/postgresql-sts.yaml b/src/helm/extra/templates/postgresql-sts.yaml deleted file mode 100644 index c7e4e307d..000000000 --- a/src/helm/extra/templates/postgresql-sts.yaml +++ /dev/null @@ -1,70 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: postgres - namespace: {{ .Release.Namespace | quote }} -spec: - ports: - - name: tcp-postgresql - port: 5432 - protocol: TCP - targetPort: tcp-postgresql - selector: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: postgresql - type: ClusterIP ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: postgresql - namespace: {{ .Release.Namespace | quote }} -spec: - selector: - matchLabels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: postgresql - serviceName: "postgres" - replicas: 1 - template: - metadata: - labels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: postgresql - spec: - terminationGracePeriodSeconds: 10 - containers: - - name: pg - image: postgres:16-alpine - readinessProbe: - exec: - command: [ "pg_isready", "-U", "dinum", "-d", "meet", "-h", "127.0.0.1" ] - initialDelaySeconds: 5 - periodSeconds: 5 - livenessProbe: - exec: - command: [ "pg_isready", "-U", "dinum", "-d", "meet", "-h", "127.0.0.1" ] - initialDelaySeconds: 15 - periodSeconds: 10 - ports: - - containerPort: 5432 - name: tcp-postgresql - env: - - name: POSTGRES_PASSWORD - value: pass - - name: POSTGRES_USER - value: dinum - - name: POSTGRES_DB - value: meet - volumeMounts: - - name: data - mountPath: /var/lib/postgresql/data - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 1Gi diff --git a/src/helm/extra/templates/redis.yaml b/src/helm/extra/templates/redis.yaml deleted file mode 100644 index fd99f8237..000000000 --- a/src/helm/extra/templates/redis.yaml +++ /dev/null @@ -1,65 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: redis-master - namespace: {{ .Release.Namespace | quote }} -spec: - ports: - - name: tcp-redis - port: 6379 - protocol: TCP - targetPort: tcp-redis - selector: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: redis - type: ClusterIP ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: redis -data: - redis.conf: | - bind 0.0.0.0 - port 6379 - user default on >pass ~* &* +@all ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: redis - namespace: {{ .Release.Namespace | quote }} - labels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: redis -spec: - selector: - matchLabels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: redis - replicas: 1 - template: - metadata: - labels: - app.kubernetes.io/instance: extra - app.kubernetes.io/name: redis - spec: - containers: - - name: redis - args: - - redis-server - - /usr/local/etc/redis/redis.conf - image: "redis:8.2-alpine" - imagePullPolicy: IfNotPresent - ports: - - containerPort: 6379 - name: tcp-redis - volumeMounts: - - name: redis - mountPath: "/usr/local/etc/redis" - readOnly: true - volumes: - - name: redis - configMap: - name: redis diff --git a/src/helm/helmfile.yaml.gotmpl b/src/helm/helmfile.yaml.gotmpl index ae27cdaad..a7f2404cb 100644 --- a/src/helm/helmfile.yaml.gotmpl +++ b/src/helm/helmfile.yaml.gotmpl @@ -13,6 +13,9 @@ repositories: - name: livekit url: https://helm.livekit.io +- name: dev-backends + url: https://suitenumerique.github.io/helm-dev-backend + releases: - name: extra installed: {{ regexMatch "^dev.*" .Environment.Name }} @@ -27,8 +30,59 @@ releases: - enablePermanentRedirect: {{ .Values | get "enablePermanentRedirect" "False"}} - oldDomain: {{ .Values | get "oldDomain" "demo.com" }} - newDomain: {{ .Values | get "newDomain" "demo.com" }} - - realm: | -{{ readFile "../../docker/auth/realm.json" | replace "http://localhost:3200" "https://meet.127.0.0.1.nip.io" | indent 8 }} + +- name: dev-backend + installed: {{ regexMatch "^dev.*" .Environment.Name }} + namespace: {{ .Namespace }} + chart: dev-backends/dev-backend + version: 0.0.14 + values: + - postgres: + enabled: true + username: dinum + password: pass + database: meet + size: 1Gi + - redis: + enabled: true + username: user + password: pass + - garage: + enabled: true + accessKey: meet-access-key + secretKey: meet-secret-access-key + bucket: meet-media-storage + region: local + persistence: false + ingress: + enabled: true + hostname: garage.127.0.0.1.nip.io + annotations: + nginx.ingress.kubernetes.io/proxy-body-size: 10m + tls: + enabled: true + secretName: meet-tls + cors: + allowedOrigins: + - https://meet.127.0.0.1.nip.io + - keycloak: + enabled: true + hostname: keycloak.127.0.0.1.nip.io + username: admin + password: admin + tls: + enabled: true + secretName: meet-tls + db: + username: dinum + password: pass + database: keycloak + size: 1Gi + realm: + name: meet + username: meet + password: meet + email: meet@example.com - name: meet