Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the holodeck v1alpha1 API group +kubebuilder:object:generate=true +groupName=holodeck.nvidia.com
Index ¶
- Constants
- Variables
- type Auth
- type CTKGitSpec
- type CTKLatestSpec
- type CTKPackageSpec
- type CTKSource
- type ClusterSpec
- type ClusterStatus
- type ComponentProvenance
- type ComponentsStatus
- type ContainerRuntime
- type ContainerRuntimeName
- type ControlPlaneSpec
- type CustomTemplate
- type DriverGitSpec
- type DriverPackageSpec
- type DriverRunfileSpec
- type DriverSource
- type Environment
- type EnvironmentList
- type EnvironmentSpec
- type EnvironmentStatus
- type EtcdTopology
- type ExtraPortMapping
- type HAConfig
- type Image
- type Instance
- type K8sGitSpec
- type K8sLatestSpec
- type K8sReleaseSpec
- type K8sSource
- type Kernel
- type Kubernetes
- type LoadBalancer
- type NVIDIAContainerToolkit
- type NVIDIADriver
- type NodeStatus
- type Properties
- type Provider
- type RuntimeGitSpec
- type RuntimeLatestSpec
- type RuntimePackageSpec
- type RuntimeSource
- type TemplatePhase
- type WorkerPoolSpec
Constants ¶
const ( // ProviderAWS means the infra provider is AWS ProviderAWS Provider = "aws" // ProviderSSH means the user already has a running instance // and wants to use it as the infra provider via SSH ProviderSSH Provider = "ssh" // Possible values for the Conditions field ConditionProgressing string = "Progressing" ConditionDegraded string = "Degraded" ConditionAvailable string = "Available" ConditionTerminated string = "Terminated" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "holodeck.nvidia.com", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type Auth ¶
type Auth struct {
// KeyName for the SSH connection
KeyName string `json:"keyName"`
Username string `json:"username,omitempty"`
// Path to the public key file on the local machine
PublicKey string `json:"publicKey"`
// Path to the private key file on the local machine
PrivateKey string `json:"privateKey"` //nolint:gosec // G117: stores a file path, not key material
}
func (*Auth) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Auth.
func (*Auth) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CTKGitSpec ¶ added in v0.3.0
type CTKGitSpec struct {
Repo string `json:"repo,omitempty"`
// Ref is the git reference (commit SHA, tag, branch, or PR ref).
// Examples: "v1.17.3", "refs/tags/v1.17.3", "refs/heads/main", "abc123"
// +required
Ref string `json:"ref"`
}
CTKGitSpec defines configuration for git-based installation.
type CTKLatestSpec ¶ added in v0.3.0
type CTKLatestSpec struct {
Track string `json:"track,omitempty"`
Repo string `json:"repo,omitempty"`
}
CTKLatestSpec defines configuration for latest branch tracking.
type CTKPackageSpec ¶ added in v0.3.0
type CTKPackageSpec struct {
Channel string `json:"channel,omitempty"`
Version string `json:"version,omitempty"`
}
CTKPackageSpec defines configuration for package-based installation.
type CTKSource ¶ added in v0.3.0
type CTKSource string
CTKSource defines where to install the NVIDIA Container Toolkit from. +kubebuilder:validation:Enum=package;git;latest
type ClusterSpec ¶ added in v0.3.0
type ClusterSpec struct {
// Region specifies the AWS region for all cluster nodes.
// +required
Region string `json:"region"`
// ControlPlane defines the control-plane node configuration.
// +required
ControlPlane ControlPlaneSpec `json:"controlPlane"`
Workers *WorkerPoolSpec `json:"workers,omitempty"`
HighAvailability *HAConfig `json:"highAvailability,omitempty"`
}
ClusterSpec defines multi-node cluster configuration.
func (*ClusterSpec) DeepCopy ¶ added in v0.3.0
func (in *ClusterSpec) DeepCopy() *ClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec.
func (*ClusterSpec) DeepCopyInto ¶ added in v0.3.0
func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterSpec) Validate ¶ added in v0.3.0
func (c *ClusterSpec) Validate() error
Validate validates the ClusterSpec configuration.
type ClusterStatus ¶ added in v0.3.0
type ClusterStatus struct {
Nodes []NodeStatus `json:"nodes,omitempty"`
ControlPlaneEndpoint string `json:"controlPlaneEndpoint,omitempty"`
LoadBalancerDNS string `json:"loadBalancerDns,omitempty"`
// TotalNodes is the total number of nodes in the cluster.
TotalNodes int32 `json:"totalNodes,omitempty"`
// ReadyNodes is the number of nodes in Ready state.
ReadyNodes int32 `json:"readyNodes,omitempty"`
Phase string `json:"phase,omitempty"`
}
ClusterStatus represents the status of a multi-node cluster.
func (*ClusterStatus) DeepCopy ¶ added in v0.3.0
func (in *ClusterStatus) DeepCopy() *ClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus.
func (*ClusterStatus) DeepCopyInto ¶ added in v0.3.0
func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentProvenance ¶ added in v0.3.0
type ComponentProvenance struct {
// Source is the installation method used (e.g., "package", "runfile", "git", "latest", "release").
Source string `json:"source"`
Version string `json:"version,omitempty"`
Branch string `json:"branch,omitempty"`
Repo string `json:"repo,omitempty"`
Ref string `json:"ref,omitempty"`
Commit string `json:"commit,omitempty"`
}
ComponentProvenance tracks how a component was installed.
type ComponentsStatus ¶ added in v0.3.0
type ComponentsStatus struct {
Driver *ComponentProvenance `json:"driver,omitempty"`
Runtime *ComponentProvenance `json:"runtime,omitempty"`
Toolkit *ComponentProvenance `json:"toolkit,omitempty"`
Kubernetes *ComponentProvenance `json:"kubernetes,omitempty"`
}
ComponentsStatus tracks provisioned component information.
type ContainerRuntime ¶
type ContainerRuntime struct {
Install bool `json:"install"`
// +kubebuilder:validation:Enum=docker;containerd;crio
Name ContainerRuntimeName `json:"name"`
Source RuntimeSource `json:"source,omitempty"`
Package *RuntimePackageSpec `json:"package,omitempty"`
Git *RuntimeGitSpec `json:"git,omitempty"`
Latest *RuntimeLatestSpec `json:"latest,omitempty"`
Version string `json:"version,omitempty"`
}
ContainerRuntime defines the container runtime configuration.
func (*ContainerRuntime) DeepCopy ¶
func (in *ContainerRuntime) DeepCopy() *ContainerRuntime
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerRuntime.
func (*ContainerRuntime) DeepCopyInto ¶
func (in *ContainerRuntime) DeepCopyInto(out *ContainerRuntime)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ContainerRuntime) Validate ¶ added in v0.3.0
func (cr *ContainerRuntime) Validate() error
Validate validates the ContainerRuntime configuration.
type ContainerRuntimeName ¶
type ContainerRuntimeName string
const ( // ContainerRuntimeDocker means the container runtime is Docker ContainerRuntimeDocker ContainerRuntimeName = "docker" // ContainerRuntimeContainerd means the container runtime is Containerd ContainerRuntimeContainerd ContainerRuntimeName = "containerd" // ContainerRuntimeCrio means the container runtime is Crio ContainerRuntimeCrio ContainerRuntimeName = "crio" // ContainerRuntimeNone means the container runtime is not defined ContainerRuntimeNone ContainerRuntimeName = "" )
type ControlPlaneSpec ¶ added in v0.3.0
type ControlPlaneSpec struct {
// Count is the number of control-plane nodes.
// For HA, use an odd number (1, 3, 5) to maintain etcd quorum.
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=7
// +kubebuilder:default=1
Count int32 `json:"count"`
// InstanceType specifies the EC2 instance type for control-plane nodes.
// Default is "m5.xlarge" (x86_64). For arm64, use Graviton types
// (e.g., "m7g.xlarge", "c7g.xlarge").
// +kubebuilder:default="m5.xlarge"
// +optional
InstanceType string `json:"instanceType,omitempty"`
OS string `json:"os,omitempty"`
Image *Image `json:"image,omitempty"`
Dedicated bool `json:"dedicated,omitempty"`
RootVolumeSizeGB *int32 `json:"rootVolumeSizeGB,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
}
ControlPlaneSpec defines control-plane node configuration.
func (*ControlPlaneSpec) DeepCopy ¶ added in v0.3.0
func (in *ControlPlaneSpec) DeepCopy() *ControlPlaneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneSpec.
func (*ControlPlaneSpec) DeepCopyInto ¶ added in v0.3.0
func (in *ControlPlaneSpec) DeepCopyInto(out *ControlPlaneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControlPlaneSpec) Validate ¶ added in v0.3.0
func (cp *ControlPlaneSpec) Validate() error
Validate validates the ControlPlaneSpec configuration.
type CustomTemplate ¶ added in v0.3.0
type CustomTemplate struct {
// Name is a human-readable identifier for the template.
// +required
Name string `json:"name"`
// Phase determines when the template is executed.
// +kubebuilder:default=post-install
// +optional
Phase TemplatePhase `json:"phase,omitempty"`
// Inline contains the script content directly.
// +optional
Inline string `json:"inline,omitempty"`
// File is a path to a local script file.
// +optional
File string `json:"file,omitempty"`
// URL is a remote HTTPS location to fetch the script from.
// +optional
URL string `json:"url,omitempty"`
// Checksum is an optional SHA256 checksum for verification.
// Format: "sha256:<hex-digest>"
// +optional
Checksum string `json:"checksum,omitempty"`
// Timeout in seconds for script execution (default: 600).
// +optional
Timeout int `json:"timeout,omitempty"`
// ContinueOnError allows provisioning to continue if this script fails.
// +optional
ContinueOnError bool `json:"continueOnError,omitempty"`
// Env are environment variables to set for the script.
// +optional
Env map[string]string `json:"env,omitempty"`
}
CustomTemplate defines a user-provided script to execute during provisioning.
func (*CustomTemplate) DeepCopy ¶ added in v0.3.0
func (in *CustomTemplate) DeepCopy() *CustomTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomTemplate.
func (*CustomTemplate) DeepCopyInto ¶ added in v0.3.0
func (in *CustomTemplate) DeepCopyInto(out *CustomTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DriverGitSpec ¶ added in v0.3.0
type DriverGitSpec struct {
Repo string `json:"repo,omitempty"`
// Ref is the git reference (commit SHA, tag, or branch).
// Examples: "560.35.03", "refs/tags/560.35.03", "refs/heads/main", "abc123"
// +required
Ref string `json:"ref"`
}
DriverGitSpec defines configuration for git-based driver installation.
type DriverPackageSpec ¶ added in v0.3.0
type DriverPackageSpec struct {
Branch string `json:"branch,omitempty"`
Version string `json:"version,omitempty"`
}
DriverPackageSpec defines configuration for package-based driver installation.
type DriverRunfileSpec ¶ added in v0.3.0
type DriverRunfileSpec struct {
// URL is the download URL for the .run file.
// +required
URL string `json:"url"`
Checksum string `json:"checksum,omitempty"`
}
DriverRunfileSpec defines configuration for runfile-based driver installation.
type DriverSource ¶ added in v0.3.0
type DriverSource string
DriverSource defines where to install the NVIDIA driver from. +kubebuilder:validation:Enum=package;runfile;git
const ( // DriverSourcePackage installs from CUDA repository packages (default) DriverSourcePackage DriverSource = "package" // DriverSourceRunfile installs from an NVIDIA .run file DriverSourceRunfile DriverSource = "runfile" // DriverSourceGit builds from the open-gpu-kernel-modules repository DriverSourceGit DriverSource = "git" )
type Environment ¶
type Environment struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata"`
Spec EnvironmentSpec `json:"spec"`
Status EnvironmentStatus `json:"status"`
}
Environment is the Schema for the Holodeck Environment API
func (*Environment) DeepCopy ¶
func (in *Environment) DeepCopy() *Environment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Environment.
func (*Environment) DeepCopyInto ¶
func (in *Environment) DeepCopyInto(out *Environment)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Environment) DeepCopyObject ¶
func (in *Environment) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type EnvironmentList ¶
type EnvironmentList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata"`
Items []Environment `json:"items"`
}
EnvironmentList contains a list of Holodeck
func (*EnvironmentList) DeepCopy ¶
func (in *EnvironmentList) DeepCopy() *EnvironmentList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentList.
func (*EnvironmentList) DeepCopyInto ¶
func (in *EnvironmentList) DeepCopyInto(out *EnvironmentList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EnvironmentList) DeepCopyObject ¶
func (in *EnvironmentList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type EnvironmentSpec ¶
type EnvironmentSpec struct {
// +kubebuilder:validation:Enum=aws;ssh
Provider Provider `json:"provider"`
Auth `json:"auth"`
Instance `json:"instance"`
Cluster *ClusterSpec `json:"cluster,omitempty"`
Kernel Kernel `json:"kernel"`
NVIDIADriver NVIDIADriver `json:"nvidiaDriver"`
ContainerRuntime ContainerRuntime `json:"containerRuntime"`
NVIDIAContainerToolkit NVIDIAContainerToolkit `json:"nvidiaContainerToolkit"`
Kubernetes Kubernetes `json:"kubernetes"`
// +optional
LoadBalancer *LoadBalancer `json:"loadBalancer,omitempty"`
// CustomTemplates defines user-provided scripts to execute during provisioning.
// +optional
CustomTemplates []CustomTemplate `json:"customTemplates,omitempty"`
}
EnvironmentSpec defines the desired state of infra provider
func (*EnvironmentSpec) DeepCopy ¶
func (in *EnvironmentSpec) DeepCopy() *EnvironmentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentSpec.
func (*EnvironmentSpec) DeepCopyInto ¶
func (in *EnvironmentSpec) DeepCopyInto(out *EnvironmentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvironmentStatus ¶
type EnvironmentStatus struct {
// +listType=map
// +listMapKey=name
Properties []Properties `json:"properties"`
Conditions []metav1.Condition `json:"conditions,omitempty"`
Cluster *ClusterStatus `json:"cluster,omitempty"`
Components *ComponentsStatus `json:"components,omitempty"`
}
EnvironmentStatus defines the observed state of the infra provider
func (*EnvironmentStatus) DeepCopy ¶
func (in *EnvironmentStatus) DeepCopy() *EnvironmentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentStatus.
func (*EnvironmentStatus) DeepCopyInto ¶
func (in *EnvironmentStatus) DeepCopyInto(out *EnvironmentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EtcdTopology ¶ added in v0.3.0
type EtcdTopology string
EtcdTopology defines where etcd runs in a HA cluster. +kubebuilder:validation:Enum=stacked;external
const ( // EtcdTopologyStacked runs etcd on control-plane nodes (simpler, default) EtcdTopologyStacked EtcdTopology = "stacked" // EtcdTopologyExternal runs etcd on separate dedicated nodes EtcdTopologyExternal EtcdTopology = "external" )
type ExtraPortMapping ¶
type ExtraPortMapping struct {
ContainerPort int `json:"containerPort"`
HostPort int `json:"hostPort"`
}
func (*ExtraPortMapping) DeepCopy ¶
func (in *ExtraPortMapping) DeepCopy() *ExtraPortMapping
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraPortMapping.
func (*ExtraPortMapping) DeepCopyInto ¶
func (in *ExtraPortMapping) DeepCopyInto(out *ExtraPortMapping)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HAConfig ¶ added in v0.3.0
type HAConfig struct {
// Enabled activates high availability mode.
// When true, multiple control-plane nodes are configured with leader
// election and an API server load balancer is created.
// +kubebuilder:default=false
Enabled bool `json:"enabled"`
EtcdTopology EtcdTopology `json:"etcdTopology,omitempty"`
LoadBalancerType string `json:"loadBalancerType,omitempty"`
}
HAConfig defines high availability configuration for the control plane.
func (*HAConfig) DeepCopy ¶ added in v0.3.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HAConfig.
func (*HAConfig) DeepCopyInto ¶ added in v0.3.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Image ¶
type Image struct {
// The architecture of the image.
Architecture string `json:"architecture"`
// The date and time the image was created.
CreationDate *string `json:"creationDate"`
// The description of the AMI that was provided during image creation.
Description *string `json:"description"`
// The ID of the AMI.
ImageId *string `json:"imageId"`
// The location of the AMI.
ImageLocation *string `json:"imageLocation"`
// The name of the AMI that was provided during image creation.
Name *string `json:"name"`
// The ID of the Amazon Web Services account that owns the image.
OwnerId *string `json:"ownerId"`
}
Describes an image or vm template.
func (*Image) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.
func (*Image) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Instance ¶
type Instance struct {
Type string `json:"type"`
Region string `json:"region"`
OS string `json:"os,omitempty"`
Image Image `json:"image"`
IngressIpRanges []string `json:"ingressIpRanges"`
HostUrl string `json:"hostUrl"`
// if not set, the default size is 64GB
RootVolumeSizeGB *int32 `json:"rootVolumeSizeGB"`
}
Instance defines an AWS instance
func (*Instance) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Instance.
func (*Instance) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type K8sGitSpec ¶ added in v0.3.0
type K8sGitSpec struct {
Repo string `json:"repo,omitempty"`
// Ref is the git reference (commit SHA, tag, branch, or PR ref).
// Examples: "v1.32.0-alpha.1", "refs/tags/v1.31.0", "refs/heads/master",
// "abc123", "refs/pull/123456/head"
// +required
Ref string `json:"ref"`
}
K8sGitSpec defines configuration for git-based installation.
type K8sLatestSpec ¶ added in v0.3.0
type K8sLatestSpec struct {
Track string `json:"track,omitempty"`
Repo string `json:"repo,omitempty"`
}
K8sLatestSpec defines configuration for latest branch tracking.
type K8sReleaseSpec ¶ added in v0.3.0
type K8sReleaseSpec struct {
// Version specifies the Kubernetes version (e.g., "v1.31.0").
// +required
Version string `json:"version"`
}
K8sReleaseSpec defines configuration for release-based installation.
type K8sSource ¶ added in v0.3.0
type K8sSource string
K8sSource defines the installation source for Kubernetes. +kubebuilder:validation:Enum=release;git;latest
type Kernel ¶ added in v0.2.8
type Kernel struct {
Version string `json:"version,omitempty"`
}
func (*Kernel) DeepCopy ¶ added in v0.2.8
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Kernel.
func (*Kernel) DeepCopyInto ¶ added in v0.2.8
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Kubernetes ¶
type Kubernetes struct {
Install bool `json:"install"`
Source K8sSource `json:"source,omitempty"`
Release *K8sReleaseSpec `json:"release,omitempty"`
Git *K8sGitSpec `json:"git,omitempty"`
Latest *K8sLatestSpec `json:"latest,omitempty"`
KubernetesInstaller string `json:"Installer,omitempty"`
KubeConfig string `json:"kubeConfig,omitempty"`
KubernetesVersion string `json:"Version,omitempty"`
KubernetesFeatures []string `json:"Features,omitempty"`
KubeletReleaseVersion string `json:"KubeletReleaseVersion,omitempty"`
Arch string `json:"Arch,omitempty"`
CniPluginsVersion string `json:"CniPluginsVersion,omitempty"`
CalicoVersion string `json:"CalicoVersion,omitempty"`
CrictlVersion string `json:"CrictlVersion,omitempty"`
K8sEndpointHost string `json:"K8sEndpointHost,omitempty"`
K8sFeatureGates []string `json:"K8sFeatureGates,omitempty"`
KubeAdmConfig string `json:"kubeAdmConfig,omitempty"`
KindConfig string `json:"kindConfig,omitempty"`
}
Kubernetes defines the Kubernetes cluster configuration.
func (*Kubernetes) DeepCopy ¶
func (in *Kubernetes) DeepCopy() *Kubernetes
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Kubernetes.
func (*Kubernetes) DeepCopyInto ¶
func (in *Kubernetes) DeepCopyInto(out *Kubernetes)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Kubernetes) Validate ¶ added in v0.3.0
func (k *Kubernetes) Validate() error
Validate validates the Kubernetes configuration.
type LoadBalancer ¶ added in v0.3.0
type LoadBalancer struct {
// Enabled enables creation of a Network Load Balancer
Enabled bool `json:"enabled,omitempty"`
// Type is the load balancer type: "nlb" (default) or "alb"
Type string `json:"type,omitempty"`
// HealthCheckPath for ALB health checks
HealthCheckPath string `json:"healthCheckPath,omitempty"`
}
LoadBalancer defines load balancer configuration for HA clusters
type NVIDIAContainerToolkit ¶
type NVIDIAContainerToolkit struct {
Install bool `json:"install"`
Source CTKSource `json:"source,omitempty"`
Package *CTKPackageSpec `json:"package,omitempty"`
Git *CTKGitSpec `json:"git,omitempty"`
Latest *CTKLatestSpec `json:"latest,omitempty"`
EnableCDI bool `json:"enableCDI,omitempty"`
Version string `json:"version,omitempty"`
}
NVIDIAContainerToolkit defines the NVIDIA Container Toolkit configuration.
func (*NVIDIAContainerToolkit) DeepCopy ¶
func (in *NVIDIAContainerToolkit) DeepCopy() *NVIDIAContainerToolkit
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NVIDIAContainerToolkit.
func (*NVIDIAContainerToolkit) DeepCopyInto ¶
func (in *NVIDIAContainerToolkit) DeepCopyInto(out *NVIDIAContainerToolkit)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NVIDIAContainerToolkit) Validate ¶ added in v0.3.0
func (nct *NVIDIAContainerToolkit) Validate() error
Validate validates the NVIDIAContainerToolkit configuration.
type NVIDIADriver ¶
type NVIDIADriver struct {
Install bool `json:"install"`
Source DriverSource `json:"source,omitempty"`
Package *DriverPackageSpec `json:"package,omitempty"`
Runfile *DriverRunfileSpec `json:"runfile,omitempty"`
Git *DriverGitSpec `json:"git,omitempty"`
Branch string `json:"branch,omitempty"`
Version string `json:"version,omitempty"`
}
NVIDIADriver defines the NVIDIA GPU driver configuration.
func (*NVIDIADriver) DeepCopy ¶
func (in *NVIDIADriver) DeepCopy() *NVIDIADriver
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NVIDIADriver.
func (*NVIDIADriver) DeepCopyInto ¶
func (in *NVIDIADriver) DeepCopyInto(out *NVIDIADriver)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NVIDIADriver) Validate ¶ added in v0.3.0
func (d *NVIDIADriver) Validate() error
Validate validates the NVIDIADriver configuration.
type NodeStatus ¶ added in v0.3.0
type NodeStatus struct {
// Name is the node's hostname or identifier.
Name string `json:"name"`
// Role indicates whether this is a control-plane or worker node.
// +kubebuilder:validation:Enum=control-plane;worker
Role string `json:"role"`
// InstanceID is the cloud provider's instance identifier.
InstanceID string `json:"instanceId,omitempty"`
// PublicIP is the node's public IP address.
PublicIP string `json:"publicIp,omitempty"`
// PrivateIP is the node's private IP address within the VPC.
PrivateIP string `json:"privateIp,omitempty"`
SSHUsername string `json:"sshUsername,omitempty"`
// Phase indicates the current lifecycle phase of the node.
// +kubebuilder:validation:Enum=Pending;Provisioning;Running;Ready;Failed;Terminating
Phase string `json:"phase"`
Message string `json:"message,omitempty"`
}
NodeStatus represents the status of a single node in the cluster.
func (*NodeStatus) DeepCopy ¶ added in v0.3.0
func (in *NodeStatus) DeepCopy() *NodeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeStatus.
func (*NodeStatus) DeepCopyInto ¶ added in v0.3.0
func (in *NodeStatus) DeepCopyInto(out *NodeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Properties ¶
func (*Properties) DeepCopy ¶
func (in *Properties) DeepCopy() *Properties
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Properties.
func (*Properties) DeepCopyInto ¶
func (in *Properties) DeepCopyInto(out *Properties)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RuntimeGitSpec ¶ added in v0.3.0
type RuntimeGitSpec struct {
Repo string `json:"repo,omitempty"`
// Ref is the git reference (commit SHA, tag, branch, or PR ref).
// Examples: "v1.7.23", "refs/tags/v1.7.23", "refs/heads/main", "abc123"
// +required
Ref string `json:"ref"`
}
RuntimeGitSpec defines configuration for git-based runtime installation.
type RuntimeLatestSpec ¶ added in v0.3.0
type RuntimeLatestSpec struct {
Track string `json:"track,omitempty"`
Repo string `json:"repo,omitempty"`
}
RuntimeLatestSpec defines configuration for latest branch tracking.
type RuntimePackageSpec ¶ added in v0.3.0
type RuntimePackageSpec struct {
Version string `json:"version,omitempty"`
}
RuntimePackageSpec defines configuration for package-based runtime installation.
type RuntimeSource ¶ added in v0.3.0
type RuntimeSource string
RuntimeSource defines where to install the container runtime from. +kubebuilder:validation:Enum=package;git;latest
const ( // RuntimeSourcePackage installs from distribution packages (default) RuntimeSourcePackage RuntimeSource = "package" // RuntimeSourceGit installs from a specific git reference RuntimeSourceGit RuntimeSource = "git" // RuntimeSourceLatest tracks a moving branch at provision time RuntimeSourceLatest RuntimeSource = "latest" )
type TemplatePhase ¶ added in v0.3.0
type TemplatePhase string
TemplatePhase determines when a custom template is executed during provisioning. +kubebuilder:validation:Enum=pre-install;post-runtime;post-toolkit;post-kubernetes;post-install
const ( // TemplatePhasePreInstall runs before any Holodeck components TemplatePhasePreInstall TemplatePhase = "pre-install" // TemplatePhasePostRuntime runs after container runtime installation TemplatePhasePostRuntime TemplatePhase = "post-runtime" // TemplatePhasePostToolkit runs after NVIDIA Container Toolkit installation TemplatePhasePostToolkit TemplatePhase = "post-toolkit" // TemplatePhasePostKubernetes runs after Kubernetes is ready TemplatePhasePostKubernetes TemplatePhase = "post-kubernetes" // TemplatePhasePostInstall runs after all Holodeck components (default) TemplatePhasePostInstall TemplatePhase = "post-install" )
type WorkerPoolSpec ¶ added in v0.3.0
type WorkerPoolSpec struct {
// Count is the number of worker nodes.
// +kubebuilder:validation:Minimum=0
// +kubebuilder:default=1
Count int32 `json:"count"`
// InstanceType specifies the EC2 instance type for worker nodes.
// For GPU workloads, use GPU instance types (g4dn, p4d, etc.).
// Default is "g4dn.xlarge" (x86_64). For arm64 GPU workloads,
// use "g5g.xlarge" or similar Graviton GPU instances.
// +kubebuilder:default="g4dn.xlarge"
// +optional
InstanceType string `json:"instanceType,omitempty"`
OS string `json:"os,omitempty"`
Image *Image `json:"image,omitempty"`
RootVolumeSizeGB *int32 `json:"rootVolumeSizeGB,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
}
WorkerPoolSpec defines worker node pool configuration.
func (*WorkerPoolSpec) DeepCopy ¶ added in v0.3.0
func (in *WorkerPoolSpec) DeepCopy() *WorkerPoolSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerPoolSpec.
func (*WorkerPoolSpec) DeepCopyInto ¶ added in v0.3.0
func (in *WorkerPoolSpec) DeepCopyInto(out *WorkerPoolSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WorkerPoolSpec) Validate ¶ added in v0.3.0
func (wp *WorkerPoolSpec) Validate() error
Validate validates the WorkerPoolSpec configuration.