v1alpha1

package
v0.2.5-alpha.6 Latest Latest
Warning

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

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

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the robot v1alpha1 API group +kubebuilder:object:generate=true +groupName=robot.roboscale.io

Index

Constants

This section is empty.

Variables

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

SchemeGroupVersion is group version used to register these objects.

Functions

func DefaultRepositoryPaths

func DefaultRepositoryPaths(r *Robot)

func Resource

func Resource(resource string) schema.GroupResource

Types

type AttachedBuildObject

type AttachedBuildObject struct {
	// Reference to the BuildManager instance.
	Reference corev1.ObjectReference `json:"reference,omitempty"`
	// Status of attached BuildManager.
	Status BuildManagerStatus `json:"status,omitempty"`
}

func (*AttachedBuildObject) DeepCopy

func (in *AttachedBuildObject) DeepCopy() *AttachedBuildObject

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

func (*AttachedBuildObject) DeepCopyInto

func (in *AttachedBuildObject) DeepCopyInto(out *AttachedBuildObject)

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

type AttachedDevObject

type AttachedDevObject struct {
	// Reference to the RobotDevSuite instance.
	Reference corev1.ObjectReference `json:"reference,omitempty"`
	// Status of attached RobotDevSuite.
	Status RobotDevSuiteStatus `json:"status,omitempty"`
}

func (*AttachedDevObject) DeepCopy

func (in *AttachedDevObject) DeepCopy() *AttachedDevObject

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

func (*AttachedDevObject) DeepCopyInto

func (in *AttachedDevObject) DeepCopyInto(out *AttachedDevObject)

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

type AttachedLaunchObject

type AttachedLaunchObject struct {
	// Reference to the LaunchManager instance.
	Reference corev1.ObjectReference `json:"reference,omitempty"`
	// Status of attached LaunchManager.
	Status LaunchManagerStatus `json:"status,omitempty"`
}

func (*AttachedLaunchObject) DeepCopy

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

func (*AttachedLaunchObject) DeepCopyInto

func (in *AttachedLaunchObject) DeepCopyInto(out *AttachedLaunchObject)

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

type BridgeDistro

type BridgeDistro struct {
	// If `true`, resources and workloads are created by ROSBridge.
	Enabled bool `json:"enabled,omitempty"`
	// ROS distribution for bridge.
	Distro ROSDistro `json:"distro,omitempty"`
}

func (*BridgeDistro) DeepCopy

func (in *BridgeDistro) DeepCopy() *BridgeDistro

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

func (*BridgeDistro) DeepCopyInto

func (in *BridgeDistro) DeepCopyInto(out *BridgeDistro)

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

type BridgePhase

type BridgePhase string
const (
	BridgePhaseCreatingService BridgePhase = "CreatingService"
	BridgePhaseCreatingPod     BridgePhase = "CreatingPod"
	BridgePhaseReady           BridgePhase = "Ready"
	BridgePhaseDeletingPod     BridgePhase = "DeletingPod"
	BridgePhaseDeletingService BridgePhase = "DeletingService"
)

type BuildManager

type BuildManager struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Specification of the desired behavior of the BuildManager.
	Spec BuildManagerSpec `json:"spec,omitempty"`
	// Most recently observed status of the BuildManager.
	Status BuildManagerStatus `json:"status,omitempty"`
}

BuildManager is the Schema for the buildmanagers API

func (*BuildManager) DeepCopy

func (in *BuildManager) DeepCopy() *BuildManager

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

func (*BuildManager) DeepCopyInto

func (in *BuildManager) DeepCopyInto(out *BuildManager)

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

func (*BuildManager) DeepCopyObject

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

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

func (*BuildManager) Default

func (r *BuildManager) Default()

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

func (*BuildManager) GetConfigMapMetadata

func (buildmanager *BuildManager) GetConfigMapMetadata() *types.NamespacedName

func (*BuildManager) SetupWebhookWithManager

func (r *BuildManager) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*BuildManager) ValidateCreate

func (r *BuildManager) ValidateCreate() error

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

func (*BuildManager) ValidateDelete

func (r *BuildManager) ValidateDelete() error

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

func (*BuildManager) ValidateUpdate

func (r *BuildManager) ValidateUpdate(old runtime.Object) error

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

type BuildManagerList

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

BuildManagerList contains a list of BuildManager

func (*BuildManagerList) DeepCopy

func (in *BuildManagerList) DeepCopy() *BuildManagerList

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

func (*BuildManagerList) DeepCopyInto

func (in *BuildManagerList) DeepCopyInto(out *BuildManagerList)

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

func (*BuildManagerList) DeepCopyObject

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

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

type BuildManagerPhase

type BuildManagerPhase string
const (
	BuildManagerRobotNotFound            BuildManagerPhase = "RobotNotFound"
	BuildManagerWaitingForOtherResources BuildManagerPhase = "WaitingForOtherResources"
	BuildManagerCreatingConfigMap        BuildManagerPhase = "CreatingConfigMap"
	BuildManagerBuildingRobot            BuildManagerPhase = "BuildingRobot"
	BuildManagerReady                    BuildManagerPhase = "Ready"
	BuildManagerFailed                   BuildManagerPhase = "Failed"
	BuildManagerDeactivating             BuildManagerPhase = "Deactivating"
	BuildManagerInactive                 BuildManagerPhase = "Inactive"
)

type BuildManagerSpec

type BuildManagerSpec struct {
	// Defines the building steps.
	Steps []Step `json:"steps,omitempty"`
}

BuildManagerSpec defines the desired state of BuildManager.

func (*BuildManagerSpec) DeepCopy

func (in *BuildManagerSpec) DeepCopy() *BuildManagerSpec

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

func (*BuildManagerSpec) DeepCopyInto

func (in *BuildManagerSpec) DeepCopyInto(out *BuildManagerSpec)

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

type BuildManagerStatus

type BuildManagerStatus struct {
	// Phase of BuildManager.
	Phase BuildManagerPhase `json:"phase,omitempty"`
	// Indicates if the BuildManager is currently executing it's jobs.
	Active bool `json:"active,omitempty"`
	// Status of the ConfigMap that holds scripts.
	// If a script is specified inside `.spec.steps[k]`, they are mounted to the step jobs via this ConfigMap.
	ScriptConfigMapStatus OwnedResourceStatus `json:"scriptConfigMapStatus,omitempty"`
	// Statuses of the build steps.
	Steps []StepStatus `json:"steps,omitempty"`
}

BuildManagerStatus defines the observed state of BuildManager.

func (*BuildManagerStatus) DeepCopy

func (in *BuildManagerStatus) DeepCopy() *BuildManagerStatus

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

func (*BuildManagerStatus) DeepCopyInto

func (in *BuildManagerStatus) DeepCopyInto(out *BuildManagerStatus)

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

type ConnectionInfo

type ConnectionInfo struct {
	// IP of the discovery server.
	// IP is being obtained from the DNS name, which is being built according to the discovery server configuration.
	IP string `json:"ip,omitempty"`
	// Name of the config map that holds discovery server configuration.
	ConfigMapName string `json:"configMapName,omitempty"`
}

func (*ConnectionInfo) DeepCopy

func (in *ConnectionInfo) DeepCopy() *ConnectionInfo

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

func (*ConnectionInfo) DeepCopyInto

func (in *ConnectionInfo) DeepCopyInto(out *ConnectionInfo)

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

type DiscoveryServer

type DiscoveryServer struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Specification of the desired behavior of the DiscoveryServer.
	Spec DiscoveryServerSpec `json:"spec,omitempty"`
	// Most recently observed status of the DiscoveryServer.
	Status DiscoveryServerStatus `json:"status,omitempty"`
}

DiscoveryServer is a custom resource that connects Robots and Fleets both locally and geoghraphically in DDS (UDP multicast) level.

func (*DiscoveryServer) DeepCopy

func (in *DiscoveryServer) DeepCopy() *DiscoveryServer

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

func (*DiscoveryServer) DeepCopyInto

func (in *DiscoveryServer) DeepCopyInto(out *DiscoveryServer)

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

func (*DiscoveryServer) DeepCopyObject

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

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

func (*DiscoveryServer) Default added in v0.2.1

func (r *DiscoveryServer) Default()

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

func (*DiscoveryServer) GetDiscoveryServerConfigMapMetadata

func (discoveryServer *DiscoveryServer) GetDiscoveryServerConfigMapMetadata() *types.NamespacedName

func (*DiscoveryServer) GetDiscoveryServerPodMetadata

func (discoveryServer *DiscoveryServer) GetDiscoveryServerPodMetadata() *types.NamespacedName

func (*DiscoveryServer) GetDiscoveryServerServiceMetadata

func (discoveryServer *DiscoveryServer) GetDiscoveryServerServiceMetadata() *types.NamespacedName

func (*DiscoveryServer) SetupWebhookWithManager added in v0.2.1

func (r *DiscoveryServer) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*DiscoveryServer) ValidateCreate added in v0.2.1

func (r *DiscoveryServer) ValidateCreate() error

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

func (*DiscoveryServer) ValidateDelete added in v0.2.1

func (r *DiscoveryServer) ValidateDelete() error

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

func (*DiscoveryServer) ValidateUpdate added in v0.2.1

func (r *DiscoveryServer) ValidateUpdate(old runtime.Object) error

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

type DiscoveryServerInstanceStatus

type DiscoveryServerInstanceStatus struct {
	// Generic status for any owned resource.
	Resource OwnedResourceStatus `json:"resource,omitempty"`
	// Status of the DiscoveryServer instance.
	Status DiscoveryServerStatus `json:"status,omitempty"`
}

func (*DiscoveryServerInstanceStatus) DeepCopy

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

func (*DiscoveryServerInstanceStatus) DeepCopyInto

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

type DiscoveryServerInstanceType

type DiscoveryServerInstanceType string

Instance type can be either `Server` or `Client`.

const (
	DiscoveryServerInstanceTypeServer DiscoveryServerInstanceType = "Server"
	DiscoveryServerInstanceTypeClient DiscoveryServerInstanceType = "Client"
)

type DiscoveryServerList

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

DiscoveryServerList contains a list of DiscoveryServer

func (*DiscoveryServerList) DeepCopy

func (in *DiscoveryServerList) DeepCopy() *DiscoveryServerList

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

func (*DiscoveryServerList) DeepCopyInto

func (in *DiscoveryServerList) DeepCopyInto(out *DiscoveryServerList)

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

func (*DiscoveryServerList) DeepCopyObject

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

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

type DiscoveryServerPhase

type DiscoveryServerPhase string
const (
	DiscoveryServerPhaseCreatingService       DiscoveryServerPhase = "CreatingService"
	DiscoveryServerPhaseCreatingPod           DiscoveryServerPhase = "CreatingPod"
	DiscoveryServerPhaseCreatingServiceExport DiscoveryServerPhase = "CreatingServiceExport"
	DiscoveryServerPhaseCreatingConfigMap     DiscoveryServerPhase = "CreatingConfigMap"
	DiscoveryServerPhaseReady                 DiscoveryServerPhase = "Ready"
	DiscoveryServerPhaseDeletingConfigMap     DiscoveryServerPhase = "DeletingConfigMap"
	DiscoveryServerPhaseDeletingPod           DiscoveryServerPhase = "DeletingPod"
	DiscoveryServerPhaseDeletingService       DiscoveryServerPhase = "DeletingService"
)

type DiscoveryServerSpec

type DiscoveryServerSpec struct {
	// Instance type can be either `Server` or `Client`.
	// If `Server`, instance creates discovery server resources and workloads.
	// Other `Client` instances can connect to the `Server` instance.
	// If `Client`, instance tries to connect a `Server` instance and hold `Server` configuration in a ConfigMap.
	Type DiscoveryServerInstanceType `json:"type,omitempty"`
	// Reference to the `Server` instance.
	// It is used if `.spec.type` is `Client`.
	// Referenced object can be provisioned in another cluster.
	Reference corev1.ObjectReference `json:"reference,omitempty"`
	// Cloud instance name that holds DiscoveryServer instance with `Server` type.
	Cluster string `json:"cluster,omitempty"`
	// If instance type is `Server`, it can be an arbitrary value.
	// If instance type is `Client`, it should be the same with Server's hostname.
	// Used for getting Server's IP over DNS.
	Hostname string `json:"hostname,omitempty"`
	// If instance type is `Server`, it can be an arbitrary value.
	// If instance type is `Client`, it should be the same with Server's subdomain.
	// Used for getting Server's IP over DNS.
	Subdomain string `json:"subdomain,omitempty"`
	// Image for discovery server. Recommended to use images which has configured ROS 2.
	Image string `json:"image,omitempty"`
	// Entrypoint of the DiscoveryServer. Applied if the instance type is `Server`.
	Args []string `json:"args,omitempty"`
}

DiscoveryServerSpec defines the desired state of DiscoveryServer.

func (*DiscoveryServerSpec) DeepCopy

func (in *DiscoveryServerSpec) DeepCopy() *DiscoveryServerSpec

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

func (*DiscoveryServerSpec) DeepCopyInto

func (in *DiscoveryServerSpec) DeepCopyInto(out *DiscoveryServerSpec)

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

type DiscoveryServerStatus

type DiscoveryServerStatus struct {
	// Phase of the DiscoveryServer.
	Phase DiscoveryServerPhase `json:"phase,omitempty"`
	// Status of the DiscoveryServer service.
	ServiceStatus OwnedResourceStatus `json:"serviceStatus,omitempty"`
	// Status of the DiscoveryServer ServiceExport.
	ServiceExportStatus OwnedResourceStatus `json:"serviceExportStatus,omitempty"`
	// Status of the DiscoveryServer pod.
	PodStatus OwnedPodStatus `json:"podStatus,omitempty"`
	// Status of the DiscoveryServer config map.
	ConfigMapStatus OwnedResourceStatus `json:"configMapStatus,omitempty"`
	// Connection information.
	ConnectionInfo ConnectionInfo `json:"connectionInfo,omitempty"`
}

DiscoveryServerStatus defines the observed state of DiscoveryServer.

func (*DiscoveryServerStatus) DeepCopy

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

func (*DiscoveryServerStatus) DeepCopyInto

func (in *DiscoveryServerStatus) DeepCopyInto(out *DiscoveryServerStatus)

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

type GPUMetrics

type GPUMetrics struct {
	// MetricsExporter watches volatile GPU usage in the host machine
	// if it's set to `true`.
	Track bool `json:"track,omitempty"`
	// Watching latency.
	Interval int `json:"interval,omitempty"`
}

func (*GPUMetrics) DeepCopy

func (in *GPUMetrics) DeepCopy() *GPUMetrics

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

func (*GPUMetrics) DeepCopyInto

func (in *GPUMetrics) DeepCopyInto(out *GPUMetrics)

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

type GPUUtilizationStatus

type GPUUtilizationStatus struct {
	// Volatile GPU utilization. Shows a percentage gathered from `nvidia-smi` command.
	Utilization string `json:"utilization,omitempty"`
	// Last update time.
	LastUpdateTimestamp string `json:"lastUpdateTimestamp,omitempty"`
}

func (*GPUUtilizationStatus) DeepCopy

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

func (*GPUUtilizationStatus) DeepCopyInto

func (in *GPUUtilizationStatus) DeepCopyInto(out *GPUUtilizationStatus)

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

type JobPhase

type JobPhase string
const (
	JobActive    JobPhase = "Active"
	JobSucceeded JobPhase = "Succeeded"
	JobFailed    JobPhase = "Failed"
)

type Launch

type Launch struct {
	// Cluster selector. If empty, launch pod will be created.
	// If `robolaunch.io/cloud-instance` is specified only, launch will be running on the cloud instance.
	// If `robolaunch.io/physical-instance` is specified only, launch will be running on the physical instance.
	Selector map[string]string `json:"selector,omitempty"`
	// Name of the workspace.
	// Should be selected among the existing workspaces in WorkspaceManager's manifests.
	// +kubebuilder:validation:Required
	Workspace string `json:"workspace"`
	// Name of the repository which includes the launchfile.
	// +kubebuilder:validation:Required
	Repository string `json:"repository"`
	// ROS 2 namespacing. May not be suitable for all launchfiles.
	// If used, all the node names and topic names should be defined relative, not absolute.
	// (eg. `cmd_vel` instead of /cmd_vel“)
	// +kubebuilder:validation:Required
	Namespacing bool `json:"namespacing,omitempty"`
	// Additional environment variables to set when launching ROS nodes.
	Env []corev1.EnvVar `json:"env,omitempty"`
	// Path to launchfile in repository. (eg. `linorobot/linorobot_gazebo/launch.py`)
	// +kubebuilder:validation:Required
	LaunchFilePath string `json:"launchFilePath"`
	// Launch parameters.
	Parameters map[string]string `json:"parameters,omitempty"`
	// Command or script to run just before node's execution.
	Prelaunch Prelaunch `json:"prelaunch,omitempty"`
	// Launch container privilege.
	Privileged bool `json:"privileged,omitempty"`
	// Launch container resource limits.
	Resources Resources `json:"resources,omitempty"`
}

Launch description of a repository.

func (*Launch) DeepCopy

func (in *Launch) DeepCopy() *Launch

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

func (*Launch) DeepCopyInto

func (in *Launch) DeepCopyInto(out *Launch)

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

type LaunchManager

type LaunchManager struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Specification of the desired behavior of the LaunchManager.
	Spec LaunchManagerSpec `json:"spec,omitempty"`
	// Most recently observed status of the LaunchManager.
	Status LaunchManagerStatus `json:"status,omitempty"`
}

LaunchManager is the Schema for the launchmanagers API

func (*LaunchManager) DeepCopy

func (in *LaunchManager) DeepCopy() *LaunchManager

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

func (*LaunchManager) DeepCopyInto

func (in *LaunchManager) DeepCopyInto(out *LaunchManager)

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

func (*LaunchManager) DeepCopyObject

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

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

func (*LaunchManager) Default

func (r *LaunchManager) Default()

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

func (*LaunchManager) GetLaunchPodMetadata

func (launchmanager *LaunchManager) GetLaunchPodMetadata() *types.NamespacedName

func (*LaunchManager) SetupWebhookWithManager

func (r *LaunchManager) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*LaunchManager) ValidateCreate

func (r *LaunchManager) ValidateCreate() error

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

func (*LaunchManager) ValidateDelete

func (r *LaunchManager) ValidateDelete() error

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

func (*LaunchManager) ValidateUpdate

func (r *LaunchManager) ValidateUpdate(old runtime.Object) error

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

type LaunchManagerList

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

LaunchManagerList contains a list of LaunchManager

func (*LaunchManagerList) DeepCopy

func (in *LaunchManagerList) DeepCopy() *LaunchManagerList

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

