Skip to content

Commit 6237bfb

Browse files
authored
Merge pull request #180 from jacobtruman/XENG-8894
Pass docker container labels to daemon and ssh-agent container creation
2 parents 514e72c + 8acf32a commit 6237bfb

File tree

5 files changed

+21
-3
lines changed

5 files changed

+21
-3
lines changed

buildrunner/__init__.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,12 @@ def run(self): # pylint: disable=too-many-statements,too-many-branches,too-many
399399
multi_platform.set_cache_to(step_config.build.cache_to)
400400

401401
self._step_runner = BuildStepRunner(
402-
self, step_name, step_config, image_config, multi_platform
402+
self,
403+
step_name,
404+
step_config,
405+
image_config,
406+
multi_platform,
407+
self.buildrunner_config.container_labels,
403408
)
404409
self._step_runner.run()
405410

buildrunner/docker/daemon.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@ class DockerDaemonProxy:
1919
Class used to encapsulate Docker daemon information within a container.
2020
"""
2121

22-
def __init__(self, docker_client, log, docker_registry):
22+
def __init__(self, docker_client, log, docker_registry, container_labels):
2323
""" """
2424
self.docker_client = docker_client
2525
self.docker_registry = docker_registry
2626
self.log = log
27+
self.container_labels = container_labels
2728
self._daemon_container = None
2829
self._env = {
2930
"DOCKER_HOST": DOCKER_DEFAULT_DOCKERD_URL,

buildrunner/sshagent/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,12 @@ class DockerSSHAgentProxy:
8989
"""
9090

9191
def __init__(
92-
self, docker_client, log, docker_registry, multiplatform_image_builder
92+
self,
93+
docker_client,
94+
log,
95+
docker_registry,
96+
multiplatform_image_builder,
97+
container_labels,
9398
):
9499
""" """
95100
self.docker_client = docker_client
@@ -100,6 +105,7 @@ def __init__(
100105
self._ssh_client = None
101106
self._ssh_channel = None
102107
self._multiplatform_image_builder = multiplatform_image_builder
108+
self._container_labels = container_labels
103109

104110
def get_info(self):
105111
"""
@@ -131,6 +137,7 @@ def start(self, keys):
131137
command=[
132138
f"{keys[0].get_name()} {keys[0].get_base64()}",
133139
],
140+
labels=self._container_labels,
134141
host_config=self.docker_client.create_host_config(
135142
publish_all_ports=True,
136143
),

buildrunner/steprunner/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ def __init__(
5353
step: Step,
5454
image_config,
5555
multi_platform: MultiplatformImageBuilder,
56+
container_labels,
5657
):
5758
"""
5859
Constructor.
@@ -78,6 +79,7 @@ def __init__(
7879
# generate a unique step id
7980
self.id = str(uuid.uuid4()) # pylint: disable=invalid-name
8081
self.multi_platform = multi_platform
82+
self.container_labels = container_labels
8183

8284
def run(self):
8385
"""

buildrunner/steprunner/tasks/run.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ def _get_source_container(self):
8383
self._source_container = self._docker_client.create_container(
8484
self.step_runner.build_runner.get_source_image(),
8585
command="/bin/sh",
86+
labels=self.step_runner.container_labels,
8687
)["Id"]
8788
self._docker_client.start(
8889
self._source_container,
@@ -828,6 +829,7 @@ def run(self, context: dict): # pylint: disable=too-many-statements,too-many-br
828829
self.step_runner.log,
829830
buildrunner_config.global_config.docker_registry,
830831
self.step_runner.multi_platform,
832+
self.step_runner.container_labels,
831833
)
832834
self._sshagent.start(
833835
buildrunner_config.get_ssh_keys_from_aliases(
@@ -840,6 +842,7 @@ def run(self, context: dict): # pylint: disable=too-many-statements,too-many-br
840842
self._docker_client,
841843
self.step_runner.log,
842844
buildrunner_config.global_config.docker_registry,
845+
self.step_runner.container_labels,
843846
)
844847
self._dockerdaemonproxy.start()
845848

0 commit comments

Comments
 (0)