# infrastructure/traefik/traefik-service-lb.yaml apiVersion: v1 kind: Service metadata: name: traefik namespace: traefik annotations: # The explicit VIP selects its pool; retain shared-IP ownership below. metallb.universe.tf/allow-shared-ip: traefik spec: type: LoadBalancer loadBalancerClass: metallb loadBalancerIP: 192.168.22.9 ports: - name: web port: 80 targetPort: web protocol: TCP - name: websecure port: 443 targetPort: websecure protocol: TCP selector: app: traefik