What is the best solution to back up a project's network settings and restore them later?
I am looking a solution for the following situation. I have created a complex network setup in a project that includes multiple networks, routers, security groups, etc. I am now in a situation where I have to change considerable parts of the setup, but I would like to take a 'snapshot' of the current situation so that I can revert to that situation if things stop working. As long as I have access to the database, this is reasonably straight-forward, but what if I am an end user?
I have looked at the backup solutions provided by Karbor and Freezer and the commercial TrilioVault.Those are interesting for backups on a regular basis, but the problem I want to solve does not require an automated backup.
The OpenStack client allows exporting the contents of a security group or network as json, but as far as I understand, they can not be imported later.
The solution I am leaning towards is suggesting to export a project to a HEAT template using https://opendev.org/x/flame (Flame). This seems like the best solution in theory, but people are reporting different levels of succes using flame for the generation of HEAT templates.
Is there any approach I am overlooking? What, if any, is the solution you would use in this scenario?
Perhaps direct APIs are the best approach. Usually, the data structures returned by the show APIs like GET /v2.0/networks/{network_id} are similar to the create API structures, e.g. POST /v2.0/networks. And they are all JSON.
We are dumping the current metadata structure to have something to restore an environment with, but those dumps can not be easily restored.