cirruslabs / gitlab-tart-executor

GitLab Runner executor to run jobs in Tart VMs
MIT License
60 stars 5 forks source link

Improve documentation #10

Closed mschmieder closed 1 year ago

mschmieder commented 1 year ago

The documentation should be improved to better clarify on

edigaryev commented 1 year ago

Hello Matthias!

There were a couple of updates to the README.md since this issue was created.

Could you please provide some concrete examples of the current functionality and limitations that you find needing the clarification?

waddles commented 1 year ago

prepare_args = ["prepare", "--concurrency 2", "--cpu auto", "--memory auto"] should be prepare_args = ["prepare", "--concurrency", "2", "--cpu", "auto", "--memory", "auto"]

waddles commented 1 year ago

We also need some documentation on the use of cache dir. Reading the MR is quite confusing but if I understand correctly, I need to set the path in config_args as well as the cache_dir* value, for example:

[[runners]]
  executor = "custom"
  builds_dir = "/Users/admin/builds"
  cache_dir = "/Users/admin/cache"
  [runners.custom]
    config_exec = "gitlab-tart-executor"
    config_args = ["config", "--cache-dir", "/Users/admin/cache"]
  [runners.environment]
    # force all jobs to use a temp dir mounted from the host as `builds_dir`
    TART_EXECUTOR_HOST_DIR = true
    # host `--cache-dir` always gets mounted as `/Volumes/My Shared Files/cachedir` inside VM
    #TART_EXECUTOR_INTERNAL_CACHE_DIR = "/Volumes/My Shared Files/cachedir"

I don't understand why you couldn't use the runners.cache_dir path to append args in the config stage, then the environment variable could just be TART_EXECUTOR_SHARED_CACHE_DIR = "true". Is that because gitlab-runner does not pass that config through to gitlab-tart-executor?

* according to docs

In addition both builds_dir and cache_dir inside of the [[runners]] are required fields.

edigaryev commented 1 year ago

Is that because gitlab-runner does not pass that config through to gitlab-tart-executor?

This, and also because the cache_dir has a very different meaning when we run VMs: we essentially need two cache_dir values, one for the host, and the other for VM.

In addition both builds_dir and cache_dir inside of the [[runners]] are required fields.

I am afraid that this is just a poor documentation.

Both of these fields are obviously not required for a custom executor that has a config stage which provides these values automatically.

These fields are also not required for Docker executor, as it provides these default values automatically.