Commit Graph

369 Commits

Author SHA1 Message Date
Itxaka
41fcc3c03b
🐛 Fix chroot unmounting (#80)
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-08 19:44:45 +01:00
Itxaka
aa5939da89
Rework workflow (#77)
This makes immucore run more in parallel rather than block everything
else. We just tell sysroot.mount that eventually it will be mounted and
to wait for a bit.

This allows us to be more flexible where to run and run in parallel in
cases like cdrom in which we may do things but we need the sysroot to be
mounted already but not from us.

Also adds the initramfs stage directly in immucore and merges all the dracut config into one

    Dont create sysroot, just add a timeout override so it waits for us
    Dont block on the service, just make sure to finish before
    initrd.target
    Fix mounts from cmdline
    More proper log
    Store logs under the /run/immucore dir
    Store rootfs and initramfs logs separated
    Do not log the full stages in INFO level
    Run initramfs stage in immucore directly on boot and cd/netboot
    Drop systemd requirement from dracut module

Signed-off-by: Itxaka itxaka.garcia@spectrocloud.com
2023-03-08 11:45:11 +01:00
Itxaka
9672823510
Add Readme (#70)
* Add Readme

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

* Apply suggestions from code review

Co-authored-by: Dimitris Karakasilis <jimmykarily@gmail.com>
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

* Update stanzas with the newer ones and mark them as compatible with the
old ones

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

* Apply suggestions from code review

Co-authored-by: Mauro Morales <contact@mauromorales.com>
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

* Add suggestions from review

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

---------

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
Co-authored-by: Dimitris Karakasilis <jimmykarily@gmail.com>
Co-authored-by: Mauro Morales <contact@mauromorales.com>
2023-03-03 10:11:21 +01:00
Itxaka
167cf5fa0d
🐛 Fix coverage (#76)
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-02 19:33:11 +01:00
Itxaka
fecfbf8e92
Add tests and fix some issues that arised from testing (#74)
* Add tests and fix some issues that arised from testing

Mainly around the cmdargs and how many items it returns.
Also drop the iso target and jobs as its not necessary now

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

* Lint

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

---------

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-02 16:46:25 +01:00
Itxaka
b0b326313b
🐛 Get oem label from cmdline before using runtime (#73)
Otherwise we are ignoring any override via stanza

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-02 11:45:05 +01:00
Itxaka
ea5c1c75f2
🐛 Support immucore stanzas in cmdline (#72)
Introduce support for the same old cos stanzas but with immucore naming
so we can control them better in the future

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-02 11:10:28 +01:00
Itxaka
6ed15c7227
🐛 Load overlay config from cos-layout.env (#71)
Load the base overlay config from the cos-layout.env file. This means we
have to depend the base overlay mount to the load-config step, which
moves things a bit in the DAG.

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-02 10:44:54 +01:00
Itxaka
73c4c3e0af
Add missing cmdline stanzas (#69)
Adds support for:
 - rd.cos.oemtimeout=
 - rd.cos.overlay=tmpfs:SIZE
 - rd.cos.overlay=LABEL=DEVICE_LABEL
 - rd.cos.overlay=UUID=DEVICE_UUID

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-01 21:45:32 +01:00
Itxaka
68fc3afa24
Fix master to boot normal (#68)
* Be more careful with commandWithPaths PATHS

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

* Do not mount all the things :/

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

* Only mount /proc otherwise we break stuff

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

---------

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-01 16:20:45 +01:00
Itxaka
4fabf06d7f Fix running elemental
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-01 15:47:51 +01:00
Itxaka
2e8e30aa13 Just write to stdout for now
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-01 15:43:09 +01:00
Itxaka
086227d672
Uki Support (#67)
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-01 11:42:46 +01:00
renovate[bot]
de9ed759eb
Update module github.com/containerd/containerd to v1.6.19 (#63)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-01 09:54:13 +01:00
renovate[bot]
c815d845bf
Update module github.com/onsi/gomega to v1.27.2 (#64)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-01 09:53:35 +01:00
Itxaka
3a52112b91
Revert "Uki support" (#66
This reverts commit 985b8c9401.
2023-02-28 19:46:15 +01:00
Itxaka
4cbff2d8d4
Do not mount tmp on livecd/netboot (#65
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-28 19:24:13 +01:00
Itxaka
985b8c9401
Uki support (#61) 2023-02-28 14:37:02 +01:00
Itxaka
9a480df901 Re-enable longer RW_PATHS
Looks like the problem comes from the custom mounts overriding this
values

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-22 12:21:02 +01:00
Itxaka
97478bd8ac Re-fix overlay and binds
Cleanup at the end, append both

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-22 11:57:38 +01:00
Itxaka
b338cbb250 Reduce list of default RW mounts
According to our config files only /var /etc and /srv are needed as
minimal to boot the system. Lets check if that is true

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-22 11:52:49 +01:00
Itxaka
69b0c0131f Add custom mounts and fix default rw paths
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-22 11:26:59 +01:00
renovate[bot]
931fb0b0ff
Update module github.com/spectrocloud-labs/herd to v0.4.2 (#60)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-22 10:59:53 +01:00
Itxaka
bf34119ece
Run command directly without subcommand (#59)
If immucore is run we should just execute our normal dag stuff directly
instead of having a subcommand.

Keep the version subcommand and dry-flag

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-20 11:14:26 +01:00
renovate[bot]
97752aaa53
Update module github.com/onsi/gomega to v1.27.1 (#58)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-20 09:31:31 +01:00
renovate[bot]
a1bf6e8b6f
Update module github.com/onsi/ginkgo/v2 to v2.8.3 (#57)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-20 09:30:50 +01:00
Itxaka
5dde396331
Add fsck before mounting (#56)
Respect all options from systemd-fsck as that it what is currently used
on kairos.

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-17 16:15:26 +01:00
Itxaka
c081f987f8
Fix recovery (#54)
* Fix recovery

 - change TargetLabel into TargetDevice to hav ethe full device instead
   of just the label
 - log error if we cant mount
 - Get state partition to mount depending on recovery or active/passive
 - Get state patition fs on the fly
 - Set proper label device to mount on sysroot based on our boot state

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

* Fix test

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

---------

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-17 11:53:26 +01:00
Itxaka
88df028e6d
Allow setting root to RW (#53)
This patch allows setting the root mount as RW indicated by setting
rd.cos.debugrw in the cmdline

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-17 09:54:23 +01:00
renovate[bot]
794d658f5e
Update module github.com/onsi/gomega to v1.27.0 (#52)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-17 09:28:15 +01:00
Itxaka
4083ff691d
Mark rd.cos.disable sentinel as livecd (#46)
Original cos-immutable-rootfs sets the sentinel to livecd if it finds
the rd.cos.disable in the cmdline.

We should do the same. Unfortunately the state sdk doesnt support that
yet so we have to do it on our side until its supported

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-17 09:27:12 +01:00
renovate[bot]
da250ecbaf
Update module github.com/onsi/ginkgo/v2 to v2.8.1 (#37)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-16 18:45:04 +01:00
renovate[bot]
e9e4d2d674
Update module github.com/containerd/containerd to v1.6.18 [SECURITY] (#44)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-16 17:38:57 +00:00
renovate[bot]
a452b8aa86
Update module github.com/urfave/cli/v2 to v2.24.4 (#45)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-16 17:36:00 +00:00
Itxaka
c58396e1d1 Only build iso on master merge
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-16 18:21:14 +01:00
Itxaka
5413bd1445 Disable building iso on PR
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-16 18:17:41 +01:00
Itxaka
210856970b
Add merge_group trigger to jobs (#48)
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-16 18:11:47 +01:00
Itxaka
91d6fa6945 Add version command and fix commit version
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-16 15:43:33 +01:00
Itxaka
bc53b0de3a Workaround for kairos sdk not detecting netboot
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-16 15:30:54 +01:00
Itxaka
dac147da2d Avoid sysroot.mount starting before immucore
Make it explicit that we run before sysroot.mount, otherwise it may be
launched in parallel and fails as immucore hasnt mount the sysroot
already

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-16 11:16:43 +01:00
Itxaka
4cfe5e764d Run udevadm trigger after mounting loop device
So the devices get refreshed and they show up under /dev/disk/by-label

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-16 10:41:02 +01:00
Itxaka
ad014e9f22
Full rework (#41)
* Full rework

 - Extract steps to a different file
 - Simplify dag for easy understanding
 - Load dag based on our boot process
 - Simplify steps to not depend on useless stuff
 - Better logging

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

* Move sentinel file to the dag

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

* Adapt tests

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>

---------

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-15 22:30:08 +01:00
Itxaka
4e2dd37e70 Use device to mount stuff
Unfortunately ghw detects mountpoint only by device, thus kairos-agent
does the same.

If we expect to make this work we need to mount the devices by the dev
instead of label until ghw supports detecting the devices mountpoint
ALSO via label.

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-15 15:30:21 +01:00
Itxaka
28e6cfbff8 Do not do anything if rd.cos.disable its on the cmdline
That means we dont want to run any immutable stuff, for netboot and
cdrom

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-15 10:53:48 +01:00
Itxaka
220641df60 Improvements
- Set debug from ENV var as well
 - Only set sentinel if we are not on a dry-run so we can examine the
   DAG
 - Set the DAG with Init so tmpfs is part of it

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-14 13:48:57 +01:00
Itxaka
3ef3ac0251 Always mount tmpfs
Even on cd boot. Also delay the cdboot check a bit so we can mount tmpfs
also on cdboot

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-14 12:26:04 +01:00
Itxaka
2aee7ab5a0 Symlink /sysroot/oem to /oem so we can run rootfs stage
Looks like we need to have the oem partition loaded for some cases, and
during rootfs we should pick it up.

Currently we only mount it under /sysroot/oem. IIRC in
cos-immutable-rootfs it was mounted under /oem directly, the rootfs
stage service run and then when cos-layout was launched it made sure to
unmount /oem so it could mount it under /sysroot/oem

In our case its a bit more complicated, we may need to mount it under
/oem before the rootfs run, then unmount it and mount it in the proper
place. Im hoping we can get away with just creating the symlink

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-14 09:51:51 +01:00
Itxaka
076bba95dc Set the sentinel file from immucore directly
Also add a missing livecd sentinel file

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-13 21:42:45 +01:00
Itxaka
1d6572faaa Drop uneeded install on conf file
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-13 16:16:09 +01:00
Itxaka
1cd53d8e57 Typo in service name
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-13 14:53:34 +01:00