Hi Enrico,

Thanks for the amazing suggestions, really appreciate it - they should be easily doable ^^. I'll add the following two suggestions to the scope of the tool:
* diff between git version tags
* ability to filter the config changes to a certain daemon via `—daemon` flag

Thanks,
Naveen

From: Enrico Bocchi <enrico.bocchi@cern.ch>
Sent: Thursday, March 13, 2025 9:18 PM
To: Naveen Naidu <naveen.naidu@ibm.com>; dev@ceph.io <dev@ceph.io>
Subject: [EXTERNAL] Re: Ceph Configuration Diff Tool - Request for comments
 
This Message Is From an External Sender
This message came from outside your organization.
Report Suspicious
 

Hi Naveen,


This is an excellent idea and the config-diff tool would definitely be very useful to many operators!


For the ceph-config-diff tool, it would be cool if it accepts also git version tags in addition to branches and release names.
From personal experience, it would be of great help to know if defaults have changed between the version currently running on my cluster and the one I target for update.

Also, the fact that defaults are now nicely scoped in to YAMLs for each daemon may further help to draw the attention where needed (e.g., --daemon osd).


My 2 cents ;)


Cheers,
Enrico



On 3/13/25 15:09, Naveen Naidu wrote:
Hi all,

We are planning to introduce a new tool/script which would help with the problem of visibility of the changes done to Ceph configuration options. Currently there are two main limitations:

Some context on ceph configuration management system:
 
The default values for all the configuration options for a ceph cluster when starting up are in the yaml files present in the `src/common/options` directory. 

For example: `osd.yaml.in` file tells us all the configuration options available for `ceph-osd` daemon. 

The config options from yaml files are directly injected to the `CephContext` and these files are the sole source of truth to know about the configurations present for all the systems of ceph. It is important to note that, the values in the yaml files only represent the default values with which the cluster starts with, any changes made to these config options are not reflected in the yaml files.

The detailed information about the configuration management is present here: https://docs.ceph.com/en/latest/dev/config/

Proposal to solve this problem is two fold:

1. Tool to compare configuration options between releases or commit hashes

2.  A Github action runs on every PR (it only executes when the yaml files are updated). This will be added as an optional check.

I believe, these two options should help solve the current visibility problems in ceph configuration system.

Please let us know your thoughts about this feature. All inputs are welcome.

Thanks,
Naveen




_______________________________________________ Dev mailing list -- dev@ceph.io To unsubscribe send an email to dev-leave@ceph.io
-- Enrico Bocchi CERN European Laboratory for Particle Physics IT - Storage & Data Management - General Storage Services Mailbox: G20500 - Office: 31-2-010 1211 Genève 23 Switzerland