Tuesday, September 23, 2014

News from PuppetConf - Puppet 4 server and agent

Puppet is working on new stuff for Puppet 4.x
During PuppetConf they provided information of upcoming changes:

What will the Puppet server side be like?

- continue usage of feature flags (like future parser)
- deprecation warnings are now a sign of upcoming maturity

Upcoming changes cover Puppet Language, Environments and Components

Changes to Language:

- data validation built into parameterized classes

define sinatra(String $regrets, Integer $amount) {
  notice "$regrets, I had $amount, I did it my way. Do bi do bi doo..."
sinatra{ frank:
  $regrets => regrets,
  $amount  => 2        # e.g. 'a few'

The sinatra define will validate that $regrets is a string and amount is an integer

Changes to Environments:

- we will have directory based environments.
- we will see environments to be similar to modules

Changes to Components

Puppet will break into more components (micro services).
This allows you better separation and scaling.
 Of course one can run all components bundled on one single system.

The puppet server side will be running on JVM with jruby.
We will no longer cope with Apache/Passenger tweaking.
This also leads to better Environment separation. And allow per environment pluginsync.

What will the Puppet Agent side be like?


Facter will be a native C++ application (cfacter).
Old custom facts will still be possible by a Ruby-C++-API.
Support for other languages (Perl, Python) is possible, but not yet implemented.

Puppet Agent

Comes next. Plans are to got for C++, too.
Puppet developers are eager to learn from community regarding masterless puppet.


Puppet Master is moving to JVM (https://github.com/puppetlabs/puppet-server)
Facter is moving to C++.
Agent is most likely to become also C++.

Most stuff is now moving away fro Ruby.
Puppet promized that Ruby is still the core and will be around for "a very long time" (Andy Parker @PuppetConf 2014).

No comments:

Post a Comment