Commit Graph

37 Commits

Author SHA1 Message Date
Mauro Morales
65e49b898b commit before using cursor
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2025-03-26 15:19:24 +01:00
Mauro Morales
b38dbd7855 Remove unnecessary struct
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2025-03-26 15:19:23 +01:00
Mauro Morales
b2a3963a5e Move common
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2025-03-26 15:19:22 +01:00
Mauro Morales
1a74cddf69 Fix bug with HA setup
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2025-03-26 15:19:20 +01:00
Mauro Morales
adc755a455 Rename master to control plane
This follows kubernetes components terminology [1]

[1]: https://kubernetes.io/docs/concepts/overview/components/

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2025-03-26 15:18:50 +01:00
Mauro Morales
c5c4badc1d Extend p2p functionality to k0s (#691)
Adds support for mesh network with k0s distro. The detection of the
distro is done by either having explicit config or by the binary
installed. By default, it uses k3s, for backwards compatibility.

Additionally, I refactored to split responsibilities. `master.go` will
have generic logic on how the steps to setup a master node, and
`worker.go` a worker node. It does so by interacting with the `K8sNode`
interface, and the detailed logic on how to do it for each distribution
has been moved to `k3s.go` and `k0s.go` respectively. This should make
it much simpler to debug or add new distributions.

Tests:

- [x] k3s single
- [x] k3s multi manual
- [x] k3s p2p auto
- [x] k0s single
- [x] k0s multi manual
- [x] k0s p2p auto

Covered:

- https://kairos.io/docs/examples/multi-node-p2p/
- https://kairos.io/docs/examples/multi-node/
- https://kairos.io/docs/examples/single-node/

---------

Signed-off-by: Mauro Morales <contact@mauromorales.com>
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2025-03-12 11:33:37 +01:00
Mauro Morales
d74f5c86b5 Fix passing arguments to k3s agent and k0s worker (#686)
Signed-off-by: Mauro Morales <contact@mauromorales.com>
2025-01-27 16:35:21 +01:00
Mauro Morales
2ec8886731 Run bootstrap if k0s config is present (#681)
And read args from both k3s or k0s

Signed-off-by: Mauro Morales <contact@mauromorales.com>
2025-01-24 16:18:27 +01:00
William Rizzo
5b9bdda87d Adding handling of k0s (#678)
This PR is dependent of
https://github.com/kairos-io/kairos-sdk/pull/546, and it adds the
possibility to deploy k0s instead of k3s.

refactored `oneTimeBootstrap()` to handle k0s and k3s.
Added `K0s` type to bootstrap `config` package
added k0s to provider `package`` InteractiveInstall()` and check for
mutual exclusivity

CC: @mauromorales

---------

Signed-off-by: William Rizzo <william.rizzo@gmail.com>
Signed-off-by: Mauro Morales <contact@mauromorales.com>
Co-authored-by: Mauro Morales <contact@mauromorales.com>
2025-01-14 17:13:17 +01:00
Itxaka
bfb58a4de7 Use kairos logger (#637) 2024-09-18 10:57:35 +02:00
Itxaka
498b7429a7 Bump deps (#601) 2024-07-15 11:26:04 +02:00
Dimitris Karakasilis
05d3833dd9 Don't write an empty k3s service on disk (#519)
just use the one that was created by the k3s installer script

Fixes: https://github.com/kairos-io/kairos/issues/2125

Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>
Co-authored-by: Mauro Morales <mauro.morales@spectrocloud.com>
2024-01-10 17:11:36 +01:00
Mauro Morales
9128c99233 Keep original k3s init file for openrc (#514)
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

relates to kairos-io/kairos#2108

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2024-01-03 19:43:25 +01:00
Itxaka
1b7876c513 Create empty k3s service file (#495) 2023-11-17 18:40:31 +01:00
Itxaka
3b1a697180 Drop elemental calls (#478)
No longer used, move to kairos-agent

Also drop sha iso calculation as its done by the iso builder
automatically

Fixes https://github.com/kairos-io/kairos/issues/1798

Signed-off-by: Itxaka <itxaka@kairos.io>
2023-09-08 14:40:11 +02:00
Mauro Morales
9fa3d9f799 Bump kairos version (#446)
Tests are green and did a manual QA and it's working properly. I do have
two questions which I put as comments

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-07-10 18:10:33 +02:00
Mateusz Urbanek
72c01e2657 fix: bump go.mod path to v2 (#431)
The path in `go.mod` should be ended in `/v2` suffix, as per [go.mod
module version numbers](https://go.dev/doc/modules/version-numbers).

---------

Signed-off-by: Mateusz Urbanek <mateusz.urbanek.98@gmail.com>
2023-07-03 21:07:41 +02:00
Itxaka
f7d5d81013 ⬆️ Bump deps to use kairos-sdk (#299)
First time bumping the provider, be gentle

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

---------

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-31 14:31:54 +02:00
mudler
8338402905 🌱 Be consistent and respect MinNodes in the service
Signed-off-by: mudler <mudler@c3os.io>
2022-12-27 20:27:15 +01:00
Ettore Di Giacinto
05213f04b0 🐛 Fixup detection if block is missing (#143)
p2p block is optional, thus we might panic otherwise here

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

Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
2022-12-22 09:19:24 +01:00
Ettore Di Giacinto
4857ff8879 🌱 Change config to be more user friendly
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-12 15:38:21 +01:00
Ettore Di Giacinto
e193a3f3b2 🌱 Be consistent, there is no kairos block anymore
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-12 13:44:49 +01:00
Ettore Di Giacinto
79fd3633a5 ⚠️ Change P2P configuration setting reference
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-09 16:36:30 +01:00
Ettore Di Giacinto
6b13d26a33 🌱 Fix linting
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-08 10:54:47 +01:00
Ettore Di Giacinto
1e56ddef74 🌱 Handle setup VPN manually if required
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-07 19:47:00 +01:00
Ettore Di Giacinto
5c5c432594 🌱 Do setup API only if a kairos block is defined
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-07 16:41:24 +01:00
Ettore Di Giacinto
4703feefd8 🌱 Propagate back roles
If we keep the API started, we want to keep streaming roles in case of completely disconnection between the nodes.
This guarantees that we keep streaming out our roles nevertheless of what happens

Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-07 14:32:48 +01:00
Ettore Di Giacinto
8eb8b650b0 🌱 Keep into account that a Kairos block is optional
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-07 13:57:16 +01:00
Ettore Di Giacinto
ab68c1d333 🌱 Fire oneTimeBootstrap when a token is not defined
This doesn't change the documented flow, but makes sure that if someone did defined a network token and also enables k3s manually it still tries to co-ordinate over p2p.

Optionally, a `skip_auto` is introduced to manually bootstrap the node

Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-07 11:35:17 +01:00
Ettore Di Giacinto
db3a4bc287 Add HA p2p support
Fixes: https://github.com/kairos-io/kairos/issues/2

Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-06 22:15:12 +01:00
mudler
0517b1e766 Add kubeVIP support with p2p hybrid mode
In this way, the p2p API will just run the co-ordination to setup KubeVIP automatically
to the new cluster.

Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-05 11:53:33 +01:00
mudler
c64a19f1d4 🌱 Refactor roles
Signed-off-by: mudler <mudler@c3os.io>
Signed-off-by: Ettore Di Giacinto <mudler@mocaccino.org>
2022-12-05 11:53:33 +01:00
mudler
f0be8785f0 🐛 Debug
Signed-off-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
2022-11-28 14:37:08 +00:00
Ettore Di Giacinto
4a17cff5e0 🎨 Finalize rebranding
there were few places that still had c3OS references.
2022-09-19 09:59:28 +00:00
Ettore Di Giacinto
359ed271c7 🎨 Rebrand
See: https://github.com/c3os-io/c3os/issues/88
2022-09-16 15:42:45 +00:00
mudler
683787bd7e 🎨 Move vpn services here 2022-08-16 12:46:21 +00:00
mudler
8b8f28c91a 🎨 Initial import of provider code 2022-08-16 08:27:04 +00:00