This came up on IRC, so I figured I would share this here.
One of the things we want to do with Func is make it so that if machines
are on a different network we can proxy connections between machines and
also allow this for efficiency reasons.
Imagine:
overlord -> minions
UberOverlord -> Site1Overlord, Site2Overlord
Site1Overlord -> Site1Lab1Overlord, Site2Lab2Overlord
Site2Overlord -> Site2OfficeOverlord, Site2LabOverlord
etc
In this case, we are going to have a command (Steve Salesvan is working
on this) to probe func using available modules and find the mappings
automatically. This can then be run on cron at the UberOverlord to
determine the Func topology automatically.
We can then use this map data to find the most efficient way to contact
the various overlords to walk through the topology and satisify the
globs required.
If the map data is not yet available, we can fallback to breadth/depth
first type search through the tree.
In fact, the tree may not always be a tree, it could be any form of
directed graph, as the same certs may exist at multiple locations.
We should have something uploaded to git for this shortly.
This will not require new changes to any scripts using the Func API, but
will introduce a few new optional parameters like "delegate=True" to
enable this feature.
Overlord("example*.com", async=True, nforks=5, delegate=True)
In the calling chain, each minion will wait for it's subminions to
return results, so it will not be as if each communication coming from
the central overlord must reach each minion or pass through each
overlord more than once -- in this way, theoretically, this should be
very efficient.
More details TBD...
--Michael
_______________________________________________
Func-list mailing list
Func-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/func-list