func (*LaunchManagerList) DeepCopyInto

func (in *LaunchManagerList) DeepCopyInto(out *LaunchManagerList)

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

func (*LaunchManagerList) DeepCopyObject

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

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

type LaunchManagerPhase

type LaunchManagerPhase string
const (
	LaunchManagerPhaseRobotNotFound LaunchManagerPhase = "RobotNotFound"
	LaunchManagerPhaseCreatingPod   LaunchManagerPhase = "CreatingPod"
	LaunchManagerPhaseLaunching     LaunchManagerPhase = "Launching"
	LaunchManagerPhaseReady         LaunchManagerPhase = "Ready"
	LaunchManagerPhaseDeactivating  LaunchManagerPhase = "Deactivating"
	LaunchManagerPhaseInactive      LaunchManagerPhase = "Inactive"
)

type LaunchManagerSpec

type LaunchManagerSpec struct {
	// Launch processes connects an X11 socket if it's set to `true` and a target RobotVDI resource is set in labels with key `robolaunch.io/target-vdi`.
	// Applications that requires GUI can be executed such as rViz.
	Display bool `json:"display,omitempty"`
	// Launch descriptions.
	// Every object defined here generates a `ros2 launch` command in the specified workspace.
	Launch map[string]Launch `json:"launch,omitempty"`
	// Every object defined here generates a `ros2 run` command in the specified workspace.
	Run map[string]Run `json:"run,omitempty"`
}

LaunchManagerSpec defines the desired state of LaunchManager.

func (*LaunchManagerSpec) DeepCopy

func (in *LaunchManagerSpec) DeepCopy() *LaunchManagerSpec

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

func (*LaunchManagerSpec) DeepCopyInto

func (in *LaunchManagerSpec) DeepCopyInto(out *LaunchManagerSpec)

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

type LaunchManagerStatus

type LaunchManagerStatus struct {
	// Phase of LaunchManager.
	Phase LaunchManagerPhase `json:"phase,omitempty"`
	// Indicates if the LaunchManager is attached to a Robot and actively running.
	Active bool `json:"active,omitempty"`
	// Collective statuses of launch pod and launch objects.
	LaunchPodStatus LaunchPodStatus `json:"launchPodStatus,omitempty"`
}

LaunchManagerStatus defines the observed state of LaunchManager.

func (*LaunchManagerStatus) DeepCopy

func (in *LaunchManagerStatus) DeepCopy() *LaunchManagerStatus

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

func (*LaunchManagerStatus) DeepCopyInto

func (in *LaunchManagerStatus) DeepCopyInto(out *LaunchManagerStatus)

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

type LaunchPodStatus

type LaunchPodStatus struct {
	// Launch pod status. Every LaunchManager creates one pod if active.
	Status OwnedPodStatus `json:"status,omitempty"`
	// Status of launch objects. Every launch object generates a `ros2 launch` command that will run as an entrypoint in a container.
	LaunchStatus map[string]LaunchStatus `json:"launchStatus,omitempty"`
}

func (*LaunchPodStatus) DeepCopy

func (in *LaunchPodStatus) DeepCopy() *LaunchPodStatus

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

func (*LaunchPodStatus) DeepCopyInto

func (in *LaunchPodStatus) DeepCopyInto(out *LaunchPodStatus)

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

type LaunchStatus

type LaunchStatus struct {
	// Inditaces if the launch process are actively running on cluster.
	// It may not be selected by launch cluster selectors.
	Active bool `json:"active,omitempty"`
	// Statuses of the containers of pods owned by LaunchManager.
	ContainerStatus corev1.ContainerStatus `json:"containerStatus,omitempty"`
}

func (*LaunchStatus) DeepCopy

func (in *LaunchStatus) DeepCopy() *LaunchStatus

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

func (*LaunchStatus) DeepCopyInto

func (in *LaunchStatus) DeepCopyInto(out *LaunchStatus)

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

type MetricsExporter

type MetricsExporter struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Specification of the desired behavior of the MetricsExporter.
	Spec MetricsExporterSpec `json:"spec,omitempty"`
	// Most recently observed status of the MetricsExporter.
	Status MetricsExporterStatus `json:"status,omitempty"`
}

MetricsExporter collects metrics from host machine and expose them from the Kubernetes API.

func (*MetricsExporter) DeepCopy

func (in *MetricsExporter) DeepCopy() *MetricsExporter

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

func (*MetricsExporter) DeepCopyInto

func (in *MetricsExporter) DeepCopyInto(out *MetricsExporter)

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

func (*MetricsExporter) DeepCopyObject

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

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

func (*MetricsExporter) GetMetricsExporterPodMetadata

func (metricseexporter *MetricsExporter) GetMetricsExporterPodMetadata() *types.NamespacedName

func (*MetricsExporter) GetMetricsExporterRoleBindingMetadata

func (metricseexporter *MetricsExporter) GetMetricsExporterRoleBindingMetadata() *types.NamespacedName

func (*MetricsExporter) GetMetricsExporterRoleMetadata

func (metricseexporter *MetricsExporter) GetMetricsExporterRoleMetadata() *types.NamespacedName

func (*MetricsExporter) GetMetricsExporterServiceAccountMetadata

func (metricseexporter *MetricsExporter) GetMetricsExporterServiceAccountMetadata() *types.NamespacedName

type MetricsExporterList

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

MetricsExporterList contains a list of MetricsExporter

func (*MetricsExporterList) DeepCopy

func (in *MetricsExporterList) DeepCopy() *MetricsExporterList

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

func (*MetricsExporterList) DeepCopyInto

func (in *MetricsExporterList) DeepCopyInto(out *MetricsExporterList)

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

func (*MetricsExporterList) DeepCopyObject

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

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

type MetricsExporterPhase

type MetricsExporterPhase string
const (
	MetricsExporterPhaseCreatingRole           MetricsExporterPhase = "CreatingRole"
	MetricsExporterPhaseCreatingServiceAccount MetricsExporterPhase = "CreatingServiceAccount"
	MetricsExporterPhaseCreatingRoleBinding    MetricsExporterPhase = "CreatingRoleBinding"
	MetricsExporterPhaseCreatingPod            MetricsExporterPhase = "CreatingPod"
	MetricsExporterPhaseReady                  MetricsExporterPhase = "Ready"
)

type MetricsExporterSpec

type MetricsExporterSpec struct {
	// Configurational parameters about GPU metrics collection.
	GPU GPUMetrics `json:"gpu,omitempty"`
	// Configurational parameters about network metrics collection.
	Network NetworkMetrics `json:"network,omitempty"`
}

MetricsExporterSpec defines the desired state of MetricsExporter.

func (*MetricsExporterSpec) DeepCopy

func (in *MetricsExporterSpec) DeepCopy() *MetricsExporterSpec

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

func (*MetricsExporterSpec) DeepCopyInto

func (in *MetricsExporterSpec) DeepCopyInto(out *MetricsExporterSpec)

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

type MetricsExporterStatus

type MetricsExporterStatus struct {
	// Phase of MetricsExporter.
	Phase MetricsExporterPhase `json:"phase,omitempty"`
	// Status of role created for main and sidecar applications.
	RoleStatus OwnedResourceStatus `json:"roleStatus,omitempty"`
	// Status of role binding created for main and sidecar applications.
	RoleBindingStatus OwnedResourceStatus `json:"roleBindingStatus,omitempty"`
	// Status of service account created for main and sidecar applications.
	ServiceAccountStatus OwnedResourceStatus `json:"saStatus,omitempty"`
	// Status of MetricsExporter pod.
	PodStatus OwnedResourceStatus `json:"podStatus,omitempty"`
	// Usage metrics.
	Usage Usage `json:"usage,omitempty"`
}

MetricsExporterStatus defines the observed state of MetricsExporter.

func (*MetricsExporterStatus) DeepCopy

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

func (*MetricsExporterStatus) DeepCopyInto

func (in *MetricsExporterStatus) DeepCopyInto(out *MetricsExporterStatus)

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

type NetworkInterfaceLoad

type NetworkInterfaceLoad struct {
	// Average load of incoming packets.
	IncomingLoad string `json:"in,omitempty"`
	// Average load of outgoing packets.
	OutgoingLoad string `json:"out,omitempty"`
}

func (*NetworkInterfaceLoad) DeepCopy

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

func (*NetworkInterfaceLoad) DeepCopyInto

func (in *NetworkInterfaceLoad) DeepCopyInto(out *NetworkInterfaceLoad)

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

type NetworkLoadStatus

type NetworkLoadStatus struct {
	// Loads values of network interfaces.
	Load map[string]NetworkInterfaceLoad `json:"load,omitempty"`
	// Last update time.
	LastUpdateTimestamp string `json:"lastUpdateTimestamp,omitempty"`
}

func (*NetworkLoadStatus) DeepCopy

func (in *NetworkLoadStatus) DeepCopy() *NetworkLoadStatus

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

func (*NetworkLoadStatus) DeepCopyInto

func (in *NetworkLoadStatus) DeepCopyInto(out *NetworkLoadStatus)

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

type NetworkMetrics

type NetworkMetrics struct {
	// MetricsExporter watches network loads in the host machine
	// if it's set to `true`.
	Track bool `json:"track,omitempty"`
	// Watching latency.
	Interval int `json:"interval,omitempty"`
	// Network interfaces which are desired to being watched.
	Interfaces []string `json:"interfaces,omitempty"`
}

func (*NetworkMetrics) DeepCopy

func (in *NetworkMetrics) DeepCopy() *NetworkMetrics

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

func (*NetworkMetrics) DeepCopyInto

func (in *NetworkMetrics) DeepCopyInto(out *NetworkMetrics)

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

type OwnedPodStatus

type OwnedPodStatus struct {
	// Generic status for any owned resource.
	Resource OwnedResourceStatus `json:"resource,omitempty"`
	// IP of the pod.
	IP string `json:"ip,omitempty"`
}

func (*OwnedPodStatus) DeepCopy

func (in *OwnedPodStatus) DeepCopy() *OwnedPodStatus

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

func (*OwnedPodStatus) DeepCopyInto

func (in *OwnedPodStatus) DeepCopyInto(out *OwnedPodStatus)

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

type OwnedResourceStatus

type OwnedResourceStatus struct {
	// Shows if the owned resource is created.
	Created bool `json:"created"`
	// Reference to the owned resource.
	Reference corev1.ObjectReference `json:"reference,omitempty"`
	// Phase of the owned resource.
	Phase string `json:"phase,omitempty"`
}

Generic status for any owned resource.

func (*OwnedResourceStatus) DeepCopy

func (in *OwnedResourceStatus) DeepCopy() *OwnedResourceStatus

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

func (*OwnedResourceStatus) DeepCopyInto

func (in *OwnedResourceStatus) DeepCopyInto(out *OwnedResourceStatus)

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

type Prelaunch

type Prelaunch struct {
	// Bash command to run before ROS node execution.
	// +kubebuilder:validation:Required
	Command string `json:"command"`
}

Prelaunch command or script is applied just before the node is started.

func (*Prelaunch) DeepCopy

func (in *Prelaunch) DeepCopy() *Prelaunch

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

func (*Prelaunch) DeepCopyInto

func (in *Prelaunch) DeepCopyInto(out *Prelaunch)

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

type RMWImplementation added in v0.1.7

type RMWImplementation string

RMW implementation chooses DDS vendor for ROS 2. Currently, only eProsima's FastDDS is supported. +kubebuilder:validation:Enum=rmw_fastrtps_cpp

const (
	// Cyclone DDS
	RMWImplementationCycloneDDS RMWImplementation = "rmw_cyclonedds_cpp"
	// FastDDS
	RMWImplementationFastRTPS RMWImplementation = "rmw_fastrtps_cpp"
	// Connext
	RMWImplementationConnext RMWImplementation = "rmw_connext_cpp"
	// Gurum DDS
	RMWImplementationGurumDDS RMWImplementation = "rmw_gurumdds_cpp"
)

type ROSBridge

type ROSBridge struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Specification of the desired behavior of the ROSBridge.
	Spec ROSBridgeSpec `json:"spec,omitempty"`
	// Most recently observed status of the ROSBridge.
	Status ROSBridgeStatus `json:"status,omitempty"`
}

ROSBridge is a custom resource that provisions ROS/2 bridge resources and workloads. It could also convert ROS 2 topics to ROS topics using ROS 1 to 2 bridge. (see https://github.com/ros2/ros1_bridge)

func (*ROSBridge) DeepCopy

func (in *ROSBridge) DeepCopy() *ROSBridge

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

func (*ROSBridge) DeepCopyInto

func (in *ROSBridge) DeepCopyInto(out *ROSBridge)

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

func (*ROSBridge) DeepCopyObject

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

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

func (*ROSBridge) GetBridgePodMetadata

func (rosbridge *ROSBridge) GetBridgePodMetadata() *types.NamespacedName

func (*ROSBridge) GetBridgeServiceMetadata

func (rosbridge *ROSBridge) GetBridgeServiceMetadata() *types.NamespacedName

func (*ROSBridge) GetOwnerMetadata

func (rosbridge *ROSBridge) GetOwnerMetadata() *types.NamespacedName

type ROSBridgeInstanceStatus

type ROSBridgeInstanceStatus struct {
	// Generic status for any owned resource.
	Resource OwnedResourceStatus `json:"resource,omitempty"`
	// Status of the ROSBridge instance.
	Status ROSBridgeStatus `json:"status,omitempty"`
}

func (*ROSBridgeInstanceStatus) DeepCopy

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

func (*ROSBridgeInstanceStatus) DeepCopyInto

func (in *ROSBridgeInstanceStatus) DeepCopyInto(out *ROSBridgeInstanceStatus)

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

type ROSBridgeList

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

ROSBridgeList contains a list of ROSBridge

func (*ROSBridgeList) DeepCopy

func (in *ROSBridgeList) DeepCopy() *ROSBridgeList

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

func (*ROSBridgeList) DeepCopyInto

func (in *ROSBridgeList) DeepCopyInto(out *ROSBridgeList)

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

func (*ROSBridgeList) DeepCopyObject

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

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

type ROSBridgeSpec

type ROSBridgeSpec struct {
	// Configurational parameters for ROS bridge.
	ROS BridgeDistro `json:"ros,omitempty"`
	// Configurational parameters for ROS 2 bridge.
	ROS2 BridgeDistro `json:"ros2,omitempty"`
	// Image contains ROS/2 bridge packages.
	Image string `json:"image,omitempty"`
}

ROSBridgeSpec defines the desired state of ROSBridge.

func (*ROSBridgeSpec) DeepCopy

func (in *ROSBridgeSpec) DeepCopy() *ROSBridgeSpec

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

func (*ROSBridgeSpec) DeepCopyInto

func (in *ROSBridgeSpec) DeepCopyInto(out *ROSBridgeSpec)

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

type ROSBridgeStatus

type ROSBridgeStatus struct {
	// Phase of ROSBridge.
	Phase BridgePhase `json:"phase,omitempty"`
	// Status of ROSBridge pod.
	PodStatus OwnedResourceStatus `json:"podStatus,omitempty"`
	// Status of ROSBridge service.
	ServiceStatus OwnedResourceStatus `json:"serviceStatus,omitempty"`
}

ROSBridgeStatus defines the observed state of ROSBridge.

func (*ROSBridgeStatus) DeepCopy

func (in *ROSBridgeStatus) DeepCopy() *ROSBridgeStatus

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

func (*ROSBridgeStatus) DeepCopyInto

func (in *ROSBridgeStatus) DeepCopyInto(out *ROSBridgeStatus)

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

type ROSDistro

type ROSDistro string

ROS 2 distribution selection. Currently supported distributions are Humble, Foxy, Galactic. +kubebuilder:validation:Enum=foxy;galactic;humble

const (
	// ROS Melodic Morenia
	ROSDistroMelodic ROSDistro = "melodic"
	// ROS Noetic Ninjemys
	ROSDistroNoetic ROSDistro = "noetic"
	// ROS 2 Foxy Fitzroy
	ROSDistroFoxy ROSDistro = "foxy"
	// ROS 2 Galactic Geochelone
	ROSDistroGalactic ROSDistro = "galactic"
	// ROS 2 Humble Hawksbill
	ROSDistroHumble ROSDistro = "humble"
)

type Repository

type Repository struct {
	// Base URL of the repository.
	// +kubebuilder:validation:Required
	URL string `json:"url"`
	// Branch of the repository to clone.
	// +kubebuilder:validation:Required
	Branch string `json:"branch"`
	// [*Autofilled*] Absolute path of repository
	Path string `json:"path,omitempty"`
	// [*Autofilled*] User or organization, maintainer of repository
	Owner string `json:"owner,omitempty"`
	// [*Autofilled*] Repository name
	Repo string `json:"repo,omitempty"`
	// [*Autofilled*] Hash of last commit
	Hash string `json:"hash,omitempty"`
}

Repository description.

func (*Repository) DeepCopy

func (in *Repository) DeepCopy() *Repository

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

func (*Repository) DeepCopyInto

func (in *Repository) DeepCopyInto(out *Repository)

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

type Resources

type Resources struct {
	// GPU core number that will be allocated.
	GPUCore int `json:"gpuCore,omitempty"`
	// CPU resource limit.
	// +kubebuilder:validation:Pattern=`^([0-9])+(m)$`
	CPU string `json:"cpu,omitempty"`
	// Memory resource limit.
	// +kubebuilder:validation:Pattern=`^([0-9])+(Mi|Gi)$`
	Memory string `json:"memory,omitempty"`
}

VDI resource limits.

func (*Resources) DeepCopy

func (in *Resources) DeepCopy() *Resources

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

func (*Resources) DeepCopyInto

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

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

type Robot

type Robot struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Specification of the desired behavior of the Robot.
	Spec RobotSpec `json:"spec,omitempty"`
	// Most recently observed status of the Robot.
	Status RobotStatus `json:"status,omitempty"`
}

Robot is the custom resource that contains ROS 2 components (Workloads, Cloud VDI, Cloud IDE, ROS Bridge, Configurational Resources), robolaunch Robot instances can be decomposed and distributed to both cloud instances and physical instances using federation.

func (*Robot) DeepCopy

func (in *Robot) DeepCopy() *Robot

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

func (*Robot) DeepCopyInto

func (in *Robot) DeepCopyInto(out *Robot)

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

func (*Robot) DeepCopyObject

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

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

func (*Robot) Default

func (r *Robot) Default()

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

func (*Robot) GetDiscoveryServerMetadata

func (robot *Robot) GetDiscoveryServerMetadata() *types.NamespacedName

func (*Robot) GetLoaderJobMetadata

func (robot *Robot) GetLoaderJobMetadata() *types.NamespacedName

