From 43fce8d6e472974466e60685d5ec0200085d2ec4 Mon Sep 17 00:00:00 2001 From: Dmitry Rozhkov Date: Fri, 28 Dec 2018 16:40:43 +0200 Subject: [PATCH] e2e-node-tests: fix path to system specs e2e-node tests may use custom system specs for validating nodes to conform the specs. The functionality is switched on when the tests are run with this command: make SYSTEM_SPEC_NAME=gke test-e2e-node Currently the command fails with the error: F1228 16:12:41.568836 34514 e2e_node_suite_test.go:106] Failed to load system spec: open /home/rojkov/go/src/k8s.io/kubernetes/k8s.io/kubernetes/cmd/kubeadm/app/util/system/specs/gke.yaml: no such file or directory Move the spec file under `test/e2e_node/system/specs` and introduce a single public constant referring the file to use instead of multiple private constants. --- test/e2e_node/BUILD | 1 + test/e2e_node/remote/BUILD | 1 + test/e2e_node/remote/node_e2e.go | 7 ++---- test/e2e_node/runner/local/BUILD | 1 + test/e2e_node/runner/local/run_local.go | 9 +++----- test/e2e_node/runner/remote/BUILD | 1 + test/e2e_node/runner/remote/run_remote.go | 3 ++- test/e2e_node/system/BUILD | 22 +++++++++++++++++++ test/e2e_node/system/specs.go | 22 +++++++++++++++++++ .../e2e_node}/system/specs/gke.yaml | 0 10 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 test/e2e_node/system/BUILD create mode 100644 test/e2e_node/system/specs.go rename {cmd/kubeadm/app/util => test/e2e_node}/system/specs/gke.yaml (100%) diff --git a/test/e2e_node/BUILD b/test/e2e_node/BUILD index 51c902c0e35..f5cb23b2ed7 100644 --- a/test/e2e_node/BUILD +++ b/test/e2e_node/BUILD @@ -204,6 +204,7 @@ filegroup( "//test/e2e_node/runner/local:all-srcs", "//test/e2e_node/runner/remote:all-srcs", "//test/e2e_node/services:all-srcs", + "//test/e2e_node/system:all-srcs", ], tags = ["automanaged"], visibility = ["//visibility:public"], diff --git a/test/e2e_node/remote/BUILD b/test/e2e_node/remote/BUILD index 3952cd69cac..3b0f42cc853 100644 --- a/test/e2e_node/remote/BUILD +++ b/test/e2e_node/remote/BUILD @@ -20,6 +20,7 @@ go_library( deps = [ "//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//test/e2e_node/builder:go_default_library", + "//test/e2e_node/system:go_default_library", "//test/utils:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], diff --git a/test/e2e_node/remote/node_e2e.go b/test/e2e_node/remote/node_e2e.go index 4a45594bfcf..efd530b0318 100644 --- a/test/e2e_node/remote/node_e2e.go +++ b/test/e2e_node/remote/node_e2e.go @@ -27,13 +27,10 @@ import ( "k8s.io/klog" "k8s.io/kubernetes/test/e2e_node/builder" + "k8s.io/kubernetes/test/e2e_node/system" "k8s.io/kubernetes/test/utils" ) -const ( - systemSpecPath = "k8s.io/kubernetes/cmd/kubeadm/app/util/system/specs" -) - // NodeE2ERemote contains the specific functions in the node e2e test suite. type NodeE2ERemote struct{} @@ -75,7 +72,7 @@ func (n *NodeE2ERemote) SetupTestPackage(tardir, systemSpecName string) error { if systemSpecName != "" { // Copy system spec file - source := filepath.Join(rootDir, systemSpecPath, systemSpecName+".yaml") + source := filepath.Join(rootDir, system.SystemSpecPath, systemSpecName+".yaml") if _, err := os.Stat(source); err != nil { return fmt.Errorf("failed to locate system spec %q: %v", source, err) } diff --git a/test/e2e_node/runner/local/BUILD b/test/e2e_node/runner/local/BUILD index 50d8969a89d..d000c2b8709 100644 --- a/test/e2e_node/runner/local/BUILD +++ b/test/e2e_node/runner/local/BUILD @@ -17,6 +17,7 @@ go_library( importpath = "k8s.io/kubernetes/test/e2e_node/runner/local", deps = [ "//test/e2e_node/builder:go_default_library", + "//test/e2e_node/system:go_default_library", "//test/utils:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], diff --git a/test/e2e_node/runner/local/run_local.go b/test/e2e_node/runner/local/run_local.go index 4a69a997b62..8cdf5b37822 100644 --- a/test/e2e_node/runner/local/run_local.go +++ b/test/e2e_node/runner/local/run_local.go @@ -25,6 +25,7 @@ import ( "strings" "k8s.io/kubernetes/test/e2e_node/builder" + "k8s.io/kubernetes/test/e2e_node/system" "k8s.io/kubernetes/test/utils" "k8s.io/klog" @@ -33,11 +34,7 @@ import ( var buildDependencies = flag.Bool("build-dependencies", true, "If true, build all dependencies.") var ginkgoFlags = flag.String("ginkgo-flags", "", "Space-separated list of arguments to pass to Ginkgo test runner.") var testFlags = flag.String("test-flags", "", "Space-separated list of arguments to pass to node e2e test.") -var systemSpecName = flag.String("system-spec-name", "", "The name of the system spec used for validating the image in the node conformance test. The specs are at k8s.io/kubernetes/cmd/kubeadm/app/util/system/specs/. If unspecified, the default built-in spec (system.DefaultSpec) will be used.") - -const ( - systemSpecPath = "k8s.io/kubernetes/cmd/kubeadm/app/util/system/specs" -) +var systemSpecName = flag.String("system-spec-name", "", fmt.Sprintf("The name of the system spec used for validating the image in the node conformance test. The specs are at %s. If unspecified, the default built-in spec (system.DefaultSpec) will be used.", system.SystemSpecPath)) func main() { klog.InitFlags(nil) @@ -65,7 +62,7 @@ func main() { if err != nil { klog.Fatalf("Failed to get k8s root directory: %v", err) } - systemSpecFile := filepath.Join(rootDir, systemSpecPath, *systemSpecName+".yaml") + systemSpecFile := filepath.Join(rootDir, system.SystemSpecPath, *systemSpecName+".yaml") args = append(args, fmt.Sprintf("--system-spec-name=%s --system-spec-file=%s", *systemSpecName, systemSpecFile)) } if err := runCommand(ginkgo, args...); err != nil { diff --git a/test/e2e_node/runner/remote/BUILD b/test/e2e_node/runner/remote/BUILD index 88c58616d3f..5c3641616ea 100644 --- a/test/e2e_node/runner/remote/BUILD +++ b/test/e2e_node/runner/remote/BUILD @@ -17,6 +17,7 @@ go_library( importpath = "k8s.io/kubernetes/test/e2e_node/runner/remote", deps = [ "//test/e2e_node/remote:go_default_library", + "//test/e2e_node/system:go_default_library", "//vendor/github.com/pborman/uuid:go_default_library", "//vendor/golang.org/x/oauth2:go_default_library", "//vendor/golang.org/x/oauth2/google:go_default_library", diff --git a/test/e2e_node/runner/remote/run_remote.go b/test/e2e_node/runner/remote/run_remote.go index c2131da22c7..bd216d51906 100644 --- a/test/e2e_node/runner/remote/run_remote.go +++ b/test/e2e_node/runner/remote/run_remote.go @@ -36,6 +36,7 @@ import ( "time" "k8s.io/kubernetes/test/e2e_node/remote" + "k8s.io/kubernetes/test/e2e_node/system" "github.com/pborman/uuid" "golang.org/x/oauth2" @@ -61,7 +62,7 @@ var buildOnly = flag.Bool("build-only", false, "If true, build e2e_node_test.tar var instanceMetadata = flag.String("instance-metadata", "", "key/value metadata for instances separated by '=' or '<', 'k=v' means the key is 'k' and the value is 'v'; 'k