From b2d6d33cc8ea28d24e7db2c1e8b1c785c6597dcb Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Sat, 30 May 2026 15:58:03 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(devx)=20factorize=20backend?= =?UTF-8?q?=20env=20variables=20across=20dev=20stacks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Share the backend environment variables between the Dinum and Keycloak dev stacks to avoid duplication and keep them in sync. --- src/helm/env.d/common.yaml.gotmpl | 69 ++++++++++++++++++- .../env.d/dev-dinum/values.meet.yaml.gotmpl | 63 ----------------- .../dev-keycloak/values.meet.yaml.gotmpl | 66 ------------------ 3 files changed, 68 insertions(+), 130 deletions(-) diff --git a/src/helm/env.d/common.yaml.gotmpl b/src/helm/env.d/common.yaml.gotmpl index 7b58bc73..7d257918 100644 --- a/src/helm/env.d/common.yaml.gotmpl +++ b/src/helm/env.d/common.yaml.gotmpl @@ -69,7 +69,74 @@ image: backend: replicas: 1 - # envVars must be completed in per-env overlay (merge base + specifics) + envVars: + DJANGO_CSRF_TRUSTED_ORIGINS: https://meet.127.0.0.1.nip.io,http://meet.127.0.0.1.nip.io + DJANGO_CONFIGURATION: Production + DJANGO_ALLOWED_HOSTS: meet.127.0.0.1.nip.io + DJANGO_SECRET_KEY: {{ .Values.djangoSecretKey }} + DJANGO_SETTINGS_MODULE: meet.settings + DJANGO_SILENCED_SYSTEM_CHECKS: security.W004, security.W008 + DJANGO_SUPERUSER_PASSWORD: admin + DJANGO_EMAIL_HOST: "mailcatcher" + DJANGO_EMAIL_PORT: 1025 + DJANGO_EMAIL_USE_SSL: False + DJANGO_EMAIL_BRAND_NAME: "La Suite Numérique" + DJANGO_EMAIL_SUPPORT_EMAIL: "test@yopmail.com" + DJANGO_EMAIL_LOGO_IMG: https://meet.127.0.0.1.nip.io/assets/logo-suite-numerique.png + DJANGO_EMAIL_DOMAIN: meet.127.0.0.1.nip.io + DJANGO_EMAIL_APP_BASE_URL: https://meet.127.0.0.1.nip.io + OIDC_OP_JWKS_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/certs + OIDC_OP_AUTHORIZATION_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/auth + OIDC_OP_TOKEN_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/token + OIDC_OP_USER_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/userinfo + OIDC_OP_LOGOUT_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/logout + OIDC_RP_CLIENT_ID: meet + OIDC_RP_CLIENT_SECRET: ThisIsAnExampleKeyForDevPurposeOnly + OIDC_RP_SIGN_ALGO: RS256 + OIDC_RP_SCOPES: "openid email" + OIDC_REDIRECT_ALLOWED_HOSTS: https://meet.127.0.0.1.nip.io + OIDC_AUTH_REQUEST_EXTRA_PARAMS: "{'acr_values': 'eidas1'}" + LOGIN_REDIRECT_URL: https://meet.127.0.0.1.nip.io + LOGIN_REDIRECT_URL_FAILURE: https://meet.127.0.0.1.nip.io + LOGOUT_REDIRECT_URL: https://meet.127.0.0.1.nip.io + DB_HOST: postgres + DB_NAME: meet + DB_USER: dinum + DB_PASSWORD: pass + DB_PORT: 5432 + REDIS_URL: redis://default:pass@redis-master:6379/1 + STORAGES_STATICFILES_BACKEND: django.contrib.staticfiles.storage.StaticFilesStorage + {{- with .Values.livekit.keys }} + {{- range $key, $value := . }} + LIVEKIT_API_SECRET: {{ $value }} + LIVEKIT_API_KEY: {{ $key }} + {{- end }} + {{- end }} + LIVEKIT_API_URL: https://livekit.127.0.0.1.nip.io/ + LIVEKIT_WEBHOOK_EVENTS_FILTER_REGEX: "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + LIVEKIT_FORCE_WSS_PROTOCOL: True + LIVEKIT_ENABLE_FIREFOX_PROXY_WORKAROUND: True + ALLOW_UNREGISTERED_ROOMS: False + FRONTEND_IDLE_DISCONNECT_WARNING_DELAY: 9000 + FRONTEND_SILENCE_LIVEKIT_DEBUG: False + FRONTEND_SUPPORT: "{'id': '58ea6697-8eba-4492-bc59-ad6562585041', 'help_article_transcript': 'https://lasuite.crisp.help/fr/article/visio-transcript-1sjq43x', 'help_article_recording': 'https://lasuite.crisp.help/fr/article/visio-enregistrement-wgc8o0', 'help_article_more_tools': 'https://lasuite.crisp.help/fr/article/visio-tools-bvxj23'}" + FRONTEND_FEEDBACK: "{'url': 'https://grist.numerique.gouv.fr/o/docs/cbMv4G7pLY3Z/USER-RESEARCH-or-LA-SUITE/f/26'}" + FRONTEND_MANIFEST_LINK: "https://docs.numerique.gouv.fr/docs/1ef86abf-f7e0-46ce-b6c7-8be8b8af4c3d/" + AWS_S3_ENDPOINT_URL: http://minio.meet.svc.cluster.local:9000 + AWS_S3_ACCESS_KEY_ID: meet + AWS_S3_SECRET_ACCESS_KEY: password + AWS_STORAGE_BUCKET_NAME: meet-media-storage + AWS_S3_REGION_NAME: local + AWS_S3_SIGNATURE_VERSION: s3v4 + MEDIA_BASE_URL: https://meet.127.0.0.1.nip.io + RECORDING_ENABLE: True + RECORDING_STORAGE_EVENT_ENABLE: True + RECORDING_STORAGE_EVENT_TOKEN: password + SUMMARY_SERVICE_ENDPOINT: http://meet-summary:80/api/v1/tasks/ + SUMMARY_SERVICE_API_TOKEN: password + RECORDING_DOWNLOAD_BASE_URL: https://meet.127.0.0.1.nip.io/recording + ROOM_TELEPHONY_ENABLED: True + SSL_CERT_FILE: /app/.venv/lib/python3.13/site-packages/certifi/cacert.pem migrate: command: diff --git a/src/helm/env.d/dev-dinum/values.meet.yaml.gotmpl b/src/helm/env.d/dev-dinum/values.meet.yaml.gotmpl index e6b443c4..cfdac239 100644 --- a/src/helm/env.d/dev-dinum/values.meet.yaml.gotmpl +++ b/src/helm/env.d/dev-dinum/values.meet.yaml.gotmpl @@ -1,72 +1,9 @@ backend: envVars: - DJANGO_CSRF_TRUSTED_ORIGINS: https://meet.127.0.0.1.nip.io,http://meet.127.0.0.1.nip.io - DJANGO_CONFIGURATION: Production - DJANGO_ALLOWED_HOSTS: meet.127.0.0.1.nip.io - DJANGO_SECRET_KEY: {{ .Values.djangoSecretKey }} - DJANGO_SETTINGS_MODULE: meet.settings - DJANGO_SILENCED_SYSTEM_CHECKS: security.W004, security.W008 - DJANGO_SUPERUSER_PASSWORD: admin - DJANGO_EMAIL_HOST: "mailcatcher" - DJANGO_EMAIL_PORT: 1025 - DJANGO_EMAIL_USE_SSL: False - DJANGO_EMAIL_BRAND_NAME: "La Suite Numérique" - DJANGO_EMAIL_SUPPORT_EMAIL: "test@yopmail.com" - DJANGO_EMAIL_LOGO_IMG: https://meet.127.0.0.1.nip.io/assets/logo-suite-numerique.png - DJANGO_EMAIL_DOMAIN: meet.127.0.0.1.nip.io - DJANGO_EMAIL_APP_BASE_URL: https://meet.127.0.0.1.nip.io - OIDC_OP_JWKS_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/certs - OIDC_OP_AUTHORIZATION_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/auth - OIDC_OP_TOKEN_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/token - OIDC_OP_USER_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/userinfo - OIDC_OP_LOGOUT_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/logout - OIDC_RP_CLIENT_ID: meet - OIDC_RP_CLIENT_SECRET: ThisIsAnExampleKeyForDevPurposeOnly - OIDC_RP_SIGN_ALGO: RS256 - OIDC_RP_SCOPES: "openid email" - OIDC_REDIRECT_ALLOWED_HOSTS: https://meet.127.0.0.1.nip.io - OIDC_AUTH_REQUEST_EXTRA_PARAMS: "{'acr_values': 'eidas1'}" - LOGIN_REDIRECT_URL: https://meet.127.0.0.1.nip.io - LOGIN_REDIRECT_URL_FAILURE: https://meet.127.0.0.1.nip.io - LOGOUT_REDIRECT_URL: https://meet.127.0.0.1.nip.io - DB_HOST: postgres - DB_NAME: meet - DB_USER: dinum - DB_PASSWORD: pass - DB_PORT: 5432 - REDIS_URL: redis://default:pass@redis-master:6379/1 - STORAGES_STATICFILES_BACKEND: django.contrib.staticfiles.storage.StaticFilesStorage - {{- with .Values.livekit.keys }} - {{- range $key, $value := . }} - LIVEKIT_API_SECRET: {{ $value }} - LIVEKIT_API_KEY: {{ $key }} - {{- end }} - {{- end }} - LIVEKIT_API_URL: https://livekit.127.0.0.1.nip.io/ - LIVEKIT_WEBHOOK_EVENTS_FILTER_REGEX: "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" - ALLOW_UNREGISTERED_ROOMS: False - FRONTEND_SILENCE_LIVEKIT_DEBUG: False - FRONTEND_SUPPORT: "{'id': '58ea6697-8eba-4492-bc59-ad6562585041', 'help_article_transcript': 'https://lasuite.crisp.help/fr/article/visio-transcript-1sjq43x', 'help_article_recording': 'https://lasuite.crisp.help/fr/article/visio-enregistrement-wgc8o0', 'help_article_more_tools': 'https://lasuite.crisp.help/fr/article/visio-tools-bvxj23'}" - FRONTEND_FEEDBACK: "{'url': 'https://grist.numerique.gouv.fr/o/docs/cbMv4G7pLY3Z/USER-RESEARCH-or-LA-SUITE/f/26'}" FRONTEND_CUSTOM_CSS_URL: './assets/dinum-styles.css' FRONTEND_USE_FRENCH_GOV_FOOTER: True FRONTEND_USE_PROCONNECT_BUTTON: True - FRONTEND_MANIFEST_LINK: "https://docs.numerique.gouv.fr/docs/1ef86abf-f7e0-46ce-b6c7-8be8b8af4c3d/" - AWS_S3_ENDPOINT_URL: http://minio.meet.svc.cluster.local:9000 - AWS_S3_ACCESS_KEY_ID: meet - AWS_S3_SECRET_ACCESS_KEY: password - AWS_STORAGE_BUCKET_NAME: meet-media-storage - AWS_S3_REGION_NAME: local - MEDIA_BASE_URL: https://meet.127.0.0.1.nip.io - RECORDING_ENABLE: True - RECORDING_STORAGE_EVENT_ENABLE: True - RECORDING_STORAGE_EVENT_TOKEN: password - SUMMARY_SERVICE_ENDPOINT: http://meet-summary:80/api/v1/tasks/ - SUMMARY_SERVICE_API_TOKEN: password - RECORDING_DOWNLOAD_BASE_URL: https://meet.127.0.0.1.nip.io/recording - ROOM_TELEPHONY_ENABLED: True - SSL_CERT_FILE: /app/.venv/lib/python3.13/site-packages/certifi/cacert.pem ADDONS_ENABLED: True ADDONS_CSRF_SECRET: 'ThisIsAnExampleKeyForDevPurposeOnly' ADDONS_TOKEN_SECRET_KEY: 'ThisIsAnExampleKeyForDevPurposeOnly' diff --git a/src/helm/env.d/dev-keycloak/values.meet.yaml.gotmpl b/src/helm/env.d/dev-keycloak/values.meet.yaml.gotmpl index b8679a95..387815b0 100644 --- a/src/helm/env.d/dev-keycloak/values.meet.yaml.gotmpl +++ b/src/helm/env.d/dev-keycloak/values.meet.yaml.gotmpl @@ -1,76 +1,13 @@ backend: envVars: - DJANGO_CSRF_TRUSTED_ORIGINS: https://meet.127.0.0.1.nip.io,http://meet.127.0.0.1.nip.io - DJANGO_CONFIGURATION: Production - DJANGO_ALLOWED_HOSTS: meet.127.0.0.1.nip.io - DJANGO_SECRET_KEY: {{ .Values.djangoSecretKey }} - DJANGO_SETTINGS_MODULE: meet.settings - DJANGO_SILENCED_SYSTEM_CHECKS: security.W004, security.W008 - DJANGO_SUPERUSER_PASSWORD: admin - DJANGO_EMAIL_HOST: "mailcatcher" - DJANGO_EMAIL_PORT: 1025 - DJANGO_EMAIL_USE_SSL: False - DJANGO_EMAIL_BRAND_NAME: "La Suite Numérique" - DJANGO_EMAIL_SUPPORT_EMAIL: "test@yopmail.com" - DJANGO_EMAIL_LOGO_IMG: https://meet.127.0.0.1.nip.io/assets/logo-suite-numerique.png - DJANGO_EMAIL_DOMAIN: meet.127.0.0.1.nip.io - DJANGO_EMAIL_APP_BASE_URL: https://meet.127.0.0.1.nip.io - OIDC_OP_JWKS_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/certs - OIDC_OP_AUTHORIZATION_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/auth - OIDC_OP_TOKEN_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/token - OIDC_OP_USER_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/userinfo - OIDC_OP_LOGOUT_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/meet/protocol/openid-connect/logout - OIDC_RP_CLIENT_ID: meet - OIDC_RP_CLIENT_SECRET: ThisIsAnExampleKeyForDevPurposeOnly - OIDC_RP_SIGN_ALGO: RS256 - OIDC_RP_SCOPES: "openid email" - OIDC_REDIRECT_ALLOWED_HOSTS: https://meet.127.0.0.1.nip.io - OIDC_AUTH_REQUEST_EXTRA_PARAMS: "{'acr_values': 'eidas1'}" - LOGIN_REDIRECT_URL: https://meet.127.0.0.1.nip.io - LOGIN_REDIRECT_URL_FAILURE: https://meet.127.0.0.1.nip.io - LOGOUT_REDIRECT_URL: https://meet.127.0.0.1.nip.io - DB_HOST: postgres - DB_NAME: meet - DB_USER: dinum - DB_PASSWORD: pass - DB_PORT: 5432 - REDIS_URL: redis://default:pass@redis-master:6379/1 - STORAGES_STATICFILES_BACKEND: django.contrib.staticfiles.storage.StaticFilesStorage - {{- with .Values.livekit.keys }} - {{- range $key, $value := . }} - LIVEKIT_API_SECRET: {{ $value }} - LIVEKIT_API_KEY: {{ $key }} - {{- end }} - {{- end }} - LIVEKIT_API_URL: https://livekit.127.0.0.1.nip.io/ LIVEKIT_FORCE_WSS_PROTOCOL: True LIVEKIT_ENABLE_FIREFOX_PROXY_WORKAROUND: True - LIVEKIT_WEBHOOK_EVENTS_FILTER_REGEX: "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" - ALLOW_UNREGISTERED_ROOMS: False - FRONTEND_SILENCE_LIVEKIT_DEBUG: False - FRONTEND_SUPPORT: "{'id': '58ea6697-8eba-4492-bc59-ad6562585041', 'help_article_transcript': 'https://lasuite.crisp.help/fr/article/visio-transcript-1sjq43x', 'help_article_recording': 'https://lasuite.crisp.help/fr/article/visio-enregistrement-wgc8o0', 'help_article_more_tools': 'https://lasuite.crisp.help/fr/article/visio-tools-bvxj23'}" - FRONTEND_FEEDBACK: "{'url': 'https://grist.numerique.gouv.fr/o/docs/cbMv4G7pLY3Z/USER-RESEARCH-or-LA-SUITE/f/26'}" - FRONTEND_MANIFEST_LINK: "https://docs.numerique.gouv.fr/docs/1ef86abf-f7e0-46ce-b6c7-8be8b8af4c3d/" FRONTEND_IDLE_DISCONNECT_WARNING_DELAY: 9000 FRONTEND_TRANSCRIPTION_DESTINATION: "https://docs.numerique.gouv.fr" - AWS_S3_ENDPOINT_URL: http://minio.meet.svc.cluster.local:9000 - AWS_S3_ACCESS_KEY_ID: meet - AWS_S3_SECRET_ACCESS_KEY: password - AWS_STORAGE_BUCKET_NAME: meet-media-storage - AWS_S3_REGION_NAME: local - AWS_S3_SIGNATURE_VERSION: s3v4 - MEDIA_BASE_URL: https://meet.127.0.0.1.nip.io - RECORDING_ENABLE: True - RECORDING_STORAGE_EVENT_ENABLE: True - RECORDING_STORAGE_EVENT_TOKEN: password - SUMMARY_SERVICE_ENDPOINT: http://meet-summary:80/api/v1/tasks/ - SUMMARY_SERVICE_API_TOKEN: password - RECORDING_DOWNLOAD_BASE_URL: https://meet.127.0.0.1.nip.io/recording ROOM_TELEPHONY_ENABLED: True ROOM_TELEPHONY_DEFAULT_COUNTRY: 'FR' ROOM_TELEPHONY_PHONE_NUMBER: '+33901020304' - SSL_CERT_FILE: /app/.venv/lib/python3.13/site-packages/certifi/cacert.pem ROOM_SUBTITLE_ENABLED: True EXTERNAL_API_ENABLED: True APPLICATION_JWT_AUDIENCE: https://meet.127.0.0.1.nip.io/external-api/v1.0/ @@ -81,9 +18,6 @@ backend: CELERY_ENABLED: True CELERY_BROKER_URL: redis://default:pass@redis-master:6379/1 METADATA_COLLECTOR_ENABLED: True - ADDONS_ENABLED: True - ADDONS_CSRF_SECRET: 'ThisIsAnExampleKeyForDevPurposeOnly' - ADDONS_TOKEN_SECRET_KEY: 'ThisIsAnExampleKeyForDevPurposeOnly' FRONTEND_IS_SILENT_LOGIN_ENABLED: False # ---- Frontend : Generic/white-label build (meet-frontend-generic) — Outlook add-in disabled ----