Feature #3408

Add compression support to puppet client

Added by Ben - about 2 years ago. Updated almost 2 years ago.

Status:Closed Start date:03/23/2010
Priority:Normal Due date:
Assignee:Markus Roberts % Done:

0%

Category:network
Target version:2.6.0
Affected Puppet version:0.25.4 Branch:http://github.com/masterzen/puppet/tree/tickets/testing/3408
Keywords:
Votes: 1

Description

When the puppetmaster is used with nginx, or some other similar server, compression can be easily configured and support should be added to the puppet client to take advantage with used over WAN links.

I have had some experience with Juniper WAN optimizers and the stats for compressing puppet comms are quite good and prompted me to request this feature.

25% compression of the puppet sessions is easily achieved by the Juniper devices.


Related issues

follows Puppet - Refactor #3373: Puppet should stream files directly to disk Closed 03/15/2010

History

Updated by Brice Figureau about 2 years ago

Ben – wrote:

When the puppetmaster is used with nginx, or some other similar server, compression can be easily configured and support should be added to the puppet client to take advantage with used over WAN links.

I have had some experience with Juniper WAN optimizers and the stats for compressing puppet comms are quite good and prompted me to request this feature.

25% compression of the puppet sessions is easily achieved by the Juniper devices.

I wish it would be possible, unfortunately puppetd uses the stdlib Net::Http library (mostly to limit the client dependencies) which under ruby 1.8 is pretty limited. For instance it doesn’t support compression (this is supported in ruby 1.9, though).

Although it might be possible to add support for compression easily with this lib: http://griffin.oobleyboo.com/files/http_encoding_helper/http_encoding_helper.rb

Updated by Ben - about 2 years ago

I am aware of the lack of support in ruby 1.8, but the benefits of implementing this for users who utilize puppet in a WAN environment would be huge. I did even looking at wrapping it up with an openvpn compression only tunnel or stunnel with compression enabled but those options are messy.

I would like to see support when running with ruby 1.8 as most of my clients are RHEL5, the http_encoding_helper looks good as it appears to use all standard libraries.

Even enabling support when ruby version is 1.9 or above would be a start.

Updated by Brice Figureau about 2 years ago

  • Category set to network
  • Status changed from Unreviewed to Accepted
  • Assignee set to Brice Figureau

I started working on this topic, it will be part of the work I’m doing for #3373.

Updated by Brice Figureau about 2 years ago

  • Status changed from Accepted to In Topic Branch Pending Review
  • Assignee changed from Brice Figureau to Markus Roberts
  • Target version set to 2.6.0
  • Branch set to http://github.com/masterzen/puppet/tree/tickets/testing/3408

I sent the patch to puppet-dev, waiting for review.

The patch for testing is available in the tickets/testing/3408 branch in my github repository: http://github.com/masterzen/puppet/tree/tickets/testing/3408

This patch is on top of #3373.

Updated by Markus Roberts about 2 years ago

  • Status changed from In Topic Branch Pending Review to Merged - Pending Release

Updated by Ben - almost 2 years ago

Can I get a patch for 0.25.5 to enable client compression support?

Updated by James Turnbull almost 2 years ago

Unfortunately those patches are built on the development branch and I do not believe it will be possible to back port them to the 0.25.x branch.

Updated by Markus Roberts almost 2 years ago

  • Status changed from Merged - Pending Release to Closed

Pushed to master in commit:052f98fdac20af4593372ecedaa13af97664a482

Also available in: Atom PDF