Commit Graph

97 Commits

Author SHA1 Message Date
Itxaka
b996feeb27 sparkles: Allow showing pre-releases on upgrade options (#1333)
By default get 30 releases and skip any pre-releases found.
Allow toggling showing pre-releases both for upgrade and for listing
them

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-04-21 12:32:28 +02:00
Itxaka
4035ee0489 bug: Fix version list (#1323)
* 🐛 Fix version list

First version in the list is the latest one.
Alos moves the check for same version above the current place, so it can
check before asking if you want to update to the same version

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

* 🌱 Rework versioning for upgrade

Use the semver lib to parse the versions into a proper collection where
it can be parsed and versions compared and sorted properly

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-04-20 09:57:58 +02:00
renovate[bot]
ac478c4c09 Update dependency cypress to v12.10.0 (#1319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-18 21:36:15 +02:00
Itxaka
e718fcec27 robot: Add cypress tests for web UI (#1269) 2023-04-18 18:09:48 +02:00
Ettore Di Giacinto
e5e595be4c bug: Ensure data source is ready during reset (#1310)
Signed-off-by: mudler <mudler@c3os.io>
2023-04-17 17:27:37 +02:00
renovate[bot]
936b538cca Update dependency codemirror to v5.65.12 (#1144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-13 19:47:03 +02:00
renovate[bot]
6c52277486 Update dependency @popperjs/core to v2.11.7 (#1192)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-13 19:46:07 +02:00
Mauro Morales
7534cab2c3 bug: Add yaml extension to temp file created by webui (#1260)
Add yaml extension to temp file created by webui

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-04-06 15:01:41 +02:00
Mauro Morales
961804be0a arrow_up: Bump go in Earthly and workflows to ^1.20 (#1213)
* Bump go in Earthly and workflows to ^1.20

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

* Update go.mod version

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

* Lint

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

* Remove pin of go version to get the latest

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

* Remove minor version

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

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-03-30 16:42:25 +02:00
Dimitris Karakasilis
e7807dd66c Change module path according to Go docs (#1220)
https://go.dev/doc/modules/major-version

This way we can bump the kairos dependency on the provider-kairos repo

which otherwise produced the error:

```
~/workspace/kairos/provider-kairos (main)*$ go get -u github.com/kairos-io/kairos@v2.0.0-alpha3
go: github.com/kairos-io/kairos@v2.0.0-alpha3: invalid version: module contains a go.mod file, so module path must match major version ("github.com/kairos-io/kairos/v2")
```

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
Co-authored-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-30 14:18:53 +03:00
Mauro Morales
1073b07f6a 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]
960747bf7f Update dependency @fortawesome/fontawesome-free to v6.4.0 (#1198)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-29 09:21:01 +02:00
Itxaka
107a4ab02f bug: Fix validator on long strings (#1194)
* 🐛 Fix validator on long strings

Validator was mistakenly identifying a long yaml as a file and trying to
open it, which failed with an error of filename too long.

This was not catched in order to identify that the source is not a file
but a yaml, so it was directly returning the error.

This patch adds that error to the list in order ot identify the source
to validate as yaml. Also adds a couple of tests for this functionality.

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

* 🐛 Merge initramfs generation between distros

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

---------

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-28 18:20:56 +02:00
Itxaka
148fc21c0e seedling: Add auth flags to upgrade (#1179) 2023-03-24 14:00:33 +01:00
renovate[bot]
e576303a4c Update dependency @fortawesome/fontawesome-free to v6.3.0 (#1142)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-20 09:19:32 +01:00
renovate[bot]
a955590864 Update dependency jquery to v3.6.4 (#1146)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-20 09:18:44 +01:00
Itxaka
75c52f520f Bump to newer sdk (#1166) 2023-03-18 10:27:18 +01:00
renovate[bot]
eb17e5099c Update dependency alpinejs to v3.12.0 (#1143)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-15 22:46:16 +01:00
Itxaka
b5cfab06a7 sparkles: Use kairos-sdk module (#1140) 2023-03-15 15:45:00 +01:00
Oz Tiram
ce4631fd07 bug: Fix configuration not being merge (#1117)
Fix #687.

Signed-off-by: Oz Tiram <oz@spectrocloud.com>
2023-03-14 15:44:49 +01:00
Ettore Di Giacinto
6bc750130c robot: Delete duplicate test suite registration (#1091)
Signed-off-by: mudler <mudler@c3os.io>
2023-03-10 11:10:03 +01:00
Jacob Payne
e57ef905a4 bug: Fix manual install not supporting configuration url (#963)
* fixed manual install not supporting configuration url

Signed-off-by: Jacob Payne <jacob@spectrocloud.com>

* break out url logic and add testing.

Signed-off-by: Jacob Payne <jacob@spectrocloud.com>

---------

Signed-off-by: Jacob Payne <jacob@spectrocloud.com>
Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
2023-03-08 10:13:36 -07:00
Jacob Payne
d8d97097a7 bug: remove kcrypt hook after reset (#982)
remove kcrypt hook after reset

Signed-off-by: Jacob Payne <jacob@spectrocloud.com>
2023-02-28 15:57:47 -07:00
Shawn Wilsher
609c09f305 🔧 Integrate Shellcheck (#931)
* Add `shellcheck` to lint.

Signed-off-by: Shawn Wilsher <656602+sdwilsh@users.noreply.github.com>

* Fix/Suppress `shellcheck` lint issues

Signed-off-by: Shawn Wilsher <656602+sdwilsh@users.noreply.github.com>

---------

Signed-off-by: Shawn Wilsher <656602+sdwilsh@users.noreply.github.com>
Co-authored-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-23 04:36:49 -08:00
Mauro Morales
0cf3da5e06 sparkles: Web UI schema validations (#934)
* Allow validator to receive a config-schema

It will try to process a URL first, otherwise a file and if the file
is not present it will try to read the source as a cloud-config

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

* Validate cloud-config on WebUI

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

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-02-22 08:54:45 +01:00
Mauro Morales
461516fec5 sparkles: Integrate schema validation (#853)
* Change ValidationError to return the actual error

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

* Add validate command

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

* Warn validation errors when scanning configs

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

* Lint

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

* Add schema command to print config json schema

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

* Add strict-validations flag

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

* Lint and remove focus

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

* Rename command schema to print-schema

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

* Fix issue by reading originalData

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

* Lint

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

* Remove test from removed feature

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

* Add comments to exported functions

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

* Lint

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

* Add test for validate.go

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

* Remove focus

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

* Add more tests for root schema

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

* Add more tests

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

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
Co-authored-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-02-14 16:15:13 +01:00
renovate[bot]
1f9d67c57a 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
Ettore Di Giacinto
9c99670add robot: Don't run installation twice on installation tests (#811)
* 🤖 Don't run installation twice on installation tests

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

* 🐛 Scan provided config in manual-install

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

* 🤖 Git unshallow before running tests

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

---------

Signed-off-by: mudler <mudler@c3os.io>
2023-02-03 18:41:35 +01:00
Oz Tiram
6e5c87a717 sparkles: custom user bind and ephemeral mounts (#692)
*  custom user bind and ephemeral mounts

Users can now specify custom and ephemeral mounts in cloud-init under
the `install` section, e.g.:

```
users:
 - name: kairos
...
install:
  auto: true
  device: "auto"
  bind_mounts:
  - /mnt/bind1
  - /mnt/bind2
  ephemeral_mounts:
  - /mnt/ephemeral
  - /mnt/ephemeral2
...
```
Ephemeral mounts are mounted as RW - but changes are discarded when the
machine is restart.
Bind mounts will persist changes after restarted.

This is a fix for #210

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

* Add the custom user mount to /cos/run/cos-layout.env

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

* Add docs for custom user mounts in configuration example

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

* Reuse test_install function

DRY the code, change how we call the function install_test

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

* Enable custom mount tests and install tests

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

* Enable tests in CI

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

* Remove duplicate if check

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

* Remove uneeded fmt.Println ...

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

* Use separate label for custom mounts

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

* 🔧 Earthfile - DRY ginkgo

We repeat this a more than twice so just extract to own
target...

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

* Correct return type for  ContainElements

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

* Remove CLOUD_INIT from custom mounts test

This is not needed here.

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

* Fix qemu-test-* earthly targets

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

* 🔧 Fix CPU passing to VM

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

* 🔧 remove apt cache after install qemu

Helps deal with space running out in the CI.

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

* 📖 Document custom mounts

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

---------

Signed-off-by: Oz Tiram <oz@spectrocloud.com>
Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
2023-02-03 11:04:02 +01:00
Jacob Payne
9ff30b4417 require userdata loaded before running install (#742)
Signed-off-by: Jacob Payne <jacob@spectrocloud.com>
Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
2023-01-30 08:12:11 -07:00
Mauro Morales
1f294055a4 sparkles: Integrate documentation to Web UI (#741)
* Integrate documentation to Web UI

Relates to #738

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

* submodule update

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

* Use hugo docker image

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

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-01-28 21:44:24 +01:00
Mauro Morales
2a391a02aa bug: Add broken webui dependency (#737)
Add broken webui dependency

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

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-01-26 13:38:27 +01:00
Mauro Morales
8b45622f87 Revert "Update dependency codemirror to v6" (#736)
Revert "Update dependency codemirror to v6 (#610)"

This reverts commit 8ca997d9685d55f8dd0bb94888d89a515fbf1507.
2023-01-26 11:46:44 +01:00
Ettore Di Giacinto
746135eede sparkles: Add reset hook (#723)
Signed-off-by: mudler <mudler@c3os.io>

Signed-off-by: mudler <mudler@c3os.io>
2023-01-25 13:38:56 +01:00
renovate[bot]
9b16896a1a Update dependency codemirror to v6 (#610)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-25 10:47:59 +01:00
Ettore Di Giacinto
ef93e321fa seedling: Drop references to node-config (#697)
Signed-off-by: mudler <mudler@c3os.io>

Signed-off-by: mudler <mudler@c3os.io>
2023-01-20 19:14:53 +01:00
Ettore Di Giacinto
f052a4a83c seedling: Drop unrequired copy (#683)
Signed-off-by: mudler <mudler@c3os.io>

Signed-off-by: mudler <mudler@c3os.io>
2023-01-20 10:29:35 +01:00
Dimitris Karakasilis
544f28c493 Use new kcrypt/config package (#669)
Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2023-01-18 15:14:57 +02:00
Oz Tiram
b273803338 seedling: Add version information directly from git (#651)
* 🌱 Add version information directly from git

Partial fix for kairos-io/kairos#643.

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

* Update cmd/profile-build/main.go

Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>

Signed-off-by: Oz Tiram <oz@spectrocloud.com>
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
2023-01-16 19:24:11 +01:00
renovate[bot]
3b2dcf172e Update dependency bootstrap to v5 (#626)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-01-13 10:56:37 +01:00
Mauro Morales
112095fa70 seedling: Vendor webui dependencies (#619)
* 🌱 Vendor webui dependencies

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

* Remove GA caching

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

* The deps need to be there before the compilation of the agent

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

* Remove unnecesary tag

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

* Do not build webui-deps

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

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-01-10 14:21:15 +01:00
Ettore Di Giacinto
667fd76d9d seedling: Webui enhancements (#620)
* 🌱 Make sure webui starts on alpine

Also drop to shell when there are no providers

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

* 🌱 Suppress verbose logging on tty

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

* 🌱 Print WebUI address

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

* 🎨 Update banner

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

* 🌱 Refactor, display also interfaces

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

* 🌱 Address feedback from review

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

Signed-off-by: mudler <mudler@c3os.io>
2023-01-08 21:49:23 +01:00
Ettore Di Giacinto
d59892c5c5 seedling: Webui installer (#587)
* 🌱 Add webui

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

* 🌱 Re-read config files after loading bundles

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

* [check-spelling] Update metadata

Update for https://github.com/kairos-io/kairos/actions/runs/3806058276/attempts/1
Accepted in https://github.com/kairos-io/kairos/pull/587#issuecomment-1367859480

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
Signed-off-by: mudler <mudler@c3os.io>

* 🎨 Beautify index page

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

* Do not rerun if we were successful or we are already running

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

* Add syntax highlight

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

* Add error message

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

* Add YAML validation and highlight

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

* Fixup terminal output

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

* Fix newlines

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

* fixups

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

* 🎨 Fixup lint issues

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

* Mark dependencies

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

* Let configure the listening address

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

Signed-off-by: mudler <mudler@c3os.io>
Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
2023-01-05 14:15:05 +01:00
Ettore Di Giacinto
34c8ad827f seedling: Add /usr/local/system/providers to bus (#569)
This allows bundles to install providers in the persistent path
Signed-off-by: mudler <mudler@c3os.io>
2022-12-20 17:22:09 +01:00
mudler
836a039e6b robot: Add agent config bootstrap test
Signed-off-by: mudler <mudler@kairos.io>
2022-11-27 14:34:36 +01:00
Eng Zer Jun
c868bbaf9e art: Move from io/ioutil to io and os packages (#470)
refactor: move from io/ioutil to io and os packages

The io/ioutil package has been deprecated as of Go 1.16 [1]. This commit
replaces the existing io/ioutil functions with their new definitions in
io and os packages.

[1]: https://golang.org/doc/go1.16#ioutil
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2022-11-22 01:11:03 +08:00
Dimitris Karakasilis
9011ce3419 Persist partition label/uuid mapping whenever we encrypt a partition (#408)
Fixes: https://github.com/kairos-io/kairos/issues/380

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

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2022-11-16 13:35:59 +02:00
Dimitris Karakasilis
080a34bd9a Upgrade to latest release if one is not specified and ask user to confirm (#389)
* Upgrade to latest release if one is not specified and ask user to confirm

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

* Re-use existing promptBool function

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

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2022-11-07 20:28:33 +02:00
Santhosh
74bf315829 set env vars in agent (#333) 2022-10-30 12:27:08 +05:30
Ettore Di Giacinto
7e11876248 art: Enhance error handling and display when a config is not loaded from the system (#267) 2022-10-24 16:57:02 +02:00