v1alpha1

package
v0.0.0-...-0c4da99 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2023 License: Apache-2.0 Imports: 4 Imported by: 1

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the golem v1alpha1 API group +kubebuilder:object:generate=true +groupName=golem.spot-os.io

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "golem.spot-os.io", 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 ComponentSpec

type ComponentSpec struct {
	// VCPUs is the required number of virtual CPUs for component.
	VCPUs int `json:"vCPUs"`
	// Memory is the required memory for component (GB).
	Memory int `json:"memory"`
	// Network is the required network bandwidth for component (Gbps).
	Network int `json:"network"`
	// Behavior is the required interruption behavior: options: terminate,stop,hibernation
	Behavior string `json:"behavior" enum:"terminate|stop|hibernation" default:"terminate"`
	// Frequency is the limit interruption frequency of the instances. options: 0-4.
	Frequency int `json:"frequency" enum:"0|1|2|3|4" default:"0"`
	// The type of storage to use for the component (optional).
	StorageType string `json:"storageType,omitempty"`
	// Affinity is the components names that must be on the same instance.
	Affinity []string `json:"affinity,omitempty"`
	// AntiAffinity is the components names that must be on different instances.
	AntiAffinity []string `json:"anti-affinity,omitempty"`
}

ComponentSpec defines the requirements of a component in a workload.

func (*ComponentSpec) DeepCopy

func (in *ComponentSpec) DeepCopy() *ComponentSpec

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

func (*ComponentSpec) DeepCopyInto

func (in *ComponentSpec) DeepCopyInto(out *ComponentSpec)

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

type ComponentStatus

type ComponentStatus struct {
	// Stage is the stage of the lifecycle of the workload
	Stage string `json:"stage,omitempty" enum:"pending|scheduled|deployed|evacuated"`
	// InstanceName is the name of the node the instance is scheduled to
	InstanceName string `json:"instance-name,omitempty"`
}

ComponentStatus defines the observed state of a component in a workload.

func (*ComponentStatus) DeepCopy

func (in *ComponentStatus) DeepCopy() *ComponentStatus

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

func (*ComponentStatus) DeepCopyInto

func (in *ComponentStatus) DeepCopyInto(out *ComponentStatus)

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

type SpotWorkload

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

	Spec   SpotWorkloadSpec   `json:"spec,omitempty"`
	Status SpotWorkloadStatus `json:"status,omitempty"`
}

SpotWorkload is the Schema for the spotworkloads API.

func (*SpotWorkload) DeepCopy

func (in *SpotWorkload) DeepCopy() *SpotWorkload

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

func (*SpotWorkload) DeepCopyInto

func (in *SpotWorkload) DeepCopyInto(out *SpotWorkload)

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

func (*SpotWorkload) DeepCopyObject

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

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

type SpotWorkloadList

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

SpotWorkloadList contains a list of SpotWorkload.

func (*SpotWorkloadList) DeepCopy

func (in *SpotWorkloadList) DeepCopy() *SpotWorkloadList

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

func (*SpotWorkloadList) DeepCopyInto

func (in *SpotWorkloadList) DeepCopyInto(out *SpotWorkloadList)

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

func (*SpotWorkloadList) DeepCopyObject

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

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

type SpotWorkloadSpec

type SpotWorkloadSpec struct {
	// The name of the application.
	App string `json:"app"`
	// Whether the workload components share resources.
	Share bool `json:"share"`
	// The list of components in the workload. Component names (keys) must match relevant deployment names.
	Components map[string]ComponentSpec `json:"components"`
}

SpotWorkloadSpec defines the desired state of SpotWorkload.

func (*SpotWorkloadSpec) DeepCopy

func (in *SpotWorkloadSpec) DeepCopy() *SpotWorkloadSpec

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

func (*SpotWorkloadSpec) DeepCopyInto

func (in *SpotWorkloadSpec) DeepCopyInto(out *SpotWorkloadSpec)

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

type SpotWorkloadStatus

type SpotWorkloadStatus struct {

	// Components is the status of the components in the workload.
	Components map[string]ComponentStatus `json:"components"`
}

SpotWorkloadStatus defines the observed state of SpotWorkload.

func (*SpotWorkloadStatus) DeepCopy

func (in *SpotWorkloadStatus) DeepCopy() *SpotWorkloadStatus

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

func (*SpotWorkloadStatus) DeepCopyInto

func (in *SpotWorkloadStatus) DeepCopyInto(out *SpotWorkloadStatus)

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