apiVersion: apps/v1
kind: DaemonSet
metadata:
  annotations:
    deprecated.daemonset.template.generation: "1"
    meta.helm.sh/release-name: neutron
    meta.helm.sh/release-namespace: openstack
    openstackhelm.openstack.org/release_uuid: ""
  creationTimestamp: "2026-02-26T22:29:00Z"
  generation: 1
  labels:
    app.kubernetes.io/managed-by: Helm
    application: neutron
    component: metadata-agent
    release_group: neutron
  name: neutron-metadata-agent-default
  namespace: openstack
  resourceVersion: "17191"
  uid: 48ea7313-e9fa-49b8-b34d-3026d3e0ff2e
spec:
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      application: neutron
      component: metadata-agent
      release_group: neutron
  template:
    metadata:
      annotations:
        configmap-bin-hash: c5e553bc84ef33a33fec964b0b16f48c478ce33c69921c808ecc74abe8bb6552
        configmap-etc-hash: 2a9b5554efa58ea6244d4f79034d92d9144177460d50eb7658671384585866dd
        openstackhelm.openstack.org/release_uuid: ""
      creationTimestamp: null
      labels:
        application: neutron
        component: metadata-agent
        release_group: neutron
    spec:
      containers:
      - command:
        - /tmp/neutron-metadata-agent.sh
        env:
        - name: RPC_PROBE_TIMEOUT
          value: "60"
        - name: RPC_PROBE_RETRIES
          value: "2"
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/neutron:main@sha256:55f9c67dda4cc7082739eea7cb21810862a56aac6fe8107a5f31627c601ab23e
        imagePullPolicy: IfNotPresent
        livenessProbe:
          exec:
            command:
            - python
            - /tmp/health-probe.py
            - --config-file
            - /etc/neutron/neutron.conf
            - --config-file
            - /etc/neutron/metadata_agent.ini
            - --liveness-probe
            - --use-fqdn
          failureThreshold: 3
          initialDelaySeconds: 120
          periodSeconds: 600
          successThreshold: 1
          timeoutSeconds: 580
        name: neutron-metadata-agent
        readinessProbe:
          exec:
            command:
            - python
            - /tmp/health-probe.py
            - --config-file
            - /etc/neutron/neutron.conf
            - --config-file
            - /etc/neutron/metadata_agent.ini
            - --use-fqdn
          failureThreshold: 3
          initialDelaySeconds: 30
          periodSeconds: 190
          successThreshold: 1
          timeoutSeconds: 185
        resources: {}
        securityContext:
          privileged: true
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /tmp
          name: pod-tmp
        - mountPath: /var/lib/neutron
          name: pod-var-neutron
        - mountPath: /tmp/neutron-metadata-agent.sh
          name: neutron-bin
          readOnly: true
          subPath: neutron-metadata-agent.sh
        - mountPath: /tmp/health-probe.py
          name: neutron-bin
          readOnly: true
          subPath: health-probe.py
        - mountPath: /etc/neutron/neutron.conf
          name: neutron-etc
          readOnly: true
          subPath: neutron.conf
        - mountPath: /etc/neutron/plugins/ml2/ml2_conf.ini
          name: neutron-etc
          readOnly: true
          subPath: ml2_conf.ini
        - mountPath: /etc/neutron/plugins/ml2/openvswitch_agent.ini
          name: neutron-etc
          readOnly: true
          subPath: openvswitch_agent.ini
        - mountPath: /etc/neutron/metadata_agent.ini
          name: neutron-etc
          readOnly: true
          subPath: metadata_agent.ini
        - mountPath: /etc/sudoers.d/kolla_neutron_sudoers
          name: neutron-etc
          readOnly: true
          subPath: neutron_sudoers
        - mountPath: /etc/neutron/rootwrap.conf
          name: neutron-etc
          readOnly: true
          subPath: rootwrap.conf
        - mountPath: /etc/neutron/rootwrap.d/debug.filters
          name: neutron-etc
          readOnly: true
          subPath: debug.filters
        - mountPath: /etc/neutron/rootwrap.d/dhcp.filters
          name: neutron-etc
          readOnly: true
          subPath: dhcp.filters
        - mountPath: /etc/neutron/rootwrap.d/dibbler.filters
          name: neutron-etc
          readOnly: true
          subPath: dibbler.filters
        - mountPath: /etc/neutron/rootwrap.d/ebtables.filters
          name: neutron-etc
          readOnly: true
          subPath: ebtables.filters
        - mountPath: /etc/neutron/rootwrap.d/ipset-firewall.filters
          name: neutron-etc
          readOnly: true
          subPath: ipset-firewall.filters
        - mountPath: /etc/neutron/rootwrap.d/iptables-firewall.filters
          name: neutron-etc
          readOnly: true
          subPath: iptables-firewall.filters
        - mountPath: /etc/neutron/rootwrap.d/l3.filters
          name: neutron-etc
          readOnly: true
          subPath: l3.filters
        - mountPath: /etc/neutron/rootwrap.d/linuxbridge-plugin.filters
          name: neutron-etc
          readOnly: true
          subPath: linuxbridge-plugin.filters
        - mountPath: /etc/neutron/rootwrap.d/netns-cleanup.filters
          name: neutron-etc
          readOnly: true
          subPath: netns-cleanup.filters
        - mountPath: /etc/neutron/rootwrap.d/openvswitch-plugin.filters
          name: neutron-etc
          readOnly: true
          subPath: openvswitch-plugin.filters
        - mountPath: /etc/neutron/rootwrap.d/privsep.filters
          name: neutron-etc
          readOnly: true
          subPath: privsep.filters
        - mountPath: /var/lib/neutron/openstack-helm
          name: socket
        - mountPath: /run/netns
          mountPropagation: Bidirectional
          name: host-run-netns
      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
          value: openstack:rabbitmq-neutron,openstack:neutron-server,openstack:nova-api,openstack:nova-metadata
        - name: DEPENDENCY_JOBS
          value: neutron-rabbit-init
        - name: DEPENDENCY_DAEMONSET
        - name: DEPENDENCY_CONTAINER
        - name: DEPENDENCY_POD_JSON
          value: '[{"labels":{"application":"neutron","component":"neutron-ovs-agent"},"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
      - command:
        - /tmp/neutron-metadata-agent-init.sh
        env:
        - name: NEUTRON_USER_UID
          value: "42424"
        image: harbor.atmosphere.dev/ghcr.io/vexxhost/neutron:main@sha256:55f9c67dda4cc7082739eea7cb21810862a56aac6fe8107a5f31627c601ab23e
        imagePullPolicy: IfNotPresent
        name: neutron-metadata-agent-init
        resources: {}
        securityContext:
          readOnlyRootFilesystem: true
          runAsUser: 0
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /tmp
          name: pod-tmp
        - mountPath: /tmp/neutron-metadata-agent-init.sh
          name: neutron-bin
          readOnly: true
          subPath: neutron-metadata-agent-init.sh
        - mountPath: /etc/neutron/neutron.conf
          name: neutron-etc
          readOnly: true
          subPath: neutron.conf
        - mountPath: /var/lib/neutron/openstack-helm
          name: socket
      nodeSelector:
        openstack-control-plane: enabled
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext:
        runAsUser: 42424
      serviceAccount: neutron-metadata-agent
      serviceAccountName: neutron-metadata-agent
      shareProcessNamespace: true
      terminationGracePeriodSeconds: 30
      volumes:
      - emptyDir: {}
        name: pod-tmp
      - emptyDir: {}
        name: pod-var-neutron
      - configMap:
          defaultMode: 365
          name: neutron-bin
        name: neutron-bin
      - name: neutron-etc
        secret:
          defaultMode: 292
          secretName: neutron-metadata-agent-default
      - hostPath:
          path: /var/lib/neutron/openstack-helm
          type: ""
        name: socket
      - hostPath:
          path: /run/netns
          type: ""
        name: host-run-netns
  updateStrategy:
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
    type: RollingUpdate
status:
  currentNumberScheduled: 1
  desiredNumberScheduled: 1
  numberAvailable: 1
  numberMisscheduled: 0
  numberReady: 1
  observedGeneration: 1
  updatedNumberScheduled: 1
