v1alpha1

package
v0.3.3 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the holodeck v1alpha1 API group +kubebuilder:object:generate=true +groupName=holodeck.nvidia.com

Index

Constants

View Source
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

View Source
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

func (in *Auth) DeepCopy() *Auth

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

func (*Auth) DeepCopyInto

func (in *Auth) DeepCopyInto(out *Auth)

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

const (
	// CTKSourcePackage installs from distribution packages (default)
	CTKSourcePackage CTKSource = "package"
	// CTKSourceGit installs from a specific git reference
	CTKSourceGit CTKSource = "git"
	// CTKSourceLatest tracks a moving branch at provision time
	CTKSourceLatest CTKSource = "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

func (in *HAConfig) DeepCopy() *HAConfig

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

func (*HAConfig) DeepCopyInto added in v0.3.0

func (in *HAConfig) DeepCopyInto(out *HAConfig)

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

func (*HAConfig) Validate added in v0.3.0

func (ha *HAConfig) Validate(controlPlaneCount int32) error

Validate validates the HAConfig configuration.

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

func (in *Image) DeepCopy() *Image

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

func (*Image) DeepCopyInto

func (in *Image) DeepCopyInto(out *Image)

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

func (in *Instance) DeepCopy() *Instance

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

func (*Instance) DeepCopyInto

func (in *Instance) DeepCopyInto(out *Instance)

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

const (
	// K8sSourceRelease installs from official releases (default)
	K8sSourceRelease K8sSource = "release"
	// K8sSourceGit installs from a specific git reference
	K8sSourceGit K8sSource = "git"
	// K8sSourceLatest tracks a moving branch at provision time
	K8sSourceLatest K8sSource = "latest"
)

type Kernel added in v0.2.8

type Kernel struct {
	Version string `json:"version,omitempty"`
}

func (*Kernel) DeepCopy added in v0.2.8

func (in *Kernel) DeepCopy() *Kernel

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

func (*Kernel) DeepCopyInto added in v0.2.8

func (in *Kernel) DeepCopyInto(out *Kernel)

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

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

type Properties struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

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 Provider

type Provider string

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.

Jump to

Keyboard shortcuts

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