Skip to content

Waldur Site Agent

A stateless Python application that synchronizes data between Waldur Mastermind and service provider backends. Manages account creation, usage reporting, and membership synchronization across different cluster management systems.

Architecture

The agent uses a uv workspace architecture with pluggable backends:

  • Core Package: waldur-site-agent (base classes, common utilities)
  • Plugin Packages: Standalone backend implementations
  • waldur-site-agent-slurm: SLURM clusters
  • waldur-site-agent-moab: MOAB clusters
  • waldur-site-agent-mup: MUP portal
  • waldur-site-agent-okd: OpenShift/OKD platforms
  • waldur-site-agent-harbor: Harbor registries
  • waldur-site-agent-croit-s3: Croit S3 storage
  • waldur-site-agent-cscs-dwdi: CSCS DWDI accounting
  • waldur-site-agent-basic-username-management: Username management

Agent Modes

  • order_process: Fetches orders from Waldur and manages backend resources
  • report: Reports usage data from backend to Waldur
  • membership_sync: Synchronizes user memberships
  • event_process: Event-based processing using MQTT/STOMP

Usage

1
waldur_site_agent -m <mode> -c <config-file>

CLI Arguments

  • -m, --mode: Agent mode (order_process, report, membership_sync, event_process)
  • -c, --config-file: Path to configuration file

Environment Variables

  • WALDUR_SITE_AGENT_ORDER_PROCESS_PERIOD_MINUTES: Order processing period (default: 5)
  • WALDUR_SITE_AGENT_REPORT_PERIOD_MINUTES: Reporting period (default: 30)
  • WALDUR_SITE_AGENT_MEMBERSHIP_SYNC_PERIOD_MINUTES: Membership sync period (default: 5)
  • SENTRY_ENVIRONMENT: Sentry environment name

Development

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Install dependencies
uv sync --all-packages

# Run tests
uv run pytest

# Format and lint code
pre-commit run --all-files

# Load components into Waldur
waldur_site_load_components -c <config-file>

Documentation

Plugin Documentation

Compute & HPC Plugins

Container & Cloud Plugins

Storage Plugins

Accounting Plugins

Utility Plugins

License

MIT License - see LICENCE file for details.