Commit Graph

300 Commits

Author SHA1 Message Date
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
Santhosh
c7c68c222f set configScanDir as package scoped var (#264)
set config.Install.env variables in environment

adding env to config to use across all stages

switch to config.Scan to read config
2022-10-24 16:43:23 +05:30
Ettore Di Giacinto
0af13f655f sparkles: enhancements (#263)
* 🎨 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
2022-10-24 08:34:49 +02:00
Ettore Di Giacinto
5893294c54 sparkles: state api sdk (#262)
*  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
2022-10-23 20:22:32 +02:00
Ettore Di Giacinto
5c4e29f3d3 sparkles: Minor enhancements (#239)
* 🐛 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
2022-10-18 07:45:07 +02:00
Ettore Di Giacinto
78bcb65cb6 sparkles: Add kcrypt to images (#195)
*  Add kcrypt to images

This adds the dracut module and the binary to the images.

Related to https://github.com/kairos-io/kairos/issues/184

*  Add Kcrypt post-install hook

Fixes https://github.com/kairos-io/kairos/issues/184
2022-10-07 13:36:32 +02:00
Ettore Di Giacinto
a8875f6b4f sparkles: Add bundles to post-install hooks (#171)
* 🤖 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
2022-10-03 00:16:01 +02:00
Jacob Payne
b1396c541b added support for fast mode (#168) 2022-09-30 17:23:10 -07:00
Ettore Di Giacinto
0d88ec39a9 sparkles: Add reset event for sdk (#143) 2022-09-23 17:20:23 +02:00
Ettore Di Giacinto
e25526cfc9 art: Rebranding (#130)
See: https://github.com/c3os-io/c3os/issues/88
2022-09-17 18:43:51 +02:00
Ettore Di Giacinto
0763c820f2 sparkles: Auto-detect device with 'auto' 2022-09-10 13:01:24 +00:00
Ettore Di Giacinto
d7e6e9efa4 sparkles: Add manual-install 2022-09-10 13:01:03 +00:00
Ettore Di Giacinto
b7fec41fe3 sparkles: Boot options (#91)
*  Add grub_options to config

Split post-install into hooks

* 🤖 Adapt test to latest releases
2022-09-08 15:39:26 +02:00
Ettore Di Giacinto
01c6a99577 art: Make Initialize more idiomatic 2022-08-20 21:48:54 +00:00
Ettore Di Giacinto
6b5c4d416c bug: Make bus Initialize idempotent, add Reload 2022-08-20 21:47:16 +00:00
Ettore Di Giacinto
1254c09745 bug: fixup reset and interactive-install branding text 2022-08-20 21:27:04 +00:00
Ettore Di Giacinto
4ebe503e1b robot: Add bundles test suite, fixup linting issues 2022-08-18 15:19:15 +00:00
Ettore Di Giacinto
6fc2693229 art: Always stream out an event 2022-08-18 13:32:33 +00:00
Ettore Di Giacinto
fe03afa167 art: Expose to sdk upgrade/list events 2022-08-18 13:12:05 +00:00
Ettore Di Giacinto
7fb4c70630 art: Add --debug to upgrade 2022-08-17 08:31:39 +00:00
Ettore Di Giacinto
db2bcc0451 art: Write only version to VERSION in os-release
Add FLAVOR and VARIANT to handle those separately, this should also fix upgrades.

Fixes https://github.com/c3os-io/c3os/issues/80
2022-08-17 08:02:18 +00:00
mudler
4bd6a5a8d5 robot: Run only relevant tests, push to core-*
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.
2022-08-12 15:49:41 +02:00
mudler
122d29cbac art: Expose interactive install to providers
In this way install can be driven from providers too

Part of: https://github.com/c3os-io/c3os/issues/68
2022-08-12 12:21:12 +02:00
mudler
b17ccae684 art: Move out recovery
Will be part of the provider

Part of: https://github.com/c3os-io/c3os/issues/68
2022-08-12 09:41:17 +02:00
mudler
572d216ea2 art: Drop CLI from c3os codebase
Part of: https://github.com/c3os-io/c3os/issues/68
2022-08-11 13:31:00 +02:00
mudler
3c6484de14 art: Drop provider from c3os code
Part of: https://github.com/c3os-io/c3os/issues/68
2022-08-10 18:56:07 +02:00
Ettore Di Giacinto
b19a93e984 Merge pull request #55 from c3os-io/feature/cluster-provider
Abstract Cluster Provisioning with Cluster Plugins
2022-08-09 08:01:54 +02:00
Ettore Di Giacinto
7ac3c30747 art: Make linter happy 2022-08-08 08:32:11 +00:00
Ettore Di Giacinto
7052c49621 art: Check out if we have to create the log file 2022-08-08 08:20:13 +00:00
Ettore Di Giacinto
f185430669 art: Allow the agent to self-restart on error
In init systems that don't support automatic restart this might be handy when we fail because we boot up too fast.

This is an attempt to fix https://github.com/c3os-io/c3os/issues/47
2022-08-08 08:15:15 +00:00
Ettore Di Giacinto
b62a3fc892 robot: Make linter happy 2022-07-25 22:26:10 +00:00
Ettore Di Giacinto
1a12a26876 Update internal/machine/openrc/unit.go
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
2022-07-25 23:49:16 +02:00
DQ
51f0251685 Apply suggestions from code review
Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
Signed-off-by: DQ <daniel@chaosengine.net>
2022-07-21 01:11:15 -07:00
Daniel Quinlan
7b87cc755f naive attempt at appending to /etc/rancher/k3s/k3s.env 2022-07-20 21:13:27 -07:00
Ettore Di Giacinto
09b41735f4 gear: Be sure to run datasource before install
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
2022-07-21 21:38:07 +00:00
Ettore Di Giacinto
6c08ac78a8 art: Make sure the agent doesn't start when performing auto-installs 2022-07-20 22:31:40 +00:00
Ettore Di Giacinto
602d086ce4 art: Refactor agent code
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.
2022-07-18 22:02:49 +00:00
Ettore Di Giacinto
ebd8b26729 gear: Add /usr/local/bin/k3s to discovery path 2022-07-17 17:38:42 +00:00
Ettore Di Giacinto
4e7802346f gear: Setup log rotation 2022-07-17 08:42:12 +00:00
Ettore Di Giacinto
adce182ea2 art: Refactor out config sections
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.
2022-07-16 20:47:55 +00:00
Ettore Di Giacinto
fc21b17f0c robot: Add bundle test 2022-07-16 14:29:11 +00:00
Ettore Di Giacinto
22aaaee52c robot: Try to fixup tests 2022-07-16 14:28:55 +00:00
Ettore Di Giacinto
0142f031dc gear: Set default sysctl values from cloud config 2022-07-16 14:03:57 +00:00
Ettore Di Giacinto
a5abe05fa8 gear: Bundles fixups 2022-07-16 13:20:38 +00:00
Ettore Di Giacinto
48879da65b robot: Add installer tests 2022-07-14 16:17:22 +00:00
Ettore Di Giacinto
9679421d20 gear: Add c3os bundles 2022-07-13 22:23:47 +00:00
Ettore Di Giacinto
49e4bd9503 gear: Extract netboot artifacts
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.
2022-07-07 16:57:38 +00:00
Ettore Di Giacinto
63cd28d1cb Split off cli into separate binaries (#37)
* 🎨 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
2022-07-04 22:39:34 +02:00