v1alpha1

package
v0.8.2 Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the distributed-compute v1alpha1 API group +kubebuilder:object:generate=true +groupName=distributed-compute.dominodatalab.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "distributed-compute.dominodatalab.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

func IsPodReady added in v0.6.11

func IsPodReady(pod corev1.Pod) bool

Types

type Autoscaling

type Autoscaling struct {
	// MinReplicas is the lower limit for the number of replicas to which the
	// autoscaler can scale down. This value must be greater than zero and less
	// than the MaxReplicas.
	MinReplicas *int32 `json:"minReplicas,omitempty"`
	// MaxReplicas is the upper limit for the number of replicas to which the
	// autoscaler can scale up. This value cannot be less than the replica
	// count for your workload.
	MaxReplicas int32 `json:"maxReplicas"`
	// AverageCPUUtilization is the target value of the average of the resource
	// cpu metric across all relevant pods. This is represented as a percentage
	// of the requested value of the resource for the pods.
	AverageCPUUtilization *int32 `json:"averageCPUUtilization,omitempty"`
	// AverageMemoryUtilization is the target value of the average of the
	// resource memory metric across all relevant pods. This is represented as
	// a percentage of the requested value of the resource for the pods.
	AverageMemoryUtilization *int32 `json:"averageMemoryUtilization,omitempty"`
	// ScaleDownStabilizationWindowSeconds is the number of seconds for which
	// past recommendations should be considered when scaling down. A shorter
	// window will trigger scale down events quicker, but too short a window
	// may cause replica flapping when metrics used for scaling keep fluctuating.
	ScaleDownStabilizationWindowSeconds *int32 `json:"scaleDownStabilizationWindowSeconds,omitempty"`
}

Autoscaling configuration for scalable workloads.

func (*Autoscaling) DeepCopy

func (in *Autoscaling) DeepCopy() *Autoscaling

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

func (*Autoscaling) DeepCopyInto

func (in *Autoscaling) DeepCopyInto(out *Autoscaling)

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

type ClusterConfig added in v0.3.0

type ClusterConfig struct {
	// IstioConfig overrides for a cluster.
	IstioConfig `json:",inline"`
	// GlobalLabels applied to all resources in addition to stock labels.
	GlobalLabels map[string]string `json:"globalLabels,omitempty"`
	// Image used to launch cluster nodes.
	Image *OCIImageDefinition `json:"image,omitempty"`
	// NetworkPolicy parameters used to IP traffic flow.
	NetworkPolicy NetworkPolicyConfig `json:"networkPolicy,omitempty"`
	// ServiceAccount parameters used to override default behavior.
	ServiceAccount ServiceAccountConfig `json:"serviceAccount,omitempty"`
	// KerberosKeytab parameters used to add kerberos authentication.
	KerberosKeytab *KerberosKeytabConfig `json:"kerberosKeytab,omitempty"`
	// ImagePullSecrets are references to secrets with pull credentials to
	// private registries where cluster image are stored.
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// PodSecurityContext added to every cluster pod.
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
	// EnvVars added to all every cluster container.
	EnvVars []corev1.EnvVar `json:"envVars,omitempty"`
	// PodSecurityPolicy name can be provided to restrict and/or provide
	// execution permissions to processes running within cluster pods.
	PodSecurityPolicy string `json:"podSecurityPolicy,omitempty"`
}

ClusterConfig defines high-level cluster options.

func (*ClusterConfig) DeepCopy added in v0.3.0

func (in *ClusterConfig) DeepCopy() *ClusterConfig

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

func (*ClusterConfig) DeepCopyInto added in v0.3.0

func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig)

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

type ClusterStatusConfig added in v0.3.0

type ClusterStatusConfig struct {
	ClusterStatus ClusterStatusType `json:"clusterStatus,omitempty"`
	// Reason may contain additional information when status is "Failed"
	Reason    string       `json:"reason,omitempty"`
	StartTime *metav1.Time `json:"startTime,omitempty"`
	// Image is the canonical reference url to the cluster container image.
	Image string `json:"image,omitempty"`
	// Nodes are pods that comprise the cluster.
	Nodes []string `json:"nodes,omitempty"`
	// WorkerReplicas is the `scale.status.replicas` subresource field.
	WorkerReplicas int32 `json:"workerReplicas,omitempty"`
	// WorkerSelector is the `scale.status.selector` subresource field.
	WorkerSelector string `json:"workerSelector,omitempty"`
}

