Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the kaiwo v1 API group. +kubebuilder:object:generate=true +groupName=kaiwo.silogen.ai
Index ¶
- Constants
- Variables
- type AzureBlobStorageDownloadItem
- type CloudDownloadBucket
- type CloudDownloadFile
- type CloudDownloadFolder
- type ClusterQueue
- type CommonMetaSpec
- type ConfigSource
- type ConfigSourceItem
- type DataStorageSpec
- type DownloadTaskConfig
- type GCSDownloadItem
- type HfStorageSpec
- type HuggingFaceDownloadItem
- type KaiwoJob
- type KaiwoJobList
- type KaiwoJobSpec
- type KaiwoJobStatus
- type KaiwoQueueConfig
- type KaiwoQueueConfigList
- type KaiwoQueueConfigSpec
- type KaiwoQueueConfigStatus
- type KaiwoService
- type KaiwoServiceList
- type KaiwoServiceSpec
- type KaiwoServiceStatus
- type ObjectStorageDownloadSpec
- type ResourceFlavorSpec
- type S3DownloadItem
- type Status
- type StorageSpec
- type ValueReference
Constants ¶
const ( UserLabel = "kaiwo/user" QueueLabel = "kueue.x-k8s.io/queue-name" )
Common labels used across resources.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "kaiwo.silogen.ai", 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 AzureBlobStorageDownloadItem ¶
type AzureBlobStorageDownloadItem struct {
ConnectionString ValueReference `json:"connectionString" yaml:"connectionString"`
Containers []CloudDownloadBucket `json:"containers"`
}
func (*AzureBlobStorageDownloadItem) DeepCopy ¶
func (in *AzureBlobStorageDownloadItem) DeepCopy() *AzureBlobStorageDownloadItem
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureBlobStorageDownloadItem.
func (*AzureBlobStorageDownloadItem) DeepCopyInto ¶
func (in *AzureBlobStorageDownloadItem) DeepCopyInto(out *AzureBlobStorageDownloadItem)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CloudDownloadBucket ¶
type CloudDownloadBucket struct {
Name string `json:"name"`
Files []CloudDownloadFile `json:"files,omitempty"`
Folders []CloudDownloadFolder `json:"folders,omitempty"`
}
func (*CloudDownloadBucket) DeepCopy ¶
func (in *CloudDownloadBucket) DeepCopy() *CloudDownloadBucket
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudDownloadBucket.
func (*CloudDownloadBucket) DeepCopyInto ¶
func (in *CloudDownloadBucket) DeepCopyInto(out *CloudDownloadBucket)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CloudDownloadFile ¶
type CloudDownloadFile struct {
Path string `json:"path"`
TargetPath string `json:"targetPath" yaml:"targetPath"`
}
func (*CloudDownloadFile) DeepCopy ¶
func (in *CloudDownloadFile) DeepCopy() *CloudDownloadFile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudDownloadFile.
func (*CloudDownloadFile) DeepCopyInto ¶
func (in *CloudDownloadFile) DeepCopyInto(out *CloudDownloadFile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CloudDownloadFolder ¶
type CloudDownloadFolder struct {
Path string `json:"path"`
TargetPath string `json:"targetPath" yaml:"targetPath"`
Glob string `json:"glob,omitempty" yaml:"glob,omitempty"`
}
func (*CloudDownloadFolder) DeepCopy ¶
func (in *CloudDownloadFolder) DeepCopy() *CloudDownloadFolder
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudDownloadFolder.
func (*CloudDownloadFolder) DeepCopyInto ¶
func (in *CloudDownloadFolder) DeepCopyInto(out *CloudDownloadFolder)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterQueue ¶
type ClusterQueue struct {
Name string `json:"name"`
Spec kueuev1beta1.ClusterQueueSpec `json:"spec,omitempty"`
}
func (*ClusterQueue) DeepCopy ¶
func (in *ClusterQueue) DeepCopy() *ClusterQueue
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterQueue.
func (*ClusterQueue) DeepCopyInto ¶
func (in *ClusterQueue) DeepCopyInto(out *ClusterQueue)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CommonMetaSpec ¶
type CommonMetaSpec struct {
// Name is the name of the workload.
Name string `json:"name,omitempty"`
// Namespace defines the namespace in which the workload is deployed.
Namespace string `json:"namespace,omitempty"`
// Labels is a map of key-value pairs used for organizing workloads.
Labels map[string]string `json:"labels,omitempty"`
// Annotations provides additional metadata for the workload.
Annotations map[string]string `json:"annotations,omitempty"`
}
CommonMetaSpec defines reusable metadata fields for workloads.
func (*CommonMetaSpec) DeepCopy ¶
func (in *CommonMetaSpec) DeepCopy() *CommonMetaSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonMetaSpec.
func (*CommonMetaSpec) DeepCopyInto ¶
func (in *CommonMetaSpec) DeepCopyInto(out *CommonMetaSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigSource ¶
type ConfigSource struct {
// Type specifies the type of configuration source. Valid values are:
// - "ConfigMap": Configuration is stored in a Kubernetes ConfigMap.
// - "S3": Configuration is stored in an S3-compatible object storage bucket.
Type string `json:"type,omitempty"`
// ConfigMapName specifies the name of the ConfigMap to be mounted.
// This field is only relevant if Type is "ConfigMap".
ConfigMapName string `json:"configMapName,omitempty"`
// S3BucketName specifies the name of the S3 bucket where configuration files are stored.
// This field is only relevant if Type is "S3".
S3BucketName string `json:"s3BucketName,omitempty"`
// S3Path specifies an optional path within the S3 bucket where the configuration files reside.
// This field is only relevant if Type is "S3".
S3Path string `json:"s3Path,omitempty"`
// S3Credentials references a Kubernetes Secret containing credentials for accessing the S3 bucket.
// The Secret should have standard AWS credential keys (e.g., "AWS_ACCESS_KEY_ID" and "AWS_SECRET_ACCESS_KEY").
// This field is only relevant if Type is "S3".
S3Credentials *corev1.SecretReference `json:"s3Credentials,omitempty"`
}
ConfigSource defines the source of configuration files for the workload.
func (*ConfigSource) DeepCopy ¶
func (in *ConfigSource) DeepCopy() *ConfigSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigSource.
func (*ConfigSource) DeepCopyInto ¶
func (in *ConfigSource) DeepCopyInto(out *ConfigSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigSourceItem ¶
type ConfigSourceItem struct {
Path string `json:"mountPath,omitempty"`
Value string `json:"value,omitempty"`
}
func (*ConfigSourceItem) DeepCopy ¶
func (in *ConfigSourceItem) DeepCopy() *ConfigSourceItem
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigSourceItem.
func (*ConfigSourceItem) DeepCopyInto ¶
func (in *ConfigSourceItem) DeepCopyInto(out *ConfigSourceItem)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DataStorageSpec ¶
type DataStorageSpec struct {
// MountPath specifies where the data PVC will be mounted to in each pod
MountPath string `json:"mountPath,omitempty"`
// StorageSize specifies the amount of storage allocated to the data PVC
StorageSize string `json:"storageSize,omitempty"`
// Download optional object storage pre-downloads
Download ObjectStorageDownloadSpec `json:"download,omitempty"`
}
func (*DataStorageSpec) DeepCopy ¶
func (in *DataStorageSpec) DeepCopy() *DataStorageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataStorageSpec.
func (*DataStorageSpec) DeepCopyInto ¶
func (in *DataStorageSpec) DeepCopyInto(out *DataStorageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DataStorageSpec) IsRequested ¶
func (spec *DataStorageSpec) IsRequested() bool
type DownloadTaskConfig ¶
type DownloadTaskConfig struct {
// DownloadRoot specifies the common root for all the downloads
DownloadRoot string `json:"downloadRoot" yaml:"downloadRoot"`
// HfHome specifies path for $HF_HOME env variable
HfHome string `json:"hfHome" yaml:"hfHome"`
S3 []S3DownloadItem `json:"s3,omitempty" yaml:"s3,omitempty"`
GCS []GCSDownloadItem `json:"gcs,omitempty" yaml:"gcs,omitempty"`
HF []HuggingFaceDownloadItem `json:"hf,omitempty" yaml:"hf,omitempty"`
AzureBlob []AzureBlobStorageDownloadItem `json:"azureBlob,omitempty" yaml:"azureBlob,omitempty"`
}
func (*DownloadTaskConfig) DeepCopy ¶
func (in *DownloadTaskConfig) DeepCopy() *DownloadTaskConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownloadTaskConfig.
func (*DownloadTaskConfig) DeepCopyInto ¶
func (in *DownloadTaskConfig) DeepCopyInto(out *DownloadTaskConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GCSDownloadItem ¶
type GCSDownloadItem struct {
ApplicationCredentials ValueReference `json:"applicationCredentials" yaml:"applicationCredentials"`
Buckets []CloudDownloadBucket `json:"buckets"`
}
func (*GCSDownloadItem) DeepCopy ¶
func (in *GCSDownloadItem) DeepCopy() *GCSDownloadItem
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCSDownloadItem.
func (*GCSDownloadItem) DeepCopyInto ¶
func (in *GCSDownloadItem) DeepCopyInto(out *GCSDownloadItem)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HfStorageSpec ¶
type HfStorageSpec struct {
// MountPath specifies where the data HF will be mounted to in each pod.
// This is also used to set the HF_HOME environmental variable into each container.
MountPath string `json:"mountPath,omitempty"`
// StorageSize specifies the amount of storage allocated to the HF PVC
StorageSize string `json:"storageSize,omitempty"`
// PreCacheRepos is a list of repositories (and their files) that should be cached before the workload starts
PreCacheRepos []HuggingFaceDownloadItem `json:"preCacheRepos,omitempty"`
}
func (*HfStorageSpec) DeepCopy ¶
func (in *HfStorageSpec) DeepCopy() *HfStorageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HfStorageSpec.
func (*HfStorageSpec) DeepCopyInto ¶
func (in *HfStorageSpec) DeepCopyInto(out *HfStorageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*HfStorageSpec) IsRequested ¶
func (spec *HfStorageSpec) IsRequested() bool
type HuggingFaceDownloadItem ¶
type HuggingFaceDownloadItem struct {
RepoID string `json:"repoId" yaml:"repoId"`
Files []string `json:"files"`
}
func (*HuggingFaceDownloadItem) DeepCopy ¶
func (in *HuggingFaceDownloadItem) DeepCopy() *HuggingFaceDownloadItem
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HuggingFaceDownloadItem.
func (*HuggingFaceDownloadItem) DeepCopyInto ¶
func (in *HuggingFaceDownloadItem) DeepCopyInto(out *HuggingFaceDownloadItem)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KaiwoJob ¶
type KaiwoJob struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec KaiwoJobSpec `json:"spec,omitempty"`
Status KaiwoJobStatus `json:"status,omitempty"`
}
+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.Status" +kubebuilder:printcolumn:name="StartTime",type="string",JSONPath=".status.startTime" +kubebuilder:printcolumn:name="CompletionTime",type="string",JSONPath=".status.completionTime" +kubebuilder:printcolumn:name="Duration(s)",type="integer",JSONPath=".status.duration"
func (*KaiwoJob) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoJob.
func (*KaiwoJob) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KaiwoJob) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KaiwoJobList ¶
type KaiwoJobList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []KaiwoJob `json:"items"`
}
+kubebuilder:object:root=true
func (*KaiwoJobList) DeepCopy ¶
func (in *KaiwoJobList) DeepCopy() *KaiwoJobList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoJobList.
func (*KaiwoJobList) DeepCopyInto ¶
func (in *KaiwoJobList) DeepCopyInto(out *KaiwoJobList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KaiwoJobList) DeepCopyObject ¶
func (in *KaiwoJobList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KaiwoJobSpec ¶
type KaiwoJobSpec struct {
CommonMetaSpec `json:",inline"`
// User specifies the owner or creator of the workload.
// If authentication is enabled, this must be email address which is checked against authenticated user for match.
User string `json:"user"`
// ClusterQueue is the Kueue ClusterQueue name.
ClusterQueue string `json:"clusterQueue,omitempty"`
// PriorityClass specifies the Kubernetes PriorityClass for scheduling.
PriorityClass string `json:"priorityClass,omitempty"`
// EntryPoint specifies the command or script executed in a Job or RayJob.
// Can also be defined inside Job struct as Command in the form of string array or
// inside RayJob struct as Entrypoint in the form of string
EntryPoint string `json:"entrypoint,omitempty"`
// Gpus specifies the total number of GPUs allocated to the workload.
// Default is 0.
// +kubebuilder:default=0
Gpus int `json:"gpus,omitempty"`
// GpuVendor specifies the GPU vendor (e.g., AMD, NVIDIA, etc.).
// Default is AMD.
// +kubebuilder:default=AMD
GpuVendor string `json:"gpuVendor,omitempty"`
// Version is an optional field specifying the version of the workload.
Version string `json:"version,omitempty"`
// Replicas specifies the number of replicas for the workload.
// If greater than one, the workload must use Ray.
// Default is 0.
// +kubebuilder:default=0
Replicas int `json:"replicas,omitempty"`
// GpusPerReplica specifies the number of GPUs allocated per replica.
GpusPerReplica int `json:"gpus-per-replica,omitempty"`
// Image defines the container image used for the workload.
Image string `json:"image,omitempty"`
// ImagePullSecrets contains the list of secrets used to pull the container image.
ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
// EnvVars specifies the environment variables to be passed to the container.
EnvVars []corev1.EnvVar `json:"envVars,omitempty"`
// Ray determines whether the operator should use RayCluster for workload execution.
// Default is false.
// +kubebuilder:default=false
Ray bool `json:"ray"`
// ConfigSource allows mounting from Git
ConfigSource *ConfigSource `json:"configSource,omitempty"`
// Storage configuration for the workload.
Storage StorageSpec `json:"storage,omitempty"`
// RayJob defines the RayJob configuration.
RayJob *rayv1.RayJob `json:"rayJob,omitempty"`
// Job defines the Kubernetes Job configuration.
Job *batchv1.Job `json:"job,omitempty"`
}
KaiwoJobSpec defines the desired state of KaiwoJob.
func (*KaiwoJobSpec) DeepCopy ¶
func (in *KaiwoJobSpec) DeepCopy() *KaiwoJobSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoJobSpec.
func (*KaiwoJobSpec) DeepCopyInto ¶
func (in *KaiwoJobSpec) DeepCopyInto(out *KaiwoJobSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KaiwoJobStatus ¶
type KaiwoJobStatus struct {
StartTime *metav1.Time `json:"startTime,omitempty"`
CompletionTime *metav1.Time `json:"completionTime,omitempty"`
Conditions []metav1.Condition `json:"conditions,omitempty"`
Status Status `json:"Status,omitempty"`
Duration int64 `json:"duration,omitempty"`
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
KaiwoJobStatus defines the observed state of KaiwoJob.
func (*KaiwoJobStatus) DeepCopy ¶
func (in *KaiwoJobStatus) DeepCopy() *KaiwoJobStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoJobStatus.
func (*KaiwoJobStatus) DeepCopyInto ¶
func (in *KaiwoJobStatus) DeepCopyInto(out *KaiwoJobStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KaiwoQueueConfig ¶
type KaiwoQueueConfig struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec KaiwoQueueConfigSpec `json:"spec,omitempty"`
Status KaiwoQueueConfigStatus `json:"status,omitempty"`
}
+kubebuilder:object:root=true +kubebuilder:resource:scope=Cluster +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.Status" KaiwoQueueConfig manages Kueue resources.
func (*KaiwoQueueConfig) DeepCopy ¶
func (in *KaiwoQueueConfig) DeepCopy() *KaiwoQueueConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoQueueConfig.
func (*KaiwoQueueConfig) DeepCopyInto ¶
func (in *KaiwoQueueConfig) DeepCopyInto(out *KaiwoQueueConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KaiwoQueueConfig) DeepCopyObject ¶
func (in *KaiwoQueueConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KaiwoQueueConfigList ¶
type KaiwoQueueConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []KaiwoQueueConfig `json:"items"`
}
+kubebuilder:object:root=true
func (*KaiwoQueueConfigList) DeepCopy ¶
func (in *KaiwoQueueConfigList) DeepCopy() *KaiwoQueueConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoQueueConfigList.
func (*KaiwoQueueConfigList) DeepCopyInto ¶
func (in *KaiwoQueueConfigList) DeepCopyInto(out *KaiwoQueueConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KaiwoQueueConfigList) DeepCopyObject ¶
func (in *KaiwoQueueConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KaiwoQueueConfigSpec ¶
type KaiwoQueueConfigSpec struct {
// +kubebuilder:validation:MaxItems=10
ClusterQueues []ClusterQueue `json:"clusterQueues,omitempty"`
ResourceFlavors []ResourceFlavorSpec `json:"resourceFlavors,omitempty"`
// +kubebuilder:validation:MaxItems=5
WorkloadPriorityClasses []kueuev1beta1.WorkloadPriorityClass `json:"workloadPriorityClasses,omitempty"`
}
KaiwoQueueConfigSpec defines the desired configuration for Kaiwo.
func (*KaiwoQueueConfigSpec) DeepCopy ¶
func (in *KaiwoQueueConfigSpec) DeepCopy() *KaiwoQueueConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoQueueConfigSpec.
func (*KaiwoQueueConfigSpec) DeepCopyInto ¶
func (in *KaiwoQueueConfigSpec) DeepCopyInto(out *KaiwoQueueConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KaiwoQueueConfigStatus ¶
type KaiwoQueueConfigStatus struct {
Conditions []metav1.Condition `json:"conditions,omitempty"`
Status Status `json:"Status,omitempty"`
}
KaiwoQueueConfigStatus represents the observed state of KaiwoQueueConfig.
func (*KaiwoQueueConfigStatus) DeepCopy ¶
func (in *KaiwoQueueConfigStatus) DeepCopy() *KaiwoQueueConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoQueueConfigStatus.
func (*KaiwoQueueConfigStatus) DeepCopyInto ¶
func (in *KaiwoQueueConfigStatus) DeepCopyInto(out *KaiwoQueueConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KaiwoService ¶
type KaiwoService struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec KaiwoServiceSpec `json:"spec,omitempty"`
Status KaiwoServiceStatus `json:"status,omitempty"`
}
+kubebuilder:object:root=true +kubebuilder:subresource:status
func (*KaiwoService) DeepCopy ¶
func (in *KaiwoService) DeepCopy() *KaiwoService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoService.
func (*KaiwoService) DeepCopyInto ¶
func (in *KaiwoService) DeepCopyInto(out *KaiwoService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KaiwoService) DeepCopyObject ¶
func (in *KaiwoService) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KaiwoServiceList ¶
type KaiwoServiceList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []KaiwoService `json:"items"`
}
+kubebuilder:object:root=true
func (*KaiwoServiceList) DeepCopy ¶
func (in *KaiwoServiceList) DeepCopy() *KaiwoServiceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoServiceList.
func (*KaiwoServiceList) DeepCopyInto ¶
func (in *KaiwoServiceList) DeepCopyInto(out *KaiwoServiceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*KaiwoServiceList) DeepCopyObject ¶
func (in *KaiwoServiceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type KaiwoServiceSpec ¶
type KaiwoServiceSpec struct {
CommonMetaSpec `json:",inline"`
// User specifies the owner or creator of the workload.
// If authentication is enabled, this must be email address which is checked against authenticated user for match.
User string `json:"user"`
// ClusterQueue is the Kueue ClusterQueue name.
ClusterQueue string `json:"clusterQueue,omitempty"`
// PriorityClass specifies the Kubernetes PriorityClass for scheduling.
PriorityClass string `json:"priorityClass,omitempty"`
// EntryPoint specifies the command or script executed in a Deployment.
// Can also be defined inside Deployment struct as regular command in the form of string array
EntryPoint string `json:"entrypoint,omitempty"`
// Defines the applications and deployments to deploy, should be a YAML multi-line scalar string.
// Can also be defined inside RayService struct
ServeConfigV2 string `json:"serveConfigV2,omitempty"`
// Gpus specifies the total number of GPUs allocated to the workload.
// Default is 0.
// +kubebuilder:default=0
Gpus int `json:"gpus,omitempty"`
// GpuVendor specifies the GPU vendor (e.g., AMD, NVIDIA, etc.).
// Default is AMD.
// +kubebuilder:default=AMD
GpuVendor string `json:"gpuVendor,omitempty"`
// Version is an optional field specifying the version of the workload.
Version string `json:"version,omitempty"`
// Replicas specifies the number of replicas for the workload.
// If greater than one, the workload must use Ray.
// Default is 0.
// +kubebuilder:default=0
Replicas int `json:"replicas,omitempty"`
// GpusPerReplica specifies the number of GPUs allocated per replica.
GpusPerReplica int `json:"gpus-per-replica,omitempty"`
// Image defines the container image used for the workload.
Image string `json:"image,omitempty"`
// ImagePullSecrets contains the list of secrets used to pull the container image.
ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
// EnvVars specifies the environment variables to be passed to the container.
EnvVars []corev1.EnvVar `json:"envVars,omitempty"`
// Ray determines whether the operator should use RayCluster for workload execution.
// Default is false.
// +kubebuilder:default=false
Ray bool `json:"ray"`
// ConfigSource allows mounting from Git repository
ConfigSource *ConfigSource `json:"configSource,omitempty"`
// Storage configuration for the workload.
Storage StorageSpec `json:"storage,omitempty"`
// Optional workload-specific configs (Pointers to avoid bloating CRD)
RayService *rayv1.RayService `json:"rayService,omitempty"`
Deployment *appsv1.Deployment `json:"deployment,omitempty"`
}
KaiwoServiceSpec defines the desired state of KaiwoService.
func (*KaiwoServiceSpec) DeepCopy ¶
func (in *KaiwoServiceSpec) DeepCopy() *KaiwoServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoServiceSpec.
func (*KaiwoServiceSpec) DeepCopyInto ¶
func (in *KaiwoServiceSpec) DeepCopyInto(out *KaiwoServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KaiwoServiceStatus ¶
type KaiwoServiceStatus struct {
Conditions []metav1.Condition `json:"conditions,omitempty"`
Status Status `json:"Status,omitempty"`
}
KaiwoServiceStatus defines the observed state of KaiwoService.
func (*KaiwoServiceStatus) DeepCopy ¶
func (in *KaiwoServiceStatus) DeepCopy() *KaiwoServiceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KaiwoServiceStatus.
func (*KaiwoServiceStatus) DeepCopyInto ¶
func (in *KaiwoServiceStatus) DeepCopyInto(out *KaiwoServiceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObjectStorageDownloadSpec ¶
type ObjectStorageDownloadSpec struct {
// S3 lists any S3 downloads
S3 []S3DownloadItem `json:"s3,omitempty"`
// GCS lists and Google Cloud Storage downloads
GCS []GCSDownloadItem `json:"gcs,omitempty"`
// AzureBlob lists any Azure Blob Storage downloads
AzureBlob []AzureBlobStorageDownloadItem `json:"azureBlob,omitempty"`
}
func (*ObjectStorageDownloadSpec) DeepCopy ¶
func (in *ObjectStorageDownloadSpec) DeepCopy() *ObjectStorageDownloadSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectStorageDownloadSpec.
func (*ObjectStorageDownloadSpec) DeepCopyInto ¶
func (in *ObjectStorageDownloadSpec) DeepCopyInto(out *ObjectStorageDownloadSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceFlavorSpec ¶
type ResourceFlavorSpec struct {
Name string `json:"name"`
// NodeLabels must not exceed a reasonable limit to prevent CRD validation failures
// +kubebuilder:validation:MaxProperties=10
NodeLabels map[string]string `json:"nodeLabels,omitempty"`
// +kubebuilder:validation:MaxItems=5
Taints []corev1.Taint `json:"taints,omitempty"`
// // +kubebuilder:validation:MaxItems=5
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}
ResourceFlavorSpec defines the configuration for a specific resource flavor.
func (*ResourceFlavorSpec) DeepCopy ¶
func (in *ResourceFlavorSpec) DeepCopy() *ResourceFlavorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceFlavorSpec.
func (*ResourceFlavorSpec) DeepCopyInto ¶
func (in *ResourceFlavorSpec) DeepCopyInto(out *ResourceFlavorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type S3DownloadItem ¶
type S3DownloadItem struct {
// EndpointUrl is the endpoint of the S3 API
EndpointUrl ValueReference `json:"endpointUrl" yaml:"endpointUrl"`
// AccessKeyId
AccessKeyId ValueReference `json:"accessKeyId" yaml:"accessKeyId"`
SecretKey ValueReference `json:"secretKey" yaml:"secretKey"`
Buckets []CloudDownloadBucket `json:"buckets"`
}
func (*S3DownloadItem) DeepCopy ¶
func (in *S3DownloadItem) DeepCopy() *S3DownloadItem
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3DownloadItem.
func (*S3DownloadItem) DeepCopyInto ¶
func (in *S3DownloadItem) DeepCopyInto(out *S3DownloadItem)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageSpec ¶
type StorageSpec struct {
// StorageEnabled tells whether to enable persistent storage.
StorageEnabled bool `json:"storageEnabled,omitempty"`
// StorageClassName specifies the storage class used for PVC.
StorageClassName string `json:"storageClassName,omitempty"`
// AccessMode determines the access mode for the storage
// +kubebuilder:default=ReadWriteMany
AccessMode corev1.PersistentVolumeAccessMode `json:"accessMode"`
// Data specifies the main workload PVC and optional object storage pre-downloads
Data DataStorageSpec `json:"data,omitempty"`
// HuggingFace specifies any hugging face models that should be cached before the workload starts
HuggingFace HfStorageSpec `json:"huggingFace,omitempty"`
}
StorageSpec defines the storage configuration for the workload.
func (*StorageSpec) CreateConfig ¶
func (s *StorageSpec) CreateConfig() DownloadTaskConfig
CreateConfig creates the config required for the data downloader
func (*StorageSpec) DeepCopy ¶
func (in *StorageSpec) DeepCopy() *StorageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageSpec.
func (*StorageSpec) DeepCopyInto ¶
func (in *StorageSpec) DeepCopyInto(out *StorageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValueReference ¶
type ValueReference struct {
// File determines the location of the secret value mounted on the disk
File string `json:"file,omitempty"`
// SecretName is the name of the secret where the value is kept
SecretName string `json:"secretName,omitempty" yaml:"secretName,omitempty"`
// SecretKey is the name of the key within the secret where the value is kept
SecretKey string `json:"secretKey,omitempty" yaml:"secretKey,omitempty"`
}
func (*ValueReference) DeepCopy ¶
func (in *ValueReference) DeepCopy() *ValueReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueReference.
func (*ValueReference) DeepCopyInto ¶
func (in *ValueReference) DeepCopyInto(out *ValueReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.