github.com/argoproj/argo-cd/v3@v3.2.1/util/kube/kubectl.go (about) 1 package kube 2 3 import ( 4 "os" 5 6 "github.com/go-logr/logr" 7 "k8s.io/client-go/rest" 8 "k8s.io/kubectl/pkg/util/openapi" 9 10 "github.com/argoproj/argo-cd/v3/util/log" 11 12 "github.com/argoproj/gitops-engine/pkg/diff" 13 "github.com/argoproj/gitops-engine/pkg/utils/kube" 14 "github.com/argoproj/gitops-engine/pkg/utils/tracing" 15 ) 16 17 var ( 18 tracer tracing.Tracer = &tracing.NopTracer{} 19 logger logr.Logger = log.NewLogrusLogger(log.NewWithCurrentConfig()) 20 ) 21 22 func init() { 23 if os.Getenv("ARGOCD_TRACING_ENABLED") == "1" { 24 tracer = tracing.NewLoggingTracer(logger) 25 } 26 } 27 28 func NewKubectl() kube.Kubectl { 29 return &kube.KubectlCmd{Tracer: tracer, Log: logger} 30 } 31 32 func ManageServerSideDiffDryRuns(config *rest.Config, openAPISchema openapi.Resources, onKubectlRun kube.OnKubectlRunFunc) (diff.KubeApplier, func(), error) { 33 return kube.ManageServerSideDiffDryRuns( 34 config, 35 openAPISchema, 36 tracer, 37 logger, 38 onKubectlRun, 39 ) 40 }