Skip to content

Commit 4078b04

Browse files
authored
include troubleshoot and kubectl binary versions in metadata (#432)
* include troubleshoot and kubectl binary versions in metadata * ensure versions show up * remove expected breakage
1 parent f628aab commit 4078b04

File tree

5 files changed

+34
-15
lines changed

5 files changed

+34
-15
lines changed

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ TROUBLESHOOT_VERSION = v0.83.0
2020
LD_FLAGS = -X github.com/replicatedhq/embedded-cluster/pkg/defaults.K0sVersion=$(K0S_VERSION) \
2121
-X github.com/replicatedhq/embedded-cluster/pkg/defaults.Version=$(VERSION) \
2222
-X github.com/replicatedhq/embedded-cluster/pkg/defaults.K0sBinaryURL=$(K0S_BINARY_SOURCE_OVERRIDE) \
23+
-X github.com/replicatedhq/embedded-cluster/pkg/defaults.TroubleshootVersion=$(TROUBLESHOOT_VERSION) \
24+
-X github.com/replicatedhq/embedded-cluster/pkg/defaults.KubectlVersion=$(KUBECTL_VERSION) \
2325
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.ChartURL=$(ADMIN_CONSOLE_CHART_URL) \
2426
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.ChartName=$(ADMIN_CONSOLE_CHART_NAME) \
2527
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.Version=$(ADMIN_CONSOLE_CHART_VERSION) \
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package types
2+
3+
import "github.com/k0sproject/k0s/pkg/apis/k0s/v1beta1"
4+
5+
// ReleaseMetadata holds the metadata about a specific release, including addons and
6+
// their versions.
7+
type ReleaseMetadata struct {
8+
Versions map[string]string
9+
K0sSHA string
10+
K0sBinaryURL string
11+
Configs v1beta1.HelmExtensions
12+
Protected map[string][]string
13+
}

cmd/embedded-cluster/version.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package main
33
import (
44
"encoding/json"
55
"fmt"
6+
"github.com/replicatedhq/embedded-cluster/cmd/embedded-cluster/types"
67
"sort"
78
"strings"
89

@@ -53,16 +54,6 @@ var versionCommand = &cli.Command{
5354
},
5455
}
5556

56-
// ReleaseMetadata holds the metadata about a specific release, including addons and
57-
// their versions.
58-
type ReleaseMetadata struct {
59-
Versions map[string]string
60-
K0sSHA string
61-
K0sBinaryURL string
62-
Configs k0sconfig.HelmExtensions
63-
Protected map[string][]string
64-
}
65-
6657
var metadataCommand = &cli.Command{
6758
Name: "metadata",
6859
Usage: "Print metadata about this release",
@@ -75,6 +66,8 @@ var metadataCommand = &cli.Command{
7566
}
7667
versions["Kubernetes"] = defaults.K0sVersion
7768
versions["Installer"] = defaults.Version
69+
versions["Troubleshoot"] = defaults.TroubleshootVersion
70+
versions["Kubectl"] = defaults.KubectlVersion
7871
channelRelease, err := release.GetChannelRelease()
7972
if err == nil && channelRelease != nil {
8073
versions[defaults.BinaryName()] = channelRelease.VersionLabel
@@ -83,7 +76,7 @@ var metadataCommand = &cli.Command{
8376
if err != nil {
8477
return fmt.Errorf("unable to get k0s binary sha256: %w", err)
8578
}
86-
meta := ReleaseMetadata{
79+
meta := types.ReleaseMetadata{
8780
Versions: versions,
8881
K0sSHA: sha,
8982
K0sBinaryURL: defaults.K0sBinaryURL,

e2e/version_test.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"testing"
88
"time"
99

10-
k0sconfig "github.com/k0sproject/k0s/pkg/apis/k0s/v1beta1"
10+
"github.com/replicatedhq/embedded-cluster/cmd/embedded-cluster/types"
1111
"github.com/replicatedhq/embedded-cluster/e2e/cluster"
1212
)
1313

@@ -50,14 +50,20 @@ func TestVersion(t *testing.T) {
5050
}
5151

5252
output = fmt.Sprintf("%s\n%s", stdout, stderr)
53-
parsed := struct {
54-
Configs k0sconfig.HelmExtensions
55-
}{}
53+
parsed := types.ReleaseMetadata{}
5654
if err := json.Unmarshal([]byte(output), &parsed); err != nil {
5755
t.Log(output)
5856
t.Fatalf("fail to parse metadata output: %v", err)
5957
}
6058

59+
expectedVersions := []string{"Kubernetes", "Troubleshoot", "Kubectl", "EmbeddedClusterOperator", "AdminConsole", "OpenEBS", "goldpinger", "ingress-nginx"}
60+
for _, v := range expectedVersions {
61+
if val, ok := parsed.Versions[v]; !ok || val == "" {
62+
t.Errorf("missing %q version in 'metadata' output", v)
63+
failed = true
64+
}
65+
}
66+
6167
for _, foundChart := range parsed.Configs.Charts {
6268
if strings.Contains(foundChart.Values, "embeddedClusterID") {
6369
t.Errorf("metadata output for chart %s contains embeddedClusterID", foundChart.Name)

pkg/defaults/defaults.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ var (
99
// K0sVersion holds the version of k0s binary we are embedding. this is
1010
// set at compile time via ldflags.
1111
K0sVersion = "0.0.0"
12+
// TroubleshootVersion holds the version of troubleshoot and preflight
13+
// binaries we are embedding. this is set at compile time via ldflags.
14+
TroubleshootVersion = "0.0.0"
15+
// KubectlVersion holds the version of kubectl binary we are embedding.
16+
KubectlVersion = "0.0.0"
1217
// provider holds a global reference to the default provider.
1318
provider *Provider
1419
// K0sBinaryURL holds an alternative URL from where to download the k0s

0 commit comments

Comments
 (0)