v1alpha1

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Feb 24, 2023 License: Apache-2.0 Imports: 14 Imported by: 2

Documentation

Overview

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

Index

Constants

View Source
const (
	DataMovementConditionTypeStarting = "Starting"
	DataMovementConditionTypeRunning  = "Running"
	DataMovementConditionTypeFinished = "Finished"
)

Types describing the various data movement status conditions.

View Source
const (
	DataMovementConditionReasonSuccess   = "Success"
	DataMovementConditionReasonFailed    = "Failed"
	DataMovementConditionReasonInvalid   = "Invalid"
	DataMovementConditionReasonCancelled = "Cancelled"
)

Reasons describing the various data movement status conditions. Must be in CamelCase format (see metav1.Condition)

View Source
const (
	ConditionIndexCreateStoragePool = iota
	ConditionIndexDeleteStoragePool
	ConditionIndexCreateStorageGroup
	ConditionIndexCreateFileSystem
	ConditionIndexCreateFileShare
	ConditionIndexGetResource
	ConditionIndexInvalidResource

	ConditionCreateStoragePool  = "CreateStoragePool"
	ConditionDeleteStoragePool  = "DeleteStoragePool"
	ConditionCreateStorageGroup = "CreateStorageGroup"
	ConditionCreateFileSystem   = "CreateFileSystem"
	ConditionCreateFileShare    = "CreateFileShare"
	ConditionGetResource        = "GetResource"
	ConditionInvalidResource    = "InvalidResource"
)

Types define the condition type that is recorded by the system. Each storage resource defines an array of conditions as state transitions. Entry into and out of the state is recorded by the metav1.ConditionStatus. Order must be preserved and consistent between the Index and string values.

View Source
const (
	ConditionUnknown = "Unknown"
	ConditionFailed  = "Failed"
	ConditionInvalid = "Invalid"
	ConditionSuccess = "Success"
)

Reason implements the Reason field of a metav1.Condition. In accordance with the metav1.Condition, the value should be a CamelCase string and may not be empty.

View Source
const (
	// ResourceOkay is SF health OK
	ResourceOkay NnfResourceHealthType = NnfResourceHealthType(sf.OK_RH)

	// ResourceWarning is SF health WARNING
	ResourceWarning = NnfResourceHealthType(sf.WARNING_RH)

	// ResourceCritical is SF health CRITICAL
	ResourceCritical = NnfResourceHealthType(sf.CRITICAL_RH)
)
View Source
const (

	// ResourceEnable means this static NNF resource should be enabled.
	ResourceEnable NnfResourceStateType = "Enable"

	// ResourceDisable means this static NNF resource should be disabled. Not all static resources can be disabled.
	ResourceDisable = "Disable"

	// ResourceCreate means the resource should be created and enabled for operation. For a newly
	// created resource, the default state is create.
	ResourceCreate NnfResourceStateType = "Create"

	// ResourceDestroy means the resource should be released from the allocated resource pool, and
	// this resource and all child resources will be released to the free resource pools
	// managed by the system.
	ResourceDestroy = "Destroy"
)
View Source
const (

	// ResourceEnabled means the static NNF resource is enabled and ready to fullfil requests for
	// managed resources.
	ResourceEnabled NnfResourceStatusType = NnfResourceStatusType(sf.ENABLED_RST)

	// ResourceDisabled means the static NNF resource is present but disabled and not available for use
	ResourceDisabled = NnfResourceStatusType(sf.DISABLED_RST)

	// ResourceNotPresent means the static NNF resource is not found; likely because it is disconnected
	// or in a powered down state.
	ResourceNotPresent = "NotPresent"

	// ResourceOffline means the static NNF resource is offline and the NNF Node cannot communicate with
	// the resource. This differs from a NotPresent status in that the device is known to exist.
	ResourceOffline = "Offline"

	// ResourceStarting means the NNF resource is currently in the process of starting - resources
	// are being prepared for transition to an Active state.
	ResourceStarting = NnfResourceStatusType(sf.STARTING_RST)

	// ResourceDeleting means the NNF resource is currently in the process of being deleted - the resource
	// and all child resources are being returned to the NNF node's free resources. Upon a successful
	// deletion, the resource will be removed from the list of managed NNF resources
	ResourceDeleting = "Deleting"

	// ResourceDeleted means the NNF resource was deleted. This reflects the state where the NNF resource does
	// not exist in the NNF space, but the resource might still exist in Kubernetes. A resource in
	// this state suggests that Kubernetes is unable to delete the object.
	ResourceDeleted = "Deleted"

	// ResourceReady means the NNF resource is ready for use.
	ResourceReady = "Ready"

	// ResourceFailed means the NNF resource has failed during startup or execution. A failed state is
	// an unrecoverable condition. Additional information about the Failed cause can be found by
	// looking at the owning resource's Conditions field. A failed resource can only be removed
	// by transition to a Delete state.
	ResourceFailed = "Failed"

	// ResourceInvalid means the NNF resource configuration is invalid due to an improper format or arrangement
	// of listed resource parameters.
	ResourceInvalid = "Invalid"
)
View Source
const (
	// DirectiveIndexLabel is a label applied to child objects of the workflow
	// to show which directive they were created for. This is useful during deletion
	// to filter the child objects by the directive index and only delete the
	// resources for the directive being processed
	DirectiveIndexLabel = "nnf.cray.hpe.com/directive_index"

	// PinnedStorageProfileLabelName is a label applied to NnfStorage objects to show
	// which pinned storage profile is being used.
	PinnedStorageProfileLabelName = "nnf.cray.hpe.com/pinned_storage_profile_name"

	// PinnedStorageProfileLabelNameSpace is a label applied to NnfStorage objects to show
	// which pinned storage profile is being used.
	PinnedStorageProfileLabelNameSpace = "nnf.cray.hpe.com/pinned_storage_profile_namespace"

	// PinnedContainerProfileLabelName is a label applied to NnfStorage objects to show
	// which pinned container profile is being used.
	PinnedContainerProfileLabelName = "nnf.cray.hpe.com/pinned_container_profile_name"

	// PinnedContainerProfileLabelNameSpace is a label applied to NnfStorage objects to show
	// which pinned container profile is being used.
	PinnedContainerProfileLabelNameSpace = "nnf.cray.hpe.com/pinned_container_profile_namespace"
)
View Source
const (
	AllocationSetLabel = "nnf.cray.hpe.com/allocationset"
)
View Source
const (
	ContainerLabel = "nnf.cray.hpe.com/container"
)
View Source
const (
	// The required namespace for an NNF Data Movement operation. This is for system wide (lustre) data movement.
	// Individual nodes may also perform data movement in which case they use the NNF Node Name as the namespace.
	DataMovementNamespace = "nnf-dm-system"
)
View Source
const (
	// DataMovementTeardownStateLabel is the label applied to Data Movement and related resources that describes
	// the workflow state when the resource is no longer need and can be safely deleted.
	DataMovementTeardownStateLabel = "nnf.cray.hpe.com/teardown_state"
)

Variables

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

func AddDataMovementTeardownStateLabel(object metav1.Object, state dwsv1alpha1.WorkflowState)

func NewConditions

func NewConditions() []metav1.Condition

NewConditions generates a new conditions array for NNFNodeStorage

func SetGetResourceFailureCondition

func SetGetResourceFailureCondition(c []metav1.Condition, err error)

SetGetResourceFailureCondition sets/gets the specified condition to failed

func SetResourceInvalidCondition

func SetResourceInvalidCondition(c []metav1.Condition, err error)

SetResourceInvalidCondition sets/gets the specified condition to invalid

Types

type ClientEndpointsSpec

type ClientEndpointsSpec struct {
	// Index of the allocation in the NnfNodeStorage
	AllocationIndex int `json:"allocationIndex"`

	// List of nodes that should see the allocation
	NodeNames []string `json:"nodeNames"`
}

ClientEndpointsSpec contains information about which nodes a storage allocation should be visible to

func (*ClientEndpointsSpec) DeepCopy

func (in *ClientEndpointsSpec) DeepCopy() *ClientEndpointsSpec

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

func (*ClientEndpointsSpec) DeepCopyInto

func (in *ClientEndpointsSpec) DeepCopyInto(out *ClientEndpointsSpec)

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

type LustreStorageSpec

type LustreStorageSpec struct {
	// FileSystemName is the fsname parameter for the Lustre filesystem.
	// +kubebuilder:validation:MaxLength:=8
	FileSystemName string `json:"fileSystemName,omitempty"`

	// TargetType is the type of Lustre target to be created.
	// +kubebuilder:validation:Enum=MGT;MDT;MGTMDT;OST
	TargetType string `json:"targetType,omitempty"`

	// StartIndex is used to order a series of MDTs or OSTs.  This is used only
	// when creating MDT and OST targets. If count in the NnfNodeStorageSpec is more
	// than 1, then StartIndex is the index of the first allocation, and the indexes
	// increment from there.
	// +kubebuilder:validation:Minimum:=0
	StartIndex int `json:"startIndex,omitempty"`

	// MgsNode is the NID of the MGS to use. This is used only when
	// creating MDT and OST targets.
	MgsNode string `json:"mgsNode,omitempty"`

	// BackFs is the type of backing filesystem to use.
	// +kubebuilder:validation:Enum=ldiskfs;zfs
	BackFs string `json:"backFs,omitempty"`
}

LustreStorageSpec describes the Lustre target to be created here.

func (*LustreStorageSpec) DeepCopy

func (in *LustreStorageSpec) DeepCopy() *LustreStorageSpec

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

func (*LustreStorageSpec) DeepCopyInto

func (in *LustreStorageSpec) DeepCopyInto(out *LustreStorageSpec)

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

type LustreStorageStatus

type LustreStorageStatus struct {

	// Nid (LNet Network Identifier) of this node. This is populated on MGS nodes only.
	Nid string `json:"nid,omitempty"`
}

LustreStorageStatus describes the Lustre target created here.

func (*LustreStorageStatus) DeepCopy

func (in *LustreStorageStatus) DeepCopy() *LustreStorageStatus

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

func (*LustreStorageStatus) DeepCopyInto

func (in *LustreStorageStatus) DeepCopyInto(out *LustreStorageStatus)

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

type NnfAccess

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

	Spec   NnfAccessSpec   `json:"spec,omitempty"`
	Status NnfAccessStatus `json:"status,omitempty"`
}

NnfAccess is the Schema for the nnfaccesses API

func (*NnfAccess) DeepCopy

func (in *NnfAccess) DeepCopy() *NnfAccess

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

func (*NnfAccess) DeepCopyInto

func (in *NnfAccess) DeepCopyInto(out *NnfAccess)

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

func (*NnfAccess) DeepCopyObject

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

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

func (*NnfAccess) GetStatus

func (a *NnfAccess) GetStatus() updater.Status[*NnfAccessStatus]

type NnfAccessList

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

NnfAccessList contains a list of NnfAccess

func (*NnfAccessList) DeepCopy

func (in *NnfAccessList) DeepCopy() *NnfAccessList

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

func (*NnfAccessList) DeepCopyInto

func (in *NnfAccessList) DeepCopyInto(out *NnfAccessList)

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

func (*NnfAccessList) DeepCopyObject

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

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

func (*NnfAccessList) GetObjectList

func (n *NnfAccessList) GetObjectList() []client.Object

type NnfAccessSpec

type NnfAccessSpec struct {
	// DesiredState is the desired state for the mounts on the client
	// +kubebuilder:validation:Enum=mounted;unmounted
	DesiredState string `json:"desiredState"`

	// TeardownState is the desired state of the workflow for this NNF Access resource to
	// be torn down and deleted.
	// +kubebuilder:validation:Enum:=PreRun;PostRun;Teardown
	// +kubebuilder:validation:Type:=string
	TeardownState dwsv1alpha1.WorkflowState `json:"teardownState"`

	// Target specifies which storage targets the client should mount
	// - single: Only one of the storage the client can access
	// - all: All of the storage the client can access
	// +kubebuilder:validation:Enum=single;all
	Target string `json:"target"`

	// UserID for the new mount. Currently only used for raw
	UserID uint32 `json:"userID"`

	// GroupID for the new mount. Currently only used for raw
	GroupID uint32 `json:"groupID"`

	// ClientReference is for a client resource. (DWS) Computes is the only client
	// resource type currently supported
	ClientReference corev1.ObjectReference `json:"clientReference,omitempty"`

	// MountPath for the storage target on the client
	MountPath string `json:"mountPath,omitempty"`

	// MountPathPrefix to  mount the storage target on the client when there is
	// more than one mount on a client
	MountPathPrefix string `json:"mountPathPrefix,omitempty"`

	// StorageReference is the NnfStorage reference
	StorageReference corev1.ObjectReference `json:"storageReference"`
}

NnfAccessSpec defines the desired state of NnfAccess

func (*NnfAccessSpec) DeepCopy

func (in *NnfAccessSpec) DeepCopy() *NnfAccessSpec

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

func (*NnfAccessSpec) DeepCopyInto

func (in *NnfAccessSpec) DeepCopyInto(out *NnfAccessSpec)

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

type NnfAccessStatus

type NnfAccessStatus struct {
	// State is the current state
	// +kubebuilder:validation:Enum=mounted;unmounted
	State string `json:"state"`

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

	dwsv1alpha1.ResourceError `json:",inline"`
}

NnfAccessStatus defines the observed state of NnfAccess

func (*NnfAccessStatus) DeepCopy

func (in *NnfAccessStatus) DeepCopy() *NnfAccessStatus

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

func (*NnfAccessStatus) DeepCopyInto

func (in *NnfAccessStatus) DeepCopyInto(out *NnfAccessStatus)

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

type NnfContainerProfile added in v0.0.2

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

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

NnfContainerProfile is the Schema for the nnfcontainerprofiles API

func (*NnfContainerProfile) DeepCopy added in v0.0.2

func (in *NnfContainerProfile) DeepCopy() *NnfContainerProfile

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

func (*NnfContainerProfile) DeepCopyInto added in v0.0.2

