2553 Commits

Author SHA1 Message Date
Mitchell Hashimoto
6eaa7726d9 website: use the comparison operators in Puppet docs 2013-12-11 12:39:42 -08:00
Mitchell Hashimoto
5dd150a941 provisioner/puppet-masterless: use Go 1.2 template comparators 2013-12-11 12:39:02 -08:00
Mitchell Hashimoto
41b323ce4f packer/plugin: communicate over unix domain sockets if you can 2013-12-11 12:24:45 -08:00
Mitchell Hashimoto
32ace2aa82 update CHANGELOG 2013-12-11 11:22:53 -08:00
Mitchell Hashimoto
4c9b14effe provisioner/puppet-masterless: validate manifest_dir is a dir 2013-12-11 11:21:51 -08:00
Mitchell Hashimoto
9b3f37b63f provisioner/puppet-masterless: simplify manifest dir upload 2013-12-11 11:20:22 -08:00
Mitchell Hashimoto
c09f37a68b go fmt 2013-12-11 11:19:36 -08:00
Mitchell Hashimoto
1ecdd43eca Merge branch 'configure-manifest-dir' of https://github.com/Jimdo/packer into Jimdo-configure-manifest-dir 2013-12-11 11:14:45 -08:00
Mitchell Hashimoto
c78da95e18 packer/rpc: remove the PortRange stuff 2013-12-10 18:49:07 -08:00
Mitchell Hashimoto
7085f5c85e website: update vsphere endpoint docs [GH-695] 2013-12-10 18:17:41 -08:00
Mitchell Hashimoto
916df47ff9 communicator/ssh: fix build 2013-12-10 18:14:02 -08:00
Mitchell Hashimoto
abe0d8b8a6 communicator/ssh: clearer logging [GH-699] 2013-12-10 18:10:15 -08:00
Mitchell Hashimoto
aad214793a packer/rpc: update some comments 2013-12-10 17:31:54 -08:00
Mitchell Hashimoto
2a17190946 Update CHANGELOG 2013-12-10 17:20:49 -08:00
Mitchell Hashimoto
d3f458116b Merge pull request #701 from mitchellh/rpc-refactor
RPC happens over single TCP connection per plugin now

Three benefits:
* Single file descriptor per plugin
* NAT-friendly since plugins don't have to dial back in to the host
* Opens the foundation that we can easily use Unix domain sockets and such

A handful of Packer users were having issues with highly parallel (many builder/provisioner) templates where their systems would quickly reach their default file descriptor limits. This was because the previous mechanism would use a single TCP connection per RPC server, and Packer needs many (one per interface, basically). 

This merges in a MuxConn that multiplexes many "streams" on top of a single io.ReadWriteCloser. The RPC system has been revamped to know about this and use unique stream IDs to send everything over a single connection per plugin.

Previously, the RPC mechanism would sometimes send an address to the remote end and expect the remote end to connect back to it. While Packer shouldn't run remotely, some firewalls were having issues. This should be gone.

