v1alpha1

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the nodecore v1alpha1 API group +kubebuilder:object:generate=true +groupName=nodecore.fluidos.eu

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "nodecore.fluidos.eu", 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 Aggregatable

type Aggregatable struct {
	// MinCount is the minimum requirable number of instances of the Flavour.
	MinCount int `json:"minCount"`

	// MaxCount is the maximum requirable number of instances of the Flavour.
	MaxCount int `json:"maxCount"`
}

Aggregatable represents the aggregation properties of a Flavour, such as the minimum instance count.

func (*Aggregatable) DeepCopy

func (in *Aggregatable) DeepCopy() *Aggregatable

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

func (*Aggregatable) DeepCopyInto

func (in *Aggregatable) DeepCopyInto(out *Aggregatable)

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

type Allocation

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

	Spec   AllocationSpec   `json:"spec,omitempty"`
	Status AllocationStatus `json:"status,omitempty"`
}

Allocation is the Schema for the allocations API.

func (*Allocation) DeepCopy

func (in *Allocation) DeepCopy() *Allocation

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

func (*Allocation) DeepCopyInto

func (in *Allocation) DeepCopyInto(out *Allocation)

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

func (*Allocation) DeepCopyObject

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

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

func (*Allocation) SetStatus added in v0.0.2

func (allocation *Allocation) SetStatus(status Status, msg string)

SetStatus sets the status of the allocation.

type AllocationList

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

AllocationList contains a list of Allocation

func (*AllocationList) DeepCopy

func (in *AllocationList) DeepCopy() *AllocationList

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

func (*AllocationList) DeepCopyInto

func (in *AllocationList) DeepCopyInto(out *AllocationList)

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

func (*AllocationList) DeepCopyObject

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

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

type AllocationSpec

type AllocationSpec struct {
	// This is the ID of the cluster that owns the allocation.
	RemoteClusterID string `json:"remoteClusterID,omitempty"`

	// This is the ID of the intent for which the allocation was created.
	// It is used by the Node Orchestrator to identify the correct allocation for a given intent
	IntentID string `json:"intentID"`

	// This is the corresponding Node or VirtualNode local name
	NodeName string `json:"nodeName"`

	// This specifies the type of the node: Node (Physical node of the cluster) or VirtualNode (Remote node owned by a different cluster)
	Type NodeType `json:"type"`

	// This specifies if the destination of the allocation is local or remote so if the allocation will be used locally or from a remote cluster
	Destination Destination `json:"destination"`

	// This flag indicates if the allocation is a forwarding allocation
	// if true it represents only a placeholder to undertand that the cluster is just a proxy to another cluster
	Forwarding bool `json:"forwarding,omitempty"`

	// This Flavour describes the characteristics of the allocation, it is based on the Flavour CRD from which it was created
	Flavour Flavour `json:"flavour"`

	// This flags indicates if the Flavour from which the allocation was created was partitioned or not
	Partitioned bool `json:"partitioned"`

	// This is the dimension of the allocation
	Resources Characteristics `json:"resources,omitempty"`
}

AllocationSpec defines the desired state of Allocation

func (*AllocationSpec) DeepCopy

func (in *AllocationSpec) DeepCopy() *AllocationSpec

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

func (*AllocationSpec) DeepCopyInto

func (in *AllocationSpec) DeepCopyInto(out *AllocationSpec)

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

type AllocationStatus

type AllocationStatus struct {

	// This allow to know the current status of the allocation
	Status Status `json:"status,omitempty"`

	// The last time the allocation was updated
	LastUpdateTime string `json:"lastUpdateTime,omitempty"`

	// Message contains the last message of the allocation
	Message string `json:"message,omitempty"`
}

AllocationStatus defines the observed state of Allocation.

func (*AllocationStatus) DeepCopy

func (in *AllocationStatus) DeepCopy() *AllocationStatus

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

func (*AllocationStatus) DeepCopyInto

func (in *AllocationStatus) DeepCopyInto(out *AllocationStatus)

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

type Characteristics

