Skip to content

External profiles (plugins)

Configurator supports loading profiles from external folders using --profiles-dir.

This enables:

  • custom deployments
  • site-specific profiles
  • local experiments
  • profiles maintained outside the main repository

Folder structure

Example plugin folder:

1
2
3
my-profiles/
├── my_coder_profiles.py
└── __init__.py

The folder can contain one or more Python modules. Those modules must import and register profiles into profile_registry.

Example plugin module

1
2
3
4
5
6
7
8
9
from configurator.apps import profile_registry
from configurator.apps.coder.base_coder import BaseCoderProfile

class MyCustomCoder(BaseCoderProfile):
    slug = "my_custom_coder"
    display_name = "My Custom Coder"
    description = "Custom coder profile"

profile_registry.register(MyCustomCoder)

Load plugins

1
2
3
4
5
dump-config \
  --profiles-dir ./my-profiles \
  --profiles my_custom_coder \
  --groups group-a \
  --output config.yaml