feat: first POC for recipe upgrade

This commit is contained in:
decentral1se 2021-08-10 07:53:05 +02:00
parent 1b03836210
commit 210baf1905
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
2 changed files with 16 additions and 1 deletions

View File

@ -7,6 +7,7 @@ import (
"path"
"sort"
"strconv"
"strings"
"text/template"
"coopcloud.tech/abra/catalogue"
@ -183,6 +184,13 @@ var recipeUpgradeCommand = &cli.Command{
logrus.Fatal(err)
}
if strings.Contains(image, "library") {
// ParseNormalizedNamed prepends 'library' to images like nginx:<tag>,
// postgres:<tag>, i.e. images which do not have a username in the
// first position of the string
image = strings.Split(image, "/")[1]
}
tag, err := tagcmp.Parse(img.(reference.NamedTagged).Tag())
if err != nil {
logrus.Fatal(err)
@ -203,7 +211,7 @@ var recipeUpgradeCommand = &cli.Command{
if len(compatible) == 0 {
logrus.Info(fmt.Sprintf("No new versions available for '%s', '%s' is the latest", image, tag))
break
continue // skip on to the next tag and don't update any compose files
}
var compatibleStrings []string

View File

@ -267,7 +267,14 @@ func UpdateAppComposeTag(recipe, image, tag string) error {
if err != nil {
logrus.Fatal(err)
}
composeImage := reference.Path(img.(reference.Named))
if strings.Contains(composeImage, "library") {
// ParseNormalizedNamed prepends 'library' to images like nginx:<tag>,
// postgres:<tag>, i.e. images which do not have a username in the
// first position of the string
composeImage = strings.Split(composeImage, "/")[1]
}
composeTag := img.(reference.NamedTagged).Tag()
if image == composeImage {