diff --git a/README.md b/README.md index 00d5b25a..bb4b11e7 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ CycleCloud Slurm Clusters in Azure This project sets up an auto-scaling Slurm cluster Slurm is a highly configurable open source workload manager. See the [Slurm project site](https://www.schedmd.com/) for an overview. # Table of Contents: -1. [Managing Slurm Clusters in 4.0.5](#managing-slurm-clusters) +1. [Managing Slurm Clusters in 4.0.6](#managing-slurm-clusters) 1. [Making Cluster Changes](#making-cluster-changes) 2. [No longer pre-creating execute nodes](#no-longer-pre-creating-execute-nodes) 3. [Creating additional partitions](#creating-additional-partitions) @@ -36,7 +36,7 @@ Slurm is a highly configurable open source workload manager. See the [Slurm proj 8. [Capturing logs and configuration for troubleshooting](#capturing-logs-and-configuration-data-for-troubleshooting) 6. [Contributing](#contributing) --- -## Managing Slurm Clusters in 4.0.5 +## Managing Slurm Clusters in 4.0.6 ### Making Cluster Changes In CycleCloud, cluster changes can be made using the "Edit" dialog from the cluster page in the GUI or from the CycleCloud CLI. Cluster topology changes, such as new partitions, generally require editing and re-importing the cluster template. This can be applied to live, running clusters as well as terminated clusters. It is also possible to import changes as a new Template for future cluster creation via the GUI. diff --git a/azure-slurm-install/setup.py b/azure-slurm-install/setup.py index e79d61d7..f89adea6 100644 --- a/azure-slurm-install/setup.py +++ b/azure-slurm-install/setup.py @@ -7,7 +7,7 @@ from setuptools.command.test import Command from setuptools.command.test import test as TestCommand # noqa: N812 -__version__ = "4.0.5" +__version__ = "4.0.6" CWD = os.path.dirname(os.path.abspath(__file__)) diff --git a/azure-slurm-install/start-services.sh b/azure-slurm-install/start-services.sh index 67bd3459..7d8626b7 100644 --- a/azure-slurm-install/start-services.sh +++ b/azure-slurm-install/start-services.sh @@ -217,6 +217,11 @@ ensure_enroot_dir() { # CONF=/etc/enroot/enroot.conf + # no-op if enroot.conf does not exist + if [ ! -f "$CONF" ]; then + return 0 + fi + # extract ENROOT_TEMP_PATH value ENROOT_TEMP_PATH=$(awk '$1=="ENROOT_TEMP_PATH"{print $2}' "$CONF") diff --git a/azure-slurm-install/templates/enroot.conf.template b/azure-slurm-install/templates/enroot.conf.template index 8a104283..a4bf1cfc 100644 --- a/azure-slurm-install/templates/enroot.conf.template +++ b/azure-slurm-install/templates/enroot.conf.template @@ -6,4 +6,6 @@ ENROOT_SQUASH_OPTIONS -noI -noD -noF -noX -no-duplicates ENROOT_MOUNT_HOME y ENROOT_RESTRICT_DEV y ENROOT_ROOTFS_WRITABLE y -MELLANOX_VISIBLE_DEVICES all \ No newline at end of file +MELLANOX_VISIBLE_DEVICES all +# Trailing comment - this file requires at least one trailing newline after the above + diff --git a/azure-slurm/setup.py b/azure-slurm/setup.py index b45d1644..6a025df5 100644 --- a/azure-slurm/setup.py +++ b/azure-slurm/setup.py @@ -7,7 +7,7 @@ from setuptools.command.test import Command from setuptools.command.test import test as TestCommand # noqa: N812 -__version__ = "4.0.5" +__version__ = "4.0.6" CWD = os.path.dirname(os.path.abspath(__file__)) diff --git a/azure-slurm/slurmcc/cli.py b/azure-slurm/slurmcc/cli.py index 343e8777..61a8b8e5 100644 --- a/azure-slurm/slurmcc/cli.py +++ b/azure-slurm/slurmcc/cli.py @@ -39,7 +39,7 @@ from . import topology -VERSION = "4.0.5" +VERSION = "4.0.6" def csv_list(x: str) -> List[str]: diff --git a/project.ini b/project.ini index b36f33f0..656ae380 100644 --- a/project.ini +++ b/project.ini @@ -1,11 +1,11 @@ [project] name = slurm label = Slurm -version = 4.0.5 +version = 4.0.6 type = scheduler [blobs] -Files = azure-slurm-pkg-4.0.5.tar.gz, azure-slurm-install-pkg-4.0.5.tar.gz +Files = azure-slurm-pkg-4.0.6.tar.gz, azure-slurm-install-pkg-4.0.6.tar.gz [spec scheduler] run_list = role[slurm_scheduler_role] diff --git a/specs/default/chef/site-cookbooks/slurm/attributes/default.rb b/specs/default/chef/site-cookbooks/slurm/attributes/default.rb index 928cd441..a8b7a74c 100644 --- a/specs/default/chef/site-cookbooks/slurm/attributes/default.rb +++ b/specs/default/chef/site-cookbooks/slurm/attributes/default.rb @@ -1,6 +1,6 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. -default[:slurm][:autoscale_version] = "4.0.5" +default[:slurm][:autoscale_version] = "4.0.6" default[:slurm][:version] = "23.11.9-1" default[:slurm][:user][:name] = 'slurm' default[:slurm][:cyclecloud_api] = "cyclecloud_api-8.4.1-py2.py3-none-any.whl" diff --git a/specs/default/chef/site-cookbooks/slurm/metadata.rb b/specs/default/chef/site-cookbooks/slurm/metadata.rb index 29132aad..e8642150 100644 --- a/specs/default/chef/site-cookbooks/slurm/metadata.rb +++ b/specs/default/chef/site-cookbooks/slurm/metadata.rb @@ -4,7 +4,7 @@ license 'All Rights Reserved' description 'Installs/Configures slurm' long_description 'Installs/Configures slurm' -version '4.0.5' +version '4.0.6' chef_version '>= 12.1' if respond_to?(:chef_version) %w{ cuser cshared }.each {|c| depends c} diff --git a/specs/scheduler/cluster-init/scripts/00-install.sh b/specs/scheduler/cluster-init/scripts/00-install.sh index ace6cc19..a661d713 100644 --- a/specs/scheduler/cluster-init/scripts/00-install.sh +++ b/specs/scheduler/cluster-init/scripts/00-install.sh @@ -13,13 +13,20 @@ find_python3() { return 0 fi for version in $( seq 11 20 ); do - which python3.$version + which python3.$version > /dev/null 2>/dev/null if [ $? == 0 ]; then - return 0 + python3.$version -m "import yaml, venv" + if [ $? == 0 ]; then + # write to stdout the validated path + which python3.$version + return 0 + else + echo Warning: Found python3.$version but venv and/or yaml are not installed. 1>&2 + fi fi done - echo Could not find python3 version 3.11 >&2 - return 1 + # Quietly return nothing + return 0 } install_python3() { @@ -29,6 +36,7 @@ install_python3() { export PYTHON_BIN return 0 fi + echo "No suitable python3 installation found, beginning installation." >&2 # NOTE: based off of healthagent 00-install.sh, but we have different needs - we don't need the devel/systemd paths. # most likely if healthagent is already installed, this won't be an issue. if [ -f /etc/os-release ]; then