v1beta1

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2024 License: Apache-2.0 Imports: 11 Imported by: 1

Documentation

Overview

Package v1beta1 contains API Schema definitions for the config v1beta1 API group +kubebuilder:object:generate=true +groupName=config.kueue.x-k8s.io

Index

Constants

View Source
const (
	DefaultNamespace                           = "kueue-system"
	DefaultWebhookServiceName                  = "kueue-webhook-service"
	DefaultWebhookSecretName                   = "kueue-webhook-server-cert"
	DefaultWebhookPort                         = 9443
	DefaultHealthProbeBindAddress              = ":8081"
	DefaultMetricsBindAddress                  = ":8080"
	DefaultLeaderElectionID                    = "c1f6bfd2.kueue.x-k8s.io"
	DefaultLeaderElectionLeaseDuration         = 15 * time.Second
	DefaultLeaderElectionRenewDeadline         = 10 * time.Second
	DefaultLeaderElectionRetryPeriod           = 2 * time.Second
	DefaultClientConnectionQPS         float32 = 20.0
	DefaultClientConnectionBurst       int32   = 30

	DefaultQueueVisibilityUpdateIntervalSeconds int32 = 5
	DefaultClusterQueuesMaxCount                int32 = 10

	DefaultMultiKueueGCInterval           = time.Minute
	DefaultMultiKueueOrigin               = "multikueue"
	DefaultMultiKueueWorkerLostTimeout    = 15 * time.Minute
	DefaultRequeuingBackoffBaseSeconds    = 60
	DefaultRequeuingBackoffMaxSeconds     = 3600
	DefaultResourceTransformationStrategy = Retain
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "config.kueue.x-k8s.io", Version: "v1beta1"}

	// 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 RegisterDefaults added in v0.6.0

func RegisterDefaults(scheme *runtime.Scheme) error

RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.

func SetDefaults_Configuration

func SetDefaults_Configuration(cfg *Configuration)

SetDefaults_Configuration sets default values for ComponentConfig.

func SetObjectDefaults_Configuration added in v0.6.0

func SetObjectDefaults_Configuration(in *Configuration)

Types

type ClientConnection

type ClientConnection struct {
	// QPS controls the number of queries per second allowed for K8S api server
	// connection.
	QPS *float32 `json:"qps,omitempty"`

	// Burst allows extra queries to accumulate when a client is exceeding its rate.
	Burst *int32 `json:"burst,omitempty"`
}

func (*ClientConnection) DeepCopy

func (in *ClientConnection) DeepCopy() *ClientConnection

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

func (*ClientConnection) DeepCopyInto

func (in *ClientConnection) DeepCopyInto(out *ClientConnection)

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

type ClusterQueueVisibility added in v0.5.0

type ClusterQueueVisibility struct {
	// MaxCount indicates the maximal number of pending workloads exposed in the
	// cluster queue status.  When the value is set to 0, then ClusterQueue
	// visibility updates are disabled.
	// The maximal value is 4000.
	// Defaults to 10.
	MaxCount int32 `json:"maxCount,omitempty"`
}

func (*ClusterQueueVisibility) DeepCopy added in v0.5.0

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

func (*ClusterQueueVisibility) DeepCopyInto added in v0.5.0

func (in *ClusterQueueVisibility) DeepCopyInto(out *ClusterQueueVisibility)

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

type Configuration

