v1alpha2

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2024 License: Apache-2.0 Imports: 23 Imported by: 1

Documentation

Overview

Package v1alpha2 contains API Schema definitions for the dws v1alpha2 API group +kubebuilder:object:generate=true +groupName=dataworkflowservices.github.io

Index

Constants

View Source
const (
	// DirectiveLifetimeJob specifies storage allocated for the lifetime of the job
	DirectiveLifetimeJob = "job"
	// DirectiveLifetimePersistent specifies storage allocated an indefinite lifetime usually longer than a job
	DirectiveLifetimePersistent = "persistent"
)
View Source
const (
	StorageLifetimePersistent = "persistent"
	StorageLifetimeJob        = "job"
)
View Source
const (
	OwnerKindLabel      = "dataworkflowservices.github.io/owner.kind"
	OwnerNameLabel      = "dataworkflowservices.github.io/owner.name"
	OwnerNamespaceLabel = "dataworkflowservices.github.io/owner.namespace"
	OwnerUidLabel       = "dataworkflowservices.github.io/owner.uid"
)
View Source
const (
	// PersistentStorageNameLabel is defined for resources that relate to the name of a DWS PersistentStorageInstance
	PersistentStorageNameLabel = "dataworkflowservices.github.io/persistentstorage.name"

	// PersistentStorageNamespaceLabel is defined for resources that relate to the namespace of a DWS PersistentStorageInstance
	PersistentStorageNamespaceLabel = "dataworkflowservices.github.io/persistentstorage.namespace"
)
View Source
const (
	// WorkflowNameLabel is defined for resources that relate to the name of a DWS Workflow
	WorkflowNameLabel = "dataworkflowservices.github.io/workflow.name"

	// WorkflowNamespaceLabel is defined for resources that relate to the namespace of a DWS Workflow
	WorkflowNamespaceLabel = "dataworkflowservices.github.io/workflow.namespace"

	// WorkflowUIDLabel holds the UID of the parent workflow resource
	WorkflowUidLabel = "dataworkflowservices.github.io/workflow.uid"
)
View Source
const (
	StatusPending            = "Pending"
	StatusQueued             = "Queued"
	StatusRunning            = "Running"
	StatusCompleted          = "Completed"
	StatusTransientCondition = "TransientCondition"
	StatusError              = "Error"
	StatusDriverWait         = "DriverWait"
)

Strings associated with workflow statuses

View Source
const (
	// StorageTypeLabel is the label key used for tagging Storage resources
	// with a driver specific label. For example: dataworkflowservices.github.io/storage=Rabbit
	StorageTypeLabel = "dataworkflowservices.github.io/storage"
)

Variables

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

	// 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

func AddOwnerLabels

func AddOwnerLabels(child metav1.Object, owner metav1.Object)

AddOwnerLabels adds labels to a child resource that identifies the owner

func AddPersistentStorageLabels

func AddPersistentStorageLabels(child metav1.Object, persistentStorage *PersistentStorageInstance)

AddPersistentStorageLabels adds labels to a resource to indicate which persistent storage instance it belongs to

func AddWorkflowLabels

func AddWorkflowLabels(child metav1.Object, workflow *Workflow)

AddWorkflowLabels adds labels to a resource to indicate which workflow it belongs to

func InheritParentLabels

func InheritParentLabels(child metav1.Object, owner metav1.Object)

InheritParentLabels adds all labels from a parent resource to a child resource, excluding the owner labels

func MatchingOwner

func MatchingOwner(owner metav1.Object) client.MatchingLabels

MatchingOwner returns the MatchingLabels to match the owner labels

func MatchingPersistentStorage

func MatchingPersistentStorage(persistentStorage *PersistentStorageInstance) client.MatchingLabels

MatchingPersistentStorage returns the MatchingLabels to match the persistent storage labels

func MatchingWorkflow

func MatchingWorkflow(workflow *Workflow) client.MatchingLabels

MatchingWorkflow returns the MatchingLabels to match the workflow labels

func OwnerLabelMapFunc

func OwnerLabelMapFunc(ctx context.Context, o client.Object) []reconcile.Request

func RemoveOwnerLabels

func RemoveOwnerLabels(child metav1.Object)

func SeverityStringToStatus

func SeverityStringToStatus(severity string) (string, error)

SeverityStringToStatus will return a Status* string that goes with the given severity. An empty severity string will be considered a minor severity.

Types

type AllocationSetColocationConstraint

type AllocationSetColocationConstraint struct {
	// Type of colocation constraint
	// +kubebuilder:validation:Enum=exclusive
	Type string `json:"type"`

	// Key shared by all the allocation sets that have their location constrained
	// in relation to each other.
	Key string `json:"key"`
}

AllocationSetColocationConstraint specifies how to colocate storage resources. A colocation constraint specifies how the location(s) of an allocation set should be selected with relation to other allocation sets. Locations for allocation sets with the same colocation key should be picked according to the colocation type.

func (*AllocationSetColocationConstraint) DeepCopy

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

func (*AllocationSetColocationConstraint) DeepCopyInto

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

type AllocationSetConstraints

type AllocationSetConstraints struct {
	// Labels is a list of labels is used to filter the Storage resources
	Labels []string `json:"labels,omitempty"`

	// Scale is a hint for the number of allocations to make based on a 1-10 value
	// +kubebuilder:validation:Minimum:=1
	// +kubebuilder:validation:Maximum:=10
	Scale int `json:"scale,omitempty"`

	// Count is the number of the allocations to make
	// +kubebuilder:validation:Minimum:=1
	Count int `json:"count,omitempty"`

	// Colocation is a list of constraints for which Storage resources
	// to pick in relation to Storage resources for other allocation sets.
	Colocation []AllocationSetColocationConstraint `json:"colocation,omitempty"`
}

AllocationSetConstraints specifies the constraints required for colocation of Storage resources

func (*AllocationSetConstraints) DeepCopy

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

func (*AllocationSetConstraints) DeepCopyInto

func (in *AllocationSetConstraints) DeepCopyInto(out *AllocationSetConstraints)

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

type AllocationStrategy

type AllocationStrategy string
const (
	AllocatePerCompute    AllocationStrategy = "AllocatePerCompute"
	AllocateAcrossServers AllocationStrategy = "AllocateAcrossServers"
	AllocateSingleServer  AllocationStrategy = "AllocateSingleServer"
)

type ClientMount

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

	Spec   ClientMountSpec   `json:"spec,omitempty"`
	Status ClientMountStatus `json:"status,omitempty"`
}

ClientMount is the Schema for the clientmounts API

func (*ClientMount) DeepCopy

func (in *ClientMount) DeepCopy() *ClientMount

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

func (*ClientMount) DeepCopyInto

func (in *ClientMount) DeepCopyInto(out *ClientMount)

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

func (*ClientMount) DeepCopyObject

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

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

func (*ClientMount) GetStatus

func (c *ClientMount) GetStatus() updater.Status[*ClientMountStatus]

func (*ClientMount) Hub

func (*ClientMount) Hub()

func (*ClientMount) SetupWebhookWithManager

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

type ClientMountDevice

type ClientMountDevice struct {
	// +kubebuilder:validation:Enum=lustre;lvm;reference
	Type ClientMountDeviceType `json:"type"`

	// Lustre specific device information
	Lustre *ClientMountDeviceLustre `json:"lustre,omitempty"`

	// LVM logical volume specific device information
	LVM *ClientMountDeviceLVM `json:"lvm,omitempty"`

	DeviceReference *ClientMountDeviceReference `json:"deviceReference,omitempty"`
}

ClientMountDevice defines the device to mount

func (*ClientMountDevice) DeepCopy

