Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the agents v1alpha1 API group. +kubebuilder:object:generate=true +groupName=ate.dev
Index ¶
- Variables
- func Resource(resource string) schema.GroupResource
- type ActorTemplate
- type ActorTemplateList
- type ActorTemplateSpec
- type ActorTemplateStatus
- type AssetFile
- type Container
- type EnvVar
- type EnvVarSource
- type PhaseType
- type SandboxClass
- type SandboxConfig
- type SandboxConfigList
- type SandboxConfigSpec
- type SecretKeySelector
- type SnapshotsConfig
- type WorkerPool
- type WorkerPoolList
- type WorkerPoolPodTemplate
- type WorkerPoolSpec
- type WorkerPoolStatus
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "ate.dev", Version: "v1alpha1"} // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = GroupVersion // SchemeBuilder is used to add go types to the GroupVersionKind scheme. SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} //nolint:staticcheck // SA1019: scheme.Builder is the conventional kubebuilder pattern for api packages. // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type ActorTemplate ¶
type ActorTemplate struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec defines the desired state of ActorTemplate. This field is immutable.
// +required
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Spec is immutable"
Spec ActorTemplateSpec `json:"spec"`
// status is the observed state of ActorTemplate
// +optional
Status ActorTemplateStatus `json:"status,omitempty"`
}
+genclient +kubebuilder:object:generate=true +kubebuilder:object:root=true +kubebuilder:resource:scope=Namespaced,shortName=actortemplate +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Class",type=string,JSONPath=`.spec.sandboxClass`
func (*ActorTemplate) DeepCopy ¶
func (in *ActorTemplate) DeepCopy() *ActorTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActorTemplate.
func (*ActorTemplate) DeepCopyInto ¶
func (in *ActorTemplate) DeepCopyInto(out *ActorTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ActorTemplate) DeepCopyObject ¶
func (in *ActorTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ActorTemplateList ¶
type ActorTemplateList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ActorTemplate `json:"items"`
}
ActorTemplateList contains a list of ActorTemplates. +kubebuilder:object:generate=true +kubebuilder:object:root=true +kubebuilder:resource:scope=Namespaced,shortName=actortemplate
func (*ActorTemplateList) DeepCopy ¶
func (in *ActorTemplateList) DeepCopy() *ActorTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActorTemplateList.
func (*ActorTemplateList) DeepCopyInto ¶
func (in *ActorTemplateList) DeepCopyInto(out *ActorTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ActorTemplateList) DeepCopyObject ¶
func (in *ActorTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ActorTemplateSpec ¶
type ActorTemplateSpec struct {
// PauseImage is the container to use as the root sandbox container.
//
// Typically, set it to [1] for on-gcp, and [2] for off-gcp
//
// - [1] gcr.io/gke-release/pause@sha256:bcbd57ba5653580ec647b16d8163cdd1112df3609129b01f912a8032e48265da
// - [2] registry.k8s.io/pause:3.10.2@sha256:f548e0e8e3dc1896ca956272154dde3314e8cc4fde0a57577ee9fa1c63f5baf4
//
// +required
// +kubebuilder:validation:XValidation:rule="self.contains('@')",message="All images must be pinned (changing the image invalidates snapshots)"
PauseImage string `json:"pauseImage,omitempty"`
// Containers is the workload definition.
//
// +optional
// +kubebuilder:validation:MaxItems=10
Containers []Container `json:"containers,omitempty"`
// Snapshots configuration for the actor.
//
// +required
SnapshotsConfig SnapshotsConfig `json:"snapshotsConfig"`
// SandboxClass selects the sandbox runtime family this template's actors run
// on. Only worker pools whose SandboxClass matches are eligible. Snapshots are
// not portable across classes, so this is a hard gate, AND'd with WorkerSelector
// and the actor's worker_selector. Defaults to gvisor.
//
// TODO: This is almost certainly insufficient. We have to decide a number of things:
//
// 1) How does someone discover what classes are available, or what they mean?
// 2) How does someone define a new sandbox class?
// 3) Does a class mean the specific type of sandbox tech or does it include some aspect of config (e.g. can we have 2 different classes which both use gVisor with different config, or 2 classes which use different microvms)
// 4) How does the default get set and who sets it?
//
// See Also: WorkerPool SandboxClass
//
//
// +optional
// +kubebuilder:validation:Enum=gvisor;microvm
// +kubebuilder:default=gvisor
SandboxClass SandboxClass `json:"sandboxClass,omitempty"`
// WorkerSelector restricts which worker pools actors from this template may
// use. The scheduler only considers pools whose labels match this selector.
// If nil, all pools are eligible (subject to the actor's own worker_selector).
// Acts as a gate: the actor's worker_selector can only narrow this set further,
// never expand it.
//
// +optional
WorkerSelector *metav1.LabelSelector `json:"workerSelector,omitempty"`
}
ActorTemplateSpec defined desired spec of an actor.
func (*ActorTemplateSpec) DeepCopy ¶
func (in *ActorTemplateSpec) DeepCopy() *ActorTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActorTemplateSpec.
func (*ActorTemplateSpec) DeepCopyInto ¶
func (in *ActorTemplateSpec) DeepCopyInto(out *ActorTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActorTemplateStatus ¶
type ActorTemplateStatus struct {
// Phase of the actor template.
// +optional
Phase PhaseType `json:"phase,omitempty"`
GoldenActorID string `json:"goldenActorID,omitempty"`
TakeGoldenSnapshotAt metav1.Time `json:"takeGoldenSnapshotAt,omitempty"`
GoldenSnapshot string `json:"goldenSnapshot,omitempty"`
// conditions defines the status conditions array
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
TODO: add validation
func (*ActorTemplateStatus) DeepCopy ¶
func (in *ActorTemplateStatus) DeepCopy() *ActorTemplateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActorTemplateStatus.
func (*ActorTemplateStatus) DeepCopyInto ¶
func (in *ActorTemplateStatus) DeepCopyInto(out *ActorTemplateStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AssetFile ¶
type AssetFile struct {
// URL is where to download the asset from (e.g. a gs:// URL). It may be
// fetched anonymously or with credentials depending on atelet's
// configuration.
//
// +required
// +kubebuilder:validation:MinLength=1
URL string `json:"url"`
// SHA256 is the lower-case hex SHA256 of the asset. It both names the cached
// file (preventing collisions) and verifies the download's integrity.
//
// +required
// +kubebuilder:validation:Pattern=`^[a-f0-9]{64}$`
SHA256 string `json:"sha256"`
}
AssetFile is one content-addressed file that atelet fetches for a sandbox runtime (e.g. the gVisor runsc binary, or a micro-VM kernel/firmware/config).
func (*AssetFile) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AssetFile.
func (*AssetFile) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Container ¶
type Container struct {
// Name of the container.
//
// +required
// +kubebuilder:validation:MaxLength=63
// +kubebuilder:validation:XValidation:rule="!format.dns1123Label().validate(self).hasValue()",message="Name must be a valid DNS label"
Name string `json:"name"`
// Image to use for the worker replicas.
//
// +required
// +kubebuilder:validation:XValidation:rule="self.contains('@')",message="All images must be pinned (changing the image invalidates snapshots)"
Image string `json:"image,omitempty"`
// Entrypoint array. Not executed within a shell.
//
// +optional
// +kubebuilder:validation:MaxItems=64
// +listType=atomic
Command []string `json:"command,omitempty"`
// Environment variables to set in the worker replicas.
//
// +optional
// +kubebuilder:validation:MaxItems=32
Env []EnvVar `json:"env,omitempty"`
}
A single application container that you want to run within a WorkerPool.
func (*Container) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Container.
func (*Container) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvVar ¶
type EnvVar struct {
// Name is the name of the environment variable. May be any printable ASCII
// character except '='.
//
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern=`^[ -<>-~]+$`
Name string `json:"name"`
// Variable value. Mutually exclusive with ValueFrom.
// Value is the literal value of the environment variable. Unlike in
// Kubernetes pods, this value is not interpolated, and $(VAR)
// references are not expanded.
//
// +optional
// +kubebuilder:validation:MinLength=0
Value *string `json:"value,omitempty"`
// Source for the environment variable's value. Mutually exclusive with
// Value.
//
// +optional
ValueFrom *EnvVarSource `json:"valueFrom,omitempty"`
}
EnvVar represents an environment variable supplied to a container in an ActorTemplate. It models only a subset of Kubernetes Pod env behavior: literal values are not expanded with Kubernetes-style $(VAR) references, envFrom is not supported, and valueFrom currently supports only secretKeyRef.
+kubebuilder:validation:ExactlyOneOf={value, valueFrom}
func (*EnvVar) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.
func (*EnvVar) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvVarSource ¶
type EnvVarSource struct {
// Selects a key of a Secret in the ActorTemplate's namespace.
//
// +optional
SecretKeyRef *SecretKeySelector `json:"secretKeyRef,omitempty"`
}
EnvVarSource represents a source for the value of an EnvVar. Exactly one of its fields must be set.
+kubebuilder:validation:MinProperties=1 +kubebuilder:validation:MaxProperties=1
func (*EnvVarSource) DeepCopy ¶
func (in *EnvVarSource) DeepCopy() *EnvVarSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVarSource.
func (*EnvVarSource) DeepCopyInto ¶
func (in *EnvVarSource) DeepCopyInto(out *EnvVarSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SandboxClass ¶
type SandboxClass string
SandboxClass selects the sandbox runtime family. It is shared by WorkerPool (which family a pool runs) and SandboxConfig (which family a config is for).
const ( // SandboxClassGvisor is the gVisor/runsc runtime (cmd/ateom-gvisor). Default. SandboxClassGvisor SandboxClass = "gvisor" // SandboxClassMicroVM is the micro-VM runtime (cmd/ateom-microvm); needs // /dev/kvm and vhost devices. SandboxClassMicroVM SandboxClass = "microvm" )
type SandboxConfig ¶
type SandboxConfig struct {
metav1.TypeMeta `json:",inline"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec defines the desired state of SandboxConfig
// +required
Spec SandboxConfigSpec `json:"spec"`
}
SandboxConfig is cluster-scoped configuration describing the sandbox binaries for a sandbox runtime family. It is referenced (or defaulted) by WorkerPools and decouples sandbox binary selection from ActorTemplate.
+genclient +genclient:nonNamespaced +kubebuilder:object:generate=true +kubebuilder:object:root=true +kubebuilder:resource:scope=Cluster,shortName=sandboxconfig +kubebuilder:printcolumn:name="Class",type=string,JSONPath=`.spec.sandboxClass` +kubebuilder:printcolumn:name="Default",type=boolean,JSONPath=`.spec.default` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
func (*SandboxConfig) DeepCopy ¶
func (in *SandboxConfig) DeepCopy() *SandboxConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SandboxConfig.
func (*SandboxConfig) DeepCopyInto ¶
func (in *SandboxConfig) DeepCopyInto(out *SandboxConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SandboxConfig) DeepCopyObject ¶
func (in *SandboxConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SandboxConfigList ¶
type SandboxConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []SandboxConfig `json:"items"`
}
SandboxConfigList contains a list of SandboxConfigs. +kubebuilder:object:generate=true +kubebuilder:object:root=true
func (*SandboxConfigList) DeepCopy ¶
func (in *SandboxConfigList) DeepCopy() *SandboxConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SandboxConfigList.
func (*SandboxConfigList) DeepCopyInto ¶
func (in *SandboxConfigList) DeepCopyInto(out *SandboxConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SandboxConfigList) DeepCopyObject ¶
func (in *SandboxConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SandboxConfigSpec ¶
type SandboxConfigSpec struct {
// SandboxClass is the sandbox runtime family this config applies to. A
// WorkerPool only uses SandboxConfigs whose SandboxClass matches its own.
//
// +required
// +kubebuilder:validation:Enum=gvisor;microvm
// +kubebuilder:default=gvisor
SandboxClass SandboxClass `json:"sandboxClass"`
// Default marks this SandboxConfig as the cluster-wide default for its
// SandboxClass. A WorkerPool with no explicit SandboxConfigName resolves to
// the default config for its SandboxClass. At most one default is expected
// per SandboxClass.
//
// +optional
Default bool `json:"default,omitempty"`
// Assets is the set of files atelet fetches for this runtime, keyed first by
// architecture (GOARCH, e.g. "amd64", "arm64") and then by asset name. The
// asset names are interpreted by the sandbox backend: gVisor expects a
// "runsc" asset; a micro-VM backend expects several (e.g. "cloud-hypervisor",
// "kata-kernel", "kata-image"). The schema is intentionally generic;
// per-class requirements are enforced by a ValidatingAdmissionPolicy.
//
// +optional
Assets map[string]map[string]AssetFile `json:"assets,omitempty"`
}
SandboxConfigSpec is the desired state of a SandboxConfig.
func (*SandboxConfigSpec) DeepCopy ¶
func (in *SandboxConfigSpec) DeepCopy() *SandboxConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SandboxConfigSpec.
func (*SandboxConfigSpec) DeepCopyInto ¶
func (in *SandboxConfigSpec) DeepCopyInto(out *SandboxConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretKeySelector ¶
type SecretKeySelector struct {
// Name of the referent Secret.
//
// +required
// +kubebuilder:validation:MaxLength=253
// +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="Name must be a valid DNS subdomain"
Name string `json:"name"`
// Key to select within the Secret.
//
// +required
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern=`^[-._a-zA-Z0-9]+$`
Key string `json:"key"`
// Specify whether the Secret or its key must be defined.
//
// +optional
Optional *bool `json:"optional,omitempty"`
}
SecretKeySelector selects a key from a Secret.
func (*SecretKeySelector) DeepCopy ¶
func (in *SecretKeySelector) DeepCopy() *SecretKeySelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeySelector.
func (*SecretKeySelector) DeepCopyInto ¶
func (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SnapshotsConfig ¶
type SnapshotsConfig struct {
// Location to store snapshots in.
//
// +required
// +kubebuilder:validation:MinLength=1
Location string `json:"location"`
}
func (*SnapshotsConfig) DeepCopy ¶
func (in *SnapshotsConfig) DeepCopy() *SnapshotsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnapshotsConfig.
func (*SnapshotsConfig) DeepCopyInto ¶
func (in *SnapshotsConfig) DeepCopyInto(out *SnapshotsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkerPool ¶
type WorkerPool struct {
metav1.TypeMeta `json:",inline"`
// metadata is a standard object metadata
// +optional
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec defines the desired state of WorkerPool
// +required
Spec WorkerPoolSpec `json:"spec"`
// status is the observed state of WorkerPool
// +optional
Status WorkerPoolStatus `json:"status,omitempty"`
}
WorkerPool is the Schema for the workerpools API +genclient +kubebuilder:object:generate=true +kubebuilder:object:root=true +kubebuilder:resource:scope=Namespaced,shortName=workerpool +kubebuilder:subresource:status +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas +kubebuilder:printcolumn:name="Desired",type=integer,JSONPath=`.spec.replicas` +kubebuilder:printcolumn:name="Replicas",type=integer,JSONPath=`.status.replicas` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
func (*WorkerPool) DeepCopy ¶
func (in *WorkerPool) DeepCopy() *WorkerPool
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerPool.
func (*WorkerPool) DeepCopyInto ¶
func (in *WorkerPool) DeepCopyInto(out *WorkerPool)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WorkerPool) DeepCopyObject ¶
func (in *WorkerPool) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type WorkerPoolList ¶
type WorkerPoolList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []WorkerPool `json:"items"`
}
WorkerPoolList contains a list of WorkerPools. +kubebuilder:object:generate=true +kubebuilder:object:root=true
func (*WorkerPoolList) DeepCopy ¶
func (in *WorkerPoolList) DeepCopy() *WorkerPoolList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerPoolList.
func (*WorkerPoolList) DeepCopyInto ¶
func (in *WorkerPoolList) DeepCopyInto(out *WorkerPoolList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WorkerPoolList) DeepCopyObject ¶
func (in *WorkerPoolList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type WorkerPoolPodTemplate ¶
type WorkerPoolPodTemplate struct {
// NodeSelector is a selector which must be true for the pod to fit on a node.
//
// +optional
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// Tolerations for the worker pods.
//
// +optional
// +kubebuilder:validation:MaxItems=16
// +listType=atomic
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
// PriorityClassName for the worker pods.
//
// +optional
PriorityClassName string `json:"priorityClassName,omitempty"`
// NodeAffinity scheduling rules for the worker pods. Mapped to
// spec.affinity.nodeAffinity on the pod.
//
// +optional
NodeAffinity *corev1.NodeAffinity `json:"nodeAffinity,omitempty"`
}
WorkerPoolPodTemplate defines optional scheduling and resource settings for worker pods. NodeAffinity is mapped to spec.affinity.nodeAffinity on the pod.
func (*WorkerPoolPodTemplate) DeepCopy ¶
func (in *WorkerPoolPodTemplate) DeepCopy() *WorkerPoolPodTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerPoolPodTemplate.
func (*WorkerPoolPodTemplate) DeepCopyInto ¶
func (in *WorkerPoolPodTemplate) DeepCopyInto(out *WorkerPoolPodTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkerPoolSpec ¶
type WorkerPoolSpec struct {
// Replicas is the number of worker pods to run.
// +required
// +kubebuilder:validation:Minimum=0
Replicas int32 `json:"replicas"`
// AteomImage is the ateom container image to deploy as workers.
// +kubebuilder:validation:MinLength=1
// +required
AteomImage string `json:"ateomImage"`
// Template holds optional pod scheduling and resource settings for worker pods.
//
// +optional
Template *WorkerPoolPodTemplate `json:"template,omitempty"`
// SandboxClass selects the sandbox runtime family for this pool, which drives
// the worker pod shape (KVM/vhost device mounts and node placement) and which
// SandboxConfigs are eligible. The concrete binary is still selected by
// AteomImage. Defaults to gvisor.
//
// See Also: TODOs in ActorTemplate SandboxClass
//
// +optional
// +kubebuilder:validation:Enum=gvisor;microvm
// +kubebuilder:default=gvisor
SandboxClass SandboxClass `json:"sandboxClass,omitempty"`
// SandboxConfigName names a cluster-scoped SandboxConfig to use for fetching
// sandbox binaries. It overrides the cluster-wide default SandboxConfig for
// this pool's SandboxClass. The referenced config's SandboxClass must match
// this pool's SandboxClass. If empty, the default SandboxConfig for the
// SandboxClass is used.
// +optional
SandboxConfigName string `json:"sandboxConfigName,omitempty"`
}
func (*WorkerPoolSpec) DeepCopy ¶
func (in *WorkerPoolSpec) DeepCopy() *WorkerPoolSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerPoolSpec.
func (*WorkerPoolSpec) DeepCopyInto ¶
func (in *WorkerPoolSpec) DeepCopyInto(out *WorkerPoolSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkerPoolStatus ¶
type WorkerPoolStatus struct {
// Replicas is the total number of worker pods.
// +kubebuilder:validation:Minimum=0
// +optional
Replicas int32 `json:"replicas"`
}
func (*WorkerPoolStatus) DeepCopy ¶
func (in *WorkerPoolStatus) DeepCopy() *WorkerPoolStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerPoolStatus.
func (*WorkerPoolStatus) DeepCopyInto ¶
func (in *WorkerPoolStatus) DeepCopyInto(out *WorkerPoolStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.