github.com/olli-ai/jx/v2@v2.0.400-0.20210921045218-14731b4dd448/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/olli-ai/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/olli-ai/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  }