mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-03-18 01:17:38 -02:30
Docker Options Refactor
This commit is contained in:
61
roles/docker/tasks/non-systemd.yml
Normal file
61
roles/docker/tasks/non-systemd.yml
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
# This uses lineinfile instead of templates for idempotency in files that may be modified by different roles
|
||||
- name: Set docker options config file path
|
||||
set_fact:
|
||||
docker_options_file: >-
|
||||
{%- if ansible_os_family == "Debian" -%}/etc/default/docker{%- elif ansible_os_family == "RedHat" -%}/etc/sysconfig/docker{%- endif -%}
|
||||
|
||||
- name: Set docker options config variable name
|
||||
set_fact:
|
||||
docker_options_name: >-
|
||||
{%- if ansible_os_family == "Debian" -%}DOCKER_OPTS{%- elif ansible_os_family == "RedHat" -%}other_args{%- endif -%}
|
||||
|
||||
- name: Set docker options config value to be written
|
||||
set_fact:
|
||||
docker_options_value: '"{{ docker_options }} $DOCKER_NETWORK_OPTIONS $DOCKER_STORAGE_OPTIONS $INSECURE_REGISTRY"'
|
||||
|
||||
- name: Set docker options config line to be written
|
||||
set_fact:
|
||||
docker_options_line: "{{ docker_options_name }}={{ docker_options_value }}"
|
||||
|
||||
- name: Set docker proxy lines to be written
|
||||
set_fact:
|
||||
docker_proxy_lines:
|
||||
- { name: "HTTP_PROXY", value: '"{{ http_proxy }}"' }
|
||||
- { name: "HTTPS_PROXY", value: '"{{ https_proxy }}"' }
|
||||
- { name: "NO_PROXY", value: '"{{ no_proxy }}"' }
|
||||
|
||||
- name: Remove docker daemon proxy config lines that don't match desired lines
|
||||
lineinfile:
|
||||
dest: "{{ docker_options_file }}"
|
||||
regexp: "^{{ item.name }}=(?!{{ item.value|regex_escape() }})"
|
||||
state: absent
|
||||
with_items: "{{ docker_proxy_lines|default([]) }}"
|
||||
when: item.value is defined and (item.value | trim != '')
|
||||
|
||||
- name: Write docker daemon proxy config lines
|
||||
lineinfile:
|
||||
dest: "{{ docker_options_file }}"
|
||||
line: "{{ item.name }}={{ item.value }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
with_items: "{{ docker_proxy_lines|default([]) }}"
|
||||
when: item.value is defined and (item.value | trim != '')
|
||||
|
||||
- name: Remove docker daemon options lines that don't match desired line
|
||||
lineinfile:
|
||||
dest: "{{ docker_options_file }}"
|
||||
regexp: "^(DOCKER_OPTS|OPTIONS|other_args)=(?!{{ docker_options_value|regex_escape() }})"
|
||||
state: absent
|
||||
|
||||
- name: Write docker daemon options line
|
||||
lineinfile:
|
||||
dest: "{{ docker_options_file }}"
|
||||
line: "{{ docker_options_line }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
notify: restart docker
|
||||
|
||||
- meta: flush_handlers
|
||||
Reference in New Issue
Block a user