func (*Robot) GetPVCEtcMetadata

func (robot *Robot) GetPVCEtcMetadata() *types.NamespacedName

func (*Robot) GetPVCOptMetadata

func (robot *Robot) GetPVCOptMetadata() *types.NamespacedName

func (*Robot) GetPVCUsrMetadata

func (robot *Robot) GetPVCUsrMetadata() *types.NamespacedName

func (*Robot) GetPVCVarMetadata

func (robot *Robot) GetPVCVarMetadata() *types.NamespacedName

func (*Robot) GetPVCWorkspaceMetadata

func (robot *Robot) GetPVCWorkspaceMetadata() *types.NamespacedName

func (*Robot) GetROSBridgeMetadata

func (robot *Robot) GetROSBridgeMetadata() *types.NamespacedName

func (*Robot) GetRobotDevSuiteMetadata

func (robot *Robot) GetRobotDevSuiteMetadata() *types.NamespacedName

func (*Robot) GetWorkspaceByName added in v0.1.5

func (robot *Robot) GetWorkspaceByName(name string) (Workspace, error)

func (*Robot) GetWorkspaceManagerMetadata added in v0.1.5

func (robot *Robot) GetWorkspaceManagerMetadata() *types.NamespacedName

func (*Robot) SetupWebhookWithManager

func (r *Robot) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Robot) ValidateCreate

func (r *Robot) ValidateCreate() error

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

func (*Robot) ValidateDelete

func (r *Robot) ValidateDelete() error

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

func (*Robot) ValidateUpdate

func (r *Robot) ValidateUpdate(old runtime.Object) error

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

type RobotArtifact

type RobotArtifact struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Holds Robot's `.spec`.
	Template RobotSpec `json:"template,omitempty"`
}

RobotArtifact is a non-functional resource that holds Robot's specifications. It is used to define Robot templates.

func (*RobotArtifact) DeepCopy

func (in *RobotArtifact) DeepCopy() *RobotArtifact

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

func (*RobotArtifact) DeepCopyInto

func (in *RobotArtifact) DeepCopyInto(out *RobotArtifact)

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

func (*RobotArtifact) DeepCopyObject

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

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

type RobotArtifactList

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

RobotArtifactList contains a list of RobotArtifact

func (*RobotArtifactList) DeepCopy

func (in *RobotArtifactList) DeepCopy() *RobotArtifactList

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

func (*RobotArtifactList) DeepCopyInto

func (in *RobotArtifactList) DeepCopyInto(out *RobotArtifactList)

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

func (*RobotArtifactList) DeepCopyObject

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

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

type RobotDevSuite

type RobotDevSuite struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Specification of the desired behavior of the RobotDevSuite.
	Spec RobotDevSuiteSpec `json:"spec,omitempty"`
	// Most recently observed status of the RobotDevSuite.
	Status RobotDevSuiteStatus `json:"status,omitempty"`
}

RobotDevSuite is a custom resource that creates dynamically configured development environments for robots.

func (*RobotDevSuite) DeepCopy

func (in *RobotDevSuite) DeepCopy() *RobotDevSuite

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

func (*RobotDevSuite) DeepCopyInto

func (in *RobotDevSuite) DeepCopyInto(out *RobotDevSuite)

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

func (*RobotDevSuite) DeepCopyObject

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

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

func (*RobotDevSuite) GetRobotIDEMetadata

func (robotDevSuite *RobotDevSuite) GetRobotIDEMetadata() *types.NamespacedName

func (*RobotDevSuite) GetRobotVDIMetadata

func (robotDevSuite *RobotDevSuite) GetRobotVDIMetadata() *types.NamespacedName

type RobotDevSuiteInstanceStatus

type RobotDevSuiteInstanceStatus struct {
	// Generic status for any owned resource.
	Resource OwnedResourceStatus `json:"resource,omitempty"`
	// Status of the RobotDevSuite instance.
	Status RobotDevSuiteStatus `json:"status,omitempty"`
}

func (*RobotDevSuiteInstanceStatus) DeepCopy

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

func (*RobotDevSuiteInstanceStatus) DeepCopyInto

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

type RobotDevSuiteList

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

RobotDevSuiteList contains a list of RobotDevSuite.

func (*RobotDevSuiteList) DeepCopy

func (in *RobotDevSuiteList) DeepCopy() *RobotDevSuiteList

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

func (*RobotDevSuiteList) DeepCopyInto

func (in *RobotDevSuiteList) DeepCopyInto(out *RobotDevSuiteList)

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

func (*RobotDevSuiteList) DeepCopyObject

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

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

type RobotDevSuitePhase

type RobotDevSuitePhase string
const (
	RobotDevSuitePhaseRobotNotFound    RobotDevSuitePhase = "RobotNotFound"
	RobotDevSuitePhaseCreatingRobotVDI RobotDevSuitePhase = "CreatingRobotVDI"
	RobotDevSuitePhaseCreatingRobotIDE RobotDevSuitePhase = "CreatingRobotIDE"
	RobotDevSuitePhaseRunning          RobotDevSuitePhase = "Running"
	RobotDevSuitePhaseDeactivating     RobotDevSuitePhase = "Deactivating"
	RobotDevSuitePhaseInactive         RobotDevSuitePhase = "Inactive"
)

type RobotDevSuiteSpec

type RobotDevSuiteSpec struct {
	// If `true`, a Cloud VDI will be provisioned inside development suite.
	VDIEnabled bool `json:"vdiEnabled,omitempty"`
	// Configurational parameters of RobotVDI. Applied if `.spec.vdiEnabled` is set to `true`.
	RobotVDITemplate RobotVDISpec `json:"robotVDITemplate,omitempty"`
	// If `true`, a Cloud IDE will be provisioned inside development suite.
	IDEEnabled bool `json:"ideEnabled,omitempty"`
	// Configurational parameters of RobotIDE. Applied if `.spec.ideEnabled` is set to `true`.
	RobotIDETemplate RobotIDESpec `json:"robotIDETemplate,omitempty"`
}

RobotDevSuiteSpec defines the desired state of RobotDevSuite.

func (*RobotDevSuiteSpec) DeepCopy

func (in *RobotDevSuiteSpec) DeepCopy() *RobotDevSuiteSpec

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

func (*RobotDevSuiteSpec) DeepCopyInto

func (in *RobotDevSuiteSpec) DeepCopyInto(out *RobotDevSuiteSpec)

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

type RobotDevSuiteStatus

type RobotDevSuiteStatus struct {
	// Phase of RobotDevSuite.
	Phase RobotDevSuitePhase `json:"phase,omitempty"`
	// Status of RobotVDI.
	RobotVDIStatus OwnedResourceStatus `json:"robotVDIStatus,omitempty"`
	// Status of RobotIDE.
	RobotIDEStatus OwnedResourceStatus `json:"robotIDEStatus,omitempty"`
	// [*alpha*] Indicates if RobotDevSuite is attached to a Robot and actively provisioned it's resources.
	Active bool `json:"active,omitempty"`
}

RobotDevSuiteStatus defines the observed state of RobotDevSuite.

func (*RobotDevSuiteStatus) DeepCopy

func (in *RobotDevSuiteStatus) DeepCopy() *RobotDevSuiteStatus

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

func (*RobotDevSuiteStatus) DeepCopyInto

func (in *RobotDevSuiteStatus) DeepCopyInto(out *RobotDevSuiteStatus)

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

type RobotIDE

type RobotIDE struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Specification of the desired behavior of the RobotIDE.
	Spec RobotIDESpec `json:"spec,omitempty"`
	// Most recently observed status of the RobotIDE.
	Status RobotIDEStatus `json:"status,omitempty"`
}

RobotIDE creates and manages Cloud IDE resources and workloads.

func (*RobotIDE) DeepCopy

func (in *RobotIDE) DeepCopy() *RobotIDE

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

func (*RobotIDE) DeepCopyInto

func (in *RobotIDE) DeepCopyInto(out *RobotIDE)

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

func (*RobotIDE) DeepCopyObject

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

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

func (*RobotIDE) Default

func (r *RobotIDE) Default()

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

func (*RobotIDE) GetRobotIDEIngressMetadata

func (robotide *RobotIDE) GetRobotIDEIngressMetadata() *types.NamespacedName

func (*RobotIDE) GetRobotIDEPodMetadata

func (robotide *RobotIDE) GetRobotIDEPodMetadata() *types.NamespacedName

func (*RobotIDE) GetRobotIDEServiceMetadata

func (robotide *RobotIDE) GetRobotIDEServiceMetadata() *types.NamespacedName

func (*RobotIDE) SetupWebhookWithManager

func (r *RobotIDE) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*RobotIDE) ValidateCreate

func (r *RobotIDE) ValidateCreate() error

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

func (*RobotIDE) ValidateDelete

func (r *RobotIDE) ValidateDelete() error

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

func (*RobotIDE) ValidateUpdate

func (r *RobotIDE) ValidateUpdate(old runtime.Object) error

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

type RobotIDEList

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

RobotIDEList contains a list of RobotIDE.

func (*RobotIDEList) DeepCopy

func (in *RobotIDEList) DeepCopy() *RobotIDEList

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

func (*RobotIDEList) DeepCopyInto

func (in *RobotIDEList) DeepCopyInto(out *RobotIDEList)

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

func (*RobotIDEList) DeepCopyObject

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

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

type RobotIDEPhase

