Documentation
¶
Overview ¶
Package remote contains implementations of the TestSuite interface, which specify how to run various node test suites remotely.
Index ¶
- func AddHostnameIP(hostname, ip string)
- func AddSSHKey(hostname, keyFilePath string)
- func CreateTestArchive(suite TestSuite, systemSpecName, kubeletConfigFile string) (string, error)
- func GetHostnameOrIP(hostname string) string
- func GetSSHUser() string
- func GetTestSuiteKeys() []string
- func GetTimestampFromWorkspaceDir(dir string) string
- func RegisterRunner(name string, runner NewRunner)
- func RegisterTestSuite(name string, suite TestSuite)
- func RunRemote(cfg RunRemoteConfig) (string, bool, error)
- func RunRemoteTestSuite(testSuite TestSuite)
- func SSH(host string, cmd ...string) (string, error)
- func SSHNoSudo(host string, cmd ...string) (string, error)
- func WriteLog(host, filename, content string) error
- type Archive
- type CAdvisorE2ERemote
- type Config
- type ConformanceRemote
- type NewRunner
- type NodeE2ERemote
- type RunRemoteConfig
- type Runner
- type SSHRunner
- type TestResult
- type TestSuite
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddHostnameIP ¶
func AddHostnameIP(hostname, ip string)
AddHostnameIP adds <hostname,ip> pair into hostnameIPOverrides map.
func AddSSHKey ¶
func AddSSHKey(hostname, keyFilePath string)
AddSSHKey adds a <hosrtname,path to SSH private key> pair into the sshKeyOverrides map
func CreateTestArchive ¶
CreateTestArchive creates the archive package for the node e2e test.
func GetHostnameOrIP ¶
GetHostnameOrIP converts hostname into ip and apply user if necessary.
func GetSSHUser ¶
func GetSSHUser() string
GetSSHUser returns the ssh-user CLI flag, the KUBE_SSH_USER environment variable, or the default ssh user for the ssh environment in that order
func GetTestSuiteKeys ¶
func GetTestSuiteKeys() []string
func GetTimestampFromWorkspaceDir ¶
GetTimestampFromWorkspaceDir parses the workspace directory name and gets the timestamp part of it. This can later be used to name other artifacts (such as the kubelet-${instance}.service systemd transient service used to launch Kubelet) so that they can be matched to each other.
func RegisterRunner ¶
func RegisterTestSuite ¶
func RunRemoteTestSuite ¶
func RunRemoteTestSuite(testSuite TestSuite)
func SSH ¶
SSH executes ssh command with runSSHCommand as root. The `sudo` makes sure that all commands are executed by root, so that there won't be permission mismatch between different commands.
Types ¶
type CAdvisorE2ERemote ¶
type CAdvisorE2ERemote struct{}
CAdvisorE2ERemote contains the specific functions in the cadvisor e2e test suite.
func (*CAdvisorE2ERemote) RunTest ¶
func (n *CAdvisorE2ERemote) RunTest(host, workspace, _, _, _, _, _, _, _, _ string, timeout time.Duration) (string, error)
RunTest implements TestSuite.RunTest
func (*CAdvisorE2ERemote) SetupTestPackage ¶
func (n *CAdvisorE2ERemote) SetupTestPackage(tardir, systemSpecName string) error
SetupTestPackage implements TestSuite.SetupTestPackage
type ConformanceRemote ¶
type ConformanceRemote struct{}
ConformanceRemote contains the specific functions in the node conformance test suite.
func (*ConformanceRemote) RunTest ¶
func (c *ConformanceRemote) RunTest(host, workspace, results, imageDesc, junitFilePrefix, testArgs, _, systemSpecName, extraEnvs, _ string, timeout time.Duration) (string, error)
RunTest runs test on the node.
func (*ConformanceRemote) SetupTestPackage ¶
func (c *ConformanceRemote) SetupTestPackage(tardir, systemSpecName string) error
SetupTestPackage sets up the test package with binaries k8s required for node conformance test
type NodeE2ERemote ¶
type NodeE2ERemote struct{}
NodeE2ERemote contains the specific functions in the node e2e test suite.
func (*NodeE2ERemote) RunTest ¶
func (n *NodeE2ERemote) RunTest(host, workspace, results, imageDesc, junitFilePrefix, testArgs, ginkgoArgs, systemSpecName, extraEnvs, runtimeConfig string, timeout time.Duration) (string, error)
RunTest runs test on the node.
func (*NodeE2ERemote) SetupTestPackage ¶
func (n *NodeE2ERemote) SetupTestPackage(tardir, systemSpecName string) error
SetupTestPackage sets up the test package with binaries k8s required for node e2e tests
type RunRemoteConfig ¶
type RunRemoteConfig struct { Suite TestSuite Archive string Host string Cleanup bool ImageDesc, JunitFileName, TestArgs, GinkgoArgs, SystemSpecName, ExtraEnvs, RuntimeConfig string }
RunRemote returns the command Output, whether the exit was ok, and any errors
type Runner ¶
type Runner interface { Validate() error StartTests(suite TestSuite, archivePath string, results chan *TestResult) (numTests int) }
func NewSSHRunner ¶
type SSHRunner ¶
type SSHRunner struct {
// contains filtered or unexported fields
}
func (*SSHRunner) StartTests ¶
func (s *SSHRunner) StartTests(suite TestSuite, archivePath string, results chan *TestResult) (numTests int)
type TestResult ¶
TestResult contains some information about the test results.
type TestSuite ¶
type TestSuite interface { // SetupTestPackage setup the test package in the given directory. TestSuite // should put all necessary binaries and dependencies into the path. The caller // will: // * create a tarball with the directory. // * deploy the tarball to the testing host. // * untar the tarball to the testing workspace on the testing host. SetupTestPackage(path, systemSpecName string) error // RunTest runs test on the node in the given workspace and returns test output // and test error if there is any. // * host is the target node to run the test. // * workspace is the directory on the testing host the test is running in. Note // that the test package is unpacked in the workspace before running the test. // * results is the directory the test should write result into. All logs should be // saved as *.log, all junit file should start with junit*. // * imageDesc is the description of the image the test is running on. // It will be used for logging purpose only. // * junitFilePrefix is the prefix of output junit file. // * testArgs is the arguments passed to test. // * ginkgoArgs is the arguments passed to ginkgo. // * systemSpecName is the name of the system spec used for validating the // image on which the test runs. // * extraEnvs is the extra environment variables needed for node e2e tests. // * runtimeConfig is the API runtime configuration used for node e2e tests. // * timeout is the test timeout. RunTest(host, workspace, results, imageDesc, junitFilePrefix, testArgs, ginkgoArgs, systemSpecName, extraEnvs, runtimeConfig string, timeout time.Duration) (string, error) }
TestSuite is the interface of a test suite, such as node e2e, node conformance, node soaking, cri validation etc.