Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added .rootdir
Empty file.
67 changes: 31 additions & 36 deletions docs/environment_variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,47 +4,42 @@ To update, run `make update-env-docs`.

| Variable | Service | Environments | Default | file | Description |
| --- | --- | --- | --- | --- | --- |
| `CELERY_BEAT_REPLICAS` | Compose | Unknown | 0 | [compose.yml](file://compose.yml) | - |
| `CELERY_WORKER_REPLICAS` | Compose | Unknown | 0 | [compose.yml](file://compose.yml) | - |
| `DEBUG` | Compose | Local | - | [compose.override.local.yml](file://compose.override.local.yml), [compose.override.yml](file://compose.override.yml) | This can be set to either `debugpy` or `pycharm-pydevd` currently |
| `DJANGO_REPLICAS` | Compose | Unknown | 1 | [compose.yml](file://compose.yml) | - |
| `DOCS_PORT` | Compose | Local | 8888 | [compose.override.local.yml](file://compose.override.local.yml), [compose.override.yml](file://compose.override.yml) | - |
| `FLOWER_REPLICAS` | Compose | Unknown | 0 | [compose.yml](file://compose.yml) | - |
| `GOBGP_REPLICAS` | Compose | Unknown | 1 | [compose.yml](file://compose.yml) | - |
| `CELERY_BEAT_REPLICAS` | Compose | Common | 0 | [compose.yml](file://compose.yml) | - |
| `CELERY_WORKER_REPLICAS` | Compose | Common | 0 | [compose.yml](file://compose.yml) | - |
| `DEBUG` | Compose | Common | - | [compose.override.local.yml](file://compose.override.local.yml), [compose.override.yml](file://compose.override.yml) | This can be set to either `debugpy` or `pycharm-pydevd` currently |
| `DJANGO_REPLICAS` | Compose | Common | 1 | [compose.yml](file://compose.yml) | - |
| `DOCS_PORT` | Compose | Common | 8888 | [compose.override.local.yml](file://compose.override.local.yml), [compose.override.yml](file://compose.override.yml) | - |
| `FLOWER_REPLICAS` | Compose | Common | 0 | [compose.yml](file://compose.yml) | - |
| `GOBGP_REPLICAS` | Compose | Common | 1 | [compose.yml](file://compose.yml) | - |
| `GOBGP_VERSION` | Compose | Common | v4.8.0 | [compose.yml](file://compose.yml) | - |
| `HOSTNAME` | Compose | Production | - | [compose.override.production.yml](file://compose.override.production.yml) | - |
| `POSTGRES_ENABLED` | Compose | Multiple | 1 | [compose.override.local.yml](file://compose.override.local.yml), [compose.override.production.yml](file://compose.override.production.yml), [compose.override.yml](file://compose.override.yml), [compose.yml](file://compose.yml) | - |
| `REDIS_REPLICAS` | Compose | Unknown | 1 | [compose.yml](file://compose.yml) | - |
| `POSTGRES_ENABLED` | Compose | Common | 1 | [compose.override.local.yml](file://compose.override.local.yml), [compose.override.production.yml](file://compose.override.production.yml), [compose.override.yml](file://compose.override.yml), [compose.yml](file://compose.yml) | - |
| `REDIS_REPLICAS` | Compose | Common | 1 | [compose.yml](file://compose.yml) | - |
| `SCRAM_PEERING_IFACE` | Compose | Production | - | [compose.override.production.yml](file://compose.override.production.yml) | - |
| `SCRAM_V4_ADDRESS` | Compose | Production | - | [compose.override.production.yml](file://compose.override.production.yml) | - |
| `SCRAM_V4_GATEWAY` | Compose | Production | - | [compose.override.production.yml](file://compose.override.production.yml) | - |
| `SCRAM_V4_SUBNET` | Compose | Production | - | [compose.override.production.yml](file://compose.override.production.yml) | - |
| `SCRAM_V6_ADDRESS` | Compose | Production | - | [compose.override.production.yml](file://compose.override.production.yml) | - |
| `SCRAM_V6_GATEWAY` | Compose | Production | - | [compose.override.production.yml](file://compose.override.production.yml) | - |
| `SCRAM_V6_SUBNET` | Compose | Production | - | [compose.override.production.yml](file://compose.override.production.yml) | - |
| `TRANSLATOR_REPLICAS` | Compose | Unknown | 1 | [compose.yml](file://compose.yml) | - |
| `CONN_MAX_AGE` | Django | Production | 60 | [config/settings/production.py](file://config/settings/production.py) | noqa F405 |
| `DATABASE_URL` | Django | Common | - | [config/settings/base.py](file://config/settings/base.py), [config/settings/production.py](file://config/settings/production.py) | DATABASES https docs.djangoproject.com/en/dev/ref/settings databases |
| `DEBUG` | Django | Unknown | - | [config/asgi.py](file://config/asgi.py) | Here we setup a debugger if this is desired. This obviously should not be run in production |
| `DJANGO_ADMIN_URL` | Django | Production | - | [config/settings/production.py](file://config/settings/production.py) | ADMIN Django Admin URL regex |
| `DJANGO_ALLOWED_HOSTS` | Django | Production | ["django"] | [config/settings/production.py](file://config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/settings allowed-hosts |
| `DJANGO_DEFAULT_FROM_EMAIL` | Django | Production | "SCRAM <noreply@es.net>" | [config/settings/production.py](file://config/settings/production.py) | EMAIL https docs.djangoproject.com/en/dev/ref/settings default-from-email |
| `DJANGO_EMAIL_BACKEND` | Django | Common | "django.core.mail.backends.console.EmailBackend" | [config/settings/base.py](file://config/settings/base.py), [config/settings/local.py](file://config/settings/local.py) | EMAIL https docs.djangoproject.com/en/dev/ref/settings email-backend |
| `DJANGO_EMAIL_SUBJECT_PREFIX` | Django | Production | "[SCRAM]" | [config/settings/production.py](file://config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/settings email-subject-prefix |
| `DJANGO_READ_DOT_ENV_FILE` | Django | Common | False | [config/settings/base.py](file://config/settings/base.py) | - |
| `DJANGO_SECURE_CONTENT_TYPE_NOSNIFF` | Django | Production | True | [config/settings/production.py](file://config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/middleware x-content-type-options-nosniff |
| `DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS` | Django | Production | True | [config/settings/production.py](file://config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/settings secure-hsts-include-subdomains |
| `DJANGO_SECURE_HSTS_PRELOAD` | Django | Production | True | [config/settings/production.py](file://config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/settings secure-hsts-preload |
| `DJANGO_SECURE_SSL_REDIRECT` | Django | Production | True | [config/settings/production.py](file://config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/settings secure-ssl-redirect |
| `DJANGO_SERVER_EMAIL` | Django | Production | DEFAULT_FROM_EMAIL | [config/settings/production.py](file://config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/settings server-email |
| `DJANGO_SETTINGS_MODULE` | Django | Unknown | "config.settings.local" | [config/asgi.py](file://config/asgi.py), [config/wsgi.py](file://config/wsgi.py) | If DJANGO_SETTINGS_MODULE is unset, default to the local settings |
| `OIDC_RP_CLIENT_ID` | Django | Common | - | [config/settings/base.py](file://config/settings/base.py) | - |
| `OIDC_RP_CLIENT_SECRET` | Django | Common | - | [config/settings/base.py](file://config/settings/base.py) | - |
| `POSTGRES_SSL` | Django | Production | True | [config/settings/production.py](file://config/settings/production.py) | - |
| `REDIS_HOST` | Django | Common | "redis" | [config/settings/base.py](file://config/settings/base.py) | - |
| `REDIS_URL` | Django | Production | - | [config/settings/production.py](file://config/settings/production.py) | - |
| `SCRAM_AUTH_METHOD` | Django | Common | "local" | [config/settings/base.py](file://config/settings/base.py) | Are you using local passwords or oidc? |
| `USE_DOCKER` | Django | Local | "no" | [config/settings/local.py](file://config/settings/local.py) | - |
| `DJANGO_SETTINGS_MODULE` | Other | Unknown | "config.settings.local" | [manage.py](file://manage.py) | - |
| `DEBUG` | Translator | Production | - | [translator/src/translator/translator.py](file://translator/src/translator/translator.py) | Here we setup a debugger if this is desired. This obviously should not be run in production |
| `SCRAM_EVENTS_URL` | Translator | Production | "ws://django:8000/ws/route_manager/translator_block/" | [translator/src/translator/translator.py](file://translator/src/translator/translator.py) | - |
| `SCRAM_HOSTNAME` | Translator | Production | "scram_hostname_not_set" | [translator/src/translator/translator.py](file://translator/src/translator/translator.py) | Must match the URL in asgi.py, and needs a trailing slash |
| `TRANSLATOR_REPLICAS` | Compose | Common | 1 | [compose.yml](file://compose.yml) | - |
| `CONN_MAX_AGE` | Django | Production | 60 | [django/src/config/settings/production.py](file://django/src/config/settings/production.py) | noqa F405 |
| `DATABASE_URL` | Django | Common | - | [django/src/config/settings/base.py](file://django/src/config/settings/base.py), [django/src/config/settings/production.py](file://django/src/config/settings/production.py) | DATABASES https docs.djangoproject.com/en/dev/ref/settings databases |
| `DEBUG` | Django | Unknown | - | [django/src/config/asgi.py](file://django/src/config/asgi.py) | Here we setup a debugger if this is desired. This obviously should not be run in production |
| `DJANGO_ADMIN_URL` | Django | Production | - | [django/src/config/settings/production.py](file://django/src/config/settings/production.py) | ADMIN Django Admin URL regex |
| `DJANGO_ALLOWED_HOSTS` | Django | Production | ["django"] | [django/src/config/settings/production.py](file://django/src/config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/settings allowed-hosts |
| `DJANGO_DEFAULT_FROM_EMAIL` | Django | Production | "SCRAM <noreply@es.net>" | [django/src/config/settings/production.py](file://django/src/config/settings/production.py) | EMAIL https docs.djangoproject.com/en/dev/ref/settings default-from-email |
| `DJANGO_EMAIL_SUBJECT_PREFIX` | Django | Production | "[SCRAM]" | [django/src/config/settings/production.py](file://django/src/config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/settings email-subject-prefix |
| `DJANGO_READ_DOT_ENV_FILE` | Django | Common | False | [django/src/config/settings/base.py](file://django/src/config/settings/base.py) | - |
| `DJANGO_SECURE_HSTS_PRELOAD` | Django | Production | True | [django/src/config/settings/production.py](file://django/src/config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/settings secure-hsts-preload |
| `DJANGO_SECURE_SSL_REDIRECT` | Django | Production | True | [django/src/config/settings/production.py](file://django/src/config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/settings secure-ssl-redirect |
| `DJANGO_SERVER_EMAIL` | Django | Production | DEFAULT_FROM_EMAIL | [django/src/config/settings/production.py](file://django/src/config/settings/production.py) | https docs.djangoproject.com/en/dev/ref/settings server-email |
| `DJANGO_SETTINGS_MODULE` | Django | Unknown | "config.settings.local" | [django/src/config/asgi.py](file://django/src/config/asgi.py), [django/src/config/wsgi.py](file://django/src/config/wsgi.py) | If DJANGO_SETTINGS_MODULE is unset, default to the local settings |
| `OIDC_RP_CLIENT_ID` | Django | Common | - | [django/src/config/settings/base.py](file://django/src/config/settings/base.py) | - |
| `OIDC_RP_CLIENT_SECRET` | Django | Common | - | [django/src/config/settings/base.py](file://django/src/config/settings/base.py) | - |
| `POSTGRES_SSL` | Django | Production | True | [django/src/config/settings/production.py](file://django/src/config/settings/production.py) | - |
| `REDIS_HOST` | Django | Common | "redis" | [django/src/config/settings/base.py](file://django/src/config/settings/base.py) | - |
| `REDIS_URL` | Django | Production | - | [django/src/config/settings/production.py](file://django/src/config/settings/production.py) | - |
| `SCRAM_AUTH_METHOD` | Django | Common | "local" | [django/src/config/settings/base.py](file://django/src/config/settings/base.py) | Are you using local passwords or oidc? |
| `USE_DOCKER` | Django | Local | "no" | [django/src/config/settings/local.py](file://django/src/config/settings/local.py) | - |
| `DJANGO_SETTINGS_MODULE` | Other | Unknown | "config.settings.local" | [django/src/manage.py](file://django/src/manage.py) | - |
22 changes: 13 additions & 9 deletions scripts/src/scripts/extract_env_vars.py
Original file line number Diff line number Diff line change
Expand Up @@ -341,11 +341,17 @@ def main() -> None:
)
args = parser.parse_args()

root_dir = Path(__file__).resolve().parent.parent
output_path = root_dir / "docs/environment_variables.md"
try:
project_root = next(
p for p in Path(__file__).parents if (p / ".rootdir").exists()
)
except StopIteration:
raise RuntimeError("Could not find project root (.rootdir marker missing)")

output_path = project_root / "docs/environment_variables.md"

manual_descs = parse_existing_docs(output_path)
all_vars = find_env_vars(root_dir)
all_vars = find_env_vars(project_root)
new_content = generate_markdown_content(all_vars, manual_descs)

if args.check:
Expand All @@ -358,23 +364,21 @@ def main() -> None:
diff = difflib.unified_diff(
current_content.splitlines(),
new_content.splitlines(),
fromfile="docs/environment_variables.md (Current)",
tofile="docs/environment_variables.md (Generated)",
fromfile=f"{output_path} (Current)",
tofile=f"{output_path} (Generated)",
lineterm="",
)
logger.warning("\n".join(diff))
sys.exit(1)
else:
logger.warning(
"Documentation file docs/environment_variables.md does not exist!"
)
logger.warning("Documentation file %s does not exist!", output_path)
sys.exit(1)
elif output_path.exists() and output_path.read_text() == new_content:
logger.info("Documentation is already up to date. No changes made.")
else:
output_path.parent.mkdir(parents=True, exist_ok=True)
output_path.write_text(new_content)
logger.info("Updated docs/environment_variables.md")
logger.info("Updated %s", output_path)


if __name__ == "__main__":
Expand Down
Loading