Planet Puppet

Your source of Puppet technical information

2021-05-14: IAC & DevX Team Status Update

daianamezdrea, May 14, 2021 12:00 AM | Source: Puppet IAC Team

Community Contributions

We’d like to thank the following people in the Puppet Community for their contributions over this past week:

Check all the ways to reach us ...

[ Read More ]

How to allow dynamic Terraform Provider Configuration

Raphaël Pinson, May 11, 2021 11:47 AM | Source: Camptocamp Blog

Terraform relies heavily on the concept of providers, a base brick which consists of Go plugins enabling the communication with an API.

Each provider gives access to one or more resource types, and these resources then manage objects on the target API.

Most of the time, a provider's configuration is static, e.g.

provider "aws" {
  region = "us-east-1"

However, in some cases, it is useful to configure a provider dynamically, using the attribute values from other resources as input for the provider's configuration.

I'll use the example of the Argo CD provider. In a single Terraform run ...

[ Read More ]

2021-05-07: IAC & DevX Team Status Update

carabasdaniel, May 07, 2021 12:00 AM | Source: Puppet IAC Team

Community Day

This week it was a bank holiday in EMEA, therefore community day has been rescheduled for next Monday.

Content Support team

As already mentioned this week, it was been pretty quiet with most of us on holidays. However we did manage to get a customer issue on our puppetlabs-iis module addressed. The team was made aware of this on Tuesday, it was picked up and triaged on Wednesday, reviewed and merged on Thursday and we aim for release on Monday during our team triage day.

We’re currently overhauling our Contribution Guidelines to reflect the new processes we introduced ...

[ Read More ]

How to port and run multi-node modules in cloud ci / gcp

sheenaajay, May 07, 2021 12:00 AM | Source: Puppet IAC Team

Multi Node Modules in GCP


Integration testing in puppet terms, is where we set up a number of vms/containers and test interactions between them. For example this may be

  • Install PE and set up some puppet agents to talk with it.
  • Setup a NTP server, and register some ntp clients.
  • Install puppet server and setup multiple puppet agents.

Ordering of the tests is important, and being able to run a test on an individual system is paramount.


We use the following workflow to run multi node modules on Cloud CI / GCP.

  • Provision - We use provision task ...

[ Read More ]

Terraform Project Design — A parallel with Puppet

Mickaël Canévet, May 03, 2021 11:57 AM | Source: Camptocamp Blog


Like Puppet, Terraform provides low-level objects written in a programming language that allows you to manage individual resources.

With Puppet, these low-level objects, the Puppet Types and Providers, written in Ruby, allow you to apply the CRUD paradigm to resources located on managed nodes.

With Terraform, these low-level objects, the Terraform Resources, written in Go, allow you to apply the CRUD paradigm to resources in an API.

On top of this, both solutions provide a DSL: the Puppet DSL for Puppet and the HashiCorp Configuration Language (HCL) for Terraform. They are both declarative languages, allowing ...

[ Read More ]

2021-04-30: IAC & DevX Team Status Update

jpogran, April 30, 2021 12:00 AM | Source: Puppet IAC Team

Community Day Triage Stats

New this week is the Developer Experience team joining Community Day to triage new and existing tickets in the tooling repositories.

The teams spring cleaning activities continues with 341 backlog issues being closed.

Next Monday, May 3rd we will have a reduced team covering community day due to Public holidays in our EMEA region.

Community Contributions

We’d like to thank the following people in the Puppet Community for their contributions over this past week:

[ Read More ]

Cloud Native Puppet Camp APAC: Submit your CFP + register

Anonymous, April 27, 2021 06:51 PM | Source: Puppet

Submit your CFP by 6 May for the Bridging to Cloud Native Puppet Camp on 20 May and sign up to attend! Check out all upcoming Puppet Camps too.

[ Read More ]

Puppet Releases Remediate 2.0

Anonymous, April 15, 2021 02:14 PM | Source: Puppet

Puppet Remediate 2.0 is here! Remediation teams and security teams can now view and talk about the nodes with consistency, making it easier to prioritize and contextualize remediation actions.

[ Read More ]

Testing Application Monitoring Locally with a Docker Composition

Julien Acroute, April 14, 2021 01:37 PM | Source: Camptocamp Blog

In the previous post, we saw how to implement metrics in a simple Python Flask application. In this post we will see how to:

  • start a local monitoring stack with a Docker composition
  • configure Prometheus to scrape metrics from our application
  • build a Grafana dashboard
  • commit the Dashboard definition so other developers can also use it


Before launching an application in a Kubernetes cluster, we need to make sure that it generates the right metrics. This will be done using a Prometheus stack running in a Docker composition.

This test Prometheus stack will be made of:

[ Read More ]

Announcing Relay’s General Availability Launch

Anonymous, April 06, 2021 01:00 PM | Source: Puppet

Relay is an easy-to-use workflow automation tool for cloud infrastructure operations. Build and share fully automated workflows in minutes instead of days. Visit​ to learn more.

[ Read More ]

Puppet on Windows: Top questions (and answers!)

Anonymous, April 01, 2021 02:07 PM | Source: Puppet

Whether you’re looking to expand across your Windows estate, or thinking of deploying Puppet for the first time, we hope these answers help you.

[ Read More ]

March Cloud Native Romandie Meetup

Raphaël Pinson, April 01, 2021 01:44 PM | Source: Camptocamp Blog

Last week, we organized our last Cloud Native Romandie Meetup. Due to the current situation, this was an online event like the previous occurrences.

The meetup was recorded and can be viewed again on YouTube.


For this edition, we had presentations by CloudBees, Exoscale, and Camptocamp.

CloudBees CI

Frédéric Gibelin from CloudBees presented CloudBees CI, a solution that helps users scale their Jenkins Enterprise platform in the Cloud.

See the slides

Exoscale SKS

Next Pierre-Yves Ritschard and Mathieu Corbin from Exoscale presented SKS, a Kubernetes as-a-Service, operating the user’s cluster on their behalf and ...

[ Read More ]

Puppet Tip 119 - Hiera merge behavior

Anonymous, February 11, 2021 12:00 AM | Source: Example 42

Hiera v5 allows you to provide information regarding merge behavior in a couple of different ways. Using different merge behaviors allows you to e.g. separate common (admin) users from application users by adding common users in common hiera layer and the application users into an application hiera layer. This reduces duplicates in data and allow more simple data management. Another example is installation of packages. You usually have a list of packages you need on all systems (admin packages) and some packages which are needed on special systems only. Again you can mention all common packages in hiera common laxer ...

[ Read More ]

From 2020 to 2021

Anonymous, January 12, 2021 12:00 AM | Source: Example 42

We are at the beginning of a new year, example42 wishes all customers, partners, colleagues, friends, and supporters a healthy, successful, and happy 2021. Looking back on 2020 Lookout to 2021 Looking back on 2020 2020 has been difficult for many people and organizations. Many of them have suffered due to lockdown and to local restrictions. Just consider musicians, artists and their crews who had to cancel event after event. Or think about local small business which had to close their shops. Others were able to continue their business and we are super happy that our customers enabled example42 to ...

[ Read More ]

Digging out data in style with puppet 4.5.0

Unknown (, January 11, 2021 02:46 PM | Source: Puppet on the Edge

In Puppet 4.5.0 there are a couple of new functions dig, then and lest that together with the existing assert_type and with functions makes it easy to do a number of tasks that earlier required conditional logic and temporary variables.

You typically run into a problem in programming languages in general when you are given a data structure consisting of hashes/arrays (or other objects), and you need to “dig out” a particular value, but you do not know if the path you want from the root of the structure actually exists.

Say you are given a hash like this: ...

[ Read More ]

Slicing and dicing Forge usage data

Anonymous, December 11, 2020 12:00 AM | Source:

The Forge content ecosystem is large and complex. There are a lot of modules, and modules that use resources from other modules. It can be hard to navigate these relationships when you’re deciding how to invest development resources. For example, it’s useful to know how many modules call a function when deciding whether we should deprecate it.

To assist in making these decisions, the Ecosystem program maintains a publicly accessible database that can help you weigh the costs of some of these decisions. You can use the data directly using the BigQuery console, or if your need is simply ...

[ Read More ]

Puppetize Digital - example42 talk about GIT workflows

Anonymous, November 13, 2020 12:00 AM | Source: Example 42

Puppetize Digital is coming! November 19th! example42 is super excited that we are again delivering a talk to a Puppet conference. This year Martin Alfke is talking about GIT workflows. The talk was prerecorded as Martin recovers from a dental surgery and will be broadcasted on November 19th at 1:30 PM (GMT) and at 2:30 PM (AEDT). Puppet and GIT Single long living branch - simple GIT Staging branches GIT flow Summary Puppet and GIT Working on Puppet always is fun. But working with GIT is hard for many people who are new to GIT. Single long living branch - ...

[ Read More ]

All our good reasons to sponsor Puppettize Digital

Anonymous, November 09, 2020 12:00 AM | Source: Example 42

Another year, another Puppet conference, and another time we are sponsoring it. Let’s see what, how and why. Puppettize Digital Sponsors, as usual Presenting at Puppettize Digital Puppet, for fun and business Puppettize Digital Puppettize Digital will be a 24 hours online event, on November 19, sprayed on three different continents timezones: Asia Pacific: 10:00 AM - 6:00 PM AEDT Europe 9:00 AM - 5:00 PM GMT Americas 9:00AM - 5:00 PM PST In GMT timezone this means: Asia Pacific: 11:00 PM (Nov 18) - 7:00 AM Europe 9:00 AM - 5:00 PM Americas 5:00 PM - 1:00 AM (Nov ...

[ Read More ]

How to update the PostgreSQL version on your puppetserver

admin, October 19, 2020 01:04 PM | Source: Immerda Techblog

Our puppetserver uses puppetdb which users PostgreSQL as the persistent datastore in the back.
So far everything is self-contained on the same VM and PostgreSQL is more less managed by the puppetdb module.
The puppetdb module takes care of setting up the PostgreSQL server and uses the upstream PostgreSQL yum module for the binaries. By default it uses PostgreSQL in version 9.6.

Lately, it was announced that puppetdb will start requiring PostgreSQL at least in version 11. Time to start to upgrade our PostgreSQL installation to be ready.

Since the upstream yum repository allows to install multiple version in parallel ...

[ Read More ]

Porting a module to RHEL 8

Anonymous, October 02, 2020 12:00 AM | Source:

Often, updating a Puppet module to work on a newer platform is mostly a case of fixing up a a few paths or package names. Sometimes though, more significant changes are called for. When updating to RHEL (or family) 8, here are some major changes that we’ve had to account for:

  • dnf is the new standard package manager.
  • Some services only log to systemd now and not to /var/log/*
  • has finally been superseded by Wayland.
  • iptables had been replaced with nftables.
  • The default Python version is now 3.x.
  • Replacing ntpd with the new chrony service. Yes, that means ...

[ Read More ]