diff --git a/roles/kubernetes-apps/metallb/defaults/main.yml b/roles/kubernetes-apps/metallb/defaults/main.yml
index 22e2935b25f5a5f6601f0e9da6463516dda02573..02f4e3cae944567b15d6d5f8e6a41658fa8181f1 100644
--- a/roles/kubernetes-apps/metallb/defaults/main.yml
+++ b/roles/kubernetes-apps/metallb/defaults/main.yml
@@ -13,3 +13,4 @@ metallb_speaker_tolerations:
     key: node-role.kubernetes.io/control-plane
     operator: Exists
 metallb_controller_tolerations: []
+metallb_loadbalancer_class: ""
\ No newline at end of file
diff --git a/roles/kubernetes-apps/metallb/templates/metallb.yaml.j2 b/roles/kubernetes-apps/metallb/templates/metallb.yaml.j2
index eab386ff8f843ac0a81ba30e9c74c5edbcbf2ee1..608ad31cda47480ef66e83251e306ebc209c6511 100644
--- a/roles/kubernetes-apps/metallb/templates/metallb.yaml.j2
+++ b/roles/kubernetes-apps/metallb/templates/metallb.yaml.j2
@@ -1724,6 +1724,9 @@ spec:
       - args:
         - --port={{ metallb_port }}
         - --log-level={{ metallb_log_level }}
+{% if metallb_loadbalancer_class != "" %}
+        - --lb-class={{ metallb_loadbalancer_class }}
+{% endif %}
         env:
         - name: METALLB_ML_SECRET_NAME
           value: memberlist
@@ -1814,6 +1817,9 @@ spec:
       - args:
         - --port={{ metallb_port }}
         - --log-level={{ metallb_log_level }}
+{% if metallb_loadbalancer_class != "" %}
+        - --lb-class={{ metallb_loadbalancer_class }}
+{% endif %}
         env:
         - name: METALLB_NODE_NAME
           valueFrom: