- First, determine whether your setting should be a dynamically modifiable django admin model setting instead? If so, it is stored in a django model and available via the django Admin interface. Changing its values would not require any code changes. So it is preferable over a code-based django setting unless it is security-sensitive or you anticipate it not changing often for a given openedX deployment.
- Determine whether your setting is security-sensitive.
- Does it contain any secret keys, private keys, IP addresses, etc?
- If so, it is an Auth setting.
- Otherwise, it is an Env setting.
- Add your setting to your repo's envs python file. For edx-platform, it would be:
- https://github.com/edx/edx-platform/blob/master/lms/envs/aws.py, or
- https://github.com/edx/edx-platform/blob/master/cms/envs/aws.py
MY_SETTINGS = ENV_TOKENS.get('MY_SETTINGS', MY_DEFAULT_VALUE)
- Update the playbook for the appropriate role of the edx/configuration repo.
Add a default at the top of the file: https://github.com/edx/configuration/blob/master/playbooks/roles/edxapp/defaults/main.yml
EDXAPP_MY_SETTINGS: MY_DEFAULT_VALUE
Add a mapping between the ansible name and the name used in your python file.
MY_SETTINGS: "{{ EDXAPP_MY_SETTINGS }}"
- To provide overrides of your setting for edx.org deployments, update the YAML files in the following locations:
$customHeader
Manage space
Manage content
Integrations