v1alpha1

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2022 License: Apache-2.0 Imports: 15 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/blueprint-namespace"
	BlueprintNameLabel      = "app.fybrik.io/blueprint-name"
)
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"
	StorageAccountUndefined     string = "no storage account has been defined"
	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 (
	ApplicationClusterLabel   = "app.fybrik.io/app-cluster"
	ApplicationNamespaceLabel = "app.fybrik.io/app-namespace"
	ApplicationNameLabel      = "app.fybrik.io/app-name"
)
View Source
const (
	S3          taxonomy.ConnectionType = "s3"
	Kafka       taxonomy.ConnectionType = "kafka"
	JdbcDB2     taxonomy.ConnectionType = "db2"
	ArrowFlight taxonomy.ConnectionType = "fybrik-arrow-flight"

	Parquet taxonomy.DataFormat = "parquet"
	CSV     taxonomy.DataFormat = "csv"
)

connection types and formats used in tests and mockup 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 struct {
	// Application selector is used to identify the user workload.
	// It is obtained from FybrikApplication spec.
	// +optional
	WorkloadSelector metav1.LabelSelector `json:"selector,omitempty"`

	// Application context such as intent, role, etc.
	// +optional
	Context taxonomy.AppInfo `json:"context,omitempty"`
}

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 AssetContext added in v0.7.0

type AssetContext struct {
	// List of datastores associated with the asset
	// +optional
	Arguments []*DataStore `json:"args,omitempty"`

	// 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 []taxonomy.Action `json:"transformations,omitempty"`

	// Capability of the module
	// +required
	Capability taxonomy.Capability `json:"capability"`
}

AssetContext defines the input parameters for modules that access an asset

func (*AssetContext) DeepCopy added in v0.7.0

func (in *AssetContext) DeepCopy() *AssetContext

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

func (*AssetContext) DeepCopyInto added in v0.7.0

func (in *AssetContext) DeepCopyInto(out *AssetContext)

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 taxonomy.Connection `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"`

	// +required
	Spec   BlueprintSpec   `json:"spec"`
	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"`

	// ModulesNamespace is the namespace where modules should be allocated
	// +required
	ModulesNamespace string `json:"modulesNamespace"`

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

	// ApplicationContext is a context of the origin FybrikApplication (labels, properties, etc.)
	// +optional
	Application *ApplicationDetails `json:"application,omitempty"`
}

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 per workload (FybrikApplication). 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 moduleInstanceName which is the unique name for the deployed instance related to this workload
	// +optional
	ModulesState map[string]ObservedState `json:"modules,omitempty"`

	// 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 for the 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 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, one of (`True`, `False`, `Unknown`).
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=True;False;Unknown
	// +kubebuilder:default:=Unknown
	Status corev1.ConditionStatus `json:"status"`
	// Message contains the details of the current condition
	// +optional
	Message string `json:"message,omitempty"`
	// ObservedGeneration is the version of the resource for which the condition has been evaluated
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,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 ConditionType = "Error"
	DenyCondition  ConditionType = "Deny"
	ReadyCondition ConditionType = "Ready"
	ValidCondition ConditionType = "Valid"
)

Constants defining condition types

type DataContext

type DataContext struct {
	// DataSetID is a unique identifier of the dataset chosen from the data catalog.
	// For data catalogs that support multiple sub-catalogs, it includes the catalog id and the dataset id.
	// When writing a new dataset it is the name provided by the user or workload generating it.
	// +required
	// +kubebuilder:validation:MinLength=1
	DataSetID string `json:"dataSetID"`

	// Flows indicates what is being done with the particular dataset - ex: read, write, copy (ingest), delete
	// This is optional for the purpose of backward compatibility.
	// If nothing is provided, read is assumed.
	// +optional
	Flow taxonomy.DataFlow `json:"flow,omitempty"`

	// Requirements from the system
	// +required
	Requirements DataRequirements `json:"requirements"`
}