type Configuration struct {
	metav1.TypeMeta `json:",inline"`

	// Namespace is the namespace in which kueue is deployed. It is used as part of DNSName of the webhook Service.
	// If not set, the value is set from the file /var/run/secrets/kubernetes.io/serviceaccount/namespace
	// If the file doesn't exist, default value is kueue-system.
	Namespace *string `json:"namespace,omitempty"`

	// ControllerManager returns the configurations for controllers
	ControllerManager `json:",inline"`

	// ManageJobsWithoutQueueName controls whether or not Kueue reconciles
	// jobs that don't set the annotation kueue.x-k8s.io/queue-name.
	// If set to true, then those jobs will be suspended and never started unless
	// they are assigned a queue and eventually admitted. This also applies to
	// jobs created before starting the kueue controller.
	// Defaults to false; therefore, those jobs are not managed and if they are created
	// unsuspended, they will start immediately.
	ManageJobsWithoutQueueName bool `json:"manageJobsWithoutQueueName"`

	// ManagedJobsNamespaceSelector can be used to omit some namespaces from ManagedJobsWithoutQueueName
	ManagedJobsNamespaceSelector *metav1.LabelSelector `json:"managedJobsNamespaceSelector,omitempty"`

	// InternalCertManagement is configuration for internalCertManagement
	InternalCertManagement *InternalCertManagement `json:"internalCertManagement,omitempty"`

	// WaitForPodsReady is configuration to provide a time-based all-or-nothing
	// scheduling semantics for Jobs, by ensuring all pods are ready (running
	// and passing the readiness probe) within the specified time. If the timeout
	// is exceeded, then the workload is evicted.
	WaitForPodsReady *WaitForPodsReady `json:"waitForPodsReady,omitempty"`

	// ClientConnection provides additional configuration options for Kubernetes
	// API server client.
	ClientConnection *ClientConnection `json:"clientConnection,omitempty"`

	// Integrations provide configuration options for AI/ML/Batch frameworks
	// integrations (including K8S job).
	Integrations *Integrations `json:"integrations,omitempty"`

	// QueueVisibility is configuration to expose the information about the top
	// pending workloads.
	// Deprecated: This field will be removed on v1beta2, use VisibilityOnDemand
	// (https://kueue.sigs.k8s.io/docs/tasks/manage/monitor_pending_workloads/pending_workloads_on_demand/)
	// instead.
	QueueVisibility *QueueVisibility `json:"queueVisibility,omitempty"`

	// MultiKueue controls the behaviour of the MultiKueue AdmissionCheck Controller.
	MultiKueue *MultiKueue `json:"multiKueue,omitempty"`

	// FairSharing controls the fair sharing semantics across the cluster.
	FairSharing *FairSharing `json:"fairSharing,omitempty"`

	// Resources provides additional configuration options for handling the resources.
	Resources *Resources `json:"resources,omitempty"`

	// FeatureGates is a map of feature names to bools that allows to override the
	// default enablement status of a feature. The map cannot be used in conjunction
	// with passing the list of features via the command line argument "--feature-gates"
	// for the Kueue Deployment.
	FeatureGates map[string]bool `json:"featureGates,omitempty"`
}

Configuration is the Schema for the kueueconfigurations API

func (*Configuration) DeepCopy

func (in *Configuration) DeepCopy() *Configuration

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

func (*Configuration) DeepCopyInto

func (in *Configuration) DeepCopyInto(out *Configuration)

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

func (*Configuration) DeepCopyObject

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

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

type ControllerConfigurationSpec added in v0.4.0

type ControllerConfigurationSpec struct {
	// GroupKindConcurrency is a map from a Kind to the number of concurrent reconciliation
	// allowed for that controller.
	//
	// When a controller is registered within this manager using the builder utilities,
	// users have to specify the type the controller reconciles in the For(...) call.
	// If the object's kind passed matches one of the keys in this map, the concurrency
	// for that controller is set to the number specified.
	//
	// The key is expected to be consistent in form with GroupKind.String(),
	// e.g. ReplicaSet in apps group (regardless of version) would be `ReplicaSet.apps`.
	//
	// +optional
	GroupKindConcurrency map[string]int `json:"groupKindConcurrency,omitempty"`

	// CacheSyncTimeout refers to the time limit set to wait for syncing caches.
	// Defaults to 2 minutes if not set.
	// +optional
	CacheSyncTimeout *time.Duration `json:"cacheSyncTimeout,omitempty"`
}

ControllerConfigurationSpec defines the global configuration for controllers registered with the manager.

func (*ControllerConfigurationSpec) DeepCopy added in v0.4.0

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

func (*ControllerConfigurationSpec) DeepCopyInto added in v0.4.0

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

type ControllerHealth added in v0.4.0

type ControllerHealth struct {
	// HealthProbeBindAddress is the TCP address that the controller should bind to
	// for serving health probes
	// It can be set to "0" or "" to disable serving the health probe.
	// +optional
	HealthProbeBindAddress string `json:"healthProbeBindAddress,omitempty"`

	// ReadinessEndpointName, defaults to "readyz"
	// +optional
	ReadinessEndpointName string `json:"readinessEndpointName,omitempty"`

	// LivenessEndpointName, defaults to "healthz"
	// +optional
	LivenessEndpointName string `json:"livenessEndpointName,omitempty"`
}