type Characteristics struct {

	// Architecture is the architecture of the Flavour.
	Architecture string `json:"architecture"`

	// CPU is the number of CPU cores of the Flavour.
	Cpu resource.Quantity `json:"cpu"`

	// Memory is the amount of RAM of the Flavour.
	Memory resource.Quantity `json:"memory"`

	// Pods is the maximum number of pods of the Flavour.
	Pods resource.Quantity `json:"pods"`

	// GPU is the number of GPU cores of the Flavour.
	Gpu resource.Quantity `json:"gpu,omitempty"`

	// EphemeralStorage is the amount of ephemeral storage of the Flavour.
	EphemeralStorage resource.Quantity `json:"ephemeral-storage,omitempty"`

	// PersistentStorage is the amount of persistent storage of the Flavour.
	PersistentStorage resource.Quantity `json:"persistent-storage,omitempty"`
}

func (*Characteristics) DeepCopy

func (in *Characteristics) DeepCopy() *Characteristics

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

func (*Characteristics) DeepCopyInto

func (in *Characteristics) DeepCopyInto(out *Characteristics)

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

type Destination added in v0.0.2

type Destination string
const (
	Remote Destination = "Remote"
	Local  Destination = "Local"
)

Destination is the destination of the allocation: Local (the allocation will be used locally) or Remote (the allocation will be used from a remote cluster).

type Flavour

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

	Spec   FlavourSpec   `json:"spec,omitempty"`
	Status FlavourStatus `json:"status,omitempty"`
}

