Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the v1alpha1 API group +kubebuilder:object:generate=true +groupName=flux-framework.org
Index ¶
- Variables
- type Commands
- type ExistingVolume
- type Hyperqueue
- func (in *Hyperqueue) DeepCopy() *Hyperqueue
- func (in *Hyperqueue) DeepCopyInto(out *Hyperqueue)
- func (in *Hyperqueue) DeepCopyObject() runtime.Object
- func (hq *Hyperqueue) ExistingContainerVolumes() map[string]ExistingVolume
- func (hq *Hyperqueue) Validate() bool
- func (hq *Hyperqueue) WorkerNode() Node
- func (hq *Hyperqueue) WorkerNodes() int32
- type HyperqueueList
- type HyperqueueSpec
- type HyperqueueStatus
- type Job
- type Node
- type Resource
- type Resources
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "flux-framework.org", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type Commands ¶
type Commands struct {
// Init runs before anything in both scripts
// +optional
Init string `json:"init,omitempty"`
}
ContainerResources include limits and requests
func (*Commands) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Commands.
func (*Commands) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExistingVolume ¶
type ExistingVolume struct {
// Path and claim name are always required if a secret isn't defined
// +optional
Path string `json:"path,omitempty"`
// Config map name if the existing volume is a config map
// You should also define items if you are using this
// +optional
ConfigMapName string `json:"configMapName,omitempty"`
// Items (key and paths) for the config map
// +optional
Items map[string]string `json:"items"`
// Claim name if the existing volume is a PVC
// +optional
ClaimName string `json:"claimName,omitempty"`
// An existing secret
// +optional
SecretName string `json:"secretName,omitempty"`
// +kubebuilder:default=false
// +default=false
// +optional
ReadOnly bool `json:"readOnly,omitempty"`
}
Existing volumes available to mount
func (*ExistingVolume) DeepCopy ¶
func (in *ExistingVolume) DeepCopy() *ExistingVolume
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExistingVolume.
func (*ExistingVolume) DeepCopyInto ¶
func (in *ExistingVolume) DeepCopyInto(out *ExistingVolume)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Hyperqueue ¶
type Hyperqueue struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec HyperqueueSpec `json:"spec,omitempty"`
Status HyperqueueStatus `json:"status,omitempty"`
}
Hyperqueue is the Schema for the Hyperqueues API
func (*Hyperqueue) DeepCopy ¶
func (in *Hyperqueue) DeepCopy() *Hyperqueue
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Hyperqueue.
func (*Hyperqueue) DeepCopyInto ¶
func (in *Hyperqueue) DeepCopyInto(out *Hyperqueue)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Hyperqueue) DeepCopyObject ¶
func (in *Hyperqueue) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Hyperqueue) ExistingContainerVolumes ¶
func (hq *Hyperqueue) ExistingContainerVolumes() map[string]ExistingVolume
Get unique existing volumes across nodes
func (*Hyperqueue) WorkerNode ¶
func (hq *Hyperqueue) WorkerNode() Node
WorkerNode returns the worker node (if defined) or falls back to the server
func (*Hyperqueue) WorkerNodes ¶
func (hq *Hyperqueue) WorkerNodes() int32
WorkerNodes returns the number of worker nodes At this point we've already validated size is >= 1
type HyperqueueList ¶
type HyperqueueList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Hyperqueue `json:"items"`
}
HyperqueueList contains a list of Hyperqueue
func (*HyperqueueList) DeepCopy ¶
func (in *HyperqueueList) DeepCopy() *HyperqueueList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HyperqueueList.
func (*HyperqueueList) DeepCopyInto ¶
func (in *HyperqueueList) DeepCopyInto(out *HyperqueueList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HyperqueueList) DeepCopyObject ¶
func (in *HyperqueueList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type HyperqueueSpec ¶
type HyperqueueSpec struct {
// Server is the main server to run Hyperqueue
Server Node `json:"server"`
// Name for the cluster service
//+optional
ServiceName string `json:"serviceName"`
// Worker is the worker node spec
// Defaults to be same spec as the server
//+optional
Worker Node `json:"worker"`
// If launching a job, control the spec here
//+optional
Job Job `json:"job"`
// Release of Hyperqueue to installed (if hq binary not found in PATH)
// +kubebuilder:default="0.16.0"
// +default="0.16.0"
// +optional
HyperqueueVersion string `json:"hyperqueueVersion,omitempty"`
// Size of the Hyperqueue (1 server + (N-1) nodes)
Size int32 `json:"size"`
// Global commands to run on all nodes
// +optional
Commands Commands `json:"commands,omitempty"`
// Interactive mode keeps the cluster running
// +optional
Interactive bool `json:"interactive"`
// Time limit for the job
// Approximately one year. This cannot be zero or job won't start
// +kubebuilder:default=31500000
// +default=31500000
// +optional
DeadlineSeconds int64 `json:"deadlineSeconds,omitempty"`
// Resources include limits and requests
// +optional
Resources Resource `json:"resources"`
}
HyperqueueSpec defines the desired state of Hyperqueue
func (*HyperqueueSpec) DeepCopy ¶
func (in *HyperqueueSpec) DeepCopy() *HyperqueueSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HyperqueueSpec.
func (*HyperqueueSpec) DeepCopyInto ¶
func (in *HyperqueueSpec) DeepCopyInto(out *HyperqueueSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HyperqueueStatus ¶
type HyperqueueStatus struct{}
HyperqueueStatus defines the observed state of Hyperqueue
func (*HyperqueueStatus) DeepCopy ¶
func (in *HyperqueueStatus) DeepCopy() *HyperqueueStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HyperqueueStatus.
func (*HyperqueueStatus) DeepCopyInto ¶
func (in *HyperqueueStatus) DeepCopyInto(out *HyperqueueStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Job ¶
type Job struct {
// Nodes for the job (defaults to 0 for 1)
// +optional
Nodes int64 `json:"nodes"`
// Name for the job
// +optional
Name string `json:"name"`
// Name for the log file
// +optional
Log string `json:"log"`
}
func (*Job) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Job.
func (*Job) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Node ¶
type Node struct {
// Image to use for Hyperqueue
// +kubebuilder:default="ubuntu"
// +default="ubuntu"
// +optional
Image string `json:"image"`
// Existing Volumes to add to the containers
// +optional
ExistingVolumes map[string]ExistingVolume `json:"existingVolumes"`
// Port for Hyperqueue to use.
// Since we have a headless service, this
// is not represented in the operator, just
// in starting the server or a worker
// +optional
Port int32 `json:"port"`
// Resources include limits and requests
// +optional
Resources Resources `json:"resources"`
// PullSecret for the node, if needed
// +optional
PullSecret string `json:"pullSecret"`
// Command will be honored by a server node
// +optional
Command string `json:"command,omitempty"`
// Commands to run around different parts of the hyperqueue setup
// +optional
Commands Commands `json:"commands,omitempty"`
// Working directory
// +optional
WorkingDir string `json:"workingDir,omitempty"`
// PullAlways will always pull the container
// +optional
PullAlways bool `json:"pullAlways"`
// Ports to be exposed to other containers in the cluster
// We take a single list of integers and map to the same
// +optional
// +listType=atomic
Ports []int32 `json:"ports"`
// Key/value pairs for the environment
// +optional
Environment map[string]string `json:"environment"`
}
Node corresponds to a pod (server or worker)
func (*Node) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Node.
func (*Node) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Resource ¶
type Resource map[string]intstr.IntOrString
func (Resource) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resource.
func (Resource) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Resources ¶
type Resources struct {
// +optional
Limits Resource `json:"limits"`
// +optional
Requests Resource `json:"requests"`
}
ContainerResources include limits and requests
func (*Resources) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resources.
func (*Resources) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.