ControllerHealth defines the health configs.

func (*ControllerHealth) DeepCopy added in v0.4.0

func (in *ControllerHealth) DeepCopy() *ControllerHealth

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

func (*ControllerHealth) DeepCopyInto added in v0.4.0

func (in *ControllerHealth) DeepCopyInto(out *ControllerHealth)

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

type ControllerManager added in v0.4.0

type ControllerManager struct {
	// Webhook contains the controllers webhook configuration
	// +optional
	Webhook ControllerWebhook `json:"webhook,omitempty"`

	// LeaderElection is the LeaderElection config to be used when configuring
	// the manager.Manager leader election
	// +optional
	LeaderElection *configv1alpha1.LeaderElectionConfiguration `json:"leaderElection,omitempty"`

	// Metrics contains the controller metrics configuration
	// +optional
	Metrics ControllerMetrics `json:"metrics,omitempty"`

	// Health contains the controller health configuration
	// +optional
	Health ControllerHealth `json:"health,omitempty"`

	// PprofBindAddress is the TCP address that the controller should bind to
	// for serving pprof.
	// It can be set to "" or "0" to disable the pprof serving.
	// Since pprof may contain sensitive information, make sure to protect it
	// before exposing it to public.
	// +optional
	PprofBindAddress string `json:"pprofBindAddress,omitempty"`

	// Controller contains global configuration options for controllers
	// registered within this manager.
	// +optional
	Controller *ControllerConfigurationSpec `json:"controller,omitempty"`
}

func (*ControllerManager) DeepCopy added in v0.4.0

func (in *ControllerManager) DeepCopy() *ControllerManager

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

func (*ControllerManager) DeepCopyInto added in v0.4.0

func (in *ControllerManager) DeepCopyInto(out *ControllerManager)

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

type ControllerMetrics added in v0.4.0

type ControllerMetrics struct {
	// BindAddress is the TCP address that the controller should bind to
	// for serving prometheus metrics.
	// It can be set to "0" to disable the metrics serving.
	// +optional
	BindAddress string `json:"bindAddress,omitempty"`

	// EnableClusterQueueResources, if true the cluster queue resource usage and quotas
	// metrics will be reported.
	// +optional
	EnableClusterQueueResources bool `json:"enableClusterQueueResources,omitempty"`
}

ControllerMetrics defines the metrics configs.

func (*ControllerMetrics) DeepCopy added in v0.4.0

func (in *ControllerMetrics) DeepCopy() *ControllerMetrics

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

func (*ControllerMetrics) DeepCopyInto added in v0.4.0

func (in *ControllerMetrics) DeepCopyInto(out *ControllerMetrics)

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

type ControllerWebhook added in v0.4.0

type ControllerWebhook struct {
	// Port is the port that the webhook server serves at.
	// It is used to set webhook.Server.Port.
	// +optional
	Port *int `json:"port,omitempty"`

	// Host is the hostname that the webhook server binds to.
	// It is used to set webhook.Server.Host.
	// +optional
	Host string `json:"host,omitempty"`

	// CertDir is the directory that contains the server key and certificate.
	// if not set, webhook server would look up the server key and certificate in
	// {TempDir}/k8s-webhook-server/serving-certs. The server key and certificate
	// must be named tls.key and tls.crt, respectively.
	// +optional
	CertDir string `json:"certDir,omitempty"`
}

ControllerWebhook defines the webhook server for the controller.

func (*ControllerWebhook) DeepCopy added in v0.4.0

func (in *ControllerWebhook) DeepCopy() *ControllerWebhook

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

func (*ControllerWebhook) DeepCopyInto added in v0.4.0

func (in *ControllerWebhook) DeepCopyInto(out *ControllerWebhook)

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

type FairSharing added in v0.7.0

