On Wed, Oct 13, 2021 at 08:21:28PM +0300, Leonid Krivoshein wrote: > From: Leonid Krivoshein > > Pipeline live as a add-in over bootchain-core for backward > compatibility with already existing solutions. > For bootchain-core it is planned to implement a number of > new features to cover the tasks of bootloading the installer > and live systems. > > Signed-off-by: Leonid Krivoshein > --- > features/bootchain-core/README.md | 81 +++++++++++++++++++ > features/bootchain-core/config.mk | 8 ++ > .../data/etc/initrd/cmdline.d/bootchain-core} | 3 +- > .../data/etc/rc.d/init.d/bootchain} | 8 +- > .../udev/rules.d/50-bootchain-waitdev.rules} | 2 +- > .../data/lib/bootchain}/getimage | 2 +- > .../data/lib/bootchain}/mountfs | 2 +- > .../data/lib/bootchain}/overlayfs | 2 +- > .../data/lib/bootchain}/rootfs | 2 +- > .../data/lib/bootchain}/waitdev | 4 +- > .../data/lib/initrd/cmdline.d/bootchain | 6 ++ > .../data/lib/initrd/cmdline.d/pipeline | 2 +- > .../lib/uevent/filters/bootchain-waitdev} | 4 +- > .../data/sbin/bootchain-sh-functions} | 12 +-- > .../data/sbin/bootchained} | 22 ++--- > features/bootchain-core/rules.mk | 4 + > features/pipeline/config.mk | 9 +-- > features/pipeline/rules.mk | 6 -- > 18 files changed, 133 insertions(+), 46 deletions(-) > create mode 100644 features/bootchain-core/README.md > create mode 100644 features/bootchain-core/config.mk > rename features/{pipeline/data/etc/initrd/cmdline.d/pipeline => > bootchain-core/data/etc/initrd/cmdline.d/bootchain-core} (63%) > rename features/{pipeline/data/etc/rc.d/init.d/pipeline => > bootchain-core/data/etc/rc.d/init.d/bootchain} (83%) > rename features/{pipeline/data/etc/udev/rules.d/50-pipeline-waitdev.rules > => bootchain-core/data/etc/udev/rules.d/50-bootchain-waitdev.rules} (77%) > rename features/{pipeline/data/lib/pipeline => > bootchain-core/data/lib/bootchain}/getimage (93%) > rename features/{pipeline/data/lib/pipeline => > bootchain-core/data/lib/bootchain}/mountfs (91%) > rename features/{pipeline/data/lib/pipeline => > bootchain-core/data/lib/bootchain}/overlayfs (95%) > rename features/{pipeline/data/lib/pipeline => > bootchain-core/data/lib/bootchain}/rootfs (86%) > rename features/{pipeline/data/lib/pipeline => > bootchain-core/data/lib/bootchain}/waitdev (83%) > create mode 100755 > features/bootchain-core/data/lib/initrd/cmdline.d/bootchain > rename features/{pipeline => > bootchain-core}/data/lib/initrd/cmdline.d/pipeline (64%) > rename features/{pipeline/data/lib/uevent/filters/pipeline-waitdev => > bootchain-core/data/lib/uevent/filters/bootchain-waitdev} (77%) > rename features/{pipeline/data/sbin/pipeline-sh-functions => > bootchain-core/data/sbin/bootchain-sh-functions} (70%) > rename features/{pipeline/data/sbin/pipelined => > bootchain-core/data/sbin/bootchained} (78%) Should we call it /sbin/bootchained? It is not chained. :) Why not /sbin/bootchaind? > create mode 100644 features/bootchain-core/rules.mk > > diff --git a/features/bootchain-core/README.md > b/features/bootchain-core/README.md > new file mode 100644 > index 0000000..e4b87d6 > --- /dev/null > +++ b/features/bootchain-core/README.md > @@ -0,0 +1,81 @@ > +# Feature: bootchain-core > + > +`bootchain-core` - it's a fork and further development the original > +feature of `pipeline`. This feature allow us to consistently setup > +steps-scripts one by one. For details about `pipeline` you can see > +in ../features/pipeline/README.md. > + > +In fork process `pipeline` was divided by three parts: > + > +- `bootchain-core` - the main functional of feature `pipeline`, common > + API and daemon. > +- `bootchain-getimage` - method to networking boot from ISO-image with > + the wget utility. > +- `bootchain-waitdev` - method to boot from specified local media. > + > +The future work with `bootchain` allowed us to create a few modules. > +They are expected to be upstream soon. This divide on modules allow > +us to optimize fill in `initramfs` only which we are need. > + > +## Main components of bootchain-core > + > +- `/sbin/bootchain-sh-functions` - common API and evolution > + of `pipeline-sh-functions`. > +- `/sbin/bootchained` - daemon, evolution of `pipelined`. > +- `/etc/rc.d/init.d/bootchain` - sysvinit start script. > + > +## Reasons of making fork and rename pipeline > + > <...> > + > +## External elements of the bootchain (steps-scripts) > + > +- `mountfs` - mounts a file or device from the result of the previous or > other > + specified step. > +- `overlayfs` - combines one or more elements of the boot chain using > overlayfs. > +- `rootfs` - forces the daemon to use the result of the previous element as > the > + found root of stage 2. > + > +## Boot parameters > + > +- `bootchain=name1[,name2][,name3]` - defines the initial state of the boot > + chains, i.e. the steps that the daemon must go through one by one. These > can > + be both built-in pseudo-steps and real scripts of the actions performed. Можно ли будет при желании писать свои стадии и включать их в свои initramfs? Т. е. мы рекомендуем администраторам держать при себе личные расширения или апстримить их функциональность? > The > + names these steps are listed separated by commas. > +- `pipeline=name1[,name2][,name3]` - alias for `bootchain=...`. > +- `mountfs=target` - specifies the file or device to be mounted. > +- `overlayfs=list` - defines the list of elements to combine. > + > +## bootchain-sh-functions API > + <...>