feat: add ceph service management profiles and facts #459

Merged
unkinben merged 4 commits from feature/ceph-service-management into develop 2026-04-07 19:02:17 +10:00
Owner

Summary

  • Adds Unkin::Ceph::Utils facter module detecting ceph service instances via systemctl list-units, exposing is_ceph_mon, is_ceph_mgr, is_ceph_mds, is_ceph_osd booleans and a ceph_services hash of unit names
  • Adds profiles::ceph::mon, mgr, mds, osd — each with Boolean $ensure_running that iterates discovered service instances and manages them as running and enabled
  • Works across incus nodes (mon/mgr/mds/osd) and k8s compute/control nodes (osd only); verified on prodnxsr0001 which correctly reports is_ceph_osd: true and ceph_services: {osd: [ceph-osd@5]}

Test plan

  • Noop deploy against prodnxsr0001.main.unkin.net passed cleanly
  • ceph_services fact returns correct service map
  • is_ceph_osd returns True, is_ceph_mon returns False as expected
  • Test on an incus/ceph node with mon/mgr/mds services
## Summary - Adds `Unkin::Ceph::Utils` facter module detecting ceph service instances via `systemctl list-units`, exposing `is_ceph_mon`, `is_ceph_mgr`, `is_ceph_mds`, `is_ceph_osd` booleans and a `ceph_services` hash of unit names - Adds `profiles::ceph::mon`, `mgr`, `mds`, `osd` — each with `Boolean $ensure_running` that iterates discovered service instances and manages them as running and enabled - Works across incus nodes (mon/mgr/mds/osd) and k8s compute/control nodes (osd only); verified on prodnxsr0001 which correctly reports `is_ceph_osd: true` and `ceph_services: {osd: [ceph-osd@5]}` ## Test plan - [x] Noop deploy against prodnxsr0001.main.unkin.net passed cleanly - [x] `ceph_services` fact returns correct service map - [x] `is_ceph_osd` returns `True`, `is_ceph_mon` returns `False` as expected - [x] Test on an incus/ceph node with mon/mgr/mds services
unkinben added 2 commits 2026-04-05 23:02:28 +10:00
Adds Unkin::Ceph::Utils facter module (ceph_services.rb) which detects
ceph service instances via systemctl and exposes is_ceph_mon, is_ceph_mgr,
is_ceph_mds, is_ceph_osd booleans and a ceph_services hash of unit names.

Adds profiles::ceph::mon, mgr, mds, osd — each with a Boolean $ensure_running
parameter that iterates discovered service instances and manages them as
running and enabled. Works across incus nodes (mon/mgr/mds/osd) and k8s
compute/control nodes (osd only).

💘 Generated with Crush

Assisted-by: Claude Sonnet 4.6 via Crush <crush@charm.land>
fix: add module doc comment to satisfy reek IrresponsibleModule
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
066c0ca8b3
unkinben added 1 commit 2026-04-05 23:23:47 +10:00
feat: include ceph service profiles in incus/node and k8s hieradata
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/bolt-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
9572b08683
incus::node gets mon, mgr, mds, osd; k8s compute and control get osd only.
unkinben added 1 commit 2026-04-05 23:27:11 +10:00
fix: move ceph::osd to k8s.yaml instead of compute/control individually
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
b47a717a51
unkinben merged commit 0451894b48 into develop 2026-04-07 19:02:17 +10:00
unkinben deleted branch feature/ceph-service-management 2026-04-07 19:02:18 +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#459