--- apiVersion: v1 kind: Pod metadata: annotations: alm-examples: |- [ { "apiVersion": "frrk8s.metallb.io/v1beta1", "kind": "FRRConfiguration", "metadata": { "name": "basic", "namespace": "frr-k8s-system" }, "spec": { "bgp": { "routers": [ { "asn": 64512, "neighbors": [ { "address": "172.30.0.3", "asn": 64512, "port": 180, "toAdvertise": { "allowed": { "mode": "all" } }, "toReceive": { "allowed": { "mode": "all" } } } ] } ] } } }, { "apiVersion": "frrk8s.metallb.io/v1beta1", "kind": "FRRConfiguration", "metadata": { "name": "two-neighs", "namespace": "frr-k8s-system" }, "spec": { "bgp": { "routers": [ { "asn": 64512, "neighbors": [ { "address": "172.30.0.3", "asn": 4200000000, "ebgpMultiHop": true, "port": 180, "toAdvertise": { "allowed": { "mode": "all" } } }, { "address": "172.18.0.6", "asn": 4200000000, "port": 179, "toAdvertise": { "allowed": { "prefixes": [ "192.168.2.0/24" ] } } } ], "prefixes": [ "192.168.2.0/24", "192.169.2.0/24" ] } ] } } }, { "apiVersion": "frrk8s.metallb.io/v1beta1", "kind": "FRRConfiguration", "metadata": { "name": "two-routers-vrf", "namespace": "frr-k8s-system" }, "spec": { "bgp": { "routers": [ { "asn": 64513, "neighbors": [ { "address": "172.32.0.3", "asn": 4200000000, "ebgpMultiHop": true, "port": 180, "toAdvertise": { "allowed": { "mode": "all" } } } ], "prefixes": [ "192.168.2.0/24", "192.169.2.0/24" ] }, { "asn": 64515, "neighbors": [ { "address": "172.31.0.3", "asn": 4200000000, "port": 179, "toAdvertise": { "allowed": { "mode": "all" } } } ], "prefixes": [ "192.168.2.0/24", "192.169.2.0/24" ], "vrf": "red" } ] } } }, { "apiVersion": "frrk8s.metallb.io/v1beta1", "kind": "FRRNodeState", "metadata": { "name": "frr-k8s-worker" }, "status": { "lastConversionResult": "success", "lastReloadResult": "success", "runningConfig": "Building configuration...\n\nCurrent configuration:\n!\nfrr version 9.0.2_git\nfrr defaults traditional\nhostname frr-k8s-worker\nlog file /etc/frr/frr.log informational\nlog timestamp precision 3\nno ipv6 forwarding\nservice integrated-vtysh-config\n!\nip nht resolve-via-default\n!\nipv6 nht resolve-via-default\n!\nend\n" } }, { "apiVersion": "metallb.io/v1beta1", "kind": "BFDProfile", "metadata": { "name": "bfd-profile-sample", "namespace": "metallb-system" }, "spec": { "receiveInterval": 380, "transmitInterval": 270 } }, { "apiVersion": "metallb.io/v1beta1", "kind": "BGPAdvertisement", "metadata": { "name": "bgp-adv-sample1", "namespace": "metallb-system" }, "spec": { "ipAddressPools": [ "ip-addresspool-sample1" ], "peers": [ "ebgp-single-hop0" ] } }, { "apiVersion": "metallb.io/v1beta1", "kind": "BGPAdvertisement", "metadata": { "name": "bgp-adv-sample2", "namespace": "metallb-system" }, "spec": { "ipAddressPoolSelectors": [ { "matchLabels": { "test": "ipv6" } }, { "matchLabels": { "test": "ipv4" } } ] } }, { "apiVersion": "metallb.io/v1beta1", "kind": "BGPAdvertisement", "metadata": { "name": "bgp-adv-sample3", "namespace": "metallb-system" }, "spec": { "aggregationLength": 32, "aggregationLengthV6": 128, "communities": [ "65535:65282" ], "ipAddressPools": [ "ip-addresspool-sample1" ], "localPref": 50 } }, { "apiVersion": "metallb.io/v1beta1", "kind": "BGPAdvertisement", "metadata": { "name": "bgp-adv-sample4", "namespace": "metallb-system" }, "spec": { "aggregationLength": 32, "aggregationLengthV6": 128, "communities": [ "NO_ADVERTISE" ], "ipAddressPools": [ "ip-addresspool-sample1" ], "localPref": 50 } }, { "apiVersion": "metallb.io/v1beta1", "kind": "BGPAdvertisement", "metadata": { "name": "bgp-adv-sample5", "namespace": "metallb-system" }, "spec": { "aggregationLength": 32, "aggregationLengthV6": 128, "ipAddressPools": [ "ip-addresspool-sample1" ], "nodeSelectors": [ { "matchLabels": { "kubernetes.io/hostname": "kind-control-plane" } }, { "matchLabels": { "kubernetes.io/hostname": "kind-worker" } } ] } }, { "apiVersion": "metallb.io/v1beta1", "kind": "BGPPeer", "metadata": { "name": "bgp-peer-beta1", "namespace": "metallb-system" }, "spec": { "myASN": 64512, "peerASN": 64512, "peerAddress": "172.30.0.3" } }, { "apiVersion": "metallb.io/v1beta1", "kind": "Community", "metadata": { "name": "community1", "namespace": "metallb-system" }, "spec": { "communities": [ { "name": "NO_ADVERTISE", "value": "65535:65282" } ] } }, { "apiVersion": "metallb.io/v1beta1", "kind": "IPAddressPool", "metadata": { "name": "ip-addresspool-sample1", "namespace": "metallb-system" }, "spec": { "addresses": [ "192.168.10.0/24", "192.168.9.1-192.168.9.5", "fc00:f853:0ccd:e799::/124" ] } }, { "apiVersion": "metallb.io/v1beta1", "kind": "IPAddressPool", "metadata": { "labels": { "test": "ipv4" }, "name": "ip-addresspool-sample2", "namespace": "metallb-system" }, "spec": { "addresses": [ "172.20.0.100/24" ], "autoAssign": false } }, { "apiVersion": "metallb.io/v1beta1", "kind": "IPAddressPool", "metadata": { "labels": { "test": "ipv6" }, "name": "ip-addresspool-sample3", "namespace": "metallb-system" }, "spec": { "addresses": [ "2002:2:2::1-2002:2:2::100" ] } }, { "apiVersion": "metallb.io/v1beta1", "kind": "L2Advertisement", "metadata": { "name": "l2-adv-sample1", "namespace": "metallb-system" }, "spec": { "ipAddressPools": [ "ip-addresspool-sample1" ] } }, { "apiVersion": "metallb.io/v1beta1", "kind": "L2Advertisement", "metadata": { "name": "l2-adv-sample2", "namespace": "metallb-system" }, "spec": { "nodeSelectors": [ { "matchLabels": { "kubernetes.io/hostname": "kind-control-plane" } } ] } }, { "apiVersion": "metallb.io/v1beta1", "kind": "MetalLB", "metadata": { "name": "metallb", "namespace": "metallb-system" }, "spec": {} }, { "apiVersion": "metallb.io/v1beta2", "kind": "BGPPeer", "metadata": { "name": "bgp-peer-sample1", "namespace": "metallb-system" }, "spec": { "myASN": 64512, "peerASN": 64512, "peerAddress": "172.30.0.3" } }, { "apiVersion": "metallb.io/v1beta2", "kind": "BGPPeer", "metadata": { "name": "bgp-peer-sample2", "namespace": "metallb-system" }, "spec": { "bfdProfile": "bfd-profile-sample", "myASN": 64512, "peerASN": 64512, "peerAddress": "172.30.0.3" } }, { "apiVersion": "metallb.io/v1beta2", "kind": "BGPPeer", "metadata": { "name": "bgp-peer-sample3", "namespace": "metallb-system" }, "spec": { "holdTime": "9m0s", "keepaliveTime": "0s", "myASN": 64512, "passwordSecret": { "name": "secretname", "namespace": "metallb-system" }, "peerASN": 64512, "peerAddress": "172.30.0.3", "peerPort": 180 } } ] capabilities: Basic Install categories: Networking certified: "false" containerImage: registry.redhat.io/openshift4/metallb-rhel9-operator@sha256:f21e7d47f7a17f6b3520c17b8f32cbff2ae3129811d3242e08c9c48a9fbf3fbe createdAt: "2023-06-06T15:25:00Z" description: An operator for deploying MetalLB on a kubernetes cluster. features.operators.openshift.io/disconnected: "true" features.operators.openshift.io/fips-compliant: "true" features.operators.openshift.io/proxy-aware: "false" features.operators.openshift.io/tls-profiles: "false" features.operators.openshift.io/token-auth-aws: "false" features.operators.openshift.io/token-auth-azure: "false" features.operators.openshift.io/token-auth-gcp: "false" k8s.ovn.org/pod-networks: '{"default":{"ip_addresses":["10.130.0.37/23"],"mac_address":"0a:58:0a:82:00:25","gateway_ips":["10.130.0.1"],"routes":[{"dest":"10.128.0.0/14","nextHop":"10.130.0.1"},{"dest":"172.30.0.0/16","nextHop":"10.130.0.1"},{"dest":"169.254.0.5/32","nextHop":"10.130.0.1"},{"dest":"100.64.0.0/16","nextHop":"10.130.0.1"}],"ip_address":"10.130.0.37/23","gateway_ip":"10.130.0.1","role":"primary"}}' k8s.v1.cni.cncf.io/network-status: |- [{ "name": "ovn-kubernetes", "interface": "eth0", "ips": [ "10.130.0.37" ], "mac": "0a:58:0a:82:00:25", "default": true, "dns": {} }] olm.operatorGroup: metallb-operator olm.operatorNamespace: metallb-system olm.skipRange: '>=4.8.0 <4.18.0' olm.targetNamespaces: "" olmcahash: cb8c8d9b4b0f8f2bbf3831fd2c9a0da5b21504351a1075718437d55ae0085db4 openshift.io/required-scc: restricted-v2 openshift.io/scc: restricted-v2 operatorframework.io/properties: '{"properties":[{"type":"olm.gvk","value":{"group":"frrk8s.metallb.io","kind":"FRRConfiguration","version":"v1beta1"}},{"type":"olm.gvk","value":{"group":"frrk8s.metallb.io","kind":"FRRNodeState","version":"v1beta1"}},{"type":"olm.gvk","value":{"group":"metallb.io","kind":"BFDProfile","version":"v1beta1"}},{"type":"olm.gvk","value":{"group":"metallb.io","kind":"BGPAdvertisement","version":"v1beta1"}},{"type":"olm.gvk","value":{"group":"metallb.io","kind":"BGPPeer","version":"v1beta1"}},{"type":"olm.gvk","value":{"group":"metallb.io","kind":"BGPPeer","version":"v1beta2"}},{"type":"olm.gvk","value":{"group":"metallb.io","kind":"Community","version":"v1beta1"}},{"type":"olm.gvk","value":{"group":"metallb.io","kind":"IPAddressPool","version":"v1beta1"}},{"type":"olm.gvk","value":{"group":"metallb.io","kind":"L2Advertisement","version":"v1beta1"}},{"type":"olm.gvk","value":{"group":"metallb.io","kind":"MetalLB","version":"v1beta1"}},{"type":"olm.gvk","value":{"group":"metallb.io","kind":"ServiceL2Status","version":"v1beta1"}},{"type":"olm.package","value":{"packageName":"metallb-operator","version":"4.18.0-202509240837"}}]}' operatorframework.io/suggested-namespace: metallb-system operators.openshift.io/valid-subscription: '["OpenShift Kubernetes Engine", "OpenShift Container Platform", "OpenShift Platform Plus"]' operators.operatorframework.io/builder: operator-sdk-v1.34.1 operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 prometheus.io/port: "7472" prometheus.io/scrape: "true" repository: https://github.com/openshift/metallb-operator seccomp.security.alpha.kubernetes.io/pod: runtime/default support: Red Hat creationTimestamp: "2025-10-11T10:48:04Z" generateName: metallb-operator-webhook-server-84d69c968c- labels: app: metallb component: webhook-server pod-template-hash: 84d69c968c managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:alm-examples: {} f:capabilities: {} f:categories: {} f:certified: {} f:containerImage: {} f:createdAt: {} f:description: {} f:features.operators.openshift.io/disconnected: {} f:features.operators.openshift.io/fips-compliant: {} f:features.operators.openshift.io/proxy-aware: {} f:features.operators.openshift.io/tls-profiles: {} f:features.operators.openshift.io/token-auth-aws: {} f:features.operators.openshift.io/token-auth-azure: {} f:features.operators.openshift.io/token-auth-gcp: {} f:olm.operatorGroup: {} f:olm.operatorNamespace: {} f:olm.skipRange: {} f:olm.targetNamespaces: {} f:olmcahash: {} f:openshift.io/required-scc: {} f:operatorframework.io/properties: {} f:operatorframework.io/suggested-namespace: {} f:operators.openshift.io/valid-subscription: {} f:operators.operatorframework.io/builder: {} f:operators.operatorframework.io/project_layout: {} f:prometheus.io/port: {} f:prometheus.io/scrape: {} f:repository: {} f:support: {} f:generateName: {} f:labels: .: {} f:app: {} f:component: {} f:pod-template-hash: {} f:ownerReferences: .: {} k:{"uid":"93930f61-e3d4-4590-b46c-d5ddfba0e9ac"}: {} f:spec: f:containers: k:{"name":"webhook-server"}: .: {} f:args: {} f:command: {} f:env: .: {} k:{"name":"METALLB_BGP_TYPE"}: .: {} f:name: {} f:value: {} k:{"name":"OPERATOR_CONDITION_NAME"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":7472,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} k:{"containerPort":9443,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/apiserver.local.config/certificates"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/tmp/k8s-webhook-server/serving-certs"}: .: {} f:mountPath: {} f:name: {} f:dnsPolicy: {} f:enableServiceLinks: {} f:nodeSelector: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:volumes: .: {} k:{"name":"apiservice-cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:items: {} f:secretName: {} k:{"name":"cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"webhook-cert"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:items: {} f:secretName: {} manager: kube-controller-manager operation: Update time: "2025-10-11T10:48:04Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:k8s.ovn.org/pod-networks: {} manager: master-0 operation: Update subresource: status time: "2025-10-11T10:48:04Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:k8s.v1.cni.cncf.io/network-status: {} manager: multus-daemon operation: Update subresource: status time: "2025-10-11T10:48:05Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:status: f:conditions: k:{"type":"ContainersReady"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:status: {} f:type: {} k:{"type":"Initialized"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:status: {} f:type: {} k:{"type":"PodReadyToStartContainers"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:status: {} f:type: {} k:{"type":"Ready"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:status: {} f:type: {} f:containerStatuses: {} f:hostIP: {} f:hostIPs: {} f:phase: {} f:podIP: {} f:podIPs: .: {} k:{"ip":"10.130.0.37"}: .: {} f:ip: {} f:startTime: {} manager: kubelet operation: Update subresource: status time: "2025-10-11T10:48:24Z" name: metallb-operator-webhook-server-84d69c968c-btbcm namespace: metallb-system ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: ReplicaSet name: metallb-operator-webhook-server-84d69c968c uid: 93930f61-e3d4-4590-b46c-d5ddfba0e9ac resourceVersion: "28329" uid: 3d4bad0b-955f-4d0e-8849-8257c50682cb spec: containers: - args: - --disable-cert-rotation=true - --port=7472 - --log-level=info - --webhook-mode=onlywebhook command: - /controller env: - name: METALLB_BGP_TYPE value: frr - name: OPERATOR_CONDITION_NAME value: metallb-operator.v4.18.0-202509240837 image: registry.redhat.io/openshift4/metallb-rhel9@sha256:fbb4aaad8aa681dfebc89dec05ff22cd002c72df1421ced8602fe29efce4afa7 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3 httpGet: path: /metrics port: monitoring scheme: HTTP initialDelaySeconds: 10 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 name: webhook-server ports: - containerPort: 7472 name: monitoring protocol: TCP - containerPort: 9443 name: webhook-server protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /metrics port: monitoring scheme: HTTP initialDelaySeconds: 10 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: {} securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL runAsNonRoot: true runAsUser: 1000760000 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: webhook-cert - mountPath: /apiserver.local.config/certificates name: apiservice-cert - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-8v5df readOnly: true dnsPolicy: ClusterFirst enableServiceLinks: true nodeName: master-0 nodeSelector: kubernetes.io/os: linux preemptionPolicy: PreemptLowerPriority priority: 0 restartPolicy: Always schedulerName: default-scheduler securityContext: fsGroup: 1000760000 seLinuxOptions: level: s0:c28,c2 seccompProfile: type: RuntimeDefault serviceAccount: controller serviceAccountName: controller terminationGracePeriodSeconds: 0 tolerations: - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists tolerationSeconds: 300 - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 300 volumes: - name: cert secret: defaultMode: 420 secretName: metallb-webhook-cert - name: apiservice-cert secret: defaultMode: 420 items: - key: tls.crt path: apiserver.crt - key: tls.key path: apiserver.key secretName: metallb-operator-webhook-server-service-cert - name: webhook-cert secret: defaultMode: 420 items: - key: tls.crt path: tls.crt - key: tls.key path: tls.key secretName: metallb-operator-webhook-server-service-cert - name: kube-api-access-8v5df projected: defaultMode: 420 sources: - serviceAccountToken: expirationSeconds: 3607 path: token - configMap: items: - key: ca.crt path: ca.crt name: kube-root-ca.crt - downwardAPI: items: - fieldRef: apiVersion: v1 fieldPath: metadata.namespace path: namespace - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt status: conditions: - lastProbeTime: null lastTransitionTime: "2025-10-11T10:48:09Z" status: "True" type: PodReadyToStartContainers - lastProbeTime: null lastTransitionTime: "2025-10-11T10:48:04Z" status: "True" type: Initialized - lastProbeTime: null lastTransitionTime: "2025-10-11T10:48:24Z" status: "True" type: Ready - lastProbeTime: null lastTransitionTime: "2025-10-11T10:48:24Z" status: "True" type: ContainersReady - lastProbeTime: null lastTransitionTime: "2025-10-11T10:48:04Z" status: "True" type: PodScheduled containerStatuses: - containerID: cri-o://75a2cd5e768356f1bb494fc5d056e2b1d7d6ecf960512659b6f293f638834254 image: registry.redhat.io/openshift4/metallb-rhel9@sha256:fbb4aaad8aa681dfebc89dec05ff22cd002c72df1421ced8602fe29efce4afa7 imageID: registry.redhat.io/openshift4/metallb-rhel9@sha256:5b30f159f22a26feeb71fc0fa265e4b452c20f664e21e0475fbbb9124a903fd6 lastState: {} name: webhook-server ready: true restartCount: 0 started: true state: running: startedAt: "2025-10-11T10:48:09Z" volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: webhook-cert - mountPath: /apiserver.local.config/certificates name: apiservice-cert - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-8v5df readOnly: true recursiveReadOnly: Disabled hostIP: 192.168.34.10 hostIPs: - ip: 192.168.34.10 phase: Running podIP: 10.130.0.37 podIPs: - ip: 10.130.0.37 qosClass: BestEffort startTime: "2025-10-11T10:48:04Z"