What is the best way to upgrade?
I've run two upgrades in the past and both take DNS offline because my packages are not part of the upgrade. Then I've had to navigate to, via IP address, to openwrt downloads to get the packages my router expects.
I've tried the attended sys upgrade package but that has yet to work.
Is there any easier upgrade path? Am I doing something wrong?
Yeah, I had the same issues. A lot of people will tell you to not preserve your configuration and apply it from scratch, which is not all that fun. One challenge that is easy to miss during any upgrade is that the new code is often not backwards compatible with the old config, so new changes in OpenWrt need to be somehow merged into the existing config files, which a tedious manual process.
What I found works for me and several routers I manage is:
Use Image Builder and create one firmware file with all the packages you need.
Use /etc/uci-defaults to fully configure each router with their own settings.
Item (1) takes care of all the packages while (2) makes sure that my configuration is merged into the base line config so that it picks up all the latest.
Both require a time investment up-front; especially (2) to write your scripts and test them.
I may try the Image Builder & /etc/uci-defaults methods.
I'm still running 23.5.0 bc I'm loath to just run an upgrade without very carefully planning it. If my OpenWrt router goes offline due to install problem, my whole home net is offline.
My current idea is to NOT do sysupgrade directly onto a live OpenWrt, I prefer to use a 2nd SD, install latest image onto 2nd SD, including same config as live OpenWrt. Then try booting Prod Router from 2nd SD. If it fails, reboot router from orig SD.
Ie I want to be able to revert to prev config very easily. Using 2 separate SDs/installs seems to be a failsafe way to ensure an online router.
I've also increased the partition size of the orig image, & I'm running Wireguard happily, so I can forsee having to do many config additions.
Previously I thought maybe I could just copy /etc/config from the router onto USB storage, which my NanoPi supports (has usb ports). However posts seem to suggest that my prev config may not actually WORK PROPERLY in subsequent versions??.... So copying & reusing an old /etc/config is NOT a solution? Do I need to learn /etc/uci-defaults ?
For critical infrastructure you need failover like conntackd in place that it serves critical business with n-1 or n-2 elements. Critical self-repairing single mainframe is of previous century.
OpenEmbedded seems to be a compile/image.build framework for various embedded Linux systems, rather than for use with a live hardware-failover mechanism.
You need to account all functions you critically need and implement failover for each, like carp for floating ip address, conntrackd for nft states etc.