apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: '1'
meta.helm.sh/release-name: metallb
meta.helm.sh/release-namespace: metallb-system
creationTimestamp: '2026-09-19T17:01:27Z'
generation: 1
labels:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: metallb
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: metallb
app.kubernetes.io/version: v0.16.1
helm.sh/chart: metallb-0.16.1
managedFields:
- apiVersion: apps/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
f:meta.helm.sh/release-name: {}
f:meta.helm.sh/release-namespace: {}
f:labels:
f:app.kubernetes.io/component: {}
f:app.kubernetes.io/instance: {}
f:app.kubernetes.io/managed-by: {}
f:app.kubernetes.io/name: {}
f:app.kubernetes.io/version: {}
f:helm.sh/chart: {}
f:spec:
f:selector: {}
f:strategy:
f:type: {}
f:template:
f:metadata:
f:labels:
f:app.kubernetes.io/component: {}
f:app.kubernetes.io/instance: {}
f:app.kubernetes.io/name: {}
f:spec:
f:containers:
k:{"name":"controller"}:
.: {}
f:args: {}
f:env:
k:{"name":"METALLB_DEPLOYMENT"}:
.: {}
f:name: {}
f:value: {}
k:{"name":"METALLB_ML_SECRET_NAME"}:
.: {}
f:name: {}
f:value: {}
k:{"name":"METALLB_POD_NAME"}:
.: {}
f:name: {}
f:valueFrom:
f:fieldRef: {}
f:image: {}
f:livenessProbe:
f:failureThreshold: {}
f:httpGet:
f:path: {}
f:port: {}
f:initialDelaySeconds: {}
f:periodSeconds: {}
f:successThreshold: {}
f:timeoutSeconds: {}
f:name: {}
f:ports:
k:{"containerPort":9120,"protocol":"TCP"}:
.: {}
f:containerPort: {}
f:name: {}
k:{"containerPort":9443,"protocol":"TCP"}:
.: {}
f:containerPort: {}
f:name: {}
f:protocol: {}
f:readinessProbe:
f:failureThreshold: {}
f:httpGet:
f:path: {}
f:port: {}
f:initialDelaySeconds: {}
f:periodSeconds: {}
f:successThreshold: {}
f:timeoutSeconds: {}
f:securityContext:
f:allowPrivilegeEscalation: {}
f:capabilities:
f:drop: {}
f:readOnlyRootFilesystem: {}
f:volumeMounts:
k:{"mountPath":"/tmp/k8s-webhook-server/serving-certs"}:
.: {}
f:mountPath: {}
f:name: {}
f:readOnly: {}
f:nodeSelector: {}
f:securityContext:
f:fsGroup: {}
f:runAsNonRoot: {}
f:runAsUser: {}
f:serviceAccountName: {}
f:terminationGracePeriodSeconds: {}
f:volumes:
k:{"name":"cert"}:
.: {}
f:name: {}
f:secret:
f:defaultMode: {}
f:secretName: {}
manager: helm
operation: Apply
time: '2026-09-19T17:01:27Z'
- apiVersion: apps/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
f:deployment.kubernetes.io/revision: {}
f:status:
f:availableReplicas: {}
f:conditions:
.: {}
k:{"type":"Available"}:
.: {}
f:lastTransitionTime: {}
f:lastUpdateTime: {}
f:message: {}
f:reason: {}
f:status: {}
f:type: {}
k:{"type":"Progressing"}:
.: {}
f:lastTransitionTime: {}
f:lastUpdateTime: {}
f:message: {}
f:reason: {}
f:status: {}
f:type: {}
f:observedGeneration: {}
f:readyReplicas: {}
f:replicas: {}
f:terminatingReplicas: {}
f:updatedReplicas: {}
manager: kube-controller-manager
operation: Update
subresource: status
time: '2026-09-19T17:01:39Z'
name: metallb-controller
namespace: metallb-system
resourceVersion: '173834'
uid: 1048d566-6d59-450d-88a8-d42df0121905
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: metallb
app.kubernetes.io/name: metallb
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/component: controller
app.kubernetes.io/instance: metallb
app.kubernetes.io/name: metallb
spec:
containers:
- args:
- --port=9120
- --log-level=info
- --webhook-mode=enabled
env:
- name: METALLB_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: METALLB_ML_SECRET_NAME
value: metallb-memberlist
- name: METALLB_DEPLOYMENT
value: metallb-controller
image: quay.io/metallb/controller:v0.16.1
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /healthz
port: 17472
scheme: HTTP
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: controller
ports:
- containerPort: 9120
name: metricshttps
protocol: TCP
- containerPort: 9443
name: webhook-server
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /readyz
port: 17472
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
dnsPolicy: ClusterFirst
nodeSelector:
kubernetes.io/os: linux
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
fsGroup: 65534
runAsNonRoot: true
runAsUser: 65534
serviceAccount: metallb-controller
serviceAccountName: metallb-controller
terminationGracePeriodSeconds: 0
volumes:
- name: cert
secret:
defaultMode: 420
secretName: metallb-webhook-cert
status:
availableReplicas: 1
conditions:
- lastTransitionTime: '2026-09-19T17:01:39Z'
lastUpdateTime: '2026-09-19T17:01:39Z'
message: Deployment has minimum availability.
reason: MinimumReplicasAvailable
status: 'True'
type: Available
- lastTransitionTime: '2026-09-19T17:01:27Z'
lastUpdateTime: '2026-09-19T17:01:39Z'
message: ReplicaSet "metallb-controller-75f6b7f996" has successfully progressed.
reason: NewReplicaSetAvailable
status: 'True'
type: Progressing
observedGeneration: 1
readyReplicas: 1
replicas: 1
terminatingReplicas: 0
updatedReplicas: 1