|
@@ -6,11 +6,14 @@ import (
|
|
|
"github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflow"
|
|
|
"github.com/argoproj/argo-workflows/v3/pkg/apiclient/workflowtemplate"
|
|
|
"github.com/pkg/errors"
|
|
|
+ log "github.com/sirupsen/logrus"
|
|
|
"k8s.io/client-go/tools/clientcmd"
|
|
|
"os"
|
|
|
"sync"
|
|
|
)
|
|
|
|
|
|
+var LogLevel string
|
|
|
+
|
|
|
var watchWorkflowTokenMap sync.Map
|
|
|
|
|
|
type Client struct {
|
|
@@ -20,8 +23,20 @@ type Client struct {
|
|
|
workflowService workflow.WorkflowServiceClient
|
|
|
}
|
|
|
|
|
|
-func NewClient(kubeConfigEnv string) (*Client, error) {
|
|
|
- err := os.Setenv("KUBECONFIG", kubeConfigEnv)
|
|
|
+func NewClient(kubeConfigEnv string, opts ...Option) (*Client, error) {
|
|
|
+ options := new(Options)
|
|
|
+ for _, opt := range opts {
|
|
|
+ opt(options)
|
|
|
+ }
|
|
|
+
|
|
|
+ level, err := log.ParseLevel(options.logLevel)
|
|
|
+ if err != nil {
|
|
|
+ level = log.ErrorLevel
|
|
|
+ }
|
|
|
+
|
|
|
+ log.SetLevel(level)
|
|
|
+
|
|
|
+ err = os.Setenv("KUBECONFIG", kubeConfigEnv)
|
|
|
if err != nil {
|
|
|
return nil, errors.New(err.Error())
|
|
|
}
|