func (in *ClientMountDevice) DeepCopy() *ClientMountDevice

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

func (*ClientMountDevice) DeepCopyInto

func (in *ClientMountDevice) DeepCopyInto(out *ClientMountDevice)

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

type ClientMountDeviceLVM

type ClientMountDeviceLVM struct {
	// Type of underlying block deices used for the PVs
	// +kubebuilder:validation:Enum=nvme
	DeviceType ClientMountLVMDeviceType `json:"deviceType"`

	// List of NVMe namespaces that are used by the VG
	NVMeInfo []ClientMountNVMeDesc `json:"nvmeInfo,omitempty"`

	// LVM volume group name
	VolumeGroup string `json:"volumeGroup,omitempty"`

	// LVM logical volume name
	LogicalVolume string `json:"logicalVolume,omitempty"`
}

ClientMountDeviceLVM defines an LVM device by the VG/LV pair and optionally the drives that are the PVs.

func (*ClientMountDeviceLVM) DeepCopy

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

func (*ClientMountDeviceLVM) DeepCopyInto

func (in *ClientMountDeviceLVM) DeepCopyInto(out *ClientMountDeviceLVM)

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

type ClientMountDeviceLustre

type ClientMountDeviceLustre struct {
	// Lustre fsname
	FileSystemName string `json:"fileSystemName"`

	// List of mgsAddresses of the form [address]@[lnet]
	MgsAddresses string `json:"mgsAddresses"`
}

ClientMountDeviceLustre defines the lustre device information for mounting

func (*ClientMountDeviceLustre) DeepCopy

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

func (*ClientMountDeviceLustre) DeepCopyInto

func (in *ClientMountDeviceLustre) DeepCopyInto(out *ClientMountDeviceLustre)

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

type ClientMountDeviceReference

type ClientMountDeviceReference struct {
	// Object reference for the device information
	ObjectReference corev1.ObjectReference `json:"objectReference"`

	// Optional private data for the driver
	Data int `json:"data,omitempty"`
}

ClientMountDeviceReference is an reference to a different Kubernetes object where device information can be found

func (*ClientMountDeviceReference) DeepCopy

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

func (*ClientMountDeviceReference) DeepCopyInto

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

type ClientMountDeviceType

type ClientMountDeviceType string

ClientMountDeviceType specifies the go type for device type

const (
	// ClientMountDeviceTypeLustre is used to define the device as a Lustre file system
	ClientMountDeviceTypeLustre ClientMountDeviceType = "lustre"

	// ClientMountDeviceTypeLVM is used to define the device as a LVM logical volume
	ClientMountDeviceTypeLVM ClientMountDeviceType = "lvm"

	// ClientMountDeviceTypeReference is used when the device information is described in
	// a separate Kubernetes resource. The clientmountd (or another controller doing the mounts)
	// must know how to interpret the resource to extract the device information.
	ClientMountDeviceTypeReference ClientMountDeviceType = "reference"
)

type ClientMountInfo

type ClientMountInfo struct {
	// Client path for mount target
	MountPath string `json:"mountPath"`

	// UserID to set for the mount
	UserID uint32 `json:"userID,omitempty"`

	// GroupID to set for the mount
	GroupID uint32 `json:"groupID,omitempty"`

	// SetPermissions will set UserID and GroupID on the mount if true
	SetPermissions bool `json:"setPermissions"`

	// Options for the file system mount
	Options string `json:"options"`

	// Description of the device to mount
	Device ClientMountDevice `json:"device"`

	// mount type
	// +kubebuilder:validation:Enum=lustre;xfs;gfs2;none
	Type string `json:"type"`

	// TargetType determines whether the mount target is a file or a directory
	// +kubebuilder:validation:Enum=file;directory
	TargetType string `json:"targetType"`

	// Compute is the name of the compute node which shares this mount if present. Empty if not shared.
	Compute string `json:"compute,omitempty"`
}

ClientMountInfo defines a single mount

func (*ClientMountInfo) DeepCopy

func (in *ClientMountInfo) DeepCopy() *ClientMountInfo

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

func (*ClientMountInfo) DeepCopyInto

func (in *ClientMountInfo) DeepCopyInto(out *ClientMountInfo)

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

type ClientMountInfoStatus

type ClientMountInfoStatus struct {
	// Current state
	// +kubebuilder:validation:Enum=mounted;unmounted
	State ClientMountState `json:"state"`

	// Ready indicates whether status.state has been achieved
	Ready bool `json:"ready"`
}

ClientMountInfoStatus is the status for a single mount point

func (*ClientMountInfoStatus) DeepCopy

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

func (*ClientMountInfoStatus) DeepCopyInto

func (in *ClientMountInfoStatus) DeepCopyInto(out *ClientMountInfoStatus)

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

type ClientMountLVMDeviceType

type ClientMountLVMDeviceType string

ClientMountLVMDeviceType specifies the go type for LVMDeviceType

const (
	// ClientMountLVMDeviceTypeNVMe specifies the NVMe constant device type
	ClientMountLVMDeviceTypeNVMe ClientMountLVMDeviceType = "nvme"
)

type ClientMountList

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

ClientMountList contains a list of ClientMount

func (*ClientMountList) DeepCopy

func (in *ClientMountList) DeepCopy() *ClientMountList

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

func (*ClientMountList) DeepCopyInto

func (in *ClientMountList) DeepCopyInto(out *ClientMountList)

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

func (*ClientMountList) DeepCopyObject

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

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

func (*ClientMountList) GetObjectList

func (c *ClientMountList) GetObjectList() []client.Object

GetObjectList returns a list of Client references.

func (*ClientMountList) Hub

func (*ClientMountList) Hub()

The conversion-verifier tool wants these...though they're never used.

type ClientMountNVMeDesc

type ClientMountNVMeDesc struct {
	// Serial number of the base NVMe device
	DeviceSerial string `json:"deviceSerial"`

	// Id of the Namespace on the NVMe device (e.g., "2")
	NamespaceID string `json:"namespaceID"`

	// Globally unique namespace ID
	NamespaceGUID string `json:"namespaceGUID"`
}

ClientMountNVMeDesc uniquely describes an NVMe namespace

func (*ClientMountNVMeDesc) DeepCopy

func (in *ClientMountNVMeDesc) DeepCopy() *ClientMountNVMeDesc

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

func (*ClientMountNVMeDesc) DeepCopyInto

func (in *ClientMountNVMeDesc) DeepCopyInto(out *ClientMountNVMeDesc)

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

type ClientMountSpec

type ClientMountSpec struct {
	// Name of the client node that is targeted by this mount
	Node string `json:"node"`

	// Desired state of the mount point
	// +kubebuilder:validation:Enum=mounted;unmounted
	DesiredState ClientMountState `json:"desiredState"`

	// List of mounts to create on this client
	// +kubebuilder:validation:MinItems=1
	Mounts []ClientMountInfo `json:"mounts"`
}

ClientMountSpec defines the desired state of ClientMount

func (*ClientMountSpec) DeepCopy

func (in *ClientMountSpec) DeepCopy() *ClientMountSpec

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

func (*ClientMountSpec) DeepCopyInto

func (in *ClientMountSpec) DeepCopyInto(out *ClientMountSpec)

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

type ClientMountState

type ClientMountState string

ClientMountState specifies the go type for MountState

const (
	ClientMountStateMounted   ClientMountState = "mounted"
	ClientMountStateUnmounted ClientMountState = "unmounted"
)

ClientMountState string constants

type ClientMountStatus

type ClientMountStatus struct {
	// List of mount statuses
	Mounts []ClientMountInfoStatus `json:"mounts"`

	// Error information
	ResourceError `json:",inline"`
}

