68 lines
2.6 KiB
Markdown
68 lines
2.6 KiB
Markdown
# Progress
|
|
|
|
## Completed Features
|
|
|
|
### ✅ Singularity/Apptainer Sandbox Integration (Feb 6, 2026 - FULLY TESTED)
|
|
Adapted the Atropos sandbox environment from Docker to Singularity/Apptainer for HPC clusters.
|
|
|
|
**What Works:**
|
|
- `create_sandbox_job()` supports both `driver="docker"` and `driver="singularity"`
|
|
- SlotPoolConfig and NomadBackendConfig propagate driver settings
|
|
- Singularity container runs sandbox_server.py via Nomad's raw_exec driver
|
|
- All sandbox operations work: bash execution, file read/write
|
|
- Nomad environment variables properly expanded via shell wrapper
|
|
- **CLI arguments** `--env.driver` and `--env.singularity_image` for AgentEnvConfig
|
|
- **Static port binding** for Singularity (ReservedPorts vs DynamicPorts)
|
|
- **Port detection** works for both Docker and Singularity allocations
|
|
|
|
**CLI Usage:**
|
|
```bash
|
|
python -m atropos.envs.swe_smith_oracle_env process \
|
|
--env.driver singularity \
|
|
--env.singularity_image /path/to/atropos-sandbox.sif
|
|
```
|
|
|
|
**Created Files:**
|
|
- `nomad-singularity.hcl` - Nomad config with raw_exec enabled
|
|
- `atropos/atropos-sandbox.sif` - 80MB Singularity image
|
|
- `test_singularity_job.py` - Integration test script
|
|
|
|
**Modified Files:**
|
|
- `atropos/nomad/client.py` - driver support + ReservedPorts detection
|
|
- `atropos/slots/pool.py` - driver config fields
|
|
- `atropos/backends/nomad_backend.py` - driver config fields
|
|
- `atropos/envs/agent_env.py` - CLI arguments for driver selection
|
|
|
|
### ✅ Memory Bank Initialized (Feb 5, 2026)
|
|
Set up project documentation structure for context persistence.
|
|
|
|
## In Progress
|
|
None currently.
|
|
|
|
## Known Issues
|
|
- `bwrap_available: false` in Singularity containers - bubblewrap sandboxing not available inside the container (kernel namespaces already in use)
|
|
- Health check timing - may need longer wait for container startup on slower systems
|
|
|
|
## What's Left to Build
|
|
|
|
### HPC Deployment
|
|
- [ ] Test on actual HPC cluster with Slurm/PBS integration
|
|
- [ ] Document cluster-specific deployment procedures
|
|
- [ ] Add support for shared filesystem workspace binding
|
|
|
|
### Enhanced Sandboxing
|
|
- [ ] Investigate alternative sandboxing inside Singularity (seccomp, etc.)
|
|
- [ ] Add network isolation options for Singularity
|
|
|
|
### Documentation
|
|
- [ ] Add Singularity deployment to README
|
|
- [ ] Create HPC deployment skill in skills/mlops/
|
|
|
|
## Evolution of Decisions
|
|
|
|
### Container Runtime Selection
|
|
- **Initial**: Docker-only via Nomad docker driver
|
|
- **Problem**: HPC clusters don't allow Docker without sudo
|
|
- **Solution**: Added Singularity/Apptainer support via raw_exec driver
|
|
- **Result**: Both runtimes now supported with same API
|