Commit Graph

1212 Commits

Author SHA1 Message Date
renovate[bot]
9c848453a9 Update module github.com/onsi/gomega to v1.27.6 (#1219)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-30 09:23:22 +02:00
Mauro Morales
36dd09c2db sparkles: Custom partitioning refactor config (#1180)
* Introduce config/collector package

to split the collection of config sources out of the config package.

Each consumer of the new package will take care of unmarshalling the
yaml to a specific Config struct, do validations etc.

* Add tests and remove garbage
* Follow all config_url chains and test it
* Add missing options file and refactor cmdline code
* Consolidate the way we merge configs no matter where they come from
* Allow and use only files with valid headers

Config is  specific to Kairos while Collector is generic. This
will allow us to do validations which are just related to Kairos at the
config level, while including every type of key and querying of the full
yaml at the Collector level splitting the responsibilities of each
package.

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2023-03-29 16:25:38 +02:00
renovate[bot]
4713ed05ed Update module github.com/urfave/cli/v2 to v2.25.1 (#1195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-29 09:21:34 +02:00
renovate[bot]
eae59a8b4b Update module github.com/pterm/pterm to v0.12.57 (#1206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-28 23:48:57 +00:00
renovate[bot]
7512db55ca Update module github.com/imdario/mergo to v0.3.15 (#1190)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-25 09:30:10 +01:00
renovate[bot]
6d228317fc Update module github.com/onsi/gomega to v1.27.5 (#1185)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-24 08:08:00 +01:00
renovate[bot]
bd785f2952 Update module github.com/onsi/ginkgo/v2 to v2.9.2 (#1184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-23 22:09:43 +01:00
Itxaka
48eb4ec294 Bump to newer sdk (#1166) 2023-03-18 10:27:18 +01:00
Itxaka
e024c7ccf3 arrow_up: Bump repositories (#1163) 2023-03-17 14:04:43 +01:00
renovate[bot]
9016bff05b Update module github.com/imdario/mergo to v0.3.14 (#1148)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-16 12:25:38 +01:00
Itxaka
a0a7fee9f9 sparkles: Use kairos-sdk module (#1140) 2023-03-15 15:45:00 +01:00
renovate[bot]
985f7d00ea Update module github.com/itchyny/gojq to v0.12.12 (#1085)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-15 08:32:26 +01:00
renovate[bot]
e4dfa16ce2 Update module github.com/swaggest/jsonschema-go to v0.3.48 (#1094)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-14 14:03:39 +01:00
renovate[bot]
9d1cc7934c Update module github.com/pterm/pterm to v0.12.55 (#1086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-14 14:03:00 +01:00
renovate[bot]
957edf3970 Update module github.com/urfave/cli/v2 to v2.25.0 (#1098)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-14 14:01:13 +01:00
renovate[bot]
ab0a77fa92 Update module github.com/onsi/gomega to v1.27.4 (#1129)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-14 13:59:36 +01:00
renovate[bot]
dd6bbce14a Update module golang.org/x/oauth2 to v0.6.0 (#1104)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-14 10:41:02 +01:00
Itxaka
cc567510b3 bug: downgrade yip (#1088)
Looks like yip 1.x is not working as expected, skipping stages and
whatnot

This downgrades it to a know working 0.11.x version until those issues
are fixed

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-10 13:42:15 +01:00
Itxaka
5d355732fd bug: Bump yip (#1082)
version 1.0.0 wont run all stages in certains cases

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-10 08:27:24 +01:00
Itxaka
eb25d56f59 Bump ghw and fix state (#1073)
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-09 17:18:37 +01:00
Oz Tiram
0a43ea7956 🔧 Use random free port for Spice display and SSH (#832)
* Refactor tests to use the "VM" construct from peg

📖 Add cloud-config.json for v1.6.0 (#977)

:docs: Add cloud-config.json for v1.6.0

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

📖 Add documentation about schema validation (#978)

* 📖 Add documentation for cloud config validation

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Add image

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Move image to static dir

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

🐛 Backport dracut patch for ubuntu 20 iscsi (#979)

🔧 Use random free port for Spice display and SSH

When running the install test with qemu, the second test will
fail because the 2nd machine will fail to start.
The failure is cause because the port of the previous machine is
still not freed.
Hence, let the install-test use a differnet random port if not
specified.
`GetFreePorts` copied from `kairos-io/kcrypt-challenger`.
Credits @jimmykarily.

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

Update peg and use new VM interface

This enables creating mulitple VMs in parallel
as done in kairos-io/kcrypt-challenger.

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

Handle possible collision of spice and SSH ports

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

Migrate all tests to new PEG API

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

Remove one more reference to old API.

Replace Machine.SendFile with vm.Scp

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

Try and fix bundle_tests

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

Temporarily disable many flavours

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

Bump peg and fix code

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Remove unecessary output and fix test issues

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Make sure we install before we start checking things.

It seems that we were relying on previous tests to do the installation
because we only had one "Machine".

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Bump peg to better handle "Sudo", dedup tests

and make sure installation has happened before every check

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Wait until systemd service becomes active

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Merge multiple similar tests into one

because the big overhead comes from the BeforeEach block which is the
same in all tests. The tests themselves are just checking differnet
things on similar VMs. By merging them we same a lot of time in
preparing the same env again and again.

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Fix forgotten "Machine"

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Bring all flavors back

This partly reverts commit aa029c20acd79c46122783aad030e2a5410a9374.

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Merge similar tests an uncomment code

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Fix fogotten global Machine function

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Wait for systemd-sysext to do its thing

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Fix forgotten global Sudo and remove gatherLogs

which wasn't working anyway

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Fixes after rebase

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Fix `source` not present in ubuntu/debian `/bin/sh`

and add debug output to failed test

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Bump peg to fix "read only filesystem" error in tests

50b63c0bf8

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Use "." instead of "source" in vm's "/bin/sh"

because "source" is not recognised in debian based flavors

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Bump peg to fix vm.Sudo problems

and remove redundant check.

Now peg just pipes the ssh command without creating tmp scripts

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

---------

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
Co-authored-by: Mauro Morales <mauro.morales@spectrocloud.com>
Co-authored-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2023-03-01 23:55:40 +01:00
Itxaka
5bfceade0f warning: 🎨 Use immucore 🦔 (#877)
* ⚠️ 🎨  Use immucore

Build kairos with immmucore instead of cos-immutable-rootfs

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

* 🐛 Fix state sdk

State sdk is using ghw to identify the state of the disks, but
unfortunately ghw only works with devices and not with labels

This patch adds a workaround by checking deeper for partitions that
migth not have mountpoints reported by ghw but are indeed mounted

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

* 🐛 Fix state not catching netboot properly

This worked with the old cos-immutable-rootfs due to the rd.cos.disable
stanza in cmdline making the livecd cloud config file trigger, which
created the livecd sentinel file.

With immucore, the sentinel is being created during initramfs directly
so we need to rely on the cmdline to identify it.

State sdk should know that having the netboot stanza should identify the
boot as cdlive

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

* Fix custom binds set as RW_PATHS

RW_PATHS are meant for overlay dirs which go away after a reboot.
Custom binds/binds are mounted under COS_PERSISTENT, so they persist
after reboot AND are RW by default.

This patch removes adding the custom binds into the RW_PATHS on the
cos-layout file as that can lead to unintended consequences

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

* Dont run custom mounts on livecd and recovery

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

* Rework writing custom ephemeral/binds

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

* Maybe fix tests

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

* Add missing sgdisk to ubuntu images

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

* 🐛 Backport dracut patch for ubuntu 20 iscsi

There was an issue with dracut 48 in which the iscsid.socket required fs
targets to be ready. On an iso this could lead to a dependency cycle
between the dmsquash module setting up the livecd rootfs and the iscsi
socket required the initrd-fs to be ready.

This was fixed on dracut 50 and its what this patch brings, dropping the
socket dependency on the fs target so it can break the dependency cycle.

This only affect ubuntu 20 lts, and only affects booting from the iso.
Alos the issue is random as systemd will decide to break the dependency
in a non predictable way by disabling one of the services that conflict,
so sometimes it would be the iscsi serviec, which would make the iso
boot but sometimes it could be other more important services liek teh
local fs or the dracut pre-mount services.

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
(cherry picked from commit 63f0c75d69ab3adca143f917c2e31b75ca3d96c7)

* Bump immucore

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

---------

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
2023-03-01 00:02:10 +01:00
Ettore Di Giacinto
d51a9f3470 seedling: Detect more information about runtime (#956)
* 🌱 Detect more information about runtime

This introduces a `system` and a `kairos` block available in
kairos-agent get state.

This allows for instance to query the agent for the kairos version as
such:

`kairos-agent get state kairos.version`

Part of #755

Signed-off-by: mudler <mudler@c3os.io>

* 🤖 Fixup tests

Signed-off-by: mudler <mudler@c3os.io>

---------

Signed-off-by: mudler <mudler@c3os.io>
2023-02-26 20:18:49 +01:00
renovate[bot]
31eb84bb82 Update module github.com/labstack/echo/v4 to v4.10.2 (#939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-22 07:18:54 +01:00
renovate[bot]
e80376920e Update module github.com/urfave/cli/v2 to v2.24.4 (#904)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-21 16:52:59 +01:00
renovate[bot]
df135dad9d Update module github.com/onsi/ginkgo/v2 to v2.8.3 (#915)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-20 21:43:51 +00:00
renovate[bot]
d0de550cf2 Update module github.com/labstack/echo/v4 to v4.10.1 (#916)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-20 08:53:31 +01:00
renovate[bot]
8c9136f8a7 Update module github.com/onsi/gomega to v1.27.1 (#914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-18 14:31:56 +01:00
renovate[bot]
1d27de5993 Update module github.com/onsi/ginkgo/v2 to v2.8.2 (#913)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-18 12:11:41 +01:00
renovate[bot]
ab29bfcb73 Update module github.com/onsi/gomega to v1.27.0 (#905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-17 08:00:24 +00:00
renovate[bot]
fa51f8a822 Update module github.com/onsi/ginkgo/v2 to v2.8.1 (#880)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-15 10:55:13 +00:00
renovate[bot]
a0816c8236 Update module golang.org/x/net to v0.7.0 (#889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-14 21:25:19 +01:00
renovate[bot]
2f43264215 Update github.com/spectrocloud/peg digest to 1780cee (#865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-13 09:37:17 +01:00
renovate[bot]
55ab7ab821 Update module golang.org/x/oauth2 to v0.5.0 (#852)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-09 21:54:24 +01:00
renovate[bot]
bb39cc4eaa Update module golang.org/x/net to v0.6.0 (#851)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-09 09:54:35 +01:00
renovate[bot]
02d5399ec7 Update module github.com/kairos-io/kcrypt to v0.5.1 (#843)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-09 08:25:39 +01:00
Mauro Morales
32dfa9b9b0 seedling: Kairos config validator library (#798)
* Validate yaml

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* lint feedback

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Validate User name with JsonSchema

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* WIP users validation

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Add multiple examples for ssh keys

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Add example of complex validation with AnyOf

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Better business rule example with P2P

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Test with message for empty network_token

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Split into a file for each sub section

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Add install schema validations

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Add to main schema

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Add more tests for p2p

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Add install schema

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Validate fields between new and old schema

It also adds the missing ones

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Lint

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Remove temp debugging functions

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Add new fields in old schema

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Add documentation for all exported

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Move schemas into a directory of their own

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Add missing dot at end of comment

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Rebase master and add local_file to bundles

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-02-08 11:02:13 +01:00
renovate[bot]
9554f44034 Update github.com/spectrocloud/peg digest to 5f48d83 (#837)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-07 16:58:24 +01:00
renovate[bot]
1a8fb662ad Update module github.com/joho/godotenv to v1.5.1 (#820)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-07 02:19:26 +00:00
renovate[bot]
949493443c Update module github.com/mudler/yip to v1 (#825)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-06 21:01:10 +00:00
renovate[bot]
4a82f9bd03 Update module github.com/urfave/cli/v2 to v2.24.3 (#807)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-04 11:23:23 +01:00
renovate[bot]
249ad57ab1 Update module github.com/erikgeiser/promptkit to v0.8.0 (#652)
* Update module github.com/erikgeiser/promptkit to v0.8.0

* 🎨 Adapt agent to new v0.8.0 promptkit version

Validation function for textinput now requires an error/nil instead of
a bool

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

---------

Signed-off-by: Itxaka <itxaka@spectrocloud.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Itxaka <itxaka@spectrocloud.com>
Co-authored-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-04 11:22:57 +01:00
renovate[bot]
2ca2a4f811 Update module github.com/joho/godotenv to v1.5.0 (#817)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-04 10:14:37 +00:00
renovate[bot]
e882a150a2 Update module github.com/onsi/ginkgo/v2 to v2.8.0 (#783)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-30 22:12:19 +01:00
renovate[bot]
e217a24240 Update github.com/spectrocloud/peg digest to a5208a0 (#735)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-30 16:18:12 +01:00
renovate[bot]
020d4e5852 Update module github.com/urfave/cli/v2 to v2.24.2 (#767)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-30 16:15:30 +01:00
renovate[bot]
06efd640fd Update module github.com/onsi/ginkgo/v2 to v2.7.1 (#761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-28 12:06:45 +01:00
renovate[bot]
ff7bfc4c0c Update github.com/mudler/go-pluggable digest to 7710299 (#744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-27 20:52:50 +01:00
Oz Tiram
70a1ccb07c Add machine display (#726)
* 🔧 Enable spice in scripts/start_vm_qemu.sh

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

* 🔧 add option specify display for qemu

This works only with https://github.com/spectrocloud/peg/pull/2
merged.

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

* 🔧 add option to enable KVM

ISO=/home/oznt/Software/spectro-cloud/kairos/build/kairos-core-opensuse.iso \
   CREATE_VM=true USE_QEMU=true \
   MACHINE_DISPLAY="-vga qxl -spice port=5903,addr=127.0.0.1,disable-ticketing=yes" \
   KVM=true ginkgo run -v tests

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

* Fix failing tests - qemu does not have /dev/sda

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

* Update peg dependency

Signed-off-by: Oz Tiram <oz@spectrocloud.com>

Signed-off-by: Oz Tiram <oz@spectrocloud.com>
2023-01-27 09:01:16 +01:00
renovate[bot]
73fa1a4cd9 Update github.com/spectrocloud/peg digest to cdce224 (#725)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-25 21:26:34 +01:00