feat(cli): --host-key-fingerprint flag on node join (T02.3, REQ-058)

---ci---
project: orca
phase: 2
milestone: v0.8
status: execute
---/ci---
This commit is contained in:
Jon Chery
2026-08-04 11:37:01 +00:00
parent 00869c6f5b
commit 08481d35ce
+17 -12
View File
@@ -45,18 +45,19 @@ func nodeRegistry() (*engine.NodeRegistry, func() error, error) {
}
var (
joinName string
joinAddr string
joinCAFinger string
joinType string
joinHost string
joinSSHUser string
joinPassword string
joinSSHPort int
proxmoxUser string
proxmoxRole string
leaveID string
nodeWatch bool
joinName string
joinAddr string
joinCAFinger string
joinType string
joinHost string
joinSSHUser string
joinPassword string
joinSSHPort int
joinHostKeyFP string
proxmoxUser string
proxmoxRole string
leaveID string
nodeWatch bool
)
var nodeCmd = &cobra.Command{
@@ -76,6 +77,9 @@ Node types (via --type):
(deploys orca pubkey, creates orca user + PVE role +
sudoers allowlist; requires --host + --password)`,
RunE: func(cmd *cobra.Command, args []string) error {
if joinHostKeyFP != "" && joinType != "proxmox" {
return fmt.Errorf("--host-key-fingerprint requires --type proxmox today")
}
if joinType == "proxmox" {
return joinProxmox(cmd)
}
@@ -352,6 +356,7 @@ func init() {
nodeJoinCmd.Flags().IntVar(&joinSSHPort, "ssh-port", 22, "SSH port for proxmox bootstrap (default 22)")
nodeJoinCmd.Flags().StringVar(&proxmoxUser, "proxmox-user", "orca", "Linux system user to create on the proxmox host (config-overridable)")
nodeJoinCmd.Flags().StringVar(&proxmoxRole, "proxmox-role", "OrcaOperator", "PVE custom role to create (config-overridable)")
nodeJoinCmd.Flags().StringVar(&joinHostKeyFP, "host-key-fingerprint", "", "SSH host key SHA256:base64 fingerprint (pre-pin; supersedes TOFU for --type proxmox)")
nodeLeaveCmd.Flags().StringVar(&leaveID, "id", "", "node id")
nodeListCmd.Flags().BoolVar(&nodeWatch, "watch", false, "stream nodes until Ctrl-C (table refresh or --json per-event)")