github.com/jenkins-x/jx/v2@v2.1.155/pkg/jxfactory/interface.go (about) 1 package jxfactory 2 3 import ( 4 "github.com/jenkins-x/jx-api/pkg/client/clientset/versioned" 5 "github.com/jenkins-x/jx/v2/pkg/kube" 6 "k8s.io/client-go/kubernetes" 7 "k8s.io/client-go/rest" 8 9 tektonclient "github.com/tektoncd/pipeline/pkg/client/clientset/versioned" 10 resourceclient "github.com/tektoncd/pipeline/pkg/client/resource/clientset/versioned" 11 12 // this is so that we load the auth plugins so we can connect to, say, GCP 13 _ "k8s.io/client-go/plugin/pkg/client/auth" 14 ) 15 16 // Factory is the interface defined for Kubernetes, Jenkins X, and Tekton REST APIs 17 //go:generate pegomock generate github.com/jenkins-x/jx/v2/pkg/jxfactory Factory -o mocks/factory.go 18 type Factory interface { 19 // WithBearerToken creates a factory from a k8s bearer token 20 WithBearerToken(token string) Factory 21 22 // ImpersonateUser creates a factory with an impersonated users 23 ImpersonateUser(user string) Factory 24 25 // CreateKubeClient creates a new Kubernetes client 26 CreateKubeClient() (kubernetes.Interface, string, error) 27 28 // CreateKubeConfig creates the kubernetes configuration 29 CreateKubeConfig() (*rest.Config, error) 30 31 // CreateJXClient creates a new Kubernetes client for Jenkins X CRDs 32 CreateJXClient() (versioned.Interface, string, error) 33 34 // CreateTektonClient create a new Kubernetes client for Tekton resources 35 CreateTektonClient() (tektonclient.Interface, string, error) 36 37 // CreateTektonPipelineResourceClient creates a new Kubernetes client for Tekton PipelineResources 38 CreateTektonPipelineResourceClient() (resourceclient.Interface, string, error) 39 40 // KubeConfig returns a Kuber instance to interact with the kube configuration. 41 KubeConfig() kube.Kuber 42 }