repositories

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Jan 23, 2024 License: Apache-2.0 Imports: 43 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StartedState DesiredState = "STARTED"
	StoppedState DesiredState = "STOPPED"

	Kind               string = "CFApp"
	APIVersion         string = "korifi.cloudfoundry.org/v1alpha1"
	CFAppGUIDLabel     string = "korifi.cloudfoundry.org/app-guid"
	AppResourceType    string = "App"
	AppEnvResourceType string = "App Env"
)
View Source
const (
	BuildStateStaging = "STAGING"
	BuildStateStaged  = "STAGED"
	BuildStateFailed  = "FAILED"

	StagingConditionType   = "Staging"
	SucceededConditionType = "Succeeded"

	BuildResourceType = "Build"
)
View Source
const (
	PodResourceType        = "Pod"
	PodMetricsResourceType = "Pod Metrics"
)
View Source
const (
	OrgPrefix       = "cf-org-"
	OrgResourceType = "Org"
)
View Source
const (
	PackageStateAwaitingUpload = "AWAITING_UPLOAD"
	PackageStateReady          = "READY"

	PackageResourceType = "Package"
)
View Source
const (
	RoleGuidLabel = "cloudfoundry.org/role-guid"

	RoleResourceType = "Role"
)
View Source
const (
	RouteResourceType = "Route"
	RoutePrefix       = "cf-route-"
)
View Source
const (
	LabelServiceBindingProvisionedService = "servicebinding.io/provisioned-service"
	ServiceBindingResourceType            = "Service Binding"
	ServiceBindingTypeApp                 = "app"
)
View Source
const (
	CFServiceInstanceGUIDLabel  = "korifi.cloudfoundry.org/service-instance-guid"
	ServiceInstanceResourceType = "Service Instance"
)
View Source
const (
	StatusConditionReady                 = "Ready"
	VCAPServicesSecretAvailableCondition = "VCAPServicesSecretAvailable"
)
View Source
const (
	SpacePrefix       = "cf-space-"
	SpaceResourceType = "Space"
)
View Source
const (
	TaskResourceType string = "Task"

	TaskStatePending   = "PENDING"
	TaskStateRunning   = "RUNNING"
	TaskStateSucceeded = "SUCCEEDED"
	TaskStateFailed    = "FAILED"
	TaskStateCanceling = "CANCELING"
)
View Source
const BuildWorkloadLabelKey = "korifi.cloudfoundry.org/build-workload-name"
View Source
const (
	BuildpackResourceType = "Buildpack"
)
View Source
const DeploymentResourceType = "Deployment"
View Source
const (
	DomainResourceType = "Domain"
)
View Source
const (
	DropletResourceType = "Droplet"
)
View Source
const (
	ProcessResourceType = "Process"
)
View Source
const (
	RunnerInfoResourceType = "RunnerInfo"
)
View Source
const SourceImageResourceType = "SourceImage"

Variables

View Source
var (
	CFAppsGVR = schema.GroupVersionResource{
		Group:    "korifi.cloudfoundry.org",
		Version:  "v1alpha1",
		Resource: "cfapps",
	}

	CFBuildsGVR = schema.GroupVersionResource{
		Group:    "korifi.cloudfoundry.org",
		Version:  "v1alpha1",
		Resource: "cfbuilds",
	}

	CFDomainsGVR = schema.GroupVersionResource{
		Group:    "korifi.cloudfoundry.org",
		Version:  "v1alpha1",
		Resource: "cfdomains",
	}

	CFDropletsGVR = schema.GroupVersionResource{
		Group:    "korifi.cloudfoundry.org",
		Version:  "v1alpha1",
		Resource: "cfbuilds",
	}

	CFPackagesGVR = schema.GroupVersionResource{
		Group:    "korifi.cloudfoundry.org",
		Version:  "v1alpha1",
		Resource: "cfpackages",
	}

	CFProcessesGVR = schema.GroupVersionResource{
		Group:    "korifi.cloudfoundry.org",
		Version:  "v1alpha1",
		Resource: "cfprocesses",
	}

	CFRoutesGVR = schema.GroupVersionResource{
		Group:    "korifi.cloudfoundry.org",
		Version:  "v1alpha1",
		Resource: "cfroutes",
	}

	CFServiceBindingsGVR = schema.GroupVersionResource{
		Group:    "korifi.cloudfoundry.org",
		Version:  "v1alpha1",
		Resource: "cfservicebindings",
	}

	CFServiceInstancesGVR = schema.GroupVersionResource{
		Group:    "korifi.cloudfoundry.org",
		Version:  "v1alpha1",
		Resource: "cfserviceinstances",
	}

	CFSpacesGVR = schema.GroupVersionResource{
		Group:    "korifi.cloudfoundry.org",
		Version:  "v1alpha1",
		Resource: "cfspaces",
	}

	CFTasksGVR = schema.GroupVersionResource{
		Group:    "korifi.cloudfoundry.org",
		Version:  "v1alpha1",
		Resource: "cftasks",
	}

	ResourceMap = map[string]schema.GroupVersionResource{
		AppResourceType:             CFAppsGVR,
		BuildResourceType:           CFBuildsGVR,
		DropletResourceType:         CFDropletsGVR,
		DomainResourceType:          CFDomainsGVR,
		PackageResourceType:         CFPackagesGVR,
		ProcessResourceType:         CFProcessesGVR,
		RouteResourceType:           CFRoutesGVR,
		ServiceBindingResourceType:  CFServiceBindingsGVR,
		ServiceInstanceResourceType: CFServiceInstancesGVR,
		SpaceResourceType:           CFSpacesGVR,
		TaskResourceType:            CFTasksGVR,
	}
)

Functions

func AlwaysTrue added in v0.8.0

func AlwaysTrue[T any](_ T) bool

func Filter added in v0.8.0

func Filter[T any](resources []T, predicate ...func(T) bool) []T

func GenerateEnvSecretName

func GenerateEnvSecretName(appGUID string) string

func SetPredicate added in v0.8.0

func SetPredicate[T comparable, S any](elements []T, mapFn func(S) T) func(S) bool

Types

type AddDestinationsToRouteMessage

type AddDestinationsToRouteMessage struct {
	RouteGUID            string
	SpaceGUID            string
	ExistingDestinations []DestinationRecord
	NewDestinations      []DestinationMessage
}

