diff --git a/roles/bootstrap-os/defaults/main.yml b/roles/bootstrap-os/defaults/main.yml
index 11e45196fe67383a3b0829aa8a1c27d859a55d6c..c191ebd2b3cdd37f74e3b0524a2fff7964019199 100644
--- a/roles/bootstrap-os/defaults/main.yml
+++ b/roles/bootstrap-os/defaults/main.yml
@@ -2,3 +2,5 @@
 pip_python_coreos_modules:
   - httplib2
   - six
+
+override_system_hostname: true
diff --git a/roles/bootstrap-os/tasks/main.yml b/roles/bootstrap-os/tasks/main.yml
index 6f45fb0734fd133337e66cf90c2bd1b521439868..01031deeb807fae8c70146e00c4060720ad4c1ec 100644
--- a/roles/bootstrap-os/tasks/main.yml
+++ b/roles/bootstrap-os/tasks/main.yml
@@ -29,12 +29,12 @@
 - name: Assign inventory name to unconfigured hostnames (non-CoreOS)
   hostname:
     name: "{{inventory_hostname}}"
-  when: ansible_os_family not in ['CoreOS', 'Container Linux by CoreOS']
+  when: ansible_os_family not in ['CoreOS', 'Container Linux by CoreOS'] and override_system_hostname
 
 - name: Assign inventory name to unconfigured hostnames (CoreOS only)
   command: "hostnamectl set-hostname  {{inventory_hostname}}"
   register: hostname_changed
-  when: ansible_hostname == 'localhost' and ansible_os_family in ['CoreOS', 'Container Linux by CoreOS']
+  when: ansible_hostname == 'localhost' and ansible_os_family in ['CoreOS', 'Container Linux by CoreOS'] and override_system_hostname
 
 - name: Update hostname fact (CoreOS only)
   setup:
diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml
index c58fb0f931ac172dd765f1db5b8e86276389ebfa..7603ef6bef918171f0e94ffe5a789686bb31a21e 100644
--- a/roles/kubernetes/node/defaults/main.yml
+++ b/roles/kubernetes/node/defaults/main.yml
@@ -84,7 +84,7 @@ kube_hyperkube_image_repo: ""
 kube_override_hostname: >-
   {%- if cloud_provider is defined and cloud_provider in [ 'aws' ] -%}
   {%- else -%}
-  {{ ansible_hostname }}
+  {{ inventory_hostname }}
   {%- endif -%}
 
 # cAdvisor port
diff --git a/roles/network_plugin/calico/templates/calico-config.yml.j2 b/roles/network_plugin/calico/templates/calico-config.yml.j2
index fbae4eda1de5b22cb68862e0fe4ea71d152d4778..92d2f1f0a8192c060048a6506f4b2a79753ca62e 100644
--- a/roles/network_plugin/calico/templates/calico-config.yml.j2
+++ b/roles/network_plugin/calico/templates/calico-config.yml.j2
@@ -14,6 +14,6 @@ data:
   cluster_type: "kubespray,bgp"
 {% endif %}
   calico_backend: "bird"
-  {%- if inventory_hostname in groups['k8s-cluster'] and peer_with_router|default(false) %}
-  as: "{{ local_as }}"
-  {% endif -%}
+{% if inventory_hostname in groups['k8s-cluster'] and peer_with_router|default(false) %}
+  as: "{{ local_as|default(global_as_num) }}"
+{% endif -%}
diff --git a/roles/network_plugin/calico/templates/cni-calico.conflist.j2 b/roles/network_plugin/calico/templates/cni-calico.conflist.j2
index abe43f7f77bf6127ca5b33a8c8a2a347c941e848..32f2bfff6394167406ad2c0d1a6dfcb2c5aa8f00 100644
--- a/roles/network_plugin/calico/templates/cni-calico.conflist.j2
+++ b/roles/network_plugin/calico/templates/cni-calico.conflist.j2
@@ -6,7 +6,7 @@
     {% if cloud_provider is defined %}
       "nodename": "{{ calico_kubelet_name.stdout }}",
     {% else %}
-      "nodename": "{{ ansible_hostname }}",
+      "nodename": "{{ inventory_hostname }}",
     {% endif %}
       "type": "calico",
       "etcd_endpoints": "{{ etcd_access_addresses }}",
diff --git a/roles/reset/defaults/main.yml b/roles/reset/defaults/main.yml
index 7d4dbfdff9dbabd2ae60cc8232c0dafee5ee7461..e45cee42e07ad9d888c07be502adc66897b6ef68 100644
--- a/roles/reset/defaults/main.yml
+++ b/roles/reset/defaults/main.yml
@@ -1,2 +1,3 @@
 ---
 flush_iptables: true
+reset_restart_network: true
diff --git a/roles/reset/tasks/main.yml b/roles/reset/tasks/main.yml
index 7be66e7078baa3b226234ec86681bae85b32237b..f6714f68008bbd761c8496d0372a5a1dd253fd46 100644
--- a/roles/reset/tasks/main.yml
+++ b/roles/reset/tasks/main.yml
@@ -195,7 +195,7 @@
       networking
       {%- endif %}
     state: restarted
-  when: ansible_os_family not in ["CoreOS", "Container Linux by CoreOS"]
+  when: ansible_os_family not in ["CoreOS", "Container Linux by CoreOS"] and reset_restart_network
   tags:
     - services
     - network