ClusterStatusConfig defines the observed state of a given cluster. The controllers will generate and populate these fields during reconciliation.

func (*ClusterStatusConfig) DeepCopy added in v0.3.0

func (in *ClusterStatusConfig) DeepCopy() *ClusterStatusConfig

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

func (*ClusterStatusConfig) DeepCopyInto added in v0.3.0

func (in *ClusterStatusConfig) DeepCopyInto(out *ClusterStatusConfig)

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

type ClusterStatusType added in v0.6.11

type ClusterStatusType string
const (
	PendingStatus  ClusterStatusType = "Pending"
	StartingStatus ClusterStatusType = "Starting"
	RunningStatus  ClusterStatusType = "Running"
	StoppingStatus ClusterStatusType = "Stopping"
	FailedStatus   ClusterStatusType = "Failed"
)

type DaskCluster added in v0.3.0

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

	Spec   DaskClusterSpec   `json:"spec,omitempty"`
	Status DaskClusterStatus `json:"status,omitempty"`
}

DaskCluster is the Schema for the daskclusters API.

func (*DaskCluster) DeepCopy added in v0.3.0

func (in *DaskCluster) DeepCopy() *DaskCluster

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

func (*DaskCluster) DeepCopyInto added in v0.3.0

func (in *DaskCluster) DeepCopyInto(out *DaskCluster)

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

func (*DaskCluster) DeepCopyObject added in v0.3.0

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

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

func (*DaskCluster) Default added in v0.3.0

func (dc *DaskCluster) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*DaskCluster) ValidateCreate added in v0.3.0

func (dc *DaskCluster) ValidateCreate() error

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

func (*DaskCluster) ValidateDelete added in v0.3.0

func (dc *DaskCluster) ValidateDelete() error

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

func (*DaskCluster) ValidateUpdate added in v0.3.0

func (dc *DaskCluster) ValidateUpdate(_ runtime.Object) error

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

type DaskClusterList added in v0.3.0

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

DaskClusterList contains a list of DaskCluster.

func (*DaskClusterList) DeepCopy added in v0.3.0

func (in *DaskClusterList) DeepCopy() *DaskClusterList

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

func (*DaskClusterList) DeepCopyInto added in v0.3.0

func (in *DaskClusterList) DeepCopyInto(out *DaskClusterList)

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

func (*DaskClusterList) DeepCopyObject added in v0.3.0

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

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

type DaskClusterSpec added in v0.3.0

type DaskClusterSpec struct {
	ScalableClusterConfig `json:",inline"`

	Scheduler WorkloadConfig    `json:"scheduler,omitempty"`
	Worker    DaskClusterWorker `json:"worker,omitempty"`

	SchedulerPort int32 `json:"schedulerPort,omitempty"`
	DashboardPort int32 `json:"dashboardPort,omitempty"`
	WorkerPort    int32 `json:"workerPort,omitempty"`
	NannyPort     int32 `json:"nannyPort,omitempty"`

	// AdditionalClientPorts are extra ports through which cluster nodes could connect to the client.
	AdditionalClientPorts []corev1.ServicePort `json:"additionalClientPorts,omitempty"`
}

DaskClusterSpec defines the desired state of DaskCluster.

func (*DaskClusterSpec) DeepCopy added in v0.3.0

func (in *DaskClusterSpec) DeepCopy() *DaskClusterSpec

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

func (*DaskClusterSpec) DeepCopyInto added in v0.3.0

func (in *DaskClusterSpec) DeepCopyInto(out *DaskClusterSpec)

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

type DaskClusterStatus added in v0.3.0

type DaskClusterStatus struct {
	ClusterStatusConfig `json:",inline"`
}

DaskClusterStatus defines the observed state of DaskCluster

func (*DaskClusterStatus) DeepCopy added in v0.3.0

func (in *DaskClusterStatus) DeepCopy() *DaskClusterStatus

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

func (*DaskClusterStatus) DeepCopyInto added in v0.3.0

func (in *DaskClusterStatus) DeepCopyInto(out *DaskClusterStatus)

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

