Add cluster-init hooks for chefless PBS Pro - #98
Open
Jelena Gvero (jgvero32) wants to merge 18 commits into
Open
Jelena Gvero (jgvero32) wants to merge 18 commits into
Jelena Gvero (jgvero32) wants to merge 18 commits into
Conversation
… + password parameters for autoscale script
…tifacts and through build.sh
…enerate_autoscale_json.sh
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Critical release, packaging, and CentOS 7 compatibility blockers remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds role-aware cluster-init hooks for chefless PBS Pro and updates Python 3.11, API, and containerized packaging workflows.
Changes:
- Adds shared server, login, and execute hook handling.
- Removes legacy role-specific stages and tests.
- Updates templates, credentials, packaging, and release tooling.
File summaries
| File | Summary |
|---|---|
util/Dockerfile |
Defines the Python 3.11 packaging image. |
util/build.sh |
Runs containerized builds; stale dist/ handling is critical (2 votes), and the local scalelib path is dropped (moderate, 2 votes). |
util.py |
Adjusts API wheel download handling. |
templates/openpbs.txt |
Adds role and node configuration. |
specs/server/cluster-init/tests/tryme.py |
Removes the legacy test helper. |
specs/server/cluster-init/tests/test_submit.py |
Removes the legacy integration test. |
specs/server/cluster-init/tests/helper.py |
Removes legacy test utilities. |
specs/login/cluster-init/tests/test_execute.py |
Removes the login test. |
specs/login/cluster-init/stages/install.sh |
Removes the legacy login installation stage. |
specs/execute/cluster-init/tests/test_execute.py |
Removes the execute test. |
specs/execute/cluster-init/stages/activate.sh |
Removes the legacy execute activation stage. |
specs/default/cluster-init/roles/server-install.sh |
Updates server setup. |
specs/default/cluster-init/roles/login-install.sh |
Adds login-node setup. |
specs/default/cluster-init/roles/execute-install.sh |
Adds execute-node setup. |
specs/default/cluster-init/install-hook.sh |
Dispatches installation by role. |
specs/default/cluster-init/files/utils.sh |
Removes obsolete hostname discovery. |
specs/default/cluster-init/files/skel.sh |
Installs demo files. |
specs/default/cluster-init/files/hwlocs-install.sh |
Adds shared initialization dependencies. |
specs/default/cluster-init/configure-hook.sh |
Adds role-specific configuration. |
specs/default/cluster-init/activate-hook.sh |
Starts PBS on execute nodes. |
README.md |
Simplifies autoscaler credential handling. |
project.ini |
Updates the API wheel manifest; its release asset mismatch is critical (1 vote). |
package.sh |
Adds packaging entry points. |
package.py |
Updates the API dependency; its workflow version mismatch is critical (2 votes). |
install.sh |
Requires Python 3.11; CentOS 7 compatibility is critical (2 votes). |
generate_autoscale_json.sh |
Makes credentials optional. |
docker-rpmbuild.sh |
Switches the RPM build image. |
docker-package.sh |
Adds Docker/Podman packaging; non-interactive -ti usage is moderate (1 vote). |
build.sh |
Adds venv validation; the unqualified Python interpreter is moderate (2 votes). |
.gitignore |
Ignores build logs. |
.github/workflows/release.yml |
Uses AlmaLinux release builds; missing container runtime is critical (3 votes), and Python command availability is moderate (1 vote). |
Review details
Suppressed comments (2)
.github/workflows/release.yml:21
build.shstill invokespython3 -m venvandpython3 -m pip, but this prerequisite step installs onlypython3.11andpython3.11-pip. The minimal AlmaLinux image does not provide the unversionedpython3command by default, so the job can fail before reaching the container build. Install the interpreter/pip names thatbuild.shinvokes or update that script to use 3.11 consistently.
dnf install -y python3.11 python3.11-pip git tar gzip which findutils
docker-package.sh:80
- This command is always run non-interactively by the release build, but
-tirequests an attached terminal. Docker/Podman can reject this withthe input device is not a TTYbeforeutil/build.shruns; the build does not read stdin, so the TTY flags should be removed.
$runtime run --user "$(id -u):$(id -g)" -e HOME=/tmp -v "$(pwd):${local_azpbs}" $runtime_args $extra_args -ti azpbs_build:latest /bin/bash ${local_azpbs}/util/build.sh $local_scalelib
- Files reviewed: 29/31 changed files
- Comments generated: 7
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| sudo apt update || apt update | ||
| sudo apt-get install -y python3 python3-pip || apt-get install -y python3 python3-pip | ||
| ./build.sh | ||
| run: ./build.sh |
| if [ $? != 0 ]; then | ||
| if [ $INSTALL_PYTHON3 == 1 ]; then | ||
| yum install -y -q python3 || exit 1 | ||
| yum install -y -q python3.11 || exit 1 |
| cd $SOURCE | ||
| rm -f dist/* | ||
| ./package.sh | ||
| mv dist/* blobs/ |
| if [ -z "$(find . -path ./venv/created -mtime -7 -print -quit)" ] || | ||
| ! venv/bin/python -c 'import sys; raise SystemExit(sys.version_info < (3, 11))' 2>/dev/null; then | ||
| rm -rf venv | ||
| python3 -m venv venv |
|
|
||
| cd $SOURCE | ||
| rm -f dist/* | ||
| ./package.sh |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.