Commit Graph

36 Commits

Author SHA1 Message Date
Itxaka
228b87bc8a
Improve GetImage platform handling (#557) 2025-02-28 09:49:14 +00:00
William Rizzo
716d3f4fca
Add K0s utility functions and cleanup (#546)
* adding utils components to handle k0s

Signed-off-by: William Rizzo <william.rizzo@gmail.com>

* Adding systemd units for k0s

Signed-off-by: William Rizzo <william.rizzo@gmail.com>

* fix k0s services

Signed-off-by: William Rizzo <william.rizzo@gmail.com>

* Remove shutdown now, it will be addressed later

see kairos-io/kairos#3126

Signed-off-by: Mauro Morales <contact@mauromorales.com>

* Revert FindCommand changes

This function is not specific for k3s hence also not for k0s

Signed-off-by: Mauro Morales <contact@mauromorales.com>

* Remove utils.Version()

For versioning we now use the versioneer package also in this repo. I
couldn't find any instance of components depending on utils.Version() so
I think it's safe to remove

Signed-off-by: Mauro Morales <contact@mauromorales.com>

* Revert changes to the go.mod & go.sum files

Signed-off-by: Mauro Morales <contact@mauromorales.com>

* Revert "Remove utils.Version()"

This reverts commit c5f48d96d3.

* Remove utils.Version()

This is not being used anymore, use Versioneer package instead

Signed-off-by: Mauro Morales <contact@mauromorales.com>

* Update machine/machine.go

Co-authored-by: Dimitris Karakasilis <dimitris@karakasilis.me>

---------

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>
Co-authored-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2025-01-14 13:43:48 +01:00
Itxaka
0b506b6684
Revert "Add raw disk utils"
This reverts commit 6921f6eb22.
2025-01-02 15:25:51 +01:00
Itxaka
6921f6eb22
Add raw disk utils
Provides raw disk utils to transform a raw disk into a GCE or Azure disk
Provieds a new constants pkg to store constants that cn be used across
all projects
Expands the KairosFs interface to be in line with what its used across
the projects

Signed-off-by: Itxaka <itxaka@kairos.io>
2024-12-18 12:15:29 +01:00
Itxaka
5f9d126442
Move to use kairos-release instead of os-release (#506) 2024-10-07 11:39:29 +02:00
Nianyu Shen
851cc01bc9
accept custom cluster config locations (#153)
* accept custom cluster config locations

Signed-off-by: Nianyu Shen <xiaoyu9964@gmail.com>

* use yaml.v3

Signed-off-by: Nianyu Shen <xiaoyu9964@gmail.com>

* go mod tidy

Signed-off-by: Nianyu Shen <xiaoyu9964@gmail.com>

* added custom root and config flag in cluster properties

* remove ClusterRootPath

Signed-off-by: Nianyu Shen <xiaoyu9964@gmail.com>

* go mod tidy

Signed-off-by: Nianyu Shen <xiaoyu9964@gmail.com>

---------

Signed-off-by: Nianyu Shen <xiaoyu9964@gmail.com>
Co-authored-by: Piyush Kumar <k17piyush@gmail.com>
2024-08-21 09:35:02 +02:00
Nianyu Shen
ea24c95923
add support for custom transport in oci image extractor (#140) 2024-06-05 11:18:04 +02:00
Nianyu Shen
9b9e468a44
add auth support for oci image extractor (#131) 2024-06-05 09:23:51 +02:00
Itxaka
a0c7d13520
Port signature utils to sdk from agent (#117)
It was added first to agent as it was needed for upgrade but if we are
gonna reuse this to check for signature validity in random files, we
better have it on sdk so we can use it both on agent and immucore and
works exactly the same

Signed-off-by: Itxaka <itxaka@kairos.io>
2024-06-04 08:31:00 +02:00
Dimitris Karakasilis
f666b18370
2226 detect boot state (#69)
* Detect boot state using suffix in UKI mode

This assumes that the files are named correctly on installation/upgrades
etc (pending implementation)

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* WIP

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Refactor NewRuntime and add logging

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

---------

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2024-02-19 12:10:31 +02:00
Itxaka
c21aa7f149
Expand shim locations (#67) 2024-01-12 10:20:53 +01:00
Itxaka
eaa9d3ce04 Add 2 utils to get efi/shim paths
Signed-off-by: Itxaka <itxaka@kairos.io>
2023-12-30 12:46:01 +01:00
Dimitris Karakasilis
74a57eb673
Make "standard" flavor os-release variables optional (#62)
* Make "standard" flavor os-release variables optional

and change ARCH to TARGETARCH to simplify how it's passed down from
Earthly in the kairos repo

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Add SOFTWARE_VERSION_PREFIX in os-release

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Accept SOFTWARE_VERSION_PREFIX in cli

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Fix test

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

---------

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2023-12-14 16:57:03 +02:00
Dimitris Karakasilis
29fc4851f4
1999 introduce versioneer (#59)
* Introduce versioneer package

to replace the naming.sh script in kairos-io/kairos

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement BootableName for bootable artifacts

also introduce Version and SoftwareVersion fields

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Refactor to introduce commondName

to be used with ContainerName

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement ContainerName and add missing tests

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Introduce NewArtifactFromJSON

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Introduce NewFromOSRelease

to be used within a Kairos image

See also discussion: https://github.com/kairos-io/kairos/discussions/2035

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Introduce 3 methods to find releases (TODO: implement them)

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Use existing OSRelease method and remove the new one

the existing method had to be adapted to accept and optional path to
the os-release file to allow the tests to pass a tmp file.

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Introduce TagList and some basic filtering of tags

also introduce RegistryInspector which finds tags from a container
registry for a specific repository.

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement OtherVersions method of TagList

to return different Kairos versions of the exact same artifact.

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* [WIP] Add TODOs for 2 more methods

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement Sorted() method on TagList

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement RSorted

and change OtherVersions test to ensure it also returns older versions too.

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement NewerVersions method

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Make json file pretty

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement OtherSoftwareVersions and NewerSoftwareVersions

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement NewerAnyVersions and OtherAnyVersions

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Make TagList a struct so that it has an "Artifact" field

Now the Artifact has a TagList method that returns a TagList which is
associated to the specific Artifact.

All methods of TagList are now available to the Artifact.

E.g.
tagList, _ := artifact.TagList("quay.io/kairos")
tagList.NewerAnyVersion(...)

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Use the field Artifact in TagList methods instead of needing an argument

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Fix linting errors

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Restructure files and introduce main.go for versioneer

to provide a user interface that will replace naming.sh script of the
kairos repository

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Fix imports

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement bootable-artifact-name cli command

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement BaseContainerName method

Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>

* Create a wrapper command base-container-artifact-name

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Extract the cli command to the packag to be re-used in kairos-agent

Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>

* Go back to original package structure

and just nest the cli

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Move the versioneer "main" package outside the tree

to allow it to be imported in kairos-agent

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Allow setting the cli flags using environment variables

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement os-release-variables command

to replace the logic in Earthly and Dockerfiles

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Fix test

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Fix TODO in Readme

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Dry the creation of the Artifact

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

---------

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
Co-authored-by: Mauro Morales <mauro.morales@spectrocloud.com>
Co-authored-by: Dimitris Karakasilis <dimitris@spectrocloud.com>
2023-12-05 15:46:08 +02:00
Mauro Morales
9bbc110598
Re-introduce local runner (#57)
* Re-introduce local runner

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Refactor code, remove LocalRunner

and allow both "container:" and "run:" types to use local archives

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Treat "docker:" bundler prefix the same as "container:"

as per the docs:
https://kairos.io/docs/advanced/bundles/#bundle-types

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Add TODO tests

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Remove the not-needed LocalRunner

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Implement tests

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

* Remove TODO

Won't do now to avoid introducing bugs

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
Co-authored-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2023-12-05 12:09:10 +02:00
Itxaka
2ecbdbbd3f
Add init system information to state output (#56)
Signed-off-by: Itxaka <itxaka@kairos.io>
2023-10-18 17:16:12 +02:00
Itxaka
fd9cffde95
Properly calculate image size (#45) 2023-08-17 13:45:07 +03:00
Itxaka
9e6ea0760a
Add a method to get the image size (#39) 2023-08-07 16:40:31 +02:00
Itxaka
fe26d1de91
Add cleanstack util (#35) 2023-07-19 21:44:12 +02:00
Itxaka
03c6a9b8f5 Drop debug prints
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-06-20 12:21:58 +02:00
Itxaka
df990bf49a
Improve image extractor (#32) 2023-06-20 09:43:43 +03:00
Itxaka
40db3d970e
Allow setting the platform of the image to download (#15) 2023-05-17 08:04:20 +00:00
Itxaka
ee38ccde54
Improve bundles for container and run to not use luet (#13)
This allows us to pull natively and support multiarch and auth out of
the box

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-05-16 17:59:04 +02:00
Mauro Morales
0c9d2bd9e6
🌱 Read os-release attributes using kairos prefix (#12)
* Read os-release attributes using kairos prefix

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Refactor other functions to use OSRelease

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

* Misc refactoring

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-04-14 11:40:28 +02:00
Itxaka
77ed7ba298 🐛 Add missing GetInterfaceIP
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-29 13:46:00 +02:00
Itxaka
2c52e1cda4 🐛 Recover string utils
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-29 13:43:01 +02:00
Itxaka
7a0ac7c663 🐛 Restore missing token utils
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-29 13:34:24 +02:00
Itxaka
ad3c0f6cd6 Add listToOutput misc func
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-17 14:58:04 +01:00
Itxaka
acf490ffed Add misc system func
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-17 14:54:30 +01:00
Itxaka
d2375598d6 Add Prompt and PrintBanner
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-17 14:51:21 +01:00
Itxaka
dfd60b9a02 Add Shell misc util
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-17 14:49:17 +01:00
Itxaka
ec6c3f7443 Add OnSignal misc util
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-17 14:48:23 +01:00
Itxaka
58ddd1c5df Add SetEnv misc util
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-17 14:45:04 +01:00
Itxaka
b3256fa436 Adapt machine to new sdk paths and format
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-17 14:00:02 +01:00
Ettore Di Giacinto
7a148fe5bb
🌱 pass by the container image used in run.sh (#8)
Signed-off-by: mudler <mudler@c3os.io>
2023-03-17 08:16:09 +01:00
Itxaka
3163cfbac0 Extract sdk into its own lib
This had some side effects:

 - Have to add some utils from the kairos/machine modules, which IMHO
   should not be there, they should be here if the are generic enough
 - Dropping the sdk dir, just have the modules in the root dir

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-03-15 10:56:11 +01:00