func (in *NnfContainerProfile) DeepCopyInto(out *NnfContainerProfile)

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

func (*NnfContainerProfile) DeepCopyObject added in v0.0.2

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

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

type NnfContainerProfileData added in v0.0.2

type NnfContainerProfileData struct {
	// Pinned is true if this instance is an immutable copy
	// +kubebuilder:default:=false
	Pinned bool `json:"pinned,omitempty"`

	// List of possible filesystems supported by this container profile
	Storages []NnfContainerProfileStorage `json:"storages,omitempty"`

	// Stop any containers after X seconds once a workflow has transitioned to PostRun. Defaults to 0.
	// A value of 0 disables this behavior.
	PostRunTimeoutSeconds int64 `json:"postRunTimeoutSeconds,omitempty"`

	// Specifies the number of times a container will be retried upon a failure. A new pod is deployed on each retry.
	// Defaults to 6 by kubernetes itself and must be set. A value of 0 disables retries.
	// +kubebuilder:default:=6
	RetryLimit int32 `json:"retryLimit"`

	// Template defines the containers that will be created from container profile
	Template corev1.PodTemplateSpec `json:"template"`
}

NnfContainerProfileSpec defines the desired state of NnfContainerProfile

func (*NnfContainerProfileData) DeepCopy added in v0.0.2

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

func (*NnfContainerProfileData) DeepCopyInto added in v0.0.2

func (in *NnfContainerProfileData) DeepCopyInto(out *NnfContainerProfileData)

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

type NnfContainerProfileList added in v0.0.2

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

NnfContainerProfileList contains a list of NnfContainerProfile

func (*NnfContainerProfileList) DeepCopy added in v0.0.2

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

func (*NnfContainerProfileList) DeepCopyInto added in v0.0.2

func (in *NnfContainerProfileList) DeepCopyInto(out *NnfContainerProfileList)

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

func (*NnfContainerProfileList) DeepCopyObject added in v0.0.2

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

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

type NnfContainerProfileStorage added in v0.0.2

type NnfContainerProfileStorage struct {
	// Name specifies the name of the mounted filesystem; must match the user supplied #DW directive
	Name string `json:"name"`

	// Optional designates that this filesystem is available to be mounted, but can be ignored by
	// the user not supplying this filesystem in the #DW directives
	//+kubebuilder:default:=false
	Optional bool `json:"optional"`
}

NnfContainerProfileStorage defines the mount point information that will be available to the container

func (*NnfContainerProfileStorage) DeepCopy added in v0.0.2

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

func (*NnfContainerProfileStorage) DeepCopyInto added in v0.0.2

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

type NnfDataMovement

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

	Spec   NnfDataMovementSpec   `json:"spec,omitempty"`
	Status NnfDataMovementStatus `json:"status,omitempty"`
}

NnfDataMovement is the Schema for the datamovements API

func (*NnfDataMovement) DeepCopy

func (in *NnfDataMovement) DeepCopy() *NnfDataMovement

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

func (*NnfDataMovement) DeepCopyInto

func (in *NnfDataMovement) DeepCopyInto(out *NnfDataMovement)

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

func (*NnfDataMovement) DeepCopyObject

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

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

type NnfDataMovementCommandStatus

type NnfDataMovementCommandStatus struct {
	// The command that was executed during data movement.
	Command string `json:"command,omitempty"`

	// ElapsedTime reflects the elapsed time since the underlying data movement command started.
	ElapsedTime metav1.Duration `json:"elapsedTime,omitempty"`

	// Progress refects the progress of the underlying data movement command as captured from standard output.
	// A best effort is made to parse the command output as a percentage. If no progress has
	// yet to be measured than this field is omitted. If the latest command output does not
	// contain a valid percentage, then the value is unchanged from the previously parsed value.
	ProgressPercentage *int32 `json:"progress,omitempty"`

	// LastMessage reflects the last message received over standard output or standard error as
	// captured by the underlying data movement command.
	LastMessage string `json:"message,omitempty"`

	// LastMessageTime reflects the time at which the last message was received over standard output or
	// standard error by the underlying data movement command.
	LastMessageTime metav1.MicroTime `json:"lastMessageTime,omitempty"`
}

DataMovementCommandStatus defines the observed status of the underlying data movement command (MPI File Utils' `dcp` command).

func (*NnfDataMovementCommandStatus) DeepCopy

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

func (*NnfDataMovementCommandStatus) DeepCopyInto

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

type NnfDataMovementList

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

NnfDataMovementList contains a list of NnfDataMovement

func (*NnfDataMovementList) DeepCopy

func (in *NnfDataMovementList) DeepCopy() *NnfDataMovementList

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

func (*NnfDataMovementList) DeepCopyInto

func (in *NnfDataMovementList) DeepCopyInto(out *NnfDataMovementList)

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

func (*NnfDataMovementList) DeepCopyObject

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

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

func (*NnfDataMovementList) GetObjectList

func (n *NnfDataMovementList) GetObjectList() []client.Object

type NnfDataMovementSpec

type NnfDataMovementSpec struct {

	// Source describes the source of the data movement operation
	Source *NnfDataMovementSpecSourceDestination `json:"source,omitempty"`

	// Destination describes the destination of the data movement operation
	Destination *NnfDataMovementSpecSourceDestination `json:"destination,omitempty"`

	// User Id specifies the user ID for the data movement operation. This value is used
	// in conjunction with the group ID to ensure the user has valid permissions to perform
	// the data movement operation.
	UserId uint32 `json:"userId,omitempty"`

	// Group Id specifies the group ID for the data movement operation. This value is used
	// in conjunction with the user ID to ensure the user has valid permissions to perform
	// the data movement operation.
	GroupId uint32 `json:"groupId,omitempty"`

	// Set to true if the data movement operation should be canceled.
	// +kubebuilder:default:=false
	Cancel bool `json:"cancel,omitempty"`
}

NnfDataMovementSpec defines the desired state of DataMovement

func (*NnfDataMovementSpec) DeepCopy

func (in *NnfDataMovementSpec) DeepCopy() *NnfDataMovementSpec

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

func (*NnfDataMovementSpec) DeepCopyInto

func (in *NnfDataMovementSpec) DeepCopyInto(out *NnfDataMovementSpec)

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

type NnfDataMovementSpecSourceDestination

type NnfDataMovementSpecSourceDestination struct {

	// Path describes the location of the user data relative to the storage instance
	Path string `json:"path,omitempty"`

	// Storage describes the storage backing this data movement specification; Storage can reference
	// either NNF storage or global Lustre storage depending on the object references Kind field.
	StorageReference corev1.ObjectReference `json:"storageReference,omitempty"`
}

DataMovementSpecSourceDestination defines the desired source or destination of data movement

func (*NnfDataMovementSpecSourceDestination) DeepCopy

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

func (*NnfDataMovementSpecSourceDestination) DeepCopyInto

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

type NnfDataMovementStatus

type NnfDataMovementStatus struct {
	// Current state of data movement.
	// +kubebuilder:validation:Enum=Starting;Running;Finished
	State string `json:"state,omitempty"`

	// Status of the current state.
	// +kubebuilder:validation:Enum=Success;Failed;Invalid;Cancelled
	Status string `json:"status,omitempty"`

	// Message contains any text that explains the Status.
	Message string `json:"message,omitempty"`

	// StartTime reflects the time at which the Data Movement operation started.
	StartTime *metav1.MicroTime `json:"startTime,omitempty"`

	// EndTime reflects the time at which the Data Movement operation ended.
	EndTime *metav1.MicroTime `json:"endTime,omitempty"`

	// Restarts contains the number of restarts of the Data Movement operation.
	Restarts int `json:"restarts,omitempty"`

	// CommandStatus reflects the current status of the underlying Data Movement command
	// as it executes. The command status is polled at a certain frequency to avoid excessive
	// updates to the Data Movement resource.
	CommandStatus *NnfDataMovementCommandStatus `json:"commandStatus,omitempty"`
}

DataMovementStatus defines the observed state of DataMovement

func (*NnfDataMovementStatus) DeepCopy

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

func (*NnfDataMovementStatus) DeepCopyInto

func (in *NnfDataMovementStatus) DeepCopyInto(out *NnfDataMovementStatus)

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

type NnfDriveStatus

type NnfDriveStatus 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
	WearLevel int64 `json:"wearLevel,omitempty"`

	NnfResourceStatus `json:",inline"`
}

