canonical / canonical/microceph

Support to configure multiple configs in single go for daemon API

Open
#364 2 comments 0 reactions 0 assignees View on GitHub
enhancement needs-something-else-first
Dominant language
Go
Stars
396
Forks
74
Avg merge
2d 20h
Merged PRs (30d)
7

Description

# Enhancement

Trying to access microceph daemon API using a python client similar to [1]

Currently multiple configs cannot be updated in single API call and have to run PUT /1.0/configs API call multiple times one for each config [2] which results in restart of corresponding service for each API call.

This is an enhacement request to export API call to accept multiple configs in a single go.
The use case for this is to configure all keystone related configs for radosgw.
Currently there are atleast 12 configs to set this integration which restarts radosgw 12 times.

[1] https://github.com/canonical/charm-microceph/pull/83/files#diff-29c083e8f4fd7ea8a9d6d5d47ec84ca0423cca647a63f51678edb615e7c5fe1b
[2] https://github.com/canonical/microceph/blob/main/microceph/api/configs.go#L59

## What version of MicroCeph are you using ?
reef/stable

## What are the steps to reproduce this issue ?

1. Deploy microceph
2. Enable rgw service
3. Use the following python script to connect to microceph daemon API https://pastebin.canonical.com/p/NhTzvqP52P/

Contributor guide

Open the contributing guide

Research direction

Start with microceph/api/configs.go at the referenced line and review the daemon API configuration handling, then inspect the linked Python client example. Reproduce the setup with MicroCeph, enable rgw, and configure the Keystone-related settings. Done means one API call accepts multiple configs and avoids restarting radosgw separately for each setting.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, python
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.