DataContext indicates data set being processed by the workload and includes information about the data format and technologies used 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 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
	// +optional
	Interface *taxonomy.Interface `json:"interface,omitempty"`

	// FlowParams include the requirements for particular data flows
	// +optional
	FlowParams FlowRequirements `json:"flowParams,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.
	// +optional
	Vault map[string]Vault `json:"vault,omitempty"`
	// Connection has the relevant details for accesing the data (url, table, ssl, etc.)
	// +required
	Connection taxonomy.Connection `json:"connection"`
	// Format represents data format (e.g. parquet) as received from catalog connectors
	// +optional
	Format taxonomy.DataFormat `json:"format,omitempty"`
}

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
	// +optional
	DatasetRef string `json:"datasetRef,omitempty"`

	// Reference to a secret where the credentials are stored
	// +optional
	SecretRef SecretRef `json:"secretRef,omitempty"`

	// Dataset information
	// +optional
	Details *DataStore `json:"details,omitempty"`

	// Resource Metadata
	// +optional
	ResourceMetadata *datacatalog.ResourceMetadata `json:"resourceMetadata,omitempty"`
}

DatasetDetails holds details of the provisioned storage

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 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 taxonomy.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 FlowRequirements added in v0.7.0

type FlowRequirements struct {
	// Catalog indicates that the data asset must be cataloged, and in which catalog to register it
	// +optional
	Catalog string `json:"catalog,omitempty"`

	// Storage estimate indicates the estimated amount of storage in MB, GB, TB required when writing new data.
	// +optional
	StorageEstimate datasize.ByteSize `json:"storageEstimate,omitempty"`

	// IsNewDataSet if true indicates that the DataContext.DataSetID is user provided and not a full catalog / dataset ID.
	// Relevant when writing.
	// A unique ID from the catalog will be provided in the FybrikApplication Status after a new catalog entry is created.
	// +optional
	IsNewDataSet bool `json:"isNewDataSet,omitempty"`

	// Source asset metadata like asset name, owner, geography, etc
	// Relevant when writing new asset.
	// +optional
	ResourceMetadata *datacatalog.ResourceMetadata `json:"metadata,omitempty"`
}

FlowRequirements include the requirements specific to the flow Note: Implicit copies done for data plane optimization by Fybrik do not use these parameters

func (*FlowRequirements) DeepCopy added in v0.7.0

func (in *FlowRequirements) DeepCopy() *FlowRequirements

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

func (*FlowRequirements) DeepCopyInto added in v0.7.0

func (in *FlowRequirements) DeepCopyInto(out *FlowRequirements)

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"`

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

FybrikApplication provides information about the application whose data is being operated on, the nature of the processing, and the data sets chosen for processing by the application. The FybrikApplication controller 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 Plotter which defines the secure runtime environment and all the components in it. This runtime environment provides the 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 the credential management system. +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.
	// +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 application.
	// +required
	AppInfo taxonomy.AppInfo `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 data flows needed by the application, the purpose and other contextual information about the application. +fybrik:validation:object="fybrik_application"

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"`
	Status FybrikModuleStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status 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.

func (*FybrikModule) SetupWebhookWithManager added in v0.6.0

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

func (*FybrikModule) ValidateCreate added in v0.6.0

func (r *FybrikModule) ValidateCreate() error

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

func (*FybrikModule) ValidateDelete added in v0.6.0

func (r *FybrikModule) ValidateDelete() error

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

func (*FybrikModule) ValidateFybrikModule added in v0.6.0

func (r *FybrikModule) ValidateFybrikModule(taxonomyFile string) error

func (*FybrikModule) ValidateUpdate added in v0.6.0

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

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

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. +fybrik:validation:object="fybrik_module"

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 FybrikModuleStatus added in v0.6.0

type FybrikModuleStatus struct {
	// Conditions indicate the module states with respect to validation
	Conditions []Condition `json:"conditions,omitempty"`
}

FybrikModuleStatus defines the observed state of FybrikModule.

func (*FybrikModuleStatus) DeepCopy added in v0.6.0

func (in *FybrikModuleStatus) DeepCopy() *FybrikModuleStatus

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

func (*FybrikModuleStatus) DeepCopyInto added in v0.6.0

