v1alpha1

package
v2.0.0-...-01444cd Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2021 License: EPL-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the org v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=workspace.devfile.io

Package v1alpha1 contains API Schema definitions for the org v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=workspace.devfile.io

Index

Constants

This section is empty.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "workspace.devfile.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type ApplyCommand

type ApplyCommand struct {
	LabeledCommand `json:",inline"`

	// Describes component that will be applied
	Component string `json:"component,omitempty"`
}

func (*ApplyCommand) DeepCopy

func (in *ApplyCommand) DeepCopy() *ApplyCommand

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

func (*ApplyCommand) DeepCopyInto

func (in *ApplyCommand) DeepCopyInto(out *ApplyCommand)

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

type BaseCommand

type BaseCommand struct {
	// Mandatory identifier that allows referencing
	// this command in composite commands, from
	// a parent, or in events.
	Id string `json:"id"`

	// +optional
	// Defines the group this command is part of
	Group *CommandGroup `json:"group,omitempty"`

	// Optional map of free-form additional command attributes
	Attributes map[string]string `json:"attributes,omitempty"`
}

func (*BaseCommand) DeepCopy

func (in *BaseCommand) DeepCopy() *BaseCommand

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

func (*BaseCommand) DeepCopyInto

func (in *BaseCommand) DeepCopyInto(out *BaseCommand)

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

type BaseComponent

type BaseComponent struct {
}

Workspace component: Anything that will bring additional features / tooling / behaviour / context to the workspace, in order to make working in it easier.

func (*BaseComponent) DeepCopy

func (in *BaseComponent) DeepCopy() *BaseComponent

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

func (*BaseComponent) DeepCopyInto

func (in *BaseComponent) DeepCopyInto(out *BaseComponent)

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

type CheckoutFrom

type CheckoutFrom struct {
	// The revision to checkout from. Should be branch name, tag or commit id.
	// Default branch is used if missing or specified revision is not found.
	// +optional
	Revision string `json:"revision,omitempty"`
	// The remote name should be used as init. Required if there are more than one remote configured
	// +optional
	Remote string `json:"remote,omitempty"`
}

func (*CheckoutFrom) DeepCopy

func (in *CheckoutFrom) DeepCopy() *CheckoutFrom

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

func (*CheckoutFrom) DeepCopyInto

func (in *CheckoutFrom) DeepCopyInto(out *CheckoutFrom)

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

type Command

type Command struct {
	// Type of workspace command
	// +unionDiscriminator
	// +optional
	CommandType CommandType `json:"commandType,omitempty"`

	// CLI Command executed in an existing component container
	// +optional
	Exec *ExecCommand `json:"exec,omitempty"`

	// Command that consists in applying a given component definition,
	// typically bound to a workspace event.
	//
	// For example, when an `apply` command is bound to a `preStart` event,
	// and references a `container` component, it will start the container as a
	// K8S initContainer in the workspace POD, unless the component has its
	// `dedicatedPod` field set to `true`.
	//
	// When no `apply` command exist for a given component,
	// it is assumed the component will be applied at workspace start
	// by default.
	// +optional
	Apply *ApplyCommand `json:"apply,omitempty"`

	// Command providing the definition of a VsCode Task
	//
	// Deprecated; removed in v1alpha2
	// +optional
	VscodeTask *VscodeConfigurationCommand `json:"vscodeTask,omitempty"`

	// Command providing the definition of a VsCode launch action
	//
	// Deprecated; removed in v1alpha2
	// +optional
	VscodeLaunch *VscodeConfigurationCommand `json:"vscodeLaunch,omitempty"`

	// Composite command that allows executing several sub-commands
	// either sequentially or concurrently
	// +optional
	Composite *CompositeCommand `json:"composite,omitempty"`

	// Custom command whose logic is implementation-dependant
	// and should be provided by the user
	// possibly through some dedicated plugin
	// +optional
	Custom *CustomCommand `json:"custom,omitempty"`
}

+k8s:openapi-gen=true +union

func (*Command) DeepCopy

func (in *Command) DeepCopy() *Command

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

func (*Command) DeepCopyInto

func (in *Command) DeepCopyInto(out *Command)

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

func (Command) Key

func (keyed Command) Key() (string, error)

func (*Command) Normalize

func (union *Command) Normalize() error

func (*Command) Simplify

func (union *Command) Simplify()

func (Command) Visit

func (union Command) Visit(visitor CommandVisitor) error

type CommandGroup

type CommandGroup struct {
	// Kind of group the command is part of
	Kind CommandGroupKind `json:"kind"`

	// +optional
	// Identifies the default command for a given group kind
	IsDefault bool `json:"isDefault,omitempty"`
}

func (*CommandGroup) DeepCopy

func (in *CommandGroup) DeepCopy() *CommandGroup

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

func (*CommandGroup) DeepCopyInto

func (in *CommandGroup) DeepCopyInto(out *CommandGroup)

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

type CommandGroupKind

type CommandGroupKind string

CommandGroupKind describes the kind of command group. +kubebuilder:validation:Enum=build;run;test;debug

const (
	BuildCommandGroupKind CommandGroupKind = "build"
	RunCommandGroupKind   CommandGroupKind = "run"
	TestCommandGroupKind  CommandGroupKind = "test"
	DebugCommandGroupKind CommandGroupKind = "debug"
)

type CommandType

type CommandType string

CommandType describes the type of command. Only one of the following command type may be specified. +kubebuilder:validation:Enum=Exec;Apply;VscodeTask;VscodeLaunch;Composite;Custom

const (
	ExecCommandType         CommandType = "Exec"
	ApplyCommandType        CommandType = "Apply"
	VscodeTaskCommandType   CommandType = "VscodeTask"
	VscodeLaunchCommandType CommandType = "VscodeLaunch"
	CompositeCommandType    CommandType = "Composite"
	CustomCommandType       CommandType = "Custom"
)

type CommandVisitor

type CommandVisitor struct {
	Apply        func(*ApplyCommand) error
	Exec         func(*ExecCommand) error
	VscodeTask   func(*VscodeConfigurationCommand) error
	VscodeLaunch func(*VscodeConfigurationCommand) error
	Composite    func(*CompositeCommand) error
	Custom       func(*CustomCommand) error
}

+k8s:deepcopy-gen=false

type CommonProjectSource

type CommonProjectSource struct {
	// Part of project to populate in the working directory.
	// +optional
	SparseCheckoutDir string `json:"sparseCheckoutDir,omitempty"`
}

func (*CommonProjectSource) DeepCopy

func (in *CommonProjectSource) DeepCopy() *CommonProjectSource

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

