provider-kairos/internal/provider/upgrade.go
Dimitris Karakasilis f01235ea6a
Remove the "stable" filtering in available_release response
because all our versions are considered pre-releases in standard
semantic versioning. E.g.

v1.0.0-k3sv1.23.9-k3s1

this also has a "pre-release" part (everything after the `-`).

Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me>
2022-11-07 10:32:47 +02:00

48 lines
899 B
Go

package provider
import (
"encoding/json"
"strings"
"github.com/google/go-containerregistry/pkg/crane"
"github.com/kairos-io/kairos/pkg/utils"
"github.com/mudler/go-pluggable"
"golang.org/x/mod/semver"
)
func eventError(err error) pluggable.EventResponse {
return pluggable.EventResponse{Error: err.Error()}
}
func ListVersions(e *pluggable.Event) pluggable.EventResponse {
registry, err := utils.OSRelease("IMAGE_REPO")
if err != nil {
return eventError(err)
}
tags, err := crane.ListTags(registry)
if err != nil {
return eventError(err)
}
displayTags := []string{}
for _, t := range tags {
if strings.Contains(t, "k3s") {
displayTags = append(displayTags, t)
}
}
semver.Sort(displayTags)
versions, err := json.Marshal(displayTags)
resp := &pluggable.EventResponse{
Data: string(versions),
}
if err != nil {
resp.Error = err.Error()
}
return *resp
}