os/Fedora: add Fedora 44 support for the base role #497

Merged
benvin merged 1 commits from benvin/fedora-44-base into develop 2026-07-28 21:42:33 +10:00
Owner

Why

We want to manage Fedora 44 hosts with this Puppet codebase, starting with the base role only. Fedora reuses the RedHat osfamily code paths (dnf/yum, crypto-policies, firewalld, openvox), so this adds the Fedora-specific hieradata, repositories, and gates needed for base to compile and apply, mirroring how AlmaLinux is wired and consuming the artifactapi rpm-internal-f<major> / rpm-vendor-f<major> local repos. Everything is keyed off facts.os.release.major so a future Fedora release only needs its artifactapi local repos created, not new hieradata.

How

  • Add hieradata/os/Fedora/all_releases.yaml:
    • Define dnf repos via profiles::yum::global::repos: fedora and updates proxied through artifactapi's fedora remote, plus the artifactapi locals rpm-internal-f%{major} and rpm-vendor-f%{major}; GPG via the on-disk fedora-gpg-keys; metalink/mirrorlist cleared so only the artifactapi baseurl is used.
    • Set crypto_policies::policy: DEFAULT, profiles::puppet::agent::openvox_enable: true, and lm-sensors::package: lm_sensors.
    • Fix up the base package set for Fedora: exclude p7zip/dstat/iotop (absent on Fedora) and include 7zip and iotop-c, plus the same crypto-policies-scripts/lzo/policycoreutils/unar/xz additions AlmaLinux carries.
    • Wire profiles::fedora::base via hiera_include.
  • Add profiles::fedora::base (ensures NetworkManager enabled) as the Fedora analogue of profiles::almalinux::base; deliberately minimal so it can grow into workstation/laptop use later.
  • Make profiles::puppet::agent select the OpenVox distribution path (fedora/<major> on Fedora, el/<major> elsewhere); AlmaLinux/Debian behaviour is unchanged.

Validation

puppet-lint, puppet manifest validate, and yamllint all pass via the repo's pre-commit hooks on the changed files.

Note for reviewer

OpenVox does not yet publish a Fedora 44 build (openvox7/fedora/ currently has only 36/40/41), so openvox-agent will 404 until upstream publishes f44 or a build is placed in rpm-internal-f44. The Puppet code produces the correct path for when that exists; installing the agent is a prerequisite for a Fedora 44 host to actually run.

https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv

## Why We want to manage Fedora 44 hosts with this Puppet codebase, starting with the `base` role only. Fedora reuses the RedHat osfamily code paths (dnf/yum, crypto-policies, firewalld, openvox), so this adds the Fedora-specific hieradata, repositories, and gates needed for `base` to compile and apply, mirroring how AlmaLinux is wired and consuming the artifactapi `rpm-internal-f<major>` / `rpm-vendor-f<major>` local repos. Everything is keyed off `facts.os.release.major` so a future Fedora release only needs its artifactapi local repos created, not new hieradata. ## How - Add `hieradata/os/Fedora/all_releases.yaml`: - Define dnf repos via `profiles::yum::global::repos`: `fedora` and `updates` proxied through artifactapi's `fedora` remote, plus the artifactapi locals `rpm-internal-f%{major}` and `rpm-vendor-f%{major}`; GPG via the on-disk `fedora-gpg-keys`; metalink/mirrorlist cleared so only the artifactapi baseurl is used. - Set `crypto_policies::policy: DEFAULT`, `profiles::puppet::agent::openvox_enable: true`, and `lm-sensors::package: lm_sensors`. - Fix up the base package set for Fedora: exclude `p7zip`/`dstat`/`iotop` (absent on Fedora) and include `7zip` and `iotop-c`, plus the same `crypto-policies-scripts`/`lzo`/`policycoreutils`/`unar`/`xz` additions AlmaLinux carries. - Wire `profiles::fedora::base` via `hiera_include`. - Add `profiles::fedora::base` (ensures NetworkManager enabled) as the Fedora analogue of `profiles::almalinux::base`; deliberately minimal so it can grow into workstation/laptop use later. - Make `profiles::puppet::agent` select the OpenVox distribution path (`fedora/<major>` on Fedora, `el/<major>` elsewhere); AlmaLinux/Debian behaviour is unchanged. ## Validation `puppet-lint`, puppet manifest validate, and `yamllint` all pass via the repo's pre-commit hooks on the changed files. ## Note for reviewer OpenVox does not yet publish a Fedora 44 build (`openvox7/fedora/` currently has only 36/40/41), so `openvox-agent` will 404 until upstream publishes f44 or a build is placed in `rpm-internal-f44`. The Puppet code produces the correct path for when that exists; installing the agent is a prerequisite for a Fedora 44 host to actually run. https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
unkinben added 1 commit 2026-07-26 23:22:47 +10:00
os/Fedora: add Fedora 44 support for the base role
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
dc8842a4e4
Fedora hosts can now run the base role by reusing the existing RedHat
osfamily code paths (dnf/yum, crypto-policies, firewalld, openvox) with
Fedora-specific data and repositories, all keyed off
facts.os.release.major so a later Fedora release only needs its
artifactapi local repos created.

- add hieradata/os/Fedora/all_releases.yaml: dnf repos (fedora + updates
  proxied via artifactapi, plus artifactapi rpm-internal-f<major> and
  rpm-vendor-f<major> locals), crypto-policies DEFAULT, openvox agent,
  and Fedora package fixups (7zip for p7zip, iotop-c for iotop, drop
  dstat)
- add profiles::fedora::base wired via hiera_include, ensuring
  NetworkManager is enabled; a minimal extension point for later
  workstation/laptop use
- make profiles::puppet::agent select the OpenVox distribution path
  (fedora/<major> on Fedora, el/<major> elsewhere)

Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
benvin merged commit 965849594e into develop 2026-07-28 21:42:33 +10:00
benvin deleted branch benvin/fedora-44-base 2026-07-28 21:42:33 +10:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unkin/puppet-prod#497