func (*CommonProjectSource) DeepCopyInto

func (in *CommonProjectSource) DeepCopyInto(out *CommonProjectSource)

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

type Component

type Component struct {
	// Type of component
	//
	// +unionDiscriminator
	// +optional
	ComponentType ComponentType `json:"componentType,omitempty"`

	// Allows adding and configuring workspace-related containers
	// +optional
	Container *ContainerComponent `json:"container,omitempty"`

	// Allows specifying the definition of a volume
	// shared by several other components
	// +optional
	Volume *VolumeComponent `json:"volume,omitempty"`

	// Allows importing a plugin.
	//
	// Plugins are mainly imported devfiles that contribute components, commands
	// and events as a consistent single unit. They are defined in either YAML files
	// following the devfile syntax,
	// or as `DevWorkspaceTemplate` Kubernetes Custom Resources
	// +optional
	Plugin *PluginComponent `json:"plugin,omitempty"`

	// Allows importing into the workspace the Kubernetes resources
	// defined in a given manifest. For example this allows reusing the Kubernetes
	// definitions used to deploy some runtime components in production.
	//
	// +optional
	Kubernetes *KubernetesComponent `json:"kubernetes,omitempty"`

	// Allows importing into the workspace the OpenShift resources
	// defined in a given manifest. For example this allows reusing the OpenShift
	// definitions used to deploy some runtime components in production.
	//
	// +optional
	Openshift *OpenshiftComponent `json:"openshift,omitempty"`

	// Custom component whose logic is implementation-dependant
	// and should be provided by the user
	// possibly through some dedicated controller
	// +optional
	Custom *CustomComponent `json:"custom,omitempty"`
}

+k8s:openapi-gen=true +union

func (*Component) DeepCopy

func (in *Component) DeepCopy() *Component

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

func (*Component) DeepCopyInto

func (in *Component) DeepCopyInto(out *Component)

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

func (Component) Key

func (union Component) Key() (string, error)

func (*Component) Normalize

func (union *Component) Normalize() error

func (*Component) Simplify

func (union *Component) Simplify()

func (Component) Visit

func (union Component) Visit(visitor ComponentVisitor) error

type ComponentType

type ComponentType string

ComponentType describes the type of component. Only one of the following component type may be specified. +kubebuilder:validation:Enum=Container;Kubernetes;Openshift;Volume;Plugin;Custom

const (
	ContainerComponentType  ComponentType = "Container"
	KubernetesComponentType ComponentType = "Kubernetes"
	OpenshiftComponentType  ComponentType = "Openshift"
	PluginComponentType     ComponentType = "Plugin"
	VolumeComponentType     ComponentType = "Volume"
	CustomComponentType     ComponentType = "Custom"
)

type ComponentVisitor

type ComponentVisitor struct {
	Container  func(*ContainerComponent) error
	Plugin     func(*PluginComponent) error
	Volume     func(*VolumeComponent) error
	Kubernetes func(*KubernetesComponent) error
	Openshift  func(*OpenshiftComponent) error
	Custom     func(*CustomComponent) error
}

+k8s:deepcopy-gen=false

type CompositeCommand

type CompositeCommand struct {
	LabeledCommand `json:",inline"`

	// The commands that comprise this composite command
	Commands []string `json:"commands,omitempty" patchStrategy:"replace"`

	// Indicates if the sub-commands should be executed concurrently
	// +optional
	Parallel bool `json:"parallel,omitempty"`
}

func (*CompositeCommand) DeepCopy

func (in *CompositeCommand) DeepCopy() *CompositeCommand

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

func (*CompositeCommand) DeepCopyInto

func (in *CompositeCommand) DeepCopyInto(out *CompositeCommand)

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

type Container

type Container struct {
	Name string `json:"name"`

	Image string `json:"image,omitempty"`

	// +optional
	// Environment variables used in this container
	Env []EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// +optional
	// List of volumes mounts that should be mounted is this container.
	VolumeMounts []VolumeMount `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// +optional
	MemoryLimit string `json:"memoryLimit,omitempty"`

	// The command to run in the dockerimage component instead of the default one provided in the image.
	//
	// Defaults to an empty array, meaning use whatever is defined in the image.
	// +optional
	Command []string `json:"command,omitempty" patchStrategy:"replace"`

	// The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.
	//
	// Defaults to an empty array, meaning use whatever is defined in the image.
	// +optional
	Args []string `json:"args,omitempty" patchStrategy:"replace"`

	// +optional
	MountSources bool `json:"mountSources,omitempty"`

	// Optional specification of the path in the container where
	// project sources should be transferred/mounted when `mountSources` is `true`.
	// When omitted, the value of the `PROJECTS_ROOT` environment variable is used.
	// +optional
	SourceMapping string `json:"sourceMapping,omitempty"`

	// Specify if a container should run in its own separated pod,
	// instead of running as part of the main development environment pod.
	//
	// Default value is `false`
	// +optional
	DedicatedPod bool `json:"dedicatedPod,omitempty"`
}

func (*Container) DeepCopy

func (in *Container) DeepCopy() *Container

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

func (*Container) DeepCopyInto

func (in *Container) DeepCopyInto(out *Container)

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

type ContainerComponent

type ContainerComponent struct {
	BaseComponent `json:",inline"`
	Container     `json:",inline"`
	Endpoints     []Endpoint `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

Component that allows the developer to add a configured container into his workspace

func (*ContainerComponent) DeepCopy

func (in *ContainerComponent) DeepCopy() *ContainerComponent

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

func (*ContainerComponent) DeepCopyInto

func (in *ContainerComponent) DeepCopyInto(out *ContainerComponent)

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

type CustomCommand

type CustomCommand struct {
	LabeledCommand `json:",inline"`

	// Class of command that the associated implementation component
	// should use to process this command with the appropriate logic
	CommandClass string `json:"commandClass"`

	// Additional free-form configuration for this custom command
	// that the implementation component will know how to use
	//
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:EmbeddedResource
	EmbeddedResource runtime.RawExtension `json:"embeddedResource"`
}

func (*CustomCommand) DeepCopy

func (in *CustomCommand) DeepCopy() *CustomCommand

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

func (*CustomCommand) DeepCopyInto

func (in *CustomCommand) DeepCopyInto(out *CustomCommand)

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

type CustomComponent

type CustomComponent struct {
	// Mandatory name that allows referencing the component
	// in commands, or inside a parent
	Name string `json:"name"`

	// Class of component that the associated implementation controller
	// should use to process this command with the appropriate logic
	ComponentClass string `json:"componentClass"`

	// Additional free-form configuration for this custom component
	// that the implementation controller will know how to use
	//
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:EmbeddedResource
	EmbeddedResource runtime.RawExtension `json:"embeddedResource"`
}

func (*CustomComponent) DeepCopy

func (in *CustomComponent) DeepCopy() *CustomComponent

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

func (*CustomComponent) DeepCopyInto

func (in *CustomComponent) DeepCopyInto(out *CustomComponent)

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

type CustomProjectSource

type CustomProjectSource struct {
	ProjectSourceClass string `json:"projectSourceClass"`
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:EmbeddedResource
	EmbeddedResource runtime.RawExtension `json:"embeddedResource"`
}

func (*CustomProjectSource) DeepCopy

func (in *CustomProjectSource) DeepCopy() *CustomProjectSource

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

func (*CustomProjectSource) DeepCopyInto

func (in *CustomProjectSource) DeepCopyInto(out *CustomProjectSource)

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

type DevWorkspace

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

	Spec   DevWorkspaceSpec   `json:"spec,omitempty"`
	Status DevWorkspaceStatus `json:"status,omitempty"`
}

