{"action":"created","issue":{"url":"https://api.github.com/repos/coreos/mantle/issues/39","labels_url":"https://api.github.com/repos/coreos/mantle/issues/39/labels{/name}","comments_url":"https://api.github.com/repos/coreos/mantle/issues/39/comments","events_url":"https://api.github.com/repos/coreos/mantle/issues/39/events","html_url":"https://github.com/coreos/mantle/pull/39","id":68204098,"number":39,"title":"platform: factor plume GCE functionality into platform","user":{"login":"pbx0","id":10945781,"avatar_url":"https://avatars.githubusercontent.com/u/10945781?v=3","gravatar_id":"","url":"https://api.github.com/users/pbx0","html_url":"https://github.com/pbx0","followers_url":"https://api.github.com/users/pbx0/followers","following_url":"https://api.github.com/users/pbx0/following{/other_user}","gists_url":"https://api.github.com/users/pbx0/gists{/gist_id}","starred_url":"https://api.github.com/users/pbx0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbx0/subscriptions","organizations_url":"https://api.github.com/users/pbx0/orgs","repos_url":"https://api.github.com/users/pbx0/repos","events_url":"https://api.github.com/users/pbx0/events{/privacy}","received_events_url":"https://api.github.com/users/pbx0/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/coreos/mantle/labels/in%20progress","name":"in progress","color":"ededed"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-04-13T21:59:51Z","updated_at":"2015-04-13T23:29:20Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/coreos/mantle/pulls/39","html_url":"https://github.com/coreos/mantle/pull/39","diff_url":"https://github.com/coreos/mantle/pull/39.diff","patch_url":"https://github.com/coreos/mantle/pull/39.patch"},"body":"The platform package interface has been updated to accomodate an options\r\nstruct to handle all the options that cloud providers will need when\r\ncreating a new machine."},"comment":{"url":"https://api.github.com/repos/coreos/mantle/issues/comments/92532672","html_url":"https://github.com/coreos/mantle/pull/39#issuecomment-92532672","issue_url":"https://api.github.com/repos/coreos/mantle/issues/39","id":92532672,"user":{"login":"marineam","id":153640,"avatar_url":"https://avatars.githubusercontent.com/u/153640?v=3","gravatar_id":"","url":"https://api.github.com/users/marineam","html_url":"https://github.com/marineam","followers_url":"https://api.github.com/users/marineam/followers","following_url":"https://api.github.com/users/marineam/following{/other_user}","gists_url":"https://api.github.com/users/marineam/gists{/gist_id}","starred_url":"https://api.github.com/users/marineam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marineam/subscriptions","organizations_url":"https://api.github.com/users/marineam/orgs","repos_url":"https://api.github.com/users/marineam/repos","events_url":"https://api.github.com/users/marineam/events{/privacy}","received_events_url":"https://api.github.com/users/marineam/received_events","type":"User","site_admin":false},"created_at":"2015-04-13T23:29:20Z","updated_at":"2015-04-13T23:29:20Z","body":"What about instead of MachineOpts the machine startup gets split from object initialization. That could be useful for a few things:\r\n\r\n - In tests that need to manually configure an etcd cluster or similar with IP addresses it can create three machines, then update eachotehr's cloud config appropriately with the other's IPs.\r\n - Add additional network interfaces before starting (for QEMU)\r\n - Add cloud specific options before starting (for GCE)\r\n\r\nThat way there doesn't need to be a global structure that can do everything ever. This probably means that each cluster and machine struct should become public. Then the platform specific APIs become available via a type assertion.\r\n\r\nOpen to other ideas but that seems like a more flexible API"}}