Commit Graph

180 Commits

Author SHA1 Message Date
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
Itxaka
74bfd373db 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
c78fee6016 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
scuzhanglei
98ec3aa12c Make kairos-agent support install local bundle (#1296)
Signed-off-by: zhanglei <zhanglei@smartx.com>
2023-04-14 23:33:02 +08:00
Dimitris Karakasilis
863ca11b1d 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
582d84c1c7 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
Itxaka
994c21fdc6 seedling: Add auth flags to upgrade (#1179) 2023-03-24 14:00:33 +01:00
Itxaka
518d29be7d Bump to newer sdk (#1166) 2023-03-18 10:27:18 +01:00
Itxaka
1a18305da4 sparkles: Use kairos-sdk module (#1140) 2023-03-15 15:45:00 +01:00
Oz Tiram
7a13280fb6 bug: Fix link to QR code (#1046)
While working on #687, I noticed that this link is broken.
It's a tiny fix which can be merged without waiting for the actual
fix of the above mentioned issue.

Signed-off-by: Oz Tiram <oz@spectrocloud.com>
2023-03-06 19:16:19 +01:00
Mauro Morales
08feaf3e92 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