Issue #16187 has been updated by Luke Kanies.
You'd definitely have to compile the catalog for all dependent hosts, but you basically need to do that anyway. Either you've compiled it, and you know there's a dependency and you can actually build your service, or you haven't compiled it, so you don't know the dependency exists or the service can't build. You don't need to do it all at the same time, but you at least have to have them all be recent enough. It's that "wait an infinite amount of time for the system to converge" that I can't tolerate. Nothing is perfect, but I think the graph has the best combination of function, simplicity and actually being possible. ---------------------------------------- Feature #16187: Relationships should work between hosts https://projects.puppetlabs.com/issues/16187#change-74343 Author: Luke Kanies Status: Unreviewed Priority: Normal Assignee: Category: Target version: Affected Puppet version: Keywords: backlog Branch: Currently, one can only specify a relationship within a given host's graph. This means that the system can easily figure out, using dependencies, the order of work for a given node, but it cannot figure out the order of work across nodes. If a web service running on one host depends on a db service running on another, you can use exported resources to share configuration (albeit in non-ideal ways), but you cannot specify this dependency. This means you cannot get a view of the true service dependencies in the system, and you always have a thin view of the world. We need a way to specify that a given service or resource depends on a service or resource on another host. This feature could be done in a very simple way, but could also get very sophisticated. For instance, I've got a prototype that blocks a host's transaction until some remote resource is in the state you want: [[https://github.com/puppetlabs/puppetlabs-external_resource]] external_resource { "file exists": frequency => 1, timeout => 30, check => "/bin/ls /tmp/myfile" } notify { "File exists": require => Remote_resource["file exists"] } This allows you to cause one service to wait until dependent (and potentially remote) services are available. A very similar feature should exist for remote relationships: We need some way of ordering operations so that we do not try to bring the web server up before its database server is up. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
