{"action":"created","issue":{"url":"https://api.github.com/repos/Azure/acs-engine/issues/3556","repository_url":"https://api.github.com/repos/Azure/acs-engine","labels_url":"https://api.github.com/repos/Azure/acs-engine/issues/3556/labels{/name}","comments_url":"https://api.github.com/repos/Azure/acs-engine/issues/3556/comments","events_url":"https://api.github.com/repos/Azure/acs-engine/issues/3556/events","html_url":"https://github.com/Azure/acs-engine/pull/3556","id":344654546,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAzOTk5OTM5","number":3556,"title":"OSA external API","user":{"login":"jim-minter","id":1038301,"node_id":"MDQ6VXNlcjEwMzgzMDE=","avatar_url":"https://avatars2.githubusercontent.com/u/1038301?v=4","gravatar_id":"","url":"https://api.github.com/users/jim-minter","html_url":"https://github.com/jim-minter","followers_url":"https://api.github.com/users/jim-minter/followers","following_url":"https://api.github.com/users/jim-minter/following{/other_user}","gists_url":"https://api.github.com/users/jim-minter/gists{/gist_id}","starred_url":"https://api.github.com/users/jim-minter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jim-minter/subscriptions","organizations_url":"https://api.github.com/users/jim-minter/orgs","repos_url":"https://api.github.com/users/jim-minter/repos","events_url":"https://api.github.com/users/jim-minter/events{/privacy}","received_events_url":"https://api.github.com/users/jim-minter/received_events","type":"User","site_admin":false},"labels":[{"id":616225832,"node_id":"MDU6TGFiZWw2MTYyMjU4MzI=","url":"https://api.github.com/repos/Azure/acs-engine/labels/in%20progress","name":"in progress","color":"b8ddf9","default":false},{"id":936451056,"node_id":"MDU6TGFiZWw5MzY0NTEwNTY=","url":"https://api.github.com/repos/Azure/acs-engine/labels/size/L","name":"size/L","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":{"login":"jim-minter","id":1038301,"node_id":"MDQ6VXNlcjEwMzgzMDE=","avatar_url":"https://avatars2.githubusercontent.com/u/1038301?v=4","gravatar_id":"","url":"https://api.github.com/users/jim-minter","html_url":"https://github.com/jim-minter","followers_url":"https://api.github.com/users/jim-minter/followers","following_url":"https://api.github.com/users/jim-minter/following{/other_user}","gists_url":"https://api.github.com/users/jim-minter/gists{/gist_id}","starred_url":"https://api.github.com/users/jim-minter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jim-minter/subscriptions","organizations_url":"https://api.github.com/users/jim-minter/orgs","repos_url":"https://api.github.com/users/jim-minter/repos","events_url":"https://api.github.com/users/jim-minter/events{/privacy}","received_events_url":"https://api.github.com/users/jim-minter/received_events","type":"User","site_admin":false},"assignees":[{"login":"jim-minter","id":1038301,"node_id":"MDQ6VXNlcjEwMzgzMDE=","avatar_url":"https://avatars2.githubusercontent.com/u/1038301?v=4","gravatar_id":"","url":"https://api.github.com/users/jim-minter","html_url":"https://github.com/jim-minter","followers_url":"https://api.github.com/users/jim-minter/followers","following_url":"https://api.github.com/users/jim-minter/following{/other_user}","gists_url":"https://api.github.com/users/jim-minter/gists{/gist_id}","starred_url":"https://api.github.com/users/jim-minter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jim-minter/subscriptions","organizations_url":"https://api.github.com/users/jim-minter/orgs","repos_url":"https://api.github.com/users/jim-minter/repos","events_url":"https://api.github.com/users/jim-minter/events{/privacy}","received_events_url":"https://api.github.com/users/jim-minter/received_events","type":"User","site_admin":false}],"milestone":null,"comments":1,"created_at":"2018-07-26T00:42:20Z","updated_at":"2018-07-26T14:52:36Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/Azure/acs-engine/pulls/3556","html_url":"https://github.com/Azure/acs-engine/pull/3556","diff_url":"https://github.com/Azure/acs-engine/pull/3556.diff","patch_url":"https://github.com/Azure/acs-engine/pull/3556.patch"},"body":"Third iteration of OSA external API taking into account all discussion in #3434 and #3456.\r\n@pweil- @kargakis @mjudeikis @qike-ms @amanohar @nicolerenee ptal\r\n\r\nNotes:\r\n- as I suppose we will have compute, infra and master pools, I have recombined InfraPoolProfile back into AgentPoolProfiles.\r\n- I have removed more complex validation (`if infra.Count < 3` type stuff) - I think this belongs in the plugin, not here.  It is already present in azure-helm.\r\n- I have added OSType as I think it's probable enough that we might want it some day and it's neater for it to be in from the start rather than defaulted later (explicit over implicit).\r\n- I have implemented the reverse converter as it will be necessary to return output values.\r\n- I believe we should include Name and Role in AgentPoolProfile for mergeability (explicit over implicit).\r\n- I have removed the OpenShiftVersion field as @amanohar suggested.\r\n- I have removed the k8s errors import, I don't think it's appropriate in an API package.\r\n\r\nChecklist:\r\n- [ ] Decide if pointer is wanted in `type AgentPoolProfiles []*AgentPoolProfile` (AI @amanohar).\r\n- [ ] Discuss protocol around DNS fields.  What we have is basically workable but doesn't feel very elegant or future-proof (e.g. multiple routers, non-wildcard setups).\r\n- [ ] Discuss and get consensus around AgentPoolProfiles.  Are we happy enough with it?\r\n- [ ] Verify if any more than ServicePrincipalProfile is needed when MSI is enabled.\r\n- [ ] Merge this thing already."},"comment":{"url":"https://api.github.com/repos/Azure/acs-engine/issues/comments/408124547","html_url":"https://github.com/Azure/acs-engine/pull/3556#issuecomment-408124547","issue_url":"https://api.github.com/repos/Azure/acs-engine/issues/3556","id":408124547,"node_id":"MDEyOklzc3VlQ29tbWVudDQwODEyNDU0Nw==","user":{"login":"pweil-","id":5230419,"node_id":"MDQ6VXNlcjUyMzA0MTk=","avatar_url":"https://avatars2.githubusercontent.com/u/5230419?v=4","gravatar_id":"","url":"https://api.github.com/users/pweil-","html_url":"https://github.com/pweil-","followers_url":"https://api.github.com/users/pweil-/followers","following_url":"https://api.github.com/users/pweil-/following{/other_user}","gists_url":"https://api.github.com/users/pweil-/gists{/gist_id}","starred_url":"https://api.github.com/users/pweil-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pweil-/subscriptions","organizations_url":"https://api.github.com/users/pweil-/orgs","repos_url":"https://api.github.com/users/pweil-/repos","events_url":"https://api.github.com/users/pweil-/events{/privacy}","received_events_url":"https://api.github.com/users/pweil-/received_events","type":"User","site_admin":false},"created_at":"2018-07-26T14:52:36Z","updated_at":"2018-07-26T14:52:36Z","author_association":"COLLABORATOR","body":"> The idea of being able to control the settings individually on different pool types still appeals to me. For now everything is shared and can be embedded, in the future we'll have to start validating against role and settings if we have unshared items.\r\n\r\ndiscussed in scrum and resolved.  Keeping the single pool slice with specific config structs if/when necessary."}}
{"actor":{"display_login":"pweil-"}}