v1alpha

package
v0.0.0-...-161fb51 Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2024 License: AGPL-3.0 Imports: 10 Imported by: 0

Documentation

Overview

Package v1alpha contains API Schema definitions for the compute v1alpha API group +kubebuilder:object:generate=true +groupName=compute.datumapis.com

Index

Constants

View Source
const (
	AnnotationNamespace = "compute.datumapis.com"

	SSHKeysAnnotation = AnnotationNamespace + "/ssh-keys"
)
View Source
const (
	// WorkloadAvailable indicates that at least one instance has come online.
	WorkloadAvailable = "Available"
)
View Source
const (
	// WorkloadDeploymentAvailable indicates that at least one instance has come
	// online.
	WorkloadDeploymentAvailable = "Available"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "compute.datumapis.com", Version: "v1alpha"}

	// 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 ContainerResourceRequirements

type ContainerResourceRequirements struct {
	// Limits describes the maximum amount of compute resources allowed.
	//
	// +kubebuilder:validation:Optional
	Limits corev1.ResourceList `json:"limits,omitempty"`

	// Requests describes the minimum amount of compute resources required.
	//
	// +kubebuilder:validation:Optional
	Requests corev1.ResourceList `json:"requests,omitempty"`
}

func (*ContainerResourceRequirements) DeepCopy

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

func (*ContainerResourceRequirements) DeepCopyInto

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

type DiskPopulator

type DiskPopulator struct {
	// Populate the disk from an image
	Image *ImageDiskPopulator `json:"image,omitempty"`

	// Populate the disk with a filesystem
	Filesystem *FilesystemDiskPopulator `json:"filesystem,omitempty"`
}

func (*DiskPopulator) DeepCopy

func (in *DiskPopulator) DeepCopy() *DiskPopulator

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

func (*DiskPopulator) DeepCopyInto

func (in *DiskPopulator) DeepCopyInto(out *DiskPopulator)

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

type DiskResourceRequirements

type DiskResourceRequirements struct {
	// Requests describes the minimum amount of storage resources required.
	//
	// +kubebuilder:validation:Optional
	Requests corev1.ResourceList `json:"requests,omitempty"`
}

func (*DiskResourceRequirements) DeepCopy

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

func (*DiskResourceRequirements) DeepCopyInto

func (in *DiskResourceRequirements) DeepCopyInto(out *DiskResourceRequirements)

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

type DiskSpec

type DiskSpec struct {
	// The type the disk, such as `pd-standard`.
	//
	// +kubebuilder:default=pd-standard
	// +kubebuilder:validation:Optional
	Type string `json:"type"`

	// The resource requirements for the disk.
	//
	// +kubebuilder:validation:Optional
	Resources *DiskResourceRequirements `json:"resources,omitempty"`

	// Populator to use while initializing the disk.
	//
	// +kubebuilder:validation:Optional
	Populator *DiskPopulator `json:"populator,omitempty"`
}

func (*DiskSpec) DeepCopy

func (in *DiskSpec) DeepCopy() *DiskSpec

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

func (*DiskSpec) DeepCopyInto

func (in *DiskSpec) DeepCopyInto(out *DiskSpec)

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

type DiskTemplateVolumeSource

type DiskTemplateVolumeSource struct {
	// Specifies a unique device name that is reflected into the
	// `/dev/disk/by-id/datumcloud-*` tree of a Linux operating system
	// running within the instance. This name can be used to reference
	// the device for mounting, resizing, and so on, from within the
	// instance.
	//
	// If not specified, the server chooses a default device name to
	// apply to this disk, in the form persistent-disk-x, where x is a
	// number assigned by Datum Cloud.
	//
	DeviceName *string `json:"deviceName,omitempty"`

	// Settings to create a new disk for an attached disk
	//
	// +kubebuilder:validation:Required
	Template *DiskTemplateVolumeSourceTemplate `json:"template,omitempty"`
}