NnfDriveStatus defines the observe status of drives connected to this NNF Node

func (*NnfDriveStatus) DeepCopy

func (in *NnfDriveStatus) DeepCopy() *NnfDriveStatus

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

func (*NnfDriveStatus) DeepCopyInto

func (in *NnfDriveStatus) DeepCopyInto(out *NnfDriveStatus)

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

type NnfNode

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

	Spec   NnfNodeSpec   `json:"spec,omitempty"`
	Status NnfNodeStatus `json:"status,omitempty"`
}

NnfNode is the Schema for the NnfNode API

func (*NnfNode) DeepCopy

func (in *NnfNode) DeepCopy() *NnfNode

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

func (*NnfNode) DeepCopyInto

func (in *NnfNode) DeepCopyInto(out *NnfNode)

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

func (*NnfNode) DeepCopyObject

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

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

func (*NnfNode) GetStatus

func (n *NnfNode) GetStatus() updater.Status[*NnfNodeStatus]

type NnfNodeECData

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

	Spec   NnfNodeECDataSpec   `json:"spec,omitempty"`
	Status NnfNodeECDataStatus `json:"status,omitempty"`
}

NnfNodeECData is the Schema for the nnfnodeecdata API

func (*NnfNodeECData) DeepCopy

func (in *NnfNodeECData) DeepCopy() *NnfNodeECData

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

func (*NnfNodeECData) DeepCopyInto

func (in *NnfNodeECData) DeepCopyInto(out *NnfNodeECData)

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

func (*NnfNodeECData) DeepCopyObject

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

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

type NnfNodeECDataList

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

NnfNodeECDataList contains a list of NnfNodeECData

func (*NnfNodeECDataList) DeepCopy

func (in *NnfNodeECDataList) DeepCopy() *NnfNodeECDataList

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

func (*NnfNodeECDataList) DeepCopyInto

func (in *NnfNodeECDataList) DeepCopyInto(out *NnfNodeECDataList)

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

func (*NnfNodeECDataList) DeepCopyObject

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

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

type NnfNodeECDataSpec

type NnfNodeECDataSpec struct {
}

NnfNodeECDataSpec defines the desired state of NnfNodeECData

func (*NnfNodeECDataSpec) DeepCopy

func (in *NnfNodeECDataSpec) DeepCopy() *NnfNodeECDataSpec

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

func (*NnfNodeECDataSpec) DeepCopyInto

func (in *NnfNodeECDataSpec) DeepCopyInto(out *NnfNodeECDataSpec)

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

type NnfNodeECDataStatus

type NnfNodeECDataStatus struct {
	Data map[string]NnfNodeECPrivateData `json:"data,omitempty"`
}

NnfNodeECDataStatus defines the observed state of NnfNodeECData

func (*NnfNodeECDataStatus) DeepCopy

func (in *NnfNodeECDataStatus) DeepCopy() *NnfNodeECDataStatus

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

func (*NnfNodeECDataStatus) DeepCopyInto

func (in *NnfNodeECDataStatus) DeepCopyInto(out *NnfNodeECDataStatus)

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

type NnfNodeECPrivateData

type NnfNodeECPrivateData map[string]string

func (NnfNodeECPrivateData) DeepCopy

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

func (NnfNodeECPrivateData) DeepCopyInto

func (in NnfNodeECPrivateData) DeepCopyInto(out *NnfNodeECPrivateData)

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

type NnfNodeList

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

NnfNodeList contains a list of NNF Nodes

func (*NnfNodeList) DeepCopy

func (in *NnfNodeList) DeepCopy() *NnfNodeList

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

func (*NnfNodeList) DeepCopyInto

func (in *NnfNodeList) DeepCopyInto(out *NnfNodeList)

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

func (*NnfNodeList) DeepCopyObject

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

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

type NnfNodeSpec

type NnfNodeSpec struct {

	// The unique name for this NNF Node
	// https://connect.us.cray.com/confluence/display/HSOS/Shasta+HSS+Component+Naming+Convention#ShastaHSSComponentNamingConvention-2.1.4.3MountainCabinetComponents
	Name string `json:"name,omitempty"`

	// Pod name for this NNF Node
	Pod string `json:"pod,omitempty"`

	// State reflects the desired state of this NNF Node resource
	// +kubebuilder:validation:Enum=Enable;Disable
	State NnfResourceStateType `json:"state"`
}

NnfNodeSpec defines the desired state of NNF Node

func (*NnfNodeSpec) DeepCopy

func (in *NnfNodeSpec) DeepCopy() *NnfNodeSpec

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

func (*NnfNodeSpec) DeepCopyInto

func (in *NnfNodeSpec) DeepCopyInto(out *NnfNodeSpec)

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

type NnfNodeStatus

type NnfNodeStatus struct {

	// Status reflects the current status of the NNF Node
	Status NnfResourceStatusType `json:"status,omitempty"`

	Health NnfResourceHealthType `json:"health,omitempty"`

	// Fenced is true when the NNF Node is fenced by the STONITH agent, and false otherwise.
	Fenced bool `json:"fenced,omitempty"`

	Capacity          int64 `json:"capacity,omitempty"`
	CapacityAllocated int64 `json:"capacityAllocated,omitempty"`

	Servers []NnfServerStatus `json:"servers,omitempty"`

	Drives []NnfDriveStatus `json:"drives,omitempty"`
}

NnfNodeStatus defines the observed status of NNF Node

func (*NnfNodeStatus) DeepCopy

func (in *NnfNodeStatus) DeepCopy() *NnfNodeStatus

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

func (*NnfNodeStatus) DeepCopyInto

func (in *NnfNodeStatus) DeepCopyInto(out *NnfNodeStatus)

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

type NnfNodeStorage

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

	Spec   NnfNodeStorageSpec   `json:"spec,omitempty"`
	Status NnfNodeStorageStatus `json:"status,omitempty"`
}

NnfNodeStorage is the Schema for the NnfNodeStorage API

func (*NnfNodeStorage) DeepCopy

func (in *NnfNodeStorage) DeepCopy() *NnfNodeStorage

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

func (*NnfNodeStorage) DeepCopyInto

func (in *NnfNodeStorage) DeepCopyInto(out *NnfNodeStorage)

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

func (*NnfNodeStorage) DeepCopyObject

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

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

func (*NnfNodeStorage) GetStatus

type NnfNodeStorageAllocationStatus

type NnfNodeStorageAllocationStatus struct {
	// Represents the time when the storage was created by the controller
	// It is represented in RFC3339 form and is in UTC.
	CreationTime *metav1.Time `json:"creationTime,omitempty"`

	// Represents the time when the storage was deleted by the controller. This field
	// is updated when the Storage specification State transitions to 'Delete' by the
	// client.
	// It is represented in RFC3339 form and is in UTC.
	DeletionTime *metav1.Time `json:"deletionTime,omitempty"`

	// Total capacity allocated for the storage. This may differ from the requested storage
	// capacity as the system may round up to the requested capacity satisify underlying
	// storage requirements (i.e. block size / stripe size).
	CapacityAllocated int64 `json:"capacityAllocated,omitempty"`

	// Represents the storage group that is supporting this server. A storage group is
	// the mapping from a group of drive namespaces to an individual server. This value
	// can be safely ignored by the client.
	StorageGroup NnfResourceStatus `json:"storageGroup,omitempty"`

	// Name of the LVM VG
	VolumeGroup string `json:"volumeGroup,omitempty"`

	// Name of the LVM LV
	LogicalVolume string `json:"logicalVolume,omitempty"`

	// List of NVMe namespaces used by this allocation
	NVMeList []NnfNodeStorageNVMeStatus `json:"nvmeList,omitempty"`

	// Represents the file share that is supporting this server. A file share is the
	// combination of a storage group and the associated file system parameters (type, mountpoint)
	// that makes up the available storage.
	FileShare NnfResourceStatus `json:"fileShare,omitempty"`

	StoragePool NnfResourceStatus `json:"storagePool,omitempty"`

	FileSystem NnfResourceStatus `json:"fileSystem,omitempty"`

	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

NnfNodeStorageAllocationStatus defines the allocation status for each allocation in the NnfNodeStorage

func (*NnfNodeStorageAllocationStatus) DeepCopy

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

func (*NnfNodeStorageAllocationStatus) DeepCopyInto

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

type NnfNodeStorageList

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

NnfNodeStorageList contains a list of NNF Nodes

func (*NnfNodeStorageList) DeepCopy

func (in *NnfNodeStorageList) DeepCopy() *NnfNodeStorageList

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

func (*NnfNodeStorageList) DeepCopyInto

func (in *NnfNodeStorageList) DeepCopyInto(out *NnfNodeStorageList)

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

func (*NnfNodeStorageList) DeepCopyObject

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

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

func (*NnfNodeStorageList) GetObjectList

func (n *NnfNodeStorageList) GetObjectList() []client.Object

type NnfNodeStorageNVMeStatus

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

NnfNodeStorageNVMeStatus provides a way to uniquely identify an NVMe namespace in the system

func (*NnfNodeStorageNVMeStatus) DeepCopy

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

func (*NnfNodeStorageNVMeStatus) DeepCopyInto

func (in *NnfNodeStorageNVMeStatus) DeepCopyInto(out *NnfNodeStorageNVMeStatus)

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

type NnfNodeStorageSpec

type NnfNodeStorageSpec struct {
	// Count is the number of allocations to make on this node. All of the allocations will
	// be created with the same parameters
	// +kubebuilder:validation:Minimum:=0
	Count int `json:"count"`

	// User ID for file system
	UserID uint32 `json:"userID"`

	// Group ID for file system
	GroupID uint32 `json:"groupID"`

	// Set the owner and group permissions specified by UserID and GroupID. This is for
	// Lustre file systems only, and should be set only after all Lustre targets are created.
	// +kubebuilder:default:=false
	SetOwnerGroup bool `json:"setOwnerGroup"`

	// Capacity defines the capacity, in bytes, of this storage specification. The NNF Node itself
	// may split the storage among the available drives operating in the NNF Node.
	Capacity int64 `json:"capacity,omitempty"`

	// FileSystemType defines the type of the desired filesystem, or raw
	// block device.
	// +kubebuilder:validation:Enum=raw;lvm;zfs;xfs;gfs2;lustre
	// +kubebuilder:default:=raw
	FileSystemType string `json:"fileSystemType"`

	// LustreStorageSpec describes the Lustre target created here, if
	// FileSystemType specifies a Lustre target.
	LustreStorage LustreStorageSpec `json:"lustreStorage,omitempty"`

	// ClientEndpoints sets which endpoints should have access to an allocation.
	ClientEndpoints []ClientEndpointsSpec `json:"clientEndpoints"`
}

NnfNodeStorageSpec defines the desired storage attributes on a NNF Node. Storage spec are created on bequest of the user and fullfilled by the NNF Node Controller.

func (*NnfNodeStorageSpec) DeepCopy

func (in *NnfNodeStorageSpec) DeepCopy() *NnfNodeStorageSpec

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

func (*NnfNodeStorageSpec) DeepCopyInto

func (in *NnfNodeStorageSpec) DeepCopyInto(out *NnfNodeStorageSpec)

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

type NnfNodeStorageStatus

type NnfNodeStorageStatus struct {
	// Allocations is the list of storage allocations that were made
	Allocations []NnfNodeStorageAllocationStatus `json:"allocations,omitempty"`

	dwsv1alpha1.ResourceError `json:",inline"`

	// LustreStorageStatus describes the Lustre targets created here.
	LustreStorage LustreStorageStatus `json:"lustreStorage,omitempty"`

	// OwnerGroupStatus is the status of the operation for setting the owner and group
	// of a file system
	OwnerGroupStatus NnfResourceStatusType `json:"ownerGroupStatus,omitempty"`
}

NnfNodeStorageStatus defines the status for NnfNodeStorage

func (*NnfNodeStorageStatus) DeepCopy

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

func (*NnfNodeStorageStatus) DeepCopyInto

func (in *NnfNodeStorageStatus) DeepCopyInto(out *NnfNodeStorageStatus)

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

type NnfResourceHealthType

type NnfResourceHealthType string

NnfResourceHealthType defines the health of an NNF resource.

func ResourceHealth

func ResourceHealth(s sf.ResourceStatus) NnfResourceHealthType

ResourceHealth maps a SF ResourceStatus to an NNFResourceHealthType

func (NnfResourceHealthType) UpdateIfWorseThan

func (rht NnfResourceHealthType) UpdateIfWorseThan(health *NnfResourceHealthType)

UpdateIfWorseThan examines the input health type and update the health if it is worse than the stored value

type NnfResourceStateType

type NnfResourceStateType string

NnfResourceStateType defines valid states that a user can configure an NNF resource

type NnfResourceStatus

type NnfResourceStatus struct {
	// ID reflects the NNF Node unique identifier for this NNF Server resource.
	ID string `json:"id,omitempty"`

	// Name reflects the common name of this NNF Server resource.
	Name string `json:"name,omitempty"`

	Status NnfResourceStatusType `json:"status,omitempty"`

	Health NnfResourceHealthType `json:"health,omitempty"`
}

NnfResourceStatus provides common fields that are included in all NNF Resources

func (*NnfResourceStatus) DeepCopy

func (in *NnfResourceStatus) DeepCopy() *NnfResourceStatus

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

func (*NnfResourceStatus) DeepCopyInto

func (in *NnfResourceStatus) DeepCopyInto(out *NnfResourceStatus)

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

type NnfResourceStatusType

type NnfResourceStatusType string

NnfResourceStatusType is the string that indicates the resource's status

func ResourceStatus

func ResourceStatus(s sf.ResourceStatus) NnfResourceStatusType

ResourceStatus will convert a Swordfish ResourceStatus to the NNF Resource Status.

func StaticResourceStatus

func StaticResourceStatus(s sf.ResourceStatus) NnfResourceStatusType

StaticResourceStatus will convert a Swordfish ResourceStatus to the NNF Resource Status.

func (NnfResourceStatusType) ConvertToDWSResourceStatus added in v0.0.2

func (rst NnfResourceStatusType) ConvertToDWSResourceStatus() dwsv1alpha1.ResourceStatus

func (NnfResourceStatusType) UpdateIfWorseThan

func (rst NnfResourceStatusType) UpdateIfWorseThan(status *NnfResourceStatusType)

UpdateIfWorseThan updates the stored status of the resource if the new status is worse than what was stored

type NnfServerStatus

type NnfServerStatus struct {
	Hostname string `json:"hostname,omitempty"`

	NnfResourceStatus `json:",inline"`
}

NnfServerStatus defines the observed status of servers connected to this NNF Node

func (*NnfServerStatus) DeepCopy

func (in *NnfServerStatus) DeepCopy() *NnfServerStatus

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

func (*NnfServerStatus) DeepCopyInto

func (in *NnfServerStatus) DeepCopyInto(out *NnfServerStatus)

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

type NnfStorage

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

	Spec   NnfStorageSpec   `json:"spec,omitempty"`
	Status NnfStorageStatus `json:"status,omitempty"`
}

NnfStorage is the Schema for the storages API

func (*NnfStorage) DeepCopy

func (in *NnfStorage) DeepCopy() *NnfStorage

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

func (*NnfStorage) DeepCopyInto

func (in *NnfStorage) DeepCopyInto(out *NnfStorage)

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

func (*NnfStorage) DeepCopyObject

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

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

func (*NnfStorage) GetStatus

func (s *NnfStorage) GetStatus() updater.Status[*NnfStorageStatus]

type NnfStorageAllocationNodes

type NnfStorageAllocationNodes struct {
	// Name of the node to make the allocation on
	Name string `json:"name"`

	// Number of allocations to make on this node
	Count int `json:"count"`
}

NnfStorageAllocationNodes identifies the node and properties of the allocation to make on that node

func (*NnfStorageAllocationNodes) DeepCopy

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

func (*NnfStorageAllocationNodes) DeepCopyInto

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

type NnfStorageAllocationSetSpec

type NnfStorageAllocationSetSpec struct {
	// Name is a human readable label for this set of allocations (e.g., xfs)
	Name string `json:"name"`

	// Capacity defines the capacity, in bytes, of this storage specification. The NNF Node itself
	// may split the storage among the available drives operating in the NNF Node.
	Capacity int64 `json:"capacity"`

	// Lustre specific configuration
	NnfStorageLustreSpec `json:",inline"`

	// Nodes is the list of Rabbit nodes to make allocations on
	Nodes []NnfStorageAllocationNodes `json:"nodes"`
}

NnfStorageAllocationSetSpec defines the details for an allocation set

func (*NnfStorageAllocationSetSpec) DeepCopy

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

func (*NnfStorageAllocationSetSpec) DeepCopyInto

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

type NnfStorageAllocationSetStatus

type NnfStorageAllocationSetStatus struct {
	// Status reflects the status of this allocation set
	Status NnfResourceStatusType `json:"status,omitempty"`

	// Health reflects the health of this allocation set
	Health NnfResourceHealthType `json:"health,omitempty"`

	// Error is the human readable error string
	Error string `json:"error,omitempty"`

	// AllocationCount is the total number of allocations that currently
	// exist
	AllocationCount int `json:"allocationCount"`
}

NnfStorageAllocationSetStatus contains the status information for an allocation set

func (*NnfStorageAllocationSetStatus) DeepCopy

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

func (*NnfStorageAllocationSetStatus) DeepCopyInto

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

type NnfStorageList

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

NnfStorageList contains a list of Storage

func (*NnfStorageList) DeepCopy

func (in *NnfStorageList) DeepCopy() *NnfStorageList

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

func (*NnfStorageList) DeepCopyInto

func (in *NnfStorageList) DeepCopyInto(out *NnfStorageList)

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

func (*NnfStorageList) DeepCopyObject

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

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

func (*NnfStorageList) GetObjectList

func (n *NnfStorageList) GetObjectList() []client.Object

type NnfStorageLustreSpec

type NnfStorageLustreSpec struct {
	// FileSystemName is the fsname parameter for the Lustre filesystem.
	// +kubebuilder:validation:MaxLength:=8
	FileSystemName string `json:"fileSystemName,omitempty"`

	// TargetType is the type of Lustre target to be created.
	// +kubebuilder:validation:Enum=MGT;MDT;MGTMDT;OST
	TargetType string `json:"targetType,omitempty"`

	// BackFs is the type of backing filesystem to use.
	// +kubebuilder:validation:Enum=ldiskfs;zfs
	BackFs string `json:"backFs,omitempty"`

	// ExternalMgsNid is the NID of the MGS when a pre-existing MGS is
	// provided by the DataWarp directive (#DW).
	ExternalMgsNid string `json:"externalMgsNid,omitempty"`
}

NnfStorageLustreSpec defines the specifications for a Lustre filesystem

func (*NnfStorageLustreSpec) DeepCopy

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

func (*NnfStorageLustreSpec) DeepCopyInto

func (in *NnfStorageLustreSpec) DeepCopyInto(out *NnfStorageLustreSpec)

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

type NnfStorageProfile

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

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

NnfStorageProfile is the Schema for the nnfstorageprofiles API

func (*NnfStorageProfile) DeepCopy

func (in *NnfStorageProfile) DeepCopy() *NnfStorageProfile

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

func (*NnfStorageProfile) DeepCopyInto

func (in *NnfStorageProfile) DeepCopyInto(out *NnfStorageProfile)

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

func (*NnfStorageProfile) DeepCopyObject

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

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

func (*NnfStorageProfile) SetupWebhookWithManager

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

func (*NnfStorageProfile) ValidateCreate

func (r *NnfStorageProfile) ValidateCreate() error

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

func (*NnfStorageProfile) ValidateDelete

func (r *NnfStorageProfile) ValidateDelete() error

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

func (*NnfStorageProfile) ValidateUpdate

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

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

type NnfStorageProfileCmdLines

type NnfStorageProfileCmdLines struct {
	// Mkfs specifies the mkfs commandline, minus the "mkfs".
	Mkfs string `json:"mkfs,omitempty"`

	// PvCreate specifies the pvcreate commandline, minus the "pvcreate".
	PvCreate string `json:"pvCreate,omitempty"`

	// VgCreate specifies the vgcreate commandline, minus the "vgcreate".
	VgCreate string `json:"vgCreate,omitempty"`

	// VgChange specifies the various vgchange commandlines, minus the "vgchange"
	VgChange NnfStorageProfileLVMVgChangeCmdLines `json:"vgChange,omitempty"`

	// VgCreate specifies the vgcreate commandline, minus the "vgremove".
	VgRemove string `json:"vgRemove,omitempty"`

	// LvCreate specifies the lvcreate commandline, minus the "lvcreate".
	LvCreate string `json:"lvCreate,omitempty"`

	// LvRemove specifies the lvcreate commandline, minus the "lvremove".
	LvRemove string `json:"lvRemove,omitempty"`
}

NnfStorageProfileCmdLines defines commandlines to use for mkfs, and other utilities.

func (*NnfStorageProfileCmdLines) DeepCopy

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

func (*NnfStorageProfileCmdLines) DeepCopyInto

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

type NnfStorageProfileData

type NnfStorageProfileData struct {

	// Default is true if this instance is the default resource to use
	// +kubebuilder:default:=false
	Default bool `json:"default,omitempty"`

	// Pinned is true if this instance is an immutable copy
	// +kubebuilder:default:=false
	Pinned bool `json:"pinned,omitempty"`

	// LustreStorage defines the Lustre-specific configuration
	LustreStorage NnfStorageProfileLustreData `json:"lustreStorage"`

	// GFS2Storage defines the GFS2-specific configuration
	GFS2Storage NnfStorageProfileGFS2Data `json:"gfs2Storage"`

	// XFSStorage defines the XFS-specific configuration
	XFSStorage NnfStorageProfileXFSData `json:"xfsStorage"`

	// RawStorage defines the Raw-specific configuration
	RawStorage NnfStorageProfileRawData `json:"rawStorage"`
}

NnfStorageProfileData defines the desired state of NnfStorageProfile

func (*NnfStorageProfileData) DeepCopy

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

func (*NnfStorageProfileData) DeepCopyInto

func (in *NnfStorageProfileData) DeepCopyInto(out *NnfStorageProfileData)

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

type NnfStorageProfileGFS2Data

type NnfStorageProfileGFS2Data struct {
	// CmdLines contains commands to create volumes and filesystems.
	CmdLines NnfStorageProfileCmdLines `json:"commandlines,omitempty"`

	// Options contains options for libraries.
	Options NnfStorageProfileMiscOptions `json:"options,omitempty"`
}

NnfStorageProfileGFS2Data defines the GFS2-specific configuration

func (*NnfStorageProfileGFS2Data) DeepCopy

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

func (*NnfStorageProfileGFS2Data) DeepCopyInto

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

type NnfStorageProfileLVMVgChangeCmdLines added in v0.0.2

type NnfStorageProfileLVMVgChangeCmdLines struct {
	// The vgchange commandline for activation, minus the "vgchange" command
	Activate string `json:"activate,omitempty"`

	// The vgchange commandline for deactivation, minus the "vgchange" command
	Deactivate string `json:"deactivate,omitempty"`

	// The vgchange commandline for lockStart, minus the "vgchange" command
	LockStart string `json:"lockStart,omitempty"`
}

NnfStorageProfileLVMVgChangeCmdLines

func (*NnfStorageProfileLVMVgChangeCmdLines) DeepCopy added in v0.0.2

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

func (*NnfStorageProfileLVMVgChangeCmdLines) DeepCopyInto added in v0.0.2

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

type NnfStorageProfileList

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

NnfStorageProfileList contains a list of NnfStorageProfile

func (*NnfStorageProfileList) DeepCopy

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

func (*NnfStorageProfileList) DeepCopyInto

func (in *NnfStorageProfileList) DeepCopyInto(out *NnfStorageProfileList)

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

func (*NnfStorageProfileList) DeepCopyObject

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

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

func (*NnfStorageProfileList) GetObjectList

func (n *NnfStorageProfileList) GetObjectList() []client.Object

type NnfStorageProfileLustreCmdLines

type NnfStorageProfileLustreCmdLines struct {
	// ZpoolCreate specifies the zpool create commandline, minus the "zpool create".
	// This is where you may specify zpool create options, and the virtual device (vdev) such as
	// "mirror", or "draid".  See zpoolconcepts(7).
	ZpoolCreate string `json:"zpoolCreate,omitempty"`

	// Mkfs specifies the mkfs.lustre commandline, minus the "mkfs.lustre".
	// Use the --mkfsoptions argument to specify the zfs create options.  See zfsprops(7).
	// Use the --mountfsoptions argument to specify persistent mount options for the lustre targets.
	Mkfs string `json:"mkfs,omitempty"`
}

NnfStorageProfileLustreCmdLines defines commandlines to use for mkfs, zpool, and other utilities.

func (*NnfStorageProfileLustreCmdLines) DeepCopy

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

func (*NnfStorageProfileLustreCmdLines) DeepCopyInto

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

type NnfStorageProfileLustreData

type NnfStorageProfileLustreData struct {
	// CombinedMGTMDT indicates whether the MGT and MDT should be created on the same target device
	// +kubebuilder:default:=false
	CombinedMGTMDT bool `json:"combinedMgtMdt,omitempty"`

	// ExternalMGS contains the NIDs of a pre-existing MGS that should be used
	ExternalMGS string `json:"externalMgs,omitempty"`

	// CapacityMGT specifies the size of the MGT device.
	// +kubebuilder:validation:Pattern:="^\\d+(KiB|KB|MiB|MB|GiB|GB|TiB|TB)$"
	// +kubebuilder:default:="1GiB"
	CapacityMGT string `json:"capacityMgt,omitempty"`

	// CapacityMDT specifies the size of the MDT device.  This is also
	// used for a combined MGT+MDT device.
	// +kubebuilder:validation:Pattern:="^\\d+(KiB|KB|MiB|MB|GiB|GB|TiB|TB)$"
	// +kubebuilder:default:="5GiB"
	CapacityMDT string `json:"capacityMdt,omitempty"`

	// ExclusiveMDT indicates that the MDT should not be colocated with any other target on the chosen server.
	// +kubebuilder:default:=false
	ExclusiveMDT bool `json:"exclusiveMdt,omitempty"`

	// MgtCmdLines contains commands to create an MGT target.
	MgtCmdLines NnfStorageProfileLustreCmdLines `json:"mgtCommandlines,omitempty"`

	// MdtCmdLines contains commands to create an MDT target.
	MdtCmdLines NnfStorageProfileLustreCmdLines `json:"mdtCommandlines,omitempty"`

	// MgtMdtCmdLines contains commands to create a combined MGT/MDT target.
	MgtMdtCmdLines NnfStorageProfileLustreCmdLines `json:"mgtMdtCommandlines,omitempty"`

	// OstCmdLines contains commands to create an OST target.
	OstCmdLines NnfStorageProfileLustreCmdLines `json:"ostCommandlines,omitempty"`

	// MgtOptions contains options to use for libraries used for an MGT target.
	MgtOptions NnfStorageProfileLustreMiscOptions `json:"mgtOptions,omitempty"`

	// MdtOptions contains options to use for libraries used for an MDT target.
	MdtOptions NnfStorageProfileLustreMiscOptions `json:"mdtOptions,omitempty"`

	// MgtMdtOptions contains options to use for libraries used for a combined MGT/MDT target.
	MgtMdtOptions NnfStorageProfileLustreMiscOptions `json:"mgtMdtOptions,omitempty"`

	// OstOptions contains options to use for libraries used for an OST target.
	OstOptions NnfStorageProfileLustreMiscOptions `json:"ostOptions,omitempty"`
}

NnfStorageProfileLustreData defines the Lustre-specific configuration

func (*NnfStorageProfileLustreData) DeepCopy

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

func (*NnfStorageProfileLustreData) DeepCopyInto

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

type NnfStorageProfileLustreMiscOptions

type NnfStorageProfileLustreMiscOptions struct {
	// MountTarget specifies mount options for the mount-utils library to mount a lustre target on the Rabbit.
	// For persistent mount options for lustre targets, do not use this array; use the --mountfsoptions argument to mkfs.lustre instead.
	// Use one array element per option. Do not prepend the options with "-o".
	MountTarget []string `json:"mountTarget,omitempty"`
}

NnfStorageProfileLustreMiscOptions defines options to use for the mount library, and other utilities.

func (*NnfStorageProfileLustreMiscOptions) DeepCopy

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

func (*NnfStorageProfileLustreMiscOptions) DeepCopyInto

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

type NnfStorageProfileMiscOptions

type NnfStorageProfileMiscOptions struct {
	// MountRabbit specifies mount options for mounting on the Rabbit.
	// Use one array element per option.  Do not prepend the options with "-o".
	MountRabbit []string `json:"mountRabbit,omitempty"`

	// MountCompute specifies mount options for mounting on the Compute.
	// Use one array element per option.  Do not prepend the options with "-o".
	MountCompute []string `json:"mountCompute,omitempty"`
}

NnfStorageProfileMiscOptions defines options to use for the mount library, and other utilities.

func (*NnfStorageProfileMiscOptions) DeepCopy

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

func (*NnfStorageProfileMiscOptions) DeepCopyInto

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

type NnfStorageProfileRawData

type NnfStorageProfileRawData struct {
	// CmdLines contains commands to create volumes and filesystems.
	CmdLines NnfStorageProfileCmdLines `json:"commandlines,omitempty"`
}

NnfStorageProfileRawData defines the Raw-specific configuration

func (*NnfStorageProfileRawData) DeepCopy

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

func (*NnfStorageProfileRawData) DeepCopyInto

func (in *NnfStorageProfileRawData) DeepCopyInto(out *NnfStorageProfileRawData)

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

type NnfStorageProfileXFSData

type NnfStorageProfileXFSData struct {
	// CmdLines contains commands to create volumes and filesystems.
	CmdLines NnfStorageProfileCmdLines `json:"commandlines,omitempty"`

	// Options contains options for libraries.
	Options NnfStorageProfileMiscOptions `json:"options,omitempty"`
}

NnfStorageProfileXFSData defines the XFS-specific configuration

func (*NnfStorageProfileXFSData) DeepCopy

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

func (*NnfStorageProfileXFSData) DeepCopyInto

func (in *NnfStorageProfileXFSData) DeepCopyInto(out *NnfStorageProfileXFSData)

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

type NnfStorageSpec

type NnfStorageSpec struct {

	// FileSystemType defines the type of the desired filesystem, or raw
	// block device.
	// +kubebuilder:validation:Enum=raw;lvm;zfs;xfs;gfs2;lustre
	// +kubebuilder:default:=raw
	FileSystemType string `json:"fileSystemType"`

	// User ID for file system
	UserID uint32 `json:"userID"`

	// Group ID for file system
	GroupID uint32 `json:"groupID"`

	// AllocationSets is a list of different types of storage allocations to make. Each
	// AllocationSet describes an entire allocation spanning multiple Rabbits. For example,
	// an AllocationSet could be all of the OSTs in a Lustre filesystem, or all of the raw
	// block devices in a raw block configuration.
	AllocationSets []NnfStorageAllocationSetSpec `json:"allocationSets"`
}

NnfStorageSpec defines the specification for requesting generic storage on a set of available NNF Nodes. This object is related to a #DW for NNF Storage, with the WLM making the determination for which NNF Nodes it wants to utilize.

func (*NnfStorageSpec) DeepCopy

func (in *NnfStorageSpec) DeepCopy() *NnfStorageSpec

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

func (*NnfStorageSpec) DeepCopyInto

func (in *NnfStorageSpec) DeepCopyInto(out *NnfStorageSpec)

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

type NnfStorageStatus

type NnfStorageStatus struct {

	// MgsNode is the NID of the MGS.
	MgsNode string `json:"mgsNode,omitempty"`

	// AllocationsSets holds the status information for each of the AllocationSets
	// from the spec.
	AllocationSets []NnfStorageAllocationSetStatus `json:"allocationSets,omitempty"`

	dwsv1alpha1.ResourceError `json:",inline"`

	// Status reflects the status of this NNF Storage
	Status NnfResourceStatusType `json:"status,omitempty"`
}

NnfStorageStatus defines the observed status of NNF Storage.

func (*NnfStorageStatus) DeepCopy

func (in *NnfStorageStatus) DeepCopy() *NnfStorageStatus

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

func (*NnfStorageStatus) DeepCopyInto

func (in *NnfStorageStatus) DeepCopyInto(out *NnfStorageStatus)

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

type WorkflowError

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

+kubebuilder:object:generate=false

func NewWorkflowError

func NewWorkflowError(message string) *WorkflowError

func NewWorkflowErrorf

func NewWorkflowErrorf(format string, a ...any) *WorkflowError

func (*WorkflowError) Error

func (e *WorkflowError) Error() string

func (*WorkflowError) GetError

func (e *WorkflowError) GetError() error

func (*WorkflowError) GetMessage

func (e *WorkflowError) GetMessage() string

func (*WorkflowError) GetRecoverable

func (e *WorkflowError) GetRecoverable() bool

func (*WorkflowError) Inject

func (e *WorkflowError) Inject(driverStatus *dwsv1alpha1.WorkflowDriverStatus)

func (*WorkflowError) Unwrap

func (e *WorkflowError) Unwrap() error

func (*WorkflowError) WithError

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

func (*WorkflowError) WithFatal

func (e *WorkflowError) WithFatal() *WorkflowError

Jump to

Keyboard shortcuts

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