tutor 23.0.0.dev3196__tar.gz → 23.0.0.dev3199__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/PKG-INFO +1 -1
  2. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/config.py +5 -0
  3. tutor-23.0.0.dev3199/tutor/templates/apps/openedx/granian-config +2 -0
  4. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/openedx/Dockerfile +11 -12
  5. tutor-23.0.0.dev3199/tutor/templates/build/openedx/bin/reload-granian +4 -0
  6. tutor-23.0.0.dev3199/tutor/templates/build/openedx/bin/run-granian +18 -0
  7. tutor-23.0.0.dev3199/tutor/templates/build/openedx/settings/granian-config +13 -0
  8. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/config/defaults.yml +2 -2
  9. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/k8s/deployments.yml +18 -18
  10. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/kustomization.yml +2 -2
  11. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/local/docker-compose.yml +4 -4
  12. tutor-23.0.0.dev3196/tutor/templates/apps/openedx/uwsgi.ini +0 -3
  13. tutor-23.0.0.dev3196/tutor/templates/build/openedx/bin/reload-uwsgi +0 -3
  14. tutor-23.0.0.dev3196/tutor/templates/build/openedx/settings/uwsgi.ini +0 -23
  15. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/.gitignore +0 -0
  16. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/.hatch_build.py +0 -0
  17. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/LICENSE.txt +0 -0
  18. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/README.rst +0 -0
  19. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/pyproject.toml +0 -0
  20. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/requirements/base.in +0 -0
  21. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/requirements/dev.txt +0 -0
  22. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/requirements/plugins.txt +0 -0
  23. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/__about__.py +0 -0
  24. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/__init__.py +0 -0
  25. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/bindmount.py +0 -0
  26. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/__init__.py +0 -0
  27. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/cli.py +0 -0
  28. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/compose.py +0 -0
  29. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/config.py +0 -0
  30. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/context.py +0 -0
  31. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/dev.py +0 -0
  32. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/images.py +0 -0
  33. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/jobs.py +0 -0
  34. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/jobs_utils.py +0 -0
  35. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/k8s.py +0 -0
  36. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/local.py +0 -0
  37. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/mounts.py +0 -0
  38. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/params.py +0 -0
  39. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/plugins.py +0 -0
  40. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/upgrade/__init__.py +0 -0
  41. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/upgrade/common.py +0 -0
  42. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/upgrade/compose.py +0 -0
  43. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/commands/upgrade/k8s.py +0 -0
  44. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/core/__init__.py +0 -0
  45. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/core/hooks/__init__.py +0 -0
  46. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/core/hooks/actions.py +0 -0
  47. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/core/hooks/contexts.py +0 -0
  48. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/core/hooks/filters.py +0 -0
  49. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/core/hooks/priorities.py +0 -0
  50. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/env.py +0 -0
  51. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/exceptions.py +0 -0
  52. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/fmt.py +0 -0
  53. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/hooks/__init__.py +0 -0
  54. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/hooks/catalog.py +0 -0
  55. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/images.py +0 -0
  56. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/interactive.py +0 -0
  57. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/plugins/__init__.py +0 -0
  58. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/plugins/base.py +0 -0
  59. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/plugins/indexes.py +0 -0
  60. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/plugins/openedx.py +0 -0
  61. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/plugins/v0.py +0 -0
  62. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/plugins/v1.py +0 -0
  63. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/py.typed +0 -0
  64. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/serialize.py +0 -0
  65. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/tasks.py +0 -0
  66. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/caddy/Caddyfile +0 -0
  67. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/config/cms.env.yml +0 -0
  68. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/config/lms.env.yml +0 -0
  69. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/config/partials/auth.yml +0 -0
  70. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/cms/__init__.py +0 -0
  71. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/cms/development.py +0 -0
  72. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/cms/production.py +0 -0
  73. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/cms/test.py +0 -0
  74. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/lms/__init__.py +0 -0
  75. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/lms/development.py +0 -0
  76. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/lms/production.py +0 -0
  77. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/lms/test.py +0 -0
  78. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/partials/common_all.py +0 -0
  79. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/partials/common_cms.py +0 -0
  80. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/partials/common_lms.py +0 -0
  81. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/openedx/settings/partials/common_test.py +0 -0
  82. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/permissions/setowners.sh +0 -0
  83. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/apps/redis/redis.conf +0 -0
  84. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/openedx/revisions.yml +0 -0
  85. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/openedx/settings/cms/__init__.py +0 -0
  86. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/openedx/settings/cms/assets.py +0 -0
  87. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/openedx/settings/cms/i18n.py +0 -0
  88. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/openedx/settings/lms/__init__.py +0 -0
  89. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/openedx/settings/lms/assets.py +0 -0
  90. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/openedx/settings/lms/i18n.py +0 -0
  91. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/openedx/settings/partials/assets.py +0 -0
  92. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/openedx/settings/partials/i18n.py +0 -0
  93. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/openedx/themes/README +0 -0
  94. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/permissions/Dockerfile +0 -0
  95. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/build/permissions/setowner.sh +0 -0
  96. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/config/base.yml +0 -0
  97. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/dev/docker-compose.jobs.yml +0 -0
  98. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/dev/docker-compose.yml +0 -0
  99. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/jobs/init/cms.sh +0 -0
  100. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/jobs/init/lms.sh +0 -0
  101. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/jobs/init/meilisearch.sh +0 -0
  102. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/jobs/init/mounted-directories.sh +0 -0
  103. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/jobs/init/mysql.sh +0 -0
  104. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/k8s/jobs.yml +0 -0
  105. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/k8s/namespace.yml +0 -0
  106. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/k8s/override.yml +0 -0
  107. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/k8s/services.yml +0 -0
  108. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/k8s/volumes.yml +0 -0
  109. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/local/docker-compose.jobs.yml +0 -0
  110. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/local/docker-compose.prod.yml +0 -0
  111. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/templates/version +0 -0
  112. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/types.py +0 -0
  113. {tutor-23.0.0.dev3196 → tutor-23.0.0.dev3199}/tutor/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: tutor
