diff --git a/upgrade-cluster.yml b/upgrade-cluster.yml
index 403d210afac906cd658dd715c109ae2d7877b6ae..6ac8160ac262ef452bbdbe2af1b63089e0107c7e 100644
--- a/upgrade-cluster.yml
+++ b/upgrade-cluster.yml
@@ -111,8 +111,8 @@
     - { role: upgrade/post-upgrade, tags: post-upgrade }
   environment: "{{ proxy_env }}"
 
-- name: Upgrade calico and external cloud provider on all masters and nodes
-  hosts: kube-master:kube-node
+- name: Upgrade calico and external cloud provider on all masters, calico-rrs, and nodes
+  hosts: kube-master:calico-rr:kube-node
   gather_facts: False
   any_errors_fatal: "{{ any_errors_fatal | default(true) }}"
   serial: "{{ serial | default('20%') }}"
@@ -124,7 +124,7 @@
     - { role: kubernetes-apps/policy_controller, tags: policy-controller }
 
 - name: Finally handle worker upgrades, based on given batch size
-  hosts: kube-node:!kube-master
+  hosts: kube-node:calico-rr:!kube-master
   gather_facts: False
   any_errors_fatal: "{{ any_errors_fatal | default(true) }}"
   serial: "{{ serial | default('20%') }}"