Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CollectHeartbeatData ¶
func CollectHeartbeatData(nodeUUID string) *workerpb.HeartbeatRequest
CollectHeartbeatData 采集心跳数据。
func IdentityPath ¶
IdentityPath 返回数据根下的身份文件绝对路径 <etcDir>/node-identity.json。
func SaveIdentity ¶
SaveIdentity 把节点身份原子写入 etcDir 下的身份文件,权限 0600(含 node_secret,禁止他者读取)。 先写临时文件再 rename,避免写入中途崩溃留下半截文件。
Types ¶
type Config ¶
type Config struct {
ControlPlaneAddr string // Control Plane gRPC 地址
NodeName string // 节点名称
WsPort int // WebSocket 端口
GrpcPort int // 历史兼容字段;Worker 不再监听 gRPC 端口。
Host string // 本机 IP(留空自动检测,优先 127.0.0.1)
// EnrollToken enrollment token 明文(FR-080,见 ADR-020)。
// 仅新节点首次注册(无本地身份文件)时携带;经 gRPC metadata 传给 CP 校验消费。
// 已有本地身份的重注册留空;CP 仅按 UUID 与密钥放行,不消费 token。
EnrollToken string
// NodeUUID / NodeSecret 本地持久化的节点身份(见 ADR-039)。
// 重注册时(已有本地身份文件)填入并经 gRPC metadata 出示,CP 按 UUID 匹配既有节点、
// 校验 secret 后重注册,避免 name 锚定带来的重名覆写。首注册留空。
NodeUUID string
NodeSecret string
}
Config 注册配置。
type Identity ¶
type Identity struct {
// NodeUUID CP 签发的节点 UUID。
NodeUUID string `json:"nodeUuid"`
// NodeSecret CP 签发的节点密钥(心跳鉴权用,敏感,不入日志)。
NodeSecret string `json:"nodeSecret"`
// NodeName 注册使用的节点名(重注册按 name 命中,需与首注册一致)。
NodeName string `json:"nodeName"`
// WSTokenSecret CP 下发的 WS 令牌密钥(FR-275,见 ADR-061):终端/插件桥令牌校验用,
// 敏感,不入日志。空 = 旧 CP 未下发过,启动回退本地 jwt_secret 配置。
// omitempty:空值不写入文件,旧格式身份文件字节不变。
WSTokenSecret string `json:"wsTokenSecret,omitempty"`
}
Identity 是 Worker 本地持久化的节点身份(FR-080,见 ADR-020 §3)。
首次经 enrollment token 注册成功后,CP 换发的 node_uuid/node_secret 写入数据根 etc/node-identity.json(0600)。Worker 重启时优先读该文件复用既有身份走重注册, 不重复消费一次性 enrollment token。文件含 node_secret,绝不回传日志。
func LoadIdentity ¶
LoadIdentity 从 etcDir 读取本地节点身份。文件不存在返回 (nil, nil)(首次安装的正常情形)。 文件存在但损坏(JSON 非法或缺关键字段)返回错误,由调用方决定回退策略。
Click to show internal directories.
Click to hide internal directories.