# Copyright (c) 2026 Huawei Technologies Co., Ltd.
# openFuyao is licensed under Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
#          http://license.coscl.org.cn/MulanPSL2
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.

apiVersion: v1
kind: ServiceAccount
metadata:
  name: weight-dispatcher-node-agent
  namespace: default
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: weight-dispatcher-node-agent
  namespace: default
spec:
  selector:
    matchLabels:
      app: weight-dispatcher-node-agent
  template:
    metadata:
      labels:
        app: weight-dispatcher-node-agent
    spec:
      serviceAccountName: weight-dispatcher-node-agent
      hostNetwork: true
      containers:
        - name: node-agent
          image: <registry>/weight-dispatcher-node-agent:latest
          imagePullPolicy: IfNotPresent
          env:
            - name: LISTEN_ADDR
              value: ":18080"
            - name: AGENT_PORT
              value: "18080"
            - name: CACHE_ROOT
              value: /var/lib/weight-dispatcher/cache
            - name: RDMA_ENABLED
              value: "true"
            - name: TCP_FALLBACK_ENABLED
              value: "true"
            - name: COLLECTIVE_MODE
              value: "ring"
            - name: NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
          securityContext:
            privileged: true
          volumeMounts:
            - name: cache-root
              mountPath: /var/lib/weight-dispatcher/cache
            - name: source-root
              mountPath: /var/lib/weight-dispatcher/source
            - name: host-home-cache-root
              mountPath: /home/llm_cache
              readOnly: true
            - name: infiniband
              mountPath: /dev/infiniband
            - name: sys-net
              mountPath: /sys/class/net
              readOnly: true
      volumes:
        - name: cache-root
          hostPath:
            path: /var/lib/weight-dispatcher/cache
            type: DirectoryOrCreate
        - name: source-root
          hostPath:
            path: /var/lib/weight-dispatcher/source
            type: DirectoryOrCreate
        - name: host-home-cache-root
          hostPath:
            path: /home/llm_cache
            type: Directory
        - name: infiniband
          hostPath:
            path: /dev/infiniband
            type: Directory
        - name: sys-net
          hostPath:
            path: /sys/class/net
            type: Directory