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