type DaskClusterWorker added in v0.3.0

type DaskClusterWorker struct {
	WorkloadConfig `json:",inline"`
	Replicas       *int32 `json:"replicas,omitempty"`
}

DaskClusterWorker defines worker-specific workload settings.

func (*DaskClusterWorker) DeepCopy added in v0.3.0

func (in *DaskClusterWorker) DeepCopy() *DaskClusterWorker

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

func (*DaskClusterWorker) DeepCopyInto added in v0.3.0

func (in *DaskClusterWorker) DeepCopyInto(out *DaskClusterWorker)

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

type IstioConfig

type IstioConfig struct {
	// MutualTLSMode will be used to create a workload-specific peer
	// authentication policy that takes precedence over a global and/or
	// namespace-wide policy.
	MutualTLSMode string `json:"istioMutualTLSMode,omitempty"`
}

IstioConfig defines Istio configuration parameters.

func (*IstioConfig) DeepCopy

func (in *IstioConfig) DeepCopy() *IstioConfig

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

func (*IstioConfig) DeepCopyInto

func (in *IstioConfig) DeepCopyInto(out *IstioConfig)

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

type KerberosKeytabConfig added in v0.3.0

type KerberosKeytabConfig struct {
	// Contents are the binary data stored in the keytab file.
	Contents []byte `json:"contents,omitempty"`
	// MountPath where the keytab file should be created inside a pod.
	MountPath string `json:"mountPath,omitempty"`
}

KerberosKeytabConfig defines kerberos key table configuration options.

func (*KerberosKeytabConfig) DeepCopy added in v0.3.0

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

func (*KerberosKeytabConfig) DeepCopyInto added in v0.3.0

func (in *KerberosKeytabConfig) DeepCopyInto(out *KerberosKeytabConfig)

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

type MPICluster added in v0.6.0

type MPICluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              MPIClusterSpec      `json:"spec,omitempty"`
	Status            ClusterStatusConfig `json:"status,omitempty"`
}

MPICluster is the Schema for the MPI Clusters API.

func (*MPICluster) DeepCopy added in v0.6.0

func (in *MPICluster) DeepCopy() *MPICluster

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

func (*MPICluster) DeepCopyInto added in v0.6.0

func (in *MPICluster) DeepCopyInto(out *MPICluster)

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

func (*MPICluster) DeepCopyObject added in v0.6.0

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

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

func (*MPICluster) Default added in v0.6.0

func (j *MPICluster) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*MPICluster) ValidateCreate added in v0.6.0

func (j *MPICluster) ValidateCreate() error

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

func (*MPICluster) ValidateDelete added in v0.6.0

func (j *MPICluster) ValidateDelete() error

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

func (*MPICluster) ValidateUpdate added in v0.6.0

func (j *MPICluster) ValidateUpdate(_ runtime.Object) error

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

type MPIClusterList added in v0.6.0

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

MPIClusterList contains a list of MPICluster.

func (*MPIClusterList) DeepCopy added in v0.6.0

func (in *MPIClusterList) DeepCopy() *MPIClusterList

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

func (*MPIClusterList) DeepCopyInto added in v0.6.0

func (in *MPIClusterList) DeepCopyInto(out *MPIClusterList)

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

func (*MPIClusterList) DeepCopyObject added in v0.6.0

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

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

type MPIClusterSpec added in v0.6.0

type MPIClusterSpec struct {
	ClusterConfig `json:",inline"`
	Worker        MPIClusterWorker `json:"worker,omitempty"`

	// WorkerPorts specifies the range of ports used by worker processes for communication.
	WorkerPorts []int32 `json:"workerPorts,omitempty"`
	// AdditionalClientPorts are extra ports through which cluster nodes could connect to the client.
	AdditionalClientPorts []corev1.ServicePort `json:"additionalClientPorts,omitempty"`
}

MPIClusterSpec defines the desired state of MPICluster.

func (*MPIClusterSpec) DeepCopy added in v0.6.0

func (in *MPIClusterSpec) DeepCopy() *MPIClusterSpec

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

func (*MPIClusterSpec) DeepCopyInto added in v0.6.0

func (in *MPIClusterSpec) DeepCopyInto(out *MPIClusterSpec)

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

