Merge pull request #59222 from MrHohn/e2e-ingress-healthcheck-fix

Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

[e2e ingress-gce] Retrieve the correct health check resource

**What this PR does / why we need it**:
Previously the test retrieves a random health check resource and assumes it belongs to the test ingress, which is wrong when multiple ingress tests are running simultaneously.

Example failure: https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-ingress-gce-e2e/533

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #NONE 

**Special notes for your reviewer**:
/assign @rramkumar1 @nicksardo 

**Release note**:

```release-note
NONE
```
pull/6/head
Kubernetes Submit Queue 2018-02-02 12:09:36 -08:00 committed by GitHub
commit 9bdc86ff8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 11 deletions

View File

@ -258,29 +258,27 @@ var _ = SIGDescribe("Loadbalancing: L7", func() {
// Get cluster UID.
clusterID, err := framework.GetClusterID(f.ClientSet)
Expect(err).NotTo(HaveOccurred())
// Get default backend nodeport.
defaultBackendNodePort, err := jig.GetDefaultBackendNodePort()
Expect(err).NotTo(HaveOccurred())
// Get the related nodeports.
nodePorts := jig.GetIngressNodePorts(false)
Expect(len(nodePorts)).ToNot(Equal(0))
// Filter health check using cluster UID as the suffix.
By("Retrieving relevant health check resources from GCE.")
gceCloud := gceController.Cloud.Provider.(*gcecloud.GCECloud)
hcs, err := gceCloud.ListHealthChecks()
Expect(err).NotTo(HaveOccurred())
ingressHCs := []*compute.HealthCheck{}
var hcToChange *compute.HealthCheck
for _, hc := range hcs {
if strings.HasSuffix(hc.Name, clusterID) {
Expect(hc.HttpHealthCheck).ToNot(Equal(nil))
// Skip the default backend healthcheck as that shouldn't be customized.
if hc.HttpHealthCheck.Port == int64(defaultBackendNodePort) {
continue
Expect(hc.HttpHealthCheck).NotTo(BeNil())
if fmt.Sprintf("%d", hc.HttpHealthCheck.Port) == nodePorts[0] {
hcToChange = hc
break
}
ingressHCs = append(ingressHCs, hc)
}
}
Expect(hcToChange).NotTo(BeNil())
Expect(len(ingressHCs)).ToNot(Equal(0))
hcToChange := ingressHCs[0]
By(fmt.Sprintf("Modifying health check %v without involving ingress.", hcToChange.Name))
// Change timeout from 60s to 25s.
hcToChange.TimeoutSec = 25