mirror of
https://github.com/ChristianLight/tutor.git
synced 2024-12-12 14:17:46 +00:00
78424776b6
When a Pod associated with a Deployment is updated (for example, due to a change to its ConfigMap, or an updated image reference), Kubernetes uses a ReplicaSet to spin up a Pod with the new configuration, and once it is up, it tears down the old one. In case of the Caddy Deployment, this is complicated by the fact that it uses a Persistent Volume Claim (PVC), whose corresponding volume uses a Read/Write-Once (RWO) configuration. This means that it can only be used by multiple Pods if all those Pods all run on the same Kubernetes worker node. In order to enable rolling upgrades for the Caddy Deployment, we need to ensure that its replacement Pod is scheduled on the same node as the original Pod. Thus, add a pod affinity rule that will force exactly that behavior. Reference: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ The other Tutor services that use volumes (MySQL, Redis, Elasticsearch and MongoDB) do not need this fix, since they all use the "Recreate" deployment strategy: their Pods are all automatically torn down before being replaced. This strategy is not needed for Caddy, and using a pod affinity rule is less disruptive to the learner experience. |
||
---|---|---|
.github | ||
bin | ||
docs | ||
requirements | ||
tests | ||
tutor | ||
.coveragerc | ||
.gitignore | ||
.gitlab-ci.yml | ||
CHANGELOG-nightly.md | ||
CHANGELOG.md | ||
CONTRIBUTING.rst | ||
Dockerfile | ||
LICENSE.txt | ||
Makefile | ||
MANIFEST.in | ||
README.rst | ||
setup.py | ||
tutor.spec |
.. _readme_intro_start: Tutor: the Docker-based Open edX distribution designed for peace of mind ======================================================================== .. image:: https://overhang.io/static/img/tutor-logo.svg :alt: Tutor logo :width: 500px :align: center | .. image:: https://img.shields.io/static/v1?logo=github&label=Git&style=flat-square&color=brightgreen&message=Source%20code :alt: Source code :target: https://github.com/overhangio/tutor .. image:: https://img.shields.io/static/v1?logo=discourse&label=Forums&style=flat-square&color=ff0080&message=discuss.overhang.io :alt: Forums :target: https://discuss.overhang.io .. image:: https://img.shields.io/static/v1?logo=readthedocs&label=Documentation&style=flat-square&color=blue&message=docs.tutor.overhang.io :alt: Documentation :target: https://docs.tutor.overhang.io .. image:: https://img.shields.io/pypi/v/tutor?logo=python&logoColor=white :alt: PyPI releases :target: https://pypi.org/project/tutor .. image:: https://img.shields.io/github/license/overhangio/tutor.svg?style=flat-square :alt: AGPL License :target: https://www.gnu.org/licenses/agpl-3.0.en.html .. image:: https://img.shields.io/static/v1?logo=twitter&label=Twitter&style=flat-square&color=1d9bf0&message=@overhangio :alt: Follow us on Twitter :target: https://twitter.com/overhangio/ .. image:: https://img.shields.io/static/v1?logo=youtube&label=YouTube&style=flat-square&color=ff0000&message=@overhangio :alt: Follow us on Youtube :target: https://www.youtube.com/c/OverhangIO **Tutor** is the official Docker-based `Open edX <https://openedx.org>`_ distribution, both for production and local development. The goal of Tutor is to make it easy to deploy, customise, upgrade and scale Open edX. Tutor is reliable, fast, extensible, and it is already used to deploy hundreds of Open edX platforms around the world. Do you need professional assistance setting up or managing your Open edX platform? Overhang.IO provides online support as part of its `Long Term Support (LTS) offering <https://overhang.io/tutor/pricing>`__. Features -------- * 100% `open source <https://github.com/overhangio/tutor>`__ * Runs entirely on Docker * World-famous 1-click `installation and upgrades <https://docs.tutor.overhang.io/install.html>`__ * Comes with batteries included: `theming <https://github.com/overhangio/indigo>`__, `SCORM <https://github.com/overhangio/openedx-scorm-xblock>`__, `HTTPS <https://docs.tutor.overhang.io/configuration.html#ssl-tls-certificates-for-https-access>`__, `web-based administration interface <https://github.com/overhangio/tutor-webui>`__, `mobile app <https://github.com/overhangio/tutor-android>`__, `custom translations <https://docs.tutor.overhang.io/configuration.html#adding-custom-translations>`__... * Extensible architecture with `plugins <https://docs.tutor.overhang.io/plugins/index.html>`__ * Works with `Kubernetes <https://docs.tutor.overhang.io/k8s.html>`__ * Amazing premium plugins available in the `Tutor Wizard Edition <https://overhang.io/tutor/wizardedition>`__, including `Cairn <https://overhang.io/tutor/plugin/cairn>`__ the next-generation analytics solution for Open edX. * No technical skill required with the `zero-click Tutor AWS image <https://docs.tutor.overhang.io/install.html#zero-click-aws-installation>`__ .. _readme_intro_end: .. image:: ./docs/img/quickstart.gif :alt: Tutor local quickstart :target: https://terminalizer.com/view/91b0bfdd557 Quickstart ---------- 1. Install the `latest stable release <https://github.com/overhangio/tutor/releases>`_ of Tutor 2. Run ``tutor local quickstart`` 3. You're done! Documentation ------------- Extensive documentation is available online: https://docs.tutor.overhang.io/ Is there a problem? ------------------- Please follow the instructions from the `troubleshooting section <https://docs.tutor.overhang.io/troubleshooting.html>`__ in the docs. .. _readme_support_start: Support ------- To get community support, go to the official discussion forums: https://discuss.overhang.io. For official support, please subscribe to a Long Term Support (LTS) license at https://overhang.io/tutor/pricing. .. _readme_support_end: .. _readme_contributing_start: Contributing ------------ We welcome contributions to Tutor! To learn how you can contribute, please check the relevant section of the Tutor docs: `https://docs.tutor.overhang.io/tutor.html#contributing <https://docs.tutor.overhang.io/tutor.html#contributing>`__. .. _readme_contributing_end: