Commit Graph

21 Commits

Author SHA1 Message Date
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
5f9d126442
Move to use kairos-release instead of os-release (#506) 2024-10-07 11:39:29 +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
40db3d970e
Allow setting the platform of the image to download (#15) 2023-05-17 08:04:20 +00: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
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