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  }