func (*DiskTemplateVolumeSource) DeepCopy

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

func (*DiskTemplateVolumeSource) DeepCopyInto

func (in *DiskTemplateVolumeSource) DeepCopyInto(out *DiskTemplateVolumeSource)

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

type DiskTemplateVolumeSourceTemplate

type DiskTemplateVolumeSourceTemplate struct {
	// Metadata of the disks created from this template
	//
	// +kubebuilder:validation:Optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Describes the desired configuration of a disk
	//
	// +kubebuilder:validation:Required
	Spec DiskSpec `json:"spec,omitempty"`
}

func (*DiskTemplateVolumeSourceTemplate) DeepCopy

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

func (*DiskTemplateVolumeSourceTemplate) DeepCopyInto

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

type FilesystemDiskPopulator

type FilesystemDiskPopulator struct {
	// The type of filesystem to populate the disk with.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=ext4
	Type string `json:"type"`
}

func (*FilesystemDiskPopulator) DeepCopy

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

func (*FilesystemDiskPopulator) DeepCopyInto

func (in *FilesystemDiskPopulator) DeepCopyInto(out *FilesystemDiskPopulator)

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

type HorizontalScaleSettings

type HorizontalScaleSettings struct {
	// The minimum number of replicas.
	//
	// +kubebuilder:validation:Required
	MinReplicas int32 `json:"minReplicas"`

	// The maximum number of replicas.
	//
	// +kubebuilder:validation:Optional
	MaxReplicas *int32 `json:"maxReplicas,omitempty"`

	// A list of metrics that determine scaling behavior, such as external metrics.
	//
	// +kubebuilder:validation:Optional
	Metrics []MetricSpec `json:"metrics,omitempty"`
}

func (*HorizontalScaleSettings) DeepCopy

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

func (*HorizontalScaleSettings) DeepCopyInto

func (in *HorizontalScaleSettings) DeepCopyInto(out *HorizontalScaleSettings)

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

type ImageDiskPopulator

type ImageDiskPopulator struct {
	// The name of the image to populate the disk with.
	//
	// TODO(jreese) should this be a Ref field? Would want to avoid stuttering
	// 	in `populator.image.imageRef.name` though.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

func (*ImageDiskPopulator) DeepCopy

func (in *ImageDiskPopulator) DeepCopy() *ImageDiskPopulator

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

func (*ImageDiskPopulator) DeepCopyInto

func (in *ImageDiskPopulator) DeepCopyInto(out *ImageDiskPopulator)

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

type Instance

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

	Spec   InstanceSpec   `json:"spec,omitempty"`
	Status InstanceStatus `json:"status,omitempty"`
}

Instance is the Schema for the instances API +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Available",type=string,JSONPath=`.status.conditions[?(@.type=="Available")].status` +kubebuilder:printcolumn:name="Reason",type=string,JSONPath=`.status.conditions[?(@.type=="Available")].reason` +kubebuilder:printcolumn:name="Network IP",type=string,JSONPath=`.status.networkInterfaces[0].assignments.networkIP`,priority=1 +kubebuilder:printcolumn:name="External IP",type=string,JSONPath=`.status.networkInterfaces[0].assignments.externalIP`,priority=1

func (*Instance) DeepCopy

func (in *Instance) DeepCopy() *Instance

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

func (*Instance) DeepCopyInto

func (in *Instance) DeepCopyInto(out *Instance)

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

func (*Instance) DeepCopyObject

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

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

type InstanceList

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

InstanceList contains a list of Instance

func (*InstanceList) DeepCopy

func (in *InstanceList) DeepCopy() *InstanceList

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

func (*InstanceList) DeepCopyInto

func (in *InstanceList) DeepCopyInto(out *InstanceList)

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

func (*InstanceList) DeepCopyObject

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

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

type InstanceNetworkInterface

