carlmontanari / boxen

put your network operating systems in a box!
MIT License
126 stars 14 forks source link

enhancement: Add support for packaging Catalyst 8000v containers #39

Open ChristopherJHart opened 2 years ago

ChristopherJHart commented 2 years ago

Boxen currently supports packaging CSR1000v virtual routers into Docker images, but does not yet support Catalyst 8000v. It would be nice if we could add support for packaging Catalyst 8000v virtual routers into Docker images so that later versions of IOS-XE can be tested in containerlab.

chart@clab-testing-1:~$ sudo boxen package --disk c8000v-universalk9_8G_serial.17.08.01a.qcow2
[sudo] password for chart:
      info   1659893753 package requested for disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'
  critical   1659893753 failed gleaning source data from disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'
  critical   1659893753 error allocating disks for packaging: inspectionError: failed gleaning source data from disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'
        🆘 finished unsuccessfully in 0 seconds
inspectionError: failed gleaning source data from disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'
hellt commented 2 years ago

Is it possible to get 8kv image to do the integration?

On Sun, 7 Aug 2022 at 19:36, ChristopherJHart @.***> wrote:

Boxen currently supports packaging CSR1000v virtual routers into Docker images, but does not yet support Catalyst 8000v. It would be nice if we could add support for packaging Catalyst 8000v virtual routers into Docker images so that later versions of IOS-XE can be tested in containerlab.

@.***:~$ sudo boxen package --disk c8000v-universalk9_8G_serial.17.08.01a.qcow2

[sudo] password for chart:

  info   1659893753 package requested for disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'

critical 1659893753 failed gleaning source data from disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'

critical 1659893753 error allocating disks for packaging: inspectionError: failed gleaning source data from disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'

    🆘 finished unsuccessfully in 0 seconds

inspectionError: failed gleaning source data from disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'

— Reply to this email directly, view it on GitHub https://github.com/carlmontanari/boxen/issues/39, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLKV5KQDJXGCR6ZBQMKJ6DVX7XZBANCNFSM552ZRPIA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

hellt commented 2 years ago

Aaand, it would be nice to know how 8000v image differs from csr1k in terms of startup process

On Sun, 7 Aug 2022 at 21:40, Roman Dodin @.***> wrote:

Is it possible to get 8kv image to do the integration?

On Sun, 7 Aug 2022 at 19:36, ChristopherJHart @.***> wrote:

Boxen currently supports packaging CSR1000v virtual routers into Docker images, but does not yet support Catalyst 8000v. It would be nice if we could add support for packaging Catalyst 8000v virtual routers into Docker images so that later versions of IOS-XE can be tested in containerlab.

@.***:~$ sudo boxen package --disk c8000v-universalk9_8G_serial.17.08.01a.qcow2

[sudo] password for chart:

  info   1659893753 package requested for disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'

critical 1659893753 failed gleaning source data from disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'

critical 1659893753 error allocating disks for packaging: inspectionError: failed gleaning source data from disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'

    🆘 finished unsuccessfully in 0 seconds

inspectionError: failed gleaning source data from disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'

— Reply to this email directly, view it on GitHub https://github.com/carlmontanari/boxen/issues/39, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLKV5KQDJXGCR6ZBQMKJ6DVX7XZBANCNFSM552ZRPIA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

ChristopherJHart commented 2 years ago

I can definitely provide an 8000v image for testing! I would just need to know where to upload it and who to send it to.

As far as the startup process goes, I'm not positive what the differences are, but I would assume they're very minimal. I have been able to build an 8000v image using vrnetlab with c8000v-universalk9_8G_serial.17.08.01a.qcow2 as if the image was a CSR1000v, and it runs in containerlab just fine - I'm not sure if that helps clarify things or not!

carlmontanari commented 2 years ago

Hey! we should defo support 8kv. I had even started poking it at one point. If it works w/ vrnetlab I suspect the change(s) needed would be super minimal in boxen. boxen is of course very very similar to vrnetlab, but I think some of the "wait to see X" prompts and things are more strict here.

SO... hopefully we can just slacken some prompt(s) matching and have things work straight away.

If its possible the thing that would probably make this easiest to do would just be to snag both a csr1k and a csr8k boot up text. We could then pretty easily see where the patterns dont match for the 8k and adjust accordingly.

hellt commented 2 years ago

@ChristopherJHart if 8kv is same as csr1k, then what you can right now with boxen is to tell it that you're boxing a csr1k with a 8k image

You can do that with

--vendor cisco --platform csr1000v --version 17.08.01
ChristopherJHart commented 2 years ago

@hellt When I try that, I get the following error:

chart@clab-testing-1:~$ boxen package --disk c8000v-universalk9_8G_serial.17.08.01a.qcow2 --vendor cisco --platform csr1000v --version 17.08.01a
      info   1659983607 package requested for disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'
  critical   1659983614 error bundling required packaging files: exit status 2
        🆘 finished unsuccessfully in 7 seconds
exit status 2

chart@clab-testing-1:~$ BOXEN_DEV_MODE=1 BOXEN_LOG_LEVEL=debug boxen package --disk c8000v-universalk9_8G_serial.17.08.01a.qcow2 --vendor cisco --platform csr1000v --version 17.08.01a
      info   1659983658 package requested for disk 'c8000v-universalk9_8G_serial.17.08.01a.qcow2'
     debug   1659983658 temporary directory '/tmp/boxen1226162255' created successfully
     debug   1659983664 disks allocated for packaging
     debug   1659983664 packaging instance created
  critical   1659983665 error bundling required packaging files: exit status 2
        🆘 finished unsuccessfully in 7 seconds
exit status 2

I can snag boot-up output from both a CSR1000v and a Catalyst 8000v at some point in the near future.

carlmontanari commented 2 years ago

error bundling required packaging files: exit status 2 ruh roh, not 100% off hand but that seems like we dont even get to boot up stuff and instead are borked on copying files outa temp dir to wherever. So we may need to check that out before we even get any further.