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