# OpenVox - the new Puppet Open Source

Published initially at Heinlein Academy: https://www.heinlein-support.de/blog/openvox-das-neue-puppet-open-source

At the end of 2024, Puppet by Perforce Puppet announced that it would no longer develop Puppet Open Source. Instead, it will provide a product called "Puppet Core," which is no longer open source. The open source community has responded by creating a new project called "OpenVox" within the Vox Pupuli Puppet Community.

A guest article by lecturer and Puppet expert Martin Alfke (betadots GmbH)

## Open Source and Business

In recent years, there have been several cases where companies that have primarily developed an open source project have restricted their licenses. The best-known examples are Hashicorp (Terraform) and Redis. Puppet has now joined the ranks of these companies.

When Puppet began development in 2005, the GPL license was used. As part of the VC rounds and because the company wanted to develop a commercial application around Puppet, the license was changed to Apache 2 in 2011. In 2022, Puppet was acquired by Perforce.

## The New Puppet

Since the beginning of 2025, Puppet Open Source has no longer been developed. Instead, Perforce provides "Puppet Core" and "Puppet Enterprise." To use Puppet Core, you must agree to a EULA. If you want to develop modules for Puppet Core, you must agree to a Developer EULA.

What do these license agreements say?

**User EULA:**

- max. 25 nodes free of charge; if you want to manage more systems, you must purchase a user license.

```text
3.1: Each Managed Node in excess of twenty-five (25) requires the purchase of one subscription license for the applicable software ... ```

- No error analysis

```text
2.2: Customer shall not: (i) reverse engineer or otherwise attempt to discover the source code or human-readable data or underlying ideas or algorithms of the Software
```

- No support

```text
4.1: The Software does not come with a standard support services package for the Software
```

**Developer EULA:**

- No public CI pipelines

```text
2.2 Developer may not use the Software other than for (i) publication to the Puppet Forge, or (ii) for the Developer’s customer’s use only
```

- Module publications only on the Puppet Forge, or additionally on GitHub

```text
2.4 modules are created for (i) publication to the Puppet Forge, or (ii) for the Developer’s customer’s use only
```

In particular, the points of the Developer EULA do not allow a community that is based on GitHub developers and public pipelines can accept these licenses.

Perforce's offer for the community to develop in the Puppetlabs namespace on GitHub was firmly rejected by the community, as Perforce holds the admin rights in this namespace. Due to Perforce's very negative behavior toward the community (banning community admins in the Puppet Community Slack), Perforce could no longer be trusted. The request to transfer the namespace to the community was rejected, citing naming rights.

Details were discussed in subsequent meetings with Perforce. The community is still waiting for some information more than five months later. According to Paul Watzlawick, "You can't not communicate." From this, the community concluded that Perforce would not do anything further or respond. Thus, it was clear to everyone that there would be a fork of Puppet.

## Forks and Registered Trademarks

Regarding registered trademarks, the community was informed that the name "Puppet" had to be removed. After asking whether this also affected the API interface (lib/puppet), the technicians present gasped and put the topic on hold. At the next meeting, the community was informed that the naming rights could only be applied to software packages and not to API interfaces.

The decision was made to take a similar approach to MariaDB. MariaDB is a fork of MySQL. The packages have different names, but the executables and APIs remain unchanged.

## Community and business want compatibility

Since Puppet is relatively pointless as a product without extensions, an agreement was reached with Perforce to establish a Language Steering Committee in which incompatibilities or innovations to the Puppet programming language or tools can be discussed in advance. This is intended to ensure that Puppet extensions (modules) continue to be fully functional.

## What has been done so far?

The first important step is public build pipelines for software packaging. Perforce's packaging was generally done via private Jenkins pipelines, where the assembly of components was unknown. It's important to note that no further changes were made.
The installation and configuration paths are identical (/opt/puppetlabs and /etc/puppetlabs). This allows you to easily replace the Puppet open source packages with the OpenVox packages. No further adjustments or changes are necessary (drop-in replacement).

Due to naming rights, the Puppet containers are not allowed to be further developed. Instead, the community has migrated to the OpenVox implementation.

During the development of the software packages, new operating systems were added:

- EL 10
- Ubuntu 24
- Debian 12 and 13!

Support for enterprise operating systems (Solaris, AIX, ...) is currently not available. The community needs support from companies that provide either hardware or financial resources.

To test code against OpenVox, OpenVox is required as a Ruby gem. Since OpenVox/Puppet requires system information, Facter also had to be forked. The new name is "OpenFact."

## What's next

Gradually, every tool required for the functionality of OpenVox/Puppet DSL will be forked and further developed within the Vox Pupuli GitHub organization.

**Currently, we are working on two things:**

1. Replacement for the PDK (Puppet Development Kit)
1. Fork of Puppet Bolt Orchestration

We are also considering whether to change the license for further development. AGPL has been floated as an idea so far. A final decision is pending.

Other open source communities (Foreman, Debian, Arch Linux) have already switched from Puppet to OpenVox or are in the process of doing so.

## Sponsorship

As an open source community, we would like to operate on a non-profit basis. Nevertheless, it is important to ensure that:

- the community has everything it needs to work
- open source developers can make a living from their work

GitHub sponsored the Enterprise Account for the necessary work and administration. The University of Oslo provided a Puppet-managed, dedicated Kubernetes cluster for any work. The Vox Pupuli community launched a bounty program where people donate money for predefined work.

## Conclusion

Perforce's somewhat irrational approach surprised the community, but it also created new momentum. Many former community members have become active again.

Other communities are supporting the project. Companies have emerged that are supporting the project with time and money. Nevertheless, the issue of funding remains a major problem for the community. The community is therefore asking for financial support for the project [directly](https://voxpupuli.org/sponsoring/) or with the help of the [supporting companies](https://voxpupuli.org/openvox/support/).

## OpenVox and Puppet at the Heinlein Academy

For anyone interested in getting up to speed with Puppet and OpenVox, our Linux Academy will continue to offer two training courses for beginners and advanced Puppet users. In these courses, you can learn all about the latest developments in OpenVox firsthand from our expert Martin Alfke.

**Would you like to join us?**

From September 15, 2025 [OpenVox/Puppet Basics](https://www.heinlein-support.de/schulung/openvox-puppet-grundlagen) (Berlin)
From November 19, 2025 [OpenVox/Puppet Developers](https://www.heinlein-support.de/schulung/openvox-puppet-entwickler) (Berlin)