type InstanceNetworkInterface struct {
	// The network to attach the network interface to.
	//
	// +kubebuilder:validation:Required
	Network networkingv1alpha.NetworkRef `json:"network"`

	// Interface specific network policy.
	//
	// If provided, this will result in a platform managed network policy being
	// created that targets the specfiic instance interface. This network policy
	// will be of the lowest priority, and can effectively be prohibited from
	// influencing network connectivity.
	//
	// +kubebuilder:validation:Optional
	NetworkPolicy *InstanceNetworkInterfaceNetworkPolicy `json:"networkPolicy,omitempty"`
}

func (*InstanceNetworkInterface) DeepCopy

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

func (*InstanceNetworkInterface) DeepCopyInto

func (in *InstanceNetworkInterface) DeepCopyInto(out *InstanceNetworkInterface)

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

type InstanceNetworkInterfaceAssignmentsStatus

type InstanceNetworkInterfaceAssignmentsStatus struct {
	// The IP address assigned as the primary IP from the attached network.
	NetworkIP *string `json:"networkIP,omitempty"`

	// The external IP address used for the interface. A one to one NAT will be
	// performed for this address with the interface's network IP.
	ExternalIP *string `json:"externalIP,omitempty"`
}

func (*InstanceNetworkInterfaceAssignmentsStatus) DeepCopy

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

func (*InstanceNetworkInterfaceAssignmentsStatus) DeepCopyInto

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

type InstanceNetworkInterfaceNetworkPolicy

type InstanceNetworkInterfaceNetworkPolicy struct {
	Ingress []networkingv1alpha.NetworkPolicyIngressRule `json:"ingress,omitempty"`
}

func (*InstanceNetworkInterfaceNetworkPolicy) DeepCopy

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

func (*InstanceNetworkInterfaceNetworkPolicy) DeepCopyInto

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

type InstanceNetworkInterfaceStatus

type InstanceNetworkInterfaceStatus struct {
	Assignments InstanceNetworkInterfaceAssignmentsStatus `json:"assignments,omitempty"`
}

func (*InstanceNetworkInterfaceStatus) DeepCopy

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

func (*InstanceNetworkInterfaceStatus) DeepCopyInto

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

type InstanceRuntimeResources

type InstanceRuntimeResources struct {
	// Full or partial URL of the instance type resource to use for this instance.
	//
	// For example: `datumcloud/d1-standard-2`
	//
	// May be combined with `resources` to allow for custom instance types for
	// instance families that support customization. Instance types which support
	// customization will appear in the form `<project>/<instanceFamily>-custom`.
	//
	// +kubebuilder:validation:Required
	InstanceType string `json:"instanceType"`

	// Describes adjustments to the resources defined by the instance type.
	//
	// +kubebuilder:validation:Optional
	Requests corev1.ResourceList `json:"requests,omitempty"`
}

func (*InstanceRuntimeResources) DeepCopy

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

func (*InstanceRuntimeResources) DeepCopyInto

func (in *InstanceRuntimeResources) DeepCopyInto(out *InstanceRuntimeResources)

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

type InstanceRuntimeSpec

type InstanceRuntimeSpec struct {
	// Resources each instance must be allocated.
	//
	// A sandbox runtime's containers may specify resource requests and
	// limits. When limits are defined on all containers, they MUST consume
	// the entire amount of resources defined here. Some resources, such
	// as a GPU, MUST have at least one container request them so that the
	// device can be presented appropriately.
	//
	// A virtual machine runtime will be provided all requested resources.
	//
	// +kubebuilder:validation:Required
	Resources InstanceRuntimeResources `json:"resources,omitempty"`

	// A sandbox is a managed isolated environment capable of running containers.
	Sandbox *SandboxRuntime `json:"sandbox,omitempty"`

	// A virtual machine is a classical VM environment, booting a full OS provided by the user via an image.
	VirtualMachine *VirtualMachineRuntime `json:"virtualMachine,omitempty"`
}

func (*InstanceRuntimeSpec) DeepCopy