type MPIClusterWorker added in v0.6.0

type MPIClusterWorker struct {
	WorkloadConfig  `json:",inline"`
	Replicas        *int32 `json:"replicas,omitempty"`
	SharedSSHSecret string `json:"sharedSSHSecret"`
	UserName        string `json:"userName,omitempty"`
	UserID          *int64 `json:"userID,omitempty"`
	GroupName       string `json:"groupName,omitempty"`
	GroupID         *int64 `json:"groupID,omitempty"`
	HomeDir         string `json:"homeDir,omitempty"`
}

MPIClusterWorker defines worker-specific workload settings.

func (*MPIClusterWorker) DeepCopy added in v0.6.0

func (in *MPIClusterWorker) DeepCopy() *MPIClusterWorker

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

func (*MPIClusterWorker) DeepCopyInto added in v0.6.0

func (in *MPIClusterWorker) DeepCopyInto(out *MPIClusterWorker)

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

type NetworkPolicyConfig added in v0.3.0

type NetworkPolicyConfig struct {
	// Enabled controls the creation of network policies that limit and provide
	// ingress access to the cluster nodes.
	Enabled *bool `json:"enabled,omitempty"`
	// ClientLabels defines the pod selector clause that grants ingress access
	// to the cluster client port(s).
	ClientLabels map[string]string `json:"clientLabels,omitempty"`
	// Defines the pod selector clause that grants ingress
	// access to the cluster dashboard.
	DashboardLabels map[string]string `json:"dashboardLabels,omitempty"`
	// Defines the namespace selector clause that grants ingress
	// access to the cluster dashboard.
	DashboardNamespaceLabels map[string]string `json:"dashboardNamespaceLabels,omitempty"`
}

NetworkPolicyConfig defines network policy configuration options.

func (*NetworkPolicyConfig) DeepCopy added in v0.3.0

func (in *NetworkPolicyConfig) DeepCopy() *NetworkPolicyConfig

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

func (*NetworkPolicyConfig) DeepCopyInto added in v0.3.0

func (in *NetworkPolicyConfig) DeepCopyInto(out *NetworkPolicyConfig)

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

type OCIImageDefinition

type OCIImageDefinition struct {
	// Registry where the container image is hosted.
	Registry string `json:"registry,omitempty"`
	// Repository where the container image is stored.
	Repository string `json:"repository,omitempty"`
	// Tag points to a specific container image variant.
	Tag string `json:"tag,omitempty"`
	// PullPolicy used to fetch container image.
	PullPolicy corev1.PullPolicy `json:"pullPolicy,omitempty"`
}

OCIImageDefinition describes where and how to fetch a container image.

func (*OCIImageDefinition) DeepCopy

func (in *OCIImageDefinition) DeepCopy() *OCIImageDefinition

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

func (*OCIImageDefinition) DeepCopyInto

func (in *OCIImageDefinition) DeepCopyInto(out *OCIImageDefinition)

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

type PersistentVolumeClaimTemplate

type PersistentVolumeClaimTemplate struct {
	// Name is the unique metadata ID of the volume claim.
	Name string `json:"name"`
	// Spec describes the storage attributes of the underlying claim.
	Spec corev1.PersistentVolumeClaimSpec `json:"spec"`
}

PersistentVolumeClaimTemplate describes a claim that pods are allowed to reference. These can either pre-exist or leverage storage classes to provide dynamic provisioning.

func (*PersistentVolumeClaimTemplate) DeepCopy

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

func (*PersistentVolumeClaimTemplate) DeepCopyInto

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

type RayCluster

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

	Spec   RayClusterSpec      `json:"spec,omitempty"`
	Status ClusterStatusConfig `json:"status,omitempty"`
}

RayCluster is the Schema for the rayclusters API.

func (*RayCluster) DeepCopy

func (in *RayCluster) DeepCopy() *RayCluster

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

func (*RayCluster) DeepCopyInto

func (in *RayCluster) DeepCopyInto(out *RayCluster)

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

func (*RayCluster) DeepCopyObject

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

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

func (*RayCluster) Default

func (rc *RayCluster) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*RayCluster) SetupWebhookWithManager

func (rc *RayCluster) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager creates and registers this webhook with the manager. TODO: delete

func (*RayCluster) ValidateCreate

