mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-12-24 11:51:13 +08:00
feat: discard syncthing log (#272)
This commit is contained in:
@@ -12,6 +12,9 @@ const (
|
||||
SyncthingGUIDir = "gui"
|
||||
|
||||
DefaultRemoteDir = "/kubevpn-data"
|
||||
|
||||
// EnvDisableSyncthingLog disable syncthing log, because it can not set output writer, only write os.Stdout or io.Discard
|
||||
EnvDisableSyncthingLog = "LOGGER_DISCARD"
|
||||
)
|
||||
|
||||
var LocalCert tls.Certificate
|
||||
|
||||
@@ -6,7 +6,6 @@ import (
|
||||
"fmt"
|
||||
"net"
|
||||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
"strconv"
|
||||
@@ -132,6 +131,10 @@ func (d *CloneOptions) SetContext(ctx context.Context) {
|
||||
* 4) modify podTempSpec inject kubevpn container
|
||||
*/
|
||||
func (d *CloneOptions) DoClone(ctx context.Context, kubeconfigJsonBytes []byte) error {
|
||||
var args []string
|
||||
if len(d.Headers) != 0 {
|
||||
args = append(args, "--headers", labels.Set(d.Headers).String())
|
||||
}
|
||||
for _, workload := range d.Workloads {
|
||||
log.Infof("clone workload %s", workload)
|
||||
object, err := util.GetUnstructuredObject(d.factory, d.Namespace, workload)
|
||||
@@ -281,17 +284,16 @@ func (d *CloneOptions) DoClone(ctx context.Context, kubeconfigJsonBytes []byte)
|
||||
Name: config.ContainerSidecarVPN,
|
||||
Image: config.Image,
|
||||
// https://stackoverflow.com/questions/32918849/what-process-signal-does-pod-receive-when-executing-kubectl-rolling-update
|
||||
Command: []string{
|
||||
Command: append([]string{
|
||||
"kubevpn",
|
||||
"proxy",
|
||||
workload,
|
||||
"--kubeconfig", "/tmp/.kube/" + config.KUBECONFIG,
|
||||
"--namespace", d.Namespace,
|
||||
"--headers", labels.Set(d.Headers).String(),
|
||||
"--image", config.Image,
|
||||
"--engine", string(d.Engine),
|
||||
"--foreground",
|
||||
},
|
||||
}, args...),
|
||||
Env: []v1.EnvVar{{
|
||||
Name: config.EnvStartSudoKubeVPNByKubeVPN,
|
||||
Value: "1",
|
||||
@@ -411,8 +413,6 @@ func (d *CloneOptions) DoClone(ctx context.Context, kubeconfigJsonBytes []byte)
|
||||
remoteAddr := net.JoinHostPort(list[0].Status.PodIP, strconv.Itoa(libconfig.DefaultTCPPort))
|
||||
localPort, _ := util.GetAvailableTCPPortOrDie()
|
||||
localAddr := net.JoinHostPort("127.0.0.1", strconv.Itoa(localPort))
|
||||
// disable synchting log, because it can not set output writer, only write std.Out or discard
|
||||
_ = os.Setenv("LOGGER_DISCARD", "1")
|
||||
err = syncthing.StartClient(d.ctx, d.LocalDir, localAddr, remoteAddr)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -10,6 +10,8 @@ import (
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
|
||||
"github.com/wencaiwulue/kubevpn/v2/pkg/config"
|
||||
)
|
||||
|
||||
func RunCmdWithElevated(exe string, args []string) error {
|
||||
@@ -25,7 +27,7 @@ func RunCmdWithElevated(exe string, args []string) error {
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Env = append(os.Environ(), envStartSudoKubeVPNByKubeVPN+"=1")
|
||||
cmd.Env = append(os.Environ(), envStartSudoKubeVPNByKubeVPN+"=1", config.EnvDisableSyncthingLog+"=1")
|
||||
err := cmd.Start()
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -52,7 +54,7 @@ func RunCmd(exe string, args []string) error {
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Env = append(os.Environ(), envStartSudoKubeVPNByKubeVPN+"=1")
|
||||
cmd.Env = append(os.Environ(), envStartSudoKubeVPNByKubeVPN+"=1", config.EnvDisableSyncthingLog+"=1")
|
||||
err := cmd.Start()
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -11,6 +11,8 @@ import (
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"golang.org/x/sys/windows"
|
||||
|
||||
"github.com/wencaiwulue/kubevpn/v2/pkg/config"
|
||||
)
|
||||
|
||||
// ref https://stackoverflow.com/questions/31558066/how-to-ask-for-administer-privileges-on-windows-with-go
|
||||
@@ -42,6 +44,7 @@ func RunCmdWithElevated(exe string, arg []string) error {
|
||||
//https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow
|
||||
var showCmd int32 = 0 //SW_NORMAL
|
||||
|
||||
os.Setenv(config.EnvDisableSyncthingLog, "1")
|
||||
err = windows.ShellExecute(0, verbPtr, exePtr, argPtr, cwdPtr, showCmd)
|
||||
if err != nil {
|
||||
logrus.Warn(err)
|
||||
|
||||
@@ -33,7 +33,7 @@ func RunWithElevated() {
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Env = append(os.Environ(), envStartSudoKubeVPNByKubeVPN+"=1")
|
||||
cmd.Env = append(os.Environ(), envStartSudoKubeVPNByKubeVPN+"=1", config.EnvDisableSyncthingLog+"=1")
|
||||
// while send single CTRL+C, command will quit immediately, but output will cut off and print util quit final
|
||||
// so, mute single CTRL+C, let inner command handle single only
|
||||
go func() {
|
||||
|
||||
@@ -11,6 +11,8 @@ import (
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"golang.org/x/sys/windows"
|
||||
|
||||
"github.com/wencaiwulue/kubevpn/v2/pkg/config"
|
||||
)
|
||||
|
||||
// ref https://stackoverflow.com/questions/31558066/how-to-ask-for-administer-privileges-on-windows-with-go
|
||||
@@ -27,6 +29,7 @@ func RunWithElevated() {
|
||||
|
||||
var showCmd int32 = 1 //SW_NORMAL
|
||||
|
||||
os.Setenv(config.EnvDisableSyncthingLog, "1")
|
||||
err := windows.ShellExecute(0, verbPtr, exePtr, argPtr, cwdPtr, showCmd)
|
||||
if err != nil {
|
||||
logrus.Warn(err)
|
||||
@@ -45,7 +48,8 @@ func RunWithElevatedInnerExec() error {
|
||||
join := strings.Join(append([]string{executable}, os.Args[1:]...), " ")
|
||||
// Powershell Start C:\Users\naison\Desktop\kubevpn-windows-amd64.exe -Verb Runas -Wait -WindowStyle Hidden
|
||||
c, _ := syscall.UTF16PtrFromString(fmt.Sprintf(`%s Start "%s" -Verb Runas`, path, join))
|
||||
err = windows.CreateProcess(nil, c, nil, nil, true, windows.INHERIT_PARENT_AFFINITY, nil, nil, &si, &pi)
|
||||
env, _ := syscall.UTF16PtrFromString(config.EnvDisableSyncthingLog + "=1")
|
||||
err = windows.CreateProcess(nil, c, nil, nil, true, windows.INHERIT_PARENT_AFFINITY, env, nil, &si, &pi)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user