3
- Version: 23.0.0.dev3196
3
+ Version: 23.0.0.dev3199
4
4
  Summary: The Docker-based Open edX distribution designed for peace of mind
5
5
  Project-URL: Homepage, https://docs.tutor.edly.io/
6
6
  Project-URL: Documentation, https://docs.tutor.edly.io/
@@ -252,6 +252,11 @@ def upgrade_obsolete(config: Config) -> None:
252
252
  config["ENABLE_WEB_PROXY"] = config.pop("RUN_CADDY")
253
253
  if "NGINX_HTTP_PORT" in config:
254
254
  config["CADDY_HTTP_PORT"] = config.pop("NGINX_HTTP_PORT")
255
+ # Replace uwsgi by granian
256
+ if "OPENEDX_LMS_UWSGI_WORKERS" in config:
257
+ config["OPENEDX_LMS_GRANIAN_WORKERS"] = config.pop("OPENEDX_LMS_UWSGI_WORKERS")
258
+ if "OPENEDX_CMS_UWSGI_WORKERS" in config:
259
+ config["OPENEDX_CMS_GRANIAN_WORKERS"] = config.pop("OPENEDX_CMS_UWSGI_WORKERS")
255
260
 
256
261
 
257
262
  def convert_json2yml(root: str) -> None:
@@ -0,0 +1,2 @@
1
+ {% include "build/openedx/settings/granian-config" %}
2
+ {{ patch("granian-config") }}
@@ -124,13 +124,9 @@ RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared \
124
124
  # Use redis as a django cache https://pypi.org/project/django-redis/
125
125
  django-redis==5.4.0
126
126
 