ClientMountStatus defines the observed state of ClientMount

func (*ClientMountStatus) DeepCopy

func (in *ClientMountStatus) DeepCopy() *ClientMountStatus

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

func (*ClientMountStatus) DeepCopyInto

func (in *ClientMountStatus) DeepCopyInto(out *ClientMountStatus)

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

type ComputeBreakdown

type ComputeBreakdown struct {
	// Constraints to use when picking compute nodes
	Constraints ComputeConstraints `json:"constraints,omitempty"`
}

ComputeBreakdown describes the compute requirements of a directive

func (*ComputeBreakdown) DeepCopy

func (in *ComputeBreakdown) DeepCopy() *ComputeBreakdown

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

func (*ComputeBreakdown) DeepCopyInto

func (in *ComputeBreakdown) DeepCopyInto(out *ComputeBreakdown)

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

type ComputeConstraints

type ComputeConstraints struct {
	// Location is a list of location constraints
	Location []ComputeLocationConstraint `json:"location,omitempty"`
}

ComputeConstraints describes the constraints to use when picking compute nodes

func (*ComputeConstraints) DeepCopy

func (in *ComputeConstraints) DeepCopy() *ComputeConstraints

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

func (*ComputeConstraints) DeepCopyInto

func (in *ComputeConstraints) DeepCopyInto(out *ComputeConstraints)

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

type ComputeLocationAccess

type ComputeLocationAccess struct {
	// Type is the relationship between the compute nodes and the resource in the Reference
	// +kubebuilder:validation:Enum=physical;network
	Type ComputeLocationType `json:"type"`

	// Priority specifies whether the location constraint is mandatory or best effort
	// +kubebuilder:validation:Enum=mandatory;bestEffort
	Priority ComputeLocationPriority `json:"priority"`
}

func (*ComputeLocationAccess) DeepCopy

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

func (*ComputeLocationAccess) DeepCopyInto

func (in *ComputeLocationAccess) DeepCopyInto(out *ComputeLocationAccess)

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

type ComputeLocationConstraint

type ComputeLocationConstraint struct {
	Access []ComputeLocationAccess `json:"access"`

	// Reference is an object reference to a resource that contains the location information
	Reference corev1.ObjectReference `json:"reference"`
}

ComputeLocationConstraint describes a constraints on which compute nodes can be used with a directive based on their location

func (*ComputeLocationConstraint) DeepCopy

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

func (*ComputeLocationConstraint) DeepCopyInto

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

type ComputeLocationPriority

type ComputeLocationPriority string
const (
	ComputeLocationPriorityMandatory  ComputeLocationPriority = "mandatory"
	ComputeLocationPriorityBestEffort ComputeLocationPriority = "bestEffort"
)

type ComputeLocationType

type ComputeLocationType string
const (
	ComputeLocationNetwork  ComputeLocationType = "network"
	ComputeLocationPhysical ComputeLocationType = "physical"
)

type Computes

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

	Data []ComputesData `json:"data,omitempty"`
}

Computes is the Schema for the computes API

func (*Computes) DeepCopy

func (in *Computes) DeepCopy() *Computes

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

func (*Computes) DeepCopyInto

func (in *Computes) DeepCopyInto(out *Computes)

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

func (*Computes) DeepCopyObject

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

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

func (*Computes) Hub

func (*Computes) Hub()

func (*Computes) SetupWebhookWithManager

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

type ComputesData

type ComputesData struct {
	// Name is the identifer name for the compute node
	Name string `json:"name"`
}

ComputesData defines the compute nodes that are assigned to the workflow

func (*ComputesData) DeepCopy

func (in *ComputesData) DeepCopy() *ComputesData

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

func (*ComputesData) DeepCopyInto

func (in *ComputesData) DeepCopyInto(out *ComputesData)

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

type ComputesList

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

ComputesList contains a list of Computes

func (*ComputesList) DeepCopy

func (in *ComputesList) DeepCopy() *ComputesList

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

func (*ComputesList) DeepCopyInto

func (in *ComputesList) DeepCopyInto(out *ComputesList)

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

func (*ComputesList) DeepCopyObject

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

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

func (*ComputesList) GetObjectList

func (c *ComputesList) GetObjectList() []client.Object

func (*ComputesList) Hub

func (*ComputesList) Hub()

type DWDirectiveRule

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

	Spec []dwdparse.DWDirectiveRuleSpec `json:"spec,omitempty"`
}

DWDirectiveRule is the Schema for the DWDirective API

func (*DWDirectiveRule) DeepCopy

func (in *DWDirectiveRule) DeepCopy() *DWDirectiveRule

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

func (*DWDirectiveRule) DeepCopyInto

func (in *DWDirectiveRule) DeepCopyInto(out *DWDirectiveRule)

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

func (*DWDirectiveRule) DeepCopyObject

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

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

func (*DWDirectiveRule) Hub

func (*DWDirectiveRule) Hub()

func (*DWDirectiveRule) SetupWebhookWithManager

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

type DWDirectiveRuleList

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

DWDirectiveRuleList contains a list of DWDirective

func (*DWDirectiveRuleList) DeepCopy

func (in *DWDirectiveRuleList) DeepCopy() *DWDirectiveRuleList

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

func (*DWDirectiveRuleList) DeepCopyInto

func (in *DWDirectiveRuleList) DeepCopyInto(out *DWDirectiveRuleList)

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

func (*DWDirectiveRuleList) DeepCopyObject

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

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

func (*DWDirectiveRuleList) Hub

func (*DWDirectiveRuleList) Hub()

type DeleteStatus

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

DeleteStatus provides information about the status of DeleteChildren* operation +kubebuilder:object:generate=false +k8s:conversion-gen=false

func DeleteChildren

func DeleteChildren(ctx context.Context, c client.Client, childObjectLists []ObjectList, parent metav1.Object) (DeleteStatus, error)

DeleteChildren deletes all the children of a parent with the resource types defined in a list of ObjectList types. All children of a single type will be fully deleted before starting to delete any children of the next type.

func DeleteChildrenWithLabels

func DeleteChildrenWithLabels(ctx context.Context, c client.Client, childObjectLists []ObjectList, parent metav1.Object, matchingLabels client.MatchingLabels) (DeleteStatus, error)

DeleteChildrenWithLabels deletes all the children of a parent with the resource types defined in a list of ObjectList types and the labels defined in matchingLabels. All children of a single type will be fully deleted before starting to delete any children of the next type.

func (*DeleteStatus) Complete

func (d *DeleteStatus) Complete() bool

Complete returns true if the delete is complete, and false otherwise

func (*DeleteStatus) Info

func (d *DeleteStatus) Info() []interface{}

Info returns key/value pairs that describe the delete status operation; the returned array must alternate string keys and arbitrary values so it can be passed to logr.Logging.Info()

type DirectiveBreakdown

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

	Spec   DirectiveBreakdownSpec   `json:"spec,omitempty"`
	Status DirectiveBreakdownStatus `json:"status,omitempty"`
}

DirectiveBreakdown is the Schema for the directivebreakdown API

func (*DirectiveBreakdown) DeepCopy

func (in *DirectiveBreakdown) DeepCopy() *DirectiveBreakdown

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

func (*DirectiveBreakdown) DeepCopyInto

func (in *DirectiveBreakdown) DeepCopyInto(out *DirectiveBreakdown)

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

func (*DirectiveBreakdown) DeepCopyObject

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

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

func (*DirectiveBreakdown) GetStatus

func (*DirectiveBreakdown) Hub

func (*DirectiveBreakdown) Hub()

func (*DirectiveBreakdown) SetupWebhookWithManager

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

