We were ignoring the values in the /etc/elemental/config.yaml file that
we loaded into viper by not reading those values and their keys into the
final spec.
This meant that for example the defautl entry name was being lost as we
generated a new install spec from scratch and ignored those values that
we read on the config
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
* 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>
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>
* 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>
* 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>
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>
* 🐛 Fixup grub option quoting
* ⚙️ Copy discovery to oem if found
* ✨ Add environment block to install
* ⚙️ Use /oem for mount in kcrypt post-hook
* 📝 Update docs with installer env reference
* 🤖 Add test deps
* ⚙️ Be consistent and set env also for post-hooks
* ⚙️ propagate env in post-hooks
Seems in certain condition the datasource is kicking late and serving the datasource not fast as wanted.
We make sure to pull it before install, so we also give chance to convoluted setups to pull configs.
Also wires up autoinstall tests to CI
Move out cmd pieces and split into its own package. Also make sure we reload
plugins before bootstrapping nodes.
Also commons out the agent configuration in a specific YAML file.