type RobotIDEPhase string
const (
	RobotIDEPhaseCreatingService RobotIDEPhase = "CreatingService"
	RobotIDEPhaseCreatingPod     RobotIDEPhase = "CreatingPod"
	RobotIDEPhaseCreatingIngress RobotIDEPhase = "CreatingIngress"
	RobotIDEPhaseRunning         RobotIDEPhase = "Running"
)

type RobotIDESpec

type RobotIDESpec struct {
	// Resource limitations of Cloud IDE.
	Resources Resources `json:"resources,omitempty"`
	// Service type of Cloud IDE. `ClusterIP` and `NodePort` is supported.
	// +kubebuilder:validation:Enum=ClusterIP;NodePort
	// +kubebuilder:default="NodePort"
	ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
	// If `true`, containers of RobotIDE will be privileged containers.
	// It can be used in physical instances where it's necessary to access
	// I/O devices on the host machine.
	// Not recommended to activate this field on cloud instances.
	Privileged bool `json:"privileged,omitempty"`
	// Cloud IDE connects an X11 socket if it's set to `true` and a target RobotVDI resource is set in labels with key `robolaunch.io/target-vdi`.
	// Applications that requires GUI can be executed such as rViz.
	Display bool `json:"display,omitempty"`
	// [*alpha*] RobotIDE will create an Ingress resource if `true`.
	Ingress bool `json:"ingress,omitempty"`
}

RobotIDESpec defines the desired state of RobotIDE.

func (*RobotIDESpec) DeepCopy

func (in *RobotIDESpec) DeepCopy() *RobotIDESpec

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

func (*RobotIDESpec) DeepCopyInto

func (in *RobotIDESpec) DeepCopyInto(out *RobotIDESpec)

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

type RobotIDEStatus

type RobotIDEStatus struct {
	// Phase of RobotIDE.
	Phase RobotIDEPhase `json:"phase,omitempty"`
	// Status of Cloud IDE pod.
	PodStatus OwnedPodStatus `json:"podStatus,omitempty"`
	// Status of Cloud IDE service.
	ServiceStatus OwnedResourceStatus `json:"serviceStatus,omitempty"`
	// Status of Cloud IDE Ingress.
	IngressStatus OwnedResourceStatus `json:"ingressStatus,omitempty"`
}

RobotIDEStatus defines the observed state of RobotIDE.

func (*RobotIDEStatus) DeepCopy

func (in *RobotIDEStatus) DeepCopy() *RobotIDEStatus

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

func (*RobotIDEStatus) DeepCopyInto

func (in *RobotIDEStatus) DeepCopyInto(out *RobotIDEStatus)

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

type RobotList

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

RobotList contains a list of Robot

func (*RobotList) DeepCopy

func (in *RobotList) DeepCopy() *RobotList

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

func (*RobotList) DeepCopyInto

func (in *RobotList) DeepCopyInto(out *RobotList)

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

func (*RobotList) DeepCopyObject

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

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

type RobotPhase

type RobotPhase string
const (
	RobotPhaseCreatingEnvironment      RobotPhase = "CreatingEnvironment"
	RobotPhaseCreatingDiscoveryServer  RobotPhase = "CreatingDiscoveryServer"
	RobotPhaseConfiguringEnvironment   RobotPhase = "ConfiguringEnvironment"
	RobotPhaseCreatingBridge           RobotPhase = "CreatingBridge"
	RobotPhaseCreatingDevelopmentSuite RobotPhase = "CreatingDevelopmentSuite"
	RobotPhaseConfiguringWorkspaces    RobotPhase = "ConfiguringWorkspaces"
	RobotPhaseEnvironmentReady         RobotPhase = "EnvironmentReady"
	RobotPhaseBuilding                 RobotPhase = "Building"
	RobotPhaseBuilt                    RobotPhase = "Built"
	RobotPhaseLaunching                RobotPhase = "Launching"
	RobotPhaseRunning                  RobotPhase = "Running"
	RobotPhaseDeletingBridge           RobotPhase = "DeletingBridge"
	RobotPhaseDeletingDiscoveryServer  RobotPhase = "DeletingDiscoveryServer"
	RobotPhaseDeletingLoaderJob        RobotPhase = "DeletingLoaderJob"
	RobotPhaseDeletingVolumes          RobotPhase = "DeletingVolumes"

	RobotPhaseFailed RobotPhase = "Failed"
)

type RobotSpec

type RobotSpec struct {
	// ROS 2 distributions to be used. You can select multiple distributions if they are supported in the same underlying OS.
	// (eg. `foxy` and `galactic` are supported in Ubuntu Focal, so they can be used together but both cannot be used with `humble`)
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	// +kubebuilder:validation:MaxItems=2
	Distributions []ROSDistro `json:"distributions"`
	// RMW implementation selection. Robot operator currently supports only FastRTPS. See https://docs.ros.org/en/foxy/How-To-Guides/Working-with-multiple-RMW-implementations.html.
	// +kubebuilder:validation:Required
	// +kubebuilder:default=rmw_fastrtps_cpp
	RMWImplementation RMWImplementation `json:"rmwImplementation"`
	// Total storage amount to persist via Robot. Unit of measurement is MB. (eg. `10240` corresponds 10 GB)
	// This amount is being shared between different components.
	Storage Storage `json:"storage,omitempty"`
	// Discovery server configurational parameters.
	DiscoveryServerTemplate DiscoveryServerSpec `json:"discoveryServerTemplate,omitempty"`
	// ROS bridge configurational parameters.
	ROSBridgeTemplate ROSBridgeSpec `json:"rosBridgeTemplate,omitempty"`
	// Robot development suite template
	RobotDevSuiteTemplate RobotDevSuiteSpec `json:"robotDevSuiteTemplate,omitempty"`
	// Workspace manager template to configure ROS 2 workspaces.
	WorkspaceManagerTemplate WorkspaceManagerSpec `json:"workspaceManagerTemplate,omitempty"`
	// [*alpha*] Build manager template for initial configuration.
	BuildManagerTemplate BuildManagerSpec `json:"buildManagerTemplate,omitempty"`
	// [*alpha*] Launch manager template for initial configuration.
	LaunchManagerTemplates []LaunchManagerSpec `json:"launchManagerTemplates,omitempty"`
	// [*alpha*] Switch to development mode if `true`.
	Development bool `json:"development,omitempty"`
	// [*alpha*] Root DNS configuration.
	RootDNSConfig RootDNSConfig `json:"rootDNSConfig,omitempty"`
	// [*alpha*] TLS secret reference.
	TLSSecretReference TLSSecretReference `json:"tlsSecretRef,omitempty"`
}

RobotSpec defines the desired state of Robot.

func (*RobotSpec) DeepCopy

func (in *RobotSpec) DeepCopy() *RobotSpec

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

func (*RobotSpec) DeepCopyInto

func (in *RobotSpec) DeepCopyInto(out *RobotSpec)

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

type RobotStatus

type RobotStatus struct {
	// Phase of Robot. It sums the general status of Robot.
	Phase RobotPhase `json:"phase,omitempty"`
	// Main image of Robot. It is derived either from the specifications or determined directly over labels.
	Image string `json:"image,omitempty"`
	// Node that Robot uses. It is selected via tenancy labels.
	NodeName string `json:"nodeName,omitempty"`
	// Robot persists some of the directories of underlying OS inside persistent volumes.
	// This field exposes persistent volume claims that dynamically provision PVs.
	VolumeStatuses VolumeStatuses `json:"volumeStatuses,omitempty"`
	// Discovery server instance status.
	DiscoveryServerStatus DiscoveryServerInstanceStatus `json:"discoveryServerStatus,omitempty"`
	// ROS bridge instance status.
	ROSBridgeStatus ROSBridgeInstanceStatus `json:"rosBridgeStatus,omitempty"`
	// Status of loader job that configures environment.
	LoaderJobStatus OwnedResourceStatus `json:"loaderJobStatus,omitempty"`
	// Workspace manager instance status if exists.
	WorkspaceManagerStatus WorkspaceManagerInstanceStatus `json:"workspaceManagerStatus,omitempty"`
	// Robot development suite instance status.
	RobotDevSuiteStatus RobotDevSuiteInstanceStatus `json:"robotDevSuiteStatus,omitempty"`
	// Attached build object information.
	// A BuildManager can be attached with a label on it with key `robolaunch.io/target-robot`
	// and value of the target robot's name.
	// Robot sorts the BuildManagers targeted itself, and picks the last created object to process.
	AttachedBuildObject AttachedBuildObject `json:"attachedBuildObject,omitempty"`
	// Attached launch object information.
	// A LaunchManager can be attached with a label on it with key `robolaunch.io/target-robot`
	// and value of the target robot's name.
	// Multiple LaunchManager could work together if they targeted the same Robot.
	AttachedLaunchObjects []AttachedLaunchObject `json:"attachedLaunchObjects,omitempty"`
	// [*alpha*] Initial build manager creation status if exists.
	InitialBuildManagerStatus OwnedResourceStatus `json:"initialBuildManagerStatus,omitempty"`
	// [*alpha*] Initial launch manager creation status if exists.
	InitialLaunchManagerStatuses []OwnedResourceStatus `json:"initialLaunchManagerStatuses,omitempty"`
	// [*alpha*] Attached dev object information.
	AttachedDevObjects []AttachedDevObject `json:"attachedDevObjects,omitempty"`
}

RobotStatus defines the observed state of Robot.

func (*RobotStatus) DeepCopy

func (in *RobotStatus) DeepCopy() *RobotStatus

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

