* 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>
* 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>
* 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>
* 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>
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>