diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2017-11-03 07:30:29 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-03 07:30:29 -0700 |
commit | c99bfde17bca322e8a89ba3e9dc4e4fdc2776448 (patch) | |
tree | c6e36f2b07ee6699e50065bb55f5d0e41da0a1fc /roles/openshift_docker_gc | |
parent | 1b24db1dfb82b2b99605fdfc016c59161981d487 (diff) | |
parent | b88adec6c15157c2894ccfe2ac855e67fb48ca33 (diff) | |
download | openshift-c99bfde17bca322e8a89ba3e9dc4e4fdc2776448.tar.gz openshift-c99bfde17bca322e8a89ba3e9dc4e4fdc2776448.tar.bz2 openshift-c99bfde17bca322e8a89ba3e9dc4e4fdc2776448.tar.xz openshift-c99bfde17bca322e8a89ba3e9dc4e4fdc2776448.zip |
Merge pull request #5995 from ashcrow/docker-gc-daemonset
Automatic merge from submit-queue.
openshift_hosted: Add docker-gc
Two new inventory variables have been created:
- ``openshift_crio_enable_docker_gc``: Enable docker_gc daemon set
- ``openshift_crio_docker_gc_node_selector``: Optional dictionary to use node
selector
When ``openshift_crio_enable_docker_gc`` and ``openshift_use_crio`` are both true
then ``docker_gc`` daemonset will be created along with adding a ``docker-gc``
sa.
Diffstat (limited to 'roles/openshift_docker_gc')
-rw-r--r-- | roles/openshift_docker_gc/defaults/main.yml | 3 | ||||
-rw-r--r-- | roles/openshift_docker_gc/meta/main.yml | 13 | ||||
-rw-r--r-- | roles/openshift_docker_gc/tasks/main.yaml | 27 | ||||
-rw-r--r-- | roles/openshift_docker_gc/templates/dockergc-ds.yaml.j2 | 58 |
4 files changed, 101 insertions, 0 deletions
diff --git a/roles/openshift_docker_gc/defaults/main.yml b/roles/openshift_docker_gc/defaults/main.yml new file mode 100644 index 000000000..9d79de8a1 --- /dev/null +++ b/roles/openshift_docker_gc/defaults/main.yml @@ -0,0 +1,3 @@ +--- +r_enable_docker_gc: "{{ openshift_crio_enable_docker_gc | default(False) }}" +r_docker_gc_node_selectors: "{{ openshift_crio_docker_gc_node_selector | default({}) }}" diff --git a/roles/openshift_docker_gc/meta/main.yml b/roles/openshift_docker_gc/meta/main.yml new file mode 100644 index 000000000..f88a7c533 --- /dev/null +++ b/roles/openshift_docker_gc/meta/main.yml @@ -0,0 +1,13 @@ +--- +galaxy_info: + author: OpenShift + description: docker garbage collection + company: Red Hat, Inc + license: ASL 2.0 + min_ansible_version: 2.2 + platforms: + - name: EL + versions: + - 7 +dependencies: +- role: lib_openshift diff --git a/roles/openshift_docker_gc/tasks/main.yaml b/roles/openshift_docker_gc/tasks/main.yaml new file mode 100644 index 000000000..9ba551479 --- /dev/null +++ b/roles/openshift_docker_gc/tasks/main.yaml @@ -0,0 +1,27 @@ +--- +- name: Create docker-gc tempdir + command: mktemp -d + register: templates_tmpdir + +# NOTE: oc_adm_policy_user does not support -z (yet) +- name: Add dockergc as priviledged + shell: oc adm policy add-scc-to-user -z dockergc privileged +# oc_adm_policy_user: +# user: dockergc +# resource_kind: scc +# resource_name: privileged +# state: present + +- name: Create dockergc DaemonSet + become: yes + template: + src: dockergc-ds.yaml.j2 + dest: "{{ templates_tmpdir.stdout }}/dockergc-ds.yaml" + +- name: Apply dockergc DaemonSet + oc_obj: + state: present + kind: DaemonSet + name: "dockergc" + files: + - "{{ templates_tmpdir.stdout }}/dockergc-ds.yaml" diff --git a/roles/openshift_docker_gc/templates/dockergc-ds.yaml.j2 b/roles/openshift_docker_gc/templates/dockergc-ds.yaml.j2 new file mode 100644 index 000000000..53e8b448b --- /dev/null +++ b/roles/openshift_docker_gc/templates/dockergc-ds.yaml.j2 @@ -0,0 +1,58 @@ +apiVersion: v1 +kind: List +items: +- apiVersion: v1 + kind: ServiceAccount + metadata: + name: dockergc + # You must grant privileged via: oadm policy add-scc-to-user -z dockergc privileged + # in order for the dockergc to access the docker socket and root directory +- apiVersion: extensions/v1beta1 + kind: DaemonSet + metadata: + name: dockergc + labels: + app: dockergc + spec: + template: + metadata: + labels: + app: dockergc + name: dockergc + spec: +{# Only set nodeSelector if the dict is not empty #} +{% if r_docker_gc_node_selectors %} + nodeSelector: +{% for k,v in r_docker_gc_node_selectors.items() %} + {{ k }}: {{ v }}{% endfor %}{% endif %} + + serviceAccountName: dockergc + containers: + - image: openshift/origin:latest + args: + - "ex" + - "dockergc" + - "--image-gc-low-threshold=60" + - "--image-gc-high-threshold=80" + - "--minimum-ttl-duration=1h0m0s" + securityContext: + privileged: true + name: dockergc + resources: + requests: + memory: 30Mi + cpu: 50m + volumeMounts: + - name: docker-root + readOnly: true + mountPath: /var/lib/docker + - name: docker-socket + readOnly: false + mountPath: /var/run/docker.sock + volumes: + - name: docker-root + hostPath: + path: /var/lib/docker + - name: docker-socket + hostPath: + path: /var/run/docker.sock |