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" "path"
"sort" "sort"
"strconv" "strconv"
"strings"
"text/template" "text/template"
"coopcloud.tech/abra/catalogue" "coopcloud.tech/abra/catalogue"
@ -183,6 +184,13 @@ var recipeUpgradeCommand = &cli.Command{
logrus.Fatal(err) 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()) tag, err := tagcmp.Parse(img.(reference.NamedTagged).Tag())
if err != nil { if err != nil {
logrus.Fatal(err) logrus.Fatal(err)
@ -203,7 +211,7 @@ var recipeUpgradeCommand = &cli.Command{
if len(compatible) == 0 { if len(compatible) == 0 {
logrus.Info(fmt.Sprintf("No new versions available for '%s', '%s' is the latest", image, tag)) 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 var compatibleStrings []string

View File

@ -267,7 +267,14 @@ func UpdateAppComposeTag(recipe, image, tag string) error {
if err != nil { if err != nil {
logrus.Fatal(err) logrus.Fatal(err)
} }
composeImage := reference.Path(img.(reference.Named)) 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() composeTag := img.(reference.NamedTagged).Tag()
if image == composeImage { if image == composeImage {