type FairSharing struct {
	// enable indicates whether to enable fair sharing for all cohorts.
	// Defaults to false.
	Enable bool `json:"enable"`

	// preemptionStrategies indicates which constraints should a preemption satisfy.
	// The preemption algorithm will only use the next strategy in the list if the
	// incoming workload (preemptor) doesn't fit after using the previous strategies.
	// Possible values are:
	// - LessThanOrEqualToFinalShare: Only preempt a workload if the share of the preemptor CQ
	//   with the preemptor workload is less than or equal to the share of the preemptee CQ
	//   without the workload to be preempted.
	//   This strategy might favor preemption of smaller workloads in the preemptee CQ,
	//   regardless of priority or start time, in an effort to keep the share of the CQ
	//   as high as possible.
	// - LessThanInitialShare: Only preempt a workload if the share of the preemptor CQ
	//   with the incoming workload is strictly less than the share of the preemptee CQ.
	//   This strategy doesn't depend on the share usage of the workload being preempted.
	//   As a result, the strategy chooses to preempt workloads with the lowest priority and
	//   newest start time first.
	// The default strategy is ["LessThanOrEqualToFinalShare", "LessThanInitialShare"].
	PreemptionStrategies []PreemptionStrategy `json:"preemptionStrategies,omitempty"`
}

func (*FairSharing) DeepCopy added in v0.7.0

func (in *FairSharing) DeepCopy() *FairSharing

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

func (*FairSharing) DeepCopyInto added in v0.7.0

func (in *FairSharing) DeepCopyInto(out *FairSharing)

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

type Integrations

type Integrations struct {
	// List of framework names to be enabled.
	// Possible options:
	//  - "batch/job"
	//  - "kubeflow.org/mpijob"
	//  - "ray.io/rayjob"
	//  - "ray.io/raycluster"
	//  - "jobset.x-k8s.io/jobset"
	//  - "kubeflow.org/mxjob"
	//  - "kubeflow.org/paddlejob"
	//  - "kubeflow.org/pytorchjob"
	//  - "kubeflow.org/tfjob"
	//  - "kubeflow.org/xgboostjob"
	//  - "pod"
	//  - "deployment" (requires enabling pod integration)
	//  - "statefulset" (requires enabling pod integration)
	Frameworks []string `json:"frameworks,omitempty"`
	// List of GroupVersionKinds that are managed for Kueue by external controllers;
	// the expected format is `Kind.version.group.com`.
	ExternalFrameworks []string `json:"externalFrameworks,omitempty"`
	// PodOptions defines kueue controller behaviour for pod objects
	PodOptions *PodIntegrationOptions `json:"podOptions,omitempty"`

	// labelKeysToCopy is a list of label keys that should be copied from the job into the
	// workload object. It is not required for the job to have all the labels from this
	// list. If a job does not have some label with the given key from this list, the
	// constructed workload object will be created without this label. In the case
	// of creating a workload from a composable job (pod group), if multiple objects
	// have labels with some key from the list, the values of these labels must
	// match or otherwise the workload creation would fail. The labels are copied only
	// during the workload creation and are not updated even if the labels of the
	// underlying job are changed.
	LabelKeysToCopy []string `json:"labelKeysToCopy,omitempty"`
}

func (*Integrations) DeepCopy

func (in *Integrations) DeepCopy() *Integrations

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

func (*Integrations) DeepCopyInto

func (in *Integrations) DeepCopyInto(out *Integrations)

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

type InternalCertManagement

type InternalCertManagement struct {
	// Enable controls whether to enable internal cert management or not.
	// Defaults to true. If you want to use a third-party management, e.g. cert-manager,
	// set it to false. See the user guide for more information.
	Enable *bool `json:"enable,omitempty"`

	// WebhookServiceName is the name of the Service used as part of the DNSName.
	// Defaults to kueue-webhook-service.
	WebhookServiceName *string `json:"webhookServiceName,omitempty"`

	// WebhookSecretName is the name of the Secret used to store CA and server certs.
	// Defaults to kueue-webhook-server-cert.
	WebhookSecretName *string `json:"webhookSecretName,omitempty"`
}

func (*InternalCertManagement) DeepCopy

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

func (*InternalCertManagement) DeepCopyInto

func (in *InternalCertManagement) DeepCopyInto(out *InternalCertManagement)

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

type MultiKueue added in v0.6.0

