in pkg/tools/kubectl_tool.go [80:100]
func runKubectlCommand(ctx context.Context, command, workDir, kubeconfig string) (*ExecResult, error) {
if strings.Contains(command, "kubectl edit") {
return &ExecResult{Error: "interactive mode not supported for kubectl, please use non-interactive commands"}, nil
}
if strings.Contains(command, "kubectl port-forward") {
return &ExecResult{Error: "port-forwarding is not allowed because assistant is running in an unattended mode, please try some other alternative"}, nil
}
cmd := exec.CommandContext(ctx, bashBin, "-c", command)
cmd.Env = os.Environ()
cmd.Dir = workDir
if kubeconfig != "" {
kubeconfig, err := expandShellVar(kubeconfig)
if err != nil {
return nil, err
}
cmd.Env = append(cmd.Env, "KUBECONFIG="+kubeconfig)
}
return executeCommand(cmd)
}