diff --git a/test/e2e/kubectl.go b/test/e2e/kubectl.go index 02e1f2f68ef..58e1ecf808e 100644 --- a/test/e2e/kubectl.go +++ b/test/e2e/kubectl.go @@ -211,10 +211,9 @@ var _ = Describe("Kubectl client", func() { // Build the static kubectl By("Finding a static kubectl for upload") - testStaticKubectlPath := path.Join(testContext.RepoRoot, "platforms/linux/386/kubectl") - _, err = os.Stat(testStaticKubectlPath) + testStaticKubectlPath, err := findBinary("kubectl", "linux/386") if err != nil { - Logf("No kubectl in %s. Attempting a local build...", testStaticKubectlPath) + Logf("No kubectl found: %v.\nAttempting a local build...", err) // Fall back to trying to build a local static kubectl kubectlContainerPath := path.Join(testContext.RepoRoot, "/examples/kubectl-container/") if _, err := os.Stat(path.Join(testContext.RepoRoot, "hack/build-go.sh")); err != nil { @@ -1201,3 +1200,34 @@ func streamingUpload(file *os.File, fileName string, postBodyWriter *multipart.W Failf("Unable to close the writer for file upload. Error: %s", err) } } + +var binPrefixes = []string{ + "_output/dockerized/bin", + "_output/local/bin", + "platforms", +} + +// findBinary searches through likely paths to find the specified binary. It +// takes the one that has been built most recently. Platform should be +// specified as '/'. For example: 'linux/amd64'. +func findBinary(binName string, platform string) (string, error) { + var binTime time.Time + var binPath string + + for _, pre := range binPrefixes { + tryPath := path.Join(testContext.RepoRoot, pre, platform, binName) + fi, err := os.Stat(tryPath) + if err != nil { + continue + } + if fi.ModTime().After(binTime) { + binPath = tryPath + binTime = fi.ModTime() + } + } + + if len(binPath) > 0 { + return binPath, nil + } + return binPath, fmt.Errorf("Could not find %v for %v", binName, platform) +} diff --git a/test/e2e/serviceloadbalancers.go b/test/e2e/serviceloadbalancers.go index 1cce656b42b..3a0c05dc30e 100644 --- a/test/e2e/serviceloadbalancers.go +++ b/test/e2e/serviceloadbalancers.go @@ -88,7 +88,7 @@ func (h *haproxyControllerTester) start(namespace string) (err error) { // Create a replication controller with the given configuration. rc := rcFromManifest(h.cfg) rc.Namespace = namespace - rc.Spec.Template.Labels["rcName"] = rc.Name + rc.Spec.Template.Labels["name"] = rc.Name // Add the --namespace arg. // TODO: Remove this when we have proper namespace support. @@ -102,7 +102,7 @@ func (h *haproxyControllerTester) start(namespace string) (err error) { if err != nil { return } - if err = waitForRCPodsRunning(h.client, namespace, h.rcName); err != nil { + if err = waitForRCPodsRunning(h.client, namespace, rc.Name); err != nil { return } h.rcName = rc.Name @@ -110,7 +110,7 @@ func (h *haproxyControllerTester) start(namespace string) (err error) { // Find the pods of the rc we just created. labelSelector := labels.SelectorFromSet( - labels.Set(map[string]string{"rcName": h.rcName})) + labels.Set(map[string]string{"name": h.rcName})) pods, err := h.client.Pods(h.rcNamespace).List( labelSelector, fields.Everything()) if err != nil { @@ -164,7 +164,7 @@ func (s *ingManager) start(namespace string) (err error) { for _, rcPath := range s.rcCfgPaths { rc := rcFromManifest(rcPath) rc.Namespace = namespace - rc.Spec.Template.Labels["rcName"] = rc.Name + rc.Spec.Template.Labels["name"] = rc.Name rc, err = s.client.ReplicationControllers(rc.Namespace).Create(rc) if err != nil { return