diff --git a/inventory/sample/group_vars/k8s_cluster/addons.yml b/inventory/sample/group_vars/k8s_cluster/addons.yml
index 70311748e59b151ea037cc165c08631f4ab1efa3..a5cdd92694b361a4c5509428fd7934b8e4418011 100644
--- a/inventory/sample/group_vars/k8s_cluster/addons.yml
+++ b/inventory/sample/group_vars/k8s_cluster/addons.yml
@@ -161,7 +161,7 @@ cert_manager_enabled: false
 
 # MetalLB deployment
 metallb_enabled: false
-metallb_speaker_enabled: true
+metallb_speaker_enabled: "{{ metallb_enabled }}"
 # metallb_ip_range:
 #   - "10.5.0.50-10.5.0.99"
 # metallb_pool_name: "loadbalanced"
diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml
index 808781e1dd96d312951c7fc9c37694462b9583a1..088f58a53c56d41ce6d18bbe3bf8ab16126ff340 100644
--- a/roles/download/defaults/main.yml
+++ b/roles/download/defaults/main.yml
@@ -1695,7 +1695,7 @@ downloads:
     - kube_control_plane
 
   metallb_speaker:
-    enabled: "{{ metallb_enabled }}"
+    enabled: "{{ metallb_speaker_enabled }}"
     container: true
     repo: "{{ metallb_speaker_image_repo }}"
     tag: "{{ metallb_version }}"
diff --git a/roles/kubernetes-apps/metallb/defaults/main.yml b/roles/kubernetes-apps/metallb/defaults/main.yml
index 3679aebe8e30d581787811f3cf1d35cee57715fc..dc96fdc7d7092003585b3d34af3196ec1b5696a3 100644
--- a/roles/kubernetes-apps/metallb/defaults/main.yml
+++ b/roles/kubernetes-apps/metallb/defaults/main.yml
@@ -5,7 +5,7 @@ metallb_protocol: "layer2"
 metallb_port: "7472"
 metallb_memberlist_port: "7946"
 metallb_peers: []
-metallb_speaker_enabled: true
+metallb_speaker_enabled: "{{ metallb_enabled }}"
 metallb_speaker_nodeselector:
   kubernetes.io/os: "linux"
 metallb_controller_nodeselector:
diff --git a/roles/kubespray-defaults/defaults/main.yaml b/roles/kubespray-defaults/defaults/main.yaml
index a34eae91370e801a119ecda571a8d09a7a0c1fcd..6fb51598655c1360ab6d9ae5282525fb8f08e630 100644
--- a/roles/kubespray-defaults/defaults/main.yaml
+++ b/roles/kubespray-defaults/defaults/main.yaml
@@ -409,6 +409,7 @@ ingress_alb_enabled: false
 cert_manager_enabled: false
 expand_persistent_volumes: false
 metallb_enabled: false
+metallb_speaker_enabled: "{{ metallb_enabled }}"
 argocd_enabled: false
 
 ## When OpenStack is used, Cinder version can be explicitly specified if autodetection fails (Fixed in 1.9: https://github.com/kubernetes/kubernetes/issues/50461)