From d2f3614ab06be763ca145bd6e4ba50d4799a1bb2 Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Sun, 23 Oct 2022 13:02:46 +0300 Subject: [PATCH] Add support for CLEARML_AGENT_DOCKER_ARGS_HIDE_ENV environment variable (see `agent.hide_docker_command_env_vars` config option) --- clearml_agent/commands/worker.py | 2 +- clearml_agent/definitions.py | 1 + .../helper/{docker_agrs.py => docker_args.py} | 10 +++++++++- clearml_agent/session.py | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) rename clearml_agent/helper/{docker_agrs.py => docker_args.py} (90%) diff --git a/clearml_agent/commands/worker.py b/clearml_agent/commands/worker.py index 3732418..24b1450 100644 --- a/clearml_agent/commands/worker.py +++ b/clearml_agent/commands/worker.py @@ -137,7 +137,7 @@ from clearml_agent.helper.repo import clone_repository_cached, RepoInfo, VCS, fi from clearml_agent.helper.resource_monitor import ResourceMonitor from clearml_agent.helper.runtime_verification import check_runtime, print_uptime_properties from clearml_agent.helper.singleton import Singleton -from clearml_agent.helper.docker_agrs import DockerArgsSanitizer +from clearml_agent.helper.docker_args import DockerArgsSanitizer from clearml_agent.session import Session from .events import Events diff --git a/clearml_agent/definitions.py b/clearml_agent/definitions.py index 3cf6128..8453500 100644 --- a/clearml_agent/definitions.py +++ b/clearml_agent/definitions.py @@ -151,6 +151,7 @@ ENV_EXTRA_DOCKER_ARGS = EnvironmentConfig('CLEARML_AGENT_EXTRA_DOCKER_ARGS', typ ENV_DEBUG_INFO = EnvironmentConfig('CLEARML_AGENT_DEBUG_INFO') ENV_CHILD_AGENTS_COUNT_CMD = EnvironmentConfig('CLEARML_AGENT_CHILD_AGENTS_COUNT_CMD') ENV_DOCKER_ARGS_FILTERS = EnvironmentConfig('CLEARML_AGENT_DOCKER_ARGS_FILTERS') +ENV_DOCKER_ARGS_HIDE_ENV = EnvironmentConfig('CLEARML_AGENT_DOCKER_ARGS_HIDE_ENV') ENV_CUSTOM_BUILD_SCRIPT = EnvironmentConfig('CLEARML_AGENT_CUSTOM_BUILD_SCRIPT') """ diff --git a/clearml_agent/helper/docker_agrs.py b/clearml_agent/helper/docker_args.py similarity index 90% rename from clearml_agent/helper/docker_agrs.py rename to clearml_agent/helper/docker_args.py index b7aac2e..83cf8d4 100644 --- a/clearml_agent/helper/docker_agrs.py +++ b/clearml_agent/helper/docker_args.py @@ -1,4 +1,5 @@ import re +import shlex from typing import Tuple, List, TYPE_CHECKING from urllib.parse import urlunparse, urlparse @@ -9,6 +10,7 @@ from clearml_agent.definitions import ( ENV_AZURE_ACCOUNT_KEY, ENV_AGENT_AUTH_TOKEN, ENV_DOCKER_IMAGE, + ENV_DOCKER_ARGS_HIDE_ENV, ) if TYPE_CHECKING: @@ -21,10 +23,16 @@ class DockerArgsSanitizer: # type: (Session, List[str]) -> List[str] if not docker_command: return docker_command - if not session.config.get('agent.hide_docker_command_env_vars.enabled', False): + + enabled = ( + session.config.get('agent.hide_docker_command_env_vars.enabled', False) or ENV_DOCKER_ARGS_HIDE_ENV.get() + ) + if not enabled: return docker_command keys = set(session.config.get('agent.hide_docker_command_env_vars.extra_keys', [])) + if ENV_DOCKER_ARGS_HIDE_ENV.get(): + keys.update(shlex.split(ENV_DOCKER_ARGS_HIDE_ENV.get().strip())) keys.update( ENV_AGENT_GIT_PASS.vars, ENV_AGENT_SECRET_KEY.vars, diff --git a/clearml_agent/session.py b/clearml_agent/session.py index 358bd48..88e92a7 100644 --- a/clearml_agent/session.py +++ b/clearml_agent/session.py @@ -19,7 +19,7 @@ from clearml_agent.definitions import ENVIRONMENT_CONFIG, ENV_TASK_EXECUTE_AS_US from clearml_agent.errors import APIError from clearml_agent.helper.base import HOCONEncoder from clearml_agent.helper.process import Argv -from clearml_agent.helper.docker_agrs import DockerArgsSanitizer +from clearml_agent.helper.docker_args import DockerArgsSanitizer from .version import __version__ POETRY = "poetry"