type DirectiveBreakdownList

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

DirectiveBreakdownList contains a list of DirectiveBreakdown

func (*DirectiveBreakdownList) DeepCopy

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

func (*DirectiveBreakdownList) DeepCopyInto

func (in *DirectiveBreakdownList) DeepCopyInto(out *DirectiveBreakdownList)

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

func (*DirectiveBreakdownList) DeepCopyObject

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

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

func (*DirectiveBreakdownList) GetObjectList

func (d *DirectiveBreakdownList) GetObjectList() []client.Object

func (*DirectiveBreakdownList) Hub

func (*DirectiveBreakdownList) Hub()

type DirectiveBreakdownSpec

type DirectiveBreakdownSpec struct {
	// Directive is a copy of the #DW for this breakdown
	Directive string `json:"directive"`

	// User ID of the user associated with the job
	UserID uint32 `json:"userID"`
}

DirectiveBreakdownSpec defines the directive string to breakdown

func (*DirectiveBreakdownSpec) DeepCopy

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

func (*DirectiveBreakdownSpec) DeepCopyInto

func (in *DirectiveBreakdownSpec) DeepCopyInto(out *DirectiveBreakdownSpec)

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

type DirectiveBreakdownStatus

type DirectiveBreakdownStatus struct {
	// Storage is the storage breakdown for the directive
	Storage *StorageBreakdown `json:"storage,omitempty"`

	// Compute is the compute breakdown for the directive
	Compute *ComputeBreakdown `json:"compute,omitempty"`

	// Ready indicates whether AllocationSets have been generated (true) or not (false)
	Ready bool `json:"ready"`

	// Error information
	ResourceError `json:",inline"`
}

DirectiveBreakdownStatus defines the storage information WLM needs to select NNF Nodes and request storage from the selected nodes

func (*DirectiveBreakdownStatus) DeepCopy

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

func (*DirectiveBreakdownStatus) DeepCopyInto

func (in *DirectiveBreakdownStatus) DeepCopyInto(out *DirectiveBreakdownStatus)

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

type MutatingRuleParser

type MutatingRuleParser struct {
	RuleList
}

MutatingRuleParser provides the rulelist +kubebuilder:object:generate=false

func (*MutatingRuleParser) MatchedDirective

func (r *MutatingRuleParser) MatchedDirective(workflow *Workflow, watchStates string, index int, label string)

MatchedDirective updates the driver status entries to indicate driver availability

type Node

type Node struct {
	// Name is the Kubernetes name of the node
	Name string `json:"name,omitempty"`

	// Status of the node
	Status ResourceStatus `json:"status,omitempty"`
}

Node provides the status of either a compute or a server

func (*Node) DeepCopy

func (in *Node) DeepCopy() *Node

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

func (*Node) DeepCopyInto

func (in *Node) DeepCopyInto(out *Node)

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

type ObjectList

type ObjectList interface {
	GetObjectList() []client.Object
}

+kubebuilder:object:generate=false

type PersistentStorageInstance

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

	Spec   PersistentStorageInstanceSpec   `json:"spec,omitempty"`
	Status PersistentStorageInstanceStatus `json:"status,omitempty"`
}

PersistentStorageInstance is the Schema for the Persistentstorageinstances API

func (*PersistentStorageInstance) DeepCopy

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

func (*PersistentStorageInstance) DeepCopyInto

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

func (*PersistentStorageInstance) DeepCopyObject

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

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

func (*PersistentStorageInstance) GetStatus

func (*PersistentStorageInstance) Hub

func (*PersistentStorageInstance) SetupWebhookWithManager

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

type PersistentStorageInstanceList

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

PersistentStorageInstanceList contains a list of PersistentStorageInstances

func (*PersistentStorageInstanceList) DeepCopy

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

func (*PersistentStorageInstanceList) DeepCopyInto

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

func (*PersistentStorageInstanceList) DeepCopyObject

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

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

func (*PersistentStorageInstanceList) GetObjectList

func (p *PersistentStorageInstanceList) GetObjectList() []client.Object

GetObjectList returns a list of PersistentStorageInstance references.

func (*PersistentStorageInstanceList) Hub

type PersistentStorageInstanceSpec

type PersistentStorageInstanceSpec struct {
	// Name is the name given to this persistent storage instance.
	Name string `json:"name"`

	// FsType describes the File System Type for this storage instance.
	// +kubebuilder:validation:Enum:=raw;xfs;gfs2;lustre
	FsType string `json:"fsType"`

	// DWDirective is a copy of the #DW for this instance
	DWDirective string `json:"dwDirective"`

	// User ID of the user that created the persistent storage
	UserID uint32 `json:"userID"`

	// Desired state of the PersistentStorageInstance
	// +kubebuilder:validation:Enum:=Active;Destroying
	State PersistentStorageInstanceState `json:"state"`

	// List of consumers using this persistent storage
	ConsumerReferences []corev1.ObjectReference `json:"consumerReferences,omitempty"`
}

PersistentStorageInstanceSpec defines the desired state of PersistentStorageInstance

func (*PersistentStorageInstanceSpec) DeepCopy

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

func (*PersistentStorageInstanceSpec) DeepCopyInto

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

type PersistentStorageInstanceState

type PersistentStorageInstanceState string

PersistentStorageInstanceState specifies the golang type for PSIState

const (
	// The PSI resource exists in k8s, but the storage and filesystem that it represents has not been created yet
	PSIStateCreating PersistentStorageInstanceState = "Creating"

	// The storage and filesystem represented by the PSI exists and is ready for use
	PSIStateActive PersistentStorageInstanceState = "Active"

	// A #DW destroy_persistent directive has been issued in a workflow.
	// Once all other workflows with persistent_dw reservations on the PSI complete, the PSI will be destroyed.
	// New #DW persistent_dw requests after the PSI enters the 'destroying' state will fail.
	PSIStateDestroying PersistentStorageInstanceState = "Destroying"
)

State enumerations

type PersistentStorageInstanceStatus

type PersistentStorageInstanceStatus struct {
	// Servers refers to the Servers resource that provides the backing storage for this storage instance
	Servers corev1.ObjectReference `json:"servers,omitempty"`

	// Current state of the PersistentStorageInstance
	// +kubebuilder:validation:Enum:=Creating;Active;Destroying
	State PersistentStorageInstanceState `json:"state"`

	// Error information
	ResourceError `json:",inline"`
}

PersistentStorageInstanceStatus defines the observed state of PersistentStorageInstance

func (*PersistentStorageInstanceStatus) DeepCopy

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

func (*PersistentStorageInstanceStatus) DeepCopyInto

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

type ResourceError

type ResourceError struct {
	// Error information
	Error *ResourceErrorInfo `json:"error,omitempty"`
}

func (*ResourceError) DeepCopy

func (in *ResourceError) DeepCopy() *ResourceError

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

func (*ResourceError) DeepCopyInto

func (in *ResourceError) DeepCopyInto(out *ResourceError)

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

func (*ResourceError) SetResourceError

func (e *ResourceError) SetResourceError(err error)

func (*ResourceError) SetResourceErrorAndLog

func (e *ResourceError) SetResourceErrorAndLog(err error, log logr.Logger)

type ResourceErrorInfo

type ResourceErrorInfo struct {
	// Optional user facing message if the error is relevant to an end user
	UserMessage string `json:"userMessage,omitempty"`

	// Internal debug message for the error
	DebugMessage string `json:"debugMessage"`

	// Internal or user error
	// +kubebuilder:validation:Enum=Internal;User
	Type ResourceErrorType `json:"type"`

	// Indication of how severe the error is. Minor will likely succeed, Major may
	// succeed, and Fatal will never succeed.
	// +kubebuilder:validation:Enum=Minor;Major;Fatal
	Severity ResourceErrorSeverity `json:"severity"`
}

func NewResourceError

func NewResourceError(format string, a ...any) *ResourceErrorInfo

func (*ResourceErrorInfo) DeepCopy

func (in *ResourceErrorInfo) DeepCopy() *ResourceErrorInfo

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

func (*ResourceErrorInfo) DeepCopyInto

func (in *ResourceErrorInfo) DeepCopyInto(out *ResourceErrorInfo)

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

func (*ResourceErrorInfo) Error

func (e *ResourceErrorInfo) Error() string

func (*ResourceErrorInfo) GetUserMessage

func (e *ResourceErrorInfo) GetUserMessage() string

func (*ResourceErrorInfo) WithError

func (e *ResourceErrorInfo) WithError(err error) *ResourceErrorInfo

func (*ResourceErrorInfo) WithFatal

func (e *ResourceErrorInfo) WithFatal() *ResourceErrorInfo

func (*ResourceErrorInfo) WithInternal

func (e *ResourceErrorInfo) WithInternal() *ResourceErrorInfo

func (*ResourceErrorInfo) WithMajor

func (e *ResourceErrorInfo) WithMajor() *ResourceErrorInfo

func (*ResourceErrorInfo) WithMinor

func (e *ResourceErrorInfo) WithMinor() *ResourceErrorInfo

func (*ResourceErrorInfo) WithUser

func (e *ResourceErrorInfo) WithUser() *ResourceErrorInfo

func (*ResourceErrorInfo) WithUserMessage

func (e *ResourceErrorInfo) WithUserMessage(format string, a ...any) *ResourceErrorInfo

A resource error can have an optional user message that is displayed in the workflow.Status.Message field. The user message of the lowest level error is all that's displayed.

func (*ResourceErrorInfo) WithWLM

func (e *ResourceErrorInfo) WithWLM() *ResourceErrorInfo

type ResourceErrorSeverity

type ResourceErrorSeverity string
const (
	// Minor errors are very likely to eventually succeed (e.g., errors caused by a stale cache)
	// The WLM doesn't see these errors directly. The workflow stays in the DriverWait state, and
	// the error string is put in workflow.Status.Message.
	SeverityMinor ResourceErrorSeverity = "Minor"

	// Major errors may or may not succeed. These are transient errors that could be persistent
	// due to an underlying problem (e.g., errors from OS calls)
	SeverityMajor ResourceErrorSeverity = "Major"

	// Fatal errors will never succeed. This is for situations where we can guarantee that retrying
	// will not fix the error (e.g., a DW directive that is not valid)
	SeverityFatal ResourceErrorSeverity = "Fatal"
)

func (ResourceErrorSeverity) ToStatus

func (severity ResourceErrorSeverity) ToStatus() (string, error)

ToStatus will return a Status* string that goes with the given severity.

type ResourceErrorType

type ResourceErrorType string
const (
	// Internal errors are due to an error in the DWS/driver code
	TypeInternal ResourceErrorType = "Internal"

	// WLM errors are due to an error with the input from the WLM
	TypeWLM ResourceErrorType = "WLM"

	// User errors are due to an error with the input from a user
	TypeUser ResourceErrorType = "User"
)

type ResourceState

type ResourceState string

ResourceState is the enumeration of the state of a DWS resource +kubebuilder:validation:Enum:=Enabled;Disabled

const (

	// Enabled means the resource shall be enabled.
	EnabledState ResourceState = "Enabled"

	// Disabled means the resource shall be disabled.
	DisabledState ResourceState = "Disabled"
)

type ResourceStatus

type ResourceStatus string

ResourceStatus is the enumeration of the status of a DWS resource +kubebuilder:validation:Enum:=Starting;Ready;Disabled;NotPresent;Offline;Failed;Degraded;Unknown

const (

	// Starting means the resource is currently starting prior to becoming ready.
	StartingStatus ResourceStatus = "Starting"

	// Ready means the resource is fully operational and ready for use.
	ReadyStatus ResourceStatus = "Ready"

	// Disabled means the resource is present but disabled by an administrator or external
	// user.
	DisabledStatus ResourceStatus = "Disabled"

	// NotPresent means the resource is not present within the system, likely because
	// it is missing or powered down. This differs from the Offline state in that the
	// resource is not known to exist.
	NotPresentStatus ResourceStatus = "NotPresent"

	// Offline means the resource is offline and cannot be communicated with. This differs
	// fro the NotPresent state in that the resource is known to exist.
	OfflineStatus ResourceStatus = "Offline"

	// Failed means the resource has failed during startup or execution.
	FailedStatus ResourceStatus = "Failed"

	// Degraded means the resource is ready but operating in a degraded state. Certain
	// recovery actions may alleviate a degraded status.
	DegradedStatus ResourceStatus = "Degraded"

	// Unknown means the resource status is unknown.
	UnknownStatus ResourceStatus = "Unknown"
)

type RuleList

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

RuleList contains the rules to be applied for a particular driver +kubebuilder:object:generate=false

func (*RuleList) GetRuleList

func (r *RuleList) GetRuleList() []dwdparse.DWDirectiveRuleSpec

GetRuleList returns the current rules

func (*RuleList) ReadRules

func (r *RuleList) ReadRules() error

ReadRules imports the RulesList into usable go structures.

type RuleParser

type RuleParser interface {
	ReadRules() error
	GetRuleList() []dwdparse.DWDirectiveRuleSpec
	MatchedDirective(*Workflow, string, int, string)
}

RuleParser defines the interface a rule parser must provide +kubebuilder:object:generate=false

type Servers

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

	Spec   ServersSpec   `json:"spec,omitempty"`
	Status ServersStatus `json:"status,omitempty"`
}

Servers is the Schema for the servers API

func (*Servers) DeepCopy

func (in *Servers) DeepCopy() *Servers

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

func (*Servers) DeepCopyInto

func (in *Servers) DeepCopyInto(out *Servers)

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

func (*Servers) DeepCopyObject

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

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

func (*Servers) GetStatus

func (s *Servers) GetStatus() updater.Status[*ServersStatus]

func (*Servers) Hub

func (*Servers) Hub()

func (*Servers) SetupWebhookWithManager

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

type ServersList

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

ServersList contains a list of Servers

func (*ServersList) DeepCopy

func (in *ServersList) DeepCopy() *ServersList

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

func (*ServersList) DeepCopyInto

func (in *ServersList) DeepCopyInto(out *ServersList)

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

func (*ServersList) DeepCopyObject

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

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

func (*ServersList) GetObjectList

func (s *ServersList) GetObjectList() []client.Object

GetObjectList returns a list of Servers references.

func (*ServersList) Hub

func (*ServersList) Hub()

type ServersSpec

type ServersSpec struct {
	AllocationSets []ServersSpecAllocationSet `json:"allocationSets,omitempty"`
}

ServersSpec defines the desired state of Servers

func (*ServersSpec) DeepCopy

func (in *ServersSpec) DeepCopy() *ServersSpec

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

func (*ServersSpec) DeepCopyInto

func (in *ServersSpec) DeepCopyInto(out *ServersSpec)

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

type ServersSpecAllocationSet

type ServersSpecAllocationSet struct {
	// Label as specified in the DirectiveBreakdown
	Label string `json:"label"`

	// Allocation size in bytes
	// +kubebuilder:validation:Minimum=1
	AllocationSize int64 `json:"allocationSize"`

	// List of storage resources where allocations are created
	Storage []ServersSpecStorage `json:"storage"`
}

ServersSpecAllocationSet is a set of allocations that all share the same allocation size and allocation type (e.g., XFS)

func (*ServersSpecAllocationSet) DeepCopy

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

func (*ServersSpecAllocationSet) DeepCopyInto

func (in *ServersSpecAllocationSet) DeepCopyInto(out *ServersSpecAllocationSet)

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

type ServersSpecStorage

type ServersSpecStorage struct {
	// The name of the storage
	Name string `json:"name"`

	// The number of allocations to create of the size in bytes specified in ServersSpecAllocationSet
	// +kubebuilder:validation:Minimum=1
	AllocationCount int `json:"allocationCount"`
}

ServersSpecStorage specifies info required to identify the storage to use, and the number of allocations to make on that storage. ServersSpecAllocationSet.AllocationSize specifies the size of each allocation.

func (*ServersSpecStorage) DeepCopy

func (in *ServersSpecStorage) DeepCopy() *ServersSpecStorage

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

func (*ServersSpecStorage) DeepCopyInto

func (in *ServersSpecStorage) DeepCopyInto(out *ServersSpecStorage)

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

type ServersStatus

type ServersStatus struct {
	Ready          bool                         `json:"ready"`
	LastUpdate     *metav1.MicroTime            `json:"lastUpdate,omitempty"`
	AllocationSets []ServersStatusAllocationSet `json:"allocationSets,omitempty"`

	// Error information
	ResourceError `json:",inline"`
}

ServersStatus specifies whether the Servers has achieved the ready condition along with the allocationSets that are managed by the Servers resource.

func (*ServersStatus) DeepCopy

func (in *ServersStatus) DeepCopy() *ServersStatus

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

func (*ServersStatus) DeepCopyInto

func (in *ServersStatus) DeepCopyInto(out *ServersStatus)

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

type ServersStatusAllocationSet

type ServersStatusAllocationSet struct {
	// Label as specified in the DirectiveBreakdown
	Label string `json:"label"`

	// List of storage resources that have allocations
	Storage map[string]ServersStatusStorage `json:"storage"`
}

ServersStatusAllocationSet is the status of a set of allocations

func (*ServersStatusAllocationSet) DeepCopy

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

func (*ServersStatusAllocationSet) DeepCopyInto

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

type ServersStatusStorage

type ServersStatusStorage struct {
	// Allocation size in bytes
	AllocationSize int64 `json:"allocationSize"`
}

ServersStatusStorage is the status of the allocations on a storage

func (*ServersStatusStorage) DeepCopy

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

func (*ServersStatusStorage) DeepCopyInto

func (in *ServersStatusStorage) DeepCopyInto(out *ServersStatusStorage)

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

type Storage

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

	Spec   StorageSpec   `json:"spec"`
	Status StorageStatus `json:"status,omitempty"`
}

Storage is the Schema for the storages API

func (*Storage) DeepCopy

func (in *Storage) DeepCopy() *Storage

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

func (*Storage) DeepCopyInto

func (in *Storage) DeepCopyInto(out *Storage)

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

func (*Storage) DeepCopyObject

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

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

func (*Storage) GetStatus

func (s *Storage) GetStatus() updater.Status[*StorageStatus]

func (*Storage) Hub

func (*Storage) Hub()

func (*Storage) SetupWebhookWithManager

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

type StorageAccess

type StorageAccess struct {
	// Protocol is the method that this storage can be accessed
	Protocol StorageAccessProtocol `json:"protocol,omitempty"`

	// Servers is the list of non-compute nodes that have access to the storage
	Servers []Node `json:"servers,omitempty"`

	// Computes is the list of compute nodes that have access to the storage
	Computes []Node `json:"computes,omitempty"`
}

StorageAccess contains nodes and the protocol that may access the storage

func (*StorageAccess) DeepCopy

func (in *StorageAccess) DeepCopy() *StorageAccess

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

func (*StorageAccess) DeepCopyInto

func (in *StorageAccess) DeepCopyInto(out *StorageAccess)

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

type StorageAccessProtocol

type StorageAccessProtocol string

StorageAccessProtocol is the enumeration of supported protocols. +kubebuilder:validation:Enum:=PCIe

const (
	PCIe StorageAccessProtocol = "PCIe"
)

type StorageAllocationSet

type StorageAllocationSet struct {
	// AllocationStrategy specifies the way to determine the number of allocations of the MinimumCapacity required for this AllocationSet.
	// +kubebuilder:validation:Enum=AllocatePerCompute;AllocateAcrossServers;AllocateSingleServer
	AllocationStrategy AllocationStrategy `json:"allocationStrategy"`

	// MinimumCapacity is the minumum number of bytes required to meet the needs of the filesystem that
	// will use the storage.
	// +kubebuilder:validation:Minimum:=1
	MinimumCapacity int64 `json:"minimumCapacity"`

	// Label is an identifier used to communicate from the DWS interface to internal interfaces
	// the filesystem use of this AllocationSet.
	// +kubebuilder:validation:Enum=raw;xfs;gfs2;mgt;mdt;mgtmdt;ost;
	Label string `json:"label"`

	// Constraint is an additional requirement pertaining to the suitability of Storage resources that may be used
	// for this AllocationSet
	Constraints AllocationSetConstraints `json:"constraints,omitempty"`
}

StorageAllocationSet defines the details of an allocation set

func (*StorageAllocationSet) DeepCopy

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

func (*StorageAllocationSet) DeepCopyInto

func (in *StorageAllocationSet) DeepCopyInto(out *StorageAllocationSet)

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

type StorageBreakdown

type StorageBreakdown struct {
	// Lifetime is the duration of the allocation
	// +kubebuilder:validation:Enum=job;persistent
	Lifetime string `json:"lifetime"`

	// Reference is an ObjectReference to another resource
	Reference corev1.ObjectReference `json:"reference,omitempty"`

	// AllocationSets lists the allocations required to fulfill the #DW Directive
	AllocationSets []StorageAllocationSet `json:"allocationSets,omitempty"`
}

StorageBreakdown describes the storage requirements of a directive

func (*StorageBreakdown) DeepCopy

func (in *StorageBreakdown) DeepCopy() *StorageBreakdown

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

func (*StorageBreakdown) DeepCopyInto

func (in *StorageBreakdown) DeepCopyInto(out *StorageBreakdown)

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

type StorageDevice

type StorageDevice struct {
	// Model is the manufacturer information about the device
	Model string `json:"model,omitempty"`

	// The serial number for this storage controller.
	SerialNumber string `json:"serialNumber,omitempty"`

	// The firmware version of this storage controller.
	FirmwareVersion string `json:"firmwareVersion,omitempty"`

	// Physical slot location of the storage controller.
	Slot string `json:"slot,omitempty"`

	// Capacity in bytes of the device. The full capacity may not
	// be usable depending on what the storage driver can provide.
	Capacity int64 `json:"capacity,omitempty"`

	// WearLevel in percent for SSDs. A value of 100 indicates the estimated endurance of the non-volatile memory
	// has been consumed, but may not indicate a storage failure.
	WearLevel *int64 `json:"wearLevel,omitempty"`

	// Status of the individual device
	Status ResourceStatus `json:"status,omitempty"`
}

StorageDevice contains the details of the storage hardware

func (*StorageDevice) DeepCopy

func (in *StorageDevice) DeepCopy() *StorageDevice

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

func (*StorageDevice) DeepCopyInto

func (in *StorageDevice) DeepCopyInto(out *StorageDevice)

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

type StorageList

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

StorageList contains a list of Storage

func (*StorageList) DeepCopy

func (in *StorageList) DeepCopy() *StorageList

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

func (*StorageList) DeepCopyInto

func (in *StorageList) DeepCopyInto(out *StorageList)

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

func (*StorageList) DeepCopyObject

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

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

func (*StorageList) Hub

func (*StorageList) Hub()

type StorageSpec

type StorageSpec struct {
	// State describes the desired state of the Storage resource.
	// +kubebuilder:default:=Enabled
	State ResourceState `json:"state,omitempty"`

	// Mode indicates whether the resource is live and is being updated
	// by the reconcilers or whether it is in testing mode and is being
	// updated manually.
	// +kubebuilder:validation:Enum:=Live;Testing
	// +kubebuilder:default:=Live
	Mode string `json:"mode,omitempty"`
}

StorageSpec defines the desired specifications of Storage resource

func (*StorageSpec) DeepCopy

func (in *StorageSpec) DeepCopy() *StorageSpec

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

func (*StorageSpec) DeepCopyInto

func (in *StorageSpec) DeepCopyInto(out *StorageSpec)

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

type StorageStatus

type StorageStatus struct {
	// Type describes what type of storage this is
	Type StorageType `json:"type,omitempty"`

	// Devices is the list of physical devices that make up this storage
	Devices []StorageDevice `json:"devices,omitempty"`

	// Access contains the information about where the storage is accessible
	Access StorageAccess `json:"access,omitempty"`

	// Capacity is the number of bytes this storage provides. This is the
	// total accessible bytes as determined by the driver and may be different
	// than the sum of the devices' capacities.
	// +kubebuilder:default:=0
	Capacity int64 `json:"capacity"`

	// Status is the overall status of the storage
	Status ResourceStatus `json:"status,omitempty"`

	// Reboot Required is true if the node requires a reboot and false otherwise. A reboot my be
	// necessary to recover from certain hardware failures or high-availability clustering events.
	RebootRequired bool `json:"rebootRequired,omitempty"`

	// Message provides additional details on the current status of the resource
	Message string `json:"message,omitempty"`
}

StorageData contains the data about the storage

func (*StorageStatus) DeepCopy

func (in *StorageStatus) DeepCopy() *StorageStatus

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

func (*StorageStatus) DeepCopyInto

func (in *StorageStatus) DeepCopyInto(out *StorageStatus)

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

type StorageType

type StorageType string

StorageType is the enumeration of storage types. +kubebuilder:validation:Enum:=NVMe

const (
	NVMe StorageType = "NVMe"
)

type SystemConfiguration

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

	Spec   SystemConfigurationSpec   `json:"spec,omitempty"`
	Status SystemConfigurationStatus `json:"status,omitempty"`
}

SystemConfiguration is the Schema for the systemconfigurations API

func (*SystemConfiguration) Computes added in v0.0.16

func (in *SystemConfiguration) Computes() []*string

Computes returns the names of the computes attached to Rabbit nodes

func (*SystemConfiguration) ComputesExternal added in v0.0.18

func (in *SystemConfiguration) ComputesExternal() []*string

ComputesExternal returns the names of the external compute nodes in the system

func (*SystemConfiguration) DeepCopy

func (in *SystemConfiguration) DeepCopy() *SystemConfiguration

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

func (*SystemConfiguration) DeepCopyInto

func (in *SystemConfiguration) DeepCopyInto(out *SystemConfiguration)

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

func (*SystemConfiguration) DeepCopyObject

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

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

func (*SystemConfiguration) GetStatus

func (*SystemConfiguration) Hub

func (*SystemConfiguration) Hub()

func (*SystemConfiguration) SetupWebhookWithManager

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

type SystemConfigurationComputeNodeReference

type SystemConfigurationComputeNodeReference struct {
	// Name of the compute node
	Name string `json:"name"`

	// Index of the compute node from the server
	Index int `json:"index"`
}

SystemConfigurationComputeNodeReference describes a compute node that has access to a server.

func (*SystemConfigurationComputeNodeReference) DeepCopy

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

func (*SystemConfigurationComputeNodeReference) DeepCopyInto

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

type SystemConfigurationExternalComputeNode added in v0.0.16

type SystemConfigurationExternalComputeNode struct {
	// Name of the compute node
	Name string `json:"name"`
}

SystemConfigurationExternalComputeNode describes a compute node that is not directly matched with any of the nodes in the StorageNodes list.

func (*SystemConfigurationExternalComputeNode) DeepCopy added in v0.0.16

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

func (*SystemConfigurationExternalComputeNode) DeepCopyInto added in v0.0.16

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

type SystemConfigurationList

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

SystemConfigurationList contains a list of SystemConfiguration

func (*SystemConfigurationList) DeepCopy

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

func (*SystemConfigurationList) DeepCopyInto

func (in *SystemConfigurationList) DeepCopyInto(out *SystemConfigurationList)

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

func (*SystemConfigurationList) DeepCopyObject

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

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

func (*SystemConfigurationList) Hub

func (*SystemConfigurationList) Hub()

type SystemConfigurationSpec

type SystemConfigurationSpec struct {
	// ExternalComputeNodes is the list of compute nodes that are not
	// directly matched with any of the StorageNodes.
	ExternalComputeNodes []SystemConfigurationExternalComputeNode `json:"externalComputeNodes,omitempty"`

	// StorageNodes is the list of storage nodes on the system
	StorageNodes []SystemConfigurationStorageNode `json:"storageNodes,omitempty"`

	// Ports is the list of ports available for communication between nodes in the system.
	// Valid values are single integers, or a range of values of the form "START-END" where
	// START is an integer value that represents the start of a port range and END is an
	// integer value that represents the end of the port range (inclusive).
	Ports []intstr.IntOrString `json:"ports,omitempty"`

	// PortsCooldownInSeconds is the number of seconds to wait before a port can be reused. Defaults
	// to 60 seconds (to match the typical value for the kernel's TIME_WAIT). A value of 0 means the
	// ports can be reused immediately.
	// +kubebuilder:default:=60
	PortsCooldownInSeconds int `json:"portsCooldownInSeconds"`
}

SystemConfigurationSpec describes the node layout of the system. This is filled in by an administrator at software installation time.

func (*SystemConfigurationSpec) DeepCopy

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

func (*SystemConfigurationSpec) DeepCopyInto

func (in *SystemConfigurationSpec) DeepCopyInto(out *SystemConfigurationSpec)

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

type SystemConfigurationStatus

type SystemConfigurationStatus struct {
	// Ready indicates when the SystemConfiguration has been reconciled
	Ready bool `json:"ready"`
}

SystemConfigurationStatus defines the status of SystemConfiguration

func (*SystemConfigurationStatus) DeepCopy

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

func (*SystemConfigurationStatus) DeepCopyInto

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

type SystemConfigurationStorageNode

type SystemConfigurationStorageNode struct {
	// Type is the type of server
	Type string `json:"type"`

	// Name of the server node
	Name string `json:"name"`

	// ComputesAccess is the list of compute nodes that can use the server
	ComputesAccess []SystemConfigurationComputeNodeReference `json:"computesAccess,omitempty"`
}

SystemConfigurationStorageNode describes a storage node in the system

func (*SystemConfigurationStorageNode) DeepCopy

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

func (*SystemConfigurationStorageNode) DeepCopyInto

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

type ValidatingRuleParser

type ValidatingRuleParser struct {
	RuleList
}

ValidatingRuleParser provides the rulelist +kubebuilder:object:generate=false

func (*ValidatingRuleParser) MatchedDirective

func (r *ValidatingRuleParser) MatchedDirective(workflow *Workflow, watchStates string, index int, label string)

MatchedDirective provides the interface function for the validating webhook

