- 
                Notifications
    You must be signed in to change notification settings 
- Fork 826
Add yum check for rclone installation #7740
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Add yum check for rclone installation #7740
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the contribution @EricBryann!
Let's add a smoke test on AWS for this :)
Some pointers:
- rclone is needed only with MOUNT_CACHED mode (or on arm64 arch),
- So you can copy test_kubernetes_storage_mounts_cached as a starting point
- Let's test with two different AMIs that are different linux distros, one with dpkg, the other with yum. We can take ubuntu and amazon linux 2023 for example
7598e34    to
    40c1c3f      
    Compare
  
    …skypilot into check-bin-for-rclone-install
| /smoke-test -k storage_mounts_cached --aws | 
| # aws ec2 describe-images \ | ||
| # --owners 099720109477 \ | ||
| # --filters "Name=name,Values=ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*" \ | ||
| # --query 'Images | sort_by(@, &CreationDate) | [-1].[ImageId,Name,CreationDate]' \ | ||
| # --output text --region us-east-2 | ||
| '--infra aws/us-east-2 --image-id ami-0f5fcdfbd140e4ab7' | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To reduce duplication, could we use @pytest.mark.parametrize to parametrize just the image id (and the comment too), because everything else is the same.
| # --filters "Name=name,Values=al2023-ami-2023.*-x86_64" \ | ||
| # --query 'Images | sort_by(@, &CreationDate) | [-1].[ImageId,Name]' \ | ||
| # --output text --region us-east-2 | ||
| '--infra aws/us-east-2 --image-id ami-0a5a5b7e2278263e5' | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the smoke test! This actually catches a minor issue in our code. Turns out, Amazon Linux 2023 does not have fusermount3 installed by default (while ubuntu does) so this test actually errors, so let's add a step to do that before doing rclone mount.
Minimal repro with the same image id:
% sky launch --infra aws/us-east-2 --image-id ami-0a5a5b7e2278263e5 which fusermount3
Command to run: which fusermount3
Considered resources (1 node):
------------------------------------------------------------------------------
 INFRA             INSTANCE      vCPUs   Mem(GB)   GPUS   COST ($)   CHOSEN
------------------------------------------------------------------------------
 AWS (us-east-2)   m6i.2xlarge   8       32        -      0.38          ✔
------------------------------------------------------------------------------
Launching a new cluster 'sky-7f54-kevin'. Proceed? [Y/n]:
⚙︎ Launching on AWS us-east-2 (us-east-2a,us-east-2b,us-east-2c).
└── Instance is up.
✓ Cluster launched: sky-7f54-kevin.  View logs: sky logs --provision sky-7f54-kevin
⚙︎ Syncing files.
⚙︎ Job submitted, ID: 1
├── Waiting for task resources on 1 node.
└── Job started. Streaming logs... (Ctrl-C to exit log streaming; job will not be killed)
(sky-cmd, pid=27528) /usr/bin/which: no fusermount3 in (/home/ubuntu/miniconda3/bin:/home/ubuntu/miniconda3/condabin:/home/ubuntu/.local/bin:/home/ubuntu/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin)
✓ Job finished (status: SUCCEEDED).
PR to fix #6567
When
dpkgruns into an error, the code defaults toyum, and some don't haveyuminstalled, resulting insudo: yum: command not foundThis PR checks for existence of
yumbeforercloneinstallTested (run the relevant ones):
bash format.sh/smoke-test(CI) orpytest tests/test_smoke.py(local)/smoke-test -k test_name(CI) orpytest tests/test_smoke.py::test_name(local)/quicktest-core(CI) orpytest tests/smoke_tests/test_backward_compat.py(local)