Page MenuHomePhabricator

Create a conftool "agent" that overcomes confd deficiencies
Closed, DeclinedPublic

Description

Confd is a general-purpose tool that has shown some issues at our scale or when coordination is needed in any form. Also, it has some inherent limitations I came to hate.

I want to build a simple, lightweight "conftool agent" that does what follows:

  • takes simple ini files as configuration; such files should be one per service, and can describe various files to create.
  • generates the final service file from a simple templating system - jinja2 should be ok
  • optionally verify syntax of all the generated files
  • optionally restarts the service
  • does nothing to the file on error
  • does not write if a conftool write lock is acquired by some tool, to allow "transactions"
  • responds reliably to changes in etcd within 5 seconds of the lock being released

in my plans, such a tool should replace confd and give us immediate benefits.

Related Objects

Event Timeline

Joe raised the priority of this task from to Needs Triage.
Joe updated the task description. (Show Details)
Joe subscribed.

I'd be very cautious about implementing a system that essentially... sounds like a configuration management system (including templating, post-hook actions, etc.).

Where do you expect us to be needing this?

Pybal is the first suspect, but we need something that can change file state reliably upon etcd state change fleet-wide. Another example would be haproxy configurations for databases (for example)

Confd was supposed to be exactly this, but in my testing it has shown some inherent limitations that I wanted to try to overcome. We could limit scope of this and just make it act like the consul agent (just return values pertaining to the current node upon request), but as long as we use it just to configure /state/ (like we do with confd) it would not step on puppet's toes.

@ori not at all, if we do integrate pybal directly this is just a lower priority task.

akosiaris subscribed.

7 years later no one is working on this and I doubt it will ever be. Declining the task as a consequence.