diff --git a/.ansible-lint b/.ansible-lint
index edf8b7904884cf0d98f08d69def9c17c0a5c9592..ececfc57359ae28ddb90b3e7101abe7d5aea41ec 100644
--- a/.ansible-lint
+++ b/.ansible-lint
@@ -6,6 +6,7 @@ skip_list:
   # These either still need to be corrected in the repository and the rules re-enabled or documented why they are skipped on purpose.
   - '301'
   - '302'
+  - '303'
   - '305'
   - '306'
   - '404'
diff --git a/roles/network_plugin/calico/handlers/main.yml b/roles/network_plugin/calico/handlers/main.yml
index 7bb17dd66ae3587430ad102bbcca4b6ad634d938..3cb4f9bcfc2dc63751e672ada1f603d23a40c6e5 100644
--- a/roles/network_plugin/calico/handlers/main.yml
+++ b/roles/network_plugin/calico/handlers/main.yml
@@ -18,3 +18,9 @@
 - name: containerd | delete calico-node containers
   shell: 'crictl pods --name calico-node-* -q | xargs -I% --no-run-if-empty bash -c "crictl stopp % && crictl rmp %"'
   when: container_manager in ["crio", "containerd"]
+
+- name: Calico | Reload NetworkManager
+  service:
+    name: NetworkManager
+    state: reloaded
+  when: '"running" in nm_check.stdout'
diff --git a/roles/network_plugin/calico/tasks/install.yml b/roles/network_plugin/calico/tasks/install.yml
index bd54e02014d519f09bf4add6780494e019f3b451..ed883ac84f6366c0c9b453b75dff545cb223a248 100644
--- a/roles/network_plugin/calico/tasks/install.yml
+++ b/roles/network_plugin/calico/tasks/install.yml
@@ -6,6 +6,28 @@
     mode: 0755
     remote_src: yes
 
+- name: Calico | Check if host has NetworkManager
+  command: systemctl show NetworkManager
+  register: nm_check
+  failed_when: false
+  changed_when: false
+
+- name: Calico | Ensure NetworkManager conf.d dir
+  file:
+    path: "/etc/NetworkManager/conf.d"
+    state: directory
+    recurse: yes
+  when: nm_check.rc == 0
+
+- name: Calico | Prevent NetworkManager from managing Calico interfaces
+  copy:
+    content: |
+      [keyfile]
+      unmanaged-devices=interface-name:cali*;interface-name:tunl*
+    dest: /etc/NetworkManager/conf.d/calico.conf
+  when: nm_check.rc == 0
+  notify: Calico | Reload NetworkManager
+
 - name: Calico | Write Calico cni config
   template:
     src: "cni-calico.conflist.j2"