New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure expected load balancer is selected for Azure #62450

Merged
merged 1 commit into from Apr 13, 2018

Conversation

@feiskyer
Member

feiskyer commented Apr 12, 2018

What this PR does / why we need it:

Azure cloud provider is always selecting the last element of LB list. The reason is: getServiceLoadBalancer() refers the pointer of an local variable within for loop:

for _, existingLB := range existingLBs {
if strings.EqualFold(*existingLB.Name, defaultLBName) {
defaultLB = &existingLB
}
if isInternalLoadBalancer(&existingLB) != isInternal {

This is a common mistake as golang is actually reusing same variable within the loop. This PR fixes this issue.

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 #62449

Special notes for your reviewer:

Release note:

Ensure expected load balancer is selected for Azure

/sig azure
/kind bug

Ensure expected load balancer is selected for Azure
Without this, the last element of LB list is always selected.
@yastij

yastij approved these changes Apr 12, 2018

@feiskyer

This comment has been minimized.

Member

feiskyer commented Apr 13, 2018

/assign @andyzhangx

@@ -199,7 +199,8 @@ func (az *Cloud) getServiceLoadBalancer(service *v1.Service, clusterName string,
// check if the service already has a load balancer
if existingLBs != nil {
for _, existingLB := range existingLBs {

This comment has been minimized.

@andyzhangx

andyzhangx Apr 13, 2018

Member

existingLB will always change in every iteration, what's the orignial issue here?

This comment has been minimized.

@feiskyer

feiskyer Apr 13, 2018

Member

The value changes, but not its address

@andyzhangx

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm label Apr 13, 2018

@k8s-ci-robot

This comment has been minimized.

Contributor

k8s-ci-robot commented Apr 13, 2018

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: andyzhangx, feiskyer

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-merge-robot

This comment has been minimized.

Contributor

k8s-merge-robot commented Apr 13, 2018

/test all [submit-queue is verifying that this PR is safe to merge]

@k8s-ci-robot

This comment has been minimized.

Contributor

k8s-ci-robot commented Apr 13, 2018

@feiskyer: The following test failed, say /retest to rerun them all:

Test name Commit Details Rerun command
pull-kubernetes-e2e-gce 0f0e271 link /test pull-kubernetes-e2e-gce

Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@k8s-merge-robot

This comment has been minimized.

Contributor

k8s-merge-robot commented Apr 13, 2018

Automatic merge from submit-queue (batch tested with PRs 62146, 62450). If you want to cherry-pick this change to another branch, please follow the instructions here.

@k8s-merge-robot k8s-merge-robot merged commit 4b26d70 into kubernetes:master Apr 13, 2018

8 of 15 checks passed

pull-kubernetes-e2e-gce Job failed.
Details
Submit Queue Required Github CI test is not green: pull-kubernetes-e2e-gce
Details
pull-kubernetes-e2e-gce-device-plugin-gpu Job triggered.
Details
pull-kubernetes-e2e-kops-aws Job triggered.
Details
pull-kubernetes-integration Job triggered.
Details
pull-kubernetes-kubemark-e2e-gce Job triggered.
Details
pull-kubernetes-node-e2e Job triggered.
Details
cla/linuxfoundation feiskyer authorized
Details
pull-kubernetes-bazel-build Job succeeded.
Details
pull-kubernetes-bazel-test Job succeeded.
Details
pull-kubernetes-cross Skipped
pull-kubernetes-e2e-gke Skipped
pull-kubernetes-local-e2e Skipped
pull-kubernetes-typecheck Job succeeded.
Details
pull-kubernetes-verify Job succeeded.
Details

@feiskyer feiskyer deleted the feiskyer:select-lb branch Apr 16, 2018

k8s-merge-robot added a commit that referenced this pull request Apr 17, 2018

Merge pull request #62609 from feiskyer/automated-cherry-pick-of-#62450
…-upstream-release-1.9

Automatic merge from submit-queue.

Automated cherry pick of #62450: Ensure expected load balancer is selected for Azure

Cherry pick of #62450 on release-1.9.

#62450: Ensure expected load balancer is selected for Azure

k8s-merge-robot added a commit that referenced this pull request Apr 18, 2018

Merge pull request #62608 from feiskyer/automated-cherry-pick-of-#62450
…-upstream-release-1.10

Automatic merge from submit-queue.

Automated cherry pick of #62450: Ensure expected load balancer is selected for Azure

Cherry pick of #62450 on release-1.10.

#62450: Ensure expected load balancer is selected for Azure
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment