// TODO: Do keys need to be sequential
ClusterServer model = new ClusterServer();
model.key = server.clusterId;
// TODO: What do we do about machines that don't yet have an ip?
NetworkPoint targetNetworkPoint = NetworkPoint.forPublicInternet();
Machine sourceMachine = instances.getMachine(server);
String address = sourceMachine.getNetworkPoint().getBestAddress(targetNetworkPoint);
model.ip = address;