127
- # uwsgi server https://pypi.org/project/uWSGI/
128
- # We don't need xml configuration support in uwsgi so don't install it, as it causes
129
- # uwsgi to crash
130
- # https://github.com/xmlsec/python-xmlsec/issues/320
127
+ # granian server https://pypi.org/project/granian/
131
128
  RUN --mount=type=cache,target=/openedx/.cache/pip,sharing=shared \
132
- UWSGI_PROFILE_OVERRIDE="xml=no" \
133
- $PIP_COMMAND install --no-cache-dir --compile uwsgi==2.0.24
129
+ $PIP_COMMAND install --no-cache-dir --compile granian==2.7.4
134
130
 
135
131
  # Install scorm xblock
136
132
  RUN $PIP_COMMAND install "openedx-scorm-xblock>=19.0.0,<20.0.0"
@@ -264,6 +260,9 @@ RUN ./manage.py lms collectstatic --noinput --settings=tutor.assets && \
264
260
  # Create a data directory, which might be used (or not)
265
261
  RUN mkdir /openedx/data
266
262
 
263
+ # Create the media directory: granian refuses to start if a static path mount does not exist
264
+ RUN mkdir /openedx/media
265
+
267
266
  # If this "canary" file is missing from a container, then that indicates that a
268
267
  # local edx-platform was bind-mounted into that container, thus overwriting the
269
268
  # canary. This information is useful during edx-platform initialisation.
@@ -329,14 +328,14 @@ CMD ["./manage.py", "$SERVICE_VARIANT", "runserver", "0.0.0.0:8000"]
329
328
  ###### Final image with production cmd
330
329
  FROM production AS final
331
330
 
332
- # Default amount of uWSGI processes
333
- ENV UWSGI_WORKERS=2
331
+ # Default amount of Granian worker processes
332
+ ENV GRANIAN_WORKERS=2
334
333
 
335
- # Copy the default uWSGI configuration
336
- COPY --chown=app:app settings/uwsgi.ini /openedx
334
+ # Copy granian configuration file
335
+ COPY --chown=app:app settings/granian-config /openedx
337
336
 
338
- # Run server
339
- CMD ["uwsgi", "/openedx/uwsgi.ini"]
337
+ # Run server: granian has no config file support, so run-granian converts /openedx/granian-config to CLI arguments
338
+ CMD ["run-granian"]
340
339
 
341
340
  {{ patch("openedx-dockerfile-final") }}
342
341
 
