Skip to content

Commit 2eb8fb7

Browse files
committed
Merge remote-tracking branch 'origin/main' into k0s-1-29
2 parents 430c1c8 + adc8a2c commit 2eb8fb7

38 files changed

+1528
-94
lines changed

.github/workflows/ci.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ jobs:
4242
uses: golangci/golangci-lint-action@v6
4343
with:
4444
version: v1.60.3
45+
args: --build-tags exclude_graphdriver_btrfs
4546

4647
test:
4748
name: Unit tests
@@ -519,6 +520,7 @@ jobs:
519520
- TestMultiNodeReset
520521
- TestCollectSupportBundle
521522
- TestUnsupportedOverrides
523+
- TestHostCollectSupportBundleInCluster
522524
steps:
523525
- name: Checkout
524526
uses: actions/checkout@v4

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ go.work.sum
1616
.gomodcache
1717
/local-dev/
1818
*.tmp
19+
.envrc

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -234,12 +234,12 @@ embedded-cluster:
234234
unit-tests:
235235
mkdir -p pkg/goods/bins pkg/goods/internal/bins
236236
touch pkg/goods/bins/BUILD pkg/goods/internal/bins/BUILD # compilation will fail if no files are present
237-
go test -v ./pkg/... ./cmd/...
237+
go test -tags exclude_graphdriver_btrfs -v ./pkg/... ./cmd/...
238238
$(MAKE) -C operator test
239239

240240
.PHONY: vet
241241
vet: static
242-
go vet ./...
242+
go vet -tags exclude_graphdriver_btrfs ./...
243243

244244
.PHONY: e2e-tests
245245
e2e-tests: embedded-release
@@ -266,11 +266,11 @@ clean:
266266

267267
.PHONY: lint
268268
lint:
269-
golangci-lint run -c .golangci.yml ./...
269+
golangci-lint run -c .golangci.yml ./... --build-tags exclude_graphdriver_btrfs
270270

271271
.PHONY: lint-and-fix
272272
lint-and-fix:
273-
golangci-lint run --fix -c .golangci.yml ./...
273+
golangci-lint run --fix -c .golangci.yml ./... --build-tags exclude_graphdriver_btrfs
274274

275275
.PHONY: scan
276276
scan:
@@ -285,7 +285,7 @@ scan:
285285
buildtools:
286286
mkdir -p pkg/goods/bins pkg/goods/internal/bins
287287
touch pkg/goods/bins/BUILD pkg/goods/internal/bins/BUILD # compilation will fail if no files are present
288-
go build -o ./output/bin/buildtools ./cmd/buildtools
288+
go build -tags exclude_graphdriver_btrfs -o ./output/bin/buildtools ./cmd/buildtools
289289

290290
.PHONY: list-distros
291291
list-distros:

cmd/embedded-cluster/flags.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -74,19 +74,3 @@ func getDataDirFlagWithDefault(runtimeConfig *ecv1beta1.RuntimeConfigSpec) *cli.
7474
},
7575
}
7676
}
77-
78-
func getDataDirFlag(runtimeConfig *ecv1beta1.RuntimeConfigSpec) *cli.StringFlag {
79-
return &cli.StringFlag{
80-
Name: "data-dir",
81-
Usage: "Path to the data directory (default discovered from the cluster)",
82-
Hidden: false,
83-
Action: func(c *cli.Context, s string) error {
84-
if s == "" {
85-
return nil
86-
}
87-
logrus.Debugf("Setting data dir to %s from flag", s)
88-
runtimeConfig.DataDir = s
89-
return nil
90-
},
91-
}
92-
}

