openvibers/openvibe.link Commits

Node: worker.dns, so a job with a network can resolve names (install --worker sets public resolvers) (#39)

OP OpenVibers committed 30 days ago · tag v0.5.0 · 0 files, +0 −0

Found by the first end-to-end run of a coding task on a person's own machine (openvibe.codes/run → Run → Bot → this Node, on production). Everything reached the job, but its `git clone` failed with `Could not resolve host: github.com`. A job never gets the host's resolver (127.0.0.53 is out of its network namespace), and nothing told it any other.

**worker.dns**
- Up to three IPv4 resolvers, empty by default.
- They become the job's own `/etc/resolv.conf`, a file of its private root that is read-only like the rest. This happens only for a job that runs with a network (public or openvibe-only); a job without one gets none.
- Config validation accepts only addresses such a job could reach anyway:
  - public ones (not private, shared, loopback, link-local or IPv6);
  - under openvibe-only, ones inside `egress_allow`;
  - and only with a policy that gives jobs a network.
- `install.sh --worker` sets `["1.1.1.1", "9.9.9.9"]` unless the config already names others.

**Also**
- `pair` on a worker binding printed "Bound as dev_… (robot )". It now says it is a machine for your jobs.

**Tests**
- `TestWorkerDNS` (config).
- `TestEgressDNS`: a root sandbox test that reads the job's resolv.conf with and without a network.
- The installer's worker-config test checks the default.
- shellcheck.

This commit has no diff to show.