My cluster deployment with Magic Castle 15.4.1 fails when I upgrade the OS image from Rocky Linux 9 to 10 (no other changes, with version works).
More specifically, puppet fails to run; the root cause seems a string comparison on the puppet file params.pp, that I think is downloaded from config_git_url = "https://github.com/ComputeCanada/puppet-magic_castle.git".
In such file, on line 480, I think the test $facts['os']['release']['major'] < '7' results in '10' < '7' == True because of lexicographic string comparison, rathern than mathematic comparison.
Rocky Linux 10 bug: $facts['os']['release']['major'] < '7' in puppet file
$ ssh rl-mgmt1
WARNING - some steps cloud-init runcmd failed, listed in /run/cloud-init-failed. Manual fixing and rebooting required.
Last login: Mon May 11 16:38:26 2026 from 172.22.0.18
[admin@mgmt1 ~]$ cd /var/log/
[admin@mgmt1 log]$ tail cloud-init-output.log
..........+..+.+..+......+......+..........+.....+...+......+.+.....+......+............+...+....+........+...+...+.......+...+.........+...+..............+...+......+.+...+..+......+....+.....+....+..+.......+++++++++++++++++++++++++++++++++++++++*......+...+......+++++++++++++++++++++++++++++++++++++++*...+........+.......+.....+.+..+....+...+...+..............+......+...+.+...+..................+...+..+.............+.........+......+..+.......+.....+......+....+..+...+.......++++++
-----
Cloning into '/etc/puppetlabs/code/environments/main'...
Switched to a new branch '15.4.1'
WARN -> Puppet Forge module 'derdanne-nfs' has been deprecated, visit https://forge.puppet.com/derdanne/nfs for more information.
Created symlink '/etc/systemd/system/multi-user.target.wants/puppet.service' → '/usr/lib/systemd/system/puppet.service'.
Warning: /etc/puppetlabs/code/environments/production/data/user_data.yaml: file does not contain a valid yaml hash
Error: Evaluation Error: Error while evaluating a Function Call, Unsupported platform: puppetlabs-mysql only supports RedHat 7.0 and beyond. (file: /etc/puppetlabs/code/environments/production/modules/mysql/manifests/params.pp, line: 480, column: 5) on node mgmt1
WARNING - some steps cloud-init runcmd failed, listed in /run/cloud-init-failed. Manual fixing and rebooting required.
Cloud-init v. 24.4-3.el10.0.1 finished at Mon, 11 May 2026 16:33:21 +0000. Datasource DataSourceOpenStackLocal [net,ver=2]. Up 499.57 seconds
[admin@mgmt1 log]$ sudo cat /etc/puppetlabs/code/environments/production/data/user_data.yaml && echo ""
---
[admin@mgmt1 log]$ cat /etc/os-release
NAME="Rocky Linux"
VERSION="10.1 (Red Quartz)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="10.1"
PLATFORM_ID="platform:el10"
PRETTY_NAME="Rocky Linux 10.1 (Red Quartz)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:10::baseos"
HOME_URL="https://rockylinux.org/"
VENDOR_NAME="RESF"
VENDOR_URL="https://resf.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2035-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-10"
ROCKY_SUPPORT_PRODUCT_VERSION="10.1"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="10.1"
[admin@mgmt1 log]$ sed -n '475,485p' /etc/puppetlabs/code/environments/production/modules/mysql/manifests/params.pp
$xtrabackup_package_name = 'percona-xtrabackup'
}
## Additional graceful failures
if $facts['os']['family'] == 'RedHat' and $facts['os']['release']['major'] < '7' and $facts['os']['name'] != 'Amazon' {
fail("Unsupported platform: puppetlabs-${module_name} only supports RedHat 7.0 and beyond.")
}
}
My cluster deployment with Magic Castle 15.4.1 fails when I upgrade the OS image from Rocky Linux 9 to 10 (no other changes, with version works).
More specifically, puppet fails to run; the root cause seems a string comparison on the puppet file
params.pp, that I think is downloaded from config_git_url = "https://github.com/ComputeCanada/puppet-magic_castle.git".In such file, on line
480, I think the test$facts['os']['release']['major'] < '7'results in'10' < '7' == Truebecause of lexicographic string comparison, rathern than mathematic comparison.Rocky Linux 10 bug: $facts['os']['release']['major'] < '7' in puppet file