From 56e5b3c312423c5cba9a8b3ea104a2f4b3a5a54c Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Thu, 25 Jul 2024 11:34:08 -0700 Subject: [PATCH] f --- cmd/embedded-cluster/install.go | 4 ++-- cmd/embedded-cluster/list_images.go | 20 +++---------------- pkg/goods/embed.go | 30 +++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 19 deletions(-) create mode 100644 pkg/goods/embed.go diff --git a/cmd/embedded-cluster/install.go b/cmd/embedded-cluster/install.go index 92733dde9e..ce6faac891 100644 --- a/cmd/embedded-cluster/install.go +++ b/cmd/embedded-cluster/install.go @@ -494,9 +494,9 @@ func runOutro(c *cli.Context, cfg *k0sconfig.ClusterConfig, adminConsolePwd stri os.Setenv("KUBECONFIG", defaults.PathToKubeConfig()) opts := []addons.Option{} - metadata, err := gatherVersionMetadata() + metadata, err := goods.ExtractReleaseMetadataFromSelf() if err != nil { - return fmt.Errorf("unable to gather release metadata: %w", err) + return fmt.Errorf("extract release metadata from self: %w", err) } opts = append(opts, addons.WithVersionMetadata(metadata)) diff --git a/cmd/embedded-cluster/list_images.go b/cmd/embedded-cluster/list_images.go index a453807def..55ef673d06 100644 --- a/cmd/embedded-cluster/list_images.go +++ b/cmd/embedded-cluster/list_images.go @@ -1,12 +1,9 @@ package main import ( - "encoding/json" "fmt" - "os" - "github.com/replicatedhq/embedded-cluster-kinds/types" - "github.com/replicatedhq/embedded-cluster/pkg/embed" + "github.com/replicatedhq/embedded-cluster/pkg/goods" "github.com/urfave/cli/v2" ) @@ -26,20 +23,9 @@ var listImagesCommand = &cli.Command{ }, }, Action: func(c *cli.Context) error { - exe, err := os.Executable() + metadata, err := goods.ExtractReleaseMetadataFromSelf() if err != nil { - return fmt.Errorf("failed to get executable path: %w", err) - } - - b, err := embed.ExtractReleaseMetadataFromBinary(exe) - if err != nil { - return fmt.Errorf("failed to extract release metadata from binary: %w", err) - } - - var metadata types.ReleaseMetadata - err = json.Unmarshal(b, &metadata) - if err != nil { - return fmt.Errorf("failed to unmarshal release metadata: %w", err) + return fmt.Errorf("failed to extract release metadata from self: %w", err) } for _, image := range metadata.Images { diff --git a/pkg/goods/embed.go b/pkg/goods/embed.go new file mode 100644 index 0000000000..bb315e09f1 --- /dev/null +++ b/pkg/goods/embed.go @@ -0,0 +1,30 @@ +package goods + +import ( + "encoding/json" + "fmt" + "os" + + "github.com/replicatedhq/embedded-cluster-kinds/types" + "github.com/replicatedhq/embedded-cluster/pkg/embed" +) + +func ExtractReleaseMetadataFromSelf() (*types.ReleaseMetadata, error) { + exe, err := os.Executable() + if err != nil { + return nil, fmt.Errorf("get executable path: %w", err) + } + + b, err := embed.ExtractReleaseMetadataFromBinary(exe) + if err != nil { + return nil, fmt.Errorf("extract release metadata from binary: %w", err) + } + + var metadata types.ReleaseMetadata + err = json.Unmarshal(b, &metadata) + if err != nil { + return nil, fmt.Errorf("unmarshal release metadata: %w", err) + } + + return &metadata, nil +}