cmd/embedded-cluster/install.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"github.com/replicatedhq/embedded-cluster/pkg/addons"
1919
"github.com/replicatedhq/embedded-cluster/pkg/airgap"
2020
"github.com/replicatedhq/embedded-cluster/pkg/config"
21+
"github.com/replicatedhq/embedded-cluster/pkg/configutils"
2122
"github.com/replicatedhq/embedded-cluster/pkg/defaults"
2223
"github.com/replicatedhq/embedded-cluster/pkg/goods"
2324
"github.com/replicatedhq/embedded-cluster/pkg/helpers"
@@ -707,6 +708,11 @@ func installCommand() *cli.Command {
707708
defer tryRemoveTmpDirContents(provider)
708709

709710
var err error
711+
err = configutils.WriteRuntimeConfig(runtimeConfig)
712+
if err != nil {
713+
return fmt.Errorf("unable to write runtime config: %w", err)
714+
}
715+
710716
proxy, err := getProxySpecFromFlags(c)
711717
if err != nil {
712718
return fmt.Errorf("unable to get proxy spec from flags: %w", err)

cmd/embedded-cluster/join.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323

2424
"github.com/replicatedhq/embedded-cluster/pkg/airgap"
2525
"github.com/replicatedhq/embedded-cluster/pkg/config"
26+
"github.com/replicatedhq/embedded-cluster/pkg/configutils"
2627
"github.com/replicatedhq/embedded-cluster/pkg/defaults"
2728
"github.com/replicatedhq/embedded-cluster/pkg/helpers"
2829
"github.com/replicatedhq/embedded-cluster/pkg/highavailability"
@@ -190,6 +191,11 @@ var joinCommand = &cli.Command{
190191
return fmt.Errorf("unable to get join token: %w", err)
191192
}
192193

194+
err = configutils.WriteRuntimeConfig(jcmd.InstallationSpec.RuntimeConfig)
195+
if err != nil {
196+
return fmt.Errorf("unable to write runtime config: %w", err)
197+
}
198+
193199
provider := defaults.NewProviderFromRuntimeConfig(jcmd.InstallationSpec.RuntimeConfig)
194200
os.Setenv("KUBECONFIG", provider.PathToKubeConfig())
195201
os.Setenv("TMPDIR", provider.EmbeddedClusterTmpSubDir())

cmd/embedded-cluster/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ func main() {
3838
updateCommand(),
3939
restoreCommand(),
4040
adminConsoleCommand(),
41+
supportBundleCommand(),
4142
},
4243
}
4344
if err := app.RunContext(ctx, os.Args); err != nil {

cmd/embedded-cluster/provider.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"os"
77

88
ecv1beta1 "github.com/replicatedhq/embedded-cluster/kinds/apis/v1beta1"
9+
"github.com/replicatedhq/embedded-cluster/pkg/configutils"
910
"github.com/replicatedhq/embedded-cluster/pkg/defaults"
1011
"github.com/replicatedhq/embedded-cluster/pkg/kubeutils"
1112
)
@@ -36,14 +37,21 @@ func discoverKubeconfigPath(ctx context.Context, runtimeConfig *ecv1beta1.Runtim
3637
}
3738

3839
// discoverBestProvider discovers the provider from the cluster (if it's up) and will fall back to
39-
// the filesystem, or the default.
40+
// the /etc/embedded-cluster/ec.yaml file, the filesystem, or the default.
4041
func discoverBestProvider(ctx context.Context) *defaults.Provider {
4142
// It's possible that the cluster is not up
4243
provider, err := getProviderFromCluster(ctx)
4344
if err == nil {
4445
return provider
4546
}
4647

48+
// There might be a runtime config file
49+
runtimeConfig, err := configutils.ReadRuntimeConfig()
50+
if err == nil {
51+
provider = defaults.NewProviderFromRuntimeConfig(runtimeConfig)
52+
return provider
53+
}
54+
4755
// Otherwise, fall back to the filesystem
4856
provider, err = defaults.NewProviderFromFilesystem()
4957
if err == nil {

cmd/embedded-cluster/reset.go

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import (
1818
k8serrors "k8s.io/apimachinery/pkg/api/errors"
1919
"sigs.k8s.io/controller-runtime/pkg/client"
2020

21-
ecv1beta1 "github.com/replicatedhq/embedded-cluster/kinds/apis/v1beta1"
2221
"github.com/replicatedhq/embedded-cluster/pkg/defaults"
2322
"github.com/replicatedhq/embedded-cluster/pkg/helpers"
2423
"github.com/replicatedhq/embedded-cluster/pkg/kubeutils"
@@ -330,8 +329,6 @@ func maybePrintHAWarning(ctx context.Context, provider *defaults.Provider) error
330329
}
331330

332331
func resetCommand() *cli.Command {
333-
runtimeConfig := ecv1beta1.GetDefaultRuntimeConfig()
334-
335332
return &cli.Command{
336333
Name: "reset",
337334
Before: func(c *cli.Context) error {
@@ -342,7 +339,6 @@ func resetCommand() *cli.Command {
342339
},
343340
Args: false,
344341
Flags: []cli.Flag{
345-
getDataDirFlag(runtimeConfig),
346342
&cli.BoolFlag{
347343
Name: "force",
348344
Aliases: []string{"f"},
@@ -357,12 +353,7 @@ func resetCommand() *cli.Command {
357353
},
358354
Usage: fmt.Sprintf("Remove %s from the current node", binName),
359355
Action: func(c *cli.Context) error {
360-
var provider *defaults.Provider
361-
if c.IsSet("data-dir") {
362-
provider = defaults.NewProviderFromRuntimeConfig(runtimeConfig)
363-
} else {
364-
provider = discoverBestProvider(c.Context)
365-
}
356+
provider := discoverBestProvider(c.Context)
366357
os.Setenv("KUBECONFIG", provider.PathToKubeConfig())
367358
os.Setenv("TMPDIR", provider.EmbeddedClusterTmpSubDir())
368359

@@ -502,6 +493,10 @@ func resetCommand() *cli.Command {
502493
return fmt.Errorf("failed to remove k0s binary: %w", err)
503494
}
504495

496+
if err := helpers.RemoveAll(defaults.PathToECConfig()); err != nil {
497+
return fmt.Errorf("failed to remove embedded cluster data config: %w", err)
498+
}
499+
505500
if _, err := exec.Command("reboot").Output(); err != nil {
506501
return err
507502
}

cmd/embedded-cluster/restore.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/replicatedhq/embedded-cluster/pkg/addons/seaweedfs"
2323
"github.com/replicatedhq/embedded-cluster/pkg/airgap"
2424
"github.com/replicatedhq/embedded-cluster/pkg/config"
25+
"github.com/replicatedhq/embedded-cluster/pkg/configutils"
2526
"github.com/replicatedhq/embedded-cluster/pkg/constants"
2627
"github.com/replicatedhq/embedded-cluster/pkg/defaults"
2728
"github.com/replicatedhq/embedded-cluster/pkg/helpers"
@@ -958,6 +959,11 @@ func restoreCommand() *cli.Command {
958959

959960
defer tryRemoveTmpDirContents(provider)
960961

962+
err := configutils.WriteRuntimeConfig(runtimeConfig)
963+
if err != nil {
964+
return fmt.Errorf("unable to write runtime config: %w", err)
965+
}
966+
961967
proxy, err := getProxySpecFromFlags(c)
962968
if err != nil {
963969
return fmt.Errorf("unable to get proxy spec from flags: %w", err)

0 commit comments

Comments
 (0)