func (in *InstanceRuntimeSpec) DeepCopy() *InstanceRuntimeSpec

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

func (*InstanceRuntimeSpec) DeepCopyInto

func (in *InstanceRuntimeSpec) DeepCopyInto(out *InstanceRuntimeSpec)

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

type InstanceSpec

type InstanceSpec struct {
	// The runtime type of the instance, such as a container sandbox or a VM.
	//
	// +kubebuilder:validation:Required
	Runtime InstanceRuntimeSpec `json:"runtime,omitempty"`

	// Network interface configuration.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	NetworkInterfaces []InstanceNetworkInterface `json:"networkInterfaces,omitempty"`

	Volumes []InstanceVolume `json:"volumes,omitempty"`
}

InstanceSpec defines the desired state of Instance

func (*InstanceSpec) DeepCopy

func (in *InstanceSpec) DeepCopy() *InstanceSpec

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

func (*InstanceSpec) DeepCopyInto

func (in *InstanceSpec) DeepCopyInto(out *InstanceSpec)

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

type InstanceStatus

type InstanceStatus struct {
	// Represents the observations of an instance's current state.
	// Known condition types are: "Available", "Progressing"
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// Network interface information
	NetworkInterfaces []InstanceNetworkInterfaceStatus `json:"networkInterfaces,omitempty"`
}

InstanceStatus defines the observed state of Instance

func (*InstanceStatus) DeepCopy

func (in *InstanceStatus) DeepCopy() *InstanceStatus

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

func (*InstanceStatus) DeepCopyInto

func (in *InstanceStatus) DeepCopyInto(out *InstanceStatus)

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

type InstanceTemplateSpec

type InstanceTemplateSpec struct {
	// Metadata of the instances created from this template
	//
	// +kubebuilder:validation:Optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Describes the desired configuration of an instance
	// +kubebuilder:validation:Required
	Spec InstanceSpec `json:"spec,omitempty"`
}

func (*InstanceTemplateSpec) DeepCopy

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

func (*InstanceTemplateSpec) DeepCopyInto

func (in *InstanceTemplateSpec) DeepCopyInto(out *InstanceTemplateSpec)

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

type InstanceVolume

type InstanceVolume struct {
	// Name is used to reference the volume in `volumeAttachments` for
	// containers and VMs, and will be used to derive the platform resource
	// name when required by prefixing this name with the instance name upon
	// creation.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// The type of volume to create.
	VolumeSource `json:",inline"`
}

func (*InstanceVolume) DeepCopy

func (in *InstanceVolume) DeepCopy() *InstanceVolume

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

func (*InstanceVolume) DeepCopyInto

func (in *InstanceVolume) DeepCopyInto(out *InstanceVolume)

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

type LocalSecretReference

