I have the following requirement that I need to configure for outbound connections.
I was thinking of have 3 x IP forwarding Virtual Servers with irule referencing a datagroup list(for the source ips) and then apply the relevant source nat to the VS. Is that the cleanest way of doing it?
You can just use the snat command in iRules to determine what the snat address should be. For snat pools, the syntax is just "snat name_of_snat_pool", for automap it is "snat automap"
This article might help you as well