apiVersion: apps/v1
kind: DaemonSet
metadata:
  annotations:
    configmap-bin-hash: 2eac3ebb6cbc9d146e71b77986c2bc460a65750fbe1b5d6c5feebbeb3343788a
    deprecated.daemonset.template.generation: "1"
    meta.helm.sh/release-name: ovn
    meta.helm.sh/release-namespace: openstack
    openstackhelm.openstack.org/release_uuid: ""
  creationTimestamp: "2026-05-06T10:02:47Z"
  generation: 1
  labels:
    app.kubernetes.io/managed-by: Helm
    application: ovn
    component: stale-port-cleanup
    release_group: ovn
  name: ovn-stale-port-cleanup
  namespace: openstack
  resourceVersion: "14508"
  uid: 80b1245e-0f57-4e26-ae56-e257d336b2b3
spec:
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      application: ovn
      component: stale-port-cleanup
      release_group: ovn
  template:
    metadata:
      annotations:
        configmap-bin-hash: 2eac3ebb6cbc9d146e71b77986c2bc460a65750fbe1b5d6c5feebbeb3343788a
        openstackhelm.openstack.org/release_uuid: ""
      creationTimestamp: null
      labels:
        application: ovn
        component: stale-port-cleanup
        release_group: ovn
    spec:
      containers:
      - command:
        - /tmp/ovn-stale-port-cleanup.sh
        env:
        - name: INTEGRATION_BRIDGE
          value: br-int
        - name: OVS_DB_SOCKET
          value: /run/openvswitch/db.sock
        - name: INTERVAL_SECONDS
          value: "3600"
        - name: MAX_DELETIONS_PER_CYCLE
          value: "200"
        - name: MIN_STALE_OBSERVATIONS
          value: "2"
        - name: DRY_RUN
          value: "0"
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/ovn:v24.03.7-3@sha256:deb1966eff94d8da072a3647db63546722094deb3ef34b6b464609bcba61887a
        imagePullPolicy: IfNotPresent
        name: ovn-stale-port-cleanup
        resources: {}
        securityContext:
          privileged: true
          runAsUser: 0
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /tmp/ovn-stale-port-cleanup.sh
          name: ovn-bin
          readOnly: true
          subPath: ovn-stale-port-cleanup.sh
        - mountPath: /run/openvswitch
          name: run-openvswitch
        - mountPath: /var/run/ovn-stale-port-cleanup
          name: state
      dnsPolicy: ClusterFirstWithHostNet
      hostNetwork: true
      initContainers:
      - command:
        - kubernetes-entrypoint
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: INTERFACE_NAME
          value: eth0
        - name: PATH
          value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/
        - name: DEPENDENCY_SERVICE
        - name: DEPENDENCY_DAEMONSET
        - name: DEPENDENCY_CONTAINER
        - name: DEPENDENCY_POD_JSON
          value: '[{"labels":{"application":"openvswitch","component":"server"},"requireSameNode":true}]'
        - name: DEPENDENCY_CUSTOM_RESOURCE
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/kubernetes-entrypoint:edge
        imagePullPolicy: IfNotPresent
        name: init
        resources: {}
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: true
          runAsUser: 65534
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      nodeSelector:
        openvswitch: enabled
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: ovn-stale-port-cleanup
      serviceAccountName: ovn-stale-port-cleanup
      terminationGracePeriodSeconds: 30
      volumes:
      - configMap:
          defaultMode: 365
          name: ovn-bin
        name: ovn-bin
      - hostPath:
          path: /run/openvswitch
          type: DirectoryOrCreate
        name: run-openvswitch
      - emptyDir: {}
        name: state
  updateStrategy:
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
    type: RollingUpdate
status:
  currentNumberScheduled: 1
  desiredNumberScheduled: 1
  numberAvailable: 1
  numberMisscheduled: 0
  numberReady: 1
  observedGeneration: 1
  updatedNumberScheduled: 1
