For a baalue-node we need some mechanism to deploy new cells (which is a raw binary). Okay thats easy, copy it via sftp or sshfs to a special partition on the device (via baalue -> QT based gui). But what if something went wrong? Okay we could copy the old bin to save it and then deploy the new one. That sound like a hook and not like a solution.
So my idea is to let the filesystem do the work and so i will try out brtfs. Btrfs has a nice feature called snapshots. My idea is to create subvolumes for every possible type of cell. Let say we want to use a bare-metal, a erika and a linux cell on the device. For every type of cell we create a subvolume, one for the bare-metal cell, one for erika and one for linux.
Now we want to update the bare-metal cell. So first we create a snapshot (brtfs snapshot …) and then copy the new cell via sftp/sshfs to the target. If something went wrong, we can recover to the „old“ snapshot via a simple btrfs command.
After some playing and testing with brtfs we will update the baalue-node image.