From b3e9142fe647b8e7a0ed7ef95dc60bba9c535f34 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Tue, 21 Jun 2022 14:05:57 -0700 Subject: [PATCH] look for MinIO release tag from container labels --- pkg/controller/cluster/artifacts.go | 36 +++++++++++------------------ 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/pkg/controller/cluster/artifacts.go b/pkg/controller/cluster/artifacts.go index f3ea1b5149f..95e6f9bcfe2 100644 --- a/pkg/controller/cluster/artifacts.go +++ b/pkg/controller/cluster/artifacts.go @@ -17,13 +17,11 @@ package cluster import ( - "bytes" "context" "encoding/json" "errors" "fmt" "os" - "os/exec" "strings" "time" @@ -43,21 +41,6 @@ import ( miniov2 "github.com/minio/operator/pkg/apis/minio.min.io/v2" ) -func (c *Controller) fetchTag(path string) (string, error) { - cmd := exec.Command(path, "--version") - var out bytes.Buffer - cmd.Stdout = &out - err := cmd.Run() - if err != nil { - return "", err - } - op := strings.Fields(out.String()) - if len(op) < 3 { - return "", fmt.Errorf("incorrect output while fetching tag value - %d", len((op))) - } - return op[2], nil -} - // minioKeychain implements Keychain to pass custom credentials type minioKeychain struct { authn.Keychain @@ -140,6 +123,20 @@ func (c *Controller) fetchArtifacts(tenant *miniov2.Tenant) (latest time.Time, e return latest, err } + cfg, err := img.ConfigFile() + if err != nil { + return latest, err + } + + tag, ok := cfg.Config.Labels["release"] + if !ok { + tag, ok = cfg.Config.Labels["version"] + } + tag = strings.TrimSpace(tag) + if !ok || tag == "" { + return latest, errors.New("missing tag") + } + ls, err := img.Layers() if err != nil { return latest, err @@ -199,11 +196,6 @@ func (c *Controller) fetchArtifacts(tenant *miniov2.Tenant) (latest time.Time, e srcShaSum := "minio.sha256sum" srcSig := "minio.minisig" - tag, err := c.fetchTag(basePath + srcBinary) - if err != nil { - return latest, err - } - latest, err = miniov2.ReleaseTagToReleaseTime(tag) if err != nil { return latest, err