Commit Graph

408 Commits

Author SHA1 Message Date
Dimitris Karakasilis
e671e8d9d4 Don't require "Variant" to be set when generating base container names (#65)
Part of: https://github.com/kairos-io/kairos/issues/2104

(Needs to be bumped in kairos-agent to complete the story)

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
v0.0.22
2024-01-05 10:18:54 +02: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
Itxaka
a99f8bb487 Expand config schema (#64) v0.0.21 2023-12-18 15:39:09 +01:00
Dimitris Karakasilis
78aa874172 Put the os-release variable values in quotes (#63)
otherwise the files can't be "source"d

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2023-12-18 14:44:47 +02: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>
v0.0.20
2023-12-14 16:57:03 +02:00
Dimitris Karakasilis
a8707c113a 1999 list releases (#61)
* Add registry and org to the os-release file

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

* Extract the software version prefix to a field

and make sure everything still works.
Also implement NoPrereleases method to filter out Kairos pre-releases

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

* Store RegistryAndOrg on the TagList

to be used in the new PrintImages method that prints full image URLs

This method will be used in the "kairos-agent upgrade list-releases" command

Also fix some relic softarePrefix arguments (Artifact now has that info)

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

* Implement sorting in a semver manner

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

* Implement FullImages method that returns the tags as full images

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

---------

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
v0.0.19
2023-12-08 14:01:57 +02:00
Mauro Morales
5a078882be Remove variant from base tag (#60) 2023-12-07 12:03:02 +01: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>
v0.0.18
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>
v0.0.17
2023-12-05 12:09:10 +02:00
Dimitris Karakasilis
f73090dca2 Don't parse userdata and userdata.yaml (#58)
yip writes both files with the same content when userdata passes
validation (schema.Load):

48147fae9d/pkg/plugins/datasource.go (L246-L252)

This means we shouldn't match `userdata` since the `userdata.yaml` will
be used due to the extension.

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

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
v0.0.16
2023-11-23 16:37:37 +02:00
renovate[bot]
f37fc75b5d fix(deps): update module github.com/swaggest/jsonschema-go to v0.3.62 2023-10-30 16:26:42 +00:00
Tyler Gillson
196f133f26 feat: add ProviderOptions to Cluster (#53)
Signed-off-by: Tyler Gillson <tyler.gillson@gmail.com>
2023-10-30 17:22:46 +01:00
Itxaka
2ecbdbbd3f Add init system information to state output (#56)
Signed-off-by: Itxaka <itxaka@kairos.io>
v0.0.15
2023-10-18 17:16:12 +02:00
renovate[bot]
7d4292eaa6 fix(deps): update module github.com/containerd/containerd to v1.7.7 2023-10-17 22:35:38 +00:00
renovate[bot]
0bb4e40b4f fix(deps): update module github.com/santhosh-tekuri/jsonschema/v5 to v5.3.1 2023-10-04 18:50:31 +00:00
Mauro Morales
56431eb91a Configure automerge for patch updates 2023-10-04 17:37:10 +02:00
Itxaka
8f54324703 Allow passing readers to collector (#52) 2023-09-26 09:32:53 +02:00
Itxaka
699aa6203c Read the first ten lines of a config to check for headers (#51)
There could be comments before the cloud-config header or jinja
expressions as we found already[0] so our current header check its a bit
strict.

This patch makes it so er read the first ten lines of the config source,
check for # at the start and then check for the headers as we did
before, so we are a bit more letinent in case the cloud-config header is
not the first thing in the file

Signed-off-by: Itxaka <itxaka@kairos.io>
2023-09-15 20:59:31 +02:00
renovate[bot]
5919d1a466 fix(deps): update module github.com/swaggest/jsonschema-go to v0.3.59 (#36)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 16:47:54 +02:00
renovate[bot]
52e0cbd60e fix(deps): update module github.com/itchyny/gojq to v0.12.13 (#24)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 16:47:41 +02:00
renovate[bot]
42c18546e0 fix(deps): update module github.com/containerd/containerd to v1.7.5 (#25)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 16:47:22 +02:00
Itxaka
9e420d9015 Add KairosFS type and detectBoot with FS (#46) v0.0.14 2023-09-01 15:31:04 +03:00
Itxaka
fd9cffde95 Properly calculate image size (#45) v0.0.13 2023-08-17 13:45:07 +03:00
renovate[bot]
f6ec86180b fix(deps): update module github.com/onsi/ginkgo/v2 to v2.11.0 (#23)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 18:33:06 +02:00
renovate[bot]
c1d4d698f2 fix(deps): update module github.com/mudler/yip to v1.3.0 (#19)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 18:31:03 +02:00
renovate[bot]
3af1fbf2f8 fix(deps): update module github.com/zcalusic/sysinfo to v1 (#22)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 18:29:11 +02:00
Itxaka
9e6ea0760a Add a method to get the image size (#39) v0.0.12 2023-08-07 16:40:31 +02:00
Itxaka
7203787534 Semi force the umount of oem when dealing with mounts (#40) 2023-08-07 16:35:15 +02:00
Mauro Morales
396c5553ca 🐛 Wrong deep merge when array contains maps (#38)
* Do not try to smart merge arrays, but just append them

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

* Fix tests

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

* Rewording for tests

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

* Rename function to match what is doing after refactoring

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

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
v0.0.11
2023-08-01 10:08:21 +02:00
Itxaka
61e5a4d261 Extend root schema (#37)
Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
v0.0.10
2023-07-25 12:38:46 +02:00
Itxaka
fe26d1de91 Add cleanstack util (#35) 2023-07-19 21:44:12 +02:00
renovate[bot]
481a189471 fix(deps): update module github.com/pterm/pterm to v0.12.63 (#20)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 21:24:52 +02:00
Mauro Morales
05770e9f5c schedule renovate after hours (#34)
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-07-10 10:05:28 +02:00
Dimitris Karakasilis
6d60329315 Allow the users to apply arbitrary images in framework-profile.yaml (#33)
so that they can force an older or newer release of one specific package

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2023-06-23 12:12:18 +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
dcf352a009 Bring collector into the sdk (#31) v0.0.8 2023-06-14 13:01:06 +02:00
Mauro Morales
cd5173edb8 Add issue template (#30)
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-06-14 08:59:09 +02:00
Itxaka
dd4fbb8014 Identify lvm partitions for state (#28) v0.0.7 2023-06-07 14:48:27 +02:00
Itxaka
425e07d8c7 Add noFormat to install schema (#27) v0.0.6 2023-06-07 11:13:13 +02:00
Mauro Morales
c90740d747 Move schema validation to sdk to be used by different repos (#21)
* Move schema validation to sdk to be used by different repos

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

* remove unused

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

* fix recommendations

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

---------

Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2023-05-26 12:32:01 +02:00
Itxaka
3524a69e57 Remove leftover print (#18) v0.0.5 2023-05-23 15:13:41 +02:00
Itxaka
f5982c9d5a Try to create rootpath before extracting image if it doesnt exist (#17) v0.0.4 2023-05-18 12:17:40 +02:00
Itxaka
40db3d970e Allow setting the platform of the image to download (#15) v0.0.3 2023-05-17 08:04:20 +00:00
renovate[bot]
60c5f9c587 fix(deps): update module github.com/pterm/pterm to v0.12.61 (#11)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Itxaka <itxaka.garcia@spectrocloud.com>
2023-05-17 09:45:37 +02:00
renovate[bot]
4499cee97d fix(deps): update module github.com/onsi/ginkgo/v2 to v2.9.5 (#9)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-17 09:45:17 +02:00
renovate[bot]
2d2962a725 fix(deps): update module github.com/google/go-containerregistry to v0.15.2 (#16)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-17 09:45:04 +02:00
renovate[bot]
0aa1d3243e chore(deps): update actions/setup-go action to v4 (#6)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-17 00:13:50 +02:00
renovate[bot]
d9a4f04744 fix(deps): update module github.com/mudler/yip to v1 (#2)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-17 00:13:04 +02: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