Update BUILD.md, README.md files
This commit is contained in:
parent
dd2d657acf
commit
ff9d8a6443
2 changed files with 40 additions and 3 deletions
21
BUILD.md
Normal file
21
BUILD.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
Image building
|
||||
==============
|
||||
|
||||
## Notes
|
||||
|
||||
- Gentoo base?
|
||||
- CentOS/Rocky base?
|
||||
|
||||
## Process
|
||||
|
||||
1. Setup minimal base rootfs
|
||||
2. Install needed packages
|
||||
3. Create `/config` directory
|
||||
4. Setup git repository for config files
|
||||
5. Initial ansible run with default config
|
||||
6. Setup symlinks to `/config/*`
|
||||
7. Run testsuite
|
||||
8. Export rootfs as btrfs snapshot
|
||||
9. Release snapshot as new DEVELOP version
|
||||
10. Run testsuite
|
||||
11. Once a week: Release snapshot as RELEASE version
|
||||
22
README.md
22
README.md
|
|
@ -40,11 +40,11 @@ MBR/BIOS:
|
|||
/dev/disk3 btrfs@home /home
|
||||
/dev/disk3 btrfs@root-2021-04-01 /
|
||||
/dev/disk3 btrfs@root-2021-04-20 /
|
||||
/dev/disk3 btrfs@conf-2021-04-01 /config
|
||||
/dev/disk3 btrfs@conf-2021-04-20 /config
|
||||
/dev/disk3 btrfs@config /config
|
||||
```
|
||||
|
||||
- Every installed release has it's own subvolume for rootfs and config in case a configuration changes with an update
|
||||
- Every installed release has it's own subvolume for the rootfs
|
||||
- The `config` subvolumes has a git repository which saves all configuration changes and the used version
|
||||
- The user can choose which one to boot into
|
||||
|
||||
### Update flow
|
||||
|
|
@ -69,6 +69,22 @@ Update process:
|
|||
- the system reboots, now with the `last` entry being the default booting into the last known working system
|
||||
- the user gets displayed an error because `last` and `current` is not the pointing to the same version and `last` is booted indicating an error
|
||||
|
||||
### Configuration changes
|
||||
|
||||
- User changes current config via HTTP API (Web interface)
|
||||
- Background process puts changes into ansible variables in `/config`
|
||||
- When user discards changes git repo under `/config` is reset to original state
|
||||
- When change is ready and user triggers commit via HTTP API
|
||||
- Changes form a git commit with name `[$VERSION] $username - $change summary`
|
||||
- Timer is setup to revert to old config in 600s
|
||||
- Changes get applied via ansible
|
||||
- User confirms working state via HTTP API
|
||||
- Timer get removed
|
||||
- If new change is not confirmed and Timer gets triggered
|
||||
- git commit is reverted
|
||||
- Ansible runs again with old config
|
||||
- User get an error message
|
||||
|
||||
---
|
||||
|
||||
Made with ❤️ and 🪄✨.
|
||||
|
|
|
|||
Loading…
Reference in a new issue