-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add clconf backend #663
Add clconf backend #663
Conversation
Thanks for opening a PR! The idea of this backend is great, here are a few of my thought:
|
This project is very promising but the resistance to the communities pull requests makes it seem like the project is dead. I really like the idea of a plugin system, as that appears to be the only way Thanks for looking into this, and if you are willing to consider this as a replacement for the |
@lucastheisen I don't see any resistance in the merging of PRs, besides the need to review, resolve conflicts, apply changes to the existing PRs and it takes time. You can help with that if you want. I've merged a lot of PRs during the last half a year adding 3 new backends and many new features and bug fixes. I only have a limited time to work on Confd, and the backlog is quite big. I can definitely see a lack of communication from me, though. Do you have any suggestions on how can we improve that? Should we create a gitter channel? It would be great if you can rewrite clconf backend as a replacement for the current file backend, but keep in mind that it will have to be compatible with both json and yaml files. I think that support for multiple files in the file backend is a great idea. I've put the plugin system on hold a while ago to focus on the backlog of PRs and issues because it affects a lot of critical paths in the codebase and might mess up other PRs. Now is a good time to finally merge it. Also, I forgot to link the PR in the previous comment #568 |
Closing in favor of |
A brief explanation... The current
file
backend is insufficient for my needs. Specifically, it can only handle one file at a time. This means we need a preprocessor to merge yaml files before using them in confd. This approach has many downsides:Long story short, we wrote our preprocessor in go, and called it
clconf
(containerland config). It is capable of many things, but primarily the ability to merge yaml sources into a single map. The next logical step was to create a backend directly forconfd
thereby avoiding all the problems listed above.It could be used as a simple drop in replacement for the
file
backend (which i think makes the most sense) but was created as its own backend to see if you are interested. It uses the same config option (--file
), but allows the value to be a comma delimited list (latter entries overwriting prior entries if overlaps occur). Theclconf
code was also written to leverage the same libraries as confd because the intention was always to try to merge upstream.What do you think?