type LocalSecretReference struct {
	// The name of the secret
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

References a secret in the same namespace as the entity defining the reference.

func (*LocalSecretReference) DeepCopy

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

func (*LocalSecretReference) DeepCopyInto

func (in *LocalSecretReference) DeepCopyInto(out *LocalSecretReference)

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

type MetricSpec

type MetricSpec struct {
	// Resource metrics known to Datum.
	//
	// +kubebuilder:validation:Optional
	Resource *ResourceMetricSource `json:"resource,omitempty"`
}

func (*MetricSpec) DeepCopy

func (in *MetricSpec) DeepCopy() *MetricSpec

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

func (*MetricSpec) DeepCopyInto

func (in *MetricSpec) DeepCopyInto(out *MetricSpec)

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

type MetricTarget

type MetricTarget struct {
	// The target value of the metric (as a quantity).
	//
	// +kubebuilder:validation:Optional
	Value *resource.Quantity `json:"value,omitempty"`

	// The target value of the average of the metric across all relevant instances
	// (as a quantity)
	//
	// +kubebuilder:validation:Optional
	AverageValue *resource.Quantity `json:"averageValue,omitempty"`

	// The target value of the average of the
	// resource metric across all relevant instances, represented as a percentage of
	// the requested value of the resource for the instances.
	//
	// +kubebuilder:validation:Optional
	AverageUtilization *int32 `json:"averageUtilization,omitempty"`
}

MetricTarget defines the target value, average value, or average utilization of a specific metric

func (*MetricTarget) DeepCopy

func (in *MetricTarget) DeepCopy() *MetricTarget

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

func (*MetricTarget) DeepCopyInto

func (in *MetricTarget) DeepCopyInto(out *MetricTarget)

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

type NamedPort

type NamedPort struct {
	// The name of the port that can be referenced by other platform features.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// The port number, which can be a value between 1 and 65535.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port"`

	// protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match.
	// If not specified, this field defaults to TCP.
	//
	// +kubebuilder:validation:Optional
	Protocol *corev1.Protocol `json:"protocol,omitempty"`
}

func (*NamedPort) DeepCopy

func (in *NamedPort) DeepCopy() *NamedPort

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

func (*NamedPort) DeepCopyInto

func (in *NamedPort) DeepCopyInto(out *NamedPort)

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

type ResourceMetricSource

type ResourceMetricSource struct {
	// The name of the resource in question.
	//
	// +kubebuilder:validation:Required
	Name k8scorev1.ResourceName `json:"name"`

	// The target value for the given metric
	//
	// +kubebuilder:validation:Required
	Target MetricTarget `json:"target"`
}

func (*ResourceMetricSource) DeepCopy

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

func (*ResourceMetricSource) DeepCopyInto

func (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource)

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

type SandboxContainer

type SandboxContainer struct {
	// The name of the container.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// The fully qualified container image name.
	//
	// +kubebuilder:validation:Required
	Image string `json:"image"`

	// List of environment variables to set in the container.
	//
	// +kubebuilder:validation:Optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=name
	// TODO(jreese) can't use corev1.EnvVar due to EnvVarSource being k8s specific,
	// so replicate the structure here too.
	Env []corev1.EnvVar `json:"env,omitempty"`

	// The resource requirements for the container, such as CPU, memory, and GPUs.
	//
	// +kubebuilder:validation:Optional
	Resources *ContainerResourceRequirements `json:"resources,omitempty"`

	// A list of volumes to attach to the container.
	//
	// +kubebuilder:validation:Optional
	VolumeAttachments []VolumeAttachment `json:"volumeAttachments,omitempty"`

	// A list of named ports for the container.
	//
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=name
	Ports []NamedPort `json:"ports,omitempty"`
}

func (*SandboxContainer) DeepCopy

func (in *SandboxContainer) DeepCopy() *SandboxContainer

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

func (*SandboxContainer) DeepCopyInto

func (in *SandboxContainer) DeepCopyInto(out *SandboxContainer)

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

type SandboxRuntime

type SandboxRuntime struct {
	// A list of containers to run within the sandbox.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	// +listType=map
	// +listMapKey=name
	Containers []SandboxContainer `json:"containers,omitempty"`

	// An optional list of secrets in the same namespace to use for pulling images
	// used by the instance.
	//
	// +kubebuilder:validation:Optional
	ImagePullSecrets []LocalSecretReference `json:"imagePullSecrets,omitempty"`
}

func (*SandboxRuntime) DeepCopy

func (in *SandboxRuntime) DeepCopy() *SandboxRuntime

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

func (*SandboxRuntime) DeepCopyInto

func (in *SandboxRuntime) DeepCopyInto(out *SandboxRuntime)

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

type VirtualMachineRuntime

type VirtualMachineRuntime struct {
	// A list of volumes to attach to the VM.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	VolumeAttachments []VolumeAttachment `json:"volumeAttachments,omitempty"`

	// A list of named ports for the virtual machine.
	//
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=name
	Ports []NamedPort `json:"ports,omitempty"`
}

func (*VirtualMachineRuntime) DeepCopy

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

func (*VirtualMachineRuntime) DeepCopyInto

func (in *VirtualMachineRuntime) DeepCopyInto(out *VirtualMachineRuntime)

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

type VolumeAttachment

type VolumeAttachment struct {
	// The name of the volume to attach as defined in InstanceSpec.Volumes.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// The path to mount the volume inside the guest OS.
	//
	// The referenced volume must be populated with a filesystem to use this
	// feature.
	//
	// For VM based instances, this functionality requires certain capabilities
	// to be annotated on the boot image, such as cloud-init.
	MountPath *string `json:"mountPath,omitempty"`
}

func (*VolumeAttachment) DeepCopy

func (in *VolumeAttachment) DeepCopy() *VolumeAttachment

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

func (*VolumeAttachment) DeepCopyInto

func (in *VolumeAttachment) DeepCopyInto(out *VolumeAttachment)

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

type VolumeSource

type VolumeSource struct {
	// A persistent disk backed volume.
	Disk *DiskTemplateVolumeSource `json:"disk,omitempty"`

	// A configMap that should populate this volume
	ConfigMap *corev1.ConfigMapVolumeSource `json:"configMap,omitempty"`

	// A secret that should populate this volume
	// TODO(jreese) consider our own struct to align with configMap.name vs secret.secretName
	Secret *corev1.SecretVolumeSource `json:"secret,omitempty"`
}

func (*VolumeSource) DeepCopy

func (in *VolumeSource) DeepCopy() *VolumeSource

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

func (*VolumeSource) DeepCopyInto

func (in *VolumeSource) DeepCopyInto(out *VolumeSource)

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

type Workload

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

	// +kubebuilder:validation:Required
	Spec   WorkloadSpec   `json:"spec,omitempty"`
	Status WorkloadStatus `json:"status,omitempty"`
}

