Temporary CLI commands for testing edge routing RPCs directly (before the master exists): mcp edge list -n svc mcp edge setup <hostname> -n svc --backend-hostname ... --backend-port ... mcp edge remove <hostname> -n svc Verified end-to-end on svc: setup provisions route in mc-proxy and persists in agent registry, remove cleans up both, list shows routes with cert metadata. Finding: MCNS registers LAN IPs for .svc.mcp. hostnames, not Tailnet IPs. The v2 master needs to register Tailnet IPs in deploy flow step 3. These commands will be removed or replaced when the master is built (Phase 3). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
var (
|
|
version = "dev"
|
|
cfgPath string
|
|
)
|
|
|
|
func main() {
|
|
root := &cobra.Command{
|
|
Use: "mcp",
|
|
Short: "Metacircular Control Plane CLI",
|
|
}
|
|
defaultCfg := ""
|
|
if home, err := os.UserHomeDir(); err == nil {
|
|
defaultCfg = filepath.Join(home, ".config", "mcp", "mcp.toml")
|
|
}
|
|
root.PersistentFlags().StringVarP(&cfgPath, "config", "c", defaultCfg, "config file path")
|
|
|
|
root.AddCommand(&cobra.Command{
|
|
Use: "version",
|
|
Short: "Print version",
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
fmt.Println(version)
|
|
},
|
|
})
|
|
|
|
root.AddCommand(loginCmd())
|
|
root.AddCommand(buildCmd())
|
|
root.AddCommand(deployCmd())
|
|
root.AddCommand(undeployCmd())
|
|
root.AddCommand(stopCmd())
|
|
root.AddCommand(startCmd())
|
|
root.AddCommand(restartCmd())
|
|
root.AddCommand(listCmd())
|
|
root.AddCommand(psCmd())
|
|
root.AddCommand(statusCmd())
|
|
root.AddCommand(syncCmd())
|
|
root.AddCommand(adoptCmd())
|
|
root.AddCommand(serviceCmd())
|
|
root.AddCommand(pushCmd())
|
|
root.AddCommand(pullCmd())
|
|
root.AddCommand(nodeCmd())
|
|
root.AddCommand(purgeCmd())
|
|
root.AddCommand(logsCmd())
|
|
root.AddCommand(editCmd())
|
|
root.AddCommand(dnsCmd())
|
|
root.AddCommand(routeCmd())
|
|
root.AddCommand(edgeCmd())
|
|
|
|
if err := root.Execute(); err != nil {
|
|
log.Fatal(err)
|
|
os.Exit(1)
|
|
}
|
|
}
|