func (rc *RayCluster) ValidateCreate() error

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

func (*RayCluster) ValidateDelete

func (rc *RayCluster) ValidateDelete() error

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

func (*RayCluster) ValidateUpdate

func (rc *RayCluster) ValidateUpdate(runtime.Object) error

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

type RayClusterList

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

RayClusterList contains a list of RayCluster resources.

func (*RayClusterList) DeepCopy

func (in *RayClusterList) DeepCopy() *RayClusterList

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

func (*RayClusterList) DeepCopyInto

func (in *RayClusterList) DeepCopyInto(out *RayClusterList)

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

func (*RayClusterList) DeepCopyObject

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

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

type RayClusterSpec

type RayClusterSpec struct {
	ScalableClusterConfig `json:",inline"`

	// Head node configuration parameters.
	Head WorkloadConfig `json:"head,omitempty"`
	// Worker node configuration parameters.
	Worker RayClusterWorker `json:"worker,omitempty"`

	// Port is the port of the head ray process.
	Port int32 `json:"port,omitempty"`
	// RedisShardPorts is a list of ports for non-primary Redis shards.
	RedisShardPorts []int32 `json:"redisShardPorts,omitempty"`
	// ClientServerPort is the port number to which the ray client server will
	// bind. This port is used by external clients to submit work.
	ClientServerPort int32 `json:"clientServerPort,omitempty"`
	// ObjectManagerPort is the raylet port for the object manager.
	ObjectManagerPort int32 `json:"objectManagerPort,omitempty"`
	// NodeManagerPort is the raylet port for the node manager.
	NodeManagerPort int32 `json:"nodeManagerPort,omitempty"`
	// GCSServerPort is the port for the global control store.
	GCSServerPort int32 `json:"gcsServerPort,omitempty"`
	// WorkerPorts specifies the range of ports used by worker processes.
	WorkerPorts []int32 `json:"workerPorts,omitempty"`
	// ObjectStoreMemoryBytes is initial amount of memory with which to start
	// the object store.
	ObjectStoreMemoryBytes *int64 `json:"objectStoreMemoryBytes,omitempty"`
	// DashboardPort is the port used by the dashboard server.
	DashboardPort int32 `json:"dashboardPort,omitempty"`
	// EnableDashboard starts the dashboard web UI.
	EnableDashboard *bool `json:"enableDashboard,omitempty"`
	// AdditionalClientPorts are extra ports through which cluster nodes could connect to the client.
	AdditionalClientPorts []corev1.ServicePort `json:"additionalClientPorts,omitempty"`
}

RayClusterSpec defines the desired state of a RayCluster resource.

func (*RayClusterSpec) DeepCopy

func (in *RayClusterSpec) DeepCopy() *RayClusterSpec

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

func (*RayClusterSpec) DeepCopyInto

func (in *RayClusterSpec) DeepCopyInto(out *RayClusterSpec)

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

type RayClusterWorker

type RayClusterWorker struct {
	WorkloadConfig `json:",inline"`

	// Replicas configures the total number of workers in the cluster. This
	// field behaves differently when Autoscaling is enabled. If
	// Autoscaling.MinReplicas is unspecified, then the minimum number of
	// replicas will be set to this value. Additionally, you can specify an
	// "initial cluster size" by setting this field to some value above the
	// minimum number of replicas.
	Replicas *int32 `json:"replicas,omitempty"`
}

RayClusterWorker defines worker-specific pod settings.

func (*RayClusterWorker) DeepCopy

func (in *RayClusterWorker) DeepCopy() *RayClusterWorker

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

func (*RayClusterWorker) DeepCopyInto

func (in *RayClusterWorker) DeepCopyInto(out *RayClusterWorker)

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

type ScalableClusterConfig added in v0.6.0

type ScalableClusterConfig struct {
	// ClusterConfig base options.
	ClusterConfig `json:",inline"`
	// Autoscaling parameters used to scale up/down cluster nodes.
	Autoscaling *Autoscaling `json:"autoscaling,omitempty"`
}

ScalableClusterConfig defines high-level cluster options with autoscaling.

func (*ScalableClusterConfig) DeepCopy added in v0.6.0

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

func (*ScalableClusterConfig) DeepCopyInto added in v0.6.0

