Commit Graph

643 Commits

Author SHA1 Message Date
Itxaka
599359ec30
Print the EFI certs in the state command (#98)
* Print the EFI certs in the state command

Signed-off-by: Itxaka <itxaka@kairos.io>

* Fix key for yaml/json output

Signed-off-by: Itxaka <itxaka@kairos.io>

* Fix go.mod

Signed-off-by: Itxaka <itxaka@kairos.io>

* Move things around

Signed-off-by: Itxaka <itxaka@kairos.io>

* Fix format

Signed-off-by: Itxaka <itxaka@kairos.io>

---------

Signed-off-by: Itxaka <itxaka@kairos.io>
2024-04-17 14:57:57 +00:00
Itxaka
3a78f994f1
Print secureboot state in state (#99) 2024-04-17 16:35:00 +02:00
dependabot[bot]
cadae48cdc
Bump github.com/containerd/containerd from 1.7.7 to 1.7.11 (#78)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Itxaka <itxaka.garcia@spectrocloud.com>
2024-04-17 14:08:32 +02:00
renovate[bot]
c9d6200ce0
chore(deps): update actions/checkout action to v4 (#50)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-17 12:03:58 +00:00
Itxaka
d729cc787c
Provide a util method to get the certs in the system (#96) 2024-04-17 14:00:34 +02:00
renovate[bot]
350c251c64
chore(deps): update dependabot/fetch-metadata action to v2 (#94)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-17 00:43:16 +00:00
renovate[bot]
f79cdc7d26
chore(deps): update actions/setup-go action to v5 (#92)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 22:37:26 +00:00
renovate[bot]
832e7cfcf4
fix(deps): update module github.com/urfave/cli/v2 to v2.27.1 (#90)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 03:22:03 +00:00
renovate[bot]
df75cc49c7
chore(deps): update dependabot/fetch-metadata action to v1.7.0 (#89)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-16 00:13:41 +00:00
renovate[bot]
b0637bfd84
fix(deps): update module github.com/mudler/yip to v1.6.0 (#47)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 10:47:24 +00:00
renovate[bot]
0347145725
fix(deps): update module github.com/google/go-containerregistry to v0.19.1 (#43)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 10:46:27 +00:00
renovate[bot]
99dddde820
fix(deps): update module github.com/onsi/ginkgo/v2 to v2.17.1 (#48)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 10:43:58 +00:00
dependabot[bot]
5c2e41f419
Bump github.com/docker/docker (#79)
Bumps [github.com/docker/docker](https://github.com/docker/docker) from 23.0.5+incompatible to 24.0.9+incompatible.
- [Release notes](https://github.com/docker/docker/releases)
- [Commits](https://github.com/docker/docker/compare/v23.0.5...v24.0.9)

---
updated-dependencies:
- dependency-name: github.com/docker/docker
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-15 10:43:28 +00:00
renovate[bot]
7c50ca995e
fix(deps): update module github.com/jaypipes/ghw to v0.12.0 (#29)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 12:40:26 +02:00
renovate[bot]
e5c1190ede
Update module github.com/onsi/gomega to v1.32.0 (#26)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 12:40:06 +02:00
Ettore Di Giacinto
79ef8786e7
Create renovate_auto.yml 2024-04-15 12:39:46 +02:00
renovate[bot]
7084fd2c28
fix(deps): update module github.com/twpayne/go-vfs/v4 to v4.3.0 (#49)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 12:38:27 +02:00
dependabot[bot]
aa98dd7167
Bump google.golang.org/protobuf from 1.30.0 to 1.33.0 (#80)
Bumps google.golang.org/protobuf from 1.30.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-15 12:36:02 +02:00
Ettore Di Giacinto
f43417cf78
Create dependabot_auto.yml 2024-04-15 12:35:13 +02:00
dependabot[bot]
878ce52870
Bump github.com/docker/distribution (#77)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-15 12:31:32 +02:00
Dimitris Karakasilis
66ee3cb60f
Make sure we filter only Images() (#85)
otherwise the methods might fails to parse strange irrelevant tags

Should fix: https://github.com/kairos-io/kairos/issues/2440

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2024-04-12 09:37:53 +03:00
Itxaka
ce8a9394a7
Return empty query instead of null (#84) 2024-04-11 12:42:03 +02:00
Itxaka
cbd699b174
fix check for state reset (#83) 2024-04-08 12:50:40 +02:00
renovate[bot]
9125488d8f Update module github.com/containerd/containerd to v1.7.11 [SECURITY] 2024-03-28 08:58:51 +00:00
Itxaka
9be65995ff
Restore the family value in os-release (#75) 2024-03-27 09:58:03 +01:00
Itxaka
9005687239
Detect autoreset in UKI mode (#74) 2024-03-22 13:11:18 +01:00
Itxaka
e50888d054
Fix parsing cmdline when keys have a dash (#73)
* Fix parsing cmdline when keys have a dash

If a key has a dash we need to add quotes to it before parsing it with
gojq, otherwise it will fail AND the full cmdline will not be parsed!

Signed-off-by: Itxaka <itxaka@kairos.io>

* Actualizar bootcmdline_test.go

---------

Signed-off-by: Itxaka <itxaka@kairos.io>
2024-03-18 17:28:31 +01:00
Itxaka
1c55cf24d3
This makes it so it implements other logger interfaces fully (#72) 2024-03-01 11:53:08 +01:00
Itxaka
b3dfedfacb Add milliseconds to log files
Signed-off-by: Itxaka <itxaka@kairos.io>
2024-03-01 09:35:17 +01:00
Mauro Morales
ab666f1b15
Check role of efi conf with prefix (#71)
Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
2024-02-29 19:56:53 +01:00
Itxaka
e0ea9975a4
New logger (#70) 2024-02-28 09:29:02 +01: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
89782e9933
Support identifying recovery via recovery-mode stanza (#68) 2024-02-01 15:22:24 +01:00
Itxaka
c21aa7f149
Expand shim locations (#67) 2024-01-12 10:20:53 +01:00
Mauro Morales
f665d930e2
Allow k3s to be downgraded when kairos version is higher
because we may cut an rc in which we try some newer k3s version but we
decide to not release a stable version with that, so we revert to an
older k3s version when we release stable.

Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com>
2024-01-08 16:57:03 +02:00
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>
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) 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>
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>
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>
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
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>
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>
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