CiscoDevNet / virlutils

A collection of utilities for interacting with Cisco Modeling Labs (CML)
MIT License
151 stars 51 forks source link

Add ability to generate topology.virl via cli #56

Open kecorbin opened 6 years ago

kecorbin commented 6 years ago

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 commented 6 years ago

@vleijon @hpreston

vleijon commented 6 years ago

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

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 commented 6 years ago

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 commented 6 years ago

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.