mirror of
https://github.com/kairos-io/kairos-agent.git
synced 2025-08-21 01:34:03 +00:00
Add registry flag to list-releases (#833)
This commit is contained in:
parent
d85d7985fe
commit
ff63c00dec
@ -35,10 +35,10 @@ func CurrentImage() (string, error) {
|
||||
return artifact.ContainerName(registryAndOrg)
|
||||
}
|
||||
|
||||
func ListAllReleases(includePrereleases bool) ([]string, error) {
|
||||
func ListAllReleases(includePrereleases bool, registry string) ([]string, error) {
|
||||
var err error
|
||||
|
||||
tagList, err := allReleases()
|
||||
tagList, err := allReleases(registry)
|
||||
if err != nil {
|
||||
return []string{}, err
|
||||
}
|
||||
@ -50,10 +50,10 @@ func ListAllReleases(includePrereleases bool) ([]string, error) {
|
||||
return tagList.FullImages()
|
||||
}
|
||||
|
||||
func ListNewerReleases(includePrereleases bool) ([]string, error) {
|
||||
func ListNewerReleases(includePrereleases bool, registry string) ([]string, error) {
|
||||
var err error
|
||||
|
||||
tagList, err := newerReleases()
|
||||
tagList, err := newerReleases(registry)
|
||||
if err != nil {
|
||||
return []string{}, err
|
||||
}
|
||||
@ -167,18 +167,13 @@ func getConfig(sourceImageURL string, dirs []string, upgradeEntry string, strict
|
||||
|
||||
}
|
||||
|
||||
func allReleases() (versioneer.TagList, error) {
|
||||
func allReleases(registry string) (versioneer.TagList, error) {
|
||||
artifact, err := versioneer.NewArtifactFromOSRelease()
|
||||
if err != nil {
|
||||
return versioneer.TagList{}, err
|
||||
}
|
||||
|
||||
registryAndOrg, err := utils.OSRelease("REGISTRY_AND_ORG")
|
||||
if err != nil {
|
||||
return versioneer.TagList{}, err
|
||||
}
|
||||
|
||||
tagList, err := artifact.TagList(registryAndOrg)
|
||||
tagList, err := artifact.TagList(registry)
|
||||
if err != nil {
|
||||
return tagList, err
|
||||
}
|
||||
@ -186,18 +181,13 @@ func allReleases() (versioneer.TagList, error) {
|
||||
return tagList.OtherAnyVersion().RSorted(), nil
|
||||
}
|
||||
|
||||
func newerReleases() (versioneer.TagList, error) {
|
||||
func newerReleases(registry string) (versioneer.TagList, error) {
|
||||
artifact, err := versioneer.NewArtifactFromOSRelease()
|
||||
if err != nil {
|
||||
return versioneer.TagList{}, err
|
||||
}
|
||||
|
||||
registryAndOrg, err := utils.OSRelease("REGISTRY_AND_ORG")
|
||||
if err != nil {
|
||||
return versioneer.TagList{}, err
|
||||
}
|
||||
|
||||
tagList, err := artifact.TagList(registryAndOrg)
|
||||
tagList, err := artifact.TagList(registry)
|
||||
if err != nil {
|
||||
return tagList, err
|
||||
}
|
||||
|
20
main.go
20
main.go
@ -29,6 +29,7 @@ import (
|
||||
"github.com/kairos-io/kairos-sdk/machine"
|
||||
"github.com/kairos-io/kairos-sdk/schema"
|
||||
"github.com/kairos-io/kairos-sdk/state"
|
||||
sdkUtils "github.com/kairos-io/kairos-sdk/utils"
|
||||
"github.com/kairos-io/kairos-sdk/versioneer"
|
||||
"github.com/sanity-io/litter"
|
||||
"github.com/spf13/viper"
|
||||
@ -82,7 +83,7 @@ as a value for the --source flag.
|
||||
|
||||
You can also specify the upgrade image by setting "upgrade.system.uri" for the active image or "upgrade.recovery-system.uri" for the recovery image, in the cloud config.
|
||||
|
||||
To retrieve all the available versions, use "kairos upgrade list-releases"
|
||||
To retrieve all the available versions, use "kairos upgrade list-releases". Use the --registry flag to specify a custom registry to retrieve the versions from, otherwise it will default to quay.io/kairos.
|
||||
|
||||
$ kairos upgrade list-releases
|
||||
|
||||
@ -98,9 +99,22 @@ See https://kairos.io/docs/upgrade/manual/ for documentation.
|
||||
},
|
||||
&cli.BoolFlag{Name: "pre", Usage: "Include pre-releases (rc, beta, alpha)"},
|
||||
&cli.BoolFlag{Name: "all", Usage: "Include older releases"},
|
||||
&cli.StringFlag{Name: "registry", Usage: "Registry to retrieve the releases from. Defaults to quay.io/kairos.", Value: "quay.io/kairos"},
|
||||
},
|
||||
Name: "list-releases",
|
||||
Description: `List all available releases versions`,
|
||||
Before: func(c *cli.Context) error {
|
||||
// Check if the registry is set in the OS release and warn that its deprecated
|
||||
registryAndOrg, err := sdkUtils.OSRelease("REGISTRY_AND_ORG")
|
||||
if err == nil {
|
||||
fmt.Println("Warning: The 'REGISTRY_AND_ORG' OS release variable is deprecated. Use the '--registry' flag instead.")
|
||||
fmt.Println("Warning: Using the values from 'REGISTRY_AND_ORG' instead of the flag.")
|
||||
_ = c.Set("registry", registryAndOrg)
|
||||
|
||||
}
|
||||
fmt.Println(fmt.Sprintf("Using registry: %s", c.String("registry")))
|
||||
return nil
|
||||
},
|
||||
Action: func(c *cli.Context) error {
|
||||
if utils.IsUki() {
|
||||
fmt.Println("You are running in \"trusted boot\" mode")
|
||||
@ -132,13 +146,13 @@ See https://kairos.io/docs/upgrade/manual/ for documentation.
|
||||
|
||||
if c.Bool("all") {
|
||||
fmt.Println("Available releases (all):")
|
||||
tags, err = agent.ListAllReleases(c.Bool("pre"))
|
||||
tags, err = agent.ListAllReleases(c.Bool("pre"), c.String("registry"))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
fmt.Println("Available releases with higher version:")
|
||||
tags, err = agent.ListNewerReleases(c.Bool("pre"))
|
||||
tags, err = agent.ListNewerReleases(c.Bool("pre"), c.String("registry"))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user