diff options
author | Luke Kaines <luke@puppetlabs.com> | 2011-06-07 15:58:26 -0700 |
---|---|---|
committer | Daniel Pittman <daniel@puppetlabs.com> | 2011-06-07 15:58:26 -0700 |
commit | 48aafa3a5c553fec7b9a5193febd5591937d5680 (patch) | |
tree | 8566b7ba9bf4ee47de760c154bf77c7de73e0813 /examples/code/snippets/classheirarchy.pp | |
parent | 368b516d39ec36222421c09ac5c592e0a1ff7126 (diff) | |
download | puppet-48aafa3a5c553fec7b9a5193febd5591937d5680.tar.gz puppet-48aafa3a5c553fec7b9a5193febd5591937d5680.tar.xz puppet-48aafa3a5c553fec7b9a5193febd5591937d5680.zip |
(#6873) Add Static Compiler terminus to 2.7.0
This adds the static compiler terminus to the release. This wraps the default
compiler terminus, and post-processes the catalog to rewrite every file
reference using the 'puppet://' URI/protocol into filebucket references that
use the MD5 checksum of the file contents.
This provides a genuinely static catalog, in terms of content: there are no
external dependencies that can change to make the behaviour of applying this
catalog change.
It also eliminates the describe calls from file checking, as all the metadata
is stored locally in the catalog. This can be a substantial performance
increase for nodes, especially those that manage large trees of recursive
files.
To use this set the `catalog_terminus` to `static_compiler`; the resultant
catalog will then reference only static content. This does not, however, put
the required files into the filebucket on the client.
There are some limitations of this code:
* Files are all read into memory rather than streamed. This will definitely
cause problems with large files, but the filebucket doesn't currently
handle streaming.
* We think the recursion behavior is equivalent, but can't really guarantee
it without a good bit of testing.
* You have to populate the client filebucket manually. We don't have any
support for doing this automatically, not even through variant access to
the catalog downloader.
* Behavior on the server is currently undefined if your puppet masters are
behind a load balancer and they're configured to do fileserving through
that load balancer. It should work, but it probably won't be that fast.
You can see https://github.com/lak/puppet-static-compiler for the original
prototype this was inherited from, which includes some example code for
scanning the downloaded catalog and fetching resources into the filebucket.
Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>
Diffstat (limited to 'examples/code/snippets/classheirarchy.pp')
0 files changed, 0 insertions, 0 deletions