+kubebuilder:printcolumn:name="Provider ID",type=string,JSONPath=`.spec.providerID` +kubebuilder:printcolumn:name="Type",type=string,JSONPath=`.spec.type` +kubebuilder:printcolumn:name="CPU",type=string,priority=1,JSONPath=`.spec.characteristics.cpu` +kubebuilder:printcolumn:name="Memory",type=string,priority=1,JSONPath=`.spec.characteristics.memory` +kubebuilder:printcolumn:name="Owner Name",type=string,priority=1,JSONPath=`.spec.owner.nodeID` +kubebuilder:printcolumn:name="Owner Domain",type=string,priority=1,JSONPath=`.spec.owner.domain` +kubebuilder:printcolumn:name="Available",type=boolean,JSONPath=`.spec.optionalFields.availability` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` Flavour is the Schema for the flavours API.

func (*Flavour) DeepCopy

func (in *Flavour) DeepCopy() *Flavour

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

func (*Flavour) DeepCopyInto

func (in *Flavour) DeepCopyInto(out *Flavour)

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

func (*Flavour) DeepCopyObject

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

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

type FlavourList

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

FlavourList contains a list of Flavour

func (*FlavourList) DeepCopy

func (in *FlavourList) DeepCopy() *FlavourList

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

func (*FlavourList) DeepCopyInto

func (in *FlavourList) DeepCopyInto(out *FlavourList)

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

func (*FlavourList) DeepCopyObject

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

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

type FlavourSelector

type FlavourSelector struct {
	FlavourType   string         `json:"type"`
	Architecture  string         `json:"architecture"`
	RangeSelector *RangeSelector `json:"rangeSelector,omitempty"`
	MatchSelector *MatchSelector `json:"matchSelector,omitempty"`
}

func (*FlavourSelector) DeepCopy

func (in *FlavourSelector) DeepCopy() *FlavourSelector

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

func (*FlavourSelector) DeepCopyInto

func (in *FlavourSelector) DeepCopyInto(out *FlavourSelector)

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

type FlavourSpec

type FlavourSpec struct {

	// ProviderID is the ID of the FLUIDOS Node ID that provides this Flavour.
	// It can correspond to ID of the owner FLUIDOS Node or to the ID of a FLUIDOS SuperNode that represents the entry point to a FLUIDOS Domain
	ProviderID string `json:"providerID"`

	// Type is the type of the Flavour. Currently, only K8S is supported.
	Type FlavourType `json:"type"`

	// Characteristics contains the characteristics of the Flavour.
	// They are based on the type of the Flavour and can change depending on it. In this case, the type is K8S so the characteristics are CPU, Memory, GPU and EphemeralStorage.
	Characteristics Characteristics `json:"characteristics"`

	// Policy contains the policy of the Flavour. The policy describes the partitioning and aggregation properties of the Flavour.
	Policy Policy `json:"policy"`

	// Owner contains the identity info of the owner of the Flavour. It can be unknown if the Flavour is provided by a reseller or a third party.
	Owner NodeIdentity `json:"owner"`

	// Price contains the price model of the Flavour.
	Price Price `json:"price"`

	// This field is used to specify the optional fields that can be retrieved from the Flavour.
	// In the future it will be expanded to include more optional fields defined in the REAR Protocol or custom ones.
	OptionalFields OptionalFields `json:"optionalFields"`
}

FlavourSpec defines the desired state of Flavour

func (*FlavourSpec) DeepCopy

func (in *FlavourSpec) DeepCopy() *FlavourSpec

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

func (*FlavourSpec) DeepCopyInto

func (in *FlavourSpec) DeepCopyInto(out *FlavourSpec)

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

type FlavourStatus

type FlavourStatus struct {

	// This field represents the expiration time of the Flavour. It is used to determine when the Flavour is no longer valid.
	ExpirationTime string `json:"expirationTime"`

	// This field represents the creation time of the Flavour.
	CreationTime string `json:"creationTime"`

	// This field represents the last update time of the Flavour.
	LastUpdateTime string `json:"lastUpdateTime"`
}

FlavourStatus defines the observed state of Flavour.

func (*FlavourStatus) DeepCopy

func (in *FlavourStatus) DeepCopy() *FlavourStatus

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

func (*FlavourStatus) DeepCopyInto

func (in *FlavourStatus) DeepCopyInto(out *FlavourStatus)

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

type FlavourType

type FlavourType string
const (
	K8S FlavourType = "k8s-fluidos"
)

type GenericRef

type GenericRef struct {
	// The name of the resource to be referenced.
	Name string `json:"name,omitempty"`

	// The namespace containing the resource to be referenced. It should be left
	// empty in case of cluster-wide resources.
	Namespace string `json:"namespace,omitempty"`
}

GenericRef represents a reference to a generic Kubernetes resource, and it is composed of the resource name and (optionally) its namespace.

func (*GenericRef) DeepCopy

func (in *GenericRef) DeepCopy() *GenericRef

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

func (*GenericRef) DeepCopyInto

func (in *GenericRef) DeepCopyInto(out *GenericRef)

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

type LiqoCredentials added in v0.0.2

type LiqoCredentials struct {
	ClusterID   string `json:"clusterID"`
	ClusterName string `json:"clusterName"`
	Token       string `json:"token"`
	Endpoint    string `json:"endpoint"`
}

LiqoCredentials contains the credentials of a Liqo cluster to enstablish a peering.

func (*LiqoCredentials) DeepCopy added in v0.0.2

func (in *LiqoCredentials) DeepCopy() *LiqoCredentials

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

func (*LiqoCredentials) DeepCopyInto added in v0.0.2

func (in *LiqoCredentials) DeepCopyInto(out *LiqoCredentials)

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

type MatchSelector

type MatchSelector struct {
	CPU              resource.Quantity `json:"cpu,omitempty"`
	Memory           resource.Quantity `json:"memory,omitempty"`
	Pods             resource.Quantity `json:"pods,omitempty"`
	Storage          resource.Quantity `json:"storage,omitempty"`
	EphemeralStorage resource.Quantity `json:"ephemeralStorage,omitempty"`
	Gpu              resource.Quantity `json:"gpu,omitempty"`
}

MatchSelector represents the criteria for selecting Flavours through a strict match.

func (*MatchSelector) DeepCopy

func (in *MatchSelector) DeepCopy() *MatchSelector

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

func (*MatchSelector) DeepCopyInto

func (in *MatchSelector) DeepCopyInto(out *MatchSelector)

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

type NodeIdentity

type NodeIdentity struct {
	Domain string `json:"domain"`
	NodeID string `json:"nodeID"`
	IP     string `json:"ip"`
}

NodeIdentity is the identity of a FLUIDOS Node.

func (*NodeIdentity) DeepCopy

func (in *NodeIdentity) DeepCopy() *NodeIdentity

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

func (*NodeIdentity) DeepCopyInto

func (in *NodeIdentity) DeepCopyInto(out *NodeIdentity)

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

type NodeType

type NodeType string
const (
	Node        NodeType = "Node"
	VirtualNode NodeType = "VirtualNode"
)

NodeType is the type of the node: Node (Physical node of the cluster) or VirtualNode (Remote node owned by a different cluster).

type OptionalFields

type OptionalFields struct {

	// Availability is the availability flag of the Flavour.
	// It is a field inherited from the REAR Protocol specifications.
	Availability bool `json:"availability,omitempty"`

	// WorkerID is the ID of the worker that provides the Flavour.
	WorkerID string `json:"workerID,omitempty"`
}

func (*OptionalFields) DeepCopy

func (in *OptionalFields) DeepCopy() *OptionalFields

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

func (*OptionalFields) DeepCopyInto

func (in *OptionalFields) DeepCopyInto(out *OptionalFields)

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

type Partition added in v0.0.2

type Partition struct {
	Architecture     string            `json:"architecture"`
	CPU              resource.Quantity `json:"cpu"`
	Memory           resource.Quantity `json:"memory"`
	Pods             resource.Quantity `json:"pods"`
	Gpu              resource.Quantity `json:"gpu,omitempty"`
	EphemeralStorage resource.Quantity `json:"ephemeral-storage,omitempty"`
	Storage          resource.Quantity `json:"storage,omitempty"`
}

Partition is the partition of the flavour.

func (*Partition) DeepCopy added in v0.0.2

func (in *Partition) DeepCopy() *Partition

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

func (*Partition) DeepCopyInto added in v0.0.2

func (in *Partition) DeepCopyInto(out *Partition)

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

type Partitionable

type Partitionable struct {
	// CpuMin is the minimum requirable number of CPU cores of the Flavour.
	CpuMin resource.Quantity `json:"cpuMin"`

	// MemoryMin is the minimum requirable amount of RAM of the Flavour.
	MemoryMin resource.Quantity `json:"memoryMin"`

	// PodsMin is the minimum requirable number of pods of the Flavour.
	PodsMin resource.Quantity `json:"podsMin"`

	// CpuStep is the incremental value of CPU cores of the Flavour.
	CpuStep resource.Quantity `json:"cpuStep"`

	// MemoryStep is the incremental value of RAM of the Flavour.
	MemoryStep resource.Quantity `json:"memoryStep"`

	// PodsStep is the incremental value of pods of the Flavour.
	PodsStep resource.Quantity `json:"podsStep"`
}

Partitionable represents the partitioning properties of a Flavour, such as the minimum and incremental values of CPU and RAM.

func (*Partitionable) DeepCopy

func (in *Partitionable) DeepCopy() *Partitionable

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

func (*Partitionable) DeepCopyInto

func (in *Partitionable) DeepCopyInto(out *Partitionable)

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

type Phase

type Phase string
const (
	PhaseSolved     Phase = "Solved"
	PhaseFailed     Phase = "Failed"
	PhaseRunning    Phase = "Running"
	PhaseAllocating Phase = "Allocating"
	PhaseIdle       Phase = "Idle"
	PhaseTimeout    Phase = "Timed Out"
	PhaseActive     Phase = "Active"
	PhasePending    Phase = "Pending"
	PhaseInactive   Phase = "Inactive"
)

Set of constants for the phases of the FLUIDOS Node modules.

type PhaseStatus

type PhaseStatus struct {
	Phase          Phase  `json:"phase"`
	Message        string `json:"message,omitempty"`
	StartTime      string `json:"startTime,omitempty"`
	LastChangeTime string `json:"lastChangeTime,omitempty"`
	EndTime        string `json:"endTime,omitempty"`
}

PhaseStatus represents the status of a phase of the solver. I.e. the status of the REAR phases.

func (*PhaseStatus) DeepCopy

func (in *PhaseStatus) DeepCopy() *PhaseStatus

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

func (*PhaseStatus) DeepCopyInto

func (in *PhaseStatus) DeepCopyInto(out *PhaseStatus)

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

type Policy

type Policy struct {

	// Partitionable contains the partitioning properties of the Flavour.
	Partitionable *Partitionable `json:"partitionable,omitempty"`

	// Aggregatable contains the aggregation properties of the Flavour.
	Aggregatable *Aggregatable `json:"aggregatable,omitempty"`
}

func (*Policy) DeepCopy

func (in *Policy) DeepCopy() *Policy

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

func (*Policy) DeepCopyInto

func (in *Policy) DeepCopyInto(out *Policy)

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

type Price

type Price struct {

	// Amount is the amount of the price.
	Amount string `json:"amount"`

	// Currency is the currency of the price.
	Currency string `json:"currency"`

	// Period is the period of the price.
	Period string `json:"period"`
}

func (*Price) DeepCopy

func (in *Price) DeepCopy() *Price

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

func (*Price) DeepCopyInto

func (in *Price) DeepCopyInto(out *Price)

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

type RangeSelector

type RangeSelector struct {
	MinCpu     resource.Quantity `json:"minCpu,omitempty"`
	MinMemory  resource.Quantity `json:"minMemory,omitempty"`
	MinPods    resource.Quantity `json:"minPods,omitempty"`
	MinEph     resource.Quantity `json:"minEph,omitempty"`
	MinStorage resource.Quantity `json:"minStorage,omitempty"`
	MinGpu     resource.Quantity `json:"minGpu,omitempty"`
	MaxCpu     resource.Quantity `json:"MaxCpu,omitempty"`
	MaxMemory  resource.Quantity `json:"MaxMemory,omitempty"`
	MaxPods    resource.Quantity `json:"MaxPods,omitempty"`
	MaxEph     resource.Quantity `json:"MaxEph,omitempty"`
	MaxStorage resource.Quantity `json:"MaxStorage,omitempty"`
	MaxGpu     resource.Quantity `json:"MaxGpu,omitempty"`
}

RangeSelector represents the criteria for selecting Flavours through a range.

func (*RangeSelector) DeepCopy

func (in *RangeSelector) DeepCopy() *RangeSelector

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

func (*RangeSelector) DeepCopyInto

func (in *RangeSelector) DeepCopyInto(out *RangeSelector)

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

type Solver

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

	Spec   SolverSpec   `json:"spec,omitempty"`
	Status SolverStatus `json:"status,omitempty"`
}

Solver is the Schema for the solvers API +kubebuilder:printcolumn:name="Intent ID",type=string,JSONPath=`.spec.intentID` +kubebuilder:printcolumn:name="Find Candidate",type=boolean,JSONPath=`.spec.findCandidate` +kubebuilder:printcolumn:name="Reserve and Buy",type=boolean,JSONPath=`.spec.reserveAndBuy` +kubebuilder:printcolumn:name="Peering",type=boolean,JSONPath=`.spec.enstablishPeering` +kubebuilder:printcolumn:name="Candidate Phase",type=string,priority=1,JSONPath=`.status.findCandidate` +kubebuilder:printcolumn:name="Reserving Phase",type=string,priority=1,JSONPath=`.status.reserveAndBuy` +kubebuilder:printcolumn:name="Peering Phase",type=string,priority=1,JSONPath=`.status.peering` +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.solverPhase.phase` +kubebuilder:printcolumn:name="Message",type=string,JSONPath=`.status.solverPhase.message` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp` Solver is the Schema for the solvers API

func (*Solver) DeepCopy

func (in *Solver) DeepCopy() *Solver

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

func (*Solver) DeepCopyInto

func (in *Solver) DeepCopyInto(out *Solver)

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

func (*Solver) DeepCopyObject

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

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

func (*Solver) SetDiscoveryStatus

func (solver *Solver) SetDiscoveryStatus(phase Phase)

SetDiscoveryStatus sets the discovery phase of the solver

func (*Solver) SetFindCandidateStatus

func (solver *Solver) SetFindCandidateStatus(phase Phase)

SetFindCandidateStatus sets the FindCandidate phase of the solver

func (*Solver) SetPeeringStatus added in v0.0.2

func (solver *Solver) SetPeeringStatus(phase Phase)

SetPeeringStatus sets the Peering phase of the solver.

func (*Solver) SetPhase

func (solver *Solver) SetPhase(phase Phase, msg string)

func (*Solver) SetReservationStatus

func (solver *Solver) SetReservationStatus(phase Phase)

SetReservationStatus sets the reservation phase of the solver

func (*Solver) SetReserveAndBuyStatus

func (solver *Solver) SetReserveAndBuyStatus(phase Phase)

SetPurchasePhase sets the ReserveAndBuy phase of the solver

type SolverList

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

SolverList contains a list of Solver

func (*SolverList) DeepCopy

func (in *SolverList) DeepCopy() *SolverList

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

func (*SolverList) DeepCopyInto

func (in *SolverList) DeepCopyInto(out *SolverList)

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

func (*SolverList) DeepCopyObject

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

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

type SolverSpec

type SolverSpec struct {

	// Selector contains the flavour requirements for the solver.
	Selector *FlavourSelector `json:"selector,omitempty"`

	// IntentID is the ID of the intent that the Node Orchestrator is trying to solve.
	// It is used to link the solver with the intent.
	IntentID string `json:"intentID"`

	// FindCandidate is a flag that indicates if the solver should find a candidate to solve the intent.
	FindCandidate bool `json:"findCandidate,omitempty"`

	// ReserveAndBuy is a flag that indicates if the solver should reserve and buy the resources on the candidate.
	ReserveAndBuy bool `json:"reserveAndBuy,omitempty"`

	// EnstablishPeering is a flag that indicates if the solver should enstablish a peering with the candidate.
	EnstablishPeering bool `json:"enstablishPeering,omitempty"`
}

SolverSpec defines the desired state of Solver

func (*SolverSpec) DeepCopy

func (in *SolverSpec) DeepCopy() *SolverSpec

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

func (*SolverSpec) DeepCopyInto

func (in *SolverSpec) DeepCopyInto(out *SolverSpec)

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

type SolverStatus

type SolverStatus struct {

	// FindCandidate describes the status of research of the candidate.
	// Rear Manager is looking for the best candidate Flavour to solve the Node Orchestrator request.
	FindCandidate Phase `json:"findCandidate,omitempty"`

	// ReserveAndBuy describes the status of the reservation and purchase of selected Flavour.
	// Rear Manager is trying to reserve and purchase the resources on the candidate FLUIDOS Node.
	ReserveAndBuy Phase `json:"reserveAndBuy,omitempty"`

	// Peering describes the status of the peering with the candidate.
	// Rear Manager is trying to enstablish a peering with the candidate FLUIDOS Node.
	Peering Phase `json:"peering,omitempty"`

	// DiscoveryPhase describes the status of the Discovery where the Discovery Manager
	// is looking for matching flavours outside the FLUIDOS Node
	DiscoveryPhase Phase `json:"discoveryPhase,omitempty"`

	// ReservationPhase describes the status of the Reservation where the Contract Manager
	// is reserving and purchasing the resources on the candidate node.
	ReservationPhase Phase `json:"reservationPhase,omitempty"`

	// ConsumePhase describes the status of the Consume phase where the VFM (Liqo) is enstablishing
	// a peering with the candidate node.
	ConsumePhase Phase `json:"consumePhase,omitempty"`

	// SolverPhase describes the status of the Solver generated by the Node Orchestrator.
	// It is usefull to understand if the solver is still running or if it has finished or failed.
	SolverPhase PhaseStatus `json:"solverPhase,omitempty"`

	// Allocation contains the allocation that the solver has eventually created for the intent.
	// It can correspond to a virtual node
	// The Node Orchestrator will use this allocation to fullfill the intent.
	Allocation GenericRef `json:"allocation,omitempty"`

	// Contract contains the Contract that the Contract Manager has eventually created with the candidate.
	Contract GenericRef `json:"contract,omitempty"`

	// Credentials contains the LiqoCredentials found in the Contract.
	Credentials LiqoCredentials `json:"credentials,omitempty"`
}

SolverStatus defines the observed state of Solver

func (*SolverStatus) DeepCopy

func (in *SolverStatus) DeepCopy() *SolverStatus

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

func (*SolverStatus) DeepCopyInto

func (in *SolverStatus) DeepCopyInto(out *SolverStatus)

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

type Status

type Status string
const (
	Active   Status = "Active"
	Reserved Status = "Reserved"
	Released Status = "Released"
	Inactive Status = "Inactive"
	Error    Status = "Error"
)

Status is the status of the allocation.

Jump to

Keyboard shortcuts

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