Skip to content

Allow to specifiy tmpfs for volume in taskRunner #19892

Description

@thomas-depierre

Feature description

When using the "io.kestra.plugin.scripts.runner.docker.Docker" task runner with a specific image, it would be very useful to be able to specify that the volume be mounted in RAM using tmpfs.

Activity

  1. locked and limited conversation to collaborators on Sep 17, 2026
  2. unlocked this conversation on Sep 18, 2026
  3. Jainish-123 commented on Sep 19, 2026

    @Jainish-123

    @thomas-depierre and @fdelbrayelle I would like to work on this feature.

  4. thomas-depierre commented on Sep 19, 2026

    @thomas-depierre
    Author

    @Jainish-123 François is the one who will tell you :) Just wait until Monday.

  5. Jainish-123 commented on Sep 19, 2026

    @Jainish-123
  6. fdelbrayelle commented on Sep 20, 2026

    @fdelbrayelle
    Member

    Hello @Jainish-123 👋 Sure, go for it, thank you! 🚀

  7. MilosPaunovic commented on Sep 25, 2026

    @MilosPaunovic
    Member

    Hey @Jainish-123, are there any updates on this?

  8. Jainish-123 commented on Sep 25, 2026

    @Jainish-123

    Hey @MilosPaunovic Thanks for checking in! I will be working on this over the weekend and will share an update once I have made some progress.

  9. MilosPaunovic commented on Sep 28, 2026

    @MilosPaunovic
    Member

    Hey @Jainish-123, are there any updates on this?

  10. Jainish-123 commented on Sep 29, 2026

    @Jainish-123

    Hi, I have a couple of questions before I start.

    First, which repo should the PR go to? The issue is here on plugin-scripts, but Docker.java is actually in kestra-io/kestra under script/src/main/java/io/kestra/plugin/scripts/runner/docker/. This repo only mentions it in examples. Assuming kestra core?

    Second, which volume did you mean? There are two it could be:

    • the ones a user mounts themselves via the existing volumes: option
    • the working directory Kestra creates on its own to move inputFiles and outputFiles in and out of the container

    Depending on which, the option looks quite different. Either let people name any path:

    taskRunner:
      type: io.kestra.plugin.scripts.runner.docker.Docker
      tmpfs:
        /scratch: "rw,size=512m"

    or just a flag like tmpfsWorkingDirectory: true for the second case.

    Which would you prefer?"

  11. fdelbrayelle commented on Sep 29, 2026

    @fdelbrayelle
    Member

    Hi @Jainish-123 👋
    Yes it's in Kestra core repository indeed.
    For the volume question, would you have more insights @thomas-depierre 🙏 ? Thanks!

  12. thomas-depierre commented on Sep 29, 2026

    @thomas-depierre
    Author

    Indeed, the goal is to keep inputFiles and outputFiles in a tmpfs to boost performance and avoid unnecessary I/O.

    In my view, this configuration should align with how a taskRunner is defined (while the tmpfsWorkingDirectory: true setting is certainly convenient, it doesn't allow for specifying limits or other parameters).

    We cannot use the volumes property, as it already lists the mount points to be mapped.

    So, why not add a property, perhaps called volumesInMemory, where each item allows you to specify a size limit, an optional internal path, and so on?

    For example:

    taskRunner:
      type: io.kestra.plugin.scripts.runner.docker.Docker
      cpu:
        cpus: 4
      memory:
        memory: "8Gb"
      volumesInMemory:
        vol_one:
          sizeLimit: "64Gb"
        vol_two:
          sizeLimit: "12Gb"
    

    Of course, this is just a suggestion; if you have a better idea, I'm all ears. :)

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

Metadata

Metadata

Assignees

Labels

area/pluginPlugin-related issue or feature requestgood first issueGreat issue for new contributors

Fields

Stage

In progress

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions