Skip to content

Support for custom executors #689

Open

Description

@haampie

Gitlab has a nice feature where you can easily create a custom executor, it's documented here https://docs.gitlab.com/runner/executors/custom.html.

This allows one to easily support custom container runtimes such as podman, plain runc, singularity, or whatever container runtime you can think of.

At its core, gitlab gives you a script.sh with all the commands for a job, and you are supposed to make it execute somewhere.

Is such a feature possible with github as well? It would be incredibly useful for clusters where you would have e.g. slurm + rootless containers instead of kubernetes/docker.

Activity

  1. ad-m commented on Nov 22, 2020

    @ad-m

    Using your own executors would be a very interesting solution. I see that this would allow to create a fully secure worker based on ephemeral virtual machines (like hosted one). Currently, the worker relies on trust as previous tasks may interfere with subsequent tasks and only safe code execution should be executed.

    This is important restriction, especially for public repositories and open-source projects that cannot guarantee the execution of only safe code. Some open source project – such as Apache Airflow – require additional computing power that cannot be provided by hosted GitHub Actions workers too.

    It allows to execute jobs on AWS Fargate for serverless jobs: https://about.gitlab.com/blog/2020/05/11/introducing-autoscaling-gitlab-runners-on-aws-fargate/

    If it is possible to guarantee that the workflow is small (especially based only on JavaScript actions), it could allow extremely fast execution of jobs in Azure Functions. I have a few workflows that regularly only execute a little JavaScript script. Creating an entire Virtual Machine for them is not effective.

  2. vsoch commented on Sep 16, 2022

    @vsoch
  3. vsoch commented on Sep 16, 2022

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfutureFeature work that we haven't prioritized

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions