{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/68422","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/68422/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/68422/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/68422/events","html_url":"https://github.com/kubernetes/kubernetes/pull/68422","id":358202681,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE0MDMyNzIz","number":68422,"title":"Fix AWS NLB security group updates","user":{"login":"kellycampbell","id":625998,"node_id":"MDQ6VXNlcjYyNTk5OA==","avatar_url":"https://avatars0.githubusercontent.com/u/625998?v=4","gravatar_id":"","url":"https://api.github.com/users/kellycampbell","html_url":"https://github.com/kellycampbell","followers_url":"https://api.github.com/users/kellycampbell/followers","following_url":"https://api.github.com/users/kellycampbell/following{/other_user}","gists_url":"https://api.github.com/users/kellycampbell/gists{/gist_id}","starred_url":"https://api.github.com/users/kellycampbell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kellycampbell/subscriptions","organizations_url":"https://api.github.com/users/kellycampbell/orgs","repos_url":"https://api.github.com/users/kellycampbell/repos","events_url":"https://api.github.com/users/kellycampbell/events{/privacy}","received_events_url":"https://api.github.com/users/kellycampbell/received_events","type":"User","site_admin":false},"labels":[{"id":414883982,"node_id":"MDU6TGFiZWw0MTQ4ODM5ODI=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/approved","name":"approved","color":"0ffa16","default":false},{"id":477397086,"node_id":"MDU6TGFiZWw0NzczOTcwODY=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cncf-cla:%20yes","name":"cncf-cla: yes","color":"bfe5bf","default":false},{"id":687565804,"node_id":"MDU6TGFiZWw2ODc1NjU4MDQ=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/do-not-merge/hold","name":"do-not-merge/hold","color":"e11d21","default":false},{"id":105146071,"node_id":"MDU6TGFiZWwxMDUxNDYwNzE=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/bug","name":"kind/bug","color":"e11d21","default":false},{"id":148225179,"node_id":"MDU6TGFiZWwxNDgyMjUxNzk=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/lgtm","name":"lgtm","color":"15dd18","default":false},{"id":200149833,"node_id":"MDU6TGFiZWwyMDAxNDk4MzM=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note","name":"release-note","color":"c2e0c6","default":false},{"id":328487998,"node_id":"MDU6TGFiZWwzMjg0ODc5OTg=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/aws","name":"sig/aws","color":"d2b48c","default":false},{"id":958178286,"node_id":"MDU6TGFiZWw5NTgxNzgyODY=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/cloud-provider","name":"sig/cloud-provider","color":"d2b48c","default":false},{"id":253450934,"node_id":"MDU6TGFiZWwyNTM0NTA5MzQ=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/M","name":"size/M","color":"eebb00","default":false}],"state":"open","locked":false,"assignee":{"login":"justinsb","id":100893,"node_id":"MDQ6VXNlcjEwMDg5Mw==","avatar_url":"https://avatars2.githubusercontent.com/u/100893?v=4","gravatar_id":"","url":"https://api.github.com/users/justinsb","html_url":"https://github.com/justinsb","followers_url":"https://api.github.com/users/justinsb/followers","following_url":"https://api.github.com/users/justinsb/following{/other_user}","gists_url":"https://api.github.com/users/justinsb/gists{/gist_id}","starred_url":"https://api.github.com/users/justinsb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinsb/subscriptions","organizations_url":"https://api.github.com/users/justinsb/orgs","repos_url":"https://api.github.com/users/justinsb/repos","events_url":"https://api.github.com/users/justinsb/events{/privacy}","received_events_url":"https://api.github.com/users/justinsb/received_events","type":"User","site_admin":false},"assignees":[{"login":"justinsb","id":100893,"node_id":"MDQ6VXNlcjEwMDg5Mw==","avatar_url":"https://avatars2.githubusercontent.com/u/100893?v=4","gravatar_id":"","url":"https://api.github.com/users/justinsb","html_url":"https://github.com/justinsb","followers_url":"https://api.github.com/users/justinsb/followers","following_url":"https://api.github.com/users/justinsb/following{/other_user}","gists_url":"https://api.github.com/users/justinsb/gists{/gist_id}","starred_url":"https://api.github.com/users/justinsb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinsb/subscriptions","organizations_url":"https://api.github.com/users/justinsb/orgs","repos_url":"https://api.github.com/users/justinsb/repos","events_url":"https://api.github.com/users/justinsb/events{/privacy}","received_events_url":"https://api.github.com/users/justinsb/received_events","type":"User","site_admin":false},{"login":"micahhausler","id":791000,"node_id":"MDQ6VXNlcjc5MTAwMA==","avatar_url":"https://avatars3.githubusercontent.com/u/791000?v=4","gravatar_id":"","url":"https://api.github.com/users/micahhausler","html_url":"https://github.com/micahhausler","followers_url":"https://api.github.com/users/micahhausler/followers","following_url":"https://api.github.com/users/micahhausler/following{/other_user}","gists_url":"https://api.github.com/users/micahhausler/gists{/gist_id}","starred_url":"https://api.github.com/users/micahhausler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/micahhausler/subscriptions","organizations_url":"https://api.github.com/users/micahhausler/orgs","repos_url":"https://api.github.com/users/micahhausler/repos","events_url":"https://api.github.com/users/micahhausler/events{/privacy}","received_events_url":"https://api.github.com/users/micahhausler/received_events","type":"User","site_admin":false},{"login":"geojaz","id":9451328,"node_id":"MDQ6VXNlcjk0NTEzMjg=","avatar_url":"https://avatars2.githubusercontent.com/u/9451328?v=4","gravatar_id":"","url":"https://api.github.com/users/geojaz","html_url":"https://github.com/geojaz","followers_url":"https://api.github.com/users/geojaz/followers","following_url":"https://api.github.com/users/geojaz/following{/other_user}","gists_url":"https://api.github.com/users/geojaz/gists{/gist_id}","starred_url":"https://api.github.com/users/geojaz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geojaz/subscriptions","organizations_url":"https://api.github.com/users/geojaz/orgs","repos_url":"https://api.github.com/users/geojaz/repos","events_url":"https://api.github.com/users/geojaz/events{/privacy}","received_events_url":"https://api.github.com/users/geojaz/received_events","type":"User","site_admin":false},{"login":"kris-nova","id":13757818,"node_id":"MDQ6VXNlcjEzNzU3ODE4","avatar_url":"https://avatars2.githubusercontent.com/u/13757818?v=4","gravatar_id":"","url":"https://api.github.com/users/kris-nova","html_url":"https://github.com/kris-nova","followers_url":"https://api.github.com/users/kris-nova/followers","following_url":"https://api.github.com/users/kris-nova/following{/other_user}","gists_url":"https://api.github.com/users/kris-nova/gists{/gist_id}","starred_url":"https://api.github.com/users/kris-nova/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kris-nova/subscriptions","organizations_url":"https://api.github.com/users/kris-nova/orgs","repos_url":"https://api.github.com/users/kris-nova/repos","events_url":"https://api.github.com/users/kris-nova/events{/privacy}","received_events_url":"https://api.github.com/users/kris-nova/received_events","type":"User","site_admin":false}],"milestone":null,"comments":16,"created_at":"2018-09-07T20:33:41Z","updated_at":"2018-10-12T11:18:30Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/68422","html_url":"https://github.com/kubernetes/kubernetes/pull/68422","diff_url":"https://github.com/kubernetes/kubernetes/pull/68422.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/68422.patch"},"body":"This corrects a problem where valid security group ports were removed\r\nunintentionally when updating a service or when node changes occur.\r\n\r\n**What this PR does / why we need it**:\r\n\r\nThere is a bug in the existing logic that causes valid security group port mappings to be removed incorrectly.\r\n\r\n**Which issue(s) this PR fixes**:\r\n\r\nFixes #60825\r\n\r\n**Special notes for your reviewer**:\r\n\r\nThis still needs some unit tests. The existing loadbalancer tests are very minimal. Any pointers to how to mock security group actions?\r\n\r\n\r\n**Release note**:\r\n\r\n```release-note\r\nFix AWS NLB security group updates where valid security group ports were incorrectly removed\r\nwhen updating a service or when node changes occur.\r\n```\r\n\r\nRoot cause was an assumption that the list of security groups was actually a set.\r\n\r\nHere's some psuedo code of the cause:\r\n\r\n```\r\nexistingGroups = [g1:80, g1:80]  // <-- NOT a Set\r\ndesiredGroups = [g1:80]\r\n\r\nportChanges = { desiredGroups : ports }\r\n// portChanges = [g1:80 = true]\r\n\r\nfor g in existingGroups:\r\n    desiredSet.Insert(portChanges[g] == true)\r\n    // iter1: desiredSet = [ g1:80 ]\r\n    // iter2: desiredSet = [ ]\r\n    existingSet = portsForGroup() \r\n    // i1: existingSet = [ g1:80 ]\r\n    // i2: existingSet = [ g1:80 ]\r\n\r\n    alreadyExists = desiredSet.Intersection(existingSet)\r\n    removeAlreadyExistsFromPortChanges()\r\n    // i1: portChanges = []\r\n    // i2: portChanges = []\r\n\r\n    notDesired = existingSet.Minus(desiredSet)\r\n    // i1: notDesired = []\r\n    // i2: notDesired = [g1:80]\r\n    setPortChangeToFalseForNotDesired\r\n```"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/429292446","html_url":"https://github.com/kubernetes/kubernetes/pull/68422#issuecomment-429292446","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/68422","id":429292446,"node_id":"MDEyOklzc3VlQ29tbWVudDQyOTI5MjQ0Ng==","user":{"login":"k8s-ci-robot","id":20407524,"node_id":"MDQ6VXNlcjIwNDA3NTI0","avatar_url":"https://avatars0.githubusercontent.com/u/20407524?v=4","gravatar_id":"","url":"https://api.github.com/users/k8s-ci-robot","html_url":"https://github.com/k8s-ci-robot","followers_url":"https://api.github.com/users/k8s-ci-robot/followers","following_url":"https://api.github.com/users/k8s-ci-robot/following{/other_user}","gists_url":"https://api.github.com/users/k8s-ci-robot/gists{/gist_id}","starred_url":"https://api.github.com/users/k8s-ci-robot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k8s-ci-robot/subscriptions","organizations_url":"https://api.github.com/users/k8s-ci-robot/orgs","repos_url":"https://api.github.com/users/k8s-ci-robot/repos","events_url":"https://api.github.com/users/k8s-ci-robot/events{/privacy}","received_events_url":"https://api.github.com/users/k8s-ci-robot/received_events","type":"User","site_admin":false},"created_at":"2018-10-12T11:18:30Z","updated_at":"2018-10-12T11:18:30Z","author_association":"CONTRIBUTOR","body":"@kellycampbell: The following test **failed**, say `/retest` to rerun them all:\n\nTest name | Commit | Details | Rerun command\n--- | --- | --- | ---\npull-kubernetes-integration | a4036aac0748b19c108e6a39b544962cf5a62870 | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/68422/pull-kubernetes-integration/30776/) | `/test pull-kubernetes-integration`\n\n[Full PR test history](https://k8s-gubernator.appspot.com/pr/68422). [Your PR dashboard](https://k8s-gubernator.appspot.com/pr/kellycampbell). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes/kubernetes/issues?q=is:issue+is:open) when you hit one in your PR.\n\n<details>\n\nInstructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).\n</details>\n<!-- test report -->"}}
{"actor":{"display_login":"k8s-ci-robot"}}