Skip to content

Commit 6572074

Browse files
committed
Remove support for docker-in-docker, privileged and loopback-audio docker-worker features
As far as I know they're unused at this point. In addition: - docker-in-docker involves talking to the docker daemon on the host, which has proven problematic as it bakes in dependencies on the docker daemon's version. It's also dubious from a security perspective, and as far as I can tell doesn't work in generic-worker/d2g (it doesn't have a proxy to only allow "safe" commands) - privileged is inherently problematic as it makes the task root-equivalent on the worker - loopback audio these days is achieved with dummy devices at the pulseaudio or pipewire level, not at the kernel level
1 parent 053d51e commit 6572074

File tree

1 file changed

+5
-19
lines changed

1 file changed

+5
-19
lines changed

src/taskgraph/transforms/task.py

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -496,9 +496,6 @@ def verify_index(config, index):
496496
Required("taskcluster-proxy"): bool,
497497
Required("allow-ptrace"): bool,
498498
Required("loopback-video"): bool,
499-
Required("loopback-audio"): bool,
500-
Required("docker-in-docker"): bool, # (aka 'dind')
501-
Required("privileged"): bool,
502499
# Paths to Docker volumes.
503500
#
504501
# For in-tree Docker images, volumes can be parsed from Dockerfile.
@@ -611,9 +608,6 @@ def build_docker_worker_payload(config, task, task_def):
611608
if worker.get("chain-of-trust"):
612609
features["chainOfTrust"] = True
613610

614-
if worker.get("docker-in-docker"):
615-
features["dind"] = True
616-
617611
if task.get("needs-sccache"):
618612
features["taskclusterProxy"] = True
619613
task_def["scopes"].append(
@@ -630,16 +624,11 @@ def build_docker_worker_payload(config, task, task_def):
630624

631625
capabilities = {}
632626

633-
for lo in "audio", "video":
634-
if worker.get("loopback-" + lo):
635-
capitalized = "loopback" + lo.capitalize()
636-
devices = capabilities.setdefault("devices", {})
637-
devices[capitalized] = True
638-
task_def["scopes"].append("docker-worker:capability:device:" + capitalized)
639-
640-
if worker.get("privileged"):
641-
capabilities["privileged"] = True
642-
task_def["scopes"].append("docker-worker:capability:privileged")
627+
if worker.get("loopback-video"):
628+
capitalized = "loopbackVideo"
629+
devices = capabilities.setdefault("devices", {})
630+
devices[capitalized] = True
631+
task_def["scopes"].append("docker-worker:capability:device:" + capitalized)
643632

644633
task_def["payload"] = payload = {
645634
"image": image,
@@ -1081,9 +1070,6 @@ def set_defaults(config, tasks):
10811070
worker.setdefault("taskcluster-proxy", False)
10821071
worker.setdefault("allow-ptrace", False)
10831072
worker.setdefault("loopback-video", False)
1084-
worker.setdefault("loopback-audio", False)
1085-
worker.setdefault("docker-in-docker", False)
1086-
worker.setdefault("privileged", False)
10871073
worker.setdefault("volumes", [])
10881074
worker.setdefault("env", {})
10891075
if "caches" in worker:

0 commit comments

Comments
 (0)