RE:Ceph Configuration Diff Tool - Request for comments

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Those are great suggestions Joseph! After thinking about it, the plan would be to eventually make the GitHub Action as non-optional. For the first cut, it would still be an optional check since it requires greater effort to implement these suggestions. Currently there is no easy way to mark an option as experimental fields. Rest assured though, as soon as the first cut is out - I will be working on improving it and also make the GH action as required.

Thanks,
Naveen


From: Joseph Mundackal (BLOOMBERG/ 120 PARK) <jmundackal@xxxxxxxxxxxxx>
Sent: Friday, March 14, 2025 6:05 PM
To: Naveen Naidu <naveen.naidu@xxxxxxx>
Cc: dev@xxxxxxx <dev@xxxxxxx>
Subject: [EXTERNAL] RE:Ceph Configuration Diff Tool - Request for comments
 
This Message Is From an External Sender
This message came from outside your organization.
 
Thanks for doings this!

For the concerns you called out
1. Description field - can we just ignore changes that are only in the Description field of the yaml, programmatically?
2. Experimental fields - should this just be a field/tag in the yaml file itself? Ie mark the field experimental. This will also be useful for docs generation in general?


-Joseph


From: naveen.naidu@xxxxxxx At: 03/14/25 04:28:15 UTC-4:00
To: Nathan Hoad (BLOOMBERG/ 120 PARK )
Cc: dev@xxxxxxx
Subject: RE:Ceph Configuration Diff Tool - Request for comments

Thanks for taking the time to looking at the proposal and leaving a feedback Nathan ^^!

Regarding the GitHub action, the reason we wanted it to be optional is for two reasons:
  • Update happens to a field of already existing configuration that does not warrant an entry in release notes, for example: the "description" field.
  • There may be configuration options that have been introduced only for experimental purpose, that we do not want to expose to the users as of yet. (this maybe a very rare scenario yet imho a valid one)

I totally understand the concern that making it non-optional would mean increased chances of missing the documentation of a configuration option, but I think we can reduce the probability of this happening by adding the label (say, "release-note-update-maybe" - I'll come up with better name!) to the PR in addition to the PR comments to make the author and reviewers aware of the extra check of ensuring release notes are updated whenever necessary. Please let me know if you have any other suggestion ^^

Thanks,
Naveen


From: Nathan Hoad (BLOOMBERG/ 120 PARK) <nhoad@xxxxxxxxxxxxx>
Sent: Thursday, March 13, 2025 8:53 PM
To: Naveen Naidu <naveen.naidu@xxxxxxx>
Cc: dev@xxxxxxx <dev@xxxxxxx>
Subject: [EXTERNAL] Re:Ceph Configuration Diff Tool - Request for comments
 
This Message Is From an External Sender
This message came from outside your organization.
 
Hi Naveen,

This is a great idea! +1 on both parts of the proposal. This exact problem has definitely caught people off guard in the past when performing upgrades, so having a quick and easy way to verify changes will help reduce some friction for sure :)

For the Github action, would you consider making the check non-optional to enforce that the release notes have been updated? I'm trying to imagine a scenario where we would want to change the defaults/add new options and not have that documented and I'm drawing a blank.

Thank you,

Nathan

From: naveen.naidu@xxxxxxx At: 03/13/25 10:09:34 UTC-4:00
To: dev@xxxxxxx
Subject: Ceph Configuration Diff Tool - Request for comments

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:
  • Changes to the configuration are missed in our release notes
  • No easy way to know what configuration have modified/added/deleted between two releases

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
  • A script which takes commit hashes or release names and diff the yaml files present in the `src/common/options` directory and output sections like: `Deleted`, `Added` and `Updated`
  • Developers can run this script whenever they wish to know the configuration diff between two releases
  • For example: `ceph-config-diff --mode diff-branch --ref-repo <repo-url> --ref-branch main --cmp-branch squid`, a command like this will compare the current main branch with the squid branch.

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.
  • This action will check if any changes have occurred to yaml config files and write a comment to the PR notifying the PR author to also update the relevant release docs.
  •  This action will reuse the script mentioned above to find the diff, if any present

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@xxxxxxx To unsubscribe send an email to dev-leave@xxxxxxx

_______________________________________________ Dev mailing list -- dev@xxxxxxx To unsubscribe send an email to dev-leave@xxxxxxx

_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx

[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux