Add support for agent.docker_force_pull configuration setting in k8s glue

This commit is contained in:
allegroai 2021-06-25 17:36:08 +03:00
parent 3ae1741343
commit e3c8bd5666

View File

@ -508,6 +508,10 @@ class K8sIntegration(Worker):
with open(yaml_file, 'wt') as f: with open(yaml_file, 'wt') as f:
yaml.dump(template, f) yaml.dump(template, f)
if self._docker_force_pull:
for c in template['spec']['containers']:
c.setdefault('imagePullPolicy', 'Always')
kubectl_cmd = self.KUBECTL_APPLY_CMD.format( kubectl_cmd = self.KUBECTL_APPLY_CMD.format(
task_id=task_id, task_id=task_id,
docker_image=docker_image, docker_image=docker_image,
@ -557,6 +561,9 @@ class K8sIntegration(Worker):
if self.pod_requests: if self.pod_requests:
kubectl_cmd += ['--requests', ",".join(self.pod_requests)] kubectl_cmd += ['--requests', ",".join(self.pod_requests)]
if self._docker_force_pull and not any(x.startswith("--image-pull-policy=") for x in kubectl_cmd):
kubectl_cmd += ["--image-pull-policy='always'"]
container_bash_script = [self.container_bash_script] if isinstance(self.container_bash_script, str) \ container_bash_script = [self.container_bash_script] if isinstance(self.container_bash_script, str) \
else self.container_bash_script else self.container_bash_script
container_bash_script = ' ; '.join(container_bash_script) container_bash_script = ' ; '.join(container_bash_script)