This is an experimental plugin for Tutor that enables the user retirement feature in Open edX.
 You must install a supported release of this plugin to match the Open edX and Tutor version you are deploying. If you are installing this plugin from a branch in this Git repository, you must select the appropriate one:
Open edX release | Tutor version | Plugin branch | Plugin release |
---|---|---|---|
Lilac | >=12.0, <13 |
Not supported | Not supported |
Maple | >=13.2, <14 1 |
maple |
0.1.x |
Nutmeg | >=14.0, <15 |
main |
1.x.x |
pip install git+https://github.com/hastexo/[email protected]
To enable this plugin, run:
tutor plugins enable retirement
Before starting Tutor, build the docker image:
tutor images build retirement
After enabling this plugin, you need to restart your Tutor deployment with
tutor local quickstart
or tutor k8s quickstart
. This ensures that the
retirement service worker is registered as an OAuth2 client in LMS and that the
retirement pipeline stages are correctly populated in LMS.
To run the retirement pipeline in the Tutor local deployment:
tutor local retire-users
This will start the retirement-job
service and run the retirement pipeline
as described here.
If you want to run this command periodically in a local deployment, you can
invoke this command from a cron job on your host.
For a Kubernetes deployment, this plugin defines a CronJob
which runs the retirement pipeline according to the schedule defined in
the RETIREMENT_K8S_CRONJOB_SCHEDULE
configuration parameter.
You can also tweak the history
limits
for the CronJob.
RETIREMENT_EDX_OAUTH2_CLIENT_ID
(default"retirement_service_worker"
)RETIREMENT_COOL_OFF_DAYS
(default30
)RETIREMENT_K8S_CRONJOB_HISTORYLIMIT_FAILURE
(default1
)RETIREMENT_K8S_CRONJOB_HISTORYLIMIT_SUCCESS
(default3
)RETIREMENT_K8S_CRONJOB_SCHEDULE
(default"0 0 * * *"
, once a day at midnight)
These values can be modified with tutor config save --set PARAM_NAME=VALUE
commands.
Footnotes
-
For Open edX Maple and Tutor 13, you must run version 13.2.0 or  later. That is because this plugin uses the Tutor v1 plugin API,  which was introduced with that  release. ↩