From e185dfe18b37c07ba47fdba99a41175cb2250a72 Mon Sep 17 00:00:00 2001 From: deepakt7340 Date: Tue, 31 Mar 2026 16:06:48 +0530 Subject: [PATCH] Use python_version from Hiera for RedHat package installation Add python_version parameter to slurm class, sourced from Hiera (data/os/RedHat.yaml), with defaults in params.pp. Use the variable in pre_requisite_packages and pmix/build.pp to install the correct python and python-devel packages dynamically. --- data/os/RedHat.yaml | 2 ++ manifests/init.pp | 1 + manifests/params.pp | 6 +++++- manifests/pmix/build.pp | 15 ++++++++------- 4 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 data/os/RedHat.yaml diff --git a/data/os/RedHat.yaml b/data/os/RedHat.yaml new file mode 100644 index 0000000..8180e08 --- /dev/null +++ b/data/os/RedHat.yaml @@ -0,0 +1,2 @@ +--- +slurm::python_version: 'python36' \ No newline at end of file diff --git a/manifests/init.pp b/manifests/init.pp index de76412..15c3dea 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -758,6 +758,7 @@ # PMIx settings -- see slurm::pmix class # Boolean $with_pmix = $slurm::params::with_pmix, + String $python_version = $slurm::params::python_version, # String $pmix_version = $slurm::params::pmix_version, # String $pmix_checksum_type = $slurm::params::pmix_src_checksum_type, # String $pmix_checksum = $slurm::params::pmix_src_checksum, diff --git a/manifests/params.pp b/manifests/params.pp index 66c8e10..979593d 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -25,6 +25,10 @@ #### MODULE INTERNAL VARIABLES ######### # (Modify to adapt to unsupported OSes) ######################################### + # Python version for RedHat systems (e.g., 'python3', 'python36', 'python38') + # Value is overridden by slurm class parameter $python_version (from hiera) + $python_version = 'python3' + $pre_requisite_packages = $facts['os']['family'] ? { 'Redhat' => [ 'hwloc', 'hwloc-devel', 'hwloc-plugins', 'numactl', 'numactl-devel', @@ -38,7 +42,7 @@ 'libX11-devel', 'libssh2-devel', 'libevent-devel', - 'python3', 'python3-devel', + $python_version, "${python_version}-devel", ], default => [] } diff --git a/manifests/pmix/build.pp b/manifests/pmix/build.pp index 914b9f4..9afb039 100644 --- a/manifests/pmix/build.pp +++ b/manifests/pmix/build.pp @@ -52,10 +52,11 @@ # with slurm-libmpi). # define slurm::pmix::build ( - Enum['present', 'absent'] $ensure = $slurm::params::ensure, - String $srcdir = $slurm::params::srcdir, - String $dir = $slurm::params::builddir, - Array $defines = [], + Enum['present', 'absent'] $ensure = $slurm::params::ensure, + String $srcdir = $slurm::params::srcdir, + String $dir = $slurm::params::builddir, + Array $defines = [], + String $python_version = $slurm::python_version, ) { include slurm::params @@ -91,13 +92,13 @@ ensure => 'present', } } - if !defined(Package['python3-devel']) { - package { 'python3-devel': + if !defined(Package["${python_version}-devel"]) { + package { "${python_version}-devel": ensure => 'present', } } Yum::Group[$slurm::params::groupinstall] -> Exec[$buildname] - Package['libevent-devel'] -> Package['python3-devel'] -> Exec[$buildname] + Package['libevent-devel'] -> Package["${python_version}-devel"] -> Exec[$buildname] $rpmdir = "${dir}/RPMS/${facts['os']['architecture']}" $rpms = prefix(suffix($slurm::params::pmix_rpms, "-${version}*.rpm"), "${rpmdir}/")