DevWorkspace is the Schema for the devworkspaces API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=devworkspaces,scope=Namespaced +kubebuilder:printcolumn:name="Workspace ID",type="string",JSONPath=".status.workspaceId",description="The workspace's unique id" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="The current workspace startup phase" +kubebuilder:printcolumn:name="URL",type="string",JSONPath=".status.ideUrl",description="Url endpoint for accessing workspace"

func (*DevWorkspace) ConvertFrom

func (dest *DevWorkspace) ConvertFrom(srcRaw conversion.Hub) error

func (*DevWorkspace) ConvertTo

func (src *DevWorkspace) ConvertTo(destRaw conversion.Hub) error

func (*DevWorkspace) DeepCopy

func (in *DevWorkspace) DeepCopy() *DevWorkspace

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

func (*DevWorkspace) DeepCopyInto

func (in *DevWorkspace) DeepCopyInto(out *DevWorkspace)

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

func (*DevWorkspace) DeepCopyObject

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

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

type DevWorkspaceList

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

DevWorkspaceList contains a list of DevWorkspace

func (*DevWorkspaceList) DeepCopy

func (in *DevWorkspaceList) DeepCopy() *DevWorkspaceList

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

func (*DevWorkspaceList) DeepCopyInto

func (in *DevWorkspaceList) DeepCopyInto(out *DevWorkspaceList)

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

func (*DevWorkspaceList) DeepCopyObject

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

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

type DevWorkspaceSpec

type DevWorkspaceSpec struct {
	Started      bool                     `json:"started"`
	RoutingClass string                   `json:"routingClass,omitempty"`
	Template     DevWorkspaceTemplateSpec `json:"template,omitempty"`
}

DevWorkspaceSpec defines the desired state of DevWorkspace +k8s:openapi-gen=true

func (*DevWorkspaceSpec) DeepCopy

func (in *DevWorkspaceSpec) DeepCopy() *DevWorkspaceSpec

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

func (*DevWorkspaceSpec) DeepCopyInto

func (in *DevWorkspaceSpec) DeepCopyInto(out *DevWorkspaceSpec)

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

type DevWorkspaceStatus

type DevWorkspaceStatus struct {
	// Id of the workspace
	WorkspaceId string `json:"workspaceId"`
	// URL at which the Worksace Editor can be joined
	IdeUrl string         `json:"ideUrl,omitempty"`
	Phase  WorkspacePhase `json:"phase,omitempty"`
	// Conditions represent the latest available observations of an object's state
	Conditions []WorkspaceCondition `json:"conditions,omitempty"`
	// Message is a short user-readable message giving additional information
	// about an object's state
	Message string `json:"message,omitempty"`
}

DevWorkspaceStatus defines the observed state of DevWorkspace +k8s:openapi-gen=true

func (*DevWorkspaceStatus) DeepCopy

func (in *DevWorkspaceStatus) DeepCopy() *DevWorkspaceStatus

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

func (*DevWorkspaceStatus) DeepCopyInto

func (in *DevWorkspaceStatus) DeepCopyInto(out *DevWorkspaceStatus)

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

type DevWorkspaceTemplate

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

	Spec DevWorkspaceTemplateSpec `json:"spec,omitempty"`
}

DevWorkspaceTemplate is the Schema for the devworkspacetemplates API +k8s:openapi-gen=true +kubebuilder:resource:path=devworkspacetemplates,scope=Namespaced,shortName=dwt

func (*DevWorkspaceTemplate) ConvertFrom

func (dest *DevWorkspaceTemplate) ConvertFrom(srcRaw conversion.Hub) error

func (*DevWorkspaceTemplate) ConvertTo

func (src *DevWorkspaceTemplate) ConvertTo(destRaw conversion.Hub) error

func (*DevWorkspaceTemplate) DeepCopy

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

func (*DevWorkspaceTemplate) DeepCopyInto

func (in *DevWorkspaceTemplate) DeepCopyInto(out *DevWorkspaceTemplate)

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

func (*DevWorkspaceTemplate) DeepCopyObject

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

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

type DevWorkspaceTemplateList

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

DevWorkspaceTemplateList contains a list of DevWorkspaceTemplate

func (*DevWorkspaceTemplateList) DeepCopy

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

func (*DevWorkspaceTemplateList) DeepCopyInto

func (in *DevWorkspaceTemplateList) DeepCopyInto(out *DevWorkspaceTemplateList)

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

func (*DevWorkspaceTemplateList) DeepCopyObject

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

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

type DevWorkspaceTemplateSpec

type DevWorkspaceTemplateSpec struct {
	// Parent workspace template
	// +optional
	Parent *Parent `json:"parent,omitempty"`

	DevWorkspaceTemplateSpecContent `json:",inline"`
}

Structure of the workspace. This is also the specification of a workspace template. +k8s:openapi-gen=true

func (*DevWorkspaceTemplateSpec) DeepCopy

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

func (*DevWorkspaceTemplateSpec) DeepCopyInto

func (in *DevWorkspaceTemplateSpec) DeepCopyInto(out *DevWorkspaceTemplateSpec)

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

type DevWorkspaceTemplateSpecContent

