Conversation
… container flags Co-authored-by: abhi18av <12799326+abhi18av@users.noreply.github.com> Agent-Logs-Url: https://github.com/abc-cluster/nomad-driver-singularity/sessions/070f4404-39de-466a-ac0f-7cb9d789e85a
Co-authored-by: abhi18av <12799326+abhi18av@users.noreply.github.com> Agent-Logs-Url: https://github.com/abc-cluster/nomad-driver-singularity/sessions/070f4404-39de-466a-ac0f-7cb9d789e85a
Copilot created this pull request from a session on behalf of
abhi18av
March 23, 2026 09:03
View session
Member
|
@copilot summarize all changes |
Author
Here's a summary of all changes made across the two commits: Dependencies (
|
| HCL key | Singularity/Apptainer flag | Addresses issue |
|---|---|---|
containall |
--containall |
hpcng#35 |
writable_tmpfs |
--writable-tmpfs |
hpcng#36 |
net |
--net |
hpcng#33 |
hostname |
--hostname |
hpcng#28 |
Bug fixes (driver.go, handle.go, prepare.go)
- Duplicate
SetDriverStatecall inStartTask— the second identical call was removed timeout * time.Secondinshutdown()—timeoutis already atime.Duration; multiplying it bytime.Secondwas incorrect (e.g. a 30s timeout became 30 × 10⁹ seconds)- Missing
NoCgroups boolin theConfigstruct —no_cgroupswas declared inconfigSpecbut never decoded into the struct ioutil.Discardreplaced withio.Discard(standard library, not deprecated)
Other
examples/example.hcl: added the MPL 2.0 license header (issue example.hcl: no license hpcng/nomad-driver-singularity#29)README.md: updated requirements (Nomad v0.12+, Go v1.21+, Apptainer v1.0+ as alternative), added full driver config and task config reference tables, Apptainer usage example- Tests (
driver_test.go): addedTestFindBinaryandTestPrepareContainer(9 sub-tests covering all new flags) gofmtapplied to all changed Go files
Copilot
AI
changed the title
Analysis for modernizing Nomad driver for Singularity
Modernize Nomad driver for Singularity/Apptainer: dynamic binary detection, new container flags, bug fixes
Mar 23, 2026
Member
|
@copilot create testing instructions, assuming a nomad client running on a compute node with proper singularity/apptainer setup. |
Co-authored-by: abhi18av <12799326+abhi18av@users.noreply.github.com> Agent-Logs-Url: https://github.com/abc-cluster/nomad-driver-singularity/sessions/3226f53a-dae5-4a57-870d-af011429b748
Author
Added a "Testing on a Nomad client node" section to README with step-by-step instructions for validating the driver on a compute node (build/install, config, runtime check, smoke-test job, and log inspection). Commit: 95ce0ba. |
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.
Modernizes the
nomad-driver-singularitytask driver to work with current Go versions, adds Apptainer support, fixes several bugs, and exposes missing Singularity/Apptainer CLI flags.Dependency Updates
hashicorp/nomadbumped fromv0.9.0-rc2→v0.12.12— fixes a runtime panic caused by the oldugorji/gocodec using a duplicate-character base64 alphabet rejected by Go 1.22+hashicorp/go-hclogupdated to latestgithub.com/sylabs/singularityremoved — was only used to supply the hardcoded version string"3.1.1"go 1.21language directive added togo.modApptainer Support + Dynamic Binary/Version Detection
/usr/local/bin/singularityconstantfindBinary(configured string)helper: returns the configured path if set, otherwise searches$PATHforsingularitythenapptainergetVersion(binPath string)helper: runs<bin> versionand returns the live output instead of the static string"3.1.1"singularity_pathso operators can point directly at/usr/bin/apptainerinit()function inmain.gothat calleduseragent.InitValue("singularity", "3.1.1")New Task Config Flags
containall--containallwritable_tmpfs--writable-tmpfsnet--nethostname--hostnameBug Fixes
SetDriverStatecall inStartTask— the second identical call was removedtimeout * time.Secondinshutdown()—timeoutis already atime.Duration; multiplying it bytime.Secondwas producing vastly inflated timeoutsNoCgroups boolin theConfigstruct —no_cgroupswas declared inconfigSpecbut never decoded into the structioutil.Discardreplaced withio.DiscardOther Changes
examples/example.hcl: added the MPL 2.0 license headerREADME.md: updated requirements (Nomad v0.12+, Go v1.21+, Apptainer v1.0+ as alternative), added full driver config and task config reference tables with Apptainer usage example, and added step-by-step testing instructions for running the driver on a Nomad client nodeTestFindBinaryandTestPrepareContainer(9 sub-tests covering all new flags)gofmtapplied to all changed Go filesTesting
go build ./...passesgo vet ./...passesgo test ./...)gofmtformatting applied📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.