diff --git a/internal/native/native.go b/internal/native/native.go index 2f7e096..fcd5176 100644 --- a/internal/native/native.go +++ b/internal/native/native.go @@ -83,55 +83,41 @@ func InstallNode(node state.Node, apiToken, apiHost, labels string) error { fmt.Printf("[%s] Configuring NGINX module...\n", node.Name) exec.Command("bash", filepath.Join(DeployTo, "pick-module.sh")).Run() - // 6. Register node — skip if this node was previously deployed - existingState, _ := state.Load() - alreadyRegistered := false - if existingState != nil { - for _, n := range existingState.Nodes { - if n.Name == node.Name { - alreadyRegistered = true - break - } - } + // 6. Register node + fmt.Printf("[%s] Registering node (this may take 30-60s)...\n", node.Name) + registerCmd := exec.Command(filepath.Join(DeployTo, "register-node"), + "job:register", + "-token", apiToken, + "-host", apiHost, + ) + registerCmd.Dir = DeployTo + devNull, _ := os.Open(os.DevNull) + if devNull != nil { + registerCmd.Stdin = devNull + defer devNull.Close() } - if alreadyRegistered { - fmt.Printf("[%s] Already registered, skipping.\n", node.Name) - } else { - fmt.Printf("[%s] Registering node (this may take 30-60s)...\n", node.Name) - registerCmd := exec.Command(filepath.Join(DeployTo, "register-node"), - "job:register", - "-token", apiToken, - "-host", apiHost, - ) - registerCmd.Dir = DeployTo - devNull, _ := os.Open(os.DevNull) - if devNull != nil { - registerCmd.Stdin = devNull - defer devNull.Close() - } - // Set environment from env.list - envData, _ := os.ReadFile(filepath.Join(DeployTo, "env.list")) - for _, line := range strings.Split(string(envData), "\n") { - line = strings.TrimSpace(line) - if line == "" || strings.HasPrefix(line, "#") { - continue - } - registerCmd.Env = append(registerCmd.Env, line) - } - registerCmd.Env = append(registerCmd.Env, os.Environ()...) - regLog, _ := os.Create(filepath.Join(DeployTo, "register.log")) - if regLog != nil { - registerCmd.Stdout = regLog - registerCmd.Stderr = regLog - } - regErr := registerCmd.Run() - if regLog != nil { - regLog.Close() - } - if regErr != nil { - data, _ := os.ReadFile(filepath.Join(DeployTo, "register.log")) - return fmt.Errorf("register: %w\n%s", regErr, string(data)) + // Set environment from env.list + envData, _ := os.ReadFile(filepath.Join(DeployTo, "env.list")) + for _, line := range strings.Split(string(envData), "\n") { + line = strings.TrimSpace(line) + if line == "" || strings.HasPrefix(line, "#") { + continue } + registerCmd.Env = append(registerCmd.Env, line) + } + registerCmd.Env = append(registerCmd.Env, os.Environ()...) + regLog, _ := os.Create(filepath.Join(DeployTo, "register.log")) + if regLog != nil { + registerCmd.Stdout = regLog + registerCmd.Stderr = regLog + } + regErr := registerCmd.Run() + if regLog != nil { + regLog.Close() + } + if regErr != nil { + data, _ := os.ReadFile(filepath.Join(DeployTo, "register.log")) + return fmt.Errorf("register: %w\n%s", regErr, string(data)) } // 8. Move /opt/wallarm → /opt/fw/{name}/wallarm