This is an automated email from the ASF dual-hosted git repository. yasith pushed a commit to branch cybershuttle-staging in repository https://gitbox.apache.org/repos/asf/airavata.git
commit 21d1de022649d6ab1651e073c18db1dde5e353d7 Author: yasith <[email protected]> AuthorDate: Mon Apr 7 12:05:28 2025 -0400 add overlay fs to agent for rw access. update makefile scripts, add stderr logging to agent --- modules/agent-framework/airavata-agent/Makefile | 34 +++++++++++++++++++------ modules/agent-framework/airavata-agent/agent.go | 4 +-- modules/agent-framework/airavata-agent/agent.sh | 16 +++++++----- 3 files changed, 38 insertions(+), 16 deletions(-) diff --git a/modules/agent-framework/airavata-agent/Makefile b/modules/agent-framework/airavata-agent/Makefile index 2c4fc8b218..8fd4614dad 100644 --- a/modules/agent-framework/airavata-agent/Makefile +++ b/modules/agent-framework/airavata-agent/Makefile @@ -10,30 +10,48 @@ build-container: run-container: docker run -it $(IMAGE_NAME) /opt/airavata-agent $(AGENT_SVC_URL) $(AGENT_ID) -deploy-all: deploy-anvil-scigap deploy-anvil-waterhub deploy-anvil-gcommunityus +deploy-anvil: deploy-anvil-scigap deploy-anvil-waterhub deploy-anvil-gcommunityus deploy-anvil-scigap: - ssh [email protected] srun -p shared --mem 4G -t 30 singularity pull \ + ssh x-scigap@anvil srun -p shared --mem 4G -t 30 singularity pull \ --disable-cache \ --force \ cybershuttle/container/remote-agent-base.sif \ docker://$(IMAGE_NAME) deploy-anvil-waterhub: - ssh [email protected] srun -p shared --mem 4G -t 30 singularity pull \ + ssh x-waterhub@anvil srun -p shared --mem 4G -t 30 singularity pull \ --disable-cache \ --force \ cybershuttle/container/remote-agent-base.sif \ docker://$(IMAGE_NAME) deploy-anvil-gcommunityus: - ssh [email protected] srun -p shared --mem 4G -t 30 singularity pull \ + ssh x-gcommunityus@anvil srun -p shared --mem 4G -t 30 singularity pull \ --disable-cache \ --force \ cybershuttle/container/remote-agent-base.sif \ docker://$(IMAGE_NAME) -deploy-bootstrap-anvil: - scp agent.sh [email protected]:~/cybershuttle/agent.sh && \ - scp agent.sh [email protected]:~/cybershuttle/agent.sh && \ - scp agent.sh [email protected]:~/cybershuttle/agent.sh +deploy-expanse: deploy-expanse-scigap deploy-expanse-gridchem + +deploy-expanse-scigap: + ssh scigap@expanse srun -p shared --mem 4G -t 30 singularity pull \ + --disable-cache \ + --force \ + cybershuttle/container/remote-agent-base.sif \ + docker://$(IMAGE_NAME) + +deploy-expanse-gridchem: + ssh gridchem@expanse srun -p shared --mem 4G -t 30 singularity pull \ + --disable-cache \ + --force \ + cybershuttle/container/remote-agent-base.sif \ + docker://$(IMAGE_NAME) + +deploy-bootstrap: + scp agent.sh x-scigap@anvil:~/cybershuttle/agent.sh && \ + scp agent.sh x-waterhub@anvil:~/cybershuttle/agent.sh && \ + scp agent.sh x-gcommunityus@anvil:~/cybershuttle/agent.sh && \ + scp agent.sh scigap@expanse:~/cybershuttle/agent.sh && \ + scp agent.sh gridchem@expanse:~/cybershuttle/agent.sh diff --git a/modules/agent-framework/airavata-agent/agent.go b/modules/agent-framework/airavata-agent/agent.go index bd64d08ae9..6814328326 100644 --- a/modules/agent-framework/airavata-agent/agent.go +++ b/modules/agent-framework/airavata-agent/agent.go @@ -68,7 +68,7 @@ func main() { libCmd := exec.Command("micromamba", "install", "-n", envName, "--yes") libCmd.Args = append(libCmd.Args, libList...) if err := libCmd.Run(); err != nil { - log.Fatalf("[agent.go] main() Error Installing --lib: %v\n", err) + log.Fatalf("[agent.go] main() Error Installing --lib: %v\n%s\n", err, libCmd.Stderr) } log.Printf("[agent.go] main() Installed --lib: %v\n", libList) } else { @@ -82,7 +82,7 @@ func main() { pipCmd := exec.Command("micromamba", "run", "-n", envName, "pip", "install") pipCmd.Args = append(pipCmd.Args, pipList...) if err := pipCmd.Run(); err != nil { - log.Fatalf("[agent.go] main() Error Installing --pip: %v\n", err) + log.Fatalf("[agent.go] main() Error Installing --pip: %v\n%s\n", err, pipCmd.Stderr) } log.Printf("[agent.go] main() Installed --pip: %v\n", pipList) diff --git a/modules/agent-framework/airavata-agent/agent.sh b/modules/agent-framework/airavata-agent/agent.sh old mode 100644 new mode 100755 index 8a9db1f91e..9059ae09cf --- a/modules/agent-framework/airavata-agent/agent.sh +++ b/modules/agent-framework/airavata-agent/agent.sh @@ -1,4 +1,4 @@ -#!/bin/bash -x +#!/bin/bash # ##################################################################### # Airavata Agent Bootstrapper @@ -18,7 +18,6 @@ # Default values CS_HOME=$HOME/cybershuttle -WORKDIR=$CS_HOME/workspace AGENT="" SERVER="" CONTAINER="" @@ -26,7 +25,7 @@ LIBRARIES="" PIP="" BIND_OPTS=() -PARSED_OPTIONS=$(getopt -o '' --long server:,agent:,container:,bind: -n "$0" -- "$@") +PARSED_OPTIONS=$(getopt -o '' --long server:,agent:,container:,libraries:,pip:,mounts:,bind: -n "$0" -- "$@") if [ $? -ne 0 ]; then echo "Usage: $0 \ --server SERVER \ @@ -50,7 +49,7 @@ while true; do --mounts) IFS=',' read -ra MOUNTS <<< "$2" for MOUNT in "${MOUNTS[@]}"; do - BIND_OPTS+=("--bind $MOUNT:ro") + BIND_OPTS+=("--bind $(eval echo $MOUNT):ro") done shift 2 ;; --bind) BIND_OPTS+=("--bind $2:ro"); shift 2 ;; @@ -61,7 +60,6 @@ done # Final values echo "CS_HOME=$CS_HOME" -echo "WORKDIR=$WORKDIR" echo "AGENT=$AGENT" echo "SERVER=$SERVER" echo "CONTAINER=$CONTAINER" @@ -72,8 +70,14 @@ echo "BIND_OPTS=$BIND_OPTS" # ---------------------------------------------------------------------- # STEP 2 - RUN AGENT # ---------------------------------------------------------------------- +# Create overlay image (4GB) if it doesn't exist +if [ ! -f workspace.img ]; then + singularity overlay create --size 4096 workspace.img +fi +# Start agent with the given params and overlay KERNEL_SOCK=$(mktemp) singularity exec \ - --bind $WORKDIR:/scratch:ro ${BIND_OPTS[@]} \ + --overlay workspace.img \ + ${BIND_OPTS[@]} \ $CS_HOME/container/$CONTAINER /opt/airavata-agent \ --server $SERVER:19900 \ --agent $AGENT \