func (*RobotStatus) DeepCopyInto

func (in *RobotStatus) DeepCopyInto(out *RobotStatus)

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

type RobotVDI

type RobotVDI struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Specification of the desired behavior of the RobotVDI.
	Spec RobotVDISpec `json:"spec,omitempty"`
	// Most recently observed status of the RobotVDI.
	Status RobotVDIStatus `json:"status,omitempty"`
}

RobotVDI creates and manages Cloud VDI resources and workloads.

func (*RobotVDI) DeepCopy

func (in *RobotVDI) DeepCopy() *RobotVDI

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

func (*RobotVDI) DeepCopyInto

func (in *RobotVDI) DeepCopyInto(out *RobotVDI)

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

func (*RobotVDI) DeepCopyObject

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

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

func (*RobotVDI) Default

func (r *RobotVDI) Default()

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

func (*RobotVDI) GetRobotVDIIngressMetadata

func (robotvdi *RobotVDI) GetRobotVDIIngressMetadata() *types.NamespacedName

func (*RobotVDI) GetRobotVDIPVCMetadata

func (robotvdi *RobotVDI) GetRobotVDIPVCMetadata() *types.NamespacedName

func (*RobotVDI) GetRobotVDIPodMetadata

func (robotvdi *RobotVDI) GetRobotVDIPodMetadata() *types.NamespacedName

func (*RobotVDI) GetRobotVDIServiceTCPMetadata

func (robotvdi *RobotVDI) GetRobotVDIServiceTCPMetadata() *types.NamespacedName

func (*RobotVDI) GetRobotVDIServiceUDPMetadata

func (robotvdi *RobotVDI) GetRobotVDIServiceUDPMetadata() *types.NamespacedName

func (*RobotVDI) SetupWebhookWithManager

func (r *RobotVDI) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*RobotVDI) ValidateCreate

func (r *RobotVDI) ValidateCreate() error

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

func (*RobotVDI) ValidateDelete

func (r *RobotVDI) ValidateDelete() error

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

func (*RobotVDI) ValidateUpdate

func (r *RobotVDI) ValidateUpdate(old runtime.Object) error

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

type RobotVDIList

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

RobotVDIList contains a list of RobotVDI.

func (*RobotVDIList) DeepCopy

func (in *RobotVDIList) DeepCopy() *RobotVDIList

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

func (*RobotVDIList) DeepCopyInto

func (in *RobotVDIList) DeepCopyInto(out *RobotVDIList)

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

func (*RobotVDIList) DeepCopyObject

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

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

type RobotVDIPhase

type RobotVDIPhase string
const (
	RobotVDIPhaseCreatingPVC        RobotVDIPhase = "CreatingPVC"
	RobotVDIPhaseCreatingTCPService RobotVDIPhase = "CreatingTCPService"
	RobotVDIPhaseCreatingUDPService RobotVDIPhase = "CreatingUDPService"
	RobotVDIPhaseCreatingPod        RobotVDIPhase = "CreatingPod"
	RobotVDIPhaseCreatingIngress    RobotVDIPhase = "CreatingIngress"
	RobotVDIPhaseRunning            RobotVDIPhase = "Running"
)

type RobotVDISpec

type RobotVDISpec struct {
	// Resource limitations of Cloud IDE.
	Resources Resources `json:"resources,omitempty"`
	// Service type of Cloud IDE. `ClusterIP` and `NodePort` is supported.
	// +kubebuilder:validation:Enum=ClusterIP;NodePort
	// +kubebuilder:default="NodePort"
	ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
	// If `true`, containers of RobotIDE will be privileged containers.
	// It can be used in physical instances where it's necessary to access
	// I/O devices on the host machine.
	// Not recommended to activate this field on cloud instances.
	Privileged bool `json:"privileged,omitempty"`
	// NAT1TO1 option for Cloud VDI.
	NAT1TO1 string `json:"nat1to1,omitempty"`
	// UDP port range to used in WebRTC connections.
	// +kubebuilder:validation:Pattern=`^([0-9])+-([0-9])+$`
	// +kubebuilder:validation:Required
	WebRTCPortRange string `json:"webrtcPortRange,omitempty"`
	// VDI screen resolution options. Default is `2048x1152`.
	// +kubebuilder:validation:Enum="2048x1152";"1920x1080";"1600x1200"
	// +kubebuilder:default="2048x1152"
	Resolution string `json:"resolution,omitempty"`
	// [*alpha*] RobotIDE will create an Ingress resource if `true`.
	Ingress bool `json:"ingress,omitempty"`
}

RobotVDISpec defines the desired state of RobotVDI.

func (*RobotVDISpec) DeepCopy

func (in *RobotVDISpec) DeepCopy() *RobotVDISpec

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

func (*RobotVDISpec) DeepCopyInto

func (in *RobotVDISpec) DeepCopyInto(out *RobotVDISpec)

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

type RobotVDIStatus

type RobotVDIStatus struct {
	// Phase of RobotVDI.
	Phase RobotVDIPhase `json:"phase,omitempty"`
	// Status of Cloud VDI pod.
	PodStatus OwnedPodStatus `json:"podStatus,omitempty"`
	// Status of Cloud VDI TCP service.
	ServiceTCPStatus OwnedResourceStatus `json:"serviceTCPStatus,omitempty"`
	// Status of Cloud VDI UDP service.
	ServiceUDPStatus OwnedResourceStatus `json:"serviceUDPStatus,omitempty"`
	// Status of Cloud VDI Ingress.
	IngressStatus OwnedResourceStatus `json:"ingressStatus,omitempty"`
	// Status of Cloud VDI persistent volume claim.
	// This PVC dynamically provisions a volume that is a shared
	// between RobotVDI workloads and other workloads that requests
	// display.
	PVCStatus OwnedResourceStatus `json:"pvcStatus,omitempty"`
}

RobotVDIStatus defines the observed state of RobotVDI.

func (*RobotVDIStatus) DeepCopy

func (in *RobotVDIStatus) DeepCopy() *RobotVDIStatus

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

func (*RobotVDIStatus) DeepCopyInto

func (in *RobotVDIStatus) DeepCopyInto(out *RobotVDIStatus)

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

type RootDNSConfig

type RootDNSConfig struct {
	// [*alpha*] Root DNS name..
	// +kubebuilder:validation:Required
	Host string `json:"host"`
}

func (*RootDNSConfig) DeepCopy

func (in *RootDNSConfig) DeepCopy() *RootDNSConfig

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

func (*RootDNSConfig) DeepCopyInto

func (in *RootDNSConfig) DeepCopyInto(out *RootDNSConfig)

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

type Run added in v0.2.4

type Run struct {
	// Cluster selector. If empty, run pod will be created.
	// If `robolaunch.io/cloud-instance` is specified only, run process will be running on the cloud instance.
	// If `robolaunch.io/physical-instance` is specified only, run process will be running on the physical instance.
	Selector map[string]string `json:"selector,omitempty"`
	// Name of the workspace.
	// Should be selected among the existing workspaces in WorkspaceManager's manifests.
	// +kubebuilder:validation:Required
	Workspace string `json:"workspace"`
	// ROS 2 namespacing. May not be suitable for all executables.
	// If used, all the node names and topic names should be defined relative, not absolute.
	// (eg. `cmd_vel` instead of /cmd_vel“)
	// +kubebuilder:validation:Required
	Namespacing bool `json:"namespacing,omitempty"`
	// Additional environment variables to set when launching ROS nodes.
	Env []corev1.EnvVar `json:"env,omitempty"`
	// Package name in `ros2 run <package> <executable>`.
	// +kubebuilder:validation:Required
	Package string `json:"package"`
	// Executable name in `ros2 run <package> <executable>`.
	Executable string `json:"executable"`
	// Run parameters.
	Parameters map[string]string `json:"parameters,omitempty"`
	// Command or script to run just before node's execution.
	Prelaunch Prelaunch `json:"prelaunch,omitempty"`
	// Launch container privilege.
	Privileged bool `json:"privileged,omitempty"`
	// Launch container resource limits.
	Resources Resources `json:"resources,omitempty"`
}

Run description.

func (*Run) DeepCopy added in v0.2.4

func (in *Run) DeepCopy() *Run

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

func (*Run) DeepCopyInto added in v0.2.4

func (in *Run) DeepCopyInto(out *Run)

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

type Step

type Step struct {
	// Cluster selector. If empty, step will be executed.
	// If `robolaunch.io/cloud-instance` is specified only, step will be running on the cloud instance.
	// If `robolaunch.io/physical-instance` is specified only, step will be running on the physical instance.
	Selector map[string]string `json:"selector,omitempty"`
	// Name of the step.
	Name string `json:"name"`
	// Name of the workspace.
	// Should be selected among the existing workspaces in WorkspaceManager's manifests.
	Workspace string `json:"workspace"`
	// Bash command to run.
	// Assume that your command will be `/bin/bash -c <COMMAND>`.
	// Use logical operators (eg. `&&`) and pipes if the multiple dependent commands will be executed.
	Command string `json:"command,omitempty"`
	// Bash script to run.
	Script string `json:"script,omitempty"`
	// Environment variables for step.
	Env []corev1.EnvVar `json:"env,omitempty"`
}

Step is a command or script to execute when building a robot. Either `command` or `script` should be specified for each step.

func (*Step) DeepCopy

func (in *Step) DeepCopy() *Step

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

func (*Step) DeepCopyInto

func (in *Step) DeepCopyInto(out *Step)

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

