talos/internal/integration/cli/mounts.go
Andrey Smirnov 664fa36973
feat: implement user volumes
User volumes are identified by a short name which serves both
as a `/var/mnt` mount point and a partition label.

User volumes can be added and removed on the fly, and they are
automatically propagated into the `kubelet` mount namespace.

Also deprecate `.machine.disks`.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-04-11 20:27:39 +04:00

50 lines
1.2 KiB
Go

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
//go:build integration_cli
package cli
import (
"os"
"regexp"
"strings"
"github.com/siderolabs/talos/internal/integration/base"
)
// MountsSuite verifies dmesg command.
type MountsSuite struct {
base.CLISuite
}
// SuiteName ...
func (suite *MountsSuite) SuiteName() string {
return "cli.MountsSuite"
}
// TestSuccess verifies successful execution.
func (suite *MountsSuite) TestSuccess() {
suite.RunCLI([]string{"mounts", "--nodes", suite.RandomDiscoveredNodeInternalIP()},
base.StdoutShouldMatch(regexp.MustCompile(`(?s)FILESYSTEM.*`)))
}
// TestUserDisksMounted verifies user disk mounts created.
func (suite *MountsSuite) TestUserDisksMounted() {
paths := os.Getenv("USER_DISKS_MOUNTS")
if paths == "" {
suite.T().Skip("USER_DISKS_MOUNTS is not set")
}
for _, path := range strings.Split(paths, ",") {
suite.RunCLI([]string{"mounts", "--nodes", suite.RandomDiscoveredNodeInternalIP()},
base.StdoutShouldMatch(regexp.MustCompile(path)))
}
}
func init() {
allSuites = append(allSuites, new(MountsSuite))
}