type MultiKueue struct {
	// GCInterval defines the time interval between two consecutive garbage collection runs.
	// Defaults to 1min. If 0, the garbage collection is disabled.
	// +optional
	GCInterval *metav1.Duration `json:"gcInterval"`

	// Origin defines a label value used to track the creator of workloads in the worker
	// clusters.
	// This is used by multikueue in components like its garbage collector to identify
	// remote objects that ware created by this multikueue manager cluster and delete
	// them if their local counterpart no longer exists.
	// +optional
	Origin *string `json:"origin,omitempty"`

	// WorkerLostTimeout defines the time a local workload's multikueue admission check state is kept Ready
	// if the connection with its reserving worker cluster is lost.
	//
	// Defaults to 15 minutes.
	// +optional
	WorkerLostTimeout *metav1.Duration `json:"workerLostTimeout,omitempty"`
}

func (*MultiKueue) DeepCopy added in v0.6.0

func (in *MultiKueue) DeepCopy() *MultiKueue

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

func (*MultiKueue) DeepCopyInto added in v0.6.0

func (in *MultiKueue) DeepCopyInto(out *MultiKueue)

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

type PodIntegrationOptions added in v0.5.0

type PodIntegrationOptions struct {
	// NamespaceSelector can be used to omit some namespaces from pod reconciliation
	NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`
	// PodSelector can be used to choose what pods to reconcile
	PodSelector *metav1.LabelSelector `json:"podSelector,omitempty"`
}

func (*PodIntegrationOptions) DeepCopy added in v0.5.0

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

func (*PodIntegrationOptions) DeepCopyInto added in v0.5.0

func (in *PodIntegrationOptions) DeepCopyInto(out *PodIntegrationOptions)

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

type PreemptionStrategy added in v0.7.0

type PreemptionStrategy string
const (
	LessThanOrEqualToFinalShare PreemptionStrategy = "LessThanOrEqualToFinalShare"
	LessThanInitialShare        PreemptionStrategy = "LessThanInitialShare"
)

type QueueVisibility added in v0.5.0

type QueueVisibility struct {
	// ClusterQueues is configuration to expose the information
	// about the top pending workloads in the cluster queue.
	ClusterQueues *ClusterQueueVisibility `json:"clusterQueues,omitempty"`

	// UpdateIntervalSeconds specifies the time interval for updates to the structure
	// of the top pending workloads in the queues.
	// The minimum value is 1.
	// Defaults to 5.
	UpdateIntervalSeconds int32 `json:"updateIntervalSeconds,omitempty"`
}

func (*QueueVisibility) DeepCopy added in v0.5.0

func (in *QueueVisibility) DeepCopy() *QueueVisibility

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

func (*QueueVisibility) DeepCopyInto added in v0.5.0

func (in *QueueVisibility) DeepCopyInto(out *QueueVisibility)

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

type RequeuingStrategy added in v0.6.0

type RequeuingStrategy struct {
	// Timestamp defines the timestamp used for re-queuing a Workload
	// that was evicted due to Pod readiness. The possible values are:
	//
	// - `Eviction` (default) indicates from Workload `Evicted` condition with `PodsReadyTimeout` reason.
	// - `Creation` indicates from Workload .metadata.creationTimestamp.
	//
	// +optional
	Timestamp *RequeuingTimestamp `json:"timestamp,omitempty"`

	// BackoffLimitCount defines the maximum number of re-queuing retries.
	// Once the number is reached, the workload is deactivated (`.spec.activate`=`false`).
	// When it is null, the workloads will repeatedly and endless re-queueing.
	//
	// Every backoff duration is about "b*2^(n-1)+Rand" where:
	// - "b" represents the base set by "BackoffBaseSeconds" parameter,
	// - "n" represents the "workloadStatus.requeueState.count",
	// - "Rand" represents the random jitter.
	// During this time, the workload is taken as an inadmissible and
	// other workloads will have a chance to be admitted.
	// By default, the consecutive requeue delays are around: (60s, 120s, 240s, ...).
	//
	// Defaults to null.
	// +optional
	BackoffLimitCount *int32 `json:"backoffLimitCount,omitempty"`

	// BackoffBaseSeconds defines the base for the exponential backoff for
	// re-queuing an evicted workload.
	//
	// Defaults to 60.
	// +optional
	BackoffBaseSeconds *int32 `json:"backoffBaseSeconds,omitempty"`

	// BackoffMaxSeconds defines the maximum backoff time to re-queue an evicted workload.
	//
	// Defaults to 3600.
	// +optional
	BackoffMaxSeconds *int32 `json:"backoffMaxSeconds,omitempty"`
}

func (*RequeuingStrategy) DeepCopy added in v0.6.0

func (in *RequeuingStrategy) DeepCopy() *RequeuingStrategy

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

func (*RequeuingStrategy) DeepCopyInto added in v0.6.0

func (in *RequeuingStrategy) DeepCopyInto(out *RequeuingStrategy)

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

type RequeuingTimestamp added in v0.6.0

type RequeuingTimestamp string
const (
	// CreationTimestamp timestamp (from Workload .metadata.creationTimestamp).
	CreationTimestamp RequeuingTimestamp = "Creation"

	// EvictionTimestamp timestamp (from Workload .status.conditions).
	EvictionTimestamp RequeuingTimestamp = "Eviction"
)

type ResourceTransformation added in v0.9.0

type ResourceTransformation struct {
	// Input is the name of the input resource.
	Input corev1.ResourceName `json:"input"`

	// Strategy specifies if the input resource should be replaced or retained.
	// Defaults to Retain
	Strategy *ResourceTransformationStrategy `json:"strategy,omitempty"`

	// Outputs specifies the output resources and quantities per unit of input resource.
	// An empty Outputs combined with a `Replace` Strategy causes the Input resource to be ignored by Kueue.
	Outputs corev1.ResourceList `json:"outputs,omitempty"`
}

func (*ResourceTransformation) DeepCopy added in v0.9.0

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

func (*ResourceTransformation) DeepCopyInto added in v0.9.0

func (in *ResourceTransformation) DeepCopyInto(out *ResourceTransformation)

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

type ResourceTransformationStrategy added in v0.9.0

type ResourceTransformationStrategy string
const Replace ResourceTransformationStrategy = "Replace"
const Retain ResourceTransformationStrategy = "Retain"

type Resources added in v0.7.0

type Resources struct {
	// ExcludedResourcePrefixes defines which resources should be ignored by Kueue
	ExcludeResourcePrefixes []string `json:"excludeResourcePrefixes,omitempty"`

	// Transformations defines how to transform PodSpec resources into Workload resource requests.
	// This is intended to be a map with Input as the key (enforced by validation code)
	Transformations []ResourceTransformation `json:"transformations,omitempty"`
}

func (*Resources) DeepCopy added in v0.7.0

func (in *Resources) DeepCopy() *Resources

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

func (*Resources) DeepCopyInto added in v0.7.0

func (in *Resources) DeepCopyInto(out *Resources)

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

type WaitForPodsReady

type WaitForPodsReady struct {
	// Enable indicates whether to enable wait for pods ready feature.
	// Defaults to false.
	Enable bool `json:"enable,omitempty"`

	// Timeout defines the time for an admitted workload to reach the
	// PodsReady=true condition. When the timeout is exceeded, the workload
	// evicted and requeued in the same cluster queue.
	// Defaults to 5min.
	// +optional
	Timeout *metav1.Duration `json:"timeout,omitempty"`

	// BlockAdmission when true, cluster queue will block admissions for all
	// subsequent jobs until the jobs reach the PodsReady=true condition.
	// This setting is only honored when `Enable` is set to true.
	BlockAdmission *bool `json:"blockAdmission,omitempty"`

	// RequeuingStrategy defines the strategy for requeuing a Workload.
	// +optional
	RequeuingStrategy *RequeuingStrategy `json:"requeuingStrategy,omitempty"`
}

WaitForPodsReady defines configuration for the Wait For Pods Ready feature, which is used to ensure that all Pods are ready within the specified time.

func (*WaitForPodsReady) DeepCopy

func (in *WaitForPodsReady) DeepCopy() *WaitForPodsReady

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

func (*WaitForPodsReady) DeepCopyInto

func (in *WaitForPodsReady) DeepCopyInto(out *WaitForPodsReady)

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