now, for many (if not all) VMs brought up by tart, tart ip reports an address in the 192.168.66.1/24 network, although the VMs themselves report an IP in the 192.168.67.1/24 network, which means that the gitlab-runner cannot access the VM.
now I've found that tart ip --resolver arp returns the correct IP address (the one that the VM uses internally).
therefore I conclude that if I was able to tell gitlab-tart-executor to use the arp resolver rather than the default dhcp resolver, my problem could be worked around.
unfortunately, i haven't found a way to specify such a configuration option.
i guess the ideal solution would be to allow for a configuration file that is read by the executor and can be used to override options to specific tart invocations, e.g.
# ~/.tart/gitlab-tart-executor.toml
[ip]
resolver = "arp"
## in case your VMs are booting really slowly...:
wait = 120
an alternative idea (though i don't like it very much) could be using envvars.
e.g.
I think the only important thing is to be able to set this on a per runner basis (rather than in the .gitlab-ci.yml configuration, as the users of the runner should be oblivious of the actual host specifics)
I'm trying to run
tart
as a gitlab-executor on a host, that is also runningqemu
: as a consequence, the host has two network bridges:now, for many (if not all) VMs brought up by tart,
tart ip
reports an address in the192.168.66.1/24
network, although the VMs themselves report an IP in the192.168.67.1/24
network, which means that the gitlab-runner cannot access the VM.now I've found that
tart ip --resolver arp
returns the correct IP address (the one that the VM uses internally).therefore I conclude that if I was able to tell
gitlab-tart-executor
to use the arp resolver rather than the default dhcp resolver, my problem could be worked around.unfortunately, i haven't found a way to specify such a configuration option.
i guess the ideal solution would be to allow for a configuration file that is read by the executor and can be used to override options to specific
tart
invocations, e.g.an alternative idea (though i don't like it very much) could be using envvars. e.g.
I think the only important thing is to be able to set this on a per runner basis (rather than in the
.gitlab-ci.yml
configuration, as the users of the runner should be oblivious of the actual host specifics)This is a follow up of https://github.com/cirruslabs/tart/issues/668