mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-29 21:29:24 +00:00
Merge pull request #49443 from yguo0905/gke-tests
Automatic merge from submit-queue (batch tested with PRs 45813, 49594, 49443, 49167, 47539) Add node e2e tests for GKE environment Ref: https://github.com/kubernetes/kubernetes/issues/46891 This PR adds node e2e tests for validating images used on GKE. - We pass the `SYSTEM_SPEC_NAME` to the node e2e test process via the flag `--system-spec-name` so that we can skip the environment specific tests using `RunIfSystemSpecNameIs()`. - Also added `SkipIfContainerRuntimeIs()` as the opposite of `RunIfContainerRuntimeIs()`. **Release note**: ``` None ```
This commit is contained in:
@@ -135,6 +135,10 @@ type NodeTestContextType struct {
|
||||
KubeletConfig componentconfig.KubeletConfiguration
|
||||
// ImageDescription is the description of the image on which the test is running.
|
||||
ImageDescription string
|
||||
// SystemSpecName is the name of the system spec (e.g., gke) that's used in
|
||||
// the node e2e test. If empty, the default one (system.DefaultSpec) is
|
||||
// used. The system specs are in test/e2e_node/system/specs/.
|
||||
SystemSpecName string
|
||||
}
|
||||
|
||||
type CloudConfig struct {
|
||||
@@ -256,6 +260,7 @@ func RegisterNodeFlags() {
|
||||
flag.BoolVar(&TestContext.NodeConformance, "conformance", false, "If true, the test suite will not start kubelet, and fetch system log (kernel, docker, kubelet log etc.) to the report directory.")
|
||||
flag.BoolVar(&TestContext.PrepullImages, "prepull-images", true, "If true, prepull images so image pull failures do not cause test failures.")
|
||||
flag.StringVar(&TestContext.ImageDescription, "image-description", "", "The description of the image which the test will be running on.")
|
||||
flag.StringVar(&TestContext.SystemSpecName, "system-spec-name", "", "The name of the system spec (e.g., gke) that's used in the node e2e test. The system specs are in test/e2e_node/system/specs/. This is used by the test framework to determine which tests to run for validating the system requirements.")
|
||||
}
|
||||
|
||||
// ViperizeFlags sets up all flag and config processing. Future configuration info should be added to viper, not to flags.
|
||||
|
||||
@@ -356,6 +356,24 @@ func SkipIfContainerRuntimeIs(runtimes ...string) {
|
||||
}
|
||||
}
|
||||
|
||||
func RunIfContainerRuntimeIs(runtimes ...string) {
|
||||
for _, runtime := range runtimes {
|
||||
if runtime == TestContext.ContainerRuntime {
|
||||
return
|
||||
}
|
||||
}
|
||||
Skipf("Skipped because container runtime %q is not in %s", TestContext.ContainerRuntime, runtimes)
|
||||
}
|
||||
|
||||
func RunIfSystemSpecNameIs(names ...string) {
|
||||
for _, name := range names {
|
||||
if name == TestContext.SystemSpecName {
|
||||
return
|
||||
}
|
||||
}
|
||||
Skipf("Skipped because system spec name %q is not in %v", TestContext.SystemSpecName, names)
|
||||
}
|
||||
|
||||
func ProviderIs(providers ...string) bool {
|
||||
for _, provider := range providers {
|
||||
if strings.ToLower(provider) == strings.ToLower(TestContext.Provider) {
|
||||
|
||||
Reference in New Issue
Block a user