Hey All, As discussed in thread http://markmail.org/message/56xrscvnmdweoxf5 some of us are working on making the VPC virtual router redundant. As part of this effort we are doing just a little bit more to get this properly done. Based on the feedback we at Schuberg Philis are getting from our colleagues we have identified a list of design goals that we would like to improve in the vpc virtual router, the most important of those are :
* reboot proof, making sure that the router will come up with the proper configuration after a reboot without management server intervention * redundant, the VPC router should be able to fail-over to another device with minimum possible interruption to the service * introduce the new features with a smooth upgrade path for existing deployments We are working on this with a team of developers, some of which are committers and some of which are not. So we will be working in a github repository most of the time. If you wish to keep an eye on what we are doing check the branches starting with vpc-toolkit at https://github.com/schubergphilis/cloudstack/commits/vpc-toolkit When possible we will commit completed parts to a feature branch or the master branch to make sure we don’t diverge to much from that actual state of things. We are currently doing a number of experiments on how to achieve our design goals and at the same time we are working on making the code a little more legible by refactoring some of the components like the VirtualNetworkApplianceManager and the VirtualRoutingResource. Our current thinking is to persist configuration state on the virtual router device (the actual vm) and configure the VR baed on that configuration. We intend to put most of the configuration in json files on the template and use either configuration management tools or custom scripts to do the configuration. A typical command implementation would take two steps. First push an update to a configuration file and then trigger an update script. Of course an important part of everything we are doing will include testing, we are already working on improving the existing unit tests for the VR and VPC code and we are setting up a procedure to test the systemvm configuration scripts as well. We’ll do more updates like this to the list as we make progress. Cheers, Hugo