diff --git a/components/kubeadm/v20260301/join.go b/components/kubeadm/v20260301/join.go index 56b22ab..962a560 100644 --- a/components/kubeadm/v20260301/join.go +++ b/components/kubeadm/v20260301/join.go @@ -267,8 +267,8 @@ func (n *nodeJoinAction) runJoin( return status.Errorf(codes.Internal, "resolve kubeadm binary: %s", err) } - if err := utilexec.New().CommandContext(ctx, kubeadmCommand, "join", "--config", joinConfig, "-v", "5").Run(); err != nil { - return status.Errorf(codes.Internal, "kubeadm join: %s", err) + if output, err := utilexec.New().CommandContext(ctx, kubeadmCommand, "join", "--config", joinConfig, "-v", "5").CombinedOutput(); err != nil { + return status.Errorf(codes.Internal, "kubeadm join: %s\n%s", err, string(output)) } return nil diff --git a/components/kubeadm/v20260301/reset.go b/components/kubeadm/v20260301/reset.go index a4926fa..c518158 100644 --- a/components/kubeadm/v20260301/reset.go +++ b/components/kubeadm/v20260301/reset.go @@ -75,10 +75,10 @@ func (n *nodeResetAction) runReset(ctx context.Context) error { // --force skips the interactive confirmation prompt and proceeds even // when the node is unreachable by the control plane. // -v 5 provides verbose output for debugging. - if err := utilexec.New().CommandContext( + if output, err := utilexec.New().CommandContext( ctx, kubeadmBinary, "reset", "--force", "-v", "5", - ).Run(); err != nil { - return status.Errorf(codes.Internal, "kubeadm reset: %s", err) + ).CombinedOutput(); err != nil { + return status.Errorf(codes.Internal, "kubeadm reset: %s\n%s", err, string(output)) } return nil