# Source: metallb/templates/controller-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: metallb
    component: controller
    gitops.jenkins-x.io/pipeline: 'namespaces'
  name: controller
  namespace: metallb-system
  annotations:
    meta.helm.sh/release-name: 'metallb'
    wave.pusher.com/update-on-config-change: 'true'
spec:
  revisionHistoryLimit: 3
  selector:
    matchLabels:
      app: metallb
      component: controller
  template:
    metadata:
      annotations:
        prometheus.io/port: '7472'
        prometheus.io/scrape: 'true'
      labels:
        app: metallb
        component: controller
    spec:
      containers:
        - args:
            - --port=7472
            - --config=config
          env:
            - name: METALLB_ML_SECRET_NAME
              value: memberlist
            - name: METALLB_DEPLOYMENT
              value: controller
          image: quay.io/metallb/controller:main
          name: controller
          ports:
            - containerPort: 7472
              name: monitoring
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop:
                - all
            readOnlyRootFilesystem: true
      nodeSelector:
        kubernetes.io/os: linux
      securityContext:
        runAsNonRoot: true
        runAsUser: 65534
        fsGroup: 65534
      serviceAccountName: controller
      terminationGracePeriodSeconds: 0
