I have a question about MAAS Region Controllers. Basically what I am looking for is it recommended to have region controllers setup in an HA fashion controlling multiple rack controllers which reside in different parts of the world. For example a Region controller could reside in North America, but control rack controllers residing in Europe and Canada. Would this be a recommended architecture? Are there limitations to this due to local on-prem networking differences between locations? Any insight would be appreciated. Thanks
In my experience, if you had one giant L3 network managed by a single admin team, with no firewalls segmenting the network, you could deploy a super-simple layout. Depending on the number of endpoints you want to commission/deploy with MAAS, you might be able to handle it all with a single virtual MAAS server. But nobody has that network design (and if you do you should change it...).
There's not enough information in your question to give you specific answers. In general terms, MAAS doesn't require any special considerations. You should put rack controllers in places where your end points can reach them for DHCP, PCE, TFTP, etc. Region controllers need to chat with Rack controllers using a couple TCP ports. So you will need to open firewall ports if you have firewalls between the region and rack controllers.
In our initial MAAS deployment tests, we made things very complicated -- rack controllers were physical servers with multiple nics. We tried the "one nic per VLAN" model...then the "trunked vlan port with a BMC nic" model... We had one design that had a management port, a vlan trunk (for DHCP), and a BMC/ipmi port. All of that was waaaay overly complex. In the end, we have a single rack controller with a single nic. We use "ip helpers" to handle DHCP requests, and MAAS is virtualized to deal with basic HA. Works like a champ.
So, in summary, don't over-engineer your MAAS deployment. Try to deploy with the absolute least number of servers (and nics) possible. Add more MAAS when you are blocked by external factors (e.g. firewalls, admin teams/roles, etc.)