diff options
| author | Mark Goddard <mark@stackhpc.com> | 2020-09-25 09:49:50 +0000 |
|---|---|---|
| committer | Mark Goddard <mark@stackhpc.com> | 2020-12-16 10:02:03 +0000 |
| commit | 279264f4c934b6d66fa620f3736c4a69b95bd258 (patch) | |
| tree | 631e9b237864bd5547d46640981fa4d818f101d1 /ansible/library | |
| parent | 75b622aeab6590ef4ff507d8e16b37d722ff8215 (diff) | |
| download | kolla-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.py | 26 |
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()), |