type AppEnvRecord added in v0.2.0

type AppEnvRecord struct {
	AppGUID              string
	SpaceGUID            string
	EnvironmentVariables map[string]string
	SystemEnv            map[string]interface{}
	AppEnv               map[string]interface{}
}

type AppEnvVarsRecord

type AppEnvVarsRecord struct {
	Name                 string
	AppGUID              string
	SpaceGUID            string
	EnvironmentVariables map[string]string
}

type AppRecord

type AppRecord struct {
	Name        string
	GUID        string
	EtcdUID     types.UID
	Revision    string
	SpaceGUID   string
	DropletGUID string
	Labels      map[string]string
	Annotations map[string]string
	State       DesiredState
	Lifecycle   Lifecycle
	CreatedAt   time.Time
	UpdatedAt   *time.Time
	DeletedAt   *time.Time
	IsStaged    bool
	// contains filtered or unexported fields
}

type AppRepo

type AppRepo struct {
	// contains filtered or unexported fields
}

func NewAppRepo

func NewAppRepo(
	namespaceRetriever NamespaceRetriever,
	userClientFactory authorization.UserK8sClientFactory,
	authPerms *authorization.NamespacePermissions,
	appConditionAwaiter ConditionAwaiter[*korifiv1alpha1.CFApp],
) *AppRepo

func (*AppRepo) CreateApp

func (f *AppRepo) CreateApp(ctx context.Context, authInfo authorization.Info, appCreateMessage CreateAppMessage) (AppRecord, error)

func (*AppRepo) CreateOrPatchAppEnvVars

func (f *AppRepo) CreateOrPatchAppEnvVars(ctx context.Context, authInfo authorization.Info, envVariables CreateOrPatchAppEnvVarsMessage) (AppEnvVarsRecord, error)

func (*AppRepo) DeleteApp

func (f *AppRepo) DeleteApp(ctx context.Context, authInfo authorization.Info, message DeleteAppMessage) error

func (*AppRepo) GetApp

func (f *AppRepo) GetApp(ctx context.Context, authInfo authorization.Info, appGUID string) (AppRecord, error)

func (*AppRepo) GetAppByNameAndSpace

func (f *AppRepo) GetAppByNameAndSpace(ctx context.Context, authInfo authorization.Info, appName string, spaceGUID string) (AppRecord, error)

func (*AppRepo) GetAppEnv

func (f *AppRepo) GetAppEnv(ctx context.Context, authInfo authorization.Info, appGUID string) (AppEnvRecord, error)

func (*AppRepo) GetDeletedAt added in v0.8.0

func (f *AppRepo) GetDeletedAt(ctx context.Context, authInfo authorization.Info, appGUID string) (*time.Time, error)

func (*AppRepo) ListApps

func (f *AppRepo) ListApps(ctx context.Context, authInfo authorization.Info, message ListAppsMessage) ([]AppRecord, error)

func (*AppRepo) PatchApp added in v0.4.0

func (f *AppRepo) PatchApp(ctx context.Context, authInfo authorization.Info, appPatchMessage PatchAppMessage) (AppRecord, error)

func (*AppRepo) PatchAppEnvVars

func (f *AppRepo) PatchAppEnvVars(ctx context.Context, authInfo authorization.Info, message PatchAppEnvVarsMessage) (AppEnvVarsRecord, error)

func (*AppRepo) SetAppDesiredState

func (f *AppRepo) SetAppDesiredState(ctx context.Context, authInfo authorization.Info, message SetAppDesiredStateMessage) (AppRecord, error)

func (*AppRepo) SetCurrentDroplet

func (f *AppRepo) SetCurrentDroplet(ctx context.Context, authInfo authorization.Info, message SetCurrentDropletMessage) (CurrentDropletRecord, error)

type AuthorizedInChecker

type AuthorizedInChecker interface {
	AuthorizedIn(ctx context.Context, identity authorization.Identity, namespace string) (bool, error)
}

type BuildLogsClient added in v0.2.0

type BuildLogsClient struct {
	// contains filtered or unexported fields
}

func NewBuildLogsClient added in v0.2.0

func NewBuildLogsClient(k8sClient k8sclient.Interface) *BuildLogsClient

func (*BuildLogsClient) GetImageLogs added in v0.2.0

func (c *BuildLogsClient) GetImageLogs(ctx context.Context, writer io.Writer, buildGUID, namespace string) error

type BuildRecord

type BuildRecord struct {
	GUID            string
	State           string
	CreatedAt       time.Time
	UpdatedAt       *time.Time
	StagingErrorMsg string
	StagingMemoryMB int
	StagingDiskMB   int
	Lifecycle       Lifecycle
	PackageGUID     string
	DropletGUID     string
	AppGUID         string
	Labels          map[string]string
	Annotations     map[string]string
	ImageRef        string
}

type BuildRepo

type BuildRepo struct {
	// contains filtered or unexported fields
}

func NewBuildRepo

func NewBuildRepo(
	namespaceRetriever NamespaceRetriever,
	userClientFactory authorization.UserK8sClientFactory,
) *BuildRepo

func (*BuildRepo) CreateBuild

func (b *BuildRepo) CreateBuild(ctx context.Context, authInfo authorization.Info, message CreateBuildMessage) (BuildRecord, error)

func (*BuildRepo) GetBuild

func (b *BuildRepo) GetBuild(ctx context.Context, authInfo authorization.Info, buildGUID string) (BuildRecord, error)

func (*BuildRepo) GetBuildLogs

func (b *BuildRepo) GetBuildLogs(ctx context.Context, authInfo authorization.Info, spaceGUID string, buildGUID string) ([]LogRecord, error)

func (*BuildRepo) GetLatestBuildByAppGUID

func (b *BuildRepo) GetLatestBuildByAppGUID(ctx context.Context, authInfo authorization.Info, spaceGUID string, appGUID string) (BuildRecord, error)

type BuildpackRecord

type BuildpackRecord struct {
	Name      string
	Position  int
	Stack     string
	Version   string
	CreatedAt time.Time
	UpdatedAt *time.Time
}

type BuildpackRepository

type BuildpackRepository struct {
	// contains filtered or unexported fields
}

func NewBuildpackRepository

func NewBuildpackRepository(builderName string, userClientFactory authorization.UserK8sClientFactory, rootNamespace string) *BuildpackRepository

func (*BuildpackRepository) ListBuildpacks added in v0.2.0

func (r *BuildpackRepository) ListBuildpacks(ctx context.Context, authInfo authorization.Info) ([]BuildpackRecord, error)

type ConditionAwaiter added in v0.2.0

type ConditionAwaiter[T runtime.Object] interface {
	AwaitCondition(ctx context.Context, userClient client.WithWatch, object client.Object, conditionType string) (T, error)
}

type CreateAppMessage

type CreateAppMessage struct {
	Name                 string
	SpaceGUID            string
	State                DesiredState
	Lifecycle            Lifecycle
	EnvironmentVariables map[string]string
	Metadata
}

type CreateBuildMessage

type CreateBuildMessage struct {
	AppGUID         string
	PackageGUID     string
	SpaceGUID       string
	StagingMemoryMB int
	StagingDiskMB   int
	Lifecycle       Lifecycle
	Labels          map[string]string
	Annotations     map[string]string
}

type CreateDeploymentMessage added in v0.8.0

type CreateDeploymentMessage struct {
	AppGUID     string
	DropletGUID string
}

type CreateDomainMessage added in v0.5.0

type CreateDomainMessage struct {
	Name     string
	Metadata Metadata
}

type CreateOrPatchAppEnvVarsMessage

type CreateOrPatchAppEnvVarsMessage struct {
	AppGUID              string
	AppEtcdUID           types.UID
	SpaceGUID            string
	EnvironmentVariables map[string]string
}

type CreateOrgMessage

type CreateOrgMessage struct {
	Name        string
	Suspended   bool
	Labels      map[string]string
	Annotations map[string]string
}

type CreatePackageMessage

type CreatePackageMessage struct {
	Type      string
	AppGUID   string
	SpaceGUID string
	Metadata  Metadata
	Data      *PackageData
}

type CreateProcessMessage

type CreateProcessMessage struct {
	AppGUID          string
	SpaceGUID        string
	Type             string
	Command          string
	DiskQuotaMB      int64
	HealthCheck      HealthCheck
	DesiredInstances *int
	MemoryMB         int64
}

type CreateRoleMessage

type CreateRoleMessage struct {
	GUID                    string
	Type                    string
	Space                   string
	Org                     string
	User                    string
	Kind                    string
	ServiceAccountNamespace string
}

type CreateRouteMessage

type CreateRouteMessage struct {
	Host            string
	Path            string
	SpaceGUID       string
	DomainGUID      string
	DomainName      string
	DomainNamespace string
	Labels          map[string]string
	Annotations     map[string]string
}

type CreateServiceBindingMessage

type CreateServiceBindingMessage struct {
	Name                *string
	ServiceInstanceGUID string
	AppGUID             string
	SpaceGUID           string
}

type CreateServiceInstanceMessage

type CreateServiceInstanceMessage struct {
	Name        string
	SpaceGUID   string
	Credentials map[string]string
	Type        string
	Tags        []string
	Labels      map[string]string
	Annotations map[string]string
}

type CreateSpaceMessage

type CreateSpaceMessage struct {
	Name             string
	OrganizationGUID string
}

type CreateTaskMessage added in v0.2.0

type CreateTaskMessage struct {
	Command   string
	SpaceGUID string
	AppGUID   string
	Metadata
}

type CurrentDropletRecord

type CurrentDropletRecord struct {
	AppGUID     string
	DropletGUID string
}

type DeleteAppMessage

type DeleteAppMessage struct {
	AppGUID   string
	SpaceGUID string
}

type DeleteOrgMessage

type DeleteOrgMessage struct {
	GUID string
}

type DeleteRoleMessage added in v0.7.0

type DeleteRoleMessage struct {
	GUID  string
	Space string
	Org   string
}

type DeleteRouteMessage

type DeleteRouteMessage struct {
	GUID      string
	SpaceGUID string
}

type DeleteServiceBindingMessage

type DeleteServiceBindingMessage struct {
	GUID string
}

type DeleteServiceInstanceMessage

type DeleteServiceInstanceMessage struct {
	GUID      string
	SpaceGUID string
}

type DeleteSpaceMessage

type DeleteSpaceMessage struct {
	GUID             string
	OrganizationGUID string
}

type DeploymentRecord added in v0.8.0

type DeploymentRecord struct {
	GUID        string
	CreatedAt   time.Time
	UpdatedAt   *time.Time
	DropletGUID string
	Status      DeploymentStatus
}

type DeploymentRepo added in v0.8.0

type DeploymentRepo struct {
	// contains filtered or unexported fields
}

func NewDeploymentRepo added in v0.8.0

func NewDeploymentRepo(
	userClientFactory authorization.UserK8sClientFactory,
	namespaceRetriever NamespaceRetriever,
) *DeploymentRepo

func (*DeploymentRepo) CreateDeployment added in v0.8.0

func (r *DeploymentRepo) CreateDeployment(ctx context.Context, authInfo authorization.Info, message CreateDeploymentMessage) (DeploymentRecord, error)

func (*DeploymentRepo) GetDeployment added in v0.8.0

func (r *DeploymentRepo) GetDeployment(ctx context.Context, authInfo authorization.Info, deploymentGUID string) (DeploymentRecord, error)

type DeploymentStatus added in v0.8.0

type DeploymentStatus struct {
	Value  DeploymentStatusValue
	Reason DeploymentStatusReason
}

type DeploymentStatusReason added in v0.8.0

type DeploymentStatusReason string
const (
	DeploymentStatusReasonDeploying DeploymentStatusReason = "DEPLOYING"
	DeploymentStatusReasonDeployed  DeploymentStatusReason = "DEPLOYED"
)

type DeploymentStatusValue added in v0.8.0

type DeploymentStatusValue string
const (
	DeploymentStatusValueActive    DeploymentStatusValue = "ACTIVE"
	DeploymentStatusValueFinalized DeploymentStatusValue = "FINALIZED"
)

type DesiredState

type DesiredState string

type DestinationMessage

type DestinationMessage struct {
	AppGUID     string
	ProcessType string
	Port        *int
	Protocol    *string
}

type DestinationRecord

type DestinationRecord struct {
	GUID        string
	AppGUID     string
	ProcessType string
	Port        *int
	Protocol    *string
}

type DomainRecord

type DomainRecord struct {
	Name        string
	GUID        string
	Labels      map[string]string
	Annotations map[string]string
	Namespace   string
	CreatedAt   time.Time
	UpdatedAt   *time.Time
	DeletedAt   *time.Time
}

type DomainRepo

type DomainRepo struct {
	// contains filtered or unexported fields
}

func NewDomainRepo

func NewDomainRepo(
	userClientFactory authorization.UserK8sClientFactory,
	namespaceRetriever NamespaceRetriever,
	rootNamespace string,
) *DomainRepo

func (*DomainRepo) CreateDomain added in v0.5.0

func (r *DomainRepo) CreateDomain(ctx context.Context, authInfo authorization.Info, message CreateDomainMessage) (DomainRecord, error)

func (*DomainRepo) DeleteDomain added in v0.5.0

func (r *DomainRepo) DeleteDomain(ctx context.Context, authInfo authorization.Info, domainGUID string) error

func (*DomainRepo) GetDeletedAt added in v0.8.0

func (r *DomainRepo) GetDeletedAt(ctx context.Context, authInfo authorization.Info, domainGUID string) (*time.Time, error)

func (*DomainRepo) GetDomain

func (r *DomainRepo) GetDomain(ctx context.Context, authInfo authorization.Info, domainGUID string) (DomainRecord, error)

func (*DomainRepo) GetDomainByName

func (r *DomainRepo) GetDomainByName(ctx context.Context, authInfo authorization.Info, domainName string) (DomainRecord, error)

func (*DomainRepo) ListDomains

func (r *DomainRepo) ListDomains(ctx context.Context, authInfo authorization.Info, message ListDomainsMessage) ([]DomainRecord, error)

func (*DomainRepo) UpdateDomain added in v0.5.0

func (r *DomainRepo) UpdateDomain(ctx context.Context, authInfo authorization.Info, message UpdateDomainMessage) (DomainRecord, error)

type DropletRecord

type DropletRecord struct {
	GUID            string
	State           string
	CreatedAt       time.Time
	UpdatedAt       *time.Time
	DropletErrorMsg string
	Lifecycle       Lifecycle
	Stack           string
	ProcessTypes    map[string]string
	AppGUID         string
	PackageGUID     string
	Labels          map[string]string
	Annotations     map[string]string
	Image           string
	Ports           []int32
}

type DropletRepo

type DropletRepo struct {
	// contains filtered or unexported fields
}

func NewDropletRepo

func NewDropletRepo(
	userClientFactory authorization.UserK8sClientFactory,
	namespaceRetriever NamespaceRetriever,
	namespacePermissions *authorization.NamespacePermissions,
) *DropletRepo

func (*DropletRepo) GetDroplet

func (r *DropletRepo) GetDroplet(ctx context.Context, authInfo authorization.Info, dropletGUID string) (DropletRecord, error)

func (*DropletRepo) ListDroplets

func (r *DropletRepo) ListDroplets(ctx context.Context, authInfo authorization.Info, message ListDropletsMessage) ([]DropletRecord, error)

func (*DropletRepo) UpdateDroplet added in v0.7.0

func (r *DropletRepo) UpdateDroplet(ctx context.Context, authInfo authorization.Info, message UpdateDropletMessage) (DropletRecord, error)

type HealthCheck

type HealthCheck struct {
	Type string
	Data HealthCheckData
}

type HealthCheckData

type HealthCheckData struct {
	HTTPEndpoint             string
	InvocationTimeoutSeconds int64
	TimeoutSeconds           int64
}

type ImagePusher

type ImagePusher interface {
	Push(ctx context.Context, creds image.Creds, repoRef string, zipReader io.Reader, tags ...string) (string, error)
}

type ImageRepository

type ImageRepository struct {
	// contains filtered or unexported fields
}

func NewImageRepository

func NewImageRepository(
	privilegedK8sClient k8sclient.Interface,
	userClientFactory authorization.UserK8sClientFactory,
	pusher ImagePusher,
	pushSecretNames []string,
	pushSecretNamespace string,
) *ImageRepository

func (*ImageRepository) UploadSourceImage

func (r *ImageRepository) UploadSourceImage(ctx context.Context, authInfo authorization.Info, imageRef string, srcReader io.Reader, spaceGUID string, tags ...string) (string, error)

type Lifecycle

type Lifecycle struct {
	Type string
	Data LifecycleData
}

type LifecycleData

type LifecycleData struct {
	Buildpacks []string
	Stack      string
}

type LifecycleDataPatch added in v0.8.0

type LifecycleDataPatch struct {
	Buildpacks *[]string
	Stack      string
}

type LifecyclePatch added in v0.8.0

type LifecyclePatch struct {
	Type *string
	Data *LifecycleDataPatch
}

type ListAppsMessage

type ListAppsMessage struct {
	Names         []string
	Guids         []string
	SpaceGuids    []string
	LabelSelector string
}

type ListDomainsMessage

type ListDomainsMessage struct {
	Names []string
}

type ListDropletsMessage

type ListDropletsMessage struct {
	PackageGUIDs []string
}

type ListOrgsMessage

type ListOrgsMessage struct {
	Names []string
	GUIDs []string
}

type ListPackagesMessage

type ListPackagesMessage struct {
	AppGUIDs []string
	States   []string
}

type ListProcessesMessage

type ListProcessesMessage struct {
	AppGUIDs  []string
	SpaceGUID string
}

type ListRoutesMessage

type ListRoutesMessage struct {
	AppGUIDs    []string
	SpaceGUIDs  []string
	DomainGUIDs []string
	Hosts       []string
	Paths       []string
}

type ListServiceBindingsMessage

type ListServiceBindingsMessage struct {
	AppGUIDs             []string
	ServiceInstanceGUIDs []string
	LabelSelector        string
}

type ListServiceInstanceMessage

type ListServiceInstanceMessage struct {
	Names         []string
	SpaceGUIDs    []string
	GUIDs         []string
	LabelSelector string
}

type ListSpacesMessage

type ListSpacesMessage struct {
	Names             []string
	GUIDs             []string
	OrganizationGUIDs []string
}

type ListTaskMessage added in v0.2.0

type ListTaskMessage struct {
	AppGUIDs    []string
	SequenceIDs []int64
}

type LogRecord

type LogRecord struct {
	Message   string
	Timestamp int64
	Header    string
	Tags      map[string]string
}

type Metadata added in v0.5.0

type Metadata struct {
	Annotations map[string]string
	Labels      map[string]string
}

type MetadataPatch added in v0.3.0

type MetadataPatch struct {
	Annotations map[string]*string
	Labels      map[string]*string
}

func (*MetadataPatch) Apply added in v0.5.0

func (p *MetadataPatch) Apply(obj client.Object)

type MetricsRepo added in v0.6.0

type MetricsRepo struct {
	// contains filtered or unexported fields
}

func NewMetricsRepo added in v0.6.0

func NewMetricsRepo(userClientFactory authorization.UserK8sClientFactory) *MetricsRepo

func (*MetricsRepo) GetMetrics added in v0.6.0

func (r *MetricsRepo) GetMetrics(ctx context.Context, authInfo authorization.Info, namespace string, podSelector client.MatchingLabels) ([]PodMetrics, error)

type NamespaceGetter

type NamespaceGetter interface {
	GetNamespaceForServiceInstance(ctx context.Context, guid string) (string, error)
}

type NamespaceRetriever

type NamespaceRetriever struct {
	// contains filtered or unexported fields
}

func NewNamespaceRetriever added in v0.3.0

func NewNamespaceRetriever(client dynamic.Interface) NamespaceRetriever

func (NamespaceRetriever) NamespaceFor

func (nr NamespaceRetriever) NamespaceFor(ctx context.Context, resourceGUID, resourceType string) (string, error)

type OrgRecord

type OrgRecord struct {
	Name        string
	GUID        string
	Suspended   bool
	Labels      map[string]string
	Annotations map[string]string
	CreatedAt   time.Time
	UpdatedAt   *time.Time
	DeletedAt   *time.Time
}

type OrgRepo

type OrgRepo struct {
	// contains filtered or unexported fields
}

func NewOrgRepo

func NewOrgRepo(
	rootNamespace string,
	privilegedClient client.WithWatch,
	userClientFactory authorization.UserK8sClientFactory,
	nsPerms *authorization.NamespacePermissions,
	conditionAwaiter ConditionAwaiter[*korifiv1alpha1.CFOrg],
) *OrgRepo

func (*OrgRepo) CreateOrg

func (r *OrgRepo) CreateOrg(ctx context.Context, info authorization.Info, message CreateOrgMessage) (OrgRecord, error)

func (*OrgRepo) DeleteOrg

func (r *OrgRepo) DeleteOrg(ctx context.Context, info authorization.Info, message DeleteOrgMessage) error

func (*OrgRepo) GetDeletedAt added in v0.8.0

func (r *OrgRepo) GetDeletedAt(ctx context.Context, authInfo authorization.Info, orgGUID string) (*time.Time, error)

func (*OrgRepo) GetOrg

func (r *OrgRepo) GetOrg(ctx context.Context, info authorization.Info, orgGUID string) (OrgRecord, error)

func (*OrgRepo) ListOrgs

func (r *OrgRepo) ListOrgs(ctx context.Context, info authorization.Info, filter ListOrgsMessage) ([]OrgRecord, error)

func (*OrgRepo) PatchOrgMetadata added in v0.3.0

func (r *OrgRepo) PatchOrgMetadata(ctx context.Context, authInfo authorization.Info, message PatchOrgMetadataMessage) (OrgRecord, error)

type PackageData added in v0.9.0

type PackageData struct {
	Image    string
	Username *string
	Password *string
}

type PackageRecord

type PackageRecord struct {
	GUID        string
	UID         types.UID
	Type        string
	AppGUID     string
	SpaceGUID   string
	State       string
	CreatedAt   time.Time
	UpdatedAt   *time.Time
	Labels      map[string]string
	Annotations map[string]string
	ImageRef    string
}

type PackageRepo

type PackageRepo struct {
	// contains filtered or unexported fields
}

func NewPackageRepo

func NewPackageRepo(
	userClientFactory authorization.UserK8sClientFactory,
	namespaceRetriever NamespaceRetriever,
	authPerms *authorization.NamespacePermissions,
	repositoryCreator RepositoryCreator,
	repositoryPrefix string,
	awaiter ConditionAwaiter[*korifiv1alpha1.CFPackage],
) *PackageRepo

func (*PackageRepo) CreatePackage

func (r *PackageRepo) CreatePackage(ctx context.Context, authInfo authorization.Info, message CreatePackageMessage) (PackageRecord, error)

func (*PackageRepo) GetPackage

func (r *PackageRepo) GetPackage(ctx context.Context, authInfo authorization.Info, guid string) (PackageRecord, error)

func (*PackageRepo) ListPackages

func (r *PackageRepo) ListPackages(ctx context.Context, authInfo authorization.Info, message ListPackagesMessage) ([]PackageRecord, error)

func (*PackageRepo) UpdatePackage added in v0.5.0

func (r *PackageRepo) UpdatePackage(ctx context.Context, authInfo authorization.Info, updateMessage UpdatePackageMessage) (PackageRecord, error)

func (*PackageRepo) UpdatePackageSource

func (r *PackageRepo) UpdatePackageSource(ctx context.Context, authInfo authorization.Info, message UpdatePackageSourceMessage) (PackageRecord, error)

type PatchAppEnvVarsMessage

type PatchAppEnvVarsMessage struct {
	AppGUID              string
	SpaceGUID            string
	EnvironmentVariables map[string]*string
}

type PatchAppMessage added in v0.4.0

type PatchAppMessage struct {
	AppGUID              string
	SpaceGUID            string
	Name                 string
	Lifecycle            *LifecyclePatch
	EnvironmentVariables map[string]string
	MetadataPatch
}

func (*PatchAppMessage) Apply added in v0.7.0

func (m *PatchAppMessage) Apply(app *korifiv1alpha1.CFApp)

type PatchOrgMetadataMessage added in v0.3.0

type PatchOrgMetadataMessage struct {
	MetadataPatch
	GUID string
}

type PatchProcessMessage

type PatchProcessMessage struct {
	SpaceGUID                           string
	ProcessGUID                         string
	Command                             *string
	DiskQuotaMB                         *int64
	HealthCheckHTTPEndpoint             *string
	HealthCheckInvocationTimeoutSeconds *int64
	HealthCheckTimeoutSeconds           *int64
	HealthCheckType                     *string
	DesiredInstances                    *int
	MemoryMB                            *int64
	MetadataPatch                       *MetadataPatch
}

type PatchRouteMetadataMessage added in v0.5.0

type PatchRouteMetadataMessage struct {
	MetadataPatch
	RouteGUID string
	SpaceGUID string
}

type PatchServiceInstanceMessage added in v0.7.0

type PatchServiceInstanceMessage struct {
	GUID        string
	SpaceGUID   string
	Name        *string
	Credentials *map[string]string
	Tags        *[]string
	MetadataPatch
}

func (PatchServiceInstanceMessage) Apply added in v0.7.0

func (p PatchServiceInstanceMessage) Apply(cfServiceInstance *korifiv1alpha1.CFServiceInstance)

type PatchSpaceMetadataMessage added in v0.3.0

type PatchSpaceMetadataMessage struct {
	MetadataPatch
	GUID    string
	OrgGUID string
}

type PatchTaskMetadataMessage added in v0.7.0

type PatchTaskMetadataMessage struct {
	MetadataPatch
	TaskGUID  string
	SpaceGUID string
}

type PodMetrics added in v0.6.0

type PodMetrics struct {
	Pod     corev1.Pod
	Metrics metricsv1beta1.PodMetrics
}

type PodRepo

type PodRepo struct {
	// contains filtered or unexported fields
}

func NewPodRepo

func NewPodRepo(userClientFactory authorization.UserK8sClientFactory) *PodRepo

func (*PodRepo) GetRuntimeLogsForApp

func (r *PodRepo) GetRuntimeLogsForApp(ctx context.Context, logger logr.Logger, authInfo authorization.Info, message RuntimeLogsMessage) ([]LogRecord, error)

type ProcessRecord

type ProcessRecord struct {
	GUID             string
	SpaceGUID        string
	AppGUID          string
	Type             string
	Command          string
	DesiredInstances int
	MemoryMB         int64
	DiskQuotaMB      int64
	HealthCheck      HealthCheck
	Labels           map[string]string
	Annotations      map[string]string
	CreatedAt        time.Time
	UpdatedAt        *time.Time
}

type ProcessRepo

type ProcessRepo struct {
	// contains filtered or unexported fields
}

func NewProcessRepo

func NewProcessRepo(namespaceRetriever NamespaceRetriever, userClientFactory authorization.UserK8sClientFactory, namespacePermissions *authorization.NamespacePermissions) *ProcessRepo

func (*ProcessRepo) CreateProcess

func (r *ProcessRepo) CreateProcess(ctx context.Context, authInfo authorization.Info, message CreateProcessMessage) error

func (*ProcessRepo) GetProcess

func (r *ProcessRepo) GetProcess(ctx context.Context, authInfo authorization.Info, processGUID string) (ProcessRecord, error)

func (*ProcessRepo) GetProcessByAppTypeAndSpace

func (r *ProcessRepo) GetProcessByAppTypeAndSpace(ctx context.Context, authInfo authorization.Info, appGUID, processType, spaceGUID string) (ProcessRecord, error)

func (*ProcessRepo) ListProcesses

func (r *ProcessRepo) ListProcesses(ctx context.Context, authInfo authorization.Info, message ListProcessesMessage) ([]ProcessRecord, error)

func (*ProcessRepo) PatchProcess

func (r *ProcessRepo) PatchProcess(ctx context.Context, authInfo authorization.Info, message PatchProcessMessage) (ProcessRecord, error)

func (*ProcessRepo) ScaleProcess

func (r *ProcessRepo) ScaleProcess(ctx context.Context, authInfo authorization.Info, scaleProcessMessage ScaleProcessMessage) (ProcessRecord, error)

type ProcessScaleValues

type ProcessScaleValues struct {
	Instances *int
	MemoryMB  *int64
	DiskMB    *int64
}

type RemoveDestinationFromRouteMessage

type RemoveDestinationFromRouteMessage struct {
	RouteGUID       string
	SpaceGUID       string
	DestinationGuid string
}

type RepositoryCreator added in v0.5.0

type RepositoryCreator interface {
	CreateRepository(ctx context.Context, name string) error
}

type RoleRecord

type RoleRecord struct {
	GUID      string
	CreatedAt time.Time
	UpdatedAt *time.Time
	DeletedAt *time.Time
	Type      string
	Space     string
	Org       string
	User      string
	Kind      string
}

type RoleRepo

type RoleRepo struct {
	// contains filtered or unexported fields
}

func NewRoleRepo

func NewRoleRepo(
	userClientFactory authorization.UserK8sClientFactory,
	spaceRepo *SpaceRepo,
	authorizedInChecker AuthorizedInChecker,
	namespacePermissions *authorization.NamespacePermissions,
	rootNamespace string,
	roleMappings map[string]config.Role,
	namespaceRetriever NamespaceRetriever,
) *RoleRepo

func (*RoleRepo) CreateRole

func (r *RoleRepo) CreateRole(ctx context.Context, authInfo authorization.Info, role CreateRoleMessage) (RoleRecord, error)

func (*RoleRepo) DeleteRole added in v0.7.0

func (r *RoleRepo) DeleteRole(ctx context.Context, authInfo authorization.Info, deleteMsg DeleteRoleMessage) error

func (*RoleRepo) GetDeletedAt added in v0.8.0

func (r *RoleRepo) GetDeletedAt(ctx context.Context, authInfo authorization.Info, roleGUID string) (*time.Time, error)

func (*RoleRepo) GetRole added in v0.7.0

func (r *RoleRepo) GetRole(ctx context.Context, authInfo authorization.Info, roleGUID string) (RoleRecord, error)

func (*RoleRepo) ListRoles added in v0.7.0

func (r *RoleRepo) ListRoles(ctx context.Context, authInfo authorization.Info) ([]RoleRecord, error)

type RouteRecord

type RouteRecord struct {
	GUID         string
	SpaceGUID    string
	Domain       DomainRecord
	Host         string
	Path         string
	Protocol     string
	Destinations []DestinationRecord
	Labels       map[string]string
	Annotations  map[string]string
	CreatedAt    time.Time
	UpdatedAt    *time.Time
	DeletedAt    *time.Time
}

type RouteRepo

type RouteRepo struct {
	// contains filtered or unexported fields
}

func NewRouteRepo

func NewRouteRepo(namespaceRetriever NamespaceRetriever, userClientFactory authorization.UserK8sClientFactory, authPerms *authorization.NamespacePermissions) *RouteRepo

func (*RouteRepo) AddDestinationsToRoute

func (r *RouteRepo) AddDestinationsToRoute(ctx context.Context, authInfo authorization.Info, message AddDestinationsToRouteMessage) (RouteRecord, error)

func (*RouteRepo) CreateRoute

func (r *RouteRepo) CreateRoute(ctx context.Context, authInfo authorization.Info, message CreateRouteMessage) (RouteRecord, error)

func (*RouteRepo) DeleteRoute

func (r *RouteRepo) DeleteRoute(ctx context.Context, authInfo authorization.Info, message DeleteRouteMessage) error

func (*RouteRepo) GetDeletedAt added in v0.8.0

func (r *RouteRepo) GetDeletedAt(ctx context.Context, authInfo authorization.Info, routeGUID string) (*time.Time, error)

func (*RouteRepo) GetOrCreateRoute

func (r *RouteRepo) GetOrCreateRoute(ctx context.Context, authInfo authorization.Info, message CreateRouteMessage) (RouteRecord, error)

func (*RouteRepo) GetRoute

func (r *RouteRepo) GetRoute(ctx context.Context, authInfo authorization.Info, routeGUID string) (RouteRecord, error)

func (*RouteRepo) ListRoutes

func (r *RouteRepo) ListRoutes(ctx context.Context, authInfo authorization.Info, message ListRoutesMessage) ([]RouteRecord, error)

func (*RouteRepo) ListRoutesForApp

func (r *RouteRepo) ListRoutesForApp(ctx context.Context, authInfo authorization.Info, appGUID string, spaceGUID string) ([]RouteRecord, error)

func (*RouteRepo) PatchRouteMetadata added in v0.5.0

func (r *RouteRepo) PatchRouteMetadata(ctx context.Context, authInfo authorization.Info, message PatchRouteMetadataMessage) (RouteRecord, error)

func (*RouteRepo) RemoveDestinationFromRoute

func (r *RouteRepo) RemoveDestinationFromRoute(ctx context.Context, authInfo authorization.Info, message RemoveDestinationFromRouteMessage) (RouteRecord, error)

type RunnerInfoRecord added in v0.8.0

type RunnerInfoRecord struct {
	Name         string
	Namespace    string
	RunnerName   string
	Capabilities korifiv1alpha1.RunnerInfoCapabilities
}

type RunnerInfoRepository added in v0.8.0

type RunnerInfoRepository struct {
	// contains filtered or unexported fields
}

func NewRunnerInfoRepository added in v0.8.0

func NewRunnerInfoRepository(userClientFactory authorization.UserK8sClientFactory, runnerName string, namespace string) *RunnerInfoRepository

func (*RunnerInfoRepository) GetRunnerInfo added in v0.8.0

func (r *RunnerInfoRepository) GetRunnerInfo(ctx context.Context, authInfo authorization.Info, runnerName string) (RunnerInfoRecord, error)

type RuntimeLogsMessage

type RuntimeLogsMessage struct {
	SpaceGUID   string
	AppGUID     string
	AppRevision string
	Limit       int64
}

type ScaleProcessMessage

type ScaleProcessMessage struct {
	GUID      string
	SpaceGUID string
	ProcessScaleValues
}

type ServiceBindingLastOperation

type ServiceBindingLastOperation struct {
	Type        string
	State       string
	Description *string
	CreatedAt   time.Time
	UpdatedAt   *time.Time
}

type ServiceBindingRecord

type ServiceBindingRecord struct {
	GUID                string
	Type                string
	Name                *string
	AppGUID             string
	ServiceInstanceGUID string
	SpaceGUID           string
	Labels              map[string]string
	Annotations         map[string]string
	CreatedAt           time.Time
	UpdatedAt           *time.Time
	LastOperation       ServiceBindingLastOperation
}

type ServiceBindingRepo

type ServiceBindingRepo struct {
	// contains filtered or unexported fields
}

func NewServiceBindingRepo

func NewServiceBindingRepo(
	namespaceRetriever NamespaceRetriever,
	userClientFactory authorization.UserK8sClientFactory,
	namespacePermissions *authorization.NamespacePermissions,
	bindingConditionAwaiter ConditionAwaiter[*korifiv1alpha1.CFServiceBinding],
) *ServiceBindingRepo

func (*ServiceBindingRepo) CreateServiceBinding

func (*ServiceBindingRepo) DeleteServiceBinding

func (r *ServiceBindingRepo) DeleteServiceBinding(ctx context.Context, authInfo authorization.Info, guid string) error

func (*ServiceBindingRepo) GetServiceBinding added in v0.7.0

func (r *ServiceBindingRepo) GetServiceBinding(ctx context.Context, authInfo authorization.Info, guid string) (ServiceBindingRecord, error)

func (*ServiceBindingRepo) ListServiceBindings

func (r *ServiceBindingRepo) ListServiceBindings(ctx context.Context, authInfo authorization.Info, message ListServiceBindingsMessage) ([]ServiceBindingRecord, error)

nolint:dupl

func (*ServiceBindingRepo) UpdateServiceBinding added in v0.7.0

func (r *ServiceBindingRepo) UpdateServiceBinding(ctx context.Context, authInfo authorization.Info, updateMsg UpdateServiceBindingMessage) (ServiceBindingRecord, error)

type ServiceInstanceRecord

type ServiceInstanceRecord struct {
	Name        string
	GUID        string
	SpaceGUID   string
	SecretName  string
	Tags        []string
	Type        string
	Labels      map[string]string
	Annotations map[string]string
	CreatedAt   time.Time
	UpdatedAt   *time.Time
}

type ServiceInstanceRepo

type ServiceInstanceRepo struct {
	// contains filtered or unexported fields
}

func NewServiceInstanceRepo

