Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to generate topology.virl via cli #56

Open
kecorbin opened this issue Aug 15, 2018 · 4 comments
Open

Add ability to generate topology.virl via cli #56

kecorbin opened this issue Aug 15, 2018 · 4 comments

Comments

@kecorbin
Copy link
Collaborator

kecorbin commented Aug 15, 2018

Is your feature request related to a problem? Please describe.
In certain scenarios, it is desirable to quickly generate a virl file manually.

Describe the solution you'd like

Support some sort of markup like

Describe alternatives you've considered

Some sort of virl markup e.g.

server-1: linux
server-2: linux
R1: csr
branch: csr
internet: ext
sw1: iol

server-1 <-> sw1
server-2 <-> sw1
sw1 <-> branch
R1 <-> branch
branch <-> internet

if during virl up no topology.virl file is present, it would look for topology.vml and automatically generate the XML

Additional context
Add any other context or screenshots about the feature request here.

@kecorbin
Copy link
Collaborator Author

@vleijon @hpreston

@vleijon
Copy link
Contributor

vleijon commented Aug 16, 2018

As you know I have a (sorta-working) prototype of this, so I have a few comments.

  • day0 templates are an issue. My desire is to use NSO, so I just need them to bring up the mgmt interface enough, beyond that less is better. But I know the VMMaestro UI gives more options. One idea here might be to change the input format to a YAML document instead, so that you can do
server-1:
   type: linux
   cfg:
      <Input to the day0 template>

and just use the cfg-dictionary as (additional) input to the jinja2-template. It is slightly less simple, you might allow server-1: linux as an abbreviation if you don't want any additional day0-variables, but the connections between nodes would have to be changed to something YAML-compliant.

  • Graphical layout. Today I just put them in a line, so the virl file looks a bit ugly when you open it in VMMaestro. It might be possible to do something smart from the topology.

I wouldn't mind taking a stab at implementing an initial version of this based on my prototype once we reach a consensus, but the layout issue is probably better put on the backlog for the future.

@kecorbin
Copy link
Collaborator Author

looping @sk2 and @rschmied as these kinds of use cases are of particular interest for them moving forward....

I agree on the NSO front and minimal day0, so i like the idea of being able to place some config.... manaully. ANK could also help down the road if the user wanted slightly more complicated/autogenerated configs..

ideally my first requirement would be to have an ncs-netsim like interface...

virl create-network iosxr 10 router . this would leave the links / topo to get figured out but the newer API versions of VIRL may make this dead simple.

@sk2
Copy link

sk2 commented Aug 16, 2018

Depends how deep down the rabbit hole we want to go. I've long wanted to decompose network design into some common design patterns, and use these to then build up networks. There's some low-hanging fruit, some middle ground, and a lot of corner cases.
If we can do the first two, we'd have a very valuable solution - especially if it's coupled with automated config generation and simulation environments.

For Network DevOps being able to quickly generate realistic topologies to test against is a big contribution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants