v1alpha4

package
v0.1.18 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

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

Index

Constants

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 (
	ContainerLabel   = "nnf.cray.hpe.com/container"
	ContainerUser    = "user"
	ContainerMPIUser = "mpiuser"
)
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"

	// The namespace for NnfDataMovementProfiles that are not pinned.
	DataMovementProfileNamespace = "nnf-system"
)
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 (
	// 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"

	// DataMovementInitiatorLabel is the label applied to Data Movement resources that describes the origin of
	// data movement request. This would be from a copy_in/copy_out directive or from a compute node via the
	// Copy Offload API (i.e. nnf-dm daemon).
	DataMovementInitiatorLabel = "dm.cray.hpe.com/initiator"
)
View Source
const (
	DataMovementWorkerLabel = "dm.cray.hpe.com/worker"

	// The name of the expected Data Movement manager. This is to ensure Data Movement is ready in
	// the DataIn/DataOut stages before attempting data movement operations.
	DataMovementManagerName = "nnf-dm-manager-controller-manager"
)
View Source
const (
	AllocationSetLabel     = "nnf.cray.hpe.com/allocationset"
	AllocationSetOST0Label = "nnf.cray.hpe.com/allocationset_ost0"
)
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"

	// TargetDirectiveIndexLabel is used for ClientMount resources to indicate the
	// directive index of the storage they're targeting.
	TargetDirectiveIndexLabel = "nnf.cray.hpe.com/target_directive_index"

	// TargetOwnerUidLabel is used for ClientMount resources to indicate the UID of the
	// parent NnfStorage it's targeting
	TargetOwnerUidLabel = "nnf.cray.hpe.com/target_owner_uid"

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

	// StandaloneMGTLabel is a label applied to the PersistentStorageInstance to show that
	// it is for a Lustre MGT only. The value for the label is the pool name.
	StandaloneMGTLabel = "nnf.cray.hpe.com/standalone_mgt"

	// RabbitNodeSelectorLabel is a label applied to each k8s Node that is a Rabbit.
	// It is used for scheduling NLCs onto the rabbits.
	// (This is left in its legacy form because so many existing services are
	// using it in their nodeSelector.)
	RabbitNodeSelectorLabel = "cray.nnf.node"

	// TaintsAndLabelsCompletedLabel is a label applied to each k8s Node that is a Rabbit.
	// It is used to indicate that the node has completed the process of applying
	// the taints and labels that mark it as a rabbit.
	TaintsAndLabelsCompletedLabel = "nnf.cray.hpe.com/taints_and_labels_completed"

	// RabbitNodeTaintKey is a taint key applied to each k8s Node that is a Rabbit.
	// It is used for scheduling NLCs onto the rabbits.
	// (This is left in its legacy form to avoid having existing clusters,
	// which already have this taint, grind to a halt.)
	RabbitNodeTaintKey = "cray.nnf.node"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "nnf.cray.hpe.com", Version: "v1alpha4"}

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

func AddDataMovementInitiatorLabel(object metav1.Object, initiator string)

func AddDataMovementTeardownStateLabel

func AddDataMovementTeardownStateLabel(object metav1.Object, state dwsv1alpha2.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 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"`

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

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

	// LustreComponents defines that list of NNF Nodes that are used for the components (e.g. OSTs)
	// in the lustre filesystem. This information is helpful when creating the lustre filesystem and
	// using PostMount commands (e.g. to set the striping).
	LustreComponents NnfStorageLustreComponents `json:"lustreComponents,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 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]

func (*NnfAccess) Hub

func (*NnfAccess) Hub()

func (*NnfAccess) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

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

func (*NnfAccessList) Hub

func (*NnfAccessList) Hub()

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

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 dwsv1alpha2.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
	// - shared: Multiple clients access the same storage
	// +kubebuilder:validation:Enum=single;all;shared
	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"`

	// MakeClientMounts determines whether the ClientMount resources are made, or if only
	// the access list on the NnfNodeBlockStorage is updated
	// +kubebuilder:default=true
	MakeClientMounts bool `json:"makeClientMounts"`

	MountPathPrefix string `json:"mountPathPrefix,omitempty"`

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

	// +kubebuilder:default=false
	IgnoreOfflineComputes bool `json:"ignoreOfflineComputes"`
}

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

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

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

	Data NnfContainerProfileData `json:"data"`
}

NnfContainerProfile is the Schema for the nnfcontainerprofiles API

func (*NnfContainerProfile) DeepCopy

func (in *NnfContainerProfile) DeepCopy() *NnfContainerProfile

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

func (*NnfContainerProfile) DeepCopyInto

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

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

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

func (*NnfContainerProfile) Hub

func (*NnfContainerProfile) Hub()

func (*NnfContainerProfile) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

func (*NnfContainerProfile) ValidateCreate

func (r *NnfContainerProfile) ValidateCreate() (admission.Warnings, error)

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

func (*NnfContainerProfile) ValidateDelete

func (r *NnfContainerProfile) ValidateDelete() (admission.Warnings, error)

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

func (*NnfContainerProfile) ValidateUpdate

func (r *NnfContainerProfile) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

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

type NnfContainerProfileData

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

	// Containers are launched in the PreRun state. Allow this many seconds for the containers to
	// start before declaring an error to the workflow.
	// Defaults to 300 if not set. A value of 0 disables this behavior.
	// +kubebuilder:default:=300
	// +kubebuilder:validation:Minimum:=0
	PreRunTimeoutSeconds *int64 `json:"preRunTimeoutSeconds,omitempty"`

	// Containers are expected to complete in the PostRun State. Allow this many seconds for the
	// containers to exit before declaring an error the workflow.
	// Defaults to 300 if not set. A value of 0 disables this behavior.
	// +kubebuilder:default:=300
	// +kubebuilder:validation:Minimum:=0
	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:validation:Minimum:=0
	// +kubebuilder:default:=6
	RetryLimit int32 `json:"retryLimit"`

	// UserID specifies the user ID that is allowed to use this profile. If this is specified, only
	// Workflows that have a matching user ID can select this profile.
	UserID *uint32 `json:"userID,omitempty"`

	// GroupID specifies the group ID that is allowed to use this profile. If this is specified,
	// only Workflows that have a matching group ID can select this profile.
	GroupID *uint32 `json:"groupID,omitempty"`

	// Number of ports to open for communication with the user container. These ports are opened on
	// the targeted NNF nodes and can be accessed outside of the k8s cluster (e.g. compute nodes).
	// The requested ports are made available as environment variables inside the container and in
	// the DWS workflow (NNF_CONTAINER_PORTS).
	NumPorts int32 `json:"numPorts,omitempty"`

	// Spec to define the containers created from this profile. This is used for non-MPI containers.
	// Refer to the K8s documentation for `PodSpec` for more definition:
	// https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodSpec
	// Either this or MPISpec must be provided, but not both.
	Spec *corev1.PodSpec `json:"spec,omitempty"`

	// MPIJobSpec to define the MPI containers created from this profile. This functionality is
	// provided via mpi-operator, a 3rd party tool to assist in running MPI applications across
	// worker containers.
	// Either this or Spec must be provided, but not both.
	//
	// All the fields defined drive mpi-operator behavior. See the type definition of MPISpec for
	// more detail:
	// https://github.com/kubeflow/mpi-operator/blob/v0.4.0/pkg/apis/kubeflow/v2beta1/types.go#L137
	//
	// Note: most of these fields are fully customizable with a few exceptions. These fields are
	// overridden by NNF software to ensure proper behavior to interface with the DWS workflow
	// - Replicas
	// - RunPolicy.BackoffLimit (this is set above by `RetryLimit`)
	// - Worker/Launcher.RestartPolicy
	MPISpec *mpiv2beta1.MPIJobSpec `json:"mpiSpec,omitempty"`
}

NnfContainerProfileSpec defines the desired state of NnfContainerProfile

func (*NnfContainerProfileData) DeepCopy

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

func (*NnfContainerProfileData) DeepCopyInto

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

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

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

func (*NnfContainerProfileList) DeepCopyInto

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

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

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

func (*NnfContainerProfileList) Hub

func (*NnfContainerProfileList) Hub()

type NnfContainerProfileStorage

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

	// For DW_GLOBAL_ (global lustre) storages, the access mode must match what is configured in
	// the LustreFilesystem resource for the namespace. Defaults to `ReadWriteMany` for global
	// lustre, otherwise empty.
	PVCMode corev1.PersistentVolumeAccessMode `json:"pvcMode,omitempty"`
}

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

func (*NnfContainerProfileStorage) DeepCopy

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

func (*NnfContainerProfileStorage) DeepCopyInto

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

func (*NnfDataMovement) Hub

func (*NnfDataMovement) Hub()

func (*NnfDataMovement) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

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

	// ProgressPercentage 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:"lastMessage,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"`

	// Seconds is parsed from the dcp output when the command is finished.
	Seconds string `json:"seconds,omitempty"`

	// Items is parsed from the dcp output when the command is finished. This is a total of
	// the number of directories, files, and links that dcp copied.
	Items *int32 `json:"items,omitempty"`

	// Directories is parsed from the dcp output when the command is finished. This is the number of
	// directories that dcp copied. Note: This value may be inflated due to NNF index mount
	// directories when copying from XFS or GFS2 filesystems.
	Directories *int32 `json:"directories,omitempty"`

	// Files is parsed from the dcp output when the command is finished. This is the number of files
	// that dcp copied.
	Files *int32 `json:"files,omitempty"`

	// Links is parsed from the dcp output when the command is finished. This is the number of links
	// that dcp copied.
	Links *int32 `json:"links,omitempty"`

	// Data is parsed from the dcp output when the command is finished. This is the total amount of
	// data copied by dcp.
	Data string `json:"data,omitempty"`

	// Rate is parsed from the dcp output when the command is finished. This is transfer rate of the
	// data copied by dcp.
	Rate string `json:"rate,omitempty"`
}

NnfDataMovementCommandStatus 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 NnfDataMovementConfig

type NnfDataMovementConfig struct {

	// Fake the Data Movement operation. The system "performs" Data Movement but the command to do so
	// is trivial. This means a Data Movement request is still submitted but the IO is skipped.
	// +kubebuilder:default:=false
	Dryrun bool `json:"dryrun,omitempty"`

	// Extra options to pass to the mpirun command (used to perform data movement).
	MpirunOptions string `json:"mpirunOptions,omitempty"`

	// Extra options to pass to the dcp command (used to perform data movement).
	DcpOptions string `json:"dcpOptions,omitempty"`

	// If true, enable the command's stdout to be saved in the log when the command completes
	// successfully. On failure, the output is always logged.
	// Note: Enabling this option may degrade performance.
	// +kubebuilder:default:=false
	LogStdout bool `json:"logStdout,omitempty"`

	// Similar to LogStdout, store the command's stdout in Status.Message when the command completes
	// successfully. On failure, the output is always stored.
	// Note: Enabling this option may degrade performance.
	// +kubebuilder:default:=false
	StoreStdout bool `json:"storeStdout,omitempty"`

	// The number of slots specified in the MPI hostfile. A value of 0 disables the use of slots in
	// the hostfile. Nil will defer to the value specified in the NnfDataMovementProfile.
	Slots *int `json:"slots,omitempty"`

	// The number of max_slots specified in the MPI hostfile. A value of 0 disables the use of slots
	// in the hostfile. Nil will defer to the value specified in the NnfDataMovementProfile.
	MaxSlots *int `json:"maxSlots,omitempty"`
}

NnfDataMovementConfig provides a way for a user to override the data movement behavior on a per DM basis.

func (*NnfDataMovementConfig) DeepCopy

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

func (*NnfDataMovementConfig) DeepCopyInto

func (in *NnfDataMovementConfig) DeepCopyInto(out *NnfDataMovementConfig)

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

func (*NnfDataMovementList) Hub

func (*NnfDataMovementList) Hub()

type NnfDataMovementManager

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

	Spec   NnfDataMovementManagerSpec   `json:"spec,omitempty"`
	Status NnfDataMovementManagerStatus `json:"status,omitempty"`
}

NnfDataMovementManager is the Schema for the nnfdatamovementmanagers API

func (*NnfDataMovementManager) DeepCopy

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

func (*NnfDataMovementManager) DeepCopyInto

func (in *NnfDataMovementManager) DeepCopyInto(out *NnfDataMovementManager)

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

func (*NnfDataMovementManager) DeepCopyObject

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

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

func (*NnfDataMovementManager) GetStatus

func (*NnfDataMovementManager) Hub

func (*NnfDataMovementManager) Hub()

func (*NnfDataMovementManager) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

type NnfDataMovementManagerList

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

NnfDataMovementManagerList contains a list of NnfDataMovementManager

func (*NnfDataMovementManagerList) DeepCopy

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

func (*NnfDataMovementManagerList) DeepCopyInto

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

func (*NnfDataMovementManagerList) DeepCopyObject

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

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

func (*NnfDataMovementManagerList) Hub

type NnfDataMovementManagerSpec

type NnfDataMovementManagerSpec struct {

	// Selector defines the pod selector used in scheduling the worker nodes. This value is duplicated
	// to the template.spec.metadata.labels to satisfy the requirements of the worker's Daemon Set.
	Selector metav1.LabelSelector `json:"selector"`

	// Template defines the pod template that is used for the basis of the worker Daemon Set that
	// manages the per node data movement operations.
	Template corev1.PodTemplateSpec `json:"template"`

	// UpdateStrategy defines the UpdateStrategy that is used for the basis of the worker Daemon Set
	// that manages the per node data movement operations.
	UpdateStrategy appsv1.DaemonSetUpdateStrategy `json:"updateStrategy"`

	// Host Path defines the directory location of shared mounts on an individual worker node.
	HostPath string `json:"hostPath"`

	// Mount Path defines the location within the container at which the Host Path volume should be mounted.
	MountPath string `json:"mountPath"`
}

NnfDataMovementManagerSpec defines the desired state of NnfDataMovementManager

func (*NnfDataMovementManagerSpec) DeepCopy

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

func (*NnfDataMovementManagerSpec) DeepCopyInto

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

type NnfDataMovementManagerStatus

type NnfDataMovementManagerStatus struct {

	// Ready indicates that the Data Movement Manager has achieved the desired readiness state
	// and all managed resources are initialized.
	// +kubebuilder:default:=false
	Ready bool `json:"ready"`
}

NnfDataMovementManagerStatus defines the observed state of NnfDataMovementManager

func (*NnfDataMovementManagerStatus) DeepCopy

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

func (*NnfDataMovementManagerStatus) DeepCopyInto

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

type NnfDataMovementProfile

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

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

NnfDataMovementProfile is the Schema for the nnfdatamovementprofiles API

func (*NnfDataMovementProfile) DeepCopy

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

func (*NnfDataMovementProfile) DeepCopyInto

func (in *NnfDataMovementProfile) DeepCopyInto(out *NnfDataMovementProfile)

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

func (*NnfDataMovementProfile) DeepCopyObject

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

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

func (*NnfDataMovementProfile) Hub

func (*NnfDataMovementProfile) Hub()

func (*NnfDataMovementProfile) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

func (*NnfDataMovementProfile) ValidateCreate

func (r *NnfDataMovementProfile) ValidateCreate() (admission.Warnings, error)

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

func (*NnfDataMovementProfile) ValidateDelete

func (r *NnfDataMovementProfile) ValidateDelete() (admission.Warnings, error)

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

func (*NnfDataMovementProfile) ValidateUpdate

func (r *NnfDataMovementProfile) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

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

type NnfDataMovementProfileData

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

	// Slots is the number of slots specified in the MPI hostfile. A value of 0 disables the use of
	// slots in the hostfile. The hostfile is used for both `statCommand` and `Command`.
	// +kubebuilder:default:=8
	// +kubebuilder:validation:Minimum:=0
	Slots int `json:"slots"`

	// MaxSlots is the number of max_slots specified in the MPI hostfile. A value of 0 disables the
	// use of max_slots in the hostfile. The hostfile is used for both `statCommand` and `Command`.
	// +kubebuilder:default:=0
	// +kubebuilder:validation:Minimum:=0
	MaxSlots int `json:"maxSlots"`

	// Command to execute to perform data movement. $VARS are replaced by the nnf software and must
	// be present in the command.
	// Available $VARS:
	//   HOSTFILE: hostfile that is created and used for mpirun. Contains a list of hosts and the
	//             slots/max_slots for each host. This hostfile is created at `/tmp/<dm-name>/hostfile`
	//   UID: User ID that is inherited from the Workflow
	//   GID: Group ID that is inherited from the Workflow
	//   SRC: source for the data movement
	//   DEST destination for the data movement
	// +kubebuilder:default:="ulimit -n 2048 && mpirun --allow-run-as-root --hostfile $HOSTFILE dcp --progress 1 --uid $UID --gid $GID $SRC $DEST"
	Command string `json:"command"`

	// If true, enable the command's stdout to be saved in the log when the command completes
	// successfully. On failure, the output is always logged.
	// +kubebuilder:default:=false
	LogStdout bool `json:"logStdout,omitempty"`

	// Similar to logStdout, store the command's stdout in Status.Message when the command completes
	// successfully. On failure, the output is always stored.
	// +kubebuilder:default:=false
	StoreStdout bool `json:"storeStdout,omitempty"`

	// NnfDataMovement resources have the ability to collect and store the progress percentage and the
	// last few lines of output in the CommandStatus field. This number is used for the interval to collect
	// the progress data. `dcp --progress N` must be included in the data movement command in order for
	// progress to be collected. A value of 0 disables this functionality.
	// +kubebuilder:default:=5
	// +kubebuilder:validation:Minimum:=0
	ProgressIntervalSeconds int `json:"progressIntervalSeconds,omitempty"`

	// CreateDestDir will ensure that the destination directory exists before performing data
	// movement. This will cause a number of stat commands to determine the source and destination
	// file types, so that the correct pathing for the destination can be determined. Then, a mkdir
	// is issued.
	// +kubebuilder:default:=true
	CreateDestDir bool `json:"createDestDir"`

	// If CreateDestDir is true, then use StatCommand to perform the stat commands.
	// Use setpriv to execute with the specified UID/GID.
	// Available $VARS:
	//   HOSTFILE: hostfile that is created and used for mpirun. Contains a list of hosts and the
	//             slots/max_slots for each host. This hostfile is created at
	//             `/tmp/<dm-name>/hostfile`. This is the same hostfile used as the one for Command.
	//   UID: User ID that is inherited from the Workflow
	//   GID: Group ID that is inherited from the Workflow
	//   PATH: Path to stat
	// +kubebuilder:default:="mpirun --allow-run-as-root -np 1 --hostfile $HOSTFILE -- setpriv --euid $UID --egid $GID --clear-groups stat --cached never -c '%F' $PATH"
	StatCommand string `json:"statCommand"`

	// If CreateDestDir is true, then use MkdirCommand to perform the mkdir commands.
	// Use setpriv to execute with the specified UID/GID.
	// Available $VARS:
	//   HOSTFILE: hostfile that is created and used for mpirun. Contains a list of hosts and the
	//             slots/max_slots for each host. This hostfile is created at
	//             `/tmp/<dm-name>/hostfile`. This is the same hostfile used as the one for Command.
	//   UID: User ID that is inherited from the Workflow
	//   GID: Group ID that is inherited from the Workflow
	//   PATH: Path to stat
	// +kubebuilder:default:="mpirun --allow-run-as-root -np 1 --hostfile $HOSTFILE -- setpriv --euid $UID --egid $GID --clear-groups mkdir -p $PATH"
	MkdirCommand string `json:"mkdirCommand"`
}

NnfDataMovementProfileData defines the desired state of NnfDataMovementProfile

func (*NnfDataMovementProfileData) DeepCopy

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

func (*NnfDataMovementProfileData) DeepCopyInto

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

type NnfDataMovementProfileList

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

NnfDataMovementProfileList contains a list of NnfDataMovementProfile

func (*NnfDataMovementProfileList) DeepCopy

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

func (*NnfDataMovementProfileList) DeepCopyInto

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

func (*NnfDataMovementProfileList) DeepCopyObject

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

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

func (*NnfDataMovementProfileList) Hub

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

	// ProfileReference is an object reference to an NnfDataMovementProfile that is used to
	// configure data movement. If empty, the default profile is used.
	ProfileReference corev1.ObjectReference `json:"profileReference,omitempty"`

	// User defined configuration on how data movement should be performed. This overrides the
	// configuration defined in the supplied ProfileReference/NnfDataMovementProfile. These values
	// are typically set by the Copy Offload API.
	UserConfig *NnfDataMovementConfig `json:"userConfig,omitempty"`
}

NnfDataMovementSpec defines the desired state of NnfDataMovement

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

NnfDataMovementSpecSourceDestination 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. If Data Movement failed or storeStdout is
	// enabled, this will contain the command's output.
	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"`

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

NnfDataMovementStatus defines the observed state of NnfDataMovement

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 NnfLustreMGT

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

	Spec   NnfLustreMGTSpec   `json:"spec,omitempty"`
	Status NnfLustreMGTStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion NnfLustreMGT is the Schema for the nnfstorageprofiles API

func (*NnfLustreMGT) DeepCopy

func (in *NnfLustreMGT) DeepCopy() *NnfLustreMGT

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

func (*NnfLustreMGT) DeepCopyInto

func (in *NnfLustreMGT) DeepCopyInto(out *NnfLustreMGT)

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

func (*NnfLustreMGT) DeepCopyObject

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

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

func (*NnfLustreMGT) GetStatus

func (a *NnfLustreMGT) GetStatus() updater.Status[*NnfLustreMGTStatus]

func (*NnfLustreMGT) Hub

func (*NnfLustreMGT) Hub()

func (*NnfLustreMGT) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

type NnfLustreMGTList

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

NnfLustreMGTList contains a list of NnfLustreMGT

func (*NnfLustreMGTList) DeepCopy

func (in *NnfLustreMGTList) DeepCopy() *NnfLustreMGTList

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

func (*NnfLustreMGTList) DeepCopyInto

func (in *NnfLustreMGTList) DeepCopyInto(out *NnfLustreMGTList)

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

func (*NnfLustreMGTList) DeepCopyObject

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

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

func (*NnfLustreMGTList) GetObjectList

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

func (*NnfLustreMGTList) Hub

func (*NnfLustreMGTList) Hub()

type NnfLustreMGTSpec

type NnfLustreMGTSpec struct {
	// Addresses is the list of LNet addresses for the MGT
	Addresses []string `json:"addresses"`

	// FsNameBlackList is a list of fsnames that can't be used. This may be
	// necessary if the MGT hosts file systems external to Rabbit
	FsNameBlackList []string `json:"fsNameBlackList,omitempty"`

	// FsNameStart is the starting fsname to be used
	// +kubebuilder:validation:MaxLength:=8
	// +kubebuilder:validation:MinLength:=8
	FsNameStart string `json:"fsNameStart,omitempty"`

	// FsNameStartReference can be used to add a configmap where the starting fsname is
	// stored. If this reference is set, it takes precendence over FsNameStart. The configmap
	// will be updated with the next available fsname anytime an fsname is used.
	FsNameStartReference corev1.ObjectReference `json:"fsNameStartReference,omitempty"`

	// ClaimList is the list of currently in use fsnames
	ClaimList []corev1.ObjectReference `json:"claimList,omitempty"`
}

NnfLustreMGTSpec defines the desired state of NnfLustreMGT

func (*NnfLustreMGTSpec) DeepCopy

func (in *NnfLustreMGTSpec) DeepCopy() *NnfLustreMGTSpec

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

func (*NnfLustreMGTSpec) DeepCopyInto

func (in *NnfLustreMGTSpec) DeepCopyInto(out *NnfLustreMGTSpec)

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

type NnfLustreMGTStatus

type NnfLustreMGTStatus struct {
	// FsNameNext is the next available fsname that hasn't been used
	// +kubebuilder:validation:MaxLength:=8
	// +kubebuilder:validation:MinLength:=8
	FsNameNext string `json:"fsNameNext,omitempty"`

	// ClaimList is the list of currently in use fsnames
	ClaimList []NnfLustreMGTStatusClaim `json:"claimList,omitempty"`

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

NnfLustreMGTStatus defines the current state of NnfLustreMGT

func (*NnfLustreMGTStatus) DeepCopy

func (in *NnfLustreMGTStatus) DeepCopy() *NnfLustreMGTStatus

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

func (*NnfLustreMGTStatus) DeepCopyInto

func (in *NnfLustreMGTStatus) DeepCopyInto(out *NnfLustreMGTStatus)

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

type NnfLustreMGTStatusClaim

type NnfLustreMGTStatusClaim struct {
	Reference corev1.ObjectReference `json:"reference,omitempty"`
	FsName    string                 `json:"fsname,omitempty"`
}

func (*NnfLustreMGTStatusClaim) DeepCopy

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

func (*NnfLustreMGTStatusClaim) DeepCopyInto

func (in *NnfLustreMGTStatusClaim) DeepCopyInto(out *NnfLustreMGTStatusClaim)

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]

func (*NnfNode) Hub

func (*NnfNode) Hub()

func (*NnfNode) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

type NnfNodeBlockStorage

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

	Spec   NnfNodeBlockStorageSpec   `json:"spec,omitempty"`
	Status NnfNodeBlockStorageStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.ready" +kubebuilder:printcolumn:name="ERROR",type="string",JSONPath=".status.error.severity" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"

func (*NnfNodeBlockStorage) DeepCopy

func (in *NnfNodeBlockStorage) DeepCopy() *NnfNodeBlockStorage

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

func (*NnfNodeBlockStorage) DeepCopyInto

func (in *NnfNodeBlockStorage) DeepCopyInto(out *NnfNodeBlockStorage)

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

func (*NnfNodeBlockStorage) DeepCopyObject

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

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

func (*NnfNodeBlockStorage) GetStatus

func (*NnfNodeBlockStorage) Hub

func (*NnfNodeBlockStorage) Hub()

func (*NnfNodeBlockStorage) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

type NnfNodeBlockStorageAccessStatus

type NnfNodeBlockStorageAccessStatus struct {
	// /dev paths for each of the block devices
	DevicePaths []string `json:"devicePaths,omitempty"`

	// Redfish ID for the storage group
	StorageGroupId string `json:"storageGroupId,omitempty"`
}

func (*NnfNodeBlockStorageAccessStatus) DeepCopy

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

func (*NnfNodeBlockStorageAccessStatus) DeepCopyInto

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

type NnfNodeBlockStorageAllocationSpec

type NnfNodeBlockStorageAllocationSpec struct {
	// Aggregate capacity of the block devices for each allocation
	Capacity int64 `json:"capacity,omitempty"`

	// List of nodes where /dev devices should be created
	Access []string `json:"access,omitempty"`
}

func (*NnfNodeBlockStorageAllocationSpec) DeepCopy

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

func (*NnfNodeBlockStorageAllocationSpec) DeepCopyInto

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

type NnfNodeBlockStorageAllocationStatus

type NnfNodeBlockStorageAllocationStatus struct {
	// Accesses is a map of node name to the access status
	Accesses map[string]NnfNodeBlockStorageAccessStatus `json:"accesses,omitempty"`

	// List of NVMe namespaces used by this allocation
	Devices []NnfNodeBlockStorageDeviceStatus `json:"devices,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 to satisify underlying
	// storage requirements (i.e. block size / stripe size).
	CapacityAllocated int64 `json:"capacityAllocated,omitempty"`

	// Redfish ID for the storage pool
	StoragePoolId string `json:"storagePoolId,omitempty"`
}

func (*NnfNodeBlockStorageAllocationStatus) DeepCopy

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

func (*NnfNodeBlockStorageAllocationStatus) DeepCopyInto

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

type NnfNodeBlockStorageDeviceStatus

type NnfNodeBlockStorageDeviceStatus struct {
	// NQN of the base NVMe device
	NQN string `json:"NQN"`

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

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

func (*NnfNodeBlockStorageDeviceStatus) DeepCopy

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

func (*NnfNodeBlockStorageDeviceStatus) DeepCopyInto

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

type NnfNodeBlockStorageList

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

NnfNodeBlockStorageList contains a list of NNF Nodes

func (*NnfNodeBlockStorageList) DeepCopy

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

func (*NnfNodeBlockStorageList) DeepCopyInto

func (in *NnfNodeBlockStorageList) DeepCopyInto(out *NnfNodeBlockStorageList)

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

func (*NnfNodeBlockStorageList) DeepCopyObject

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

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

func (*NnfNodeBlockStorageList) GetObjectList

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

func (*NnfNodeBlockStorageList) Hub

func (*NnfNodeBlockStorageList) Hub()

type NnfNodeBlockStorageSpec

type NnfNodeBlockStorageSpec struct {
	// SharedAllocation is used when a single NnfNodeBlockStorage allocation is used by multiple NnfNodeStorage allocations
	SharedAllocation bool `json:"sharedAllocation"`

	// Allocations is the list of storage allocations to make
	Allocations []NnfNodeBlockStorageAllocationSpec `json:"allocations,omitempty"`
}

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

func (*NnfNodeBlockStorageSpec) DeepCopy

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

func (*NnfNodeBlockStorageSpec) DeepCopyInto

func (in *NnfNodeBlockStorageSpec) DeepCopyInto(out *NnfNodeBlockStorageSpec)

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

type NnfNodeBlockStorageStatus

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

	dwsv1alpha2.ResourceError `json:",inline"`

	// PodStartTime is the value of pod.status.containerStatuses[].state.running.startedAt from the pod that did
	// last successful full reconcile of the NnfNodeBlockStorage. This is used to tell whether the /dev paths
	// listed in the status section are from the current boot of the node.
	PodStartTime metav1.Time `json:"podStartTime,omitempty"`

	Ready bool `json:"ready"`
}

func (*NnfNodeBlockStorageStatus) DeepCopy

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

func (*NnfNodeBlockStorageStatus) DeepCopyInto

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

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.

func (*NnfNodeECData) Hub

func (*NnfNodeECData) Hub()

func (*NnfNodeECData) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

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.

func (*NnfNodeECDataList) Hub

func (*NnfNodeECDataList) Hub()

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.

func (*NnfNodeList) Hub

func (*NnfNodeList) Hub()

type NnfNodeSpec

type NnfNodeSpec struct {

	// The unique name for this NNF Node
	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"`

	// LNetNid is the LNet address for the NNF node
	LNetNid string `json:"lnetNid,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"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.ready" +kubebuilder:printcolumn:name="ERROR",type="string",JSONPath=".status.error.severity" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" 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

func (*NnfNodeStorage) Hub

func (*NnfNodeStorage) Hub()

func (*NnfNodeStorage) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

type NnfNodeStorageAllocationStatus

type NnfNodeStorageAllocationStatus struct {
	// Name of the LVM VG
	VolumeGroup string `json:"volumeGroup,omitempty"`

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

	Ready bool `json:"ready,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

func (*NnfNodeStorageList) Hub

func (*NnfNodeStorageList) Hub()

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

	// SharedAllocation is used when a single NnfNodeBlockStorage allocation is used by multiple NnfNodeStorage allocations
	SharedAllocation bool `json:"sharedAllocation"`

	// Capacity of an individual allocation
	Capacity int64 `json:"capacity,omitempty"`

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

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

	// 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,omitempty"`

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

	// BlockReference is an object reference to an NnfNodeBlockStorage
	BlockReference corev1.ObjectReference `json:"blockReference,omitempty"`
}

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

	Ready bool `json:"ready,omitempty"`

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

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 NnfPortManager

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

	Spec   NnfPortManagerSpec   `json:"spec,omitempty"`
	Status NnfPortManagerStatus `json:"status,omitempty"`
}

NnfPortManager is the Schema for the nnfportmanagers API

func (*NnfPortManager) DeepCopy

func (in *NnfPortManager) DeepCopy() *NnfPortManager

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

func (*NnfPortManager) DeepCopyInto

func (in *NnfPortManager) DeepCopyInto(out *NnfPortManager)

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

func (*NnfPortManager) DeepCopyObject

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

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

func (*NnfPortManager) GetStatus

func (*NnfPortManager) Hub

func (*NnfPortManager) Hub()

func (*NnfPortManager) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

type NnfPortManagerAllocationSpec

type NnfPortManagerAllocationSpec struct {
	// Requester is an object reference to the requester of a ports.
	Requester corev1.ObjectReference `json:"requester"`

	// Count is the number of desired ports the requester needs. The port manager
	// will attempt to allocate this many ports.
	// +kubebuilder:default:=1
	Count int `json:"count"`
}

NnfPortManagerAllocationSpec defines the desired state for a single port allocation

func (*NnfPortManagerAllocationSpec) DeepCopy

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

func (*NnfPortManagerAllocationSpec) DeepCopyInto

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

type NnfPortManagerAllocationStatus

type NnfPortManagerAllocationStatus struct {
	// Requester is an object reference to the requester of the port resource, if one exists, or
	// empty otherwise.
	Requester *corev1.ObjectReference `json:"requester,omitempty"`

	// Ports is list of ports allocated to the owning resource.
	Ports []uint16 `json:"ports,omitempty"`

	// Status is the ownership status of the port.
	Status NnfPortManagerAllocationStatusStatus `json:"status"`

	// TimeUnallocated is when the port was unallocated. This is to ensure the proper cooldown
	// duration.
	TimeUnallocated *metav1.Time `json:"timeUnallocated,omitempty"`
}

NnfPortManagerAllocationStatus defines the allocation status of a port for a given requester.

func (*NnfPortManagerAllocationStatus) DeepCopy

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

func (*NnfPortManagerAllocationStatus) DeepCopyInto

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

type NnfPortManagerAllocationStatusStatus

type NnfPortManagerAllocationStatusStatus string

AllocationStatus is the current status of a port requestor. A port that is in use by the respective owner will have a status of "InUse". A port that is freed by the owner but not yet reclaimed by the port manager will have a status of "Free". Any other status value indicates a failure of the port allocation. +kubebuilder:validation:Enum:=InUse;Free;Cooldown;InvalidConfiguration;InsufficientResources

const (
	NnfPortManagerAllocationStatusInUse                 NnfPortManagerAllocationStatusStatus = "InUse"
	NnfPortManagerAllocationStatusFree                  NnfPortManagerAllocationStatusStatus = "Free"
	NnfPortManagerAllocationStatusCooldown              NnfPortManagerAllocationStatusStatus = "Cooldown"
	NnfPortManagerAllocationStatusInvalidConfiguration  NnfPortManagerAllocationStatusStatus = "InvalidConfiguration"
	NnfPortManagerAllocationStatusInsufficientResources NnfPortManagerAllocationStatusStatus = "InsufficientResources"
)

type NnfPortManagerList

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

NnfPortManagerList contains a list of NnfPortManager

func (*NnfPortManagerList) DeepCopy

func (in *NnfPortManagerList) DeepCopy() *NnfPortManagerList

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

func (*NnfPortManagerList) DeepCopyInto

func (in *NnfPortManagerList) DeepCopyInto(out *NnfPortManagerList)

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

func (*NnfPortManagerList) DeepCopyObject

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

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

func (*NnfPortManagerList) Hub

func (*NnfPortManagerList) Hub()

type NnfPortManagerSpec

type NnfPortManagerSpec struct {

	// SystemConfiguration is an object reference to the system configuration. The
	// Port Manager will use the available ports defined in the system configuration.
	SystemConfiguration corev1.ObjectReference `json:"systemConfiguration"`

	// Allocations is a list of allocation requests that the Port Manager will attempt
	// to satisfy. To request port resources from the port manager, clients should add
	// an entry to the allocations. Entries must be unique. The port manager controller
	// will attempt to allocate port resources for each allocation specification in the
	// list. To remove an allocation and free up port resources, remove the allocation
	// from the list.
	Allocations []NnfPortManagerAllocationSpec `json:"allocations"`
}

NnfPortManagerSpec defines the desired state of NnfPortManager

func (*NnfPortManagerSpec) DeepCopy

func (in *NnfPortManagerSpec) DeepCopy() *NnfPortManagerSpec

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

func (*NnfPortManagerSpec) DeepCopyInto

func (in *NnfPortManagerSpec) DeepCopyInto(out *NnfPortManagerSpec)

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

type NnfPortManagerStatus

type NnfPortManagerStatus struct {

	// Allocations is a list of port allocation status'.
	Allocations []NnfPortManagerAllocationStatus `json:"allocations,omitempty"`

	// Status is the current status of the port manager.
	Status NnfPortManagerStatusStatus `json:"status"`
}

NnfPortManagerStatus defines the observed state of NnfPortManager

func (*NnfPortManagerStatus) DeepCopy

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

func (*NnfPortManagerStatus) DeepCopyInto

func (in *NnfPortManagerStatus) DeepCopyInto(out *NnfPortManagerStatus)

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

type NnfPortManagerStatusStatus

type NnfPortManagerStatusStatus string

PortManagerStatus is the current status of the port manager. +kubebuilder:validation:Enum:=Ready;SystemConfigurationNotFound

const (
	NnfPortManagerStatusReady                       NnfPortManagerStatusStatus = "Ready"
	NnfPortManagerStatusSystemConfigurationNotFound NnfPortManagerStatusStatus = "SystemConfigurationNotFound"
)

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

func (rst NnfResourceStatusType) ConvertToDWSResourceStatus() dwsv1alpha2.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]

func (*NnfStorage) Hub

func (*NnfStorage) Hub()

func (*NnfStorage) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

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

	// SharedAllocation shares a single block storage allocation between multiple file system allocations
	// (within the same workflow) on a Rabbit
	SharedAllocation bool `json:"sharedAllocation"`

	// 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 {
	Ready bool `json:"ready,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

func (*NnfStorageList) Hub

func (*NnfStorageList) Hub()

type NnfStorageLustreComponents

type NnfStorageLustreComponents struct {
	// MTDs is the list of NNF nodes being used as MDTs.
	MDTs []string `json:"mdts,omitempty"`

	// MGTs is the list of NNF nodes being used as MGTs.
	MGTs []string `json:"mgts,omitempty"`

	// MGTMDTs is the list of NNF nodes being used as combined MGTMDTs.
	MGTMDTs []string `json:"mgtmdts,omitempty"`

	// OSTs is the list of NNF nodes being used as OSTs.
	OSTs []string `json:"osts,omitempty"`

	// NNfNodes is the list of NNF nodes being used for this filesystem. This is a unique list of
	// node names.
	NNFNodes []string `json:"nnfNodes,omitempty"`
}

NnfStorageLustreComponents identifies which NNF nodes are used for each lustre component used by the lustre filesystem. Each list can include an NNF node multiple times if that is how it is being used (except for NNFNodes).

func (*NnfStorageLustreComponents) DeepCopy

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

func (*NnfStorageLustreComponents) DeepCopyInto

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

type NnfStorageLustreSpec

type NnfStorageLustreSpec struct {
	// 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"`

	// MgsAddress is the NID of the MGS when a pre-existing MGS is
	// provided in the NnfStorageProfile
	MgsAddress string `json:"mgsAddress,omitempty"`

	// PersistentMgsReference is a reference to a persistent storage that is providing
	// the external MGS.
	PersistentMgsReference corev1.ObjectReference `json:"persistentMgsReference,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 NnfStorageLustreStatus

type NnfStorageLustreStatus struct {
	// MgsAddress is the NID of the MGS.
	MgsAddress string `json:"mgsAddress,omitempty"`

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

	// LustgreMgtReference is an object reference to the NnfLustreMGT resource used
	// by the NnfStorage
	LustreMgtReference corev1.ObjectReference `json:"lustreMgtReference,omitempty"`

	// LustreComponents defines that list of NNF Nodes that are used for the components (e.g. OSTs)
	// in the lustre filesystem.
	LustreComponents NnfStorageLustreComponents `json:"lustreComponents,omitempty"`
}

func (*NnfStorageLustreStatus) DeepCopy

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

func (*NnfStorageLustreStatus) DeepCopyInto

func (in *NnfStorageLustreStatus) DeepCopyInto(out *NnfStorageLustreStatus)

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

func (n *NnfStorageProfile) GetLustreMiscOptions(target string) NnfStorageProfileLustreMiscOptions

func (*NnfStorageProfile) Hub

func (*NnfStorageProfile) Hub()

func (*NnfStorageProfile) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

func (*NnfStorageProfile) ValidateCreate

func (r *NnfStorageProfile) ValidateCreate() (admission.Warnings, error)

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

func (*NnfStorageProfile) ValidateDelete

func (r *NnfStorageProfile) ValidateDelete() (admission.Warnings, error)

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

func (*NnfStorageProfile) ValidateUpdate

func (r *NnfStorageProfile) ValidateUpdate(old runtime.Object) (admission.Warnings, 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"`

	// SharedVg specifies that allocations from a workflow on the same Rabbit should share an
	// LVM VolumeGroup
	// +kubebuilder:default:=false
	SharedVg bool `json:"sharedVg,omitempty"`

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

	// PvRemove specifies the pvremove commandline, minus the "pvremove".
	PvRemove string `json:"pvRemove,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"`

	// LvChange specifies the various lvchange commandlines, minus the "lvchange"
	LvChange NnfStorageProfileLVMLvChangeCmdLines `json:"lvChange,omitempty"`

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

	// MountRabbit specifies mount options for mounting on the Rabbit.
	MountRabbit string `json:"mountRabbit,omitempty"`

	// PostMount specifies a list of commands to run on the Rabbit after the
	// file system has been activated and mounted.
	PostMount []string `json:"postMount,omitempty"`

	// MountCompute specifies mount options for mounting on the Compute.
	MountCompute string `json:"mountCompute,omitempty"`

	// PreUnmount specifies a list of commands to run on the Rabbit before the
	// file system is deactivated and unmounted.
	PreUnmount []string `json:"preUnmount,omitempty"`
}

