Move duplicated config classes to common module
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 17h 7m
- Merged PRs (30d)
- 358
Description
## Motivation
Consolidate duplicated configuration classes from all components into the common module to reduce maintenance overhead and ensure consistency.
## Required Features
Config classes to move:
- `EtcdConfig` - etcd connection settings (namespace, addr, user, password)
- `OTELConfig` - OpenTelemetry settings (exporter endpoint, service name)
- `ServiceDiscoveryConfig` - service discovery settings
- `PyroscopeConfig` - profiling settings
Current locations:
- `src/ai/backend/manager/config/unified.py`
- `src/ai/backend/agent/config/unified.py`
- `src/ai/backend/storage/config/unified.py`
- `src/ai/backend/web/config/unified.py`
- `src/ai/backend/appproxy/coordinator/config.py`
- `src/ai/backend/appproxy/worker/config.py`
## Out of Scope
- `DebugConfig` - Component-specific fields vary too much
## Impact
Target locations:
- `src/ai/backend/common/configs/etcd.py`
- `src/ai/backend/common/configs/otel.py`
- `src/ai/backend/common/configs/service_discovery.py`
- `src/ai/backend/common/configs/pyroscope.py`
## Testing Scenarios
- All common config classes are moved to common module
- Classes maintain backward compatibility
- Type annotations and `to_dataclass()` methods are preserved
## References
- [BEP-1023: UnifiedConfig Consolidation](https://github.com/lablup/backend.ai/blob/main/proposals/BEP-1023-unified-config-consolidation.md)
JIRA Issue: BA-3768
Contributor guide
Assessment
This issue has not been assessed yet.