Workload is the Schema for the workloads API +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Available",type=string,JSONPath=`.status.conditions[?(@.type=="Available")].status` +kubebuilder:printcolumn:name="Reason",type=string,JSONPath=`.status.conditions[?(@.type=="Available")].reason`

func (*Workload) DeepCopy

func (in *Workload) DeepCopy() *Workload

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

func (*Workload) DeepCopyInto

func (in *Workload) DeepCopyInto(out *Workload)

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

func (*Workload) DeepCopyObject

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

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

type WorkloadDeployment

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

	Spec   WorkloadDeploymentSpec   `json:"spec,omitempty"`
	Status WorkloadDeploymentStatus `json:"status,omitempty"`
}

WorkloadDeployment is the Schema for the workloaddeployments API +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Location Namespce",type=string,JSONPath=`.status.location.namespace` +kubebuilder:printcolumn:name="Location Name",type=string,JSONPath=`.status.location.name` +kubebuilder:printcolumn:name="Available",type=string,JSONPath=`.status.conditions[?(@.type=="Available")].status` +kubebuilder:printcolumn:name="Reason",type=string,JSONPath=`.status.conditions[?(@.type=="Available")].reason`

func (*WorkloadDeployment) DeepCopy

func (in *WorkloadDeployment) DeepCopy() *WorkloadDeployment

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

func (*WorkloadDeployment) DeepCopyInto

func (in *WorkloadDeployment) DeepCopyInto(out *WorkloadDeployment)

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

func (*WorkloadDeployment) DeepCopyObject

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

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

type WorkloadDeploymentList

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

WorkloadDeploymentList contains a list of WorkloadDeployment

func (*WorkloadDeploymentList) DeepCopy

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

func (*WorkloadDeploymentList) DeepCopyInto

func (in *WorkloadDeploymentList) DeepCopyInto(out *WorkloadDeploymentList)

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

func (*WorkloadDeploymentList) DeepCopyObject

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

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

type WorkloadDeploymentSpec