type DevWorkspaceTemplateSpecContent struct {
	// Predefined, ready-to-use, workspace-related commands
	// +optional
	//
	Commands []Command `json:"commands,omitempty" patchStrategy:"merge" patchMergeKey:"id"`

	// Bindings of commands to events.
	// Each command is referred-to by its name.
	// +optional
	Events *Events `json:"events,omitempty"`

	// Projects worked on in the workspace, containing names and sources locations
	// +optional
	Projects []Project `json:"projects,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// StarterProjects is a project that can be used as a starting point when bootstrapping new projects
	// +optional
	StarterProjects []StarterProject `json:"starterProjects,omitempty"`

	// List of the workspace components, such as editor and plugins,
	// user-provided containers, or other types of components
	// +optional
	Components []Component `json:"components,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

func (*DevWorkspaceTemplateSpecContent) DeepCopy

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

func (*DevWorkspaceTemplateSpecContent) DeepCopyInto

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

type Endpoint

type Endpoint struct {
	Name string `json:"name"`

	// +optional
	TargetPort int `json:"targetPort,omitempty"`

	// Describes how the endpoint should be exposed on the network.
	//
	// - `public` means that the endpoint will be exposed on the public network, typically through
	// a K8S ingress or an OpenShift route.
	//
	// - `internal` means that the endpoint will be exposed internally outside of the main workspace POD,
	// typically by K8S services, to be consumed by other elements running
	// on the same cloud internal network.
	//
	// - `none` means that the endpoint will not be exposed and will only be accessible
	// inside the main workspace POD, on a local address.
	//
	// Default value is `public`
	// +optional
	Exposure EndpointExposure `json:"exposure,omitempty"`

	// Describes the application and transport protocols of the traffic that will go through this endpoint.
	//
	// - `http`: Endpoint will have `http` traffic, typically on a TCP connection.
	// It will be automaticaly promoted to `https` when the `secure` field is set to `true`.
	//
	// - `https`: Endpoint will have `https` traffic, typically on a TCP connection.
	//
	// - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection.
	// It will be automaticaly promoted to `wss` when the `secure` field is set to `true`.
	//
	// - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection.
	//
	// - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol.
	//
	// - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol.
	//
	// Default value is `http`
	// +optional
	Protocol string `json:"protocol,omitempty"`

	// Describes whether the endpoint should be secured and protected by some
	// authentication process
	// +optional
	Secure bool `json:"secure,omitempty"`

	// Path of the endpoint URL
	// +optional
	Path string `json:"path,omitempty"`

	// Map of implementation-dependant string-based free-form attributes.
	//
	// Examples of Che-specific attributes:
	//
	// - cookiesAuthEnabled: "true" / "false",
	//
	// - type: "terminal" / "ide" / "ide-dev",
	// +optional
	Attributes map[string]string `json:"attributes,omitempty"`
}

func (*Endpoint) DeepCopy

func (in *Endpoint) DeepCopy() *Endpoint

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

func (*Endpoint) DeepCopyInto

func (in *Endpoint) DeepCopyInto(out *Endpoint)

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

type EndpointExposure

type EndpointExposure string

EndpointExposure describes the way an endpoint is exposed on the network. Only one of the following exposures may be specified: public, internal, none. +kubebuilder:validation:Enum=public;internal;none

const (
	// Endpoint will be exposed on the public network, typically through
	// a K8S ingress or an OpenShift route
	PublicEndpointExposure EndpointExposure = "public"
	// Endpoint will be exposed internally outside of the main workspace POD,
	// typically by K8S services, to be consumed by other elements running
	// on the same cloud internal network.
	InternalEndpointExposure EndpointExposure = "internal"
	// Endpoint will not be exposed and will only be accessible
	// inside the main workspace POD, on a local address.
	NoneEndpointExposure EndpointExposure = "none"
)

type EndpointProtocol

type EndpointProtocol string

EndpointProtocol defines the application and transport protocols of the traffic that will go through this endpoint. Only one of the following protocols may be specified: http, ws, tcp, udp. +kubebuilder:validation:Enum=http;ws;tcp;udp

const (
	// Endpoint will have `http` traffic, typically on a TCP connection.
	// It will be automaticaly promoted to `https` when the `secure` field is set to `true`
	HTTPEndpointProtocol EndpointProtocol = "http"
	// Endpoint will have `https` traffic, typically on a TCP connection
	HTTPSEndpointProtocol EndpointProtocol = "https"
	// Endpoint will have `ws` traffic, typically on a TCP connection
	// It will be automaticaly promoted to `wss` when the `secure` field is set to `true`
	WSEndpointProtocol EndpointProtocol = "ws"
	// Endpoint will have `wss` traffic, typically on a TCP connection
	WSSEndpointProtocol EndpointProtocol = "wss"
	// Endpoint will have traffic on a TCP connection,
	// without specifying an application protocol
	TCPEndpointProtocol EndpointProtocol = "tcp"
	// Endpoint will have traffic on an UDP connection,
	// without specifying an application protocol
	UDPEndpointProtocol EndpointProtocol = "udp"
)

type EnvVar

type EnvVar struct {
	Name  string `json:"name" yaml:"name"`
	Value string `json:"value" yaml:"value"`
}

func (*EnvVar) DeepCopy

func (in *EnvVar) DeepCopy() *EnvVar

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

func (*EnvVar) DeepCopyInto

func (in *EnvVar) DeepCopyInto(out *EnvVar)

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

type Events

type Events struct {
	WorkspaceEvents `json:",inline"`
}

func (*Events) DeepCopy

func (in *Events) DeepCopy() *Events

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

func (*Events) DeepCopyInto

func (in *Events) DeepCopyInto(out *Events)

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

type ExecCommand

type ExecCommand struct {
	LabeledCommand `json:",inline"`

	// The actual command-line string
	//
	// Special variables that can be used:
	//
	//  - `$PROJECTS_ROOT`: A path where projects sources are mounted
	//
	//  - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/<project-name>). If there are multiple projects, this will point to the directory of the first one.
	CommandLine string `json:"commandLine,omitempty"`

	// Describes component to which given action relates
	Component string `json:"component,omitempty"`

	// Working directory where the command should be executed
	//
	// Special variables that can be used:
	//
	//  - `${PROJECTS_ROOT}`: A path where projects sources are mounted
	//
	//  - `${PROJECT_SOURCE}`: A path to a project source (${PROJECTS_ROOT}/<project-name>). If there are multiple projects, this will point to the directory of the first one.
	WorkingDir string `json:"workingDir,omitempty"`

	// +optional
	// Optional list of environment variables that have to be set
	// before running the command
	Env []EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// +optional
	// Whether the command is capable to reload itself when source code changes.
	// If set to `true` the command won't be restarted and it is expected to handle file changes on its own.
	//
	// Default value is `false`
	HotReloadCapable bool `json:"hotReloadCapable,omitempty"`
}

func (*ExecCommand) DeepCopy

func (in *ExecCommand) DeepCopy() *ExecCommand

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

func (*ExecCommand) DeepCopyInto

func (in *ExecCommand) DeepCopyInto(out *ExecCommand)

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

type GitLikeProjectSource

type GitLikeProjectSource struct {
	CommonProjectSource `json:",inline"`

	// Defines from what the project should be checked out. Required if there are more than one remote configured
	// +optional
	CheckoutFrom *CheckoutFrom `json:"checkoutFrom,omitempty"`

	// The remotes map which should be initialized in the git project. Must have at least one remote configured
	// +optional
	Remotes map[string]string `json:"remotes,omitempty"`
}

func (*GitLikeProjectSource) DeepCopy

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

func (*GitLikeProjectSource) DeepCopyInto

func (in *GitLikeProjectSource) DeepCopyInto(out *GitLikeProjectSource)

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

type GitProjectSource

type GitProjectSource struct {
	GitLikeProjectSource `json:",inline"`
}

func (*GitProjectSource) DeepCopy

func (in *GitProjectSource) DeepCopy() *GitProjectSource

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

func (*GitProjectSource) DeepCopyInto

func (in *GitProjectSource) DeepCopyInto(out *GitProjectSource)

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

type GithubProjectSource

type GithubProjectSource struct {
	GitLikeProjectSource `json:",inline"`
}

func (*GithubProjectSource) DeepCopy

func (in *GithubProjectSource) DeepCopy() *GithubProjectSource

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

func (*GithubProjectSource) DeepCopyInto

func (in *GithubProjectSource) DeepCopyInto(out *GithubProjectSource)

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

type ImportReference

type ImportReference struct {
	ImportReferenceUnion `json:",inline"`
	// +optional
	RegistryUrl string `json:"registryUrl,omitempty"`
}

func (*ImportReference) DeepCopy

func (in *ImportReference) DeepCopy() *ImportReference

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

func (*ImportReference) DeepCopyInto

func (in *ImportReference) DeepCopyInto(out *ImportReference)

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

type ImportReferenceType

type ImportReferenceType string

ImportReferenceType describes the type of location from where the referenced template structure should be retrieved. Only one of the following parent locations may be specified. +kubebuilder:validation:Enum=Uri;Id;Kubernetes

const (
	UriImportReferenceType        ImportReferenceType = "Uri"
	IdImportReferenceType         ImportReferenceType = "Id"
	KubernetesImportReferenceType ImportReferenceType = "Kubernetes"
)

type ImportReferenceUnion

type ImportReferenceUnion struct {
	// type of location from where the referenced template structure should be retrieved
	// +
	// +unionDiscriminator
	// +optional
	ImportReferenceType ImportReferenceType `json:"importReferenceType,omitempty"`

	// Uri of a Devfile yaml file
	// +optional
	Uri string `json:"uri,omitempty"`

	// Id in a registry that contains a Devfile yaml file
	// +optional
	Id string `json:"id,omitempty"`

	// Reference to a Kubernetes CRD of type DevWorkspaceTemplate
	// +optional
	Kubernetes *KubernetesCustomResourceImportReference `json:"kubernetes,omitempty"`
}

Location from where the an import reference is retrieved +k8s:openapi-gen=true +union

func (*ImportReferenceUnion) DeepCopy

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

func (*ImportReferenceUnion) DeepCopyInto

func (in *ImportReferenceUnion) DeepCopyInto(out *ImportReferenceUnion)

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

func (*ImportReferenceUnion) Normalize

func (union *ImportReferenceUnion) Normalize() error

func (*ImportReferenceUnion) Simplify

func (union *ImportReferenceUnion) Simplify()

func (ImportReferenceUnion) Visit

type ImportReferenceUnionVisitor

type ImportReferenceUnionVisitor struct {
	Uri        func(string) error
	Id         func(string) error
	Kubernetes func(*KubernetesCustomResourceImportReference) error
}

+k8s:deepcopy-gen=false

type K8sLikeComponent

type K8sLikeComponent struct {
	BaseComponent            `json:",inline"`
	K8sLikeComponentLocation `json:",inline"`

	// Mandatory name that allows referencing the component
	// in commands, or inside a parent
	Name string `json:"name"`

	Endpoints []Endpoint `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

func (*K8sLikeComponent) DeepCopy

func (in *K8sLikeComponent) DeepCopy() *K8sLikeComponent

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

func (*K8sLikeComponent) DeepCopyInto

func (in *K8sLikeComponent) DeepCopyInto(out *K8sLikeComponent)

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

type K8sLikeComponentLocation

type K8sLikeComponentLocation struct {
	// Type of Kubernetes-like location
	// +
	// +unionDiscriminator
	// +optional
	LocationType K8sLikeComponentLocationType `json:"locationType,omitempty"`

	// Location in a file fetched from a uri.
	// +optional
	Uri string `json:"uri,omitempty"`

	// Inlined manifest
	// +optional
	Inlined string `json:"inlined,omitempty"`
}

+k8s:openapi-gen=true +union

func (*K8sLikeComponentLocation) DeepCopy

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

func (*K8sLikeComponentLocation) DeepCopyInto

func (in *K8sLikeComponentLocation) DeepCopyInto(out *K8sLikeComponentLocation)

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

func (*K8sLikeComponentLocation) Normalize

func (union *K8sLikeComponentLocation) Normalize() error

func (*K8sLikeComponentLocation) Simplify

func (union *K8sLikeComponentLocation) Simplify()

func (K8sLikeComponentLocation) Visit

type K8sLikeComponentLocationType

type K8sLikeComponentLocationType string

K8sLikeComponentLocationType describes the type of the location the configuration is fetched from. Only one of the following component type may be specified. +kubebuilder:validation:Enum=Uri;Inlined

const (
	UriK8sLikeComponentLocationType     K8sLikeComponentLocationType = "Uri"
	InlinedK8sLikeComponentLocationType K8sLikeComponentLocationType = "Inlined"
)

type K8sLikeComponentLocationVisitor

type K8sLikeComponentLocationVisitor struct {
	Uri     func(string) error
	Inlined func(string) error
}

+k8s:deepcopy-gen=false

type Keyed

type Keyed interface {
	Key() (string, error)
}

+k8s:deepcopy-gen=false

type KubernetesComponent

type KubernetesComponent struct {
	K8sLikeComponent `json:",inline"`
}

Component that allows partly importing Kubernetes resources into the workspace POD

func (*KubernetesComponent) DeepCopy

func (in *KubernetesComponent) DeepCopy() *KubernetesComponent

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

func (*KubernetesComponent) DeepCopyInto

func (in *KubernetesComponent) DeepCopyInto(out *KubernetesComponent)

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

type KubernetesCustomResourceImportReference

type KubernetesCustomResourceImportReference struct {
	Name string `json:"name"`

	// +optional
	Namespace string `json:"namespace,omitempty"`
}

func (*KubernetesCustomResourceImportReference) DeepCopy

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

func (*KubernetesCustomResourceImportReference) DeepCopyInto

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

type LabeledCommand

type LabeledCommand struct {
	BaseCommand `json:",inline"`

	// +optional
	// Optional label that provides a label for this command
	// to be used in Editor UI menus for example
	Label string `json:"label,omitempty"`
}

func (*LabeledCommand) DeepCopy

func (in *LabeledCommand) DeepCopy() *LabeledCommand

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

func (*LabeledCommand) DeepCopyInto

func (in *LabeledCommand) DeepCopyInto(out *LabeledCommand)

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

type OpenshiftComponent

type OpenshiftComponent struct {
	K8sLikeComponent `json:",inline"`
}

Component that allows partly importing Openshift resources into the workspace POD

func (*OpenshiftComponent) DeepCopy

func (in *OpenshiftComponent) DeepCopy() *OpenshiftComponent

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

func (*OpenshiftComponent) DeepCopyInto

func (in *OpenshiftComponent) DeepCopyInto(out *OpenshiftComponent)

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

type OverrideDirective

type OverrideDirective struct {
	// Path of the element the directive should be applied on
	//
	// For the following path tree:
	//
	// 	“`json
	// 	commands:
	// 	  - exec
	// 	      id: commandId
	// 	“`
	//
	// the path would be: `commands["commandId"]`.
	Path string `json:"path"`

	// `$Patch` directlive as defined in
	// https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md#basic-patch-format
	//
	// This is an enumeration that allows the following values:
	//
	// - *replace*: indicates that the element matched by the `jsonPath` field should be replaced instead of being merged.
	//
	// - *delete*: indicates that the element matched by the `jsonPath` field should be deleted.
	//
	// +optional
	Patch OverridingPatchDirective `json:"patch,omitempty"`

	// `DeleteFromPrimitiveList` directive as defined in
	// https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md#deletefromprimitivelist-directive
	//
	// This indicates that the elements in this list should be deleted from the original primitive list.
	// The original primitive list is the element matched by the `jsonPath` field.
	// +optional
	DeleteFromPrimitiveList []string `json:"deleteFromPrimitiveList,omitempty"`

	// `SetElementOrder` directive as defined in
	// https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md#deletefromprimitivelist-directive
	//
	// This provides a way to specify the order of a list. The relative order specified in this directive will be retained.
	// The list whose order is controller is the element matched by the `jsonPath` field.
	// If the controller list is a list of objects, then the values in this list should be
	// the merge keys of the objects to order.
	// +optional
	SetElementOrder []string `json:"setElementOrder,omitempty"`
}

func (*OverrideDirective) DeepCopy

func (in *OverrideDirective) DeepCopy() *OverrideDirective

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

func (*OverrideDirective) DeepCopyInto

func (in *OverrideDirective) DeepCopyInto(out *OverrideDirective)

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

type Overrides

type Overrides struct {
	OverridesBase `json:",inline"`

	// Overrides of projects encapsulated in a parent devfile.
	// Overriding is done using a strategic merge patch.
	// +optional
	Projects []Project `json:"projects,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// Overrides of starter projects encapsulated in a parent devfile
	// Overriding is done using a strategic merge patch.
	// +optional
	StarterProjects []StarterProject `json:"starterProjects,omitempty"`

	// Overrides of components encapsulated in a parent devfile.
	// Overriding is done using a strategic merge patch
	// +optional
	Components []Component `json:"components,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

func (*Overrides) DeepCopy

func (in *Overrides) DeepCopy() *Overrides

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

func (*Overrides) DeepCopyInto

func (in *Overrides) DeepCopyInto(out *Overrides)

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

type OverridesBase

type OverridesBase struct {
	// Overrides of commands encapsulated in a parent devfile or a plugin.
	// Overriding is done using a strategic merge patch
	// +optional
	Commands []Command `json:"commands,omitempty" patchStrategy:"merge" patchMergeKey:"id"`
}

func (*OverridesBase) DeepCopy

func (in *OverridesBase) DeepCopy() *OverridesBase

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

func (*OverridesBase) DeepCopyInto

func (in *OverridesBase) DeepCopyInto(out *OverridesBase)

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

type OverridingPatchDirective

type OverridingPatchDirective string

+kubebuilder:validation:Enum=replace;delete

const (
	ReplaceOverridingDirective OverridingPatchDirective = "replace"
	DeleteOverridingDirective  OverridingPatchDirective = "delete"
)
const (
	DeleteFromPrimitiveListOverridingPatchDirective OverridingPatchDirective = "replace"
)

type Parent

type Parent struct {
	ImportReference `json:",inline"`
	Overrides       `json:",inline"`
}

func (*Parent) DeepCopy

func (in *Parent) DeepCopy() *Parent

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

func (*Parent) DeepCopyInto

func (in *Parent) DeepCopyInto(out *Parent)

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

type PluginComponent

type PluginComponent struct {
	BaseComponent   `json:",inline"`
	ImportReference `json:",inline"`
	PluginOverrides `json:",inline"`

	// +optional
	// Optional name that allows referencing the component
	// in commands, or inside a parent
	// If omitted it will be infered from the location (uri or registryEntry)
	Name string `json:"name,omitempty"`
}

func (*PluginComponent) DeepCopy

func (in *PluginComponent) DeepCopy() *PluginComponent

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

func (*PluginComponent) DeepCopyInto

func (in *PluginComponent) DeepCopyInto(out *PluginComponent)

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

type PluginComponentsOverride

type PluginComponentsOverride struct {
	// Type of component override for a plugin
	//
	// +unionDiscriminator
	// +optional
	ComponentType PluginComponentsOverrideType `json:"componentType,omitempty"`

	// Configuration overriding for a Container component in a plugin
	// +optional
	Container *ContainerComponent `json:"container,omitempty"`

	// Configuration overriding for a Volume component in a plugin
	// +optional
	Volume *VolumeComponent `json:"volume,omitempty"`

	// Configuration overriding for a Kubernetes component in a plugin
	// +optional
	Kubernetes *KubernetesComponent `json:"kubernetes,omitempty"`

	// Configuration overriding for an OpenShift component in a plugin
	// +optional
	Openshift *OpenshiftComponent `json:"openshift,omitempty"`
}

+k8s:openapi-gen=true +union

func (*PluginComponentsOverride) DeepCopy

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

func (*PluginComponentsOverride) DeepCopyInto

func (in *PluginComponentsOverride) DeepCopyInto(out *PluginComponentsOverride)

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

func (PluginComponentsOverride) Key

func (union PluginComponentsOverride) Key() (string, error)

func (*PluginComponentsOverride) Normalize

func (union *PluginComponentsOverride) Normalize() error

func (*PluginComponentsOverride) Simplify

func (union *PluginComponentsOverride) Simplify()

func (PluginComponentsOverride) Visit

type PluginComponentsOverrideType

type PluginComponentsOverrideType string

PluginComponentsOverrideType describes the type of components that can be overriden for a plugin. Only one of the following component type may be specified. +kubebuilder:validation:Enum=Container;Kubernetes;Openshift;Volume

const (
	ContainerPluginComponentsOverrideType  PluginComponentsOverrideType = "Container"
	KubernetesPluginComponentsOverrideType PluginComponentsOverrideType = "Kubernetes"
	OpenshiftPluginComponentsOverrideType  PluginComponentsOverrideType = "Openshift"
	VolumePluginComponentsOverrideType     PluginComponentsOverrideType = "Volume"
)

type PluginComponentsOverrideVisitor

type PluginComponentsOverrideVisitor struct {
	Container  func(*ContainerComponent) error
	Volume     func(*VolumeComponent) error
	Kubernetes func(*KubernetesComponent) error
	Openshift  func(*OpenshiftComponent) error
}

+k8s:deepcopy-gen=false

type PluginOverrides

type PluginOverrides struct {
	OverridesBase `json:",inline"`

	// Overrides of components encapsulated in a plugin.
	// Overriding is done using a strategic merge patch.
	// A plugin cannot override embedded plugin components.
	// +optional
	Components []PluginComponentsOverride `json:"components,omitempty"`
}

func (*PluginOverrides) DeepCopy

func (in *PluginOverrides) DeepCopy() *PluginOverrides

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

func (*PluginOverrides) DeepCopyInto

func (in *PluginOverrides) DeepCopyInto(out *PluginOverrides)

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

type Project

type Project struct {
	// Project name
	Name string `json:"name"`

	// Path relative to the root of the projects to which this project should be cloned into. This is a unix-style relative path (i.e. uses forward slashes). The path is invalid if it is absolute or tries to escape the project root through the usage of '..'. If not specified, defaults to the project name.
	// +optional
	ClonePath string `json:"clonePath,omitempty"`

	ProjectSource `json:",inline"`
}

func (*Project) DeepCopy

func (in *Project) DeepCopy() *Project

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

func (*Project) DeepCopyInto

func (in *Project) DeepCopyInto(out *Project)

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

type ProjectSource

type ProjectSource struct {
	// Type of project source
	// +
	// +unionDiscriminator
	// +optional
	SourceType ProjectSourceType `json:"sourceType,omitempty"`

	// Project's Git source
	// +optional
	Git *GitProjectSource `json:"git,omitempty"`

	// Project's GitHub source
	// +optional
	Github *GithubProjectSource `json:"github,omitempty"`

	// Project's Zip source
	// +optional
	Zip *ZipProjectSource `json:"zip,omitempty"`

	// Project's Custom source
	// +optional
	Custom *CustomProjectSource `json:"custom,omitempty"`
}

+k8s:openapi-gen=true +union

func (*ProjectSource) DeepCopy

func (in *ProjectSource) DeepCopy() *ProjectSource

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

func (*ProjectSource) DeepCopyInto

func (in *ProjectSource) DeepCopyInto(out *ProjectSource)

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

func (*ProjectSource) Normalize

func (union *ProjectSource) Normalize() error

func (*ProjectSource) Simplify

func (union *ProjectSource) Simplify()

func (ProjectSource) Visit

func (union ProjectSource) Visit(visitor ProjectSourceVisitor) error

type ProjectSourceType

type ProjectSourceType string

ProjectSourceType describes the type of Project sources. Only one of the following project sources may be specified. If none of the following policies is specified, the default one is AllowConcurrent. +kubebuilder:validation:Enum=Git;Github;Zip;Custom

const (
	GitProjectSourceType    ProjectSourceType = "Git"
	GitHubProjectSourceType ProjectSourceType = "Github"
	ZipProjectSourceType    ProjectSourceType = "Zip"
	CustomProjectSourceType ProjectSourceType = "Custom"
)

type ProjectSourceVisitor

type ProjectSourceVisitor struct {
	Git    func(*GitProjectSource) error
	Github func(*GithubProjectSource) error
	Zip    func(*ZipProjectSource) error
	Custom func(*CustomProjectSource) error
}

+k8s:deepcopy-gen=false

type StarterProject

type StarterProject struct {
	Project `json:",inline"`

	// Description of a starter project
	// +optional
	Description string `json:"description,omitempty"`
}

func (*StarterProject) DeepCopy

func (in *StarterProject) DeepCopy() *StarterProject

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

func (*StarterProject) DeepCopyInto

func (in *StarterProject) DeepCopyInto(out *StarterProject)

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

type Union

type Union interface {

	// Normalize allows normalizing the union, according to the following rules:
	// - When only one field of the union is set and no discriminator is set, set the discriminator according to the union value.
	// - When several fields are set and a discrimnator is set, remove (== reset to zero value) all the values that do not match the discriminator.
	// - When only one union value is set and it matches discriminator, just do nothing.
	// - In other case, something is inconsistent or ambiguous: an error is thrown.
	Normalize() error

	// Simplify allows removing the union discriminator,
	// but only after normalizing it if necessary.
	Simplify()
	// contains filtered or unexported methods
}

Union is an interface that allows managing structs defined as Kubernetes unions with discriminators, according to the following KEP: https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190325-unions.md +k8s:deepcopy-gen=false

type Volume

type Volume struct {
	// Mandatory name that allows referencing the Volume component
	// in Container volume mounts or inside a parent
	Name string `json:"name"`

	// +optional
	// Size of the volume
	Size string `json:"size,omitempty"`

	// +optional
	// Ephemeral volumes are not stored persistently across restarts. Defaults
	// to false
	Ephemeral bool `json:"ephemeral,omitempty"`
}

Volume that should be mounted to a component container

func (*Volume) DeepCopy

func (in *Volume) DeepCopy() *Volume

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

func (*Volume) DeepCopyInto

func (in *Volume) DeepCopyInto(out *Volume)

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

type VolumeComponent

type VolumeComponent struct {
	BaseComponent `json:",inline"`
	Volume        `json:",inline"`
}

Component that allows the developer to declare and configure a volume into his workspace

func (*VolumeComponent) DeepCopy

func (in *VolumeComponent) DeepCopy() *VolumeComponent

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

func (*VolumeComponent) DeepCopyInto

func (in *VolumeComponent) DeepCopyInto(out *VolumeComponent)

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

type VolumeMount

type VolumeMount struct {
	// The volume mount name is the name of an existing `Volume` component.
	// If several containers mount the same volume name
	// then they will reuse the same volume and will be able to access to the same files.
	Name string `json:"name"`

	// The path in the component container where the volume should be mounted.
	// If not path is mentioned, default path is the is `/<name>`.
	// +optional
	Path string `json:"path,omitempty"`
}

Volume that should be mounted to a component container

func (*VolumeMount) DeepCopy

func (in *VolumeMount) DeepCopy() *VolumeMount

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

func (*VolumeMount) DeepCopyInto

func (in *VolumeMount) DeepCopyInto(out *VolumeMount)

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

type VscodeConfigurationCommand

type VscodeConfigurationCommand struct {
	BaseCommand                        `json:",inline"`
	VscodeConfigurationCommandLocation `json:",inline"`
}

func (*VscodeConfigurationCommand) DeepCopy

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

func (*VscodeConfigurationCommand) DeepCopyInto

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

type VscodeConfigurationCommandLocation

type VscodeConfigurationCommandLocation struct {
	// Type of Vscode configuration command location
	// +
	// +unionDiscriminator
	// +optional
	LocationType VscodeConfigurationCommandLocationType `json:"locationType,omitempty"`

	// Location as an absolute of relative URI
	// the VsCode configuration will be fetched from
	// +optional
	Uri string `json:"uri,omitempty"`

	// Inlined content of the VsCode configuration
	// +optional
	Inlined string `json:"inlined,omitempty"`
}

+k8s:openapi-gen=true +union

func (*VscodeConfigurationCommandLocation) DeepCopy

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

func (*VscodeConfigurationCommandLocation) DeepCopyInto

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

func (*VscodeConfigurationCommandLocation) Normalize

func (union *VscodeConfigurationCommandLocation) Normalize() error

func (*VscodeConfigurationCommandLocation) Simplify

func (union *VscodeConfigurationCommandLocation) Simplify()

func (VscodeConfigurationCommandLocation) Visit

type VscodeConfigurationCommandLocationType

type VscodeConfigurationCommandLocationType string

VscodeConfigurationCommandLocationType describes the type of the location the configuration is fetched from. Only one of the following component type may be specified. +kubebuilder:validation:Enum=Uri;Inlined

const (
	UriVscodeConfigurationCommandLocationType     VscodeConfigurationCommandLocationType = "Uri"
	InlinedVscodeConfigurationCommandLocationType VscodeConfigurationCommandLocationType = "Inlined"
)

type VscodeConfigurationCommandLocationVisitor

type VscodeConfigurationCommandLocationVisitor struct {
	Uri     func(string) error
	Inlined func(string) error
}

+k8s:deepcopy-gen=false

type WorkspaceCondition

type WorkspaceCondition struct {
	// Type is the type of the condition.
	Type WorkspaceConditionType `json:"type"`
	// Phase is the status of the condition.
	// Can be True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time the condition transitioned from one status to another.
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Unique, one-word, CamelCase reason for the condition's last transition.
	Reason string `json:"reason,omitempty"`
	// Human-readable message indicating details about last transition.
	Message string `json:"message,omitempty"`
}

WorkspaceCondition contains details for the current condition of this workspace.

func (*WorkspaceCondition) DeepCopy

func (in *WorkspaceCondition) DeepCopy() *WorkspaceCondition

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

func (*WorkspaceCondition) DeepCopyInto

func (in *WorkspaceCondition) DeepCopyInto(out *WorkspaceCondition)

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

type WorkspaceConditionType

type WorkspaceConditionType string

Types of conditions reported by workspace

const (
	WorkspaceComponentsReady     WorkspaceConditionType = "ComponentsReady"
	WorkspaceRoutingReady        WorkspaceConditionType = "RoutingReady"
	WorkspaceServiceAccountReady WorkspaceConditionType = "ServiceAccountReady"
	WorkspaceReady               WorkspaceConditionType = "Ready"
	WorkspaceFailedStart         WorkspaceConditionType = "FailedStart"
	WorkspaceError               WorkspaceConditionType = "Error"
)

type WorkspaceEvents

type WorkspaceEvents struct {
	// Names of commands that should be executed before the workspace start.
	// Kubernetes-wise, these commands would typically be executed in init containers of the workspace POD.
	// +optional
	PreStart []string `json:"preStart,omitempty"`

	// Names of commands that should be executed after the workspace is completely started.
	// In the case of Che-Theia, these commands should be executed after all plugins and extensions have started, including project cloning.
	// This means that those commands are not triggered until the user opens the IDE in his browser.
	// +optional
	PostStart []string `json:"postStart,omitempty"`

	// +optional
	// Names of commands that should be executed before stopping the workspace.
	PreStop []string `json:"preStop,omitempty"`

	// +optional
	// Names of commands that should be executed after stopping the workspace.
	PostStop []string `json:"postStop,omitempty"`
}

func (*WorkspaceEvents) DeepCopy

func (in *WorkspaceEvents) DeepCopy() *WorkspaceEvents

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

func (*WorkspaceEvents) DeepCopyInto

func (in *WorkspaceEvents) DeepCopyInto(out *WorkspaceEvents)

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

type WorkspacePhase

type WorkspacePhase string
const (
	WorkspaceStatusStarting WorkspacePhase = "Starting"
	WorkspaceStatusRunning  WorkspacePhase = "Running"
	WorkspaceStatusStopped  WorkspacePhase = "Stopped"
	WorkspaceStatusStopping WorkspacePhase = "Stopping"
	WorkspaceStatusFailed   WorkspacePhase = "Failed"
	WorkspaceStatusError    WorkspacePhase = "Error"
)

Valid workspace Statuses

type ZipProjectSource

type ZipProjectSource struct {
	CommonProjectSource `json:",inline"`

	// Zip project's source location address. Should be file path of the archive, e.g. file://$FILE_PATH
	// +required
	Location string `json:"location,omitempty"`
}

func (*ZipProjectSource) DeepCopy

func (in *ZipProjectSource) DeepCopy() *ZipProjectSource

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

func (*ZipProjectSource) DeepCopyInto

func (in *ZipProjectSource) DeepCopyInto(out *ZipProjectSource)

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