func (in *FybrikModuleStatus) DeepCopyInto(out *FybrikModuleStatus)

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"`

	// +required
	Spec   FybrikStorageAccountSpec   `json:"spec"`
	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 {
	// Identification of a storage account
	// +required
	ID string `json:"id"`
	// +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
	// Storage region
	Region taxonomy.ProcessingLocation `json:"region"`
	// +required
	// Endpoint for accessing the data
	Endpoint string `json:"endpoint"`
}

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 HelmValues added in v1.0.0

type HelmValues struct {
	// Asset specific arguments such as data stores and transformations
	ModuleArguments `json:",inline"`
	// Application details such as workload selector and user information
	*ApplicationDetails `json:",inline"`
	// Application and debug labels
	Labels map[string]string `json:"labels"`
	// Application unique identifier
	UUID string `json:"uuid"`
}

HelmValues are the values passed to modules during orchestration of the data plane

func (*HelmValues) DeepCopy added in v1.0.0

func (in *HelmValues) DeepCopy() *HelmValues

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

func (*HelmValues) DeepCopyInto added in v1.0.0

func (in *HelmValues) DeepCopyInto(out *HelmValues)

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 ModuleArguments

type ModuleArguments struct {
	// Assets define asset related arguments, such as data source, transformations, etc.
	// +optional
	Assets []AssetContext `json:"assets,omitempty"`
}

ModuleArguments are the parameters passed to a component that runs in the data path

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 taxonomy.Capability `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
	// +optional
	API *datacatalog.ResourceDetails `json:"api,omitempty"`

	// Actions are the data transformations that the module supports
	// +optional
	Actions []ModuleSupportedAction `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 *taxonomy.Interface `json:"source,omitempty"`

	// Sink specifies the output data protocol and format
	// +optional
	Sink *taxonomy.Interface `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"`

	// Module capability
	// +required
	Capability taxonomy.Capability `json:"capability"`
}

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 ModuleSupportedAction added in v0.6.0

type ModuleSupportedAction struct {
	// Unique name of an action supported by the module
	// +required
	Name taxonomy.ActionName `json:"name"`
}

func (*ModuleSupportedAction) DeepCopy added in v0.6.0

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

func (*ModuleSupportedAction) DeepCopyInto added in v0.6.0

func (in *ModuleSupportedAction) DeepCopyInto(out *ModuleSupportedAction)

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"`

	// +required
	Spec   PlotterSpec   `json:"spec"`
	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"`

	// Application context to be transferred to the modules
	AppInfo taxonomy.AppInfo `json:"appInfo,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"`

	// ModulesNamespace is the namespace where modules should be allocated
	// +required
	ModulesNamespace string `json:"modulesNamespace"`

	// 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 taxonomy.PluginType `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 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 SecretRef added in v0.7.0

type SecretRef struct {
	// Secret Namespace
	// +required
	Namespace string `json:"namespace"`
	// Secret name
	// +required
	Name string `json:"name"`
}

SecretRef contains the details of a secret

func (*SecretRef) DeepCopy added in v0.7.0

func (in *SecretRef) DeepCopy() *SecretRef

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

func (*SecretRef) DeepCopyInto added in v0.7.0

func (in *SecretRef) DeepCopyInto(out *SecretRef)

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 StepArgument added in v0.7.0

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

	// API holds information for accessing a module instance
	// +optional
	API *datacatalog.ResourceDetails `json:"api,omitempty"`
}

StepArgument describes a step: it could be assetID or an endpoint of another step

func (*StepArgument) DeepCopy added in v0.7.0

func (in *StepArgument) DeepCopy() *StepArgument

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

func (*StepArgument) DeepCopyInto added in v0.7.0

func (in *StepArgument) DeepCopyInto(out *StepArgument)

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
	Arguments []*StepArgument `json:"args,omitempty"`

	// +optional
	API *datacatalog.ResourceDetails `json:"api,omitempty"`

	// Actions are the data transformations that the module supports
	// +optional
	Actions []taxonomy.Action `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 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 taxonomy.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 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.

Jump to

Keyboard shortcuts

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