Finally, it should be possible now to optimize and use Unix domain sockets on Unix systems, avoiding ports and firewalls altogether.
2013-12-10 17:19:25 -08:00
Mitchell Hashimoto
d71f72a955 Test on Go 1.2 2013-12-10 17:10:41 -08:00
Mitchell Hashimoto
dd50e9d535 packer/rpc: fix data race in MuxConn 2013-12-10 17:09:17 -08:00
Mitchell Hashimoto
10c90e6513 packer/rpc: edge-triggerd state changes for faster dial/accept 2013-12-10 17:01:02 -08:00
Mitchell Hashimoto
322343b631 packer/rpc: hard close all streams when underlying conn closes 2013-12-10 16:49:14 -08:00
Mitchell Hashimoto
1dd77ffe21 packer/rpc: need a real lock for closing 2013-12-10 16:23:47 -08:00
Mitchell Hashimoto
0a863c97a4 packer/rpc: implement proper close_wait state 2013-12-10 15:51:22 -08:00
Mitchell Hashimoto
aa38e7e628 packer/rpc: rename uploadReader to uploadData because that makes sense 2013-12-10 15:30:58 -08:00
Mitchell Hashimoto
f6bb61c490 packer/rpc: more robust communicator connection cleanup 2013-12-10 15:12:16 -08:00
Mitchell Hashimoto
aae2177156 packer/plugin: catch interrupts for every server 2013-12-10 14:12:00 -08:00
Mitchell Hashimoto
bf28b78d98 packer/rpc: improve logging for the MuxConn 2013-12-10 14:11:50 -08:00
Mitchell Hashimoto
faf0c12c47 plugin/*: update to latest API 2013-12-10 13:59:38 -08:00
Mitchell Hashimoto
c93daf6445 packer/plugin: use new RPC API 2013-12-10 13:47:18 -08:00
Mitchell Hashimoto
68b1a7b4c8 packer/rpc: remove unused methods 2013-12-10 13:26:07 -08:00
Mitchell Hashimoto
512e27bdf6 packer/rpc: complete command 2013-12-10 13:23:07 -08:00
Mitchell Hashimoto
27ff2dc7a9 packer/rpc: builds 2013-12-10 13:18:48 -08:00
Mitchell Hashimoto
9986ba64a0 packer/rpc: environment 2013-12-10 12:23:42 -08:00
Mitchell Hashimoto
c51e069a91 packer/rpc: Builder 2013-12-10 12:14:08 -08:00
Mitchell Hashimoto
2dab0cab07 packer/rpc: start command 2013-12-10 12:02:01 -08:00
Mitchell Hashimoto
13b8bef58f packer/rpc: Provisioner 2013-12-10 11:56:15 -08:00
Mitchell Hashimoto
88830b21b9 packer/rpc: Hook 2013-12-10 11:50:30 -08:00
Mitchell Hashimoto
92ec548dce packer/rpc: implement Communicator 2013-12-10 11:43:02 -08:00
Mitchell Hashimoto
bcebec8fc3 packer/rpc: better close states 2013-12-10 11:40:17 -08:00
Mitchell Hashimoto
0a6061fd0b packer/rpc: MuxConn writes don't block the whole loop 2013-12-10 10:44:57 -08:00
Mitchell Hashimoto
77638d0489 packer/rpc: MuxConn.NextId properly increments 2013-12-10 10:34:35 -08:00
Jan Brauer
6750335956 Merge branch 'master' into configure-manifest-dir 2013-12-10 09:08:11 +01:00
Mitchell Hashimoto
02a497c61b packer/rpc: get PostProcessor working 2013-12-09 19:07:36 -08:00
Mitchell Hashimoto
770a54afe5 packer/rpc: MuxConn can return next available stream ID 2013-12-09 16:27:13 -08:00
Mitchell Hashimoto
e63bdc29b0 packer/rpc: work-in-progress commit 2013-12-09 16:22:11 -08:00
Mitchell Hashimoto
0e7e945182 packer/rpc: post-processors work on a single connection 2013-12-09 15:44:00 -08:00
Mitchell Hashimoto
755f7c8562 packer/rpc: PostProcessor 2013-12-09 14:57:18 -08:00
Mitchell Hashimoto
f54e23d17b packer/rpc: Cache 2013-12-09 14:51:13 -08:00
Mitchell Hashimoto
0db9b7ad67 packer/rpc: use packer.MockArtifact 2013-12-09 14:46:33 -08:00
Mitchell Hashimoto
d88f8acf4e packer/rpc: tests passing 2013-12-09 14:44:26 -08:00
Mitchell Hashimoto
6f43f9bfd0 packer/rpc: update docs 2013-12-09 14:29:28 -08:00
Mitchell Hashimoto
a9b0081828 packer/rpc: muxconn is a lot more sane, acts like bsd socket 2013-12-09 14:24:55 -08:00