mirror of
https://github.com/clearml/clearml-agent
synced 2025-02-26 05:59:24 +00:00
Add default support for dns i.e. rocky/centos/fedora containers
This commit is contained in:
parent
528bf314ef
commit
8d3cb34390
@ -207,7 +207,8 @@
|
||||
# docker_args_filters: ["^--env$", "^-e$"]
|
||||
|
||||
# optional shell script to run in docker when started before the experiment is started
|
||||
# extra_docker_shell_script: ["apt-get install -y bindfs", ]
|
||||
# notice that even if one command fails the other commands will still execute
|
||||
# extra_docker_shell_script: ["apt-get install -y bindfs", "dnf install -y bindfs", "yum install -y bindfs"]
|
||||
|
||||
# Install the required packages for opencv libraries (libsm6 libxext6 libxrender-dev libglib2.0-0),
|
||||
# for backwards compatibility reasons, true as default,
|
||||
|
@ -191,7 +191,7 @@ def main():
|
||||
'agent.git_pass=\"{}\"\n' \
|
||||
'\n'.format(git_user or '', git_pass or '')
|
||||
f.write(git_credentials)
|
||||
extra_index_str = '# extra_index_url: ["https://allegroai.jfrog.io/clearml/api/pypi/public/simple"]\n' \
|
||||
extra_index_str = '# extra_index_url: ["https://clearml.jfrog.io/clearml/api/pypi/public/simple"]\n' \
|
||||
'agent.package_manager.extra_index_url= ' \
|
||||
'[\n{}\n]\n\n'.format("\n".join(map("\"{}\"".format, extra_index_urls)))
|
||||
f.write(extra_index_str)
|
||||
|
@ -28,7 +28,7 @@ from typing import Text, Optional, Any, Tuple, List, Dict, Mapping, Union
|
||||
from .._vendor import attr
|
||||
from .._vendor import six
|
||||
from .._vendor.pathlib2 import Path
|
||||
from .._vendor.six.moves.urllib.parse import quote
|
||||
from .._vendor.six.moves.urllib.parse import quote # noqa
|
||||
|
||||
from clearml_agent.external.pyhocon import ConfigTree, ConfigFactory
|
||||
from clearml_agent.backend_api.services import auth as auth_api
|
||||
@ -4616,6 +4616,7 @@ class Worker(ServiceCommandSection):
|
||||
mount_apt_cache = mount_apt_cache or '/var/cache/apt/archives'
|
||||
mount_pip_cache = mount_pip_cache or '/root/.cache/pip'
|
||||
mount_poetry_cache = mount_poetry_cache or '/root/.cache/pypoetry'
|
||||
mount_git_ro = "{}.git".format(mount_ssh_ro.rstrip("/"))
|
||||
|
||||
if not standalone_mode:
|
||||
if not bash_script:
|
||||
@ -4623,18 +4624,21 @@ class Worker(ServiceCommandSection):
|
||||
# python+pip is the requirement to match
|
||||
bash_script = [
|
||||
"echo 'Binary::apt::APT::Keep-Downloaded-Packages \"true\";' > /etc/apt/apt.conf.d/docker-clean",
|
||||
"chown -R root /root/.cache/pip",
|
||||
"chown -R $(whoami) $HOME/.cache/pip",
|
||||
"export DEBIAN_FRONTEND=noninteractive",
|
||||
"export CLEARML_APT_INSTALL=\"$CLEARML_APT_INSTALL{}\"".format(
|
||||
' libsm6 libxext6 libxrender-dev libglib2.0-0' if install_opencv_libs else ""),
|
||||
"cp -Rf {mount_ssh_ro} -T {mount_ssh}" if host_ssh_cache else "",
|
||||
"[ ! -z $(which git) ] || export CLEARML_APT_INSTALL=\"$CLEARML_APT_INSTALL git\"",
|
||||
"cp -Rf {mount_git_ro} -T ~/" if host_git_credentials else "",
|
||||
"[ ! -z $(which git || command -v git) ] || export CLEARML_APT_INSTALL=\"$CLEARML_APT_INSTALL git\"",
|
||||
"declare LOCAL_PYTHON",
|
||||
"[ ! -z $LOCAL_PYTHON ] || for i in {{20..5}}; do which {python_single_digit}.$i && " +
|
||||
"[ ! -z $LOCAL_PYTHON ] || for i in {{20..5}}; do (which {python_single_digit}.$i || command -v {python_single_digit}.$i) && " +
|
||||
"{python_single_digit}.$i -m pip --version && " +
|
||||
"export LOCAL_PYTHON=$(which {python_single_digit}.$i) && break ; done",
|
||||
"export LOCAL_PYTHON=$(which {python_single_digit}.$i || command -v git) && break ; done",
|
||||
"[ ! -z $LOCAL_PYTHON ] || export CLEARML_APT_INSTALL=\"$CLEARML_APT_INSTALL {python_single_digit}-pip\"", # noqa
|
||||
"[ -z \"$CLEARML_APT_INSTALL\" ] || (apt-get update -y ; apt-get install -y $CLEARML_APT_INSTALL)",
|
||||
"[ -z \"$CLEARML_APT_INSTALL\" ] || "
|
||||
"(apt-get update -y ; apt-get install -y $CLEARML_APT_INSTALL) || "
|
||||
"(dnf install -y $CLEARML_APT_INSTALL)",
|
||||
"rm /usr/lib/python3.*/EXTERNALLY-MANAGED", # remove PEP 668
|
||||
]
|
||||
|
||||
@ -4654,12 +4658,12 @@ class Worker(ServiceCommandSection):
|
||||
python_single_digit=python_version.split('.')[0],
|
||||
python=python_version, pip_version=" ".join(PackageManager.get_pip_versions(wrap='\"')),
|
||||
clearml_agent_wheel=clearml_agent_wheel,
|
||||
mount_ssh_ro=mount_ssh_ro, mount_ssh=mount_ssh,
|
||||
mount_ssh_ro=mount_ssh_ro, mount_ssh=mount_ssh, mount_git_ro=mount_git_ro,
|
||||
)
|
||||
|
||||
if host_git_credentials:
|
||||
for git_credentials in host_git_credentials:
|
||||
base_cmd += ['-v', '{}:/root/{}'.format(git_credentials, Path(git_credentials).name)]
|
||||
base_cmd += ['-v', '{}:{}/{}'.format(git_credentials, mount_git_ro, Path(git_credentials).name)]
|
||||
|
||||
if docker_bash_setup_script and docker_bash_setup_script.strip('\n '):
|
||||
extra_shell_script = (extra_shell_script or '') + \
|
||||
|
@ -56,8 +56,8 @@ class K8sIntegration(Worker):
|
||||
KUBECTL_APPLY_CMD = "kubectl apply --namespace={namespace} -f"
|
||||
|
||||
BASH_INSTALL_SSH_CMD = [
|
||||
"apt-get update",
|
||||
"apt-get install -y openssh-server",
|
||||
"(apt-get update -y ; apt-get install -y openssh-server) || "
|
||||
"(dnf install -y openssh-server)",
|
||||
"mkdir -p /var/run/sshd",
|
||||
"echo 'root:training' | chpasswd",
|
||||
"echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config",
|
||||
@ -73,9 +73,10 @@ class K8sIntegration(Worker):
|
||||
_CONTAINER_APT_SCRIPT_SECTION = [
|
||||
"export DEBIAN_FRONTEND='noninteractive'",
|
||||
"echo 'Binary::apt::APT::Keep-Downloaded-Packages \"true\";' > /etc/apt/apt.conf.d/docker-clean",
|
||||
"chown -R root /root/.cache/pip",
|
||||
"apt-get update",
|
||||
"apt-get install -y git libsm6 libxext6 libxrender-dev libglib2.0-0",
|
||||
"chown -R $(whoami) $HOME/.cache/pip",
|
||||
"(apt-get update -y ; apt-get install -y git) || "
|
||||
"(dnf install -y git)"
|
||||
# should only be added if docker_install_opencv_libs: # libsm6 libxext6 libxrender-dev libglib2.0-0",
|
||||
]
|
||||
|
||||
CONTAINER_BASH_SCRIPT = [
|
||||
@ -84,9 +85,10 @@ class K8sIntegration(Worker):
|
||||
for line in _CONTAINER_APT_SCRIPT_SECTION
|
||||
),
|
||||
"declare LOCAL_PYTHON",
|
||||
"[ ! -z $LOCAL_PYTHON ] || for i in {{20..5}}; do which python3.$i && python3.$i -m pip --version && "
|
||||
"export LOCAL_PYTHON=$(which python3.$i) && break ; done",
|
||||
'[ ! -z "$CLEARML_AGENT_SKIP_CONTAINER_APT" ] || [ ! -z "$LOCAL_PYTHON" ] || apt-get install -y python3-pip',
|
||||
"[ ! -z $LOCAL_PYTHON ] || for i in {{20..5}}; do (which python3.$i || command -v python3.$i) && python3.$i -m pip --version && "
|
||||
"export LOCAL_PYTHON=$(which python3.$i || command -v python3.$i) && break ; done",
|
||||
'[ ! -z "$CLEARML_AGENT_SKIP_CONTAINER_APT" ] || [ ! -z "$LOCAL_PYTHON" ] || '
|
||||
'apt-get install -y python3-pip || dnf install -y python3-pip',
|
||||
"[ ! -z $LOCAL_PYTHON ] || export LOCAL_PYTHON=python3",
|
||||
"rm /usr/lib/python3.*/EXTERNALLY-MANAGED", # remove PEP 668
|
||||
"{extra_bash_init_cmd}",
|
||||
@ -96,7 +98,7 @@ class K8sIntegration(Worker):
|
||||
]
|
||||
|
||||
DEFAULT_POD_NAME_PREFIX = "clearml-id-"
|
||||
DEFAULT_LIMIT_POD_LABEL = "ai.allegro.agent.serial=pod-{pod_number}"
|
||||
DEFAULT_LIMIT_POD_LABEL = "ai.clearml.agent.serial=pod-{pod_number}"
|
||||
|
||||
_edit_hyperparams_version = "2.9"
|
||||
|
||||
|
@ -94,7 +94,7 @@ agent {
|
||||
force_upgrade: false,
|
||||
|
||||
# additional artifact repositories to use when installing python packages
|
||||
# extra_index_url: ["https://allegroai.jfrog.io/clearml/api/pypi/public/simple"]
|
||||
# extra_index_url: ["https://clearml.jfrog.io/clearml/api/pypi/public/simple"]
|
||||
extra_index_url: []
|
||||
|
||||
# additional flags to use when calling pip install, example: ["--use-deprecated=legacy-resolver", ]
|
||||
@ -211,7 +211,8 @@ agent {
|
||||
# protected_docker_extra_args: ["privileged", "security-opt", "network", "ipc"]
|
||||
|
||||
# optional shell script to run in docker when started before the experiment is started
|
||||
# extra_docker_shell_script: ["apt-get install -y bindfs", ]
|
||||
# notice that even if one command fails the other commands will still execute
|
||||
# extra_docker_shell_script: ["apt-get install -y bindfs", "dnf install -y bindfs", "yum install -y bindfs"]
|
||||
|
||||
# Install the required packages for opencv libraries (libsm6 libxext6 libxrender-dev libglib2.0-0),
|
||||
# for backwards compatibility reasons, true as default,
|
||||
|
Loading…
Reference in New Issue
Block a user