func (in *ScalableClusterConfig) DeepCopyInto(out *ScalableClusterConfig)

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

type ServiceAccountConfig added in v0.3.0

type ServiceAccountConfig struct {
	// Name of an existing service account used by cluster workloads. This
	// field will disable the creation of a dedicated cluster service account.
	Name string `json:"name,omitempty"`
	// AutomountServiceAccountToken into workload pods. This field is only used
	// when creating a dedicted cluster service account.
	AutomountServiceAccountToken bool `json:"automountServiceAccountToken,omitempty"`
}

ServiceAccountConfig defines service account configuration parameters.

func (*ServiceAccountConfig) DeepCopy added in v0.3.0

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

func (*ServiceAccountConfig) DeepCopyInto added in v0.3.0

func (in *ServiceAccountConfig) DeepCopyInto(out *ServiceAccountConfig)

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

type SparkCluster

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

	Spec   SparkClusterSpec    `json:"spec,omitempty"`
	Status ClusterStatusConfig `json:"status,omitempty"`
}

SparkCluster is the Schema for the sparkclusters API.

func (*SparkCluster) DeepCopy

func (in *SparkCluster) DeepCopy() *SparkCluster

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

func (*SparkCluster) DeepCopyInto

func (in *SparkCluster) DeepCopyInto(out *SparkCluster)

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

func (*SparkCluster) DeepCopyObject

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

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

func (*SparkCluster) Default

func (sc *SparkCluster) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*SparkCluster) IsIncompatibleVersion added in v0.5.6

func (sc *SparkCluster) IsIncompatibleVersion() bool

IsIncompatibleVersion checks if the provided instance of SparkCluster struct has a version compatible with the current one.

func (*SparkCluster) SetupWebhookWithManager

func (sc *SparkCluster) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager creates and registers this webhook with the manager.

func (*SparkCluster) ValidateCreate

func (sc *SparkCluster) ValidateCreate() error

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

func (*SparkCluster) ValidateDelete

func (sc *SparkCluster) ValidateDelete() error

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

func (*SparkCluster) ValidateUpdate

func (sc *SparkCluster) ValidateUpdate(runtime.Object) error

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

type SparkClusterDriver added in v0.4.0

type SparkClusterDriver struct {
	// Port used for communication by the driver.
	Port int32 `json:"port,omitempty"`
	// UIPort used by the driver.
	UIPort int32 `json:"uiPort,omitempty"`
	// BlockManagerPort used by the driver.
	BlockManagerPort int32 `json:"blockManagerPort,omitempty"`
	// Selector labels for driver pod(s).
	Selector map[string]string `json:"selector,omitempty"`
}

SparkClusterDriver defines the configuration for the external driver.

func (*SparkClusterDriver) DeepCopy added in v0.4.0

func (in *SparkClusterDriver) DeepCopy() *SparkClusterDriver

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

func (*SparkClusterDriver) DeepCopyInto added in v0.4.0

func (in *SparkClusterDriver) DeepCopyInto(out *SparkClusterDriver)

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

type SparkClusterList

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

SparkClusterList contains a list of SparkCluster resources.

func (*SparkClusterList) DeepCopy

func (in *SparkClusterList) DeepCopy() *SparkClusterList

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

func (*SparkClusterList) DeepCopyInto

func (in *SparkClusterList) DeepCopyInto(out *SparkClusterList)

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

func (*SparkClusterList) DeepCopyObject

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

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

type SparkClusterNode

type SparkClusterNode struct {
	WorkloadConfig `json:",inline"`

	// DefaultConfiguration can be used to tune the execution environment for
	// your Spark applications. The values provided will be used to construct
	// the spark-defaults.conf file.
	DefaultConfiguration map[string]string `json:"defaultConfiguration,omitempty"`
}

SparkClusterNode defines attributes common to all spark node types.

func (*SparkClusterNode) DeepCopy

func (in *SparkClusterNode) DeepCopy() *SparkClusterNode

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

func (*SparkClusterNode) DeepCopyInto

func (in *SparkClusterNode) DeepCopyInto(out *SparkClusterNode)

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

type SparkClusterSpec

