aboutsummaryrefslogtreecommitdiff
path: root/ansible/library
diff options
context:
space:
mode:
authorMark Goddard <mark@stackhpc.com>2020-09-25 09:49:50 +0000
committerMark Goddard <mark@stackhpc.com>2020-12-16 10:02:03 +0000
commit279264f4c934b6d66fa620f3736c4a69b95bd258 (patch)
tree631e9b237864bd5547d46640981fa4d818f101d1 /ansible/library
parent75b622aeab6590ef4ff507d8e16b37d722ff8215 (diff)
downloadkolla-ansible-279264f4c934b6d66fa620f3736c4a69b95bd258.tar.gz
kolla-ansible-279264f4c934b6d66fa620f3736c4a69b95bd258.zip
Add support to kolla_docker for tmpfs mounts
Partial-Bug: #1897276 Change-Id: Ia06da456a7f26f0f2ceebc35eb88c0da0767e1c6
Diffstat (limited to 'ansible/library')
-rw-r--r--ansible/library/kolla_docker.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/ansible/library/kolla_docker.py b/ansible/library/kolla_docker.py
index 224c42458..c76392eda 100644
--- a/ansible/library/kolla_docker.py
+++ b/ansible/library/kolla_docker.py
@@ -176,6 +176,11 @@ options:
- How many times to attempt a restart if 'on-failure' policy is set
type: int
default: 10
+ tmpfs:
+ description:
+ - List of paths to mount as tmpfs.
+ required: False
+ type: list
volumes:
description:
- Set volumes for docker to use
@@ -342,6 +347,7 @@ class DockerWorker(object):
self.compare_labels(container_info) or
self.compare_privileged(container_info) or
self.compare_pid_mode(container_info) or
+ self.compare_tmpfs(container_info) or
self.compare_volumes(container_info) or
self.compare_volumes_from(container_info) or
self.compare_environment(container_info) or
@@ -433,6 +439,17 @@ class DockerWorker(object):
if new_labels != current_labels:
return True
+ def compare_tmpfs(self, container_info):
+ new_tmpfs = self.generate_tmpfs()
+ current_tmpfs = container_info['HostConfig'].get('Tmpfs')
+ if not new_tmpfs:
+ new_tmpfs = []
+ if not current_tmpfs:
+ current_tmpfs = []
+
+ if set(current_tmpfs).symmetric_difference(set(new_tmpfs)):
+ return True
+
def compare_volumes_from(self, container_info):
new_vols_from = self.params.get('volumes_from')
current_vols_from = container_info['HostConfig'].get('VolumesFrom')
@@ -637,6 +654,13 @@ class DockerWorker(object):
if self.check_container():
raise
+ def generate_tmpfs(self):
+ tmpfs = self.params.get('tmpfs')
+ if tmpfs:
+ # NOTE(mgoddard): Filter out any empty strings.
+ tmpfs = [t for t in tmpfs if t]
+ return tmpfs
+
def generate_volumes(self):
volumes = self.params.get('volumes')
if not volumes:
@@ -711,6 +735,7 @@ class DockerWorker(object):
'security_opt': self.params.get('security_opt'),
'pid_mode': self.params.get('pid_mode'),
'privileged': self.params.get('privileged'),
+ 'tmpfs': self.generate_tmpfs(),
'volumes_from': self.params.get('volumes_from')
}
@@ -1066,6 +1091,7 @@ def generate_module():
tls_cert=dict(required=False, type='str'),
tls_key=dict(required=False, type='str'),
tls_cacert=dict(required=False, type='str'),
+ tmpfs=dict(required=False, type='list'),
volumes=dict(required=False, type='list'),
volumes_from=dict(required=False, type='list'),
dimensions=dict(required=False, type='dict', default=dict()),