NnfStorageProfileCmdLines defines commandlines to use for mkfs, and other utilities for storage allocations that use LVM and a simple file system type (e.g., gfs2)

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 describing an active storage resource
	// +kubebuilder:default:=false
	Pinned bool `json:"pinned,omitempty"`

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

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

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

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

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

	// Storagelabels defines a list of labels that are added to the DirectiveBreakdown
	// labels constraint. This restricts allocations to Storage resources with these labels
	StorageLabels []string `json:"storageLabels,omitempty"`

	// CapacityScalingFactor is a scaling factor for the capacity requested in the DirectiveBreakdown
	// +kubebuilder:default:="1.0"
	CapacityScalingFactor string `json:"capacityScalingFactor,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 NnfStorageProfileLVMLvChangeCmdLines

type NnfStorageProfileLVMLvChangeCmdLines struct {
	// The lvchange commandline for activate, minus the "lvchange" command
	Activate string `json:"activate,omitempty"`

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

NnfStorageProfileLVMVgChangeCmdLines

func (*NnfStorageProfileLVMLvChangeCmdLines) DeepCopy

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

func (*NnfStorageProfileLVMLvChangeCmdLines) DeepCopyInto

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

type NnfStorageProfileLVMVgChangeCmdLines

type NnfStorageProfileLVMVgChangeCmdLines struct {
	// The vgchange commandline for lockStart, minus the "vgchange" command
	LockStart string `json:"lockStart,omitempty"`

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

NnfStorageProfileLVMVgChangeCmdLines

func (*NnfStorageProfileLVMVgChangeCmdLines) DeepCopy

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

func (*NnfStorageProfileLVMVgChangeCmdLines) DeepCopyInto

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

func (*NnfStorageProfileList) Hub

func (*NnfStorageProfileList) Hub()

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

	// MountTarget specifies the mount command line for the lustre target.
	// For persistent mount options for lustre targets, do not use this array; use the --mountfsoptions
	// argument to mkfs.lustre instead.
	MountTarget string `json:"mountTarget,omitempty"`

	// PostActivate specifies a list of commands to run on the Rabbit after the
	// Lustre target has been activated
	PostActivate []string `json:"postActivate,omitempty"`

	// PostMount specifies a list of commands to run on the Rabbit (Lustre client) after the Lustre
	// target is activated. This includes mounting the Lustre filesystem beforehand and unmounting
	// it afterward.
	PostMount []string `json:"postMount,omitempty"`

	// PreUnmount specifies a list of commands to run on the Rabbit (Lustre client) before the
	// Lustre target is deactivated. This includes mounting the Lustre filesystem beforehand and
	// unmounting it afterward.
	PreUnmount []string `json:"preUnmount,omitempty"`

	// PreDeactivate specifies a list of commands to run on the Rabbit before the
	// Lustre target is deactivated
	PreDeactivate []string `json:"preDeactivate,omitempty"`
}

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

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 specifies the use of an existing MGS rather than creating one. This can
	// be either the NID(s) of a pre-existing MGS that should be used, or it can be an NNF Persistent
	// Instance that was created with the "StandaloneMGTPoolName" option. In the latter case, the format
	// is "pool:poolName" where "poolName" is the argument from "StandaloneMGTPoolName". A single MGS will
	// be picked from the pool.
	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:="5GiB"
	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"`

	// CapacityScalingFactor is a scaling factor for the OST capacity requested in the DirectiveBreakdown
	// +kubebuilder:default:="1.0"
	CapacityScalingFactor string `json:"capacityScalingFactor,omitempty"`

	// StandaloneMGTPoolName creates a Lustre MGT without a MDT or OST. This option can only be used when creating
	// a persistent Lustre instance. The MGS is placed into a named pool that can be used by the "ExternalMGS" option.
	// Multiple pools can be created.
	StandaloneMGTPoolName string `json:"standaloneMgtPoolName,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"`

	// MountRabbit specifies mount options for making the Lustre client mount on the Rabbit.
	MountRabbit string `json:"mountRabbit,omitempty"`

	// MountCompute specifies mount options for making the Lustre client mount on the Compute.
	MountCompute string `json:"mountCompute,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 {
	// ColocateComputes indicates that the Lustre target should be placed on a Rabbit node that has a physical connection
	// to the compute nodes in a workflow
	// +kubebuilder:default:=false
	ColocateComputes bool `json:"colocateComputes"`

	// Count specifies how many Lustre targets to create
	// +kubebuilder:validation:Minimum:=1
	Count int `json:"count,omitempty"`

	// Scale provides a unitless value to determine how many Lustre targets to create
	// +kubebuilder:validation:Minimum:=1
	// +kubebuilder:validation:Maximum:=10
	Scale int `json:"scale,omitempty"`

	// Storagelabels defines a list of labels that are added to the DirectiveBreakdown
	// labels constraint. This restricts allocations to Storage resources with these labels
	StorageLabels []string `json:"storageLabels,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 NnfStorageProfileRawData

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

	// Storagelabels defines a list of labels that are added to the DirectiveBreakdown
	// labels constraint. This restricts allocations to Storage resources with these labels
	StorageLabels []string `json:"storageLabels,omitempty"`

	// CapacityScalingFactor is a scaling factor for the capacity requested in the DirectiveBreakdown
	// +kubebuilder:default:="1.0"
	CapacityScalingFactor string `json:"capacityScalingFactor,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"`

	// Storagelabels defines a list of labels that are added to the DirectiveBreakdown
	// labels constraint. This restricts allocations to Storage resources with these labels
	StorageLabels []string `json:"storageLabels,omitempty"`

	// CapacityScalingFactor is a scaling factor for the capacity requested in the DirectiveBreakdown
	// +kubebuilder:default:="1.0"
	CapacityScalingFactor string `json:"capacityScalingFactor,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,omitempty"`

	// 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 {
	NnfStorageLustreStatus `json:",inline"`

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

	dwsv1alpha2.ResourceError `json:",inline"`

	// Ready reflects the status of this NNF Storage
	Ready bool `json:"ready,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 NnfSystemStorage

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

	Spec   NnfSystemStorageSpec   `json:"spec,omitempty"`
	Status NnfSystemStorageStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion NnfSystemStorage is the Schema for the nnfsystemstorages API

func (*NnfSystemStorage) DeepCopy

func (in *NnfSystemStorage) DeepCopy() *NnfSystemStorage

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

func (*NnfSystemStorage) DeepCopyInto

func (in *NnfSystemStorage) DeepCopyInto(out *NnfSystemStorage)

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

func (*NnfSystemStorage) DeepCopyObject

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

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

func (*NnfSystemStorage) GetStatus

func (*NnfSystemStorage) Hub

func (*NnfSystemStorage) Hub()

func (*NnfSystemStorage) SetupWebhookWithManager

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

SetupWebhookWithManager will setup the manager to manage the webhooks

type NnfSystemStorageComputesTarget

type NnfSystemStorageComputesTarget string
const (
	ComputesTargetAll     NnfSystemStorageComputesTarget = "all"
	ComputesTargetEven    NnfSystemStorageComputesTarget = "even"
	ComputesTargetOdd     NnfSystemStorageComputesTarget = "odd"
	ComputesTargetPattern NnfSystemStorageComputesTarget = "pattern"
)

type NnfSystemStorageList

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

+kubebuilder:object:root=true NnfSystemStorageList contains a list of NnfSystemStorage

func (*NnfSystemStorageList) DeepCopy

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

func (*NnfSystemStorageList) DeepCopyInto

func (in *NnfSystemStorageList) DeepCopyInto(out *NnfSystemStorageList)

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

func (*NnfSystemStorageList) DeepCopyObject

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

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

func (*NnfSystemStorageList) GetObjectList

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

func (*NnfSystemStorageList) Hub

func (*NnfSystemStorageList) Hub()

type NnfSystemStorageSpec

type NnfSystemStorageSpec struct {
	// SystemConfiguration is an object reference to the SystemConfiguration resource to use. If this
	// field is empty, name: default namespace: default is used.
	SystemConfiguration corev1.ObjectReference `json:"systemConfiguration,omitempty"`

	// ExludeRabbits is a list of Rabbits to exclude from the Rabbits in the SystemConfiguration
	ExcludeRabbits []string `json:"excludeRabbits,omitempty"`

	// IncludeRabbits is a list of Rabbits to use rather than getting the list of Rabbits from the
	// SystemConfiguration
	IncludeRabbits []string `json:"includeRabbits,omitempty"`

	// ExcludeDisabledRabbits looks at the Storage resource for a Rabbit and does not use it if it's
	// marked as "disabled"
	// +kubebuilder:default:=false
	ExcludeDisabledRabbits bool `json:"excludeDisabledRabbits,omitempty"`

	// ExcludeComputes is a list of compute nodes to exclude from the the compute nodes listed in the
	// SystemConfiguration
	ExcludeComputes []string `json:"excludeComputes,omitempty"`

	// IncludeComputes is a list of computes nodes to use rather than getting the list of compute nodes
	// from the SystemConfiguration
	IncludeComputes []string `json:"includeComputes,omitempty"`

	// ComputesTarget specifies which computes to make the storage accessible to
	// +kubebuilder:validation:Enum=all;even;odd;pattern
	// +kubebuilder:default:=all
	ComputesTarget NnfSystemStorageComputesTarget `json:"computesTarget,omitempty"`

	// ComputesPattern is a list of compute node indexes (0-15) to make the storage accessible to. This
	// is only used if ComputesTarget is "pattern"
	// +kubebuilder:validation:MaxItems=16
	// +kubebuilder:validation:items:Maximum=15
	// +kubebuilder:validation:items:Minimum=0
	ComputesPattern []int `json:"computesPattern,omitempty"`

	// Capacity is the allocation size on each Rabbit
	// +kubebuilder:default:=1073741824
	Capacity int64 `json:"capacity"`

	// Type is the file system type to use for the storage allocation
	// +kubebuilder:validation:Enum=raw;xfs;gfs2
	// +kubebuilder:default:=raw
	Type string `json:"type,omitempty"`

	// Shared will create one allocation per Rabbit rather than one allocation
	// per compute node.
	// +kubebuilder:default:=true
	Shared bool `json:"shared"`

	// StorageProfile is an object reference to the storage profile to use
	StorageProfile corev1.ObjectReference `json:"storageProfile"`

	// +kubebuilder:default:=false
	IgnoreOfflineComputes bool `json:"ignoreOfflineComputes"`

	// MakeClientMounts specifies whether to make ClientMount resources or just
	// make the devices available to the client
	// +kubebuilder:default:=false
	MakeClientMounts bool `json:"makeClientMounts"`

	// ClientMountPath is an optional path for where to mount the file system on the computes
	ClientMountPath string `json:"clientMountPath,omitempty"`
}

NnfSystemStorageSpec defines the desired state of NnfSystemStorage

func (*NnfSystemStorageSpec) DeepCopy

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

func (*NnfSystemStorageSpec) DeepCopyInto

func (in *NnfSystemStorageSpec) DeepCopyInto(out *NnfSystemStorageSpec)

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

type NnfSystemStorageStatus

type NnfSystemStorageStatus struct {
	// Ready signifies whether all work has been completed
	Ready bool `json:"ready"`

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

NnfSystemStorageStatus defines the observed state of NnfSystemStorage

func (*NnfSystemStorageStatus) DeepCopy

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

func (*NnfSystemStorageStatus) DeepCopyInto

func (in *NnfSystemStorageStatus) DeepCopyInto(out *NnfSystemStorageStatus)

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