Replies: 4 comments
-
I think this would be more or less a complete refactor of how VyOS is working. |
Beta Was this translation helpful? Give feedback.
-
TL;DR You can read what the build process does to the Debian in these directories and thus what you would need to replace to even begin. There are two different problems: 1) vyos as package 2) runtime upgrade. You can think of them as independent features. Most of the VyOS functionality is presented as Debian packages but it's not like you can install them and use them on their own - they expect specific state of the filesystem. Could you make package that would prepare the OS so the packages would accept it? I guess... It would basically transform your Debian into something else - it reaches far beyond what regular Debian packages does, like when it handles "foreign" configuration for other packages - it would make sense that this would be some transform script and not overreaching package. If you think about this more then you realize that this script is basically what The reason why you can't simply apt upgrade is the fact that VyOS handles configuration very differently than Debian. The configuration depends on config.boot and everything is based on that. If you upgrade package runtime - then there is no mechanism to reconfigure this package - that's all done when you are booting config.boot or issuing commit. Another problem is migration - sometimes configuration of packages changes and migration is handled by VyOS when you adding new image and by the fact that config.boot runs on clean system when you reboot. Thus even if you did make it work the principle of VyOS would require reboot on any package upgrade. This is smart - because this way VyOS has only one mechanism that does configuration - if you did it the Debian way then you would need extra logic to run when package upgrades to migrate live system into consistent state - and that's not easy - it's easier to reboot at that point. Proxmox is I guess the closest example of "install OS like package" but I think VyOS integrates order of magnitude more - simply because Hypervisor doesn't care about that many different aspects of the system. There is also the amazing mechanism where you can switch between images - like when you upgrade you can switch to previous image via GRUB or CLI - that's not something you want on regular system, but it's amazing for appliance like router - I don't know any other Debian that can do this. I think the way VyOS works makes sense - it's very different than any other Debian I saw but for good reasons. The configuration system is what makes Vyatta/EdgeOS/VyOS/DANOS what they are and that's just very different than how Debian or any other Linux works normally. So basically the main feature is the reason why VyOS is built as it is - it's not some arbitrary decision you can easily change and upgrading runtime would make VyOS much more complex and fragile for little benefit. |
Beta Was this translation helpful? Give feedback.
-
I think of a machine with VyOS as an appliance (like a router/firewall should be) |
Beta Was this translation helpful? Give feedback.
-
I do think the testing of specific package is still possible even with without any changes? It depends on the package but if the package is self-contained then you could delete running configuration, dpkg -i the package you want to change and then restore the configuration. This should allow swapping some packages like services runtime. |
Beta Was this translation helpful? Give feedback.
-
My first post here, welcome and nice to see a lot of progress while I was away for just 2 weeks :)
Just a thought - it's nice to have all the router config in one file, but the Debian packaging system is nice too. Would it work to do a VyOS-like config on top of a standard Debian installation? So upgrades would be done with apt and dpkg (standard Debian repo + additional repo like "sagitta" in sources.list). In other words, use Debian as it is just before making the ISO image from it. XCP-NG does it in a similar way (first install from ISO image, but update with "yum update" - it's CentOS not Debian but basic idea is the same). So to test a change, simply rebuild the .deb package and reinstall it on a running system, usually no need to reboot. What are your thoughts, does that look feasible or too difficult because of some VyOS-specific changes?
Beta Was this translation helpful? Give feedback.
All reactions