v1alpha1

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2022 License: Apache-2.0 Imports: 20 Imported by: 3

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the dws v1alpha1 API group +kubebuilder:object:generate=true +groupName=dws.cray.hpe.com

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 (
	ComputeLocationNetwork  = "network"
	ComputeLocationPhysical = "physical"
)
View Source
const (
	OwnerKindLabel      = "dws.cray.hpe.com/owner.kind"
	OwnerNameLabel      = "dws.cray.hpe.com/owner.name"
	OwnerNamespaceLabel = "dws.cray.hpe.com/owner.namespace"
)
View Source
const (
	// PersistentStorageNameLabel is defined for resources that relate to the name of a DWS PersistentStorageInstance
	PersistentStorageNameLabel = "dws.cray.hpe.com/persistentstorage.name"

	// PersistentStorageNamespaceLabel is defined for resources that relate to the namespace of a DWS PersistentStorageInstance
	PersistentStorageNamespaceLabel = "dws.cray.hpe.com/persistentstorage.namespace"
)
View Source
const (
	// StorageTypeLabel is the label key used for tagging Storage resources
	// with a driver specific label. For example: dws.cray.hpe.com/storage=Rabbit
	StorageTypeLabel = "dws.cray.hpe.com/storage"

	// StoragePoolLabelPrefix is the prefix for the label key used for tagging
	// Storage resources with a storage pool label.
	// For example: dws.cray.hpe.com/storage-pool-default=true
	StoragePoolLabelPrefix = "dws.cray.hpe.com/storage-pool-"
)
View Source
const (
	// WorkflowNameLabel is defined for resources that relate to the name of a DWS Workflow
	WorkflowNameLabel = "dws.cray.hpe.com/workflow.name"

	// WorkflowNamespaceLabel is defined for resources that relate to the namespace of a DWS Workflow
	WorkflowNamespaceLabel = "dws.cray.hpe.com/workflow.namespace"
)
View Source
const (
	StatusPending    = "Pending"
	StatusQueued     = "Queued"
	StatusRunning    = "Running"
	StatusCompleted  = "Completed"
	StatusError      = "Error"
	StatusDriverWait = "DriverWait"
)

Strings associated with workflow statuses

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "dws.cray.hpe.com", 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

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(o client.Object) []reconcile.Request

func RemoveOwnerLabels

func RemoveOwnerLabels(child metav1.Object)

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

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

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

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

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 ComputeLocationConstraint

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

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

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

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.

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.

type DeleteStatus

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

DeleteStatus provides information about the status of DeleteChildren* operation +kubebuilder:object:generate=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

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

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
	// +kubebuilder:validation:Enum=Starting;Ready;Disabled;NotPresent;Offline;Failed
	Status string `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

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.

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)

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

	// Indication if the error is likely recoverable or not
	Recoverable bool `json:"recoverable"`
}

func NewResourceError

func NewResourceError(message string, err error) *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) WithFatal

func (e *ResourceErrorInfo) WithFatal() *ResourceErrorInfo

func (*ResourceErrorInfo) WithUserMessage

func (e *ResourceErrorInfo) WithUserMessage(message string) *ResourceErrorInfo

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.

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.

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

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

	Data StorageData `json:"data,omitempty"`
}

Storage is the Schema for the storages API +kubebuilder:object:root=true

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.

type StorageAccess

type StorageAccess struct {
	// Protocol is the method that this storage can be accessed
	// +kubebuilder:validation:Enum=PCIe
	Protocol string `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 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 StorageData

type StorageData struct {
	// Type describes what type of storage this is
	// +kubebuilder:validation:Enum=NVMe
	Type string `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
	// +kubebuilder:validation:Enum=Starting;Ready;Disabled;NotPresent;Offline;Failed
	Status string `json:"status,omitempty"`
}

StorageData contains the data about the storage

func (*StorageData) DeepCopy

func (in *StorageData) DeepCopy() *StorageData

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

func (*StorageData) DeepCopyInto

func (in *StorageData) DeepCopyInto(out *StorageData)

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
	// +kubebuilder:validation:Enum=Starting;Ready;Disabled;NotPresent;Offline;Failed
	Status string `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.

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) 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.

type SystemConfigurationComputeNode

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

SystemConfigurationComputeNode describes a compute node in the system

func (*SystemConfigurationComputeNode) DeepCopy

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

func (*SystemConfigurationComputeNode) DeepCopyInto

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

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

type SystemConfigurationSpec

type SystemConfigurationSpec struct {
	// ComputeNodes is the list of compute nodes on the system
	ComputeNodes []SystemConfigurationComputeNode `json:"computeNodes,omitempty"`

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

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) SetupWebhookWithManager

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

SetupWebhookWithManager connects the webhook with the manager

func (*Workflow) ValidateCreate

func (w *Workflow) ValidateCreate() error

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

func (*Workflow) ValidateDelete

func (w *Workflow) ValidateDelete() error

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

func (*Workflow) ValidateUpdate

func (w *Workflow) ValidateUpdate(old runtime.Object) 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:  Pending, Queued, Running, Completed or Error
	// +kubebuilder:validation:Enum=Pending;Queued;Running;Completed;Error;DriverWait
	Status string `json:"status,omitempty"`

	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.

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.
	// +kubebuilder:validation:Enum:=Proposal;Setup;DataIn;PreRun;PostRun;DataOut;Teardown
	// +kubebuilder:validation:Type:=string
	DesiredState WorkflowState `json:"desiredState"`

	WLMID string `json:"wlmID"`
	JobID int    `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

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

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

	// User readable reason and status message
	// +kubebuilder:validation:Enum=Completed;DriverWait;Error
	Status  string `json:"status,omitempty"`
	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