type StepStatus

type StepStatus struct {
	// Generic status for any owned resource.
	Resource OwnedResourceStatus `json:"resource,omitempty"`
	// Status of the step.
	Step Step `json:"step,omitempty"`
}

func (*StepStatus) DeepCopy

func (in *StepStatus) DeepCopy() *StepStatus

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

func (*StepStatus) DeepCopyInto

func (in *StepStatus) DeepCopyInto(out *StepStatus)

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

type Storage

type Storage struct {
	// Specifies how much storage will be allocated in total. Use MB as a unit of measurement. (eg. `10240` is equal to 10 GB)
	// +kubebuilder:default=10000
	Amount int `json:"amount,omitempty"`
	// Storage class selection for robot's volumes.
	StorageClassConfig StorageClassConfig `json:"storageClassConfig,omitempty"`
}

Robot's resource limitations.

func (*Storage) DeepCopy

func (in *Storage) DeepCopy() *Storage

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

func (*Storage) DeepCopyInto

func (in *Storage) DeepCopyInto(out *Storage)

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

type StorageClassConfig

type StorageClassConfig struct {
	// Storage class name.
	Name string `json:"name,omitempty"`
	// PVC access modes. Currently, only `ReadWriteOnce` is supported.
	AccessMode corev1.PersistentVolumeAccessMode `json:"accessMode,omitempty"`
}

Storage class configuration for a volume type.

func (*StorageClassConfig) DeepCopy

func (in *StorageClassConfig) DeepCopy() *StorageClassConfig

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

func (*StorageClassConfig) DeepCopyInto

func (in *StorageClassConfig) DeepCopyInto(out *StorageClassConfig)

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

type TLSSecretReference

type TLSSecretReference struct {
	// [*alpha*] TLS secret object name.
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// [*alpha*] TLS secret object namespace.
	// +kubebuilder:validation:Required
	Namespace string `json:"namespace"`
}

func (*TLSSecretReference) DeepCopy

func (in *TLSSecretReference) DeepCopy() *TLSSecretReference

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

func (*TLSSecretReference) DeepCopyInto

func (in *TLSSecretReference) DeepCopyInto(out *TLSSecretReference)

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

type Usage

type Usage struct {
	// GPU usage information.
	GPU GPUUtilizationStatus `json:"gpu,omitempty"`
	// Network usage information.
	Network NetworkLoadStatus `json:"network,omitempty"`
}

func (*Usage) DeepCopy

func (in *Usage) DeepCopy() *Usage

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

func (*Usage) DeepCopyInto

func (in *Usage) DeepCopyInto(out *Usage)

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

type VolumeStatuses

type VolumeStatuses struct {
	// Holds PVC status of the `/var` directory of underlying OS.
	Var OwnedResourceStatus `json:"varDir,omitempty"`
	// Holds PVC status of the `/etc` directory of underlying OS.
	Etc OwnedResourceStatus `json:"etcDir,omitempty"`
	// Holds PVC status of the `/usr` directory of underlying OS.
	Usr OwnedResourceStatus `json:"usrDir,omitempty"`
	// Holds PVC status of the `/opt` directory of underlying OS.
	Opt OwnedResourceStatus `json:"optDir,omitempty"`
	// Holds PVC status of the workspaces directory of underlying OS.
	Workspace OwnedResourceStatus `json:"workspaceDir,omitempty"`
}

func (*VolumeStatuses) DeepCopy

func (in *VolumeStatuses) DeepCopy() *VolumeStatuses

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

func (*VolumeStatuses) DeepCopyInto

func (in *VolumeStatuses) DeepCopyInto(out *VolumeStatuses)

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

type Workspace

type Workspace struct {
	// Name of workspace. If a workspace's name is `my_ws`, it's absolute path is `/home/workspaces/my_ws`.
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// +kubebuilder:validation:Required
	Distro ROSDistro `json:"distro"`
	// Repositories to clone inside workspace's `src` directory.
	Repositories map[string]Repository `json:"repositories"`
}

Workspace description. Each robot should contain at least one workspace. A workspace should contain at least one repository in it.

func (*Workspace) DeepCopy

func (in *Workspace) DeepCopy() *Workspace

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

func (*Workspace) DeepCopyInto

func (in *Workspace) DeepCopyInto(out *Workspace)

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

type WorkspaceManager added in v0.1.5

type WorkspaceManager struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Specification of the desired behavior of the WorkspaceManager.
	Spec WorkspaceManagerSpec `json:"spec,omitempty"`
	// Most recently observed status of the WorkspaceManager.
	Status WorkspaceManagerStatus `json:"status,omitempty"`
}

WorkspaceManager configures the ROS 2 workspaces and repositories by executing Kubernetes jobs.

func (*WorkspaceManager) DeepCopy added in v0.1.5

func (in *WorkspaceManager) DeepCopy() *WorkspaceManager

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

func (*WorkspaceManager) DeepCopyInto added in v0.1.5

func (in *WorkspaceManager) DeepCopyInto(out *WorkspaceManager)

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

func (*WorkspaceManager) DeepCopyObject added in v0.1.5

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

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

func (*WorkspaceManager) Default added in v0.1.5

func (r *WorkspaceManager) Default()

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

func (*WorkspaceManager) GetCleanupJobMetadata added in v0.1.5

func (workspacemanager *WorkspaceManager) GetCleanupJobMetadata() *types.NamespacedName

func (*WorkspaceManager) GetClonerJobMetadata added in v0.1.5

func (workspacemanager *WorkspaceManager) GetClonerJobMetadata() *types.NamespacedName

func (*WorkspaceManager) SetupWebhookWithManager added in v0.1.5

func (r *WorkspaceManager) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*WorkspaceManager) ValidateCreate added in v0.1.5

func (r *WorkspaceManager) ValidateCreate() error

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

func (*WorkspaceManager) ValidateDelete added in v0.1.5

func (r *WorkspaceManager) ValidateDelete() error

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

func (*WorkspaceManager) ValidateUpdate added in v0.1.5

func (r *WorkspaceManager) ValidateUpdate(old runtime.Object) error

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

type WorkspaceManagerInstanceStatus added in v0.1.5

type WorkspaceManagerInstanceStatus struct {
	// Generic status for any owned resource.
	Resource OwnedResourceStatus `json:"resource,omitempty"`
	// Status of the WorkspaceManager instance.
	Status WorkspaceManagerStatus `json:"status,omitempty"`
}

func (*WorkspaceManagerInstanceStatus) DeepCopy added in v0.1.5

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

func (*WorkspaceManagerInstanceStatus) DeepCopyInto added in v0.1.5

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

type WorkspaceManagerList added in v0.1.5

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

WorkspaceManagerList contains a list of WorkspaceManager

func (*WorkspaceManagerList) DeepCopy added in v0.1.5

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

func (*WorkspaceManagerList) DeepCopyInto added in v0.1.5

func (in *WorkspaceManagerList) DeepCopyInto(out *WorkspaceManagerList)

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

func (*WorkspaceManagerList) DeepCopyObject added in v0.1.5

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

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

type WorkspaceManagerPhase added in v0.1.5

type WorkspaceManagerPhase string
const (
	WorkspaceManagerPhaseConfiguringWorkspaces WorkspaceManagerPhase = "ConfiguringWorkspaces"
	WorkspaceManagerPhaseReady                 WorkspaceManagerPhase = "Ready"
	WorkspaceManagerPhaseFailed                WorkspaceManagerPhase = "Failed"
)

type WorkspaceManagerSpec added in v0.1.5

type WorkspaceManagerSpec struct {
	// Global path of workspaces. It's fixed to `/root/workspaces` path.
	WorkspacesPath string `json:"workspacesPath,omitempty"`
	// Workspace definitions of robot.
	// Multiple ROS 2 workspaces can be configured over this field.
	// +kubebuilder:validation:MinItems=1
	Workspaces []Workspace `json:"workspaces,omitempty"`
	// WorkspaceManager is triggered if this field is set to `true`.
	// Then the workspaces are being configured again while backing up the old configurations.
	// This field is often used by operator.
	UpdateNeeded bool `json:"updateNeeded,omitempty"`
}

WorkspaceManagerSpec defines the desired state of WorkspaceManager.

func (*WorkspaceManagerSpec) DeepCopy added in v0.1.5

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

func (*WorkspaceManagerSpec) DeepCopyInto added in v0.1.5

func (in *WorkspaceManagerSpec) DeepCopyInto(out *WorkspaceManagerSpec)

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

type WorkspaceManagerStatus added in v0.1.5

type WorkspaceManagerStatus struct {
	// Phase of WorkspaceManager.
	Phase WorkspaceManagerPhase `json:"phase,omitempty"`
	// Status of cloner job.
	ClonerJobStatus OwnedResourceStatus `json:"clonerJobStatus,omitempty"`
	// Status of cleanup jobs that runs while reconfiguring workspaces.
	CleanupJobStatus OwnedResourceStatus `json:"cleanupJobStatus,omitempty"`
	// Incremental version of workspace configuration map.
	// Used to determine changes in configuration.
	Version int `json:"version,omitempty"`
}

WorkspaceManagerStatus defines the observed state of WorkspaceManager.

func (*WorkspaceManagerStatus) DeepCopy added in v0.1.5

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

func (*WorkspaceManagerStatus) DeepCopyInto added in v0.1.5

func (in *WorkspaceManagerStatus) DeepCopyInto(out *WorkspaceManagerStatus)

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