v0.1.0 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Feb 17, 2020 License: Apache-2.0 Imports: 26 Imported by: 7



Package k8s gathers abstractions on top of Kubernetes Objects



View Source
const FinalizerName = "steward.sap.com"

FinalizerName name to register finalizer


This section is empty.


This section is empty.


type ClientFactory

type ClientFactory interface {
	CoreV1() corev1.CoreV1Interface
	RbacV1beta1() rbacv1beta1.RbacV1beta1Interface
	StewardV1alpha1() stewardv1alpha1.StewardV1alpha1Interface
	StewardInformerFactory() stewardinformer.SharedInformerFactory
	TektonV1alpha1() tektonclientv1alpha1.TektonV1alpha1Interface
	TektonInformerFactory() tektoninformers.SharedInformerFactory

ClientFactory interface

func NewClientFactory

func NewClientFactory(config *rest.Config, resyncPeriod time.Duration) ClientFactory

NewClientFactory creates new client factory based on rest config

type NamespaceManager

type NamespaceManager interface {
	Create(name string, annotations map[string]string) (string, error)
	Delete(name string) error

NamespaceManager manages namespaces

func NewNamespaceManager

func NewNamespaceManager(factory ClientFactory, prefix string, suffixLength uint8) NamespaceManager

NewNamespaceManager creates a new NamespaceManager.

type PipelineRun

type PipelineRun interface {
	GetStatus() *api.PipelineStatus
	GetSpec() *api.PipelineSpec
	GetName() string
	GetKey() string
	GetRunNamespace() string
	GetNamespace() string
	GetPipelineRepoServerURL() (string, error)
	HasDeletionTimestamp() bool
	AddFinalizer() error
	DeleteFinalizerIfExists() error
	UpdateState(api.State) (*api.StateItem, error)
	UpdateResult(api.Result) error
	UpdateContainer(*corev1.ContainerState) error
	StoreErrorAsMessage(error, string) error
	UpdateRunNamespace(string) error
	UpdateMessage(string) error

PipelineRun is a wrapper for the K8s PipelineRun resource

func NewPipelineRun

func NewPipelineRun(apiObj *api.PipelineRun, factory ClientFactory) (PipelineRun, error)

NewPipelineRun creates a managed pipeline run object. If a factory is provided a new version of the pipelinerun is fetched. All changes are done on the fetched object. If no pipeline run can be found matching the apiObj, nil,nil is returned. An error is only returned if a Get for the pipelinerun returns an error other than a NotFound error. If you call with factory nil you can only use the Get* functions If you use functions changing the pipeline run without factroy set you will get an error. The provided PipelineRun object is never modified and copied as late as possible.

type PipelineRunByKeyFetcher

type PipelineRunByKeyFetcher interface {
	// ByKey fetches PipelineRun resource from Kubernetes
	// Return nil,nil if pipeline with key does not exist
	ByKey(key string) (*api.PipelineRun, error)

PipelineRunByKeyFetcher provides a function to fetch PipelineRuns by their key

type PipelineRunByNameFetcher

type PipelineRunByNameFetcher interface {
	// ByName fetches PipelineRun resource from Kubernetes by name and namespace
	// Return nil,nil if specified pipeline does not exist
	ByName(namespace, name string) (*api.PipelineRun, error)

PipelineRunByNameFetcher provides a function to fetch PipelineRuns by their name

type PipelineRunFetcher

type PipelineRunFetcher interface {

PipelineRunFetcher combines PipelineRunByKeyFetcher and PipelineRunByNameFetcher

func NewClientBasedPipelineRunFetcher

func NewClientBasedPipelineRunFetcher(client stewardv1alpha1.StewardV1alpha1Interface) PipelineRunFetcher

NewClientBasedPipelineRunFetcher returns a PipelineRunFetcher that retrieves the objects from the given API client.

func NewListerBasedPipelineRunFetcher

func NewListerBasedPipelineRunFetcher(lister stewardLister.PipelineRunLister) PipelineRunFetcher

NewListerBasedPipelineRunFetcher returns a PipelineRunFetcher that retrieves the objects from the given `PipelineRunLister`. The returned fetcher provides the original pointers from the lister. Typically the lister is backed by a shared cache which must not be modified. Consumers should not mutate the original objects, but create deep copies when modification is required.

type RoleName

type RoleName string

RoleName to be attached

type ServiceAccountManager

type ServiceAccountManager interface {
	CreateServiceAccount(name string, pipelineCloneSecretName string, imagePullSecretNames []string) (*ServiceAccountWrap, error)
	GetServiceAccount(name string) (*ServiceAccountWrap, error)

ServiceAccountManager manages serviceAccounts

func NewServiceAccountManager

func NewServiceAccountManager(factory ClientFactory, namespace string) ServiceAccountManager

NewServiceAccountManager creates ServiceAccountManager

type ServiceAccountWrap

type ServiceAccountWrap struct {
	// contains filtered or unexported fields

ServiceAccountWrap wraps a Service Account and enriches it with futher things

func (*ServiceAccountWrap) AddRoleBinding

func (a *ServiceAccountWrap) AddRoleBinding(clusterRole RoleName, targetNamespace string) (*v1beta1.RoleBinding, error)

AddRoleBinding creates a role binding in the targetNamespace connecting the service account with the specified cluster role

func (*ServiceAccountWrap) AttachImagePullSecrets

func (a *ServiceAccountWrap) AttachImagePullSecrets(secretNames ...string)

AttachImagePullSecrets attaches a number of secrets to the service account. It does NOT create or update the resource via the underlying client.

func (*ServiceAccountWrap) AttachSecrets

func (a *ServiceAccountWrap) AttachSecrets(secretNames ...string)

AttachSecrets attaches a number of secrets to the service account. It does NOT create or update the resource via the underlying client.

func (*ServiceAccountWrap) GetServiceAccount

func (a *ServiceAccountWrap) GetServiceAccount() *v1.ServiceAccount

GetServiceAccount returns *v1.ServiceAccount

func (*ServiceAccountWrap) Update

func (a *ServiceAccountWrap) Update() error

Update performs an update of the service account resource object via the underlying client.

type TenantFetcher

type TenantFetcher interface {
	// ByKey fetches Tenant resource from Kubernetes.
	//     key    has to be "<namespace>/<name>"
	// Return nil,nil if tenant with key does not exist
	ByKey(key string) (*api.Tenant, error)

TenantFetcher has methods to fetch tenants from Kubernetes

func NewClientBasedTenantFetcher

func NewClientBasedTenantFetcher(factory ClientFactory) TenantFetcher

NewClientBasedTenantFetcher returns an operative implementation of TenantFetcher

func NewListerBasedTenantFetcher

func NewListerBasedTenantFetcher(lister stewardLister.TenantLister) TenantFetcher

NewListerBasedTenantFetcher creates a new lister based tenant fetcher

type TenantNamespace

type TenantNamespace interface {
	GetSecretProvider() secrets.SecretProvider
	TargetClientFactory() ClientFactory

TenantNamespace representing the client

func NewTenantNamespace

func NewTenantNamespace(factory ClientFactory, namespace string) TenantNamespace

NewTenantNamespace creates new TenantNamespace object


Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL