lablup / lablup/backend.ai

Modernize Configuration Management

Open
#7,463 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
17h 7m
Merged PRs (30d)
358

Description

## Overview

Modernize the etcd configuration management CLI to support the new configuration format introduced in version 25.8.

## Background

Starting from version 25.8, the manager configuration system has been redesigned with the following improvements:

### Config Loading Order

The manager settings now follow a unified loading order regardless of source:

1. Local config file (`manager.toml`)
1. Legacy Etcd configs (prefix: `/sorna/local`)
1. New Etcd configs (prefix: `/sorna/ai/backend`)
1. Environment variable configs

### Configuration Key Format

- Both `snake_case` and `kebab-case` are now accepted
- **Recommendation**: Standardize on `kebab-case` for consistency

### Configuration Updates

- Most settings can be changed without manager reboot
- Use `modify_service_config` mutation for live updates
- Etcd config watcher monitors new prefix (`/sorna/ai/backend`) for automatic reload

### Manual Etcd Configuration

When using `mgr etcd` CLI directly:

- Legacy prefix: `config/redis/...` (not watched)
- New prefix: `ai/backend/config/manager/redis` (watched for live reload)

## Goals

- Provide CLI tools to migrate legacy etcd configurations to the new format
- Create modern CRUD CLI commands for the new etcd configuration structure
- Ensure backward compatibility while encouraging adoption of new patterns

## Related Changes

- GraphQL `service_config` query for effective configuration check
- GraphQL `modify_service_config` mutation for configuration updates

JIRA Issue: BA-3468

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.