feat: add ceph service management profiles and facts (#459)
## 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
Reviewed-on: #459
This commit was merged in pull request #459.
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
class profiles::ceph::mds (
|
||||
Boolean $ensure_running = true,
|
||||
) {
|
||||
|
||||
if $ensure_running and $facts['is_ceph_mds'] {
|
||||
$facts['ceph_services']['mds'].each |String $svc| {
|
||||
service { $svc:
|
||||
ensure => running,
|
||||
enable => true,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
class profiles::ceph::mgr (
|
||||
Boolean $ensure_running = true,
|
||||
) {
|
||||
|
||||
if $ensure_running and $facts['is_ceph_mgr'] {
|
||||
$facts['ceph_services']['mgr'].each |String $svc| {
|
||||
service { $svc:
|
||||
ensure => running,
|
||||
enable => true,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
class profiles::ceph::mon (
|
||||
Boolean $ensure_running = true,
|
||||
) {
|
||||
|
||||
if $ensure_running and $facts['is_ceph_mon'] {
|
||||
$facts['ceph_services']['mon'].each |String $svc| {
|
||||
service { $svc:
|
||||
ensure => running,
|
||||
enable => true,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
class profiles::ceph::osd (
|
||||
Boolean $ensure_running = true,
|
||||
) {
|
||||
|
||||
if $ensure_running and $facts['is_ceph_osd'] {
|
||||
$facts['ceph_services']['osd'].each |String $svc| {
|
||||
service { $svc:
|
||||
ensure => running,
|
||||
enable => true,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user