Add CLEARML_AGENT_CHILD_AGENTS_COUNT_CMD to allow overriding child agent count command in k8s

This commit is contained in:
allegroai 2022-09-15 20:16:01 +03:00
parent 857a750eb1
commit a69766bd8b
2 changed files with 9 additions and 9 deletions

View File

@ -71,6 +71,7 @@ from clearml_agent.definitions import (
ENV_AGENT_SKIP_PYTHON_ENV_INSTALL, ENV_AGENT_SKIP_PYTHON_ENV_INSTALL,
WORKING_STANDALONE_DIR, WORKING_STANDALONE_DIR,
ENV_DEBUG_INFO, ENV_DEBUG_INFO,
ENV_CHILD_AGENTS_COUNT_CMD,
) )
from clearml_agent.definitions import WORKING_REPOSITORY_DIR, PIP_EXTRA_INDICES from clearml_agent.definitions import WORKING_REPOSITORY_DIR, PIP_EXTRA_INDICES
from clearml_agent.errors import ( from clearml_agent.errors import (
@ -3589,15 +3590,13 @@ class Worker(ServiceCommandSection):
def _get_child_agents_count_for_worker(self): def _get_child_agents_count_for_worker(self):
"""Get the amount of running child agents. In case of any error return 0""" """Get the amount of running child agents. In case of any error return 0"""
parent_worker_label = self._parent_worker_label.format(self.worker_id) parent_worker_label = self._parent_worker_label.format(self.worker_id)
cmd = [
'docker', default_cmd = 'docker ps --filter label={parent_worker_label} --format ' \
'ps', '{{"ID":"{{{{ .ID }}}}", "Image": "{{{{ .Image }}}}", ' \
'--filter', '"Names":"{{{{ .Names }}}}", "Labels":"{{{{ .Labels }}}}"}}'
'label={}'.format(parent_worker_label), child_agents_cmd = ENV_CHILD_AGENTS_COUNT_CMD.get() or default_cmd
'--format',
# get some fields for debugging cmd = shlex.split(child_agents_cmd.format(parent_worker_label=parent_worker_label))
'{"ID":"{{ .ID }}", "Image": "{{ .Image }}", "Names":"{{ .Names }}", "Labels":"{{ .Labels }}"}'
]
try: try:
output = Argv(*cmd).get_output( output = Argv(*cmd).get_output(
stderr=subprocess.STDOUT stderr=subprocess.STDOUT

View File

@ -149,6 +149,7 @@ ENV_DOCKER_HOST_MOUNT = EnvironmentConfig('CLEARML_AGENT_K8S_HOST_MOUNT', 'CLEAR
ENV_VENV_CACHE_PATH = EnvironmentConfig('CLEARML_AGENT_VENV_CACHE_PATH') ENV_VENV_CACHE_PATH = EnvironmentConfig('CLEARML_AGENT_VENV_CACHE_PATH')
ENV_EXTRA_DOCKER_ARGS = EnvironmentConfig('CLEARML_AGENT_EXTRA_DOCKER_ARGS', type=list) ENV_EXTRA_DOCKER_ARGS = EnvironmentConfig('CLEARML_AGENT_EXTRA_DOCKER_ARGS', type=list)
ENV_DEBUG_INFO = EnvironmentConfig('CLEARML_AGENT_DEBUG_INFO') ENV_DEBUG_INFO = EnvironmentConfig('CLEARML_AGENT_DEBUG_INFO')
ENV_CHILD_AGENTS_COUNT_CMD = EnvironmentConfig('CLEARML_AGENT_CHILD_AGENTS_COUNT_CMD')
ENV_CUSTOM_BUILD_SCRIPT = EnvironmentConfig('CLEARML_AGENT_CUSTOM_BUILD_SCRIPT') ENV_CUSTOM_BUILD_SCRIPT = EnvironmentConfig('CLEARML_AGENT_CUSTOM_BUILD_SCRIPT')
""" """