apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: "2025-10-11T10:48:54Z" generation: 1 labels: app: metallb app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: v0.0.0 component: controller helm.sh/chart: metallb-0.0.0 name: controller namespace: metallb-system ownerReferences: - apiVersion: metallb.io/v1beta1 blockOwnerDeletion: true controller: true kind: MetalLB name: metallb uid: 42a4e397-74d4-4a62-bde8-0f31726b803e resourceVersion: "29817" uid: 6e5d8266-f438-4a55-bbda-a1f58e0ae4c9 spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: metallb component: controller strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: creationTimestamp: null labels: app: metallb component: controller spec: containers: - args: - --port=29150 - --log-level=debug - --webhook-mode=disabled - --tls-min-version=VersionTLS12 command: - /controller env: - name: METALLB_ML_SECRET_NAME value: metallb-memberlist - name: METALLB_DEPLOYMENT value: controller - name: METALLB_BGP_TYPE value: frr-k8s 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: controller ports: - containerPort: 29150 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 readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: cert readOnly: true - args: - --logtostderr - --secure-listen-address=:9120 - --upstream=http://127.0.0.1:29150/ - --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - --tls-private-key-file=/etc/metrics/tls.key - --tls-cert-file=/etc/metrics/tls.crt image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:784c4667a867abdbec6d31a4bbde52676a0f37f8e448eaae37568a46fcdeace7 imagePullPolicy: IfNotPresent name: kube-rbac-proxy ports: - containerPort: 9120 name: metricshttps protocol: TCP resources: requests: cpu: 10m memory: 20Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/metrics name: metrics-certs readOnly: true dnsPolicy: ClusterFirst nodeSelector: kubernetes.io/os: linux restartPolicy: Always schedulerName: default-scheduler securityContext: runAsNonRoot: true serviceAccount: controller serviceAccountName: controller terminationGracePeriodSeconds: 0 volumes: - name: cert secret: defaultMode: 420 secretName: metallb-webhook-cert - name: metrics-certs secret: defaultMode: 420 secretName: controller-certs-secret status: availableReplicas: 1 conditions: - lastTransitionTime: "2025-10-11T10:49:05Z" lastUpdateTime: "2025-10-11T10:49:05Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: "2025-10-11T10:48:54Z" lastUpdateTime: "2025-10-11T10:49:05Z" message: ReplicaSet "controller-68d546b9d8" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 1 replicas: 1 updatedReplicas: 1