type SparkClusterSpec struct {
	ScalableClusterConfig `json:",inline"`

	// Master node configuration parameters.
	Master SparkClusterNode `json:"master,omitempty"`
	// Worker node configuration parameters.
	Worker SparkClusterWorker `json:"worker,omitempty"`
	// Driver configures the SparkCluster to communicate with the Spark Driver.
	Driver SparkClusterDriver `json:"driver,omitempty"`

	// EnvoyFilterLabels are specific labels that must already exist on the
	// spark-driver so that users can set idle_timeout properly using the
	// EnvoyFilter resource.
	EnvoyFilterLabels map[string]string `json:"envoyFilterLabels,omitempty"`
	// WorkerMemoryLimit configures the SPARK_WORKER_MEMORY envVar.
	WorkerMemoryLimit string `json:"workerMemoryLimit,omitempty"`
	// ClusterPort is the port used for master/worker/driver communication.
	ClusterPort int32 `json:"clusterPort,omitempty"`
	// MasterWebPort is the port for the master web UI.
	MasterWebPort int32 `json:"masterWebPort,omitempty"`
	// WorkerWebPort is the port for the worker web UI.
	WorkerWebPort int32 `json:"workerWebPort,omitempty"`
	// AdditionalClientPorts are extra ports through which cluster nodes could connect to the client.
	AdditionalClientPorts []corev1.ServicePort `json:"additionalClientPorts,omitempty"`
}

SparkClusterSpec defines the desired state of a SparkCluster resource.

func (*SparkClusterSpec) DeepCopy

func (in *SparkClusterSpec) DeepCopy() *SparkClusterSpec

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

func (*SparkClusterSpec) DeepCopyInto

func (in *SparkClusterSpec) DeepCopyInto(out *SparkClusterSpec)

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

type SparkClusterWorker

type SparkClusterWorker struct {
	SparkClusterNode `json:",inline"`

	// Replicas configures the total number of workers in the cluster. This
	// field behaves differently when Autoscaling is enabled. If
	// Autoscaling.MinReplicas is unspecified, then the minimum number of
	// replicas will be set to this value. Additionally, you can specify an
	// "initial cluster size" by setting this field to some value above the
	// minimum number of replicas.
	Replicas *int32 `json:"replicas,omitempty"`

	// Obsolete value of WorkerMemoryLimit used in previous
	// versions; used here only to check compatibility of CRDs.
	ObsoleteWorkerMemoryLimit string `json:"workerMemoryLimit,omitempty"`
}

SparkClusterWorker defines worker-specific pod settings.

func (*SparkClusterWorker) DeepCopy

func (in *SparkClusterWorker) DeepCopy() *SparkClusterWorker

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

func (*SparkClusterWorker) DeepCopyInto

func (in *SparkClusterWorker) DeepCopyInto(out *SparkClusterWorker)

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

type WorkloadConfig added in v0.3.0

type WorkloadConfig struct {
	// Labels applied to cluster pods in addition to stock labels.
	Labels map[string]string `json:"labels,omitempty"`
	// Annotations applied to cluster pods.
	Annotations map[string]string `json:"annotations,omitempty"`
	// NodeSelector applied to cluster pods.
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// Resources are the requests and limits applied to cluster containers.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
	// Affinity applied to cluster pods.
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// Tolerations applied to cluster pods.
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// InitContainers added to cluster pods.
	InitContainers []corev1.Container `json:"initContainers,omitempty"`
	// Volumes added to cluster pods.
	Volumes []corev1.Volume `json:"volumes,omitempty"`
	// VolumeMounts added to cluster containers.
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
	// VolumeClaimTemplates is a list of claims that cluster pods are allowed
	// to reference. You can enable dynamic provisioning of additional storage
	// on-demand by using a storage class provisioner.
	VolumeClaimTemplates []PersistentVolumeClaimTemplate `json:"volumeClaimTemplates,omitempty"`
	// Customize container security context
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
}

WorkloadConfig defines options common to all cluster nodes.

func (*WorkloadConfig) DeepCopy added in v0.3.0

func (in *WorkloadConfig) DeepCopy() *WorkloadConfig

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

func (*WorkloadConfig) DeepCopyInto added in v0.3.0

func (in *WorkloadConfig) DeepCopyInto(out *WorkloadConfig)

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

Jump to

Keyboard shortcuts

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