Description of problem: As OVNK moves to using the Interconnect architecture, we are going to have to pay attention to the debugging aspects of OVN a bit closer. Since scale is primary aim for the IC architecture; imagine a 500 or 1000 node cluster where we will collect 500 or 1000 NBDB's and SBDB's, we need to be able to run the bctl commands against all of them at the same time See https://redhat-internal.slack.com/archives/C050MC61LVA/p1689675049225319?thread_ts=1689626101.828479&cid=C050MC61LVA for details Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
Wouldn't it be trivial to write a Go wrapper like: multi-ctl -p 9641 ovn-nbctl -p /ovn-cert/tls.key -c /ovn-cert/tls.crt -C /ovn-ca/ca-bundle.crt list Logical_Switch_Port which then (1) reads kAPI for list of nodes, grabs their internal address (or somehow gets the IP to use) (2) constructs an actual args list with argv but putting "--db=<node IP>:9641" into the list at the right place (3) optionally constructs a logfile path unique to each invocation, perhaps based on node name (4) starts N goroutines where N = # nodes; executes the *ctl util and writes output to named logfile (5) waits till they all finish (6) maybe tars up all the logfiles and gzips it I'd think it would be a lot easier in Go than in Bash or C.