type Workflow

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

	Spec   WorkflowSpec   `json:"spec,omitempty"`
	Status WorkflowStatus `json:"status,omitempty"`
}

Workflow is the Schema for the workflows API

func (*Workflow) DeepCopy

func (in *Workflow) DeepCopy() *Workflow

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

func (*Workflow) DeepCopyInto

func (in *Workflow) DeepCopyInto(out *Workflow)

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

func (*Workflow) DeepCopyObject

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

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

func (*Workflow) Default

func (w *Workflow) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*Workflow) GetStatus

func (c *Workflow) GetStatus() updater.Status[*WorkflowStatus]

func (*Workflow) Hub

func (*Workflow) Hub()

func (*Workflow) SetupWebhookWithManager

func (w *Workflow) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager connects the webhook with the manager

func (*Workflow) ValidateCreate

func (w *Workflow) ValidateCreate() (admission.Warnings, error)

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

func (*Workflow) ValidateDelete

func (w *Workflow) ValidateDelete() (admission.Warnings, error)

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

func (*Workflow) ValidateUpdate

func (w *Workflow) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

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

type WorkflowDriverStatus

type WorkflowDriverStatus struct {
	DriverID string `json:"driverID"`
	TaskID   string `json:"taskID"`
	DWDIndex int    `json:"dwdIndex"`

	WatchState WorkflowState `json:"watchState"`

	LastHB    int64 `json:"lastHB"`
	Completed bool  `json:"completed"`

	// User readable reason.
	// For the CDS driver, this could be the state of the underlying
	// data movement request
	// +kubebuilder:validation:Enum=Pending;Queued;Running;Completed;TransientCondition;Error;DriverWait
	Status string `json:"status,omitempty"`

	// Message provides additional details on the current status of the resource
	Message string `json:"message,omitempty"`

	// Driver error string. This is not rolled up into the workflow's
	// overall status section
	Error string `json:"error,omitempty"`

	// CompleteTime reflects the time that the workflow reconciler marks the driver complete
	CompleteTime *metav1.MicroTime `json:"completeTime,omitempty"`
}

WorkflowDriverStatus defines the status information provided by integration drivers.

func (*WorkflowDriverStatus) DeepCopy

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

func (*WorkflowDriverStatus) DeepCopyInto

func (in *WorkflowDriverStatus) DeepCopyInto(out *WorkflowDriverStatus)

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

type WorkflowList

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

WorkflowList contains a list of Workflows

func (*WorkflowList) DeepCopy

func (in *WorkflowList) DeepCopy() *WorkflowList

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

func (*WorkflowList) DeepCopyInto

func (in *WorkflowList) DeepCopyInto(out *WorkflowList)

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

func (*WorkflowList) DeepCopyObject

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

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

func (*WorkflowList) Hub

func (*WorkflowList) Hub()

type WorkflowSpec

type WorkflowSpec struct {
	// Desired state for the workflow to be in. Unless progressing to the teardown state,
	// this can only be set to the next state when the current desired state has been achieved.
	DesiredState WorkflowState `json:"desiredState"`

	// WLMID identifies the Workflow Manager (WLM), and is set by the WLM
	// when it creates the workflow resource.
	WLMID string `json:"wlmID"`

	// JobID is the WLM job ID that corresponds to this workflow, and is
	// set by the WLM when it creates the workflow resource.
	JobID intstr.IntOrString `json:"jobID"`

	// UserID specifies the user ID for the workflow. The User ID is used by the various states
	// in the workflow to ensure the user has permissions to perform certain actions. Used in
	// conjunction with Group ID to run subtasks with UserID:GroupID credentials
	UserID uint32 `json:"userID"`

	// GroupID specifies the group ID for the workflow. The Group ID is used by the various states
	// in the workflow to ensure the group has permissions to perform certain actions. Used in
	// conjunction with User ID to run subtasks with UserID:GroupID credentials.
	GroupID uint32 `json:"groupID"`

	// Hurry indicates that the workflow's driver should kill the job in a hurry when this workflow enters its teardown state.
	// The driver must release all resources and unmount any filesystems that were mounted as part of the workflow, though some drivers would have done this anyway as part of their teardown state.
	// The driver must also kill any in-progress data transfers, or skip any data transfers that have not yet begun.
	// +kubebuilder:default:=false
	Hurry bool `json:"hurry,omitempty"`

	// List of #DW strings from a WLM job script
	DWDirectives []string `json:"dwDirectives"`
}

WorkflowSpec defines the desired state of Workflow

func (*WorkflowSpec) DeepCopy

func (in *WorkflowSpec) DeepCopy() *WorkflowSpec

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

func (*WorkflowSpec) DeepCopyInto

func (in *WorkflowSpec) DeepCopyInto(out *WorkflowSpec)

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

type WorkflowState

type WorkflowState string

WorkflowState is the enumeration of the state of the workflow +kubebuilder:validation:Enum:=Proposal;Setup;DataIn;PreRun;PostRun;DataOut;Teardown

const (
	StateProposal WorkflowState = "Proposal"
	StateSetup    WorkflowState = "Setup"
	StateDataIn   WorkflowState = "DataIn"
	StatePreRun   WorkflowState = "PreRun"
	StatePostRun  WorkflowState = "PostRun"
	StateDataOut  WorkflowState = "DataOut"
	StateTeardown WorkflowState = "Teardown"
)

WorkflowState values

type WorkflowStatus

type WorkflowStatus struct {
	// The state the resource is currently transitioning to.
	// Updated by the controller once started.
	State WorkflowState `json:"state,omitempty"`

	// Ready can be 'True', 'False'
	// Indicates whether State has been reached.
	Ready bool `json:"ready"`

	// User readable reason and status message.
	// - Completed: The workflow has reached the state in workflow.Status.State.
	// - DriverWait: The underlying drivers are currently running.
	// - TransientCondition: A driver has encountered an error that might be recoverable.
	// - Error: A driver has encountered an error that will not recover.
	// +kubebuilder:validation:Enum=Completed;DriverWait;TransientCondition;Error
	Status string `json:"status,omitempty"`

	// Message provides additional details on the current status of the resource
	Message string `json:"message,omitempty"`

	// Set of DW environment variable settings for WLM to apply to the job.
	//		- DW_JOB_STRIPED
	//		- DW_JOB_PRIVATE
	//		- DW_JOB_STRIPED_CACHE
	//		- DW_JOB_LDBAL_CACHE
	//		- DW_PERSISTENT_STRIPED_{resname}
	Env map[string]string `json:"env,omitempty"`

	// List of registered drivers and related status.  Updated by drivers.
	Drivers []WorkflowDriverStatus `json:"drivers,omitempty"`

	// List of #DW directive breakdowns indicating to WLM what to allocate on what Server
	// 1 DirectiveBreakdown per #DW Directive that requires storage
	DirectiveBreakdowns []corev1.ObjectReference `json:"directiveBreakdowns,omitempty"`

	// Reference to Computes
	Computes corev1.ObjectReference `json:"computes,omitempty"`

	// Time of the most recent desiredState change
	DesiredStateChange *metav1.MicroTime `json:"desiredStateChange,omitempty"`

	// Time of the most recent desiredState's achieving Ready status
	ReadyChange *metav1.MicroTime `json:"readyChange,omitempty"`

	// Duration of the last state change
	ElapsedTimeLastState string `json:"elapsedTimeLastState,omitempty"`
}

WorkflowStatus defines the observed state of the Workflow

func (*WorkflowStatus) DeepCopy

func (in *WorkflowStatus) DeepCopy() *WorkflowStatus

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

func (*WorkflowStatus) DeepCopyInto

func (in *WorkflowStatus) DeepCopyInto(out *WorkflowStatus)

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