{"action":"created","issue":{"url":"https://api.github.com/repos/deis/controller/issues/649","repository_url":"https://api.github.com/repos/deis/controller","labels_url":"https://api.github.com/repos/deis/controller/issues/649/labels{/name}","comments_url":"https://api.github.com/repos/deis/controller/issues/649/comments","events_url":"https://api.github.com/repos/deis/controller/issues/649/events","html_url":"https://github.com/deis/controller/pull/649","id":149882186,"number":649,"title":"feat(registry): add initial support to auth to an external Registry on per app basis","user":{"login":"helgi","id":70530,"avatar_url":"https://avatars.githubusercontent.com/u/70530?v=3","gravatar_id":"","url":"https://api.github.com/users/helgi","html_url":"https://github.com/helgi","followers_url":"https://api.github.com/users/helgi/followers","following_url":"https://api.github.com/users/helgi/following{/other_user}","gists_url":"https://api.github.com/users/helgi/gists{/gist_id}","starred_url":"https://api.github.com/users/helgi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/helgi/subscriptions","organizations_url":"https://api.github.com/users/helgi/orgs","repos_url":"https://api.github.com/users/helgi/repos","events_url":"https://api.github.com/users/helgi/events{/privacy}","received_events_url":"https://api.github.com/users/helgi/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/deis/controller/labels/awaiting%20review","name":"awaiting review","color":"e11d21"},{"url":"https://api.github.com/repos/deis/controller/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/deis/controller/labels/LGTM1","name":"LGTM1","color":"009800"}],"state":"open","locked":false,"assignee":{"login":"helgi","id":70530,"avatar_url":"https://avatars.githubusercontent.com/u/70530?v=3","gravatar_id":"","url":"https://api.github.com/users/helgi","html_url":"https://github.com/helgi","followers_url":"https://api.github.com/users/helgi/followers","following_url":"https://api.github.com/users/helgi/following{/other_user}","gists_url":"https://api.github.com/users/helgi/gists{/gist_id}","starred_url":"https://api.github.com/users/helgi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/helgi/subscriptions","organizations_url":"https://api.github.com/users/helgi/orgs","repos_url":"https://api.github.com/users/helgi/repos","events_url":"https://api.github.com/users/helgi/events{/privacy}","received_events_url":"https://api.github.com/users/helgi/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/deis/controller/milestones/6","html_url":"https://github.com/deis/controller/milestones/v2.0-beta3","labels_url":"https://api.github.com/repos/deis/controller/milestones/6/labels","id":1682307,"number":6,"title":"v2.0-beta3","description":null,"creator":{"login":"slack","id":28873,"avatar_url":"https://avatars.githubusercontent.com/u/28873?v=3","gravatar_id":"","url":"https://api.github.com/users/slack","html_url":"https://github.com/slack","followers_url":"https://api.github.com/users/slack/followers","following_url":"https://api.github.com/users/slack/following{/other_user}","gists_url":"https://api.github.com/users/slack/gists{/gist_id}","starred_url":"https://api.github.com/users/slack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slack/subscriptions","organizations_url":"https://api.github.com/users/slack/orgs","repos_url":"https://api.github.com/users/slack/repos","events_url":"https://api.github.com/users/slack/events{/privacy}","received_events_url":"https://api.github.com/users/slack/received_events","type":"User","site_admin":false},"open_issues":21,"closed_issues":10,"state":"open","created_at":"2016-04-04T15:55:21Z","updated_at":"2016-04-20T20:47:29Z","due_on":"2016-04-27T06:00:00Z","closed_at":null},"comments":0,"created_at":"2016-04-20T20:47:29Z","updated_at":"2016-04-20T21:10:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/deis/controller/pulls/649","html_url":"https://github.com/deis/controller/pull/649","diff_url":"https://github.com/deis/controller/pull/649.diff","patch_url":"https://github.com/deis/controller/pull/649.patch"},"body":"## Summary of Changes\r\n\r\nThis will allow for setting username and password for an external registry to pull images from\r\n\r\n`IMAGE_AUTH_USER` and `IMAGE_AUTH_PASSWORD` are support via `config:set` and this is per application.\r\n\r\nCurrently Docker Hub and Quay are supported and a basic support for long lived tokens under gcr.io - ECR is not supported at this time.\r\n\r\nFor GCR see https://cloud.google.com/container-registry/docs/auth#using_a_json_key_file\r\nThe JSON blob needs to be compacted using `jq -c .` or similar before being set\r\n\r\nThe UX for this will change, very soon. Doing a separate PR for that\r\n\r\n\r\n## Issue(s) that this PR Closes\r\n\r\nPlease list the issue(s) that this PR closes, similar to the below:\r\nref #639\r\nref #253 \r\n\r\n## Associated [End To End Test](https://github.com/deis/workflow-e2e) PR(s)\r\n\r\nWill come when UX has been sorted out\r\n\r\n## Associated [Documentation](https://github.com/deis/workflow) PR(s)\r\n\r\nWill come when UX has been sorted out\r\n\r\n# Associated [Design Document](http://docs.deis.io/en/latest/contributing/design-documents)(s)\r\n\r\nhttps://github.com/deis/workflow/issues/163\r\nhttps://github.com/deis/controller/issues/639\r\n\r\n## Testing Instructions\r\n\r\nPlease provide a detailed list for how to test the changes in this PR.\r\n\r\n1. Create a Deis Cluster\r\n2. Register an app\r\n3. Create a Private Repo on Quay.io\r\n4. Set user / pw via `IMAGE_AUTH_USER` and `IMAGE_AUTH_PASSWORD` using `config:set` for the app\r\n5. Do `deis pull` referencing an image in a private repo\r\n\r\nAlso, please provide a description of the desired result after the tester completes the above steps.\r\n\r\n1. The app called \"abcd\" should be deployed using the private image\r\n\r\n## Pull Request Hygiene TODOs\r\n\r\nPlease make sure the below checklist is complete.\r\n\r\n- [x] Your pull request is concise and to the point (make another PR for refactoring nearby code)\r\n- [x] Your commits are squashed into logical units of work\r\n- [x] Your commits follow the [commit style guidelines](http://docs.deis.io/en/latest/contributing/standards/#commit-style-guide)\r\n\r\n:cherry_blossom: Thank you! :cherry_blossom:"},"comment":{"url":"https://api.github.com/repos/deis/controller/issues/comments/212606954","html_url":"https://github.com/deis/controller/pull/649#issuecomment-212606954","issue_url":"https://api.github.com/repos/deis/controller/issues/649","id":212606954,"user":{"login":"codecov-io","id":8655789,"avatar_url":"https://avatars.githubusercontent.com/u/8655789?v=3","gravatar_id":"","url":"https://api.github.com/users/codecov-io","html_url":"https://github.com/codecov-io","followers_url":"https://api.github.com/users/codecov-io/followers","following_url":"https://api.github.com/users/codecov-io/following{/other_user}","gists_url":"https://api.github.com/users/codecov-io/gists{/gist_id}","starred_url":"https://api.github.com/users/codecov-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codecov-io/subscriptions","organizations_url":"https://api.github.com/users/codecov-io/orgs","repos_url":"https://api.github.com/users/codecov-io/repos","events_url":"https://api.github.com/users/codecov-io/events{/privacy}","received_events_url":"https://api.github.com/users/codecov-io/received_events","type":"User","site_admin":false},"created_at":"2016-04-20T21:10:38Z","updated_at":"2016-04-20T21:10:38Z","body":"## [Current coverage][1] is `82.75%`\n> Merging **#649** into **master** will increase coverage by **+0.19%** as of [`86b98ae`][3]\n\n\n```diff\n@@            master    #649   diff @@\n======================================\n  Files           29      29       \n  Stmts         2444    2465    +21\n  Branches       364     369     +5\n  Methods          0       0       \n======================================\n+ Hit           2018    2040    +22\n  Partial        120     120       \n+ Missed         306     305     -1\n```\n\n> Review entire [Coverage Diff][4] as of [`86b98ae`][3]\n\n\n[1]: https://codecov.io/github/deis/controller?ref=86b98ae8bc46e0d1398a8dafd763085009ebe788\n[2]: https://codecov.io/github/deis/controller/features/suggestions?ref=86b98ae8bc46e0d1398a8dafd763085009ebe788\n[3]: https://codecov.io/github/deis/controller/commit/86b98ae8bc46e0d1398a8dafd763085009ebe788\n[4]: https://codecov.io/github/deis/controller/compare/7bdc29a0ed79ed8245881fb35f102df51a7d7388...86b98ae8bc46e0d1398a8dafd763085009ebe788\n\n> Powered by [Codecov](https://codecov.io). Updated on successful CI builds."}}