type WorkloadDeploymentSpec struct {
	// The workload that a deployment belongs to
	//
	// +kubebuilder:validation:Required
	WorkloadRef WorkloadReference `json:"workloadRef"`

	// The placement in the workload which is driving a deployment
	//
	// +kubebuilder:validation:Required
	PlacementName string `json:"placementName"`

	// TODO(jreese) think through how to structure this a bit better for when
	// deployments can be scheduled in ways other than just a city code.
	//
	// +kubebuilder:validation:Required
	CityCode string `json:"cityCode"`

	// Defines settings for each instance.
	//
	// +kubebuilder:validation:Required
	Template InstanceTemplateSpec `json:"template,omitempty"`

	// Scale settings such as minimum and maximum replica counts.
	//
	// +kubebuilder:validation:Required
	ScaleSettings HorizontalScaleSettings `json:"scaleSettings"`
}

WorkloadDeploymentSpec defines the desired state of WorkloadDeployment

func (*WorkloadDeploymentSpec) DeepCopy

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

func (*WorkloadDeploymentSpec) DeepCopyInto

func (in *WorkloadDeploymentSpec) DeepCopyInto(out *WorkloadDeploymentSpec)

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

type WorkloadDeploymentStatus

type WorkloadDeploymentStatus struct {
	// The location which the deployment has been scheduled to
	//
	// +kubebuilder:validation:Optional
	Location *networkingv1alpha.LocationReference `json:"location,omitempty"`

	// Represents the observations of a deployment's current state.
	// Known condition types are: "Available", "Progressing"
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// The number of instances created by a deployment
	Replicas int32 `json:"replicas"`

	// The number of instances created by a deployment and have the latest
	// deployment generation settings applied.
	CurrentReplicas int32 `json:"currentReplicas"`

	// The desired number of instances to be managed by a deployment.
	DesiredReplicas int32 `json:"desiredReplicas"`
}

WorkloadDeploymentStatus defines the observed state of WorkloadDeployment

func (*WorkloadDeploymentStatus) DeepCopy

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

func (*WorkloadDeploymentStatus) DeepCopyInto

func (in *WorkloadDeploymentStatus) DeepCopyInto(out *WorkloadDeploymentStatus)

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

type WorkloadGateway

type WorkloadGateway struct {
	// +kubebuilder:validation:Required
	Template WorkloadGatewayTemplate `json:"template"`

	// +kubebuilder:validation:Optional
	TCPRoutes []gatewayv1alpha2.TCPRouteSpec `json:"tcpRoutes,omitempty"`
}

func (*WorkloadGateway) DeepCopy

func (in *WorkloadGateway) DeepCopy() *WorkloadGateway

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

func (*WorkloadGateway) DeepCopyInto

func (in *WorkloadGateway) DeepCopyInto(out *WorkloadGateway)

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

type WorkloadGatewayStatus

type WorkloadGatewayStatus struct {
	gatewayv1.GatewayStatus `json:",inline"`
}

func (*WorkloadGatewayStatus) DeepCopy

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

func (*WorkloadGatewayStatus) DeepCopyInto

func (in *WorkloadGatewayStatus) DeepCopyInto(out *WorkloadGatewayStatus)

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

type WorkloadGatewayTemplate

type WorkloadGatewayTemplate struct {
	// Workload specific gateway
	//
	// +kubebuilder:validation:Optional
	Spec gatewayv1.GatewaySpec `json:"spec"`
}

func (*WorkloadGatewayTemplate) DeepCopy

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

func (*WorkloadGatewayTemplate) DeepCopyInto

func (in *WorkloadGatewayTemplate) DeepCopyInto(out *WorkloadGatewayTemplate)

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

type WorkloadList

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

WorkloadList contains a list of Workload

func (*WorkloadList) DeepCopy

func (in *WorkloadList) DeepCopy() *WorkloadList

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

func (*WorkloadList) DeepCopyInto

func (in *WorkloadList) DeepCopyInto(out *WorkloadList)

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

func (*WorkloadList) DeepCopyObject

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

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

