diff --git a/README.md b/README.md
index 10d135565a0b3a50e68a373efb175d23599fb850..cbbd2b8c68fe76d536d2405dbee7f30cc51ee833 100644
--- a/README.md
+++ b/README.md
@@ -25,6 +25,7 @@ To deploy the cluster you can use :
 *  [Ansible variables](docs/ansible.md)
 *  [Cloud providers](docs/cloud.md)
 *  [OpenStack](docs/openstack.md)
+*  [AWS](docs/aws.md)
 *  [Network plugins](#network-plugins)
 *  [Roadmap](docs/roadmap.md)
 
diff --git a/docs/aws.md b/docs/aws.md
index e2bab6f151a2e300669ee7437fad171b5fb3fdf0..1070958b99f89474754f536862890e6d6c51bb1c 100644
--- a/docs/aws.md
+++ b/docs/aws.md
@@ -1,4 +1,4 @@
-OpenStack
+AWS
 ===============
 
 To deploy kubespray on [AWS](https://www.openstack.org/) uncomment the `cloud_provider` option in `group_vars/all.yml` and set it to `'aws'`.
diff --git a/roles/dnsmasq/defaults/main.yml b/roles/dnsmasq/defaults/main.yml
deleted file mode 100644
index 48b52c121361508fdc4d019e7a03f69e9e4258d7..0000000000000000000000000000000000000000
--- a/roles/dnsmasq/defaults/main.yml
+++ /dev/null
@@ -1,12 +0,0 @@
----
-# Existing search/nameserver resolvconf entries will be purged and
-# ensured by this additional data:
-
-# Max of 4 names is allowed and no more than 256 - 17 chars total
-# (a 2 is reserved for the 'default.svc.' and'svc.')
-#searchdomains:
-#  - foo.bar.lc
-
-# Max of 2 is allowed here (a 1 is reserved for the dns_server)
-#nameservers:
-#  - 127.0.0.1
diff --git a/roles/dnsmasq/handlers/main.yml b/roles/dnsmasq/handlers/main.yml
deleted file mode 100644
index 95cd80cfc1577fa6d4fd8c99a6a0257bc47020d8..0000000000000000000000000000000000000000
--- a/roles/dnsmasq/handlers/main.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-- name: Dnsmasq | restart network
-  service:
-    name: >-
-      {% if ansible_os_family == "RedHat" -%}
-      network
-      {%- elif ansible_os_family == "Debian" -%}
-      networking
-      {%- endif %}
-    state: restarted
-  when: ansible_os_family != "CoreOS"
diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml
index e8dc78aa8931d8fc8acb3e8e7514382dee844a79..526e162aef9ee0179a4081174b5578369c2132a0 100644
--- a/roles/dnsmasq/tasks/main.yml
+++ b/roles/dnsmasq/tasks/main.yml
@@ -68,17 +68,9 @@
     resolvconffile: >-
       {%- if resolvconf.rc == 0 -%}/etc/resolvconf/resolv.conf.d/head{%- else -%}/etc/resolv.conf{%- endif -%}
 
-- name: generate search domains to resolvconf
-  set_fact:
-    searchentries="{{ ([ 'default.svc.' + dns_domain, 'svc.' + dns_domain ] + searchdomains|default([])) | join(' ') }}"
-
-- name: generate nameservers to resolvconf
-  set_fact:
-    nameserverentries="{{ nameservers|default([]) + [ dns_server ] }}"
-
 - name: Add search resolv.conf
   lineinfile:
-    line: "search {{searchentries}}"
+    line: "search {{ [ 'default.svc.' + dns_domain, 'svc.' + dns_domain, dns_domain ] | join(' ') }}"
     dest: "{{resolvconffile}}"
     state: present
     insertbefore: BOF
@@ -87,13 +79,12 @@
 
 - name: Add local dnsmasq to resolv.conf
   lineinfile:
-    line: "nameserver {{item}}"
+    line: "nameserver {{dns_server}}"
     dest: "{{resolvconffile}}"
     state: present
     insertafter: "^search.*$"
     backup: yes
     follow: yes
-  with_items: "{{nameserverentries}}"
 
 - name: Add options to resolv.conf
   lineinfile:
@@ -109,13 +100,11 @@
     - attempts:2
 
 - name: disable resolv.conf modification by dhclient
-  copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/znodnsupdate mode=0755 backup=yes
-  notify: Dnsmasq | restart network
+  copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate mode=0755 backup=yes
   when: ansible_os_family == "Debian"
 
 - name: disable resolv.conf modification by dhclient
-  copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/znodnsupdate mode=u+x backup=yes
-  notify: Dnsmasq | restart network
+  copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient.d/nodnsupdate mode=u+x backup=yes
   when: ansible_os_family == "RedHat"
 
 - name: update resolvconf
diff --git a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2
index dbce2bfbf69f3b658edbd8ba9e97e3b944285dc5..3a9e1ef1b2e0d1475924ea65ba38f49931c1e6a3 100644
--- a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2
+++ b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2
@@ -17,7 +17,7 @@ spec:
     - --root-ca-file={{ kube_cert_dir }}/ca.pem
     - --enable-hostpath-provisioner={{ kube_hostpath_dynamic_provisioner }}
     - --v={{ kube_log_level | default('2') }}
-{% if cloud_provider is defined and cloud_provider == "openstack"%}
+{% if cloud_provider is defined and cloud_provider == "openstack" %}
     - --cloud-provider={{cloud_provider}}
     - --cloud-config={{ kube_config_dir }}/cloud_config
 {% elif cloud_provider is defined and cloud_provider == "aws" %}
diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml
index dcc9256277ff771202032c9e42a43ec78a866460..2a93129b17bd05e413bc3974191b53f26ec27ab3 100644
--- a/roles/kubernetes/preinstall/tasks/main.yml
+++ b/roles/kubernetes/preinstall/tasks/main.yml
@@ -1,4 +1,10 @@
 ---
+- name: 'GIT | Install script for collecting git info'
+  template:
+    src: "{{ role_path }}/gen-gitinfos.sh"
+    dest: "{{ bin_dir }}/gen-gitinfos.sh"
+    mode: a+rwx
+
 - include: gitinfos.yml
   when: run_gitinfos
 
diff --git a/scripts/collect-info.yaml b/scripts/collect-info.yaml
index 95eb7a9d8f2e7eb368abf33c23d0de7e5f1847c6..67d4c8b3540455be4b873a68eb6f35f23217d20a 100644
--- a/scripts/collect-info.yaml
+++ b/scripts/collect-info.yaml
@@ -7,11 +7,9 @@
     debug: false
     commands:
       - name: git_info
-        cmd: cat {kargo,.}/.git/logs/HEAD
+        cmd: find . -type d -name .git -execdir sh -c 'gen-gitinfos.sh global|head -12' \;
       - name: timedate_info
         cmd: timedatectl status
-      - name: boots_info
-        cmd: journalctl --list-boots --utc --no-pager
       - name: space_info
         cmd: df -h
       - name: kernel_info
@@ -28,10 +26,10 @@
         cmd: ps auxf | grep -v ]$
       - name: systemctl_info
         cmd: systemctl status
+      - name: systemctl_failed_info
+        cmd: systemctl --state=failed --no-pager
       - name: k8s_info
         cmd: kubectl get all --all-namespaces -o wide
-      - name: k8s_dump_info
-        cmd: kubectl get all --all-namespaces -o yaml
       - name: errors_info
         cmd: journalctl -p err --utc --no-pager
 
@@ -43,10 +41,6 @@
       - /var/log/kern.log
       - inventory/inventory.ini
       - cluster.yml
-      - kargo/kargo_default_ubuntu.yaml
-      - kargo/kargo_default_debian.yaml
-      - kargo/kargo_default_common.yaml
-      - kargo/inventory/inventory.cfg
 
   tasks:
     - name: Storing commands output
@@ -68,4 +62,9 @@
       with_items: "{{logs}}"
 
     - name: Pack results and logs
-      local_action: shell GZIP=-9 tar cvzf logs.tar.gz -C /tmp collect-info
+      local_action: shell GZIP=-9 tar --remove-files -cvzf logs.tar.gz -C /tmp collect-info
+      run_once: true
+
+    - name: Clean up collected command outputs
+      file: path={{ item.name }} state=absent
+      with_items: "{{commands}}"