If you have a tiny budget and your topology and upstream providers allow it, land the transit BGP sessions on some virtual route reflectors, use multi hop eBGP for example or use a /29 on the peering link so the RRs don't need to sit in the data path.
Then you don't needy some fancy OpenStack cluster with IOS-XRv/CSRv/vMX etc, just a couple of spare servers you've got lying around with KVM and quagga/bird will do if you just want to hold more routes. Cheers, James.