(Sorry, coming late to the thread.)
I think this is a great idea.
I built something similar a long time ago:
https://github.com/puppetlabs/puppetlabs-remote_resource/blob/master/ext/example.pp
I agree it should be independent, at least for now, to support faster evolution and because I like small things. :)
However…
This is something we’re working on a ton internally, for related but different reasons. Nothing is in a state that’s worth sharing, unfortunately, because this is just one part of a much larger project and we can’t easily share any of it until we can share all of it (because it’s very confusing in its current state, among other reasons).
Basically, we want to build a special kind of resource for exactly this. All resources of this special type would share some values, like interval and timeout, and then each resource type would provide the parameters for things like IP address, port, etc.
We want to go quite a bit past just checking IP and port, though.
I want a base provider that can just check network status, but why not a provider that can check whether a database is all set up, and a user can connect with a specific password?
Or why not something that validates that a filesystem is available? No network information, just validate that a file is present, or something similar. These often take a while to actually work.
Or even more, why not confirm that a configuration file is valid? Wouldn’t you love something that would roll back the sudoers file if you managed to deploy a broken one?
In other words, this should be a generic framework, with generic support from Puppet, and we should provide as much power to the framework as possible.
We’re really only focused on the simplest form of health checks at this point, but because we’re explicitly expecting to make some changes to core Puppet to make some of it work, we likely won’t be able to make the whole thing external.
We’re basically at the “plan to build” phase right now, without full designs in place.
David Lutterkort is one of the eng leads, and Ryan Coleman is the product manager.
And I’m off to China for a week in 12 hours, so I’ll be off the grid for the next week, and thus can’t elaborate. :/
And, in regards to Trevor’s rant, and pointing to the old ticket, yeah, it’s exactly that stuff (plus a lot more) that’s led us to this. We’re just finally getting to invest in it. :)
—