diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 7a5e176c..2bac40a5 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -13,6 +13,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
+ - uses: DavidAnson/markdownlint-cli2-action@v20
+ with:
+ globs: '**/*.md'
- name: Install Ruby 3
uses: ruby/setup-ruby@v1
with:
diff --git a/.markdownlint.yaml b/.markdownlint.yaml
new file mode 100644
index 00000000..218a387c
--- /dev/null
+++ b/.markdownlint.yaml
@@ -0,0 +1,8 @@
+---
+default: true
+
+line-length: false
+no-inline-html: false
+first-line-heading: false
+no-alt-text: false
+descriptive-link-text: false
diff --git a/README.md b/README.md
index 3114b6e9..dec16098 100644
--- a/README.md
+++ b/README.md
@@ -18,14 +18,14 @@ what this is all about.
## Building this site
-* `bundle install`
-* `bundle exec jekyll serve -w --config _config.yml,_config-dev.yml`
+- `bundle install`
+- `bundle exec jekyll serve -w --config _config.yml,_config-dev.yml`
You can also use the rake tasks defined in the `Rakefile`:
-* `build`: `jekyll build`
-* `validate`: uses html-proofer to check the generated site
-* `clean`: removes the `./_site` directory Jekyll generated
+- `build`: `jekyll build`
+- `validate`: uses html-proofer to check the generated site
+- `clean`: removes the `./_site` directory Jekyll generated
## Puppet Plugins
@@ -93,7 +93,7 @@ by running `bundle exec rake test` and `bundle exec rake build`.
Docs can have the following header:
-```
+```markdown
---
layout: post
title: Deprecated and Archived Modules
@@ -104,11 +104,11 @@ last_updater: bastelfreak
---
```
-* `title` will be used in the URL + in the header
-* `date` is assumed as the date of publishing
-* `summary` is a short roundup used on the navigation page
-* `github_username` the GitHub username of the original author, optional attribute
-* `last_update` the GitHub username of the author from the last update, optional attribute (if it was updated is determined by Jekyll automatically)
+- `title` will be used in the URL + in the header
+- `date` is assumed as the date of publishing
+- `summary` is a short roundup used on the navigation page
+- `github_username` the GitHub username of the original author, optional attribute
+- `last_update` the GitHub username of the author from the last update, optional attribute (if it was updated is determined by Jekyll automatically)
## License
diff --git a/_docs/arch_load_balanced.md b/_docs/arch_load_balanced.md
index 4ee953ab..bfaa03ad 100644
--- a/_docs/arch_load_balanced.md
+++ b/_docs/arch_load_balanced.md
@@ -11,7 +11,6 @@ summary: A complete server/agent architecture with multiple compilers and load b
This architecture is intended for large infrastructures or dynamic infrastructures
that require the redundancy of multiple compilers.
-
graph LR;
git(Git Repository)
@@ -34,9 +33,9 @@ that require the redundancy of multiple compilers.
Agent2(Agent 2)
Agent_n(Agent n)
- click HDM "https://github.com/betadots/hdm" "HDM is a web interface for analyzing and managing hiera data."
- click Foreman "https://www.theforeman.org" "Foreman is a complete lifecycle management tool for physical and virtual servers."
- click Webhook "https://github.com/voxpupuli/puppet_webhook" "A webhook service that can trigger code deploys from source code repository updates."
+ click HDM "" "HDM is a web interface for analyzing and managing hiera data."
+ click Foreman "" "Foreman is a complete lifecycle management tool for physical and virtual servers."
+ click Webhook "" "A webhook service that can trigger code deploys from source code repository updates."
git --webhook--> Webhook
Webhook --r10k code deploy--> MainPuppetServer
@@ -65,14 +64,12 @@ that require the redundancy of multiple compilers.
{write a guide on how to deploy, configure, and use this architecture}
-
### Git Repository
We recommend organizing your code as a Control Repository with branches for
environments. See the [reference repository](https://github.com/puppetlabs/control-repo)
for an example.
-
### Foreman
[Foreman](https://www.theforeman.org) is a complete lifecycle management tool
@@ -81,7 +78,6 @@ classifier, a Hiera data source, and report monitoring. It also includes the
power to easily automate repetitive tasks, quickly deploy applications, and
proactively manage servers, on-premise or in the cloud.
-
### Puppet Webhook
Configure [Puppet Webhook](https://github.com/voxpupuli/puppet_webhook) to receive
@@ -91,7 +87,6 @@ using the Bolt task from the [puppet-r10k module](https://github.com/voxpupuli/p
to trigger code deployments on each compiler, or you can also install
Puppet Webhook on each.
-
### Code Deployment
[r10k](https://github.com/puppetlabs/r10k) is considered the default Puppet code
@@ -100,28 +95,26 @@ infrastructure and use it to deploy your control repository as needed.
If you're a Golang shop, you might consider [g10k](https://github.com/xorpaul/g10k) as well.
-
### Load Balancer
Puppet Agent Server connections are connections with long duration. Therfore it is highly recommended to use `least_connection` algorithm.
Any kind of load-balancer is sufficient. [HAProxy](https://www.haproxy.org/) is well supported and allows flexibility.
-
### Puppet Stack
We recommend managing each of these components with the supported module.
* PuppetDB
- * [puppetlabs/puppetdb](https://forge.puppet.com/puppetlabs/puppetdb)
- * The default PostgreSQL database is recommended.
+ * [puppetlabs/puppetdb](https://forge.puppet.com/puppetlabs/puppetdb)
+ * The default PostgreSQL database is recommended.
* Puppet Server
- * [theforeman/puppet](https://forge.puppet.com/modules/theforeman/puppet)
+ * [theforeman/puppet](https://forge.puppet.com/modules/theforeman/puppet)
* Puppet Agents
- * [puppetlabs/puppet_agent](https://forge.puppet.com/puppetlabs/puppet_agent)
+ * [puppetlabs/puppet_agent](https://forge.puppet.com/puppetlabs/puppet_agent)
* Puppet Metrics Dashboard
- * [puppetlabs/puppet_metrics_dashboard](https://forge.puppet.com/puppetlabs/puppet_metrics_dashboard)
+ * [puppetlabs/puppet_metrics_dashboard](https://forge.puppet.com/puppetlabs/puppet_metrics_dashboard)
* Hiera Data Manager (HDM)
- * [puppet/hdm](https://forge.puppet.com/modules/puppet/hdm)
+ * [puppet/hdm](https://forge.puppet.com/modules/puppet/hdm)
* HAproxy LoadBalancer
- * [puppetlabs/haproxy](https://forge.puppet.com/modules/puppetlabs/haproxy)
+ * [puppetlabs/haproxy](https://forge.puppet.com/modules/puppetlabs/haproxy)
diff --git a/_docs/arch_single_server.md b/_docs/arch_single_server.md
index 7763ee45..5b1a181e 100644
--- a/_docs/arch_single_server.md
+++ b/_docs/arch_single_server.md
@@ -34,15 +34,15 @@ HDM --- OpenVoxServer
Puppetboard --- OpenVoxDB
OpenVoxServer --- Agent1("Agent 1") & Agent2("Agent 2") & Agent_n("Agent n")
-click Foreman "https://www.theforeman.org/"
-click Webhook "https://github.com/voxpupuli/webhook-go?tab=readme-ov-file#webhook-go"
-click OpenVoxDB "https://github.com/OpenVoxProject/openvoxdb"
-click HDM "https://github.com/betadots/hdm?tab=readme-ov-file#hdm---hiera-data-manager"
-click Puppetboard "https://github.com/voxpupuli/puppetboard?tab=readme-ov-file#puppetboard"
-click OpenVoxServer "https://github.com/OpenVoxProject/openvox-server?tab=readme-ov-file#puppet-server"
-click Agent1 "https://github.com/OpenVoxProject/openvox-agent?tab=readme-ov-file#the-puppet-agent"
-click Agent2 "https://github.com/OpenVoxProject/openvox-agent?tab=readme-ov-file#the-puppet-agent"
-click Agent_n "https://github.com/OpenVoxProject/openvox-agent?tab=readme-ov-file#the-puppet-agent"
+click Foreman ""
+click Webhook ""
+click OpenVoxDB ""
+click HDM ""
+click Puppetboard ""
+click OpenVoxServer ""
+click Agent1 ""
+click Agent2 ""
+click Agent_n ""
## Setup and Usage
@@ -59,7 +59,6 @@ We recommend organizing your code as a Control Repository with branches for
environments. See the [reference repository](https://github.com/puppetlabs/control-repo)
for an example.
-
### Foreman
[Foreman](https://www.theforeman.org) is a complete lifecycle management tool
@@ -68,7 +67,6 @@ classifier, a Hiera data source, and report monitoring. It also includes the
power to easily automate repetitive tasks, quickly deploy applications, and
proactively manage servers, on-premise or in the cloud.
-
### Puppet Webhook
Vox Pupuli offers [webhook-go](https://github.com/voxpupuli/webhook-go?tab=readme-ov-file#webhook-go), an open source ([Apache-2.0 licensed](https://github.com/voxpupuli/webhook-go/blob/master/LICENSE)) webhook that can listen for events from:
@@ -93,24 +91,23 @@ Install it on your server in your infrastructure and use it to deploy your contr
If you're a Golang shop, you might consider [g10k](https://github.com/xorpaul/g10k) as well.
-
### OpenVox Stack
We recommend managing each of these components with the supported module.
* OpenVoxDB
- * [puppetlabs/puppetdb](https://forge.puppet.com/puppetlabs/puppetdb)
- * The default PostgreSQL database is recommended.
+ * [puppetlabs/puppetdb](https://forge.puppet.com/puppetlabs/puppetdb)
+ * The default PostgreSQL database is recommended.
* OpenVoxServer and agents
- * [theforeman/puppet](https://forge.puppet.com/modules/theforeman/puppet)
+ * [theforeman/puppet](https://forge.puppet.com/modules/theforeman/puppet)
* Hiera Data Manager (HDM)
- * [puppet/hdm](https://forge.puppet.com/modules/puppet/hdm)
+ * [puppet/hdm](https://forge.puppet.com/modules/puppet/hdm)
* r10k & webhook-go
- * [puppet/r10k](https://forge.puppet.com/modules/puppet/r10k/readme)
+ * [puppet/r10k](https://forge.puppet.com/modules/puppet/r10k/readme)
* nftables firewalling
- * [puppet/nftables](https://forge.puppet.com/modules/puppet/nftables/readme)
+ * [puppet/nftables](https://forge.puppet.com/modules/puppet/nftables/readme)
* [InfluxDB](https://www.influxdata.com/products/influxdb/), [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/) & [Grafana](https://grafana.com/oss/grafana/) for monitoring
- * [puppetlabs/puppet_operational_dashboards](https://forge.puppet.com/modules/puppetlabs/puppet_operational_dashboards/readme) (ships ready to use dashboards)
+ * [puppetlabs/puppet_operational_dashboards](https://forge.puppet.com/modules/puppetlabs/puppet_operational_dashboards/readme) (ships ready to use dashboards)
## Scaleout options
diff --git a/_docs/extending-expired-ca-cert.md b/_docs/extending-expired-ca-cert.md
index e7969245..5e19d958 100644
--- a/_docs/extending-expired-ca-cert.md
+++ b/_docs/extending-expired-ca-cert.md
@@ -18,7 +18,8 @@ The script performs the following steps:
1. Sets up a temporary SSL environment.
2. Generates a new CA certificate with the expiration set 15 years into the future.
3. Writes the new certificate to the directory returned by:
- ```
+
+ ```shell
puppet config print --section master cacert
```
@@ -27,22 +28,28 @@ The new file will be named using the format: `ca_crt-expires-.pem`
## Steps after running the script
1. Examine the end date of the new certificate by executing:
-```
-openssl x509 -in -noout -subject -issuer -enddate
-```
-Confirm the issuer matches your existing CA and that the expiration date is 15 years in the future.
-2. Back up the current certificate and install the new one:
-```
-# Assuming the directory where the CA is stored is /etc/puppetlabs/puppet/ssl/ca
-mv /etc/puppetlabs/puppet/ssl/ca/ca_crt.pem /etc/puppetlabs/puppet/ssl/ca/ca_crt.pem.bak.$(date +%F)
-mv /etc/puppetlabs/puppet/ssl/ca/ca_crt.pem
-```
-3. Restart the OpenVox server.
-```
-systemctl restart puppetserver
-```
-# OpenVox agents
+ ```shell
+ openssl x509 -in -noout -subject -issuer -enddate
+ ```
+
+ Confirm the issuer matches your existing CA and that the expiration date is 15 years in the future.
+
+1. Back up the current certificate and install the new one:
+
+ ```shell
+ # Assuming the directory where the CA is stored is /etc/puppetlabs/puppet/ssl/ca
+ mv /etc/puppetlabs/puppet/ssl/ca/ca_crt.pem /etc/puppetlabs/puppet/ssl/ca/ca_crt.pem.bak.$(date +%F)
+ mv /etc/puppetlabs/puppet/ssl/ca/ca_crt.pem
+ ```
+
+1. Restart the OpenVox server.
+
+ ```shell
+ systemctl restart puppetserver
+ ```
+
+## OpenVox agents
The following assumes the CA certificate is stored in the default location:
`/etc/puppetlabs/puppet/ssl/certs/ca.pem`.
@@ -52,13 +59,14 @@ The following assumes the CA certificate is stored in the default location:
The new certificate can be downloaded via the HTTP API using the following
command:
-```
+```shell
curl https://:8140/puppet-ca/v1/certificate/ca --insecure > /etc/puppetlabs/puppet/ssl/certs/ca.pem
```
A command similar to the above would need to be orchestrated across all of your agents.
## OpenVox agents on version 8 and newer
+
Agents running Puppet 8+ will automatically fetch the updated CA certificate according to the [ca_refresh_interval](https://github.com/OpenVoxProject/openvox/blob/main/references/configuration.md#ca_refresh_interval) setting.
## Older agents
diff --git a/_docs/how_to_run_tests.md b/_docs/how_to_run_tests.md
index c661bd5e..6fe02769 100644
--- a/_docs/how_to_run_tests.md
+++ b/_docs/how_to_run_tests.md
@@ -5,26 +5,26 @@ summary: A description of how to run the Vox Pupuli test suite for Puppet module
---
- [Running the tests in a local ruby environment](#running-the-tests-in-a-local-ruby-environment)
- * [Installing dependencies](#installing-dependencies)
- * [Vox Pupuli helpers](#vox-pupuli-helpers)
- * [Linting](#linting)
- * [REFERENCE.md update](#referencemd-update)
- * [Unit tests](#unit-tests)
- + [Detailed sub tasks](#detailed-sub-tasks)
- * [Running Acceptance Tests](#running-acceptance-tests)
- + [Beaker hypervisors](#beaker-hypervisors)
- + [Environment variables and hostnames](#environment-variables-and-hostnames)
- + [Getting setfiles for a module](#getting-setfiles-for-a-module)
- + [Running Beaker](#running-beaker)
- + [Custom Facts](#custom-facts)
- + [Run a specific test](#run-a-specific-test)
+ - [Installing dependencies](#installing-dependencies)
+ - [Vox Pupuli helpers](#vox-pupuli-helpers)
+ - [Linting](#linting)
+ - [REFERENCE.md update](#referencemd-update)
+ - [Unit tests](#unit-tests)
+ - [Detailed sub tasks](#detailed-sub-tasks)
+ - [Running Acceptance Tests](#running-acceptance-tests)
+ - [Beaker hypervisors](#beaker-hypervisors)
+ - [Environment variables and hostnames](#environment-variables-and-hostnames)
+ - [Getting setfiles for a module](#getting-setfiles-for-a-module)
+ - [Running Beaker](#running-beaker)
+ - [Custom Facts](#custom-facts)
+ - [Run a specific test](#run-a-specific-test)
- [Running the tests in the VoxBox container](#running-the-tests-in-the-voxbox-container)
- * [Installation](#installation)
- * [Linting](#linting-in-voxbox)
- * [Rubocop](#rubocop)
- * [Unit tests](#unit-tests-in-voxbox)
- * [REFERENCE.md update](#referencemd-update-in-voxbox)
- * [Puppetfile](#puppetfile)
+ - [Installation](#installation)
+ - [Linting](#linting-in-voxbox)
+ - [Rubocop](#rubocop)
+ - [Unit tests](#unit-tests-in-voxbox)
+ - [REFERENCE.md update](#referencemd-update-in-voxbox)
+ - [Puppetfile](#puppetfile)
The testing and development tools have a bunch of dependencies, all managed by [bundler](http://bundler.io/).
By default the tests use the latest version of Puppet.
@@ -88,9 +88,9 @@ If you don't know if you need to install or update gems, you can just add `bundl
Check out the following page if you want to add a test suite to your module or want
to learn more about the Vox Pupuli test helpers:
-* [voxpupuli-test](https://github.com/voxpupuli/voxpupuli-test) for unit testing
-* [voxpupuli-acceptance](https://github.com/voxpupuli/voxpupuli-acceptance) for acceptance testing
-* [voxpupuli-release](https://github.com/voxpupuli/voxpupuli-release) for creating a release
+- [voxpupuli-test](https://github.com/voxpupuli/voxpupuli-test) for unit testing
+- [voxpupuli-acceptance](https://github.com/voxpupuli/voxpupuli-acceptance) for acceptance testing
+- [voxpupuli-release](https://github.com/voxpupuli/voxpupuli-release) for creating a release
### Linting
@@ -201,18 +201,18 @@ _Remember to add your user to the group that allows access to docker/libvirt._
For Vox Pupuli's acceptance testing suite, Beaker is managed by a set of environment variables.
-* `BEAKER_HYPERVISOR` Sets the Hypervisor, `vagrant` or `vagrant_libvirt` for VM based testing
+- `BEAKER_HYPERVISOR` Sets the Hypervisor, `vagrant` or `vagrant_libvirt` for VM based testing
It is a good idea to export the `BEAKER_HYPERVISOR` variable in your shell configuration.
-* `BEAKER_DESTROY` Should the test environment be removed at the end of a test
- * `BEAKER_DESTROY=onpass` Only removes the environment if everything passes, allowing review of the system in the state it was in when the test suite failed.
- * `BEAKER_DESTROY=no` Always leave an artifact, which likely will break future runs without cleanup.
- * `BEAKER_DESTROY=yes` _(DEFAULT)_ always clean up.
-* `BEAKER_PROVISION` Should we ensure a clean system is built to run the suite.
- * If `BEAKER_DESTROY` is set to no, `BEAKER_PROVISION=yes` will fail the run (because of the existing box/container)
- * If `BEAKER_DESTROY` is set to no, `BEAKER_PROVISION=no` will run the test suite against the system anyways, which may cause environmental issues if the test suite doesn't perfectly put things to a default state.
+- `BEAKER_DESTROY` Should the test environment be removed at the end of a test
+ - `BEAKER_DESTROY=onpass` Only removes the environment if everything passes, allowing review of the system in the state it was in when the test suite failed.
+ - `BEAKER_DESTROY=no` Always leave an artifact, which likely will break future runs without cleanup.
+ - `BEAKER_DESTROY=yes` _(DEFAULT)_ always clean up.
+- `BEAKER_PROVISION` Should we ensure a clean system is built to run the suite.
+ - If `BEAKER_DESTROY` is set to no, `BEAKER_PROVISION=yes` will fail the run (because of the existing box/container)
+ - If `BEAKER_DESTROY` is set to no, `BEAKER_PROVISION=no` will run the test suite against the system anyways, which may cause environmental issues if the test suite doesn't perfectly put things to a default state.
-* `BEAKER_SETFILE` What should we be testing. Beaker will call beaker-hostgenerator to create a defaultconfiguration based on this, using the known configurations for Vox Pupuli.
-* `BEAKER_PUPPET_COLLECTION` What implementation and version of Puppet are we testing against
+- `BEAKER_SETFILE` What should we be testing. Beaker will call beaker-hostgenerator to create a defaultconfiguration based on this, using the known configurations for Vox Pupuli.
+- `BEAKER_PUPPET_COLLECTION` What implementation and version of Puppet are we testing against
These are all defined in [voxpupuli-acceptance](https://github.com/voxpupuli/voxpupuli-acceptance/#running-tests) to review how they are used and more specialized features.
@@ -286,7 +286,6 @@ BEAKER_SETFILE="almalinux9-64{hostname=almalinux9-64-puppet8.example.com}" bundl
If you need to run tests against a different version or implementation of OpenVox (or Puppet) you can either `export BEAKER_PUPPET_COLLECTION="openvox7"` or add `BEAKER_PUPPET_COLLECTION="openvox7"` to your command line.
-
```shell
BEAKER_PUPPET_COLLECTION="openvox7" BEAKER_SETFILE="ubuntu2404-64" bundle exec rake beaker
```
diff --git a/_docs/migrate_module.md b/_docs/migrate_module.md
index ac0a6d52..30882493 100644
--- a/_docs/migrate_module.md
+++ b/_docs/migrate_module.md
@@ -10,24 +10,25 @@ You will have someone by your side in this process. The general flow is to…
* Ensure you have been added as a member of the voxpupuli org on github.
* Create an issue with the [checklist](#checklist) below.
* Prepare your repo for transfer
- * Ensure github issues are enabled.
- * If this module was created with PDK delete .sync.yaml.
- * Ensure that the module has a correct `LICENSE` file in the docroot that matches the mentioned license in the `metadata.json`.
- * If the repo is a fork, to ensure pull requests go to the correct repo, [detach it from the fork network](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/detaching-a-fork).
+ * Ensure github issues are enabled.
+ * If this module was created with PDK delete .sync.yaml.
+ * Ensure that the module has a correct `LICENSE` file in the docroot that matches the mentioned license in the `metadata.json`.
+ * If the repo is a fork, to ensure pull requests go to the correct repo, [detach it from the fork network](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/detaching-a-fork).
* At this point you can [transfer your own repository](https://docs.github.com/repositories/creating-and-managing-repositories/transferring-a-repository).
* Ask an admin to
- * Verify that all webhooks are disabled.
- * Enable `Automatically delete head branches` in the repository settings.
- * Add the `collaborators` team to the module's `Collaborators & Teams` 'Teams' list with `Write` permissions (e.g. [https://github.com/voxpupuli/puppet-gitlab/settings/collaboration](https://github.com/voxpupuli/puppet-gitlab/settings/collaboration) (that link works only for admins).
- * Update the [access permissions](https://github.com/organizations/voxpupuli/settings/secrets/actions) (that link works only for admins) for forge.puppet.com secrets so releases can be published.
+ * Verify that all webhooks are disabled.
+ * Enable `Automatically delete head branches` in the repository settings.
+ * Add the `collaborators` team to the module's `Collaborators & Teams` 'Teams' list with `Write` permissions (e.g. [https://github.com/voxpupuli/puppet-gitlab/settings/collaboration](https://github.com/voxpupuli/puppet-gitlab/settings/collaboration) (that link works only for admins).
+ * Update the [access permissions](https://github.com/organizations/voxpupuli/settings/secrets/actions) (that link works only for admins) for forge.puppet.com secrets so releases can be published.
* Add the module to our [modulesync setup][managed_modules].
* Execute [modulesync][msync] for this module.
* Our modulesync will delete a `CONTRIBUTING.md` in the root directory and use the global organization version in voxpupuli/.github. Please enhance [the global version][contrib] if the version in the docroot contains useful parts.
* [Release][release] the first version under Vox Pupuli.
-* Create a GitHub issue for the [FORGE][forge] project and ask to deprecate the old module (and approve the new one if the old one was approved as well).
+* Create a GitHub issue for the [FORGE][forge] project and ask to deprecate the old module (and [approve][approve] the new one if the old one was approved as well).
* Write a very short blog post about the migration([example][example]). Write to our [mailinglist](mailto:voxpupuli@groups.io) about the migration/new blogpost.
## Checklist
+
```markdown
Reference: https://voxpupuli.org/docs/migrate_module/
diff --git a/_docs/pql_queries.md b/_docs/pql_queries.md
index d4aec0a0..a2750b07 100644
--- a/_docs/pql_queries.md
+++ b/_docs/pql_queries.md
@@ -74,7 +74,7 @@ file { '/etc/puppetlabs/client-tools/puppetdb.conf':
}
```
-## Contribute?!
+## Contribute?
You can submit your own Queries by editing [voxpupuli.github.io/_docs/pql_queries.md](https://github.com/voxpupuli/voxpupuli.github.io/blob/master/_docs/pql_queries.md) on GitHub or by pressing the edit button in the upper right corner.
@@ -169,7 +169,7 @@ hours. PuppetDB uses [partitioning](https://www.postgresql.org/docs/current/ddl-
and saves reports on a per-day partition. By filtering for the current day we
avoid scans on other partitions.
-```
+```shell
puppet query "events[certname]{corrective_change = true and report_receive_time > \"$(date -u --date='1 day ago' +%Y-%m-%dT%H:%M:%S.000Z)\" group by certname}"
```
@@ -330,7 +330,7 @@ puppet query 'inventory[certname,facts.networking.ip]{ trusted.extensions.pp_rol
The facts endpoint doesn't support structured facts :(
-```
+```shell
puppet query 'inventory[facts.networking.ip]{ group by facts.networking.ip }'
```
diff --git a/_docs/publish_gem.md b/_docs/publish_gem.md
index 12b6fb1b..e7abace1 100644
--- a/_docs/publish_gem.md
+++ b/_docs/publish_gem.md
@@ -7,7 +7,6 @@ summary: Steps to do to enable publication of a new gem
Those are the steps you have to take to publish a new gem:
-
## Setup GitHub workflow
Right now we don't have a way to sync workflows for each gem.
@@ -20,14 +19,12 @@ This workflow will take care of:
* Creating the changelog for the GitHub release
* Waits until the new version is present on the rubygems.org cache
-### Configure rubygems.org
-
-**This needs to be done by a PMC member**
+### Configure rubygems.org (needs to be done by a PMC member)
Before the first release, trusted publishing needs to be configured on rubygems.org
* login to rubygems.org with the voxpupui or openvoxproject account from gopass
-* go to https://rubygems.org/profile/oidc/pending_trusted_publishers
+* go to
* click "create"
* add gem name, repo owner ("voxpupuli" or "OpenVoxProject"), repo name (usually same as gem name), workflow name (`release.yml`)
* Set environment to `release` ([configured in our workflow](https://github.com/voxpupuli/gem-workflow-test/blob/96a29ada7ddea2ba0f27cbe0efd2194c7b9e7213/.github/workflows/release.yml#L71))
diff --git a/_docs/releasing_gem.md b/_docs/releasing_gem.md
index b31453fd..3cd62a9e 100644
--- a/_docs/releasing_gem.md
+++ b/_docs/releasing_gem.md
@@ -19,7 +19,7 @@ This can be done from a fork.
Now you can install the changelog generator:
-```bash
+```shell
bundle config set --local path '.vendor/'
bundle config set --local with 'release'
bundle install
@@ -27,13 +27,13 @@ bundle install
And in case you installed the gems before:
-```bash
+```shell
bundle install; bundle update; bundle clean
```
We can generate the changelog (in most cases, this requires a [GitHub access token (docs on how to create one)](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line): the changelog generator expects the token in the environment variable `CHANGELOG_GITHUB_TOKEN`).
-```bash
+```shell
CHANGELOG_GITHUB_TOKEN='mytoken' bundle exec rake changelog
```
@@ -52,13 +52,13 @@ Or add voxpupuli as a additional remote to your fork.
with the main repo
-```bash
+```shell
git switch master; git pull origin master
```
with a fork
-```bash
+```shell
git remote add voxpupuli git@github.com:voxpupuli/$my_repo.git
git fetch voxpupuli --tags
git switch master
@@ -74,13 +74,13 @@ Push the git tag:
with main repo:
-```bash
+```shell
git push origin $version
```
with a fork:
-```bash
+```shell
git push voxpupuli $version
```
diff --git a/_docs/releasing_version.md b/_docs/releasing_version.md
index 1df03799..39b12136 100644
--- a/_docs/releasing_version.md
+++ b/_docs/releasing_version.md
@@ -50,6 +50,7 @@ If you relabeled anything or the version is wrong, rerun the `Prepare Release` a
Request feedback from the Vox Pupuli Community via the methods listed in the [Contact page](https://voxpupuli.org/connect/).
All commentary should be reviewed, but specifically looking for concensus around:
+
* Are there other changes that should get merged first?
* Are there discussions about the tagging of any of the changes in the CHANGELOG.md?
* Have you missed something needed for release?
@@ -58,9 +59,8 @@ The person who does the merge of the PR is expected to do the release below.
### Do the Release
-*Please note that in order to execute this rake task you must be in the __Collaborators__ group on GitHub for the module in question.*
-
-*Please also note that the task requires a configured gpg or ssh key in your local git settings to sign the git tag*
+* _Please note that in order to execute this rake task you must be in the __Collaborators__ group on GitHub for the module in question._
+* _Please also note that the task requires a configured gpg or ssh key in your local git settings to sign the git tag_
This step must be done by a voxpupuli maintainer!
@@ -68,7 +68,7 @@ This has to be done on the __*upstream*__ repo itself.
Checkout an updated copy of master
-```bash
+```shell
git checkout master; git fetch origin; git pull origin master
```
@@ -79,12 +79,12 @@ Run the rake target `release`. This will:
* commit the change,
* and push it to origin.
-```bash
+```shell
bundle exec rake release
```
GitHub Actions (.github/workflows/release.yml in every module) will then kick off a build against the new tag created and deploy that build to the forge.
-*Caution: The Vox Pupuli repo has to be the configured default branch in your local clone. Otherwise, you will try to release to your fork.*
+_Caution: The Vox Pupuli repo has to be the configured default branch in your local clone. Otherwise, you will try to release to your fork._
## Manual Steps
@@ -97,19 +97,19 @@ Klick on "fork" and create a local fork.
Clone the original upstream repo to your workstation:
-```bash
+```shell
git clone git@github.com:voxpupuli/.git
```
We usually recommend to always also set the remote for your fork:
-```bash
+```shell
git remote add local git@github.com:/.git
```
Ensure that your local fork is in sync with upstream:
-```bash
+```shell
git fetch --all --prune
git switch master
git pull origin master
@@ -129,7 +129,7 @@ We decided that dropping support for a puppet version or ruby is a major change
If necessary, run `bundle install` before continuing. If you want you can also only install the needed gems:
-```bash
+```shell
bundle config set --local path 'vendor'
bundle config set --local without 'development system_tests'
bundle install
@@ -137,7 +137,7 @@ bundle install
And in case you installed the gems before:
-```bash
+```shell
bundle config set --local path 'vendor'
bundle config set --local without 'development system_tests'
bundle install; bundle update; bundle clean
@@ -146,13 +146,14 @@ bundle install; bundle update; bundle clean
We can now generate the changelog after updating the metadata.json with a rake task.
> 🔔 In most cases, this requires a [GitHub fine-grained access token](https://github.com/settings/tokens?type=beta).
+>
> * Resource owner: you
> * Expiration: one year or less
> * Repository access: Public Repositories (read-only)
>
> The changelog generator expects the token in the environment variable `CHANGELOG_GITHUB_TOKEN`
-```bash
+```shell
CHANGELOG_GITHUB_TOKEN='mytoken' bundle exec rake release:prepare
```
@@ -172,7 +173,7 @@ The rake task will output the commands you need to run.
It will look like this:
-```bash
+```shell
Please review these changes and commit them to a new branch:
git checkout -b release-v1.2.3
@@ -183,7 +184,7 @@ Then open a Pull-Request and wait for it to be reviewed and merged).
Afterwards you can push to your fork and create a PR via the Web UI (or use the `gh` CLI tool if you like):
-```bash
+```shell
git push --set-upstream local release-v1.2.3
```
@@ -191,9 +192,8 @@ The person who does the merge is expected to do the release below.
### Doing the release
-*Please note that in order to execute this rake task you must be in the __Collaborators__ group on GitHub for the module in question.*
-
-*Please also note that the task requires a configured gpg or ssh key in your local git settings to sign the git tag*
+* _Please note that in order to execute this rake task you must be in the __Collaborators__ group on GitHub for the module in question._
+* _Please also note that the task requires a configured gpg or ssh key in your local git settings to sign the git tag_
This step must be done by a voxpupuli maintainer!
@@ -201,7 +201,7 @@ This has to be done on the __*upstream*__ repo itself.
Checkout an updated copy of master
-```bash
+```shell
git checkout master; git fetch origin; git pull origin master
```
@@ -212,9 +212,9 @@ Run the rake target `release`. This will:
* commit the change,
* and push it to origin.
-```bash
+```shell
bundle exec rake release
```
GitHub Actions (.github/workflows/release.yml in every module) will then kick off a build against the new tag created and deploy that build to the forge.
-*Caution: The Vox Pupuli repo has to be the configured default branch in your local clone. Otherwise, you will try to release to your fork.*
+_Caution: The Vox Pupuli repo has to be the configured default branch in your local clone. Otherwise, you will try to release to your fork._
diff --git a/_docs/reviewing_pr.md b/_docs/reviewing_pr.md
index df8bc7f4..2154c5ff 100644
--- a/_docs/reviewing_pr.md
+++ b/_docs/reviewing_pr.md
@@ -45,7 +45,7 @@ one of our modules:
### Approving and Merging
* You can merge your own PR if it was approved by a collaborator with merge permissions and CI is green. Don't merge if either one of those conditions are not true
- * Modulesync PRs are an exception (a PR based on changes that the msync tool did, NOT PRs on [modulesync_config][ms_docs]). We agreed some time ago that it's ok to merge your own modulesync PR if CI is green, without separate approval. This is okay because changes to [modulesync_config][ms_docs] were [reviewed and tested][ms_guid]
+ * Modulesync PRs are an exception (a PR based on changes that the msync tool did, NOT PRs on [modulesync_config][ms_docs]). We agreed some time ago that it's ok to merge your own modulesync PR if CI is green, without separate approval. This is okay because changes to [modulesync_config][ms_docs] were [reviewed and tested][ms_guide]
* If your PR is non-trivial or perhaps has only been approved by a work colleague etc, please consider allowing reasonable extra time for other 3rd parties to leave their reviews before merging.
There is no prescribed minimum review period, or definition of 'reasonable time'. Vox Pupuli trusts collaborators to use their own judgement here.
* It's okay to approve code regardless if CI is still running or not. The code won't be merged if CI fails after the PR got approved
@@ -55,10 +55,9 @@ A green checkmark indicates that the review was done by someone with merge permi
-
If you want to merge:
-GitHub provides [multiple merge methods](methods):
+GitHub provides [multiple merge methods][methods]:
@@ -83,7 +82,7 @@ git push origin master
git branch -d temp
```
-GitHub has some [docs available](gpg) to help you configuring GPG for git.
+GitHub has some [docs available][gpg] to help you configuring GPG for git.
It's also good practice to automatically sign every commit. You can enable that
with:
diff --git a/_docs/updating-files-managed-with-modulesync.md b/_docs/updating-files-managed-with-modulesync.md
index 643d39cf..e029129f 100644
--- a/_docs/updating-files-managed-with-modulesync.md
+++ b/_docs/updating-files-managed-with-modulesync.md
@@ -25,12 +25,12 @@ If your changes do not apply to *all* modules managed by Vox Pupuli, add a toggl
For a complete example, see this commit to the [modulesync_config repository] which manage a few files and introduce 3 tunables:
-* https://github.com/voxpupuli/modulesync_config/commit/758366479d9d65a7cf14b2f5f757eff154bfbd8b
+*
After this commit got merged, the tunables were updated in the appropriate repository, for example:
-* https://github.com/voxpupuli/puppet-jenkins/commit/e25d6bf3fe047659f3375fe069c151cb5171a7ce#diff-b1bbc4d50c1c098ca18224cbc9519ad646dcc5e3dd912edf55610ab5bba3566e
-* https://github.com/voxpupuli/puppet-zabbix/commit/2d2fd20b3ceb036cd8a44747bc9c537e27022b82#diff-b1bbc4d50c1c098ca18224cbc9519ad646dcc5e3dd912edf55610ab5bba3566e
+*
+*
[ModuleSync]: https://github.com/voxpupuli/modulesync
[modulesync_config repository]: https://github.com/voxpupuli/modulesync_config
diff --git a/_includes/connect_groups_io.md b/_includes/connect_groups_io.md
index dbc73b88..3033bb47 100644
--- a/_includes/connect_groups_io.md
+++ b/_includes/connect_groups_io.md
@@ -3,6 +3,7 @@
The [`voxpupuli@groups.io` mailing list](https://groups.io/g/voxpupuli/topics)
is where you'll see announcements, blog notifications, official decision threads,
and others posted.
+
* Join by sending an [empty email](mailto:voxpupuli+subscribe@groups.io)
* Post via [voxpupuli@groups.io](mailto:voxpupuli@groups.io)
* Browse [on the web](https://groups.io/g/voxpupuli/topics)
diff --git a/_includes/connect_social.md b/_includes/connect_social.md
index 66a86610..5adc07c9 100644
--- a/_includes/connect_social.md
+++ b/_includes/connect_social.md
@@ -12,4 +12,3 @@ Other spaces you might find interesting:
| | [`/r/Puppet`](https://www.reddit.com/r/Puppet/) |
| | [Fediwall mastodon posts](https://short.voxpupu.li/fediwall) |
-
diff --git a/_includes/sync.md b/_includes/sync.md
index f9e89999..79589ff0 100644
--- a/_includes/sync.md
+++ b/_includes/sync.md
@@ -31,4 +31,3 @@ if (nextMeeting.isBefore(moment.tz(eventTimeZone).subtract(1, 'hour'))) {
document.getElementById('nextmeeting').innerHTML += nextMeeting.tz(myTimeZone).calendar() + " (" +
nextMeeting.tz(myTimeZone).format() + ")";
-
diff --git a/_posts/2014-04-22-modern-testing-of-modules.md b/_posts/2014-04-22-modern-testing-of-modules.md
index cea7d8b5..82c2c0ad 100644
--- a/_posts/2014-04-22-modern-testing-of-modules.md
+++ b/_posts/2014-04-22-modern-testing-of-modules.md
@@ -148,7 +148,7 @@ Once this is done we need to create some framework for Beaker. We'll start
by creating a very simple "nodeset", a yaml file that lists out a virtual
machine to test against. We'll put this in spec/acceptance/nodesets/default.yml.
-```
+```yaml
HOSTS:
centos-65-x64:
roles:
@@ -291,8 +291,9 @@ end
Then putting all this together we just need to run a single command, if things
worked, to see the output of all these tests.
-```
+```shell
$ rspec spec/acceptance/
+
Hypervisor for centos-64-x64 is vagrant
Beaker::Hypervisor, found some vagrant boxes to create
created Vagrantfile for VagrantHost centos-64-x64
diff --git a/_posts/2014-04-23-contributing-to-modules.md b/_posts/2014-04-23-contributing-to-modules.md
index ea21dc24..9c727e55 100644
--- a/_posts/2014-04-23-contributing-to-modules.md
+++ b/_posts/2014-04-23-contributing-to-modules.md
@@ -17,8 +17,8 @@ want your PR merged, it'll need to be up to par.
This means:
- * It doesn't break current tests (yes this happens, often);
- * It introduces tests for the new/fixed behaviour (so we don't regress).
+* It doesn't break current tests (yes this happens, often);
+* It introduces tests for the new/fixed behaviour (so we don't regress).
We need to write and maintain modules that work for everyone and don't
accidentally break on people reaping havoc across their machines.
@@ -32,14 +32,14 @@ but those are optional.
In the end, the golden rules for contributing (to any opensource project really)
are:
- * Submit PR's with tests. If you don't know how to write tests, put that in
+* Submit PR's with tests. If you don't know how to write tests, put that in
the PR too, so we know how to help you;
- * Work with us and we'll work with you. It's okay if you PR is not perfect or
+* Work with us and we'll work with you. It's okay if you PR is not perfect or
if you're unfamiliar with writing tests. As long as you're willing to put in
the work we're willing to coach you. Perhaps you can have a look at this
[post](https://voxpupuli.org/blog/2014/04/22/modern-testing-of-modules/) to
get you going;
- * Don't ride off into the sunset. If you submit a PR we expect you to stick
+* Don't ride off into the sunset. If you submit a PR we expect you to stick
around for the follow-ups. If not then it'll simply not get merged. Not
because we're mean, but because we too have a thousand other things to do
too.
diff --git a/_posts/2014-05-20-puppet-caching.md b/_posts/2014-05-20-puppet-caching.md
index f67a6275..cbcc114c 100644
--- a/_posts/2014-05-20-puppet-caching.md
+++ b/_posts/2014-05-20-puppet-caching.md
@@ -57,6 +57,7 @@ end
```
## Nginx cache
+
The second thing I wanted to do is cache a few more things at the nginx level.
If you drill down a bit into Puppet you'll notice that one of the things the
agent does frequently is request things from the following endpoints:
@@ -212,6 +213,7 @@ alter it to include `--cacert` and point that to
`/var/lib/puppet/ssl/certs/ca.pem` instead.
## Apache cache
+
The cache configuration for nginx is inspired based on what [Erik Dalén][dalen]
has been doing at Spotify and decided to share:
@@ -224,7 +226,6 @@ up to 1GB.
I'm familiar enough with Apache to be able to tell you that this stores the
cache in RAM but I have no idea how to invalidate it at deploy time.
-
[kbarber]: https://github.com/kbarber "Github - Ken Barber"
[plabs]: http://www.puppetlabs.com "Puppet Labs"
[dalen]: https://github.com/dalen "Github - Erik Dalén"
diff --git a/_posts/2014-08-24-purging-ssh-authorized-keys.md b/_posts/2014-08-24-purging-ssh-authorized-keys.md
index b20059a2..6a14c0de 100644
--- a/_posts/2014-08-24-purging-ssh-authorized-keys.md
+++ b/_posts/2014-08-24-purging-ssh-authorized-keys.md
@@ -42,7 +42,7 @@ following best practices the key data is populated from a Hiera lookup.
Now when we run Puppet on our clients we can see unmanaged keys getting removed.
-```bash
+```shell
(/Stage[main]/site::Sysadmin/Ssh_authorized_key[root@old_bastion1]/ensure) removed
(/Stage[main]/site::Sysadmin/Ssh_authorized_key[root@old_bastion2]/ensure) removed
```
@@ -59,7 +59,6 @@ Now you are all set to go deploy this in your infrastructure.
Happy puppeting!
-
[ssh_keys]: https://forge.puppetlabs.com/nightfly/ssh_keys
[PUP-1174]: https://tickets.puppetlabs.com/browse/PUP-1174
[ffrank]: https://github.com/ffrank
diff --git a/_posts/2014-11-06-linting-metadata-json.md b/_posts/2014-11-06-linting-metadata-json.md
index 119eb89a..581d1036 100644
--- a/_posts/2014-11-06-linting-metadata-json.md
+++ b/_posts/2014-11-06-linting-metadata-json.md
@@ -12,11 +12,9 @@ Now, we must write our own metadata.json files. This leads to errors because jso
Tooling to work with this is in [flight](https://github.com/puppetlabs/forge-ruby). Currently geppetto has some tooling in it to do something with metadata.json, but that probably means some weird jar or something and ew. I've contributed the easy part, which is a linting tool to sanity-check your metadata.json. Metadata-json-lint will verify that your metadata.json is valid json and will ensure a number of required fields are there. It will also verify that the two fields that have been deprecated are no longer in your metadata.json file.
-
Install
-------
-
Command line:
```shell
@@ -34,11 +32,9 @@ group :development, :test do
end
```
-
Usage
-----
-
Command line(success):
```shell
@@ -64,7 +60,6 @@ $: echo $?
1
```
-
Rake:
```ruby
@@ -74,16 +69,12 @@ task :metadata do
end
```
-
Source code
-----------
-Available at https://github.com/nibalizer/metadata-json-lint
-
-
+Available at
Adoption
--------
-
Meatadata-json-lint is currently being used in [puppet-module-puppetboard](https://github.com/voxpupuli/puppet-module-puppetboard) and in [garethr's](https://twitter.com/garethr) [puppet-module-skeleton](https://github.com/garethr/puppet-module-skeleton). It has been [proposed](https://review.openstack.org/#/c/127608/) for inclusion in the openstack puppet modules. If you are using it, hit up @nibalizer on twitter and we'll add it here.
diff --git a/_posts/2016-01-01-voxpupuli.md b/_posts/2016-01-01-voxpupuli.md
index 8016acfc..908fec21 100644
--- a/_posts/2016-01-01-voxpupuli.md
+++ b/_posts/2016-01-01-voxpupuli.md
@@ -17,4 +17,3 @@ everyone.
We've now settled on Vox Pupuli, "voice of puppets" and as we enter 2016
the big rename is ongoing. IRC has already been moved over and soon our
website and Github namespace will change too.
-
diff --git a/_posts/2016-06-10-voxpupuli-opensource-speedtrain.md b/_posts/2016-06-10-voxpupuli-opensource-speedtrain.md
index 79884e97..62d19802 100644
--- a/_posts/2016-06-10-voxpupuli-opensource-speedtrain.md
+++ b/_posts/2016-06-10-voxpupuli-opensource-speedtrain.md
@@ -9,15 +9,14 @@ date: 2016-06-10
This is the transcript of a talk I gave at PuppetCamp Paris & London 2016.
You can find the [slides can be found on my blag](https://blag.esotericsystems.at/igor/presents/voxpupuli-opensource-speedtrain/)
-Voxpupuli
-=========
+## Voxpupuli
+
**Opensource 🚅 Speedtrain**
-whoami
-======
+## whoami
Hello, my name is…
Igor Galić — Co-Founder of Voxpupuli, and of my own company, Brainsware
@@ -38,8 +37,7 @@ I am a very visible member of this community, so I want to be clear:
I am 🌈queer🌈
-What is Voxpupuli
-=================
+## What is Voxpupuli
> We are a collective of Puppet module, tooling and documentation authors all working together to ensure continued development on the code we maintain.
@@ -51,30 +49,28 @@ And while our website blurbs explain quite well who we are, what we do, why we d
Let's get started with
-Who is Voxpupuli?
-=================
+## Who is Voxpupuli?
64… wait 65… no actually 66 volunteers
-- admins
-- many non-coders
-- git newbies
+- admins
+- many non-coders
+- git newbies
Currently, Voxpupuli is made of ~64~ ~65~ 66 people who altogether have
access to 130~ repositories. Most of those represent either puppet modules (100~) or puppet-lint checks, or some other kind of gem.
Except for those among us who are Puppet employees, none of our contributors are paid to do this work. And even the Puppet employees aren't paid to do *this* work! We are volunteers, most of us are admins, many of us not coders, a lot of us don't know how git works…
-Why is Voxpupuli?
-=================
+## Why is Voxpupuli?
-- impulsiveness
+- impulsiveness
Daenney and me founded, then Puppet-Community, out of impulsiveness. We were frustrated with the pace at which things were moving, and we figured that we needed a space where we can iterate faster than Puppet. Puppet is bound by contracts to their customers. We as admins, running primarily the open source version of puppet, on the other hand, are free to decide on our own when to move, upgrade or break something.
-- necessity
+- necessity
Maintaining puppet modules is hard. Constantly ensuring quality is a
never-ending race against bit-rot. The ruby ecosystem is evolving fast, and it's
@@ -99,14 +95,12 @@ Voxpupuli is a collaborative space, and a safe-haven.
For people, and for their work.
-How does Voxpupuli…?
-====================
+## How does Voxpupuli…?
So how are we doing this? With people; obviously.
With robots, too. And with tools, that enforce standards and conventions. Let's start with the robots…
-Robots: vpci
-============
+## Robots: vpci
@@ -114,15 +108,14 @@ Is a set of bash and python scripts that runs beaker tests for Voxpupuli, but
also for Puppet. Of those modules that have beaker acceptance tests, we can be
relatively certain that they will work out quite fine.
-Robots: Travis
-==============
+## Robots: Travis
-- rspec-puppet
-- STRICT\_VARIABLES
-- rubocop
-- release
+- rspec-puppet
+- STRICT\_VARIABLES
+- rubocop
+- release
Travis does *the rest*. Our `.travis.yml` is rather extensive. We have test
against all *current* ruby versions. We test puppet 3.x and 4.x. Always with
@@ -143,13 +136,12 @@ We tried really hard to make our release process as *easy* as possible, so that
anyone who wants, or needs a release of the current master, can request that
simply by creating a pull-request.
-People: Contributor
-===================
+## People: Contributor
-- issues & pull requests
-- feedback on irc & slack
+- issues & pull requests
+- feedback on irc & slack
So if **you** need a fresh release of puppet-mcollective, **you** can do that. All
you have to do is create a pull-request. And hunt-down someone who'll merge it,
@@ -159,8 +151,7 @@ For this we have a broad set of channels: GitHub Pull Requests and Issues being
the most obvious here. And you can use those for other bug reports, or to
provide us with patches.
-Structure and Communication
-===========================
+## Structure and Communication
in Community Management
@@ -179,12 +170,11 @@ Every contribution, no matter how trivial or elaborate, or even *wrong* is
immensely valuable. Treating it, and the person it comes from with the respect
and humility strengthens our ties to the community, and can broaden it, too.
-People: Members
-===============
+## People: Members
-- push buttons
+- push buttons
Many drive-thru contributors circle around, and finally stick around. Whenever I
notice that someone is doing my job, I invite them to the organization. Clicking
@@ -199,10 +189,10 @@ been released in a while.
Again, the reason why it's so simple to get started with these things, rather
than to be overwhelmed with it are our standards and conventions.
-- We use module\_sync to handle boilerplate code across repositories
-- This ensures .rubocop.yml, .puppet-lint.rc, Rakefile & Gemfile, and .travis.yml to be same-ish
-- Every pull request is checked by Travis & vpci
-- Every pull request is reviewed and merged by someone who is *not* the author
+- We use module\_sync to handle boilerplate code across repositories
+- This ensures .rubocop.yml, .puppet-lint.rc, Rakefile & Gemfile, and .travis.yml to be same-ish
+- Every pull request is checked by Travis & vpci
+- Every pull request is reviewed and merged by someone who is *not* the author
@@ -214,30 +204,28 @@ too much excitement in our jobs.
So having boring code code that helps us run our infrastructure give you
that warm fuzzy feeling of reliability.
-People: Community Gardeners
-===========================
+## People: Community Gardeners
-- grant & revoke access
-- enforce coc
-- listen
+- grant & revoke access
+- enforce coc
+- listen
I am, in GitHub speak, one of the Owners of the Voxpupuli organisation. In
GitHub terms this means I can grant (and revoke) access to our repositories.
In our own terms, it means that I
-- hold the keys to our secrets
-- get to be on the list
+- hold the keys to our secrets
+- get to be on the list
It means that I have to listen — often for clues — to our community. I might
have to moderate behavior, or (over)enthusiasm. If others have failed to do so,
I have to enforce our CoC. And finally, I have to recognize and empower
contributors, elevating them to members.
-The Quantified Us
-=================
+## The Quantified Us
Often, just listening is not enough. In the days of Big Data, we can gather
information about our community automatically, thanks to the magic of APIs! And
@@ -245,9 +233,9 @@ we can proccess this Big Data with Big Data tools, such as CSV.
Currently we use
-- underscoregan/community\_management
-- lbabhr/octohatrack
-- duckinator/how\_is
+- underscoregan/community\_management
+- lbabhr/octohatrack
+- duckinator/how\_is
to gather the basic info on how our community is doing — and more importantly
*who* is doing things. It's very important to us to reward all members of our
@@ -255,13 +243,12 @@ community with the gift of merge access — especially the ones the ones who may
otherwise slip thru the cracks because all they do is report bugs / issues, and
review pull requests!
-What does Voxpupuli…
-====================
+## What does Voxpupuli…
-- … do for my company?
-- … do for me?
+- … do for my company?
+- … do for me?
We provide a broad set of well recognized modules. These modules are subject to
the highest quality standards — enforced by robots!
@@ -270,8 +257,7 @@ Our modules are released frequently (by robots!), and are compatible with the la
If you have a popular module or gem, we can adopt it, *and you*.
-Steal this process
-==================
+## Steal this process
At the off chance that none of our modules strike your fancy, you might still be
interested in our tools, or our process.
@@ -286,21 +272,18 @@ I advise your to take your responsibility for your team mates first, and to use
Be that new junior ops colleagues, or veteran developers, when you ***empower*** them you will earn their trust and their respect.
-Thank you
-=========
+## Thank you
-- Catch me (us!) for questions! Come talk to us in `#voxpupuli`!
-- …join us!
+- Catch me (us!) for questions! Come talk to us in `#voxpupuli`!
+- …join us!
+## Sources
-Sources
-=======
-
-* https://pixabay.com/en/gray-fox-kits-young-babies-956687/
-* https://www.flickr.com/photos/yellowstonenps/18654448490
-* https://pixabay.com/en/frame-mirror-picture-baroque-empty-308791/
-* https://www.flickr.com/photos/timmy/5910881115/
-* https://commons.wikimedia.org/wiki/File:Accept.svg
-* https://www.flickr.com/photos/widnr/6588149033
-* https://www.flickr.com/photos/sejanc/866122048
-* https://www.flickr.com/photos/pellesten/8286654017/
+-
+-
+-
+-
+-
+-
+-
+-
diff --git a/_posts/2016-09-03-becoming-a-candidate.md b/_posts/2016-09-03-becoming-a-candidate.md
index 8999d808..a8e260f9 100644
--- a/_posts/2016-09-03-becoming-a-candidate.md
+++ b/_posts/2016-09-03-becoming-a-candidate.md
@@ -38,7 +38,6 @@ the list of candidates will be available on the website.
Vox Pupuli needs candidates like you!
-
[g]:https://github.com/voxpupuli/plumbing/blob/master/share/governance.md
[n]:https://github.com/voxpupuli
[r1]:https://github.com/voxpupuli/puppet-selinux
diff --git a/_posts/2016-10-12-pmc-election-results.md b/_posts/2016-10-12-pmc-election-results.md
index ec8ab80d..673572b4 100644
--- a/_posts/2016-10-12-pmc-election-results.md
+++ b/_posts/2016-10-12-pmc-election-results.md
@@ -17,11 +17,11 @@ As put forth by our governance section the PMC is elected for a term of 1 year
so October 2017 we'll have a new round. Right now our current, and first, PMC
members are:
- * Tim Meusel (bastelfreak)
- * Spencer Krum (nibalizer)
- * Hunter Haugen (hunner)
- * Ben Briggs (bbriggs/fraq)
- * Dennis Hoppe (dhoppe)
+* Tim Meusel (bastelfreak)
+* Spencer Krum (nibalizer)
+* Hunter Haugen (hunner)
+* Ben Briggs (bbriggs/fraq)
+* Dennis Hoppe (dhoppe)
We've got a nice mix of long time contributors to Puppet, and the ecosystem in
general, and people that are much newer to the community. It will hopefully
@@ -30,5 +30,3 @@ precedent to what they should do or how.
Thank you all for participating in the elections and we'll hopefully see even
more people participating next time!
-
-
diff --git a/_posts/2016-10-20-another-year-of-voxpupuli.md b/_posts/2016-10-20-another-year-of-voxpupuli.md
index 0648971d..531555c7 100644
--- a/_posts/2016-10-20-another-year-of-voxpupuli.md
+++ b/_posts/2016-10-20-another-year-of-voxpupuli.md
@@ -24,7 +24,6 @@ Thanks everyone who has been a part of this!
We'd like to give a special thanks to Daenney and Roidelap1uie for stepping up to run our election.
-
Raw data:
* VoxPupuli contributions [by repo by user](https://gist.github.com/nibalizer/b29b24d41c653f0424268ff5e0d71402)
diff --git a/_posts/2017-01-13-github_changelog_generator-usage.md b/_posts/2017-01-13-github_changelog_generator-usage.md
index 8a9c7b16..a4fd798d 100644
--- a/_posts/2017-01-13-github_changelog_generator-usage.md
+++ b/_posts/2017-01-13-github_changelog_generator-usage.md
@@ -26,7 +26,7 @@ To see how this works, let's look at [puppet/r10k's](https://github.com/voxpupul
To generate a changelog for a Vox Pupuli module, first you need an API token. Follow [these directions](https://github.com/skywinder/github-changelog-generator/#github-token) to generate a token and add it to your profile or environment. With the token in place, all you need to do is run a single command at the top level of the repo:
-```
+```shell
bundle exec rake changelog
```
diff --git a/_posts/2018-01-04-elections.md b/_posts/2018-01-04-elections.md
index f193e135..4b70102c 100644
--- a/_posts/2018-01-04-elections.md
+++ b/_posts/2018-01-04-elections.md
@@ -19,7 +19,6 @@ TL;DR The Committees members are elected by the community for 1 year. They take
Open-Source Communities nowadays gain a lot from having a structure that can take action when bad things happens, and also when improvement is needed. We already have a [Code of Conduct][coc] in place, but we obviously need to ensure it is respected.
-
The PMC has set [Spencer Krum][sk] to be the Election Officer and to run the elections, as stated in the [Governance Document][gd]. Spencer is not running for PMC re-election.
You can find more information [here][e], including how to become a candidate.
@@ -33,9 +32,6 @@ during the whole election process! Provide feedback in the #voxpupuli channel on
[e]:https://github.com/voxpupuli/plumbing/blob/master/share/elections/2018-01.md
[sk]:https://github.com/nibalizer/
-[daenney]:https://github.com/daenney
-[me]:https://github.com/roidelapluie
-[d]:https://github.com/voxpupuli/plumbing/pull/45
[gd]:https://github.com/voxpupuli/plumbing/blob/master/share/governance.md
[coc]:https://voxpupuli.org/coc/
[g]:https://github.com/voxpupuli/plumbing/blob/master/share/governance.md
diff --git a/_posts/2018-02-06-voxpupuli-community-journey.md b/_posts/2018-02-06-voxpupuli-community-journey.md
index 49b33475..1080ccb7 100644
--- a/_posts/2018-02-06-voxpupuli-community-journey.md
+++ b/_posts/2018-02-06-voxpupuli-community-journey.md
@@ -6,7 +6,6 @@ Hi folks, and welcome to Tim Meusel's talk on Vox Pupuli's journey as a communit
## $ whoami not
-
Unfortunately, Tim couldn't make it due to a work-trip. So it's a great honour to return to this stage, and this community, however briefly. Especially because I'm taking Tim's place, who's done so much for us here.
## $ whoami
@@ -23,7 +22,6 @@ or, if you wanna be more specific, genderqueer, and bisexual, which I try to men
-
but enough about me, let's talk about
## Vox Pupuli
@@ -144,12 +142,11 @@ These days Travis also runs beaker acceptance tests for us.
And, finally, it handles the release process of modules to the Forge:
-
## Release task
For our release process we use a gem called `voxpupuli-release`. It's essentially a wrapper around `puppet-blacksmith`, and provides rake task to bump + tag a module — after doing the appropriate sanity checks.
-The push to the Forge is handled in a `deploy` task on Travis.
+The push to the Forge is handled in a `deploy` task on Travis.
So, in theory everybody can start it, each collaborator can approve it.
They do have to `tag && push --tags` however, so Travis can react to it.
What's still missing is to also create a github release.
@@ -160,19 +157,19 @@ So I hope you can see we try hard to encourage users to contribute by providing
Here's all (most? some??) of our auxiliary tooling summarized:
-* https://github.com/underscorgan/community_management
+*
* Open Issues and PRs sorted in different ways
-* https://voxpupuli-open-prs.herokuapp.com/
+*
* Also open PRs
-* https://github.com/voxpupuli/thevoxfox
+*
* IRC bot, allows us to merge stuff + trigger modulesync (soon, maybe)
-* https://github.com/bastelfreak/contributorstats
+*
* count contributions
@@ -183,15 +180,15 @@ Our own docs look a little bit lacking for love, but they do contain everything
On the other hand, we have automatically (💜`puppet-strings`💜) generated html docs for a bunch of modules:
-* https://voxpupuli.org/puppet-selinux
+*
-* https://voxpupuli.org/puppet-autofs
+*
-* https://voxpupuli.org/puppet-mumble
+*
-* https://voxpupuli.org/puppet-cassandra (in the making)
+* (in the making)
-* https://voxpupuli.org/puppet-rabbitmq (in the making)
+* (in the making)
Which are automagically published under our domain.
@@ -202,13 +199,13 @@ The PMC enforces CoC, and has lately tasked itself to bring bring Vox Pupuli int
The current members are
- * Tim ‘bastelfreak’ Meusel (reelected)
- * David ‘dhollinger’ Hollinger
- * Hunter ‘Hunner’ Haugen (works for Puppet Inc., reelected)
- * Alex ‘afisher’ Fisher
- * Eric ‘eputnam’ Putnam (works for Puppet Inc.)
+* Tim ‘bastelfreak’ Meusel (reelected)
+* David ‘dhollinger’ Hollinger
+* Hunter ‘Hunner’ Haugen (works for Puppet Inc., reelected)
+* Alex ‘afisher’ Fisher
+* Eric ‘eputnam’ Putnam (works for Puppet Inc.)
-Our PMC guidelines are created by the community https://tinyurl.com/voxpupuli-governance-md
+Our PMC guidelines are created by the community
and given the latest election turnout, we might have to consider amending them…
## Collaborators
@@ -239,7 +236,6 @@ close/reopen can be triggered by the PR author, however.

-
We try to get at least a unit test for all new features.
On a bugfix we're really happy when someone includes a test that fails without the patch, but works with it.
@@ -286,7 +282,6 @@ So long as you promise to send back cute selfies!
What if I told you that a lot of this daily business could be automated?
-

There are a lot of tools out there — and Danger is only one of them, that could help our contributors cut down on the "boilerplate" responses, and instead have a robot do that.
@@ -355,10 +350,10 @@ Contact:
* Slack: #voxpupuli on [slack.puppet.com](http://slack.puppet.com/)
-* voxpupuli@groups.io
+*
-* pmc@voxpupuli.org
+*
-* tim@bastelfreak.de
+*
### Thank you for your attention💜
diff --git a/_posts/2018-12-05-elections-open-2019.md b/_posts/2018-12-05-elections-open-2019.md
index d85b0b51..8f1cba4b 100644
--- a/_posts/2018-12-05-elections-open-2019.md
+++ b/_posts/2018-12-05-elections-open-2019.md
@@ -17,8 +17,7 @@ right direction. [Read more about their roles][leadership].
Please read about the candidates below, and then [visit the poll][vote] to rank
them to your preference. The polls will remain open until *December 15 2018 23:59UTC*
-
-# Candidates list
+## Candidates list
| Candidate | Presentation |
| ---------------------------------- | ------------------ |
@@ -47,8 +46,7 @@ them to your preference. The polls will remain open until *December 15 2018 23:5
This list is sourced from the election [metadata][e].
-
-# Important Dates:
+## Important Dates
* Between *December 1 2019 12:00UTC* and *December 15 2018 23:59UTC*: [Vote][vote]
* Terms begin *January 1 2019 00:00 UTC*
diff --git a/_posts/2019-01-01-code-of-the-week.md b/_posts/2019-01-01-code-of-the-week.md
index b31ae2fe..d3ad84b3 100644
--- a/_posts/2019-01-01-code-of-the-week.md
+++ b/_posts/2019-01-01-code-of-the-week.md
@@ -51,7 +51,6 @@ regular expression. In Puppet, you can also evaluate against a datatype like
exept for `Undef`. This type is rarely used and not well known, but still
super helpful!
-
Thank you Paul for this cool contribution!
Did you spot some cool code as well? Write a
diff --git a/_posts/2019-01-14-code-of-the-week.md b/_posts/2019-01-14-code-of-the-week.md
index eb9b787a..75357807 100644
--- a/_posts/2019-01-14-code-of-the-week.md
+++ b/_posts/2019-01-14-code-of-the-week.md
@@ -41,6 +41,7 @@ best practices](https://voxpupuli.org/docs/#reviewing-a-module-pr).
Some of these guidelines are:
+
> Are new parameters introduced? They must have datatypes
> Are datatypes from stdlib used? Ensure that lowest supported stdlib version is 4.13.1. Check if a newer version introduced the used datatype
@@ -52,6 +53,7 @@ Some of these guidelines are:
> Does a new param map to an option in a config file of a service? The Parameter should accept the possible values that the service allows. For example `'on'` and `'off'`. Don’t accept a boolean that will be converted to `'on'` or `'off'`
> If you can supply one or multiple values for an attribute it’s common practice to enforce the datatype for one value and an array of that datatype. An example for string is `Variant[String[1],Array[String[1]]]`. This can be used in the Puppet code as `[$var].flatten()`
+
**The summary: Datatypes are useful and important. Always using them for each
exposed parameter will help you catch bugs earlier, and the more detailed
@@ -102,6 +104,7 @@ based on multiple scalar types. One very detailed example is this
'ratelimit.burst' => Optional[Integer],
}]
```
+
The rsyslog configuration has so many options, many of them can be nested. In
the beginning of datatypes in Puppet, we would have used `Hash` for the above
requirement. At this level the type is already better than the old
diff --git a/_posts/2019-03-05-deprecating-puppet3-branch.md b/_posts/2019-03-05-deprecating-puppet3-branch.md
index 5b4d9dc3..769fbec7 100644
--- a/_posts/2019-03-05-deprecating-puppet3-branch.md
+++ b/_posts/2019-03-05-deprecating-puppet3-branch.md
@@ -13,7 +13,6 @@ During that process, we created a legacy branch, called `puppet3`. Puppet 3 is
end of life since a long time. We will purge those branches during the next
cleanup phase.
-
Sales pitch: We've a cool new blog series where we honour cool contributions,
[check it out!](https://voxpupuli.org/blog/2019/01/14/code-of-the-week/). Did
you spot some cool code as well? Write a
diff --git a/_posts/2019-04-01-contributor-summit-pinball-party.md b/_posts/2019-04-01-contributor-summit-pinball-party.md
index 33bc7757..93561921 100644
--- a/_posts/2019-04-01-contributor-summit-pinball-party.md
+++ b/_posts/2019-04-01-contributor-summit-pinball-party.md
@@ -13,4 +13,4 @@ If you're planning on attending the Puppet Contributor Summit this year June 4-5
It's too early to announce times and what else to expect, but stay tuned, we'll have more information in the coming weeks.
Have a great week!
-David Hollinger
\ No newline at end of file
+David Hollinger
diff --git a/_posts/2019-04-08-puppet-lsp-vim.md b/_posts/2019-04-08-puppet-lsp-vim.md
index 10f6af18..0948a364 100644
--- a/_posts/2019-04-08-puppet-lsp-vim.md
+++ b/_posts/2019-04-08-puppet-lsp-vim.md
@@ -16,9 +16,9 @@ Vim/Neovim have plugins that enable Language Server support. Specifically, [ale]
While setting up Language Server support in Vim and Neovim are fairly easy, there are some dependencies that will need to be installed first. First step will be to install `nodejs` and `yarn`. `coc.vim` uses these to execute it's language server client calls (among other things). I would recommend using your package manager (Linux), [Homebrew](https://brew.sh/), or a Version Manager like [asdf](https://github.com/asdf-vm/asdf) to manage `node-js` installations, but if you want a simple install:
-```
-$ curl -sL install-node.now.sh/lts | sh
-$ curl --compressed -o- -L https://yarnpkg.com/install.sh | bash
+```shell
+curl -sL install-node.now.sh/lts | sh
+curl --compressed -o- -L https://yarnpkg.com/install.sh | bash
```
Next you need to install the plugins you will need for Puppet Development. Use your favorite plugin manager or manually manage them if you know how, but I personally use [Vim-Plug](https://github.com/junegunn/vim-plug).
@@ -45,7 +45,7 @@ noremap / :FZF " Set FZF to /, which for me is `,/`
**Note: The above configuration assumes you use `Vim-Plug` to manage plugins. If you don't, you'll need to run `coc#util#install()` from Vim NORMAL mode**
-Once your `.vimrc` or `init.vim` are set up, open vim/neovim and execute `PlugInstall` from command mode. This will install the plugins and run any additional tasks they require.
+Once your `.vimrc` or `init.vim` are set up, open vim/neovim and execute `PlugInstall` from command mode. This will install the plugins and run any additional tasks they require.
## Installing the Language Servers
@@ -55,28 +55,28 @@ This is not required for Puppet Development, but can be useful if debugging Core
First you need to install the `solargraph` gem:
-```
-$ gem install solargraph
+```shell
+gem install solargraph
```
Then enter into vim/neovim and execute `CocInstall coc-solargraph` from command mode. This will install and configure everything needed for Ruby Language Server support.
-### Puppet Language Server support.
+### Puppet Language Server support
-For Puppet language server support, we have to do a extra work.
+For Puppet language server support, we have to do a extra work.
First we need to download the language server from the Github page. Place this wherever you feel most comfortable, but you will need ruby installed to run the language server.
-```
-$ git clone https://github.com/lingua-pupuli/puppet-editor-services.git
-$ cd puppet-editor-services
-$ bundle install
+```shell
+git clone https://github.com/lingua-pupuli/puppet-editor-services.git
+cd puppet-editor-services
+bundle install
```
Once that is complete, you will need open the `coc.vim` configuration file:
-```
-$ vim +CocConfig
+```shell
+vim +CocConfig
```
and add the following configuration to the file:
@@ -104,6 +104,7 @@ Now simply open a Puppet manifest and you should start seeing results. Example:
That's all there is to it. There is a lot more tweaking you can do to your hearts content.
Resources:
+
- [coc.vim](https://github.com/neoclide/coc.nvim)
- [coc-solargraph](https://github.com/neoclide/coc-solargraph)
- [Puppet Language Server](https://github.com/lingua-pupuli/puppet-editor-services)
diff --git a/_posts/2020-03-29-installing-puppet-webhook-using-system-repositories.md b/_posts/2020-03-29-installing-puppet-webhook-using-system-repositories.md
index 07d7542d..8b5b6536 100644
--- a/_posts/2020-03-29-installing-puppet-webhook-using-system-repositories.md
+++ b/_posts/2020-03-29-installing-puppet-webhook-using-system-repositories.md
@@ -22,7 +22,7 @@ Now that the announcement is out of the way, let's get into the meat of the blog
## Setting up the repository
-#### Ubuntu/Debian
+### Ubuntu/Debian
Add the GPG public key:
@@ -31,13 +31,14 @@ wget -q -O - "https://bintray.com/user/downloadSubjectPublicKey?username=voxpupu
```
Add the APT repository and install
+
```shell
echo "deb https://dl.bintray.com/voxpupuli/deb $(awk -F= '/VERSION_CODENAME=/ {print $2}' /etc/os-release) main" | sudo tee -a /etc/apt/sources.list.d/voxpupuli.list
sudo apt update
sudo apt install puppet-webhook
```
-#### RedHat/CentOS/Oracle
+### RedHat/CentOS/Oracle
Add the EPEL repository (RedHat/CentOS/Oracle 7 only):
@@ -53,15 +54,14 @@ sudo mv voxpupuli.repo /etc/yum.repos.d/voxpupuli.repo
sudo yum install puppet-webhook
```
-#### Grabbing the package directly
+### Grabbing the package directly
You can also download the packages themselves directly from the Puppet Webhook [Releases](https://github.com/voxpupuli/puppet_webhook/releases) page. Though note that for EL7 you still have to have the EPEL repository enabled and you won't receive updates through the package manager.
-#### Starting the application for the first time
+### Starting the application for the first time
The packages come with a SystemD service and you can simply start by running `sudo systemctl start puppet-webhook`. The application should work out of the box with no configuration, but if you want more strict authentication or any other environment-specific configuration, check out the documentation in the [README](https://github.com/voxpupuli/puppet_webhook/blob/master/README.md) file.
## Conclusion
That's it. Pretty simple setup. Now nothing is perfect and so we're looking for any feedback we can get! If you find an issue or something missing, please file an [Issue](https://github.com/voxpupuli/puppet_webhook/issues) on the Github project.
-
diff --git a/_posts/2021-06-18-the-new-ci-setup-for-rubygems.md b/_posts/2021-06-18-the-new-ci-setup-for-rubygems.md
index 49ab920e..c4db91ea 100644
--- a/_posts/2021-06-18-the-new-ci-setup-for-rubygems.md
+++ b/_posts/2021-06-18-the-new-ci-setup-for-rubygems.md
@@ -91,7 +91,7 @@ The release process is basically:
* after that's approved and merged, a maintainer creates a gpg-signed git tag and pushes that to GitHub
* the Release action posed above will build the gem on Ruby 3.0 and publishes it to rubygems and to GitHub packages
-**secrets.GITHUB_TOKEN is available within the action by default, secrets.RUBYGEMS_AUTH_TOKEN is a custom secret defined on the GitHub org level**
+**secrets.GITHUB_TOKEN is available within the action by default, secrets.RUBYGEMS_AUTH_TOKEN is a custom secret defined on the GitHub org level**
Besides creating the yaml file and the `secrets.RUBYGEMS_AUTH_TOKEN` secret, no additional configuration is required to publich to RubyGems/GitHub packages.
diff --git a/_posts/2023-02-10-pmc-elections-2023.md b/_posts/2023-02-10-pmc-elections-2023.md
index 381e6dbf..26974fcd 100644
--- a/_posts/2023-02-10-pmc-elections-2023.md
+++ b/_posts/2023-02-10-pmc-elections-2023.md
@@ -15,11 +15,11 @@ you want to help organize events or run social media? Maybe you'd like to help c
our blog or source content from fresh writers.
Maybe you just want to get involved and help out with whatever is needed. Joining the
-PMC is your avenue to this involvement.
+PMC is your avenue to this involvement.
Starting today, you may nominate yourself or someone else for the elections. Nominations
are open until *March 22 2023 23:59 UTC* and then we'll vote to select the 5 new members
-of the PMC.
+of the PMC.
See the [elections page in our plumbing repository](https://github.com/voxpupuli/plumbing/blob/master/share/elections/2023-01.md)
for nomination instructions.
diff --git a/_posts/2023-02-24-puppetmodule.md b/_posts/2023-02-24-puppetmodule.md
index 97721661..ecd9fffd 100644
--- a/_posts/2023-02-24-puppetmodule.md
+++ b/_posts/2023-02-24-puppetmodule.md
@@ -20,9 +20,10 @@ You want to use puppetmodule.info for your own modules? Just publish to the
forge! We scrape the forge API on a regular basis to import new releases
automatically. You can also add a badge to your README.md:
-```
+```markdown
[](http://www.puppetmodule.info/m/puppet-borg)
```
+
Which will look like this:
[](https://www.puppetmodule.info/m/puppet-borg)
@@ -35,6 +36,5 @@ You like Ops work and want to help run the server? Ping us on Slack or IRC (link
You love Vox Pupuli? You can now sponsor us! Check [opencollective.com/vox-pupuli](https://opencollective.com/vox-pupuli) or [github.com/sponsors/voxpupuli](https://github.com/sponsors/voxpupuli)
-
Thanks Hetzner Online for sponsoring the cloud resources to host puppetmodule.info!
[](https://www.hetzner.com)
diff --git a/_posts/2023-03-23-pmc-officers-2023.md b/_posts/2023-03-23-pmc-officers-2023.md
index 913f5ae3..567330b9 100644
--- a/_posts/2023-03-23-pmc-officers-2023.md
+++ b/_posts/2023-03-23-pmc-officers-2023.md
@@ -10,7 +10,7 @@ Well, *[[checks watch]]* would ya look at that. It's March 23, UTC, and that mea
[Martin](https://github.com/tuxmea) was the first to submit a nomination, and as promised Puppet will be sending him a brand spankin' fresh hoodie as soon as we've got the new design finalized.
-## Let's get to it and meet your new PMC members!
+## Let's get to it and meet your new PMC members
 No surprise to anyone, first up is Tim Muesel, known as [`bastelfreak`](https://github.com/bastelfreak) to many. One of the most prolific contributors in the Puppet community, Tim's tireless energy is an inspiration to all of us. [Read his nomination](https://github.com/voxpupuli/plumbing/blob/master/share/elections/2023-01/bastelfreak.md).
diff --git a/_posts/2023-07-01-stdlib-9.md b/_posts/2023-07-01-stdlib-9.md
index 14e58f79..b23bf0d1 100644
--- a/_posts/2023-07-01-stdlib-9.md
+++ b/_posts/2023-07-01-stdlib-9.md
@@ -11,7 +11,7 @@ Starting Today, 2023-07-01, we are implementing puppetlabs/stdlib 9 support in o
modules. The 9 release dropped a lot of functions or namespaced them. Wherever
necessary, we will require puppetlabs/stdlib 9. In those cases we will do a
major release of the module. We will try to combine this with the major release
-required for dropping Puppet 6 support.
+required for dropping Puppet 6 support.
All modules that depend on stdlib 9.x will receive a PR with the title `puppetlabs/stdlib: Require 9.x`.
As modules are made compatible with stdlib 9.x will recieve a PR with the title `puppetlabs/stdlib: Allow 9.x`.
diff --git a/_posts/2023-07-02-puppet-8.md b/_posts/2023-07-02-puppet-8.md
index a8a2eed6..eac75891 100644
--- a/_posts/2023-07-02-puppet-8.md
+++ b/_posts/2023-07-02-puppet-8.md
@@ -9,6 +9,7 @@ category: changelog
Today, 2023-07-02, we started to implement Puppet 8 support for our modules.
This has a few constraints:
+
* Puppet 8 AIO packages bundle Ruby 3.2
* because of that, rspec-puppet unit tests for Puppet 8 run on Ruby 3.2
* To implement Ruby 3.2 support in our test suite, we had to drop Ruby < 2.7 in some gems
diff --git a/_posts/2023-07-20-voxpupuli-sponsoring.md b/_posts/2023-07-20-voxpupuli-sponsoring.md
index 337a2e2d..54162c00 100644
--- a/_posts/2023-07-20-voxpupuli-sponsoring.md
+++ b/_posts/2023-07-20-voxpupuli-sponsoring.md
@@ -27,7 +27,7 @@ Now a few months later we can say: What the hell?!
People are sending us roughly $200 per month!
-*insert party.gif here*
+*insert party.gif here*
It's amazing to see the support from so many individuals and companies. We want
to point out [Steffen 'saz' Zieger](https://github.com/saz), he was our first
diff --git a/_posts/2024-05-08-CentOS-7-CentOS-Stream-8-deprecation.md b/_posts/2024-05-08-CentOS-7-CentOS-Stream-8-deprecation.md
index 0407f576..10d321eb 100644
--- a/_posts/2024-05-08-CentOS-7-CentOS-Stream-8-deprecation.md
+++ b/_posts/2024-05-08-CentOS-7-CentOS-Stream-8-deprecation.md
@@ -22,6 +22,6 @@ to do a major module release anyways.
Dropping support means:
* The Operating system version will be removed from metadata.json
- * This will stop automatic unit/acceptance testing for this OS release
+ * This will stop automatic unit/acceptance testing for this OS release
* Drop OS release specific puppet code
* If hiera-in-modules is used, this will also be cleaned up
diff --git a/_posts/2025-01-05-conference-funding.md b/_posts/2025-01-05-conference-funding.md
index b7276b9f..f5ef34ff 100644
--- a/_posts/2025-01-05-conference-funding.md
+++ b/_posts/2025-01-05-conference-funding.md
@@ -5,7 +5,7 @@ date: 2025-01-05
github_username: bastelfreak
---
-# Vox Pupuli Travel fund for Config Management Camp 2024
+## Vox Pupuli Travel fund for Config Management Camp 2024
Puppet's position in the community is at a crucial point and the PMC believes we need to come together. Literally.
@@ -14,7 +14,7 @@ So far we received over 10,000USD.
We would like to use a part of that to enable people to attend [Config Management Camp](https://cfgmgmtcamp.org/ghent2025/) in Ghent.
-## About the conference
+### About the conference
The conference itself is free.
But please sign up, and select the talks you would like to see, to make the room planning easier.
@@ -29,7 +29,7 @@ Most of the attendees stay in this location and there's also a tram line to the
[cfgmgmtcamp.org/ghent2025/guide/](https://cfgmgmtcamp.org/ghent2025/guide/) also has a good overview for people that are new to the conference.
-## Sponsoring
+### Sponsoring
We recognize not everyone is able to make it to an in person conference but we want to enable as many people as possible to attend the conference.
If we can help you attend, please send a short motivation letter, by the end of 2025-01-10 (UTC), with a rough cost estimation.
diff --git a/_posts/2025-01-21-openvox-release.md b/_posts/2025-01-21-openvox-release.md
index 5fffe1c8..3dfb3369 100644
--- a/_posts/2025-01-21-openvox-release.md
+++ b/_posts/2025-01-21-openvox-release.md
@@ -15,7 +15,6 @@ You’ll notice that they’re still using the `apt|yum.overlookinfratech.com` r
As we get our infrastructure built out, these will probably be moved to the voxpupuli.org namespace.
Please don’t use these packages on critical production infrastructures yet, unless you’re comfortable with troubleshooting and reporting back on the silly errors we’ve made while rebranding and rebuilding.
-
> *If you’d like professional assistance in the migration, check out the [support page](/openvox/support/) for companies who provide migration services.*
We consider OpenVox a soft-fork because we intend to maintain downstream compatibility for as long as we are able.
diff --git a/_posts/2025-02-04-new-release-workflow.md b/_posts/2025-02-04-new-release-workflow.md
index 4ef8ee9b..b522ab2e 100644
--- a/_posts/2025-02-04-new-release-workflow.md
+++ b/_posts/2025-02-04-new-release-workflow.md
@@ -19,4 +19,4 @@ It can automatically:
So people don't have to use a local container or Ruby installation to prepare a release.
However, it's still possible to generate everything locally and we intend to keep it that way.
-The new workflow is documented at https://voxpupuli.org/docs/releasing_version/
+The new workflow is documented at
diff --git a/_posts/2025-03-04-openvox-downloads-and-mirroring.md b/_posts/2025-03-04-openvox-downloads-and-mirroring.md
index 9647a024..a1c9df18 100644
--- a/_posts/2025-03-04-openvox-downloads-and-mirroring.md
+++ b/_posts/2025-03-04-openvox-downloads-and-mirroring.md
@@ -24,7 +24,7 @@ If you'd like to see the technical details on how this was setup, feel free to c
On the mirrors, downloads, and repositories front, the next few things are:
-- Applying to Fastly's CDN sponsorship ()
+- Applying to Fastly's CDN sponsorship ()
- Adding a page to this website to document known mirrors ()
- If you do mirror us publicly, or are open to doing so, please add a comment to this issue on GitHub
- Updating our [install page](https://voxpupuli.org/openvox/install/) with the new information
diff --git a/_posts/2025-07-21-vox-pupuli-has-grown-up.md b/_posts/2025-07-21-vox-pupuli-has-grown-up.md
index e0ffd7db..2cc0f830 100644
--- a/_posts/2025-07-21-vox-pupuli-has-grown-up.md
+++ b/_posts/2025-07-21-vox-pupuli-has-grown-up.md
@@ -5,7 +5,7 @@ date: 2025-07-21
github_username: bastelfreak
---
-### January first, 2016.
+### January first, 2016
After a voting period the community formerly known as puppet-community changed their name to [Vox Pupuli](https://voxpupuli.org/blog/2016/01/01/voxpupuli/).
There isn't a formal date when puppet-community was founded.
diff --git a/_posts/2025-07-22-openvox-releases.md b/_posts/2025-07-22-openvox-releases.md
index 1043c824..5a2cfae2 100644
--- a/_posts/2025-07-22-openvox-releases.md
+++ b/_posts/2025-07-22-openvox-releases.md
@@ -5,7 +5,7 @@ date: 2025-07-31
github_username: bastelfreak
---
-## New OpenVoxProject 8 releases!
+## New OpenVoxProject 8 releases
After lots of development, we have a new round of releases available!
@@ -21,7 +21,6 @@ Our new releases:
* openvox-server [8.10.0](https://github.com/OpenVoxProject/openvox-server/releases/tag/8.10.0)
* openvoxdb will soon follow
-
## Where are the releases?
Right now, those are *beta* releases because we did a lot of changes, see below.
diff --git a/_posts/2025-08-26-openvox-openfact-releases.md b/_posts/2025-08-26-openvox-openfact-releases.md
index ecbd20ae..69f3ce80 100644
--- a/_posts/2025-08-26-openvox-openfact-releases.md
+++ b/_posts/2025-08-26-openvox-openfact-releases.md
@@ -16,10 +16,12 @@ We intend to do some fast-follow releases after this, addressing a slew of depen
## Platform additions/removals
### Added
+
* Ubuntu 25.04 (agent, server, db)
* Debian 13 (server, db)
### Removed
+
* Ubuntu 18.04 (agent, server, db)
* Ubuntu 20.04 (agent, server, db)
* Fedora 36 (agent)
diff --git a/_sponsors/enterprise-modules.md b/_sponsors/enterprise-modules.md
index 835b38c2..03d44e81 100644
--- a/_sponsors/enterprise-modules.md
+++ b/_sponsors/enterprise-modules.md
@@ -4,4 +4,5 @@ logo: sponsor-enterprise-modules.png
website: https://www.enterprisemodules.com/
button: enterprisemodules.com
---
+
Thanks to [Enterprise Modules B.V.](https://www.enterprisemodules.com/) for sponsoring us 100$/month via open collective!
diff --git a/connect.md b/connect.md
index 01f7a527..26a40f92 100644
--- a/connect.md
+++ b/connect.md
@@ -2,7 +2,7 @@
layout: default
---
-# Connect with us!
+# Connect with us
You can get involved in the Vox Pupuli community by connecting at events,
getting or giving help in any of our many channels, sharing modules on the
@@ -22,9 +22,4 @@ advance our ecosystem.
{% include connect_irc.md %}
-
-
{% include sync.md %}
-
-
-
diff --git a/contributing/index.md b/contributing/index.md
index be837674..665b8d90 100644
--- a/contributing/index.md
+++ b/contributing/index.md
@@ -25,4 +25,3 @@ If you have any questions, don't hesitate to ask. We are happy to help you.
- If you have question about security, please follow our [security policy](https://voxpupuli.org/security/).
- General and more specific documentation can be found on our [docs](https://voxpupuli.org/docs/).
- In the project you want to work on, check their own contribution guidelines most often found in the README.md or CONTRIBUTING.md file.
-
diff --git a/docs/index.md b/docs/index.md
index 5344e130..07cdb6e3 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -27,4 +27,3 @@ started. If you have any questions, [reach out to us](/connect/).
{% endfor %}
-
diff --git a/license.md b/license.md
index fc6b264a..104e3f36 100644
--- a/license.md
+++ b/license.md
@@ -12,7 +12,7 @@ use. The underlying scripts and code of our website use the
The CC BY-SA 4.0 license:
-```
+```text
Attribution-ShareAlike 4.0 International
=======================================================================
@@ -445,7 +445,7 @@ Creative Commons may be contacted at creativecommons.org.
The Apache 2 license:
-```
+```text
Apache License
Version 2.0, January 2004
diff --git a/openvox/install.md b/openvox/install.md
index 7e44686b..63e38bc9 100644
--- a/openvox/install.md
+++ b/openvox/install.md
@@ -13,9 +13,9 @@ This means that you can continue to use all the commands, modules, tooling, etc
>
> * [Alternative Puppet uninstallation options](#alternative-puppet-uninstallation-options)
> * [Managing OpenVox with OpenVox](#managing-openvox-with-openvox)
-> * [Managing Repositories](#managing-repositories)
-> * [Managing the Server/Client](#managing-the-serverclient)
-> * [Foreman Integration](#foreman-integration)
+> * [Managing Repositories](#managing-repositories)
+> * [Managing the Server/Client](#managing-the-serverclient)
+> * [Foreman Integration](#foreman-integration)
{: class="alert alert-primary callout" }
We encourage you to try out OpenVox on a fresh test system, the way you would for any major system package.
@@ -49,7 +49,8 @@ Then install the packages you want.
If you have backed up config files, then restore them now.
-### 🎉 That's it! You're done!
+### 🎉 That's it! You're done
+
Feel free to read the rest of the page for more options.
-----
@@ -64,16 +65,15 @@ There are some cases in which you might have to take more steps to safely remove
* If you're using distro provided packages, then you might have a bigger job.
For example, if you're using Debian packages, you may have several Puppet modules packaged as `.deb` packages that you'll have to move to your `Puppetfile`.
You might consider waiting until your distro packages OpenVox.
- * If you do want to migrate now, then remove any puppet packages and dependencies you have installed using your distro tools.
- * Debian family
- * `apt autoremove `
- * RedHat family
- * `yum autoremove `
- * You might also consider (carefully) cleaning up unused dependencies afterwards by running `apt` or `yum` autoremove without a package name.
+ * If you do want to migrate now, then remove any puppet packages and dependencies you have installed using your distro tools.
+ * Debian family
+ * `apt autoremove `
+ * RedHat family
+ * `yum autoremove `
+ * You might also consider (carefully) cleaning up unused dependencies afterwards by running `apt` or `yum` autoremove without a package name.
You do not need to remove the `[apt|yum].puppet.com` repositories although the only thing you'll be able to use them for going forward is installing historical Puppet releases.
-
### Managing OpenVox with OpenVox
#### Managing Repositories
@@ -132,7 +132,6 @@ puppetdb::master::config::terminus_package: openvoxdb-termini
Note that you will need to have the OpenVox repositories available (using one of the methods above) for this to work properly.
If the OpenVox repositories are available, this will cause Puppet to be removed and OpenVox to be installed.
-
#### Foreman integration
Foreman installs the package `puppet-agent-oauth` which is a system packaged Ruby gem with native code.
diff --git a/openvox/quickstart.md b/openvox/quickstart.md
index 531783de..b5f3c799 100644
--- a/openvox/quickstart.md
+++ b/openvox/quickstart.md
@@ -21,21 +21,21 @@ sees your system.
This command will show you how OpenVox represents the current state of a specific kind of resource, in this case the `user` resources.
The output will be your first view of the Puppet™️ DSL (domain specific language).
-```
-# puppet resource user
+```shell
+puppet resource user
```
Pick the name of one of your user resources and run again.
This shows the same output, but scoped to a single user.
-```
-# puppet resource user binford2k
+```shell
+puppet resource user binford2k
```
Try a similar command with the `file` resource and the name of a file on your computer, maybe `/etc/hosts`.
-```
-# puppet resource file /etc/hosts
+```shell
+puppet resource file /etc/hosts
```
Now you see how OpenVox sees resources as the *type* and *title* of the resource and then a list of *attributes* of that resource.
@@ -52,7 +52,7 @@ When you write Puppet™️ code, you only need to describe the things you *do*
Let's try that now. Create a *manifest*, or a source file of Puppet™️ code.
-``` puppet
+```puppet
# hello.pp
file { '/tmp/foo':
ensure => file,
@@ -62,13 +62,13 @@ file { '/tmp/foo':
}
```
-```
-$ puppet apply hello.pp
+```shell
+puppet apply hello.pp
```
Now examine `/tmp/foo` and see that it meets all the specifications you described in your manifest, including the string of content.
-## Go forth and experiment!
+## Go forth and experiment
As the OpenVox project matures, we will create more documentation, guides, and tutorials.
For the time being though, now you'll want to hop over to Puppet's own [documentation](https://help.puppet.com/core/current/Content/PuppetCore/puppet_index.htm) and go from there.
diff --git a/plugins/index.md b/plugins/index.md
index 255e3ab7..dec59705 100644
--- a/plugins/index.md
+++ b/plugins/index.md
@@ -25,6 +25,7 @@ plugins defined for that tool.
## Tools
+
Useful tools when writing Puppet.
@@ -53,7 +54,9 @@ Useful tools when writing Puppet.
{% for tool in site.data.tools %}
{% if tool[1].plugins %}
+
## {{ tool[1].display_name }}
+
{% if tool[1].description %}{{tool[1].description}}{%endif%}
diff --git a/privacy-policy/index.md b/privacy-policy/index.md
index b8b3ab6e..f9b1b1f2 100644
--- a/privacy-policy/index.md
+++ b/privacy-policy/index.md
@@ -3,7 +3,7 @@ layout: page
title: Privacy Policy
---
-# Vox Pupuli Privacy Policy
+## Vox Pupuli Privacy Policy
This document details the data the Vox Pupuli collects about you, why it is
collected, what is done with it, and your options for how it's processed.
@@ -12,7 +12,7 @@ The Vox Pupuli project does not share data with 3rd parties, except for hosting
requirements (e.g. GitHub, YouTube) as detailed below, or when required to by
law.
-# Types of data we collect
+## Types of data we collect
* Contact details
* Name
@@ -21,9 +21,9 @@ law.
* Some third party tools use Cookies
* Some third party tools use GitHub user data
-# How and why we use your data
+## How and why we use your data
-## The website
+### The website
The Vox Pupuli website is a static site that does not track, collect, or store
infromation or set cookies. There is no account needed or required to access
@@ -38,7 +38,7 @@ author's name be visible in the blog post indefinitely.
* Legal basis for this data usage: Legitimate interest
-## The codebases
+### The codebases
The Vox Pupuli community uses [GitHub](https://github.com) to manage the code
that comprises the various Puppet modules, plugins, tools, and RubyGems the
@@ -80,7 +80,7 @@ to those services. All possible events are documented at [GitHub.com](https://de
* Legal basis for this data usage: Legitimate interest, Consent
-## Communication
+### Communication
The Vox Pupuli project maintains two public IRC channels on
[Libera](https://libera.chat), refer to [Libera's privacy policy](https://libera.chat/privacy)
@@ -100,27 +100,27 @@ any additional data usage relating to your account.
* Legal basis for this data usage: Legitimate interest, Consent
-# Your rights regarding your data
+## Your rights regarding your data
-## Your choices
+### Your choices
-### You can choose not to provide us with personal data
+#### You can choose not to provide us with personal data
Using a VPN, or other IP/UserAgent masking servers will not affect your
use of the project website as it is entirely static, however Tor may not work
due to [CloudFlare](https://cloudflare.com) blocking Tor communication.
-### Your accounts on our services
+#### Your accounts on our services
Your Groups.io account contains options to control what emails are sent to you. 3rd
party services, such as [GitHub](https://github.com) retain their own policies
and privacy options.
-### Your name and email in our codebases
+#### Your name and email in our codebases
***As part of ANY contribution to a Vox Pupuli project, you are acknowledging and agreeing that your name and email address will become embedded and part of the source code repository, which are all publicly available. You understand that the removal of this information would be impermissibly destructive to the project and the overall interests of those who contribute, utilize, and benefit from it. Therefore, in consideration of your participation in any project, you understand that retaining your name and email address, as described above, does not require your consent and that the right of erasure, as spelled out in the GDPR Article 17(1)b does not apply.***
-## Your rights
+### Your rights
Where the EU General Data Protection Regulation (GDPR) applies to the
processing of your personal data, you have the following rights, subject
@@ -139,26 +139,13 @@ the Vox Pupuli Project Management Committee on [IRC](https://web.libera.chat/?#v
or via email at [pmc@voxpupuli.org](mailto:pmc@voxpupuli.org). Please understand
that the rights above are not absolute in all instances.
-# Contacting us
+## Contacting us
If you have any questions about this policy or our use of your data, please
contact us via [E-Mail](mailto:pmc@voxpupuli.org) or on [IRC](https://web.libera.chat/?#voxpupuli-pmc)
-# Changes to this Privacy Statement
+## Changes to this Privacy Statement
Vox Pupuli reserves the right to update this policy periodically. Material
changes will be posted to the [Blog](https://voxpupuli.org/posts). This policy
was last updated on 4th August 2019.
-
-[GitHub]: https://help.github.com/articles/global-privacy-practices
-[Groups.io]: https://groups.io/static/privacy
-[CloudFlare]: https://www.cloudflare.com/privacypolicy/
-[Travis CI]: https://docs.travis-ci.com/legal/privacy-policy/
-[AppVeyor]: https://www.appveyor.com/privacy-policy/
-[Codacy]: https://www.codacy.com/privacy
-[Code Climate]: https://codeclimate.com/legal/privacy
-[Coveralls]: https://coveralls.io/legal
-[ZenHub]: https://www.zenhub.com/privacy-policy
-[Zube]: https://zube.io/privacy
-[Octobox]: https://octobox.io/privacy
-[Read the Docs]: https://docs.readthedocs.io/en/latest/privacy-policy.html
diff --git a/projects.md b/projects.md
index 333ed919..aa1ec526 100644
--- a/projects.md
+++ b/projects.md
@@ -35,7 +35,6 @@ easiest projects to get involved with.
* [OpenBSD]({% include github-repo-search.html topic="openbsd-puppet-module" %})
* [Windows]({% include github-repo-search.html topic="windows-puppet-module" %})
-
## Infrastructure tools
We host other projects you may wish to run in your infrastructure as well.
@@ -44,7 +43,6 @@ We host other projects you may wish to run in your infrastructure as well.
* [Monitoring]({% include github-repo-search.html topic="monitoring" %})
* [Reporting tools]({% include github-repo-search.html topic="reporting" %})
-
## Development tools
Many of our projects are built to help developers and to run in testing pipelines.
@@ -52,7 +50,6 @@ Many of our projects are built to help developers and to run in testing pipeline
* [Puppet lint plugins]({% include github-repo-search.html topic="puppet-lint" %})
* [Ruby Gems]({% include github-repo-search.html topic="ruby-gems" %})
-
## Hacktoberfest
During the month of October, we often participate in [Hacktoberfest](https://hacktoberfest.com).
@@ -63,7 +60,6 @@ the [Hacktoberfest](https://hacktoberfest.com) project to see how it works.
* [See all projects participating in Hacktoberfest]({% include github-repo-search.html topic="hacktoberfest" %})
-
## OpenVox project
Like the mythical bird, OpenVox has risen from the ashes of what used to be Open Source Puppet.
diff --git a/security/index.md b/security/index.md
index 7b31e16d..4730cf6f 100644
--- a/security/index.md
+++ b/security/index.md
@@ -28,7 +28,6 @@ Here is a list of topics where the security officer can help you:
* Report compromised user accounts
* Any other security and Vox Pupuli related problem
-
## Good practices regarding security
For our contributors, here are some good practices that we highly recommend.
diff --git a/sponsoring/index.md b/sponsoring/index.md
index f6248274..e010fed3 100644
--- a/sponsoring/index.md
+++ b/sponsoring/index.md
@@ -8,21 +8,24 @@ Hi! We are an open collective, developing modules and tooling for the Puppet eco
But Vox Pupuli isn't only code to develop and maintain, it's more than that.
Unfortunately a few things costs us money, like:
+
- Infrastructure for CI/CD
- Participate at conferences
- Merch like stickers! (everyone loves stickers!)
- Sometimes we need a little BBQ and gathering of our community, for the work we love so much!
There are ways to sponsor us:
+
- [Vox Pupuli on open collective](https://opencollective.com/vox-pupuli)
- [Vox Pupuli on GitHub](https://github.com/sponsors/voxpupuli)
Or with stuff like:
+
- Sponsor our CI resources at Hetzner
- Sponsor Swag for conferences
- Sponsor Domain costs at Inwx
-If you're interested in these options, please get in touch and email the Project Management Committee at pmc@voxpupuli.org.
+If you're interested in these options, please get in touch and email the Project Management Committee at .
At the moment we've multiple sponsors via GitHub. In addition to that, multiple
companies sponsor our cloud/CI resources.
diff --git a/voxconf/2025.md b/voxconf/2025.md
index 42636e22..599a709e 100644
--- a/voxconf/2025.md
+++ b/voxconf/2025.md
@@ -36,7 +36,7 @@ title: VoxConf '25
-## The first VoxConf is happening!
+## The first VoxConf is happening!
💡Watch this space for more information soon.
{: class="alert alert-success w-25 callout ms-3" }
diff --git a/voxconf/index.md b/voxconf/index.md
index 257da96a..cd19901e 100644
--- a/voxconf/index.md
+++ b/voxconf/index.md
@@ -5,7 +5,6 @@ title:
{: class="img-fluid bg-image" }
-
🗓️ Previous Events
@@ -29,5 +28,5 @@ Whether you want to come learn more about OpenVox, share your own ideas, or help
## Updates
-* VoxConf '25 has been completed. When the videos are done processing, they'll be posted to its [event page](2025).
-* This page will be updated when VoxConf '26 is scheduled.
+- VoxConf '25 has been completed. When the videos are done processing, they'll be posted to its [event page](2025).
+- This page will be updated when VoxConf '26 is scheduled.