{"action":"created","issue":{"url":"https://api.github.com/repos/mitchellh/packer/issues/3625","repository_url":"https://api.github.com/repos/mitchellh/packer","labels_url":"https://api.github.com/repos/mitchellh/packer/issues/3625/labels{/name}","comments_url":"https://api.github.com/repos/mitchellh/packer/issues/3625/comments","events_url":"https://api.github.com/repos/mitchellh/packer/issues/3625/events","html_url":"https://github.com/mitchellh/packer/pull/3625","id":160392334,"number":3625,"title":"WIP: LXD builder","user":{"login":"ChrisLundquist","id":181256,"avatar_url":"https://avatars.githubusercontent.com/u/181256?v=3","gravatar_id":"","url":"https://api.github.com/users/ChrisLundquist","html_url":"https://github.com/ChrisLundquist","followers_url":"https://api.github.com/users/ChrisLundquist/followers","following_url":"https://api.github.com/users/ChrisLundquist/following{/other_user}","gists_url":"https://api.github.com/users/ChrisLundquist/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisLundquist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisLundquist/subscriptions","organizations_url":"https://api.github.com/users/ChrisLundquist/orgs","repos_url":"https://api.github.com/users/ChrisLundquist/repos","events_url":"https://api.github.com/users/ChrisLundquist/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisLundquist/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mitchellh/packer/labels/need-documentation","name":"need-documentation","color":"fbca04"},{"url":"https://api.github.com/repos/mitchellh/packer/labels/new-plugin-contribution","name":"new-plugin-contribution","color":"0e8a16"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-06-15T10:46:48Z","updated_at":"2016-06-15T11:24:17Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mitchellh/packer/pulls/3625","html_url":"https://github.com/mitchellh/packer/pull/3625","diff_url":"https://github.com/mitchellh/packer/pull/3625.diff","patch_url":"https://github.com/mitchellh/packer/pull/3625.patch"},"body":"Adds an LXD builder.\r\n\r\nTODO Docs."},"comment":{"url":"https://api.github.com/repos/mitchellh/packer/issues/comments/226159776","html_url":"https://github.com/mitchellh/packer/pull/3625#issuecomment-226159776","issue_url":"https://api.github.com/repos/mitchellh/packer/issues/3625","id":226159776,"user":{"login":"ChrisLundquist","id":181256,"avatar_url":"https://avatars.githubusercontent.com/u/181256?v=3","gravatar_id":"","url":"https://api.github.com/users/ChrisLundquist","html_url":"https://github.com/ChrisLundquist","followers_url":"https://api.github.com/users/ChrisLundquist/followers","following_url":"https://api.github.com/users/ChrisLundquist/following{/other_user}","gists_url":"https://api.github.com/users/ChrisLundquist/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisLundquist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisLundquist/subscriptions","organizations_url":"https://api.github.com/users/ChrisLundquist/orgs","repos_url":"https://api.github.com/users/ChrisLundquist/repos","events_url":"https://api.github.com/users/ChrisLundquist/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisLundquist/received_events","type":"User","site_admin":false},"created_at":"2016-06-15T11:24:17Z","updated_at":"2016-06-15T11:24:17Z","body":"In short:\r\nThey are different, but very similar targets.\r\n\r\nLXD at the moment is more or less a layer on top of LXC, much like how Docker was once.\r\n\r\nThe main differentiators here are:\r\n* The final artifact form is slightly different (different metadata/config files)\r\n* The command lines are slightly different\r\n* `lxc` vs `lxc1` packages on ubuntu 16.04. Both packages can be installed side by side for these builders.\r\n\r\nLXC assumes the container is on the local host (using cd, chroot, and cp).\r\nLXD builds upon LXC most notably adding an HTTP API.\r\nThis allows targeting remote LXD hosts to build a container, again, similar to how Docker does.\r\n\r\nThe LXC builder at heart is a debootstrap builder, then adds a LXC config file, and compresses it.\r\nThis builder *could* do that, but I'm not quite familiar enough with generating the metadata and templates required for networking and other things to work.\r\n\r\nThis LXD builder takes a base image, either local or remote, then builds upon it.\r\n\r\nBecause of the similarity between the container builders, we could introduce the idea of builder pipelines, much like how we have post-processor pipelines. Most of these builders would probably start with a debootstrap like approach, then massage that into the right compressed format, with the right config files.\r\n\r\nThe builder pipeline approach seemed a little ambitious, so I went with this route which is more straight forward."}}
{"actor":{"display_login":"ChrisLundquist"}}