Skip to content
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

Support not using a container in Azure Batch #5536

Open
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

adamrtalbot
Copy link
Collaborator

There are rare cases where a user needs to run a process on a bare VM on Azure Batch. Most notably, when using the Dragen which requires you to use a specific machine image that does not support a Docker container.

Previously, Nextflow prevented this, but this PR removes that safeguard and replaces it with a warning. It's not a good idea, but it can unblock users if they need to use a bare VM.

If nothing else, this PR functions as proof it can be done if anyone else needs to use it.

Signed-off-by: adamrtalbot <12817534+adamrtalbot@users.noreply.github.com>
…Batch

Signed-off-by: adamrtalbot <12817534+adamrtalbot@users.noreply.github.com>
Signed-off-by: adamrtalbot <12817534+adamrtalbot@users.noreply.github.com>
Signed-off-by: adamrtalbot <12817534+adamrtalbot@users.noreply.github.com>
Copy link

netlify bot commented Nov 22, 2024

Deploy Preview for nextflow-docs-staging ready!

Name Link
🔨 Latest commit 7c75bbf
🔍 Latest deploy log https://app.netlify.com/sites/nextflow-docs-staging/deploys/67572fce74724600082fb88b
😎 Deploy Preview https://deploy-preview-5536--nextflow-docs-staging.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@tom-seqera
Copy link
Contributor

It's not a good idea, but it can unblock users if they need to use a bare VM.

Given this, would it be worth keeping the strict validation on by default and instead providing an override config option to turn it off (like azure.requireContainer=false or something) then updating the validation error message to explain that the option exists but you should only use it if you know what you're doing?

@adamrtalbot
Copy link
Collaborator Author

Given this, would it be worth keeping the strict validation on by default and instead providing an override config option to turn it off (like azure.requireContainer=false or something) then updating the validation error message to explain that the option exists but you should only use it if you know what you're doing?

That's a great idea!

Signed-off-by: adamrtalbot <12817534+adamrtalbot@users.noreply.github.com>
@adamrtalbot adamrtalbot force-pushed the azure_batch_no_container_spec branch from b327beb to ad07555 Compare December 5, 2024 16:55
Signed-off-by: adamrtalbot <12817534+adamrtalbot@users.noreply.github.com>
Signed-off-by: adamrtalbot <12817534+adamrtalbot@users.noreply.github.com>
Signed-off-by: adamrtalbot <12817534+adamrtalbot@users.noreply.github.com>
Signed-off-by: adamrtalbot <12817534+adamrtalbot@users.noreply.github.com>
Signed-off-by: adamrtalbot <12817534+adamrtalbot@users.noreply.github.com>
@adamrtalbot adamrtalbot requested a review from a team as a code owner December 9, 2024 17:58
@adamrtalbot
Copy link
Collaborator Author

@tom-seqera implemented now as azure.batch.requireContainer.

I'm still not sure this is a wise thing to do, but it unblocks some very specific use cases and it's a relatively buried feature.

@pditommaso
Copy link
Member

My understanding is that some tasks my require a container, some other may not, therefore a global setting is sub-optimal.

Also, could not be Dragen accessed by the container anyway? this is for example how it works with AWS Batch (the dragen path in the host is made accessible in the container context)

@adamrtalbot
Copy link
Collaborator Author

Also, could not be Dragen accessed by the container anyway? this is for example how it works with AWS Batch (the dragen path in the host is made accessible in the container context)

Our implementation only works on AWS using a custom AMI. The AMI provided by Illumina uses CentOS 7, which is EOL. And obviously, it's AWS only.

The official AMI provided by Illumina for Azure is not compatible with Docker and they do not want to update it. So we end up either using a Docker compatible image which does not work on Azure Batch, or a specific Dragen based image which does not use Docker. We spent a long time playing around with this and this was the most parsimonious solution we could make work.

@pditommaso
Copy link
Member

The official AMI provided by Illumina for Azure is not compatible with Docker

What this means exactly?

@adamrtalbot
Copy link
Collaborator Author

adamrtalbot commented Dec 9, 2024

Illumina provide a machine image for Dragen, it’s not compatible with Docker.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants