v1alpha1

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2021 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the api v1alpha1 API group +kubebuilder:object:generate=true +groupName=app.fybrik.io

Index

Constants

View Source
const (
	BlueprintNamespaceLabel = "app.fybrik.io/blueprintNamespace"
	BlueprintNameLabel      = "app.fybrik.io/blueprintName"
)
View Source
const (
	InvalidAssetID              string = "the asset does not exist"
	ReadAccessDenied            string = "governance policies forbid access to the data"
	CopyNotAllowed              string = "copy of the data is required but can not be done according to the governance policies"
	WriteNotAllowed             string = "governance policies forbid writing of the data"
	ModuleNotFound              string = "no module has been registered"
	InsufficientStorage         string = "no bucket was provisioned for implicit copy"
	InvalidClusterConfiguration string = "cluster configuration does not support the requirements"
	InvalidAssetDataStore       string = "the asset data store is not supported"
)

ErrorMessages that are reported to the user

View Source
const (
	ReadyConditionIndex int64 = 0
	DenyConditionIndex  int64 = 1
	ErrorConditionIndex int64 = 2
)

Condition indices are static. Conditions always present in the status.

View Source
const (
	ApplicationClusterLabel   = "app.fybrik.io/appCluster"
	ApplicationNamespaceLabel = "app.fybrik.io/appNamespace"
	ApplicationNameLabel      = "app.fybrik.io/appName"
)
View Source
const (
	S3          string = "s3"
	Kafka       string = "kafka"
	JdbcDb2     string = "jdbc-db2"
	ArrowFlight string = "fybrik-arrow-flight"
	Arrow       string = "arrow"
	Parquet     string = "parquet"
	Table       string = "table"
)

Values used in tests and for grpc connection with connectors.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "app.fybrik.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type ApplicationDetails

type ApplicationDetails map[string]string

ApplicationDetails provides information about the Data Scientist's application, which is deployed separately. The information provided is used to determine if the data should be altered in any way prior to its use, based on policies and rules defined in an external data policy manager.

func (ApplicationDetails) DeepCopy

func (in ApplicationDetails) DeepCopy() ApplicationDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationDetails.

func (ApplicationDetails) DeepCopyInto

func (in ApplicationDetails) DeepCopyInto(out *ApplicationDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AssetDetails added in v0.5.0

type AssetDetails struct {
	// AdvertisedAssetID links this asset to asset from fybrikapplication and is used by user facing services
	// +optional
	AdvertisedAssetID string `json:"advertisedAssetId,omitempty"`

	// +required
	DataStore DataStore `json:"assetDetails"`
}

AssetDetails is a list of assets used in the fybrikapplication. In addition to assets declared in fybrikapplication, AssetDetails list also contains assets that are allocated by the control-plane in order to serve fybrikapplication

func (*AssetDetails) DeepCopy added in v0.5.0

func (in *AssetDetails) DeepCopy() *AssetDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AssetDetails.

func (*AssetDetails) DeepCopyInto added in v0.5.0

func (in *AssetDetails) DeepCopyInto(out *AssetDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AssetState added in v0.5.0

type AssetState struct {
	// Conditions indicate the asset state (Ready, Deny, Error)
	// +optional
	Conditions []Condition `json:"conditions,omitempty"`

	// CatalogedAsset provides a new asset identifier after being registered in the enterprise catalog
	// +optional
	CatalogedAsset string `json:"catalogedAsset,omitempty"`

	// Endpoint provides the endpoint spec from which the asset will be served to the application
	// +optional
	Endpoint EndpointSpec `json:"endpoint,omitempty"`
}

AssetState defines the observed state of an asset

func (*AssetState) DeepCopy added in v0.5.0

func (in *AssetState) DeepCopy() *AssetState

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AssetState.

func (*AssetState) DeepCopyInto added in v0.5.0

func (in *AssetState) DeepCopyInto(out *AssetState)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Blueprint

type Blueprint struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   BlueprintSpec   `json:"spec,omitempty"`
	Status BlueprintStatus `json:"status,omitempty"`
}

Blueprint is the Schema for the blueprints API

func (*Blueprint) DeepCopy

func (in *Blueprint) DeepCopy() *Blueprint

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Blueprint.

func (*Blueprint) DeepCopyInto

func (in *Blueprint) DeepCopyInto(out *Blueprint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Blueprint) DeepCopyObject

func (in *Blueprint) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BlueprintList

type BlueprintList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Blueprint `json:"items"`
}

BlueprintList contains a list of Blueprint

func (*BlueprintList) DeepCopy

func (in *BlueprintList) DeepCopy() *BlueprintList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueprintList.

func (*BlueprintList) DeepCopyInto

func (in *BlueprintList) DeepCopyInto(out *BlueprintList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BlueprintList) DeepCopyObject

func (in *BlueprintList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BlueprintModule added in v0.5.0

type BlueprintModule struct {
	// Name of the fybrikmodule on which this is based
	// +required
	Name string `json:"name"`

	// Chart contains the location of the helm chart with info detailing how to deploy
	// +required
	Chart ChartSpec `json:"chart"`

	// Arguments are the input parameters for a specific instance of a module.
	// +optional
	Arguments ModuleArguments `json:"arguments,omitempty"`

	// assetIDs indicate the assets processed by this module.  Included so we can track asset status
	// as well as module status in the future.
	// +optional
	AssetIDs []string `json:"assetIds,omitempty"`
}

BlueprintModule is a copy of a FybrikModule Custom Resource. It contains the information necessary to instantiate a datapath component, including the parameters relevant for the particular workload.

func (*BlueprintModule) DeepCopy added in v0.5.0

func (in *BlueprintModule) DeepCopy() *BlueprintModule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueprintModule.

func (*BlueprintModule) DeepCopyInto added in v0.5.0

func (in *BlueprintModule) DeepCopyInto(out *BlueprintModule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BlueprintSpec

type BlueprintSpec struct {
	// Cluster indicates the cluster on which the Blueprint runs
	// +required
	Cluster string `json:"cluster"`

	// Modules is a map which contains modules that indicate the data path components that run in this cluster
	// The map key is InstanceName which is the unique name for the deployed instance related to this workload
	// +required
	Modules map[string]BlueprintModule `json:"modules"`
}

BlueprintSpec defines the desired state of Blueprint, which defines the components of the workload's data path that run in a particular cluster. In a single cluster environment there is one blueprint. In a multi-cluster environment there is one Blueprint per cluster per workload (FybrikApplication).

func (*BlueprintSpec) DeepCopy

func (in *BlueprintSpec) DeepCopy() *BlueprintSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueprintSpec.

func (*BlueprintSpec) DeepCopyInto

func (in *BlueprintSpec) DeepCopyInto(out *BlueprintSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BlueprintStatus

type BlueprintStatus struct {
	// ObservedState includes information to be reported back to the FybrikApplication resource
	// It includes readiness and error indications, as well as user instructions
	// +optional
	ObservedState ObservedState `json:"observedState,omitempty"`

	// ObservedGeneration is taken from the Blueprint metadata.  This is used to determine during reconcile
	// whether reconcile was called because the desired state changed, or whether status of the allocated resources should be checked.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// ModulesState is a map which holds the status of each module
	// its key is the instance name which is the unique name for the deployed instance related to this workload
	// +required
	ModulesState map[string]ObservedState `json:"modules"`

	// Releases map each release to the observed generation of the blueprint containing this release.
	// At the end of reconcile, each release should be mapped to the latest blueprint version or be uninstalled.
	// +optional
	Releases map[string]int64 `json:"releases,omitempty"`
}

BlueprintStatus defines the observed state of Blueprint This includes readiness, error message, and indicators forthe Kubernetes resources owned by the Blueprint for cleanup and status monitoring

func (*BlueprintStatus) DeepCopy

func (in *BlueprintStatus) DeepCopy() *BlueprintStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueprintStatus.

func (*BlueprintStatus) DeepCopyInto

func (in *BlueprintStatus) DeepCopyInto(out *BlueprintStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CapabilityScope added in v0.5.0

type CapabilityScope string

CapabilityScope indicates the level at which a capability is implemented +kubebuilder:validation:Enum=asset;workload;cluster

const (
	// Asset indicates that the capabilities are available for a particular asset, such as a dataset
	Asset CapabilityScope = "asset"

	// Workload indicates that the capability is available for all assets in the workload or is independent of assets
	Workload CapabilityScope = "workload"

	// Cluster indicates that a capability is available across workloads - i.e. across Fybrikapplication instances
	Cluster CapabilityScope = "cluster"
)

type CapabilityType added in v0.5.0

type CapabilityType string

ModuleCapability indicates at a high level what is being performed - often on a datset, but potentially other things as well +kubebuilder:validation:Enum=copy;read;write;transform

const (
	// Copy moves data from one location to another - i.e implicit copy
	Copy CapabilityType = "copy"

	// Write is accessed from within an application, typically through an SDK
	Write CapabilityType = "write"

	// Read is accessed from within an application, typically through an SDK
	Read CapabilityType = "read"

	// Transform processes and changes data
	Transform CapabilityType = "transform"
)

TODO - Should these come from the taxonomy?

type CatalogRequirements

type CatalogRequirements struct {
	// CatalogService specifies the datacatalog service that will be used for catalogging the data into.
	// +optional
	CatalogService string `json:"service,omitempty"`

	// CatalogID specifies the catalog where the data will be cataloged.
	// +optional
	CatalogID string `json:"catalogID,omitempty"`
}

CatalogRequirements contain the specifics for catalogging the data asset

func (*CatalogRequirements) DeepCopy

func (in *CatalogRequirements) DeepCopy() *CatalogRequirements

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CatalogRequirements.

func (*CatalogRequirements) DeepCopyInto

func (in *CatalogRequirements) DeepCopyInto(out *CatalogRequirements)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChartSpec

type ChartSpec struct {
	// Name of helm chart
	// +required
	Name string `json:"name"`

	// Name of secret containing helm registry credentials
	// +optional
	ChartPullSecret string `json:"chartPullSecret,omitempty"`

	// Values to pass to helm chart installation
	// +optional
	Values map[string]string `json:"values,omitempty"`
}

ChartSpec specifies chart name and values

func (*ChartSpec) DeepCopy

func (in *ChartSpec) DeepCopy() *ChartSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChartSpec.

func (*ChartSpec) DeepCopyInto

func (in *ChartSpec) DeepCopyInto(out *ChartSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Condition

type Condition struct {
	// Type of the condition
	Type ConditionType `json:"type"`
	// Status of the condition: true or false
	Status corev1.ConditionStatus `json:"status"`
	// Message contains the details of the current condition
	// +optional
	Message string `json:"message,omitempty"`
}

Condition describes the state of a FybrikApplication at a certain point.

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.

func (*Condition) DeepCopyInto

func (in *Condition) DeepCopyInto(out *Condition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConditionType

type ConditionType string

ConditionType represents a condition type

const (
	// ErrorCondition means that an error was encountered during blueprint construction
	ErrorCondition ConditionType = "Error"

	// DenyCondition means that access to a dataset is denied
	DenyCondition ConditionType = "Deny"

	// ReadyCondition means that access to a dataset is granted
	ReadyCondition ConditionType = "Ready"
)

type CopyModuleArgs

type CopyModuleArgs struct {

	// Source is the where the data currently resides
	// +required
	Source DataStore `json:"source"`

	// Destination is the data store to which the data will be copied
	// +required
	Destination DataStore `json:"destination"`

	// AssetID identifies the asset to be used for accessing the data when it is ready
	// It is copied from the FybrikApplication resource
	// +required
	AssetID string `json:"assetID"`

	// Transformations are different types of processing that may be done to the data as it is copied.
	// +optional
	Transformations []SupportedAction `json:"transformations,omitempty"`
}

CopyModuleArgs define the input parameters for modules that copy data from location A to location B Credentials are stored in a credential management system such as vault

func (*CopyModuleArgs) DeepCopy

func (in *CopyModuleArgs) DeepCopy() *CopyModuleArgs

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CopyModuleArgs.

func (*CopyModuleArgs) DeepCopyInto

func (in *CopyModuleArgs) DeepCopyInto(out *CopyModuleArgs)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CopyRequirements

type CopyRequirements struct {
	// Required indicates that the data must be copied.
	// +optional
	Required bool `json:"required,omitempty"`

	// Catalog indicates that the data asset must be cataloged.
	// +optional
	Catalog CatalogRequirements `json:"catalog,omitempty"`
}

CopyRequirements include the requirements for the data copy operation

func (*CopyRequirements) DeepCopy

func (in *CopyRequirements) DeepCopy() *CopyRequirements

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CopyRequirements.

func (*CopyRequirements) DeepCopyInto

func (in *CopyRequirements) DeepCopyInto(out *CopyRequirements)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DataContext

type DataContext struct {
	// DataSetID is a unique identifier of the dataset chosen from the data catalog for processing by the data user application.
	// +required
	// +kubebuilder:validation:MinLength=1
	DataSetID string `json:"dataSetID"`

	// CatalogService represents the catalog service for accessing the requested dataset.
	// If not specified, the enterprise catalog service will be used.
	// +optional
	CatalogService string `json:"catalogService,omitempty"`
	// Requirements from the system
	// +required
	Requirements DataRequirements `json:"requirements"`
}

DataContext indicates data set chosen by the Data Scientist to be used by his application, and includes information about the data format and technologies used by the application to access the data.

func (*DataContext) DeepCopy

func (in *DataContext) DeepCopy() *DataContext

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataContext.

func (*DataContext) DeepCopyInto

func (in *DataContext) DeepCopyInto(out *DataContext)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DataFlow

type DataFlow string
const (
	// ReadFlow indicates a data set is being read
	ReadFlow DataFlow = "read"

	// WriteFlow indicates a data set is being written
	WriteFlow DataFlow = "write"

	// DeleteFlow indicates a data set is being deleted
	DeleteFlow DataFlow = "delete"

	// CopyFlow indicates a data set is being copied
	CopyFlow DataFlow = "copy"
)

type DataFlowStep added in v0.5.0

type DataFlowStep struct {
	// Name of the step
	// +required
	Name string `json:"name"`

	// Name of the cluster this step is executed on
	// +required
	Cluster string `json:"cluster"`

	// Template is the name of the template to execute the step
	// The full details of the template can be extracted from Plotter.spec.templates
	// list field.
	// +required
	Template string `json:"template"`

	// Step parameters
	// TODO why not flatten the parameters into this data flow step
	// +optional
	Parameters *StepParameters `json:"parameters,omitempty"`
}

DataFlowStep contains details on a single data flow step

func (*DataFlowStep) DeepCopy added in v0.5.0

func (in *DataFlowStep) DeepCopy() *DataFlowStep

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataFlowStep.

func (*DataFlowStep) DeepCopyInto added in v0.5.0

func (in *DataFlowStep) DeepCopyInto(out *DataFlowStep)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DataRequirements

type DataRequirements struct {
	// Interface indicates the protocol and format expected by the data user
	// +required
	Interface InterfaceDetails `json:"interface"`

	// CopyRequrements include the requirements for copying the data
	// +optional
	Copy CopyRequirements `json:"copy,omitempty"`
}

DataRequirements structure contains a list of requirements (interface, need to catalog the dataset, etc.)

func (*DataRequirements) DeepCopy

func (in *DataRequirements) DeepCopy() *DataRequirements

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataRequirements.

func (*DataRequirements) DeepCopyInto

func (in *DataRequirements) DeepCopyInto(out *DataRequirements)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DataStore

type DataStore struct {
	// Holds details for retrieving credentials by the modules from Vault store.
	// It is a map so that different credentials can be stored for the different DataFlow operations.
	Vault map[string]Vault `json:"vault"`
	// Connection has the relevant details for accesing the data (url, table, ssl, etc.)
	// +required
	Connection *serde.Arbitrary `json:"connection"`
	// Format represents data format (e.g. parquet) as received from catalog connectors
	// +required
	Format string `json:"format"`
}

DataStore contains the details for accesing the data that are sent by catalog connectors Credentials for accesing the data are stored in Vault, in the location represented by Vault property.

func (*DataStore) DeepCopy

func (in *DataStore) DeepCopy() *DataStore

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataStore.

func (*DataStore) DeepCopyInto

func (in *DataStore) DeepCopyInto(out *DataStore)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatasetDetails

type DatasetDetails struct {
	// Reference to a Dataset resource containing the request to provision storage
	DatasetRef string `json:"datasetRef,omitempty"`
	// Reference to a secret where the credentials are stored
	SecretRef string `json:"secretRef,omitempty"`
	// Dataset information
	Details serde.Arbitrary `json:"details,omitempty"`
}

DatasetDetails contain dataset connection and metadata required to register this dataset in the enterprise catalog

func (*DatasetDetails) DeepCopy

func (in *DatasetDetails) DeepCopy() *DatasetDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatasetDetails.

func (*DatasetDetails) DeepCopyInto

func (in *DatasetDetails) DeepCopyInto(out *DatasetDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Dependency

type Dependency struct {

	// Type provides information used in determining how to instantiate the component
	// +required
	Type DependencyType `json:"type"`

	// Name is the name of the dependent component
	// +required
	Name string `json:"name"`
}

Dependency details another component on which this module relies - i.e. a pre-requisit

func (*Dependency) DeepCopy

func (in *Dependency) DeepCopy() *Dependency

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dependency.

func (*Dependency) DeepCopyInto

func (in *Dependency) DeepCopyInto(out *Dependency)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DependencyType

type DependencyType string

DependencyType indicates what type of pre-requisit is required +kubebuilder:validation:Enum=module;connector;feature TODO - Should these be changed???

const (
	// Module indicates a reliance on another module
	Module DependencyType = "module"

	// Connector - example for connecting to data catalog, policy compiler, external credential manager
	Connector DependencyType = "connector"

	// Feature indicates a dependency on an optional control plane capability
	Feature DependencyType = "feature"
)

type EndpointSpec

type EndpointSpec struct {
	// Hostname is the hostname to connect to for connecting to a module exposed service.
	// By default this equals to "{{.Release.Name}}.{{.Release.Namespace}}" of the module.
	// <br/>
	// Module developers can overide the default behavior by providing a template that may use
	// the ".Release.Name", ".Release.Namespace" and ".Values.labels" variables.
	// +optional
	Hostname string `json:"hostname,omitempty"`
	// +required
	Port int32 `json:"port"`

	// For example: http, https, grpc, grpc+tls, jdbc:oracle:thin:@ etc
	// +required
	Scheme string `json:"scheme"`
}

EndpointSpec is used both by the module creator and by the status of the fybrikapplication

func (*EndpointSpec) DeepCopy

func (in *EndpointSpec) DeepCopy() *EndpointSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSpec.

func (*EndpointSpec) DeepCopyInto

func (in *EndpointSpec) DeepCopyInto(out *EndpointSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Flow added in v0.5.0

type Flow struct {
	// Name of the flow
	// +required
	Name string `json:"name"`

	// Type of the flow (e.g. read)
	// +required
	FlowType DataFlow `json:"flowType"`

	// AssetID indicates the data set being used in this data flow
	// +required
	AssetID string `json:"assetId"`

	// +required
	SubFlows []SubFlow `json:"subFlows"`
}

Flows is the list of data flows driven from fybrikapplication: Each element in the list holds the flow of the data requested in fybrikapplication.

func (*Flow) DeepCopy added in v0.5.0

func (in *Flow) DeepCopy() *Flow

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Flow.

func (*Flow) DeepCopyInto added in v0.5.0

func (in *Flow) DeepCopyInto(out *Flow)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FlowStatus added in v0.5.0

type FlowStatus struct {
	// ObservedState includes information about the current flow
	// It includes readiness and error indications, as well as user instructions
	// +optional
	ObservedState ObservedState `json:"status,omitempty"`

	// +required
	SubFlows map[string]ObservedState `json:"subFlows"`
}

FlowStatus includes information to be reported back to the FybrikApplication resource It holds the status per data flow

func (*FlowStatus) DeepCopy added in v0.5.0

func (in *FlowStatus) DeepCopy() *FlowStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowStatus.

func (*FlowStatus) DeepCopyInto added in v0.5.0

func (in *FlowStatus) DeepCopyInto(out *FlowStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FybrikApplication

type FybrikApplication struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FybrikApplicationSpec   `json:"spec,omitempty"`
	Status FybrikApplicationStatus `json:"status,omitempty"`
}

FybrikApplication provides information about the application being used by a Data Scientist, the nature of the processing, and the data sets that the Data Scientist has chosen for processing by the application. The FybrikApplication controller (aka pilot) obtains instructions regarding any governance related changes that must be performed on the data, identifies the modules capable of performing such changes, and finally generates the Blueprint which defines the secure runtime environment and all the components in it. This runtime environment provides the Data Scientist's application with access to the data requested in a secure manner and without having to provide any credentials for the data sets. The credentials are obtained automatically by the manager from an external credential management system, which may or may not be part of a data catalog. +kubebuilder:object:root=true +kubebuilder:subresource:status

func (*FybrikApplication) DeepCopy

func (in *FybrikApplication) DeepCopy() *FybrikApplication

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FybrikApplication.

func (*FybrikApplication) DeepCopyInto

func (in *FybrikApplication) DeepCopyInto(out *FybrikApplication)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FybrikApplication) DeepCopyObject

func (in *FybrikApplication) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*FybrikApplication) SetupWebhookWithManager

func (r *FybrikApplication) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*FybrikApplication) ValidateCreate

func (r *FybrikApplication) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*FybrikApplication) ValidateDelete

func (r *FybrikApplication) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*FybrikApplication) ValidateFybrikApplication added in v0.5.0

func (r *FybrikApplication) ValidateFybrikApplication(taxonomyFile string) error

func (*FybrikApplication) ValidateUpdate

func (r *FybrikApplication) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type FybrikApplicationList

type FybrikApplicationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []FybrikApplication `json:"items"`
}

FybrikApplicationList contains a list of FybrikApplication

func (*FybrikApplicationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FybrikApplicationList.

func (*FybrikApplicationList) DeepCopyInto

func (in *FybrikApplicationList) DeepCopyInto(out *FybrikApplicationList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FybrikApplicationList) DeepCopyObject

func (in *FybrikApplicationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FybrikApplicationSpec

type FybrikApplicationSpec struct {

	// Selector enables to connect the resource to the application
	// Application labels should match the labels in the selector.
	// For some flows the selector may not be used.
	// +optional
	Selector Selector `json:"selector"`

	// SecretRef points to the secret that holds credentials for each system the user has been authenticated with.
	// The secret is deployed in FybrikApplication namespace.
	// +optional
	SecretRef string `json:"secretRef,omitempty"`

	// AppInfo contains information describing the reasons for the processing
	// that will be done by the Data Scientist's application.
	// +required
	AppInfo ApplicationDetails `json:"appInfo"`

	// Data contains the identifiers of the data to be used by the Data Scientist's application,
	// and the protocol used to access it and the format expected.
	// +required
	Data []DataContext `json:"data"`
}

FybrikApplicationSpec defines the desired state of FybrikApplication.

func (*FybrikApplicationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FybrikApplicationSpec.

func (*FybrikApplicationSpec) DeepCopyInto

func (in *FybrikApplicationSpec) DeepCopyInto(out *FybrikApplicationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FybrikApplicationStatus

type FybrikApplicationStatus struct {
	// Ready is true if all specified assets are either ready to be used or are denied access.
	// +optional
	Ready bool `json:"ready,omitempty"`

	// ErrorMessage indicates that an error has happened during the reconcile, unrelated to a specific asset
	// +optional
	ErrorMessage string `json:"errorMessage,omitempty"`

	// AssetStates provides a status per asset
	// +optional
	AssetStates map[string]AssetState `json:"assetStates,omitempty"`

	// ObservedGeneration is taken from the FybrikApplication metadata.  This is used to determine during reconcile
	// whether reconcile was called because the desired state changed, or whether the Blueprint status changed.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// ValidatedGeneration is the version of the FyrbikApplication that has been validated with the taxonomy defined.
	// +optional
	ValidatedGeneration int64 `json:"validatedGeneration,omitempty"`

	// ValidApplication indicates whether the FybrikApplication is valid given the defined taxonomy
	// +optional
	ValidApplication corev1.ConditionStatus `json:"validApplication,omitempty"`

	// Generated resource identifier
	// +optional
	Generated *ResourceReference `json:"generated,omitempty"`

	// ProvisionedStorage maps a dataset (identified by AssetID) to the new provisioned bucket.
	// It allows FybrikApplication controller to manage buckets in case the spec has been modified, an error has occurred, or a delete event has been received.
	// ProvisionedStorage has the information required to register the dataset once the owned plotter resource is ready
	// +optional
	ProvisionedStorage map[string]DatasetDetails `json:"provisionedStorage,omitempty"`
}

FybrikApplicationStatus defines the observed state of FybrikApplication.

func (*FybrikApplicationStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FybrikApplicationStatus.

func (*FybrikApplicationStatus) DeepCopyInto

func (in *FybrikApplicationStatus) DeepCopyInto(out *FybrikApplicationStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FybrikModule

type FybrikModule struct {

	// Metadata should include name, namespace, label, annotations.
	// annotations should include author, summary, description
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +required
	Spec FybrikModuleSpec `json:"spec"`
}

FybrikModule is a description of an injectable component. the parameters it requires, as well as the specification of how to instantiate such a component. It is used as metadata only. There is no status nor reconciliation.

func (*FybrikModule) DeepCopy

func (in *FybrikModule) DeepCopy() *FybrikModule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FybrikModule.

func (*FybrikModule) DeepCopyInto

func (in *FybrikModule) DeepCopyInto(out *FybrikModule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FybrikModule) DeepCopyObject

func (in *FybrikModule) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FybrikModuleList

type FybrikModuleList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []FybrikModule `json:"items"`
}

FybrikModuleList contains a list of FybrikModule

func (*FybrikModuleList) DeepCopy

func (in *FybrikModuleList) DeepCopy() *FybrikModuleList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FybrikModuleList.

func (*FybrikModuleList) DeepCopyInto

func (in *FybrikModuleList) DeepCopyInto(out *FybrikModuleList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FybrikModuleList) DeepCopyObject

func (in *FybrikModuleList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FybrikModuleSpec

type FybrikModuleSpec struct {
	// An explanation of what this module does
	// +optional
	Description string `json:"description,omitempty"`

	// May be one of service, config or plugin
	// Service: Means that the control plane deploys the component that performs the capability
	// Config: Another pre-installed service performs the capability and the module deployed configures it for the particular workload or dataset
	// Plugin: Indicates that this module performs a capability as part of another service or module rather than as a stand-alone module
	// +required
	Type string `json:"type"`

	// Plugin type indicates the plugin technology used to invoke the capabilities
	// Ex: vault, fybrik-wasm...
	// Should be provided if type is plugin
	// +optional
	PluginType string `json:"pluginType,omitempty"`

	// Other components that must be installed in order for this module to work
	// +optional
	Dependencies []Dependency `json:"dependencies,omitempty"`

	// Capabilities declares what this module knows how to do and the types of data it knows how to handle
	// The key to the map is a CapabilityType string
	// +required
	Capabilities []ModuleCapability `json:"capabilities"`

	// Reference to a Helm chart that allows deployment of the resources required for this module
	// +required
	Chart ChartSpec `json:"chart"`

	// StatusIndicators allow to check status of a non-standard resource that can not be computed by helm/kstatus
	// +optional
	StatusIndicators []ResourceStatusIndicator `json:"statusIndicators,omitempty"`
}

FybrikModuleSpec contains the info common to all modules, which are one of the components that process, load, write, audit, monitor the data used by the data scientist's application.

func (*FybrikModuleSpec) DeepCopy

func (in *FybrikModuleSpec) DeepCopy() *FybrikModuleSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FybrikModuleSpec.

func (*FybrikModuleSpec) DeepCopyInto

func (in *FybrikModuleSpec) DeepCopyInto(out *FybrikModuleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FybrikStorageAccount

type FybrikStorageAccount struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FybrikStorageAccountSpec   `json:"spec,omitempty"`
	Status FybrikStorageAccountStatus `json:"status,omitempty"`
}

FybrikStorageAccount defines a storage account used for copying data. Only S3 based storage is supported. It contains endpoint, region and a reference to the credentials a Owner of the asset is responsible to store the credentials +kubebuilder:object:root=true

func (*FybrikStorageAccount) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FybrikStorageAccount.

func (*FybrikStorageAccount) DeepCopyInto

func (in *FybrikStorageAccount) DeepCopyInto(out *FybrikStorageAccount)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FybrikStorageAccount) DeepCopyObject

func (in *FybrikStorageAccount) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FybrikStorageAccountList

type FybrikStorageAccountList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []FybrikStorageAccount `json:"items"`
}

FybrikStorageAccountList contains a list of FybrikStorageAccount

func (*FybrikStorageAccountList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FybrikStorageAccountList.

func (*FybrikStorageAccountList) DeepCopyInto

func (in *FybrikStorageAccountList) DeepCopyInto(out *FybrikStorageAccountList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FybrikStorageAccountList) DeepCopyObject

func (in *FybrikStorageAccountList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FybrikStorageAccountSpec

type FybrikStorageAccountSpec struct {
	// +required
	// A name of k8s secret deployed in the control plane.
	// This secret includes secretKey and accessKey credentials for S3 bucket
	SecretRef string `json:"secretRef"`
	// +required
	// Endpoint
	Endpoint string `json:"endpoint"`
	// +required
	// +kubebuilder:validation:MinItems=1
	// Regions
	Regions []string `json:"regions"`
}

FybrikStorageAccountSpec defines the desired state of FybrikStorageAccount

func (*FybrikStorageAccountSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FybrikStorageAccountSpec.

func (*FybrikStorageAccountSpec) DeepCopyInto

func (in *FybrikStorageAccountSpec) DeepCopyInto(out *FybrikStorageAccountSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FybrikStorageAccountStatus

type FybrikStorageAccountStatus struct {
}

FybrikStorageAccountStatus defines the observed state of FybrikStorageAccount

func (*FybrikStorageAccountStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FybrikStorageAccountStatus.

func (*FybrikStorageAccountStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InterfaceDetails

type InterfaceDetails struct {
	// Protocol defines the interface protocol used for data transactions
	// +required
	Protocol string `json:"protocol"`

	// DataFormat defines the data format type
	// +optional
	DataFormat string `json:"dataformat,omitempty"` // To be removed in future
}

InterfaceDetails indicate how the application or module receive or write the data

func (*InterfaceDetails) DeepCopy

func (in *InterfaceDetails) DeepCopy() *InterfaceDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InterfaceDetails.

func (*InterfaceDetails) DeepCopyInto

func (in *InterfaceDetails) DeepCopyInto(out *InterfaceDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetaBlueprint

type MetaBlueprint struct {
	// +required
	Name string `json:"name"`

	// +required
	Namespace string `json:"namespace"`

	// +required
	Status BlueprintStatus `json:"status"`
}

MetaBlueprint defines blueprint metadata (name, namespace) and status

func CreateMetaBlueprint

func CreateMetaBlueprint(blueprint *Blueprint) MetaBlueprint

CreateMetaBlueprint creates MetaBlueprint structure of the given blueprint

func CreateMetaBlueprintWithoutState

func CreateMetaBlueprintWithoutState(blueprint *Blueprint) MetaBlueprint

CreateMetaBlueprintWithoutState creates the MetaBlueprint structure with an empty state

func (*MetaBlueprint) DeepCopy

func (in *MetaBlueprint) DeepCopy() *MetaBlueprint

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetaBlueprint.

func (*MetaBlueprint) DeepCopyInto

func (in *MetaBlueprint) DeepCopyInto(out *MetaBlueprint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ModuleAPI

type ModuleAPI struct {
	// +required
	InterfaceDetails `json:",inline"`
	// +required
	Endpoint EndpointSpec `json:"endpoint"`
}

func (*ModuleAPI) DeepCopy

func (in *ModuleAPI) DeepCopy() *ModuleAPI

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleAPI.

func (*ModuleAPI) DeepCopyInto

func (in *ModuleAPI) DeepCopyInto(out *ModuleAPI)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ModuleArguments

type ModuleArguments struct {
	// Labels of FybrikApplication
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Application selector is used to identify the user workload.
	// It is obtained from FybrikApplication spec.
	// +optional
	AppSelector metav1.LabelSelector `json:"appSelector,omitempty"`

	// CopyArgs are parameters specific to modules that copy data from one data store to another.
	// +optional
	Copy *CopyModuleArgs `json:"copy,omitempty"`

	// ReadArgs are parameters that are specific to modules that enable an application to read data
	// +optional
	Read []ReadModuleArgs `json:"read,omitempty"`

	// WriteArgs are parameters that are specific to modules that enable an application to write data
	// +optional
	Write []WriteModuleArgs `json:"write,omitempty"`
}

ModuleArguments are the parameters passed to a component that runs in the data path In the future might support output args as well The arguments passed depend on the type of module

func (*ModuleArguments) DeepCopy

func (in *ModuleArguments) DeepCopy() *ModuleArguments

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleArguments.

func (*ModuleArguments) DeepCopyInto

func (in *ModuleArguments) DeepCopyInto(out *ModuleArguments)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ModuleCapability added in v0.5.0

type ModuleCapability struct {

	// Capability declares what this module knows how to do - ex: read, write, transform...
	// +required
	Capability CapabilityType `json:"capability"`

	// Scope indicates at what level the capability is used: workload, asset, cluster
	// If not indicated it is assumed to be asset
	// +optional
	Scope CapabilityScope `json:"scope,omitempty"`

	// Copy should have one or more instances in the list, and its content should have source and sink
	// Read should have one or more instances in the list, each with source populated
	// Write should have one or more instances in the list, each with sink populated
	// This field may not be required if not handling data
	// +optional
	SupportedInterfaces []ModuleInOut `json:"supportedInterfaces,omitempty"`

	// API indicates to the application how to access the capabilities provided by the module
	// TODO This is optional but in ModuleAPI the endpoint is required?
	// +optional
	API *ModuleAPI `json:"api,omitempty"`

	// Actions are the data transformations that the module supports
	// +optional
	Actions []SupportedAction `json:"actions,omitempty"`

	// Plugins enable the module to add libraries to perform actions rather than implementing them by itself
	// +optional
	Plugins []Plugin `json:"plugins,omitempty"`
}

Capability declares what this module knows how to do and the types of data it knows how to handle

func (*ModuleCapability) DeepCopy added in v0.5.0

func (in *ModuleCapability) DeepCopy() *ModuleCapability

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleCapability.

func (*ModuleCapability) DeepCopyInto added in v0.5.0

func (in *ModuleCapability) DeepCopyInto(out *ModuleCapability)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ModuleInOut

type ModuleInOut struct {
	// Source specifies the input data protocol and format
	// +optional
	Source *InterfaceDetails `json:"source,omitempty"`

	// Sink specifies the output data protocol and format
	// +optional
	Sink *InterfaceDetails `json:"sink,omitempty"`
}

ModuleInOut specifies the protocol and format of the data input and output by the module - if any

func (*ModuleInOut) DeepCopy

func (in *ModuleInOut) DeepCopy() *ModuleInOut

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleInOut.

func (*ModuleInOut) DeepCopyInto

func (in *ModuleInOut) DeepCopyInto(out *ModuleInOut)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ModuleInfo added in v0.5.0

type ModuleInfo struct {
	// Name of the module
	// +required
	Name string `json:"name"`

	// May be one of service, config or plugin
	// Service: Means that the control plane deploys the component that performs the capability
	// Config: Another pre-installed service performs the capability and the module deployed configures it for the particular workload or dataset
	// Plugin: Indicates that this module performs a capability as part of another service or module rather than as a stand-alone module
	// +required
	Type string `json:"type"`

	// Chart contains the information needed to use helm to install the capability
	// +required
	Chart ChartSpec `json:"chart"`

	// Scope indicates at what level the capability is used: workload, asset, cluster
	// If not indicated it is assumed to be asset
	// +optional
	Scope CapabilityScope `json:"scope,omitempty"`
}

ModuleInfo is a copy of FybrikModule Custom Resource. It contains information to instantiate resource of type FybrikModule.

func (*ModuleInfo) DeepCopy added in v0.5.0

func (in *ModuleInfo) DeepCopy() *ModuleInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleInfo.

func (*ModuleInfo) DeepCopyInto added in v0.5.0

func (in *ModuleInfo) DeepCopyInto(out *ModuleInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ObservedState

type ObservedState struct {
	// Ready represents that the modules have been orchestrated successfully and the data is ready for usage
	Ready bool `json:"ready,omitempty"`
	// Error indicates that there has been an error to orchestrate the modules and provides the error message
	Error string `json:"error,omitempty"`
}

ObservedState represents a part of the generated Blueprint/Plotter resource status that allows update of FybrikApplication status

func (*ObservedState) DeepCopy

func (in *ObservedState) DeepCopy() *ObservedState

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservedState.

func (*ObservedState) DeepCopyInto

func (in *ObservedState) DeepCopyInto(out *ObservedState)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Plotter

type Plotter struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PlotterSpec   `json:"spec,omitempty"`
	Status PlotterStatus `json:"status,omitempty"`
}

Plotter is the Schema for the plotters API

func (*Plotter) DeepCopy

func (in *Plotter) DeepCopy() *Plotter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plotter.

func (*Plotter) DeepCopyInto

func (in *Plotter) DeepCopyInto(out *Plotter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Plotter) DeepCopyObject

func (in *Plotter) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PlotterList

type PlotterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Plotter `json:"items"`
}

PlotterList contains a list of Plotter resources

func (*PlotterList) DeepCopy

func (in *PlotterList) DeepCopy() *PlotterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlotterList.

func (*PlotterList) DeepCopyInto

func (in *PlotterList) DeepCopyInto(out *PlotterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PlotterList) DeepCopyObject

func (in *PlotterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PlotterSpec

type PlotterSpec struct {
	// Selector enables to connect the resource to the application
	// Application labels should match the labels in the selector.
	// For some flows the selector may not be used.
	// +optional
	Selector Selector `json:"appSelector,omitempty"`

	// Assets is a map holding information about the assets
	// The key is the assetID
	// +required
	Assets map[string]AssetDetails `json:"assets"`

	// +required
	Flows []Flow `json:"flows"`

	// Templates is a map holding the templates used in this plotter steps
	// The key is the template name
	// +required
	Templates map[string]Template `json:"templates"`
}

PlotterSpec defines the desired state of Plotter, which is applied in a multi-clustered environment. Plotter declares what needs to be installed and where (as blueprints running on remote clusters) which provides the Data Scientist's application with secure and governed access to the data requested in the FybrikApplication.

func (*PlotterSpec) DeepCopy

func (in *PlotterSpec) DeepCopy() *PlotterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlotterSpec.

func (*PlotterSpec) DeepCopyInto

func (in *PlotterSpec) DeepCopyInto(out *PlotterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PlotterStatus

type PlotterStatus struct {
	// ObservedState includes information to be reported back to the FybrikApplication resource
	// It includes readiness and error indications, as well as user instructions
	// +optional
	ObservedState ObservedState `json:"observedState,omitempty"`

	// ObservedGeneration is taken from the Plotter metadata.  This is used to determine during reconcile
	// whether reconcile was called because the desired state changed, or whether status of the allocated blueprints should be checked.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Flows is a map containing the status for each flow
	// the key is the flow name
	// +optional
	Flows map[string]FlowStatus `json:"flows,omitempty"`

	// Assets is a map containing the status per asset.
	// The key of this map is assetId
	// +optional
	Assets map[string]ObservedState `json:"assets,omitempty"`

	// +optional
	Blueprints map[string]MetaBlueprint `json:"blueprints,omitempty"`

	// Conditions represent the possible error and failure conditions
	// +optional
	Conditions []Condition `json:"conditions,omitempty"`

	// + optional
	ReadyTimestamp *metav1.Time `json:"readyTimestamp,omitempty"`
}

PlotterStatus defines the observed state of Plotter This includes readiness, error message, and indicators received from blueprint resources owned by the Plotter for cleanup and status monitoring

func (*PlotterStatus) DeepCopy

func (in *PlotterStatus) DeepCopy() *PlotterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlotterStatus.

func (*PlotterStatus) DeepCopyInto

func (in *PlotterStatus) DeepCopyInto(out *PlotterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Plugin added in v0.5.0

type Plugin struct {
	// PluginType indicates the technology used for the module and the plugin to interact
	// The values supported should come from the module taxonomy
	// Examples of such mechanisms are vault plugins, wasm, etc
	// +required
	PluginType string `json:"pluginType"`

	// DataFormat indicates the format of data the plugin knows how to process
	DataFormat string `json:"dataFormat"`
}

func (*Plugin) DeepCopy added in v0.5.0

func (in *Plugin) DeepCopy() *Plugin

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plugin.

func (*Plugin) DeepCopyInto added in v0.5.0

func (in *Plugin) DeepCopyInto(out *Plugin)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReadModuleArgs

type ReadModuleArgs struct {
	// Source of the read path module
	// +required
	Source DataStore `json:"source"`

	// AssetID identifies the asset to be used for accessing the data when it is ready
	// It is copied from the FybrikApplication resource
	// +required
	AssetID string `json:"assetID"`

	// Transformations are different types of processing that may be done to the data
	// +optional
	Transformations []SupportedAction `json:"transformations,omitempty"`
}

ReadModuleArgs define the input parameters for modules that read data from location A

func (*ReadModuleArgs) DeepCopy

func (in *ReadModuleArgs) DeepCopy() *ReadModuleArgs

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadModuleArgs.

func (*ReadModuleArgs) DeepCopyInto

func (in *ReadModuleArgs) DeepCopyInto(out *ReadModuleArgs)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceReference

type ResourceReference struct {
	// Name of the resource
	Name string `json:"name"`
	// Namespace of the resource
	Namespace string `json:"namespace"`
	// Kind of the resource (Blueprint, Plotter)
	Kind string `json:"kind"`
	// Version of FybrikApplication that has generated this resource
	AppVersion int64 `json:"appVersion"`
}

ResourceReference contains resource identifier(name, namespace, kind)

func (*ResourceReference) DeepCopy

func (in *ResourceReference) DeepCopy() *ResourceReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReference.

func (*ResourceReference) DeepCopyInto

func (in *ResourceReference) DeepCopyInto(out *ResourceReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ResourceStatusIndicator

type ResourceStatusIndicator struct {
	// Kind provides information about the resource kind
	// +required
	Kind string `json:"kind"`

	// SuccessCondition specifies a condition that indicates that the resource is ready
	// It uses kubernetes label selection syntax (https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/)
	// +required
	SuccessCondition string `json:"successCondition"`

	// FailureCondition specifies a condition that indicates the resource failure
	// It uses kubernetes label selection syntax (https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/)
	// +optional
	FailureCondition string `json:"failureCondition,omitempty"`

	// ErrorMessage specifies the resource field to check for an error, e.g. status.errorMsg
	// +optional
	ErrorMessage string `json:"errorMessage,omitempty"`
}

ResourceStatusIndicator is used to determine the status of an orchestrated resource

func (*ResourceStatusIndicator) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceStatusIndicator.

func (*ResourceStatusIndicator) DeepCopyInto

func (in *ResourceStatusIndicator) DeepCopyInto(out *ResourceStatusIndicator)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Selector

type Selector struct {
	// Cluster name
	// +optional
	ClusterName string `json:"clusterName"`

	// WorkloadSelector enables to connect the resource to the application
	// Application labels should match the labels in the selector.
	// +required
	WorkloadSelector metav1.LabelSelector `json:"workloadSelector"`
}

Selector is a label query over a set of resources in the specified cluster.

func (*Selector) DeepCopy

func (in *Selector) DeepCopy() *Selector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Selector.

func (*Selector) DeepCopyInto

func (in *Selector) DeepCopyInto(out *Selector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Service added in v0.5.0

type Service struct {
	//+required
	Endpoint EndpointSpec `json:"endpoint"`

	// Format represents data format (e.g. parquet) as received from catalog connectors
	// +required
	Format string `json:"format"`
}

Service holds information for accessing a module instance

func (*Service) DeepCopy added in v0.5.0

func (in *Service) DeepCopy() *Service

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.

func (*Service) DeepCopyInto added in v0.5.0

func (in *Service) DeepCopyInto(out *Service)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StepParameters added in v0.5.0

type StepParameters struct {
	// +optional
	Source *StepSource `json:"source,omitempty"`

	// +optional
	Sink *StepSink `json:"sink,omitempty"`

	// +optional
	API *Service `json:"api,omitempty"`

	// Actions are the data transformations that the module supports
	// +optional
	Actions []SupportedAction `json:"action,omitempty"`
}

StepParameters holds the parameters to the module that is deployed in this step

func (*StepParameters) DeepCopy added in v0.5.0

func (in *StepParameters) DeepCopy() *StepParameters

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepParameters.

func (*StepParameters) DeepCopyInto added in v0.5.0

func (in *StepParameters) DeepCopyInto(out *StepParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StepSink added in v0.5.0

type StepSink struct {
	// AssetID identifies the target asset of this step
	// +required
	AssetID string `json:"assetId"`
}

StepSink holds information to where the target data will be written: it could be assetID of an asset specified in fybrikapplication or of an asset created by fybrik control-plane

func (*StepSink) DeepCopy added in v0.5.0

func (in *StepSink) DeepCopy() *StepSink

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepSink.

func (*StepSink) DeepCopyInto added in v0.5.0

func (in *StepSink) DeepCopyInto(out *StepSink)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StepSource added in v0.5.0

type StepSource struct {
	// AssetID identifies the source asset of this step
	// +optional
	AssetID string `json:"assetId,omitempty"`

	//+optional
	API *Service `json:"api,omitempty"`
}

StepSource is the source of this step: it could be assetID or an enpoint of another step

func (*StepSource) DeepCopy added in v0.5.0

func (in *StepSource) DeepCopy() *StepSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepSource.

func (*StepSource) DeepCopyInto added in v0.5.0

func (in *StepSource) DeepCopyInto(out *StepSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SubFlow added in v0.5.0

type SubFlow struct {
	// Name of the SubFlow
	// +required
	Name string `json:"name"`

	// Type of the flow (e.g. read)
	// +required
	FlowType DataFlow `json:"flowType"`

	// Triggers
	// +required
	Triggers []SubFlowTrigger `json:"triggers"`

	// Steps defines a series of sequential/parallel data flow steps
	// The first dimension represents parallel data flows. The second sequential components
	// within the same parallel data flow.
	// +required
	Steps [][]DataFlowStep `json:"steps" protobuf:"bytes,11,opt,name=steps"`
}

Subflows is a list of data flows which are originated from the same data asset but are triggered differently (e.g., one upon init trigger and one upon workload trigger)

func (*SubFlow) DeepCopy added in v0.5.0

func (in *SubFlow) DeepCopy() *SubFlow

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubFlow.

func (*SubFlow) DeepCopyInto added in v0.5.0

func (in *SubFlow) DeepCopyInto(out *SubFlow)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SubFlowTrigger added in v0.5.0

type SubFlowTrigger string

SubFlowTrigger indicates the trigger for this subflow +kubebuilder:validation:Enum=workload;init;timer

const (
	// Init flow trigger
	InitTrigger SubFlowTrigger = "init"

	// Workload flow trigger
	WorkloadTrigger SubFlowTrigger = "workload"

	// Timer flow trigger
	TimerTrigger SubFlowTrigger = "timer"
)

TODO: These will come from the taxonomy in the future.

type SupportedAction

type SupportedAction struct {
	taxonomymodels.Action
}

+kubebuilder:validation:Type=object +kubebuilder:pruning:PreserveUnknownFields

func (*SupportedAction) DeepCopy

func (in *SupportedAction) DeepCopy() *SupportedAction

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupportedAction.

func (*SupportedAction) DeepCopyInto

func (in *SupportedAction) DeepCopyInto(out *SupportedAction)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SupportedAction) MarshalJSON added in v0.5.0

func (action *SupportedAction) MarshalJSON() ([]byte, error)

func (*SupportedAction) UnmarshalJSON added in v0.5.0

func (action *SupportedAction) UnmarshalJSON(data []byte) error

type Template added in v0.5.0

type Template struct {
	// Name of the template
	// +required
	Name string `json:"name,omitempty"`

	// Modules is a list of dependent modules. e.g., if a plugin module is used
	// then the service module is used in should appear first in the modules list of the
	// same template. If the modules list contains more than one module, the first module in the list
	// is referred to as the "primary module" of which all the parameters to this template are
	// sent to.
	// +required
	Modules []ModuleInfo `json:"modules"`
}

Template contains basic information about the required modules to serve the fybrikapplication e.g., the module helm chart name.

func (*Template) DeepCopy added in v0.5.0

func (in *Template) DeepCopy() *Template

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Template.

func (*Template) DeepCopyInto added in v0.5.0

func (in *Template) DeepCopyInto(out *Template)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Vault

type Vault struct {
	// Role is the Vault role used for retrieving the credentials
	// +required
	Role string `json:"role"`
	// SecretPath is the path of the secret holding the Credentials in Vault
	// +required
	SecretPath string `json:"secretPath"`
	// Address is Vault address
	// +required
	Address string `json:"address"`
	// AuthPath is the path to auth method i.e. kubernetes
	// +required
	AuthPath string `json:"authPath"`
}

Holds details for retrieving credentials from Vault store.

func (*Vault) DeepCopy

func (in *Vault) DeepCopy() *Vault

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Vault.

func (*Vault) DeepCopyInto

func (in *Vault) DeepCopyInto(out *Vault)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WriteModuleArgs

type WriteModuleArgs struct {
	// Destination is the data store to which the data will be written
	// +required
	Destination DataStore `json:"destination"`

	// AssetID identifies the asset to be used for accessing the data when it is ready
	// It is copied from the FybrikApplication resource
	// +required
	AssetID string `json:"assetID"`

	// Transformations are different types of processing that may be done to the data as it is written.
	// +optional
	Transformations []SupportedAction `json:"transformations,omitempty"`
}

WriteModuleArgs define the input parameters for modules that write data to location B

func (*WriteModuleArgs) DeepCopy

func (in *WriteModuleArgs) DeepCopy() *WriteModuleArgs

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WriteModuleArgs.

func (*WriteModuleArgs) DeepCopyInto

func (in *WriteModuleArgs) DeepCopyInto(out *WriteModuleArgs)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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