* 🌱 Return configuration data from the agent
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
* 🤖 Cover query by tests
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Regression introduced in https://github.com/kairos-io/kairos/pull/502.
Now also files like .lst inside the initramfs are globbed inside /oem/90_custom.yaml
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
* 🌱 Glob all configs found
This allows to read all the configs found during scanning - this is especially useful in first boot as it allows
to have separate config file logic split into several files
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
* 🌱 Simplify config merge logic
Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
* WIP
Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
* 🌱 Make the function work
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Signed-off-by: mudler <mudler@kairos.io>
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
Signed-off-by: mudler <mudler@kairos.io>
Co-authored-by: Dimitris Karakasilis <dimitris@karakasilis.me>
* 🐛 Setup / as shared mount on alpine
Since this is not handled in the boot process, we do this in our devoted file to setup the rootfs configuration
Signed-off-by: Ettore Di Giacinto <mudler@kairos.io>
* 🐧 Correctly detect alpine flavors
Signed-off-by: Ettore Di Giacinto <mudler@kairos.io>
Signed-off-by: Ettore Di Giacinto <mudler@kairos.io>
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>
* ⬆️ Bump Kairos repositories
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
* 🐧 Find out which grub to call
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
* 🎨 Do not need to prefix '.' on queries
* ✨ Add recovery to stateapi
* ✨ Add cloudconfig SDK
* ✨ Unify post-install/firstboot hooks
This also adds capabilities to add grub option at first boot rather than
after installation as for bundles.
* 🤖 Optimize tests to wait for state to change
* ✨ Add state api
This is related to https://github.com/kairos-io/kairos/issues/34.
Starts to unify the API to retrieve the state in the sdk to have a common place to query system status information.
* 🤖 Add test
* Update go.mod
* ⚙️ Fine-tune detection of partitions
* 🤖 Add more fine-grained tests
* 🎨 Add /dev/ to partition name
* 🤖 Fixup tests
* ⚙️ Remount accessors
* ✨ Add state partition to cloud-init paths
* 📝 Upper case Kairos in motd
* 🎨 Add mounts sdk
* 🎨 Set grub options via SDK
* 🎨 Make it more idiomatic
* 🐛 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
* 🤖 Add bundles and sysext test
* ✨ Exec bundles also after install
* 🤖 Adapt tests
* 🎨 Create dir only if doesn't exist
* 🎨 Return err on mount
* 🎨 Make bundle errors failure as an option
* 🎨 Minor fixups
* debug
* 🤖 Fix spec
* 🤖 Get correct version for bundle test
* 🎨 Fixups
* 🤖 systemd-sysext is available only on opensuse for now
From now on images built from this repo are the c3os core images.
c3os core images contains only the base image, framework files and the c3os agent.
This also sets up tests accordingly to run only to cover the c3os-agent.
Now there is a `install` section in the config that has the fields that previously where in `c3os` but
were actually only used during install phase.
Also the k3s and c3os config were moved to the provider instead that in the global config.
This changeset also adds a `config_url` and `options` keyword in the c3os config.
Along with that the config logic is changed so the configuration is taken also from boot commands and merged in the final installed config file.
* 🎨 Split off cli into separate binaries
This commit splits off the cli into 3 binaries:
- agent
- cli
- provider
The provider now is a separate component that can be tested by itself
and have its own lifecycle. This paves the way to a ligher c3os variant,
HA support and other features that can be provided on runtime.
This is working, but still there are low hanging fruit to care about.
Fixes#14
* 🤖 Add provider bin to releases
* ⚙️ Handle signals
* ⚙️ Reduce buildsize footprint
* 🎨 Scan for providers also in /system/providers
* 🤖 Run goreleaser
* 🎨 Refactoring