lablup / lablup/backend.ai

[Phase 1] Extract config_gen modules for Manager, Storage Proxy, Webserver

Open
#10,742 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
15h 13m
Merged PRs (30d)
368

Description

## Summary

Extract Manager configuration generation (manager.toml, alembic.ini, etcd config, fixtures) into a shared module.

## Current Duplication

- `context.py:configure_manager()` — sed + tomlkit modifications
- `deploy/cores/manager/` — Jinja2 templates
- Redis sentinel/single mode logic duplicated
- Fixture generation logic duplicated

## Complexity: HIGH

Manager has complex config with Redis mode selection (sentinel vs single), etcd config, and fixture generation with user/group data.

## Approach

Create `src/ai/backend/install/config_gen/manager.py` with config dict generation functions.

JIRA Issue: BA-5566

Contributor guide

Open the contributing guide

Research direction

Start by reading context.py:configure_manager() and the templates under deploy/cores/manager/. Trace the duplicated Redis mode, etcd, and fixture-generation paths, then define the scope of src/ai_backend/install/config_gen/manager.py. Done means Manager configuration and fixture generation use the shared module without the current duplicated logic.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
devops, infrastructure
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.