@@ -0,0 +1,4 @@
1
+ #! /bin/bash
2
+ echo "Reloading granian workers..."
3
+ # Granian runs as PID 1 and respawns its workers on SIGHUP
4
+ kill -HUP 1
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Start granian with the options listed in /openedx/granian-config.
4
+
5
+ Granian has no config file support and only accepts command-line options, so
6
+ this wrapper converts the file into an argument list, one option per line,
7
+ with environment variables expanded.
8
+ """
9
+
10
+ import os
11
+ import shlex
12
+
13
+ from granian.cli import cli
14
+
15
+ if __name__ == "__main__":
16
+ with open("/openedx/granian-config", encoding="utf-8") as f:
17
+ args = shlex.split(os.path.expandvars(f.read()), comments=True)
18
+ cli(args=args)
@@ -0,0 +1,13 @@
1
+ --interface wsgi
2
+ --host 0.0.0.0
3
+ --port 8000
4
+ --workers $GRANIAN_WORKERS
5
+ # Granian defaults to hundreds of threads per wsgi worker
6
+ --blocking-threads 8
7
+ # Respawn crashed workers instead of shutting down the whole server
8
+ --respawn-failed-workers
9
+ --static-path-route /static
10
+ --static-path-mount /openedx/staticfiles/
11
+ --static-path-route /media
12
+ --static-path-mount /openedx/media/
13
+ $SERVICE_VARIANT.wsgi:application
@@ -56,8 +56,8 @@ OPENEDX_AWS_ACCESS_KEY: ""
56
56
  OPENEDX_AWS_SECRET_ACCESS_KEY: ""
57
57
  OPENEDX_CACHE_REDIS_DB: 1
58
58
  OPENEDX_CELERY_REDIS_DB: 0
59
- OPENEDX_CMS_UWSGI_WORKERS: 2
60
- OPENEDX_LMS_UWSGI_WORKERS: 2
59
+ OPENEDX_CMS_GRANIAN_WORKERS: 2
60
+ OPENEDX_LMS_GRANIAN_WORKERS: 2
61
61
  OPENEDX_MYSQL_DATABASE: "openedx"
62
62
  OPENEDX_MYSQL_USERNAME: "openedx"
63
63
  # the common version will be automatically set to "master" in the main branch
@@ -84,8 +84,8 @@ spec:
84
84
  value: cms
85
85
  - name: DJANGO_SETTINGS_MODULE
86
86
  value: cms.envs.tutor.production
87
- - name: UWSGI_WORKERS
88
- value: "{{ OPENEDX_CMS_UWSGI_WORKERS }}"
87
+ - name: GRANIAN_WORKERS
88
+ value: "{{ OPENEDX_CMS_GRANIAN_WORKERS }}"
89
89
  ports:
90
90
  - containerPort: 8000
91
91
  volumeMounts:
@@ -95,9 +95,9 @@ spec:
95
95
  name: settings-cms
96
96
  - mountPath: /openedx/config
97
97
  name: config
98
- - mountPath: /openedx/uwsgi.ini
99
- name: uwsgi-config
100
- subPath: uwsgi.ini
98
+ - mountPath: /openedx/granian-config
99
+ name: granian-config
100
+ subPath: granian-config
101
101
  resources:
102
102
  requests:
103
103
  memory: 2Gi
@@ -113,12 +113,12 @@ spec:
113
113
  - name: config
114
114
  configMap:
115
115
  name: openedx-config
116
- - name: uwsgi-config
116
+ - name: granian-config
117
117
  configMap:
118
- name: openedx-uwsgi-config
118
+ name: openedx-granian-config
119
119
  items:
120
- - key: uwsgi.ini
121
- path: uwsgi.ini
120
+ - key: granian-config
121
+ path: granian-config
122
122
  ---
123
123
  apiVersion: apps/v1
124
124
  kind: Deployment
@@ -195,8 +195,8 @@ spec:
195
195
  value: lms
196
196
  - name: DJANGO_SETTINGS_MODULE
197
197
  value: lms.envs.tutor.production
198
- - name: UWSGI_WORKERS
199
- value: "{{ OPENEDX_LMS_UWSGI_WORKERS }}"
198
+ - name: GRANIAN_WORKERS
199
+ value: "{{ OPENEDX_LMS_GRANIAN_WORKERS }}"
200
200
  ports:
201
201
  - containerPort: 8000
202
202
  volumeMounts:
@@ -206,9 +206,9 @@ spec:
206
206
  name: settings-cms
207
207
  - mountPath: /openedx/config
208
208
  name: config
209
- - mountPath: /openedx/uwsgi.ini
210
- name: uwsgi-config
211
- subPath: uwsgi.ini
209
+ - mountPath: /openedx/granian-config
210
+ name: granian-config
211
+ subPath: granian-config
212
212
  resources:
213
213
  requests:
214
214
  memory: 2Gi
@@ -224,12 +224,12 @@ spec:
224
224
  - name: config
225
225
  configMap:
226
226
  name: openedx-config
227
- - name: uwsgi-config
227
+ - name: granian-config
228
228
  configMap:
229
- name: openedx-uwsgi-config
229
+ name: openedx-granian-config
230
230
  items:
231
- - key: uwsgi.ini
232
- path: uwsgi.ini
231
+ - key: granian-config
232
+ path: granian-config
233
233
  ---
234
234
  apiVersion: apps/v1
235
235
  kind: Deployment
@@ -62,9 +62,9 @@ configMapGenerator:
62
62
  options:
63
63
  labels:
64
64
  app.kubernetes.io/name: openedx
65
- - name: openedx-uwsgi-config
65
+ - name: openedx-granian-config
66
66
  files:
67
- - apps/openedx/uwsgi.ini
67
+ - apps/openedx/granian-config
68
68
  options:
69
69
  labels:
70
70
  app.kubernetes.io/name: openedx
@@ -99,13 +99,13 @@ services:
99
99
  environment:
100
100
  SERVICE_VARIANT: lms
101
101
  DJANGO_SETTINGS_MODULE: lms.envs.tutor.production
102
- UWSGI_WORKERS: {{ OPENEDX_LMS_UWSGI_WORKERS }}
102
+ GRANIAN_WORKERS: {{ OPENEDX_LMS_GRANIAN_WORKERS }}
103
103
  restart: unless-stopped
104
104
  volumes:
105
105
  - ../apps/openedx/settings/lms:/openedx/edx-platform/lms/envs/tutor:roz
106
106
  - ../apps/openedx/settings/cms:/openedx/edx-platform/cms/envs/tutor:roz
107
107
  - ../apps/openedx/config:/openedx/config:roz
108
- - ../apps/openedx/uwsgi.ini:/openedx/uwsgi.ini:roz
108
+ - ../apps/openedx/granian-config:/openedx/granian-config:roz
109
109
  - ../../data/lms:/openedx/data:z
110
110
  - ../../data/openedx-media:/openedx/media:z
111
111
  - ../../data/openedx-media-private:/openedx/media-private:z
@@ -126,13 +126,13 @@ services:
126
126
  environment:
127
127
  SERVICE_VARIANT: cms
128
128
  DJANGO_SETTINGS_MODULE: cms.envs.tutor.production
129
- UWSGI_WORKERS: {{ OPENEDX_CMS_UWSGI_WORKERS }}
129
+ GRANIAN_WORKERS: {{ OPENEDX_CMS_GRANIAN_WORKERS }}
130
130
  restart: unless-stopped
131
131
  volumes:
132
132
  - ../apps/openedx/settings/lms:/openedx/edx-platform/lms/envs/tutor:roz
133
133
  - ../apps/openedx/settings/cms:/openedx/edx-platform/cms/envs/tutor:roz
134
134
  - ../apps/openedx/config:/openedx/config:roz
135
- - ../apps/openedx/uwsgi.ini:/openedx/uwsgi.ini:roz
135
+ - ../apps/openedx/granian-config:/openedx/granian-config:roz
136
136
  - ../../data/cms:/openedx/data:z
137
137
  - ../../data/openedx-media:/openedx/media:z
138
138
  - ../../data/openedx-media-private:/openedx/media-private:z
@@ -1,3 +0,0 @@
1
- {% include "build/openedx/settings/uwsgi.ini" %}
2
- {{ patch("uwsgi-config") }}
3
-
@@ -1,3 +0,0 @@
1
- #! /bin/bash
2
- echo "Reloading uwsgi process..."
3
- kill -HUP $(pidof /openedx/venv/bin/python3 /openedx/venv/bin/uwsgi)
@@ -1,23 +0,0 @@
1
- [uwsgi]
2
- static-map = /static=/openedx/staticfiles/
3
- static-map = /media=/openedx/media/
4
- http = 0.0.0.0:8000
5
- buffer-size = 8192
6
- wsgi-file = $(SERVICE_VARIANT)/wsgi.py
7
- processes = $(UWSGI_WORKERS)
8
- thunder-lock = true
9
- single-interpreter = true
10
- enable-threads = true
11
- # Fix 502 errors for closed connections
12
- http-keepalive = 1
13
- add-header = Connection: Keep-Alive
14
- # Better startup/shutdown in docker:
15
- die-on-term = true
16
- lazy-apps = false
17
- need-app = true
18
- no-defer-accept = true
19
- # Enable the master process for performance
20
- master = true
21
- # Clean up settings
22
- py-call-osafterfork = true
23
- vacuum = true