type WorkloadPlacement

type WorkloadPlacement struct {
	// The name of the placement
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// A list of city codes that define where the instances should be deployed.
	//
	// +kubebuilder:validation:Required
	CityCodes []string `json:"cityCodes,omitempty"`

	// Scale settings such as minimum and maximum replica counts.
	//
	// +kubebuilder:validation:Required
	ScaleSettings HorizontalScaleSettings `json:"scaleSettings"`
}

func (*WorkloadPlacement) DeepCopy

func (in *WorkloadPlacement) DeepCopy() *WorkloadPlacement

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

func (*WorkloadPlacement) DeepCopyInto

func (in *WorkloadPlacement) DeepCopyInto(out *WorkloadPlacement)

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

type WorkloadPlacementStatus

type WorkloadPlacementStatus struct {
	// The name of the placement
	Name string `json:"name"`

	// Represents the observations of a placement's current state.
	// Known condition types are: "Available", "Progressing"
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// The number of instances created by a placement
	Replicas int32 `json:"replicas"`

	// The number of instances created by a placement and have the latest
	// workload generation settings applied.
	CurrentReplicas int32 `json:"currentReplicas"`

	// The desired number of instances to be managed by a placement.
	DesiredReplicas int32 `json:"desiredReplicas"`
}

func (*WorkloadPlacementStatus) DeepCopy

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

func (*WorkloadPlacementStatus) DeepCopyInto

func (in *WorkloadPlacementStatus) DeepCopyInto(out *WorkloadPlacementStatus)

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

type WorkloadReference

type WorkloadReference struct {
	// The name of the workload
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// UID of the Workload
	//
	// +kubebuilder:validation:Required
	UID types.UID `json:"uid"`
}

func (*WorkloadReference) DeepCopy

func (in *WorkloadReference) DeepCopy() *WorkloadReference

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

func (*WorkloadReference) DeepCopyInto

func (in *WorkloadReference) DeepCopyInto(out *WorkloadReference)

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

type WorkloadSpec

type WorkloadSpec struct {
	// Defines settings for each instance.
	//
	// +kubebuilder:validation:Required
	Template InstanceTemplateSpec `json:"template,omitempty"`

	// Defines where instances should be deployed, and at what scope a deployment
	// will live in, such as in a city, or region.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	Placements []WorkloadPlacement `json:"placements,omitempty"`

	// Workload specific gateway
	//
	// TODO(jreese) make plural?
	//
	// +kubebuilder:validation:Optional
	Gateway *WorkloadGateway `json:"gateway,omitempty"`
}

WorkloadSpec defines the desired state of Workload

func (*WorkloadSpec) DeepCopy

func (in *WorkloadSpec) DeepCopy() *WorkloadSpec

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

func (*WorkloadSpec) DeepCopyInto

func (in *WorkloadSpec) DeepCopyInto(out *WorkloadSpec)

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

type WorkloadStatus

type WorkloadStatus struct {
	// Represents the observations of a workload's current state.
	// Known condition types are: "Available", "Progressing"
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// The number of instances created by a placement
	Replicas int32 `json:"replicas"`

	// The number of instances created by a placement and have the latest
	// workload generation settings applied.
	CurrentReplicas int32 `json:"currentReplicas"`

	// The desired number of instances to be managed by a placement.
	DesiredReplicas int32 `json:"desiredReplicas"`

	// The current status of placemetns in a workload.
	Placements []WorkloadPlacementStatus `json:"placements,omitempty"`

	// The status of the workload gateway if configured.
	Gateway *WorkloadGatewayStatus `json:"gateway,omitempty"`
}

WorkloadStatus defines the observed state of Workload

func (*WorkloadStatus) DeepCopy

func (in *WorkloadStatus) DeepCopy() *WorkloadStatus

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

func (*WorkloadStatus) DeepCopyInto

func (in *WorkloadStatus) DeepCopyInto(out *WorkloadStatus)

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