diff --git a/infrastructure/kustomization.yaml b/infrastructure/kustomization.yaml
index e9c055ae6cc2d03981b7efa806d961c46c91eb33..c95fc467a728343c112714fd3bb5a34bf24ae410 100644
--- a/infrastructure/kustomization.yaml
+++ b/infrastructure/kustomization.yaml
@@ -3,6 +3,7 @@ kind: Kustomization
 resources:
   - kyverno
   - firewall
+  - metallb
   - cert-manager
   - prometheus
   - ingress-nginx
diff --git a/infrastructure/metallb/kustomization.yaml b/infrastructure/metallb/kustomization.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..16a58318b984ff57e96b23e66f64fe7797a4d2d8
--- /dev/null
+++ b/infrastructure/metallb/kustomization.yaml
@@ -0,0 +1,7 @@
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+namespace: metallb-system
+resources:
+  - namespace.yaml
+  - repository.yaml
+  - release.yaml
diff --git a/infrastructure/metallb/namespace.yaml b/infrastructure/metallb/namespace.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..57ae827fa8b49f2b1906f403749ec41c99f6dfc9
--- /dev/null
+++ b/infrastructure/metallb/namespace.yaml
@@ -0,0 +1,7 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: metallb-system
+  labels:
+    name: metallb-system
+    kyverno.shivering-isles.com/class: "system" 
diff --git a/infrastructure/metallb/release.yaml b/infrastructure/metallb/release.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ad5fe4d4ffe1affeed6315900af0e387a890c3f7
--- /dev/null
+++ b/infrastructure/metallb/release.yaml
@@ -0,0 +1,27 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+  name: metallb
+  namespace: metallb-system
+spec:
+  releaseName: metallb
+  chart:
+    spec:
+      chart: metallb
+      sourceRef:
+        kind: HelmRepository
+        name: metallb
+      version: 0.11.0
+  interval: 5m
+  values:
+    configInline:
+      address-pools:
+      - name: default
+        protocol: layer2
+        addresses:
+        - 192.168.100.128/26
+    prometheus:
+      podMonitor:
+        enabled: true
+      prometheusRule:
+        enabled: true
diff --git a/infrastructure/metallb/repository.yaml b/infrastructure/metallb/repository.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8c29c2a74aa382cce73572d26868a150da5a45c5
--- /dev/null
+++ b/infrastructure/metallb/repository.yaml
@@ -0,0 +1,7 @@
+apiVersion: source.toolkit.fluxcd.io/v1beta1
+kind: HelmRepository
+metadata:
+  name: metallb
+spec:
+  interval: 30m
+  url: https://metallb.github.io/metallb