func NewServiceInstanceRepo(
	namespaceRetriever NamespaceRetriever,
	userClientFactory authorization.UserK8sClientFactory,
	namespacePermissions *authorization.NamespacePermissions,
) *ServiceInstanceRepo

func (*ServiceInstanceRepo) CreateServiceInstance

func (*ServiceInstanceRepo) DeleteServiceInstance

func (r *ServiceInstanceRepo) DeleteServiceInstance(ctx context.Context, authInfo authorization.Info, message DeleteServiceInstanceMessage) error

func (*ServiceInstanceRepo) GetServiceInstance

func (r *ServiceInstanceRepo) GetServiceInstance(ctx context.Context, authInfo authorization.Info, guid string) (ServiceInstanceRecord, error)

func (*ServiceInstanceRepo) ListServiceInstances

func (r *ServiceInstanceRepo) ListServiceInstances(ctx context.Context, authInfo authorization.Info, message ListServiceInstanceMessage) ([]ServiceInstanceRecord, error)

nolint:dupl

func (*ServiceInstanceRepo) PatchServiceInstance added in v0.7.0

type Set added in v0.8.0

type Set[T comparable] map[T]struct{}

func NewSet added in v0.8.0

func NewSet[T comparable](elements ...T) Set[T]

func (Set[T]) Includes added in v0.8.0

func (s Set[T]) Includes(element T) bool

type SetAppDesiredStateMessage

type SetAppDesiredStateMessage struct {
	AppGUID      string
	SpaceGUID    string
	DesiredState string
}

type SetCurrentDropletMessage

type SetCurrentDropletMessage struct {
	AppGUID     string
	DropletGUID string
	SpaceGUID   string
}

type SpaceRecord

type SpaceRecord struct {
	Name             string
	GUID             string
	OrganizationGUID string
	Labels           map[string]string
	Annotations      map[string]string
	CreatedAt        time.Time
	UpdatedAt        *time.Time
	DeletedAt        *time.Time
}

type SpaceRepo

type SpaceRepo struct {
	// contains filtered or unexported fields
}

func NewSpaceRepo

func NewSpaceRepo(
	namespaceRetriever NamespaceRetriever,
	orgRepo *OrgRepo,
	userClientFactory authorization.UserK8sClientFactory,
	nsPerms *authorization.NamespacePermissions,
	conditionAwaiter ConditionAwaiter[*korifiv1alpha1.CFSpace],
) *SpaceRepo

func (*SpaceRepo) CreateSpace

func (r *SpaceRepo) CreateSpace(ctx context.Context, info authorization.Info, message CreateSpaceMessage) (SpaceRecord, error)

func (*SpaceRepo) DeleteSpace

func (r *SpaceRepo) DeleteSpace(ctx context.Context, info authorization.Info, message DeleteSpaceMessage) error

func (*SpaceRepo) GetDeletedAt added in v0.8.0

func (r *SpaceRepo) GetDeletedAt(ctx context.Context, authInfo authorization.Info, spaceGUID string) (*time.Time, error)

func (*SpaceRepo) GetSpace

func (r *SpaceRepo) GetSpace(ctx context.Context, info authorization.Info, spaceGUID string) (SpaceRecord, error)

func (*SpaceRepo) ListSpaces

func (r *SpaceRepo) ListSpaces(ctx context.Context, info authorization.Info, message ListSpacesMessage) ([]SpaceRecord, error)

func (*SpaceRepo) PatchSpaceMetadata added in v0.3.0

func (r *SpaceRepo) PatchSpaceMetadata(ctx context.Context, authInfo authorization.Info, message PatchSpaceMetadataMessage) (SpaceRecord, error)

type TaskRecord added in v0.2.0

type TaskRecord struct {
	Name          string
	GUID          string
	SpaceGUID     string
	Command       string
	AppGUID       string
	DropletGUID   string
	Labels        map[string]string
	Annotations   map[string]string
	SequenceID    int64
	CreatedAt     time.Time
	UpdatedAt     *time.Time
	MemoryMB      int64
	DiskMB        int64
	State         string
	FailureReason string
}

type TaskRepo added in v0.2.0

type TaskRepo struct {
	// contains filtered or unexported fields
}

func NewTaskRepo added in v0.2.0

func NewTaskRepo(
	userClientFactory authorization.UserK8sClientFactory,
	nsRetriever NamespaceRetriever,
	namespacePermissions *authorization.NamespacePermissions,
	taskConditionAwaiter ConditionAwaiter[*korifiv1alpha1.CFTask],
) *TaskRepo

func (*TaskRepo) CancelTask added in v0.2.0

func (r *TaskRepo) CancelTask(ctx context.Context, authInfo authorization.Info, taskGUID string) (TaskRecord, error)

func (*TaskRepo) CreateTask added in v0.2.0

func (r *TaskRepo) CreateTask(ctx context.Context, authInfo authorization.Info, createMessage CreateTaskMessage) (TaskRecord, error)

func (*TaskRepo) GetTask added in v0.2.0

func (r *TaskRepo) GetTask(ctx context.Context, authInfo authorization.Info, taskGUID string) (TaskRecord, error)

func (*TaskRepo) ListTasks added in v0.2.0

func (r *TaskRepo) ListTasks(ctx context.Context, authInfo authorization.Info, msg ListTaskMessage) ([]TaskRecord, error)

func (*TaskRepo) PatchTaskMetadata added in v0.7.0

func (r *TaskRepo) PatchTaskMetadata(ctx context.Context, authInfo authorization.Info, message PatchTaskMetadataMessage) (TaskRecord, error)

type UpdateDomainMessage added in v0.5.0

type UpdateDomainMessage struct {
	GUID          string
	MetadataPatch MetadataPatch
}

type UpdateDropletMessage added in v0.7.0

type UpdateDropletMessage struct {
	GUID          string
	MetadataPatch MetadataPatch
}

type UpdatePackageMessage added in v0.5.0

type UpdatePackageMessage struct {
	GUID          string
	MetadataPatch MetadataPatch
}

type UpdatePackageSourceMessage

type UpdatePackageSourceMessage struct {
	GUID                string
	SpaceGUID           string
	ImageRef            string
	RegistrySecretNames []string
}

type UpdateServiceBindingMessage added in v0.7.0

type UpdateServiceBindingMessage struct {
	GUID          string
	MetadataPatch MetadataPatch
}

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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