v1alpha2

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: 10 Imported by: 0

Documentation

Overview

Package v1alpha2 contains API Schema definitions for the org v1alpha2 API group +k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=workspace.devfile.io +devfile:jsonschema:version=2.1.0-alpha

Package v1alpha2 contains API Schema definitions for the org v1alpha2 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: "v1alpha2"}

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

func CheckDuplicateKeys

func CheckDuplicateKeys(keyedList interface{}) error

CheckDuplicateKeys checks if duplicate keys are present in the devfile objects

Types

type ApplyCommand

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

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

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 ApplyCommandParentOverride

type ApplyCommandParentOverride struct {
	LabeledCommandParentOverride `json:",inline"`

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

func (*ApplyCommandParentOverride) DeepCopy

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

func (*ApplyCommandParentOverride) DeepCopyInto

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

type ApplyCommandPluginOverride

type ApplyCommandPluginOverride struct {
	LabeledCommandPluginOverride `json:",inline"`

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

func (*ApplyCommandPluginOverride) DeepCopy

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

func (*ApplyCommandPluginOverride) DeepCopyInto

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

type ApplyCommandPluginOverrideParentOverride

type ApplyCommandPluginOverrideParentOverride struct {
	LabeledCommandPluginOverrideParentOverride `json:",inline"`

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

func (*ApplyCommandPluginOverrideParentOverride) DeepCopy

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

func (*ApplyCommandPluginOverrideParentOverride) DeepCopyInto

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

type BaseCommand

type BaseCommand struct {
	// +optional
	// Defines the group this command is part of
	Group *CommandGroup `json:"group,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 BaseCommandParentOverride

type BaseCommandParentOverride struct {

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

func (*BaseCommandParentOverride) DeepCopy

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

func (*BaseCommandParentOverride) DeepCopyInto

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

type BaseCommandPluginOverride

type BaseCommandPluginOverride struct {

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

func (*BaseCommandPluginOverride) DeepCopy

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

func (*BaseCommandPluginOverride) DeepCopyInto

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

type BaseCommandPluginOverrideParentOverride

type BaseCommandPluginOverrideParentOverride struct {

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

func (*BaseCommandPluginOverrideParentOverride) DeepCopy

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

func (*BaseCommandPluginOverrideParentOverride) DeepCopyInto

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

type BaseComponent

type BaseComponent struct {
}

DevWorkspace component: Anything that will bring additional features / tooling / behaviour / context to the devworkspace, 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 BaseComponentParentOverride

type BaseComponentParentOverride struct {
}

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

func (*BaseComponentParentOverride) DeepCopy

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

func (*BaseComponentParentOverride) DeepCopyInto

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

type BaseComponentPluginOverride

type BaseComponentPluginOverride struct {
}

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

func (*BaseComponentPluginOverride) DeepCopy

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

func (*BaseComponentPluginOverride) DeepCopyInto

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

type BaseComponentPluginOverrideParentOverride

type BaseComponentPluginOverrideParentOverride struct {
}

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

func (*BaseComponentPluginOverrideParentOverride) DeepCopy

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

func (*BaseComponentPluginOverrideParentOverride) DeepCopyInto

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 CheckoutFromParentOverride

type CheckoutFromParentOverride 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 (*CheckoutFromParentOverride) DeepCopy

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

func (*CheckoutFromParentOverride) DeepCopyInto

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

type Command

type Command struct {
	// Mandatory identifier that allows referencing
	// this command in composite commands, from
	// a parent, or in events.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Id string `json:"id"`
	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes   attributes.Attributes `json:"attributes,omitempty"`
	CommandUnion `json:",inline"`
}

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

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 CommandGroupKindParentOverride

type CommandGroupKindParentOverride string

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

type CommandGroupKindPluginOverride

type CommandGroupKindPluginOverride string

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

type CommandGroupKindPluginOverrideParentOverride

type CommandGroupKindPluginOverrideParentOverride string

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

type CommandGroupParentOverride

type CommandGroupParentOverride struct {

	//  +optional
	// Kind of group the command is part of
	Kind CommandGroupKindParentOverride `json:"kind,omitempty"`

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

func (*CommandGroupParentOverride) DeepCopy

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

func (*CommandGroupParentOverride) DeepCopyInto

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

type CommandGroupPluginOverride

type CommandGroupPluginOverride struct {

	//  +optional
	// Kind of group the command is part of
	Kind CommandGroupKindPluginOverride `json:"kind,omitempty"`

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

func (*CommandGroupPluginOverride) DeepCopy

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

func (*CommandGroupPluginOverride) DeepCopyInto

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

type CommandGroupPluginOverrideParentOverride

type CommandGroupPluginOverrideParentOverride struct {

	//  +optional
	// Kind of group the command is part of
	Kind CommandGroupKindPluginOverrideParentOverride `json:"kind,omitempty"`

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

func (*CommandGroupPluginOverrideParentOverride) DeepCopy

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

func (*CommandGroupPluginOverrideParentOverride) DeepCopyInto

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

type CommandParentOverride

type CommandParentOverride struct {

	// Mandatory identifier that allows referencing
	// this command in composite commands, from
	// a parent, or in events.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Id string `json:"id"`

	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes                 attributes.Attributes `json:"attributes,omitempty"`
	CommandUnionParentOverride `json:",inline"`
}

func (*CommandParentOverride) DeepCopy

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

func (*CommandParentOverride) DeepCopyInto

func (in *CommandParentOverride) DeepCopyInto(out *CommandParentOverride)

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

func (CommandParentOverride) Key

func (keyed CommandParentOverride) Key() string

type CommandPluginOverride

type CommandPluginOverride struct {

	// Mandatory identifier that allows referencing
	// this command in composite commands, from
	// a parent, or in events.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Id string `json:"id"`

	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes                 attributes.Attributes `json:"attributes,omitempty"`
	CommandUnionPluginOverride `json:",inline"`
}

func (*CommandPluginOverride) DeepCopy

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

func (*CommandPluginOverride) DeepCopyInto

func (in *CommandPluginOverride) DeepCopyInto(out *CommandPluginOverride)

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

func (CommandPluginOverride) Key

func (keyed CommandPluginOverride) Key() string

type CommandPluginOverrideParentOverride

type CommandPluginOverrideParentOverride struct {

	// Mandatory identifier that allows referencing
	// this command in composite commands, from
	// a parent, or in events.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Id string `json:"id"`

	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes                               attributes.Attributes `json:"attributes,omitempty"`
	CommandUnionPluginOverrideParentOverride `json:",inline"`
}

func (*CommandPluginOverrideParentOverride) DeepCopy

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

func (*CommandPluginOverrideParentOverride) DeepCopyInto

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

func (CommandPluginOverrideParentOverride) Key

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;Composite;Custom

const (
	ExecCommandType      CommandType = "Exec"
	ApplyCommandType     CommandType = "Apply"
	CompositeCommandType CommandType = "Composite"
	CustomCommandType    CommandType = "Custom"
)

type CommandTypeParentOverride

type CommandTypeParentOverride string

CommandType describes the type of command. Only one of the following command type may be specified.

type CommandTypePluginOverride

type CommandTypePluginOverride string

CommandType describes the type of command. Only one of the following command type may be specified.

type CommandTypePluginOverrideParentOverride

type CommandTypePluginOverrideParentOverride string

CommandType describes the type of command. Only one of the following command type may be specified.

type CommandUnion

type CommandUnion struct {
	// Type of devworkspace 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 devworkspace 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 devworkspace 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 devworkspace start
	// by default.
	// +optional
	Apply *ApplyCommand `json:"apply,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
	// +devfile:overrides:include:omit=true
	Custom *CustomCommand `json:"custom,omitempty"`
}

+union

func (*CommandUnion) DeepCopy

func (in *CommandUnion) DeepCopy() *CommandUnion

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

func (*CommandUnion) DeepCopyInto

func (in *CommandUnion) DeepCopyInto(out *CommandUnion)

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

func (*CommandUnion) Normalize

func (union *CommandUnion) Normalize() error

func (*CommandUnion) Simplify

func (union *CommandUnion) Simplify()

func (CommandUnion) Visit

func (union CommandUnion) Visit(visitor CommandUnionVisitor) error

type CommandUnionParentOverride

type CommandUnionParentOverride struct {

	// +kubebuilder:validation:Enum=Exec;Apply;Composite
	// Type of devworkspace command
	// +unionDiscriminator
	// +optional
	CommandType CommandTypeParentOverride `json:"commandType,omitempty"`

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

	// Command that consists in applying a given component definition,
	// typically bound to a devworkspace 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 devworkspace 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 devworkspace start
	// by default.
	// +optional
	Apply *ApplyCommandParentOverride `json:"apply,omitempty"`

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

+union

func (*CommandUnionParentOverride) DeepCopy

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

func (*CommandUnionParentOverride) DeepCopyInto

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

func (*CommandUnionParentOverride) Normalize

func (union *CommandUnionParentOverride) Normalize() error

func (*CommandUnionParentOverride) Simplify

func (union *CommandUnionParentOverride) Simplify()

func (CommandUnionParentOverride) Visit

type CommandUnionParentOverrideVisitor

type CommandUnionParentOverrideVisitor struct {
	Exec      func(*ExecCommandParentOverride) error
	Apply     func(*ApplyCommandParentOverride) error
	Composite func(*CompositeCommandParentOverride) error
}

+k8s:deepcopy-gen=false

type CommandUnionPluginOverride

type CommandUnionPluginOverride struct {

	// +kubebuilder:validation:Enum=Exec;Apply;Composite
	// Type of devworkspace command
	// +unionDiscriminator
	// +optional
	CommandType CommandTypePluginOverride `json:"commandType,omitempty"`

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

	// Command that consists in applying a given component definition,
	// typically bound to a devworkspace 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 devworkspace 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 devworkspace start
	// by default.
	// +optional
	Apply *ApplyCommandPluginOverride `json:"apply,omitempty"`

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

+union

func (*CommandUnionPluginOverride) DeepCopy

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

func (*CommandUnionPluginOverride) DeepCopyInto

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

func (*CommandUnionPluginOverride) Normalize

func (union *CommandUnionPluginOverride) Normalize() error

func (*CommandUnionPluginOverride) Simplify

func (union *CommandUnionPluginOverride) Simplify()

func (CommandUnionPluginOverride) Visit

type CommandUnionPluginOverrideParentOverride

type CommandUnionPluginOverrideParentOverride struct {

	// +kubebuilder:validation:Enum=Exec;Apply;Composite
	// Type of devworkspace command
	// +unionDiscriminator
	// +optional
	CommandType CommandTypePluginOverrideParentOverride `json:"commandType,omitempty"`

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

	// Command that consists in applying a given component definition,
	// typically bound to a devworkspace 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 devworkspace 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 devworkspace start
	// by default.
	// +optional
	Apply *ApplyCommandPluginOverrideParentOverride `json:"apply,omitempty"`

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

+union

func (*CommandUnionPluginOverrideParentOverride) DeepCopy

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

func (*CommandUnionPluginOverrideParentOverride) DeepCopyInto

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

func (*CommandUnionPluginOverrideParentOverride) Normalize

func (*CommandUnionPluginOverrideParentOverride) Simplify

func (union *CommandUnionPluginOverrideParentOverride) Simplify()

func (CommandUnionPluginOverrideParentOverride) Visit

type CommandUnionPluginOverrideParentOverrideVisitor

type CommandUnionPluginOverrideParentOverrideVisitor struct {
	Exec      func(*ExecCommandPluginOverrideParentOverride) error
	Apply     func(*ApplyCommandPluginOverrideParentOverride) error
	Composite func(*CompositeCommandPluginOverrideParentOverride) error
}

+k8s:deepcopy-gen=false

type CommandUnionPluginOverrideVisitor

type CommandUnionPluginOverrideVisitor struct {
	Exec      func(*ExecCommandPluginOverride) error
	Apply     func(*ApplyCommandPluginOverride) error
	Composite func(*CompositeCommandPluginOverride) error
}

+k8s:deepcopy-gen=false

type CommandUnionVisitor

type CommandUnionVisitor struct {
	Exec      func(*ExecCommand) error
	Apply     func(*ApplyCommand) error
	Composite func(*CompositeCommand) error
	Custom    func(*CustomCommand) error
}

+k8s:deepcopy-gen=false

type CommonProjectSource

type CommonProjectSource struct {
}

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 CommonProjectSourceParentOverride

type CommonProjectSourceParentOverride struct {
}

func (*CommonProjectSourceParentOverride) DeepCopy

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

func (*CommonProjectSourceParentOverride) DeepCopyInto

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

type Component

type Component struct {
	// Mandatory name that allows referencing the component
	// from other elements (such as commands) or from an external
	// devfile that may reference this component through a parent or a plugin.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`
	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes     attributes.Attributes `json:"attributes,omitempty"`
	ComponentUnion `json:",inline"`
}

+k8s:openapi-gen=true

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 (keyed Component) Key() string

type ComponentParentOverride

type ComponentParentOverride struct {

	// Mandatory name that allows referencing the component
	// from other elements (such as commands) or from an external
	// devfile that may reference this component through a parent or a plugin.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`

	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes                   attributes.Attributes `json:"attributes,omitempty"`
	ComponentUnionParentOverride `json:",inline"`
}

+k8s:openapi-gen=true

func (*ComponentParentOverride) DeepCopy

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

func (*ComponentParentOverride) DeepCopyInto

func (in *ComponentParentOverride) DeepCopyInto(out *ComponentParentOverride)

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

func (ComponentParentOverride) Key

func (keyed ComponentParentOverride) Key() string

type ComponentPluginOverride

type ComponentPluginOverride struct {

	// Mandatory name that allows referencing the component
	// from other elements (such as commands) or from an external
	// devfile that may reference this component through a parent or a plugin.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`

	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes                   attributes.Attributes `json:"attributes,omitempty"`
	ComponentUnionPluginOverride `json:",inline"`
}

+k8s:openapi-gen=true

func (*ComponentPluginOverride) DeepCopy

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

func (*ComponentPluginOverride) DeepCopyInto

func (in *ComponentPluginOverride) DeepCopyInto(out *ComponentPluginOverride)

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

func (ComponentPluginOverride) Key

func (keyed ComponentPluginOverride) Key() string

type ComponentPluginOverrideParentOverride

type ComponentPluginOverrideParentOverride struct {

	// Mandatory name that allows referencing the component
	// from other elements (such as commands) or from an external
	// devfile that may reference this component through a parent or a plugin.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`

	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes                                 attributes.Attributes `json:"attributes,omitempty"`
	ComponentUnionPluginOverrideParentOverride `json:",inline"`
}

+k8s:openapi-gen=true

func (*ComponentPluginOverrideParentOverride) DeepCopy

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

func (*ComponentPluginOverrideParentOverride) DeepCopyInto

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

func (ComponentPluginOverrideParentOverride) Key

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 ComponentTypeParentOverride

type ComponentTypeParentOverride string

ComponentType describes the type of component. Only one of the following component type may be specified.

type ComponentTypePluginOverride

type ComponentTypePluginOverride string

ComponentType describes the type of component. Only one of the following component type may be specified.

type ComponentTypePluginOverrideParentOverride

type ComponentTypePluginOverrideParentOverride string

ComponentType describes the type of component. Only one of the following component type may be specified.

type ComponentUnion

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

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

	// Allows importing into the devworkspace 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 devworkspace 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"`

	// 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
	// +devfile:overrides:include:omitInPlugin=true
	Plugin *PluginComponent `json:"plugin,omitempty"`

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

+union

func (*ComponentUnion) DeepCopy

func (in *ComponentUnion) DeepCopy() *ComponentUnion

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

func (*ComponentUnion) DeepCopyInto

func (in *ComponentUnion) DeepCopyInto(out *ComponentUnion)

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

func (*ComponentUnion) Normalize

func (union *ComponentUnion) Normalize() error

func (*ComponentUnion) Simplify

func (union *ComponentUnion) Simplify()

func (ComponentUnion) Visit

func (union ComponentUnion) Visit(visitor ComponentUnionVisitor) error

type ComponentUnionParentOverride

type ComponentUnionParentOverride struct {

	// +kubebuilder:validation:Enum=Container;Kubernetes;Openshift;Volume;Plugin
	// Type of component
	//
	// +unionDiscriminator
	// +optional
	ComponentType ComponentTypeParentOverride `json:"componentType,omitempty"`

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

	// Allows importing into the devworkspace 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 *KubernetesComponentParentOverride `json:"kubernetes,omitempty"`

	// Allows importing into the devworkspace 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 *OpenshiftComponentParentOverride `json:"openshift,omitempty"`

	// Allows specifying the definition of a volume
	// shared by several other components
	// +optional
	Volume *VolumeComponentParentOverride `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
	// +devfile:overrides:include:omitInPlugin=true
	Plugin *PluginComponentParentOverride `json:"plugin,omitempty"`
}

+union

func (*ComponentUnionParentOverride) DeepCopy

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

func (*ComponentUnionParentOverride) DeepCopyInto

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

func (*ComponentUnionParentOverride) Normalize

func (union *ComponentUnionParentOverride) Normalize() error

func (*ComponentUnionParentOverride) Simplify

func (union *ComponentUnionParentOverride) Simplify()

func (ComponentUnionParentOverride) Visit

type ComponentUnionParentOverrideVisitor

type ComponentUnionParentOverrideVisitor struct {
	Container  func(*ContainerComponentParentOverride) error
	Kubernetes func(*KubernetesComponentParentOverride) error
	Openshift  func(*OpenshiftComponentParentOverride) error
	Volume     func(*VolumeComponentParentOverride) error
	Plugin     func(*PluginComponentParentOverride) error
}

+k8s:deepcopy-gen=false

type ComponentUnionPluginOverride

type ComponentUnionPluginOverride struct {

	// +kubebuilder:validation:Enum=Container;Kubernetes;Openshift;Volume
	// Type of component
	//
	// +unionDiscriminator
	// +optional
	ComponentType ComponentTypePluginOverride `json:"componentType,omitempty"`

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

	// Allows importing into the devworkspace 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 *KubernetesComponentPluginOverride `json:"kubernetes,omitempty"`

	// Allows importing into the devworkspace 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 *OpenshiftComponentPluginOverride `json:"openshift,omitempty"`

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

+union

func (*ComponentUnionPluginOverride) DeepCopy

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

func (*ComponentUnionPluginOverride) DeepCopyInto

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

func (*ComponentUnionPluginOverride) Normalize

func (union *ComponentUnionPluginOverride) Normalize() error

func (*ComponentUnionPluginOverride) Simplify

func (union *ComponentUnionPluginOverride) Simplify()

func (ComponentUnionPluginOverride) Visit

type ComponentUnionPluginOverrideParentOverride

type ComponentUnionPluginOverrideParentOverride struct {

	// +kubebuilder:validation:Enum=Container;Kubernetes;Openshift;Volume
	// Type of component
	//
	// +unionDiscriminator
	// +optional
	ComponentType ComponentTypePluginOverrideParentOverride `json:"componentType,omitempty"`

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

	// Allows importing into the devworkspace 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 *KubernetesComponentPluginOverrideParentOverride `json:"kubernetes,omitempty"`

	// Allows importing into the devworkspace 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 *OpenshiftComponentPluginOverrideParentOverride `json:"openshift,omitempty"`

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

+union

func (*ComponentUnionPluginOverrideParentOverride) DeepCopy

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

func (*ComponentUnionPluginOverrideParentOverride) DeepCopyInto

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

func (*ComponentUnionPluginOverrideParentOverride) Normalize

func (*ComponentUnionPluginOverrideParentOverride) Simplify

func (ComponentUnionPluginOverrideParentOverride) Visit

type ComponentUnionPluginOverrideParentOverrideVisitor

type ComponentUnionPluginOverrideParentOverrideVisitor struct {
	Container  func(*ContainerComponentPluginOverrideParentOverride) error
	Kubernetes func(*KubernetesComponentPluginOverrideParentOverride) error
	Openshift  func(*OpenshiftComponentPluginOverrideParentOverride) error
	Volume     func(*VolumeComponentPluginOverrideParentOverride) error
}

+k8s:deepcopy-gen=false

type ComponentUnionPluginOverrideVisitor

type ComponentUnionPluginOverrideVisitor struct {
	Container  func(*ContainerComponentPluginOverride) error
	Kubernetes func(*KubernetesComponentPluginOverride) error
	Openshift  func(*OpenshiftComponentPluginOverride) error
	Volume     func(*VolumeComponentPluginOverride) error
}

+k8s:deepcopy-gen=false

type ComponentUnionVisitor

type ComponentUnionVisitor struct {
	Container  func(*ContainerComponent) error
	Kubernetes func(*KubernetesComponent) error
	Openshift  func(*OpenshiftComponent) error
	Volume     func(*VolumeComponent) error
	Plugin     func(*PluginComponent) 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 CompositeCommandParentOverride

type CompositeCommandParentOverride struct {
	LabeledCommandParentOverride `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 (*CompositeCommandParentOverride) DeepCopy

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

func (*CompositeCommandParentOverride) DeepCopyInto

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

type CompositeCommandPluginOverride

type CompositeCommandPluginOverride struct {
	LabeledCommandPluginOverride `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 (*CompositeCommandPluginOverride) DeepCopy

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

func (*CompositeCommandPluginOverride) DeepCopyInto

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

type CompositeCommandPluginOverrideParentOverride

type CompositeCommandPluginOverrideParentOverride struct {
	LabeledCommandPluginOverrideParentOverride `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 (*CompositeCommandPluginOverrideParentOverride) DeepCopy

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

func (*CompositeCommandPluginOverrideParentOverride) DeepCopyInto

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

type Container

type Container struct {
	Image string `json:"image"`

	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// Environment variables used in this container.
	//
	// The following variables are reserved and cannot be overridden via env:
	//
	//  - `$PROJECTS_ROOT`
	//
	//  - `$PROJECT_SOURCE`
	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"`

	// +optional
	MemoryRequest string `json:"memoryRequest,omitempty"`

	// +optional
	CpuLimit string `json:"cpuLimit,omitempty"`

	// +optional
	CpuRequest string `json:"cpuRequest,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"`

	// Toggles whether or not the project source code should
	// be mounted in the component.
	//
	// Defaults to true for all component types except plugins and components that set `dedicatedPod` to true.
	// +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 default value of /projects is used.
	// +optional
	// +kubebuilder:default=/projects
	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 their devworkspace

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 ContainerComponentParentOverride

type ContainerComponentParentOverride struct {
	BaseComponentParentOverride `json:",inline"`
	ContainerParentOverride     `json:",inline"`
	Endpoints                   []EndpointParentOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

Component that allows the developer to add a configured container into their devworkspace

func (*ContainerComponentParentOverride) DeepCopy

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

func (*ContainerComponentParentOverride) DeepCopyInto

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

type ContainerComponentPluginOverride

type ContainerComponentPluginOverride struct {
	BaseComponentPluginOverride `json:",inline"`
	ContainerPluginOverride     `json:",inline"`
	Endpoints                   []EndpointPluginOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

Component that allows the developer to add a configured container into their devworkspace

func (*ContainerComponentPluginOverride) DeepCopy

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

func (*ContainerComponentPluginOverride) DeepCopyInto

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

type ContainerComponentPluginOverrideParentOverride

type ContainerComponentPluginOverrideParentOverride struct {
	BaseComponentPluginOverrideParentOverride `json:",inline"`
	ContainerPluginOverrideParentOverride     `json:",inline"`
	Endpoints                                 []EndpointPluginOverrideParentOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

Component that allows the developer to add a configured container into their devworkspace

func (*ContainerComponentPluginOverrideParentOverride) DeepCopy

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

func (*ContainerComponentPluginOverrideParentOverride) DeepCopyInto

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

type ContainerParentOverride

type ContainerParentOverride struct {
	//  +optional
	Image string `json:"image,omitempty"`

	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// Environment variables used in this container.
	//
	// The following variables are reserved and cannot be overridden via env:
	//
	//  - `$PROJECTS_ROOT`
	//
	//  - `$PROJECT_SOURCE`
	Env []EnvVarParentOverride `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

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

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

	// +optional
	MemoryRequest string `json:"memoryRequest,omitempty"`

	// +optional
	CpuLimit string `json:"cpuLimit,omitempty"`

	// +optional
	CpuRequest string `json:"cpuRequest,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"`

	// Toggles whether or not the project source code should
	// be mounted in the component.
	//
	// Defaults to true for all component types except plugins and components that set `dedicatedPod` to true.
	// +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 default value of /projects 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 (*ContainerParentOverride) DeepCopy

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

func (*ContainerParentOverride) DeepCopyInto

func (in *ContainerParentOverride) DeepCopyInto(out *ContainerParentOverride)

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

type ContainerPluginOverride

type ContainerPluginOverride struct {
	//  +optional
	Image string `json:"image,omitempty"`

	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// Environment variables used in this container.
	//
	// The following variables are reserved and cannot be overridden via env:
	//
	//  - `$PROJECTS_ROOT`
	//
	//  - `$PROJECT_SOURCE`
	Env []EnvVarPluginOverride `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

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

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

	// +optional
	MemoryRequest string `json:"memoryRequest,omitempty"`

	// +optional
	CpuLimit string `json:"cpuLimit,omitempty"`

	// +optional
	CpuRequest string `json:"cpuRequest,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"`

	// Toggles whether or not the project source code should
	// be mounted in the component.
	//
	// Defaults to true for all component types except plugins and components that set `dedicatedPod` to true.
	// +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 default value of /projects 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 (*ContainerPluginOverride) DeepCopy

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

func (*ContainerPluginOverride) DeepCopyInto

func (in *ContainerPluginOverride) DeepCopyInto(out *ContainerPluginOverride)

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

type ContainerPluginOverrideParentOverride

type ContainerPluginOverrideParentOverride struct {

	//  +optional
	Image string `json:"image,omitempty"`

	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// Environment variables used in this container.
	//
	// The following variables are reserved and cannot be overridden via env:
	//
	//  - `$PROJECTS_ROOT`
	//
	//  - `$PROJECT_SOURCE`
	Env []EnvVarPluginOverrideParentOverride `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

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

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

	// +optional
	MemoryRequest string `json:"memoryRequest,omitempty"`

	// +optional
	CpuLimit string `json:"cpuLimit,omitempty"`

	// +optional
	CpuRequest string `json:"cpuRequest,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"`

	// Toggles whether or not the project source code should
	// be mounted in the component.
	//
	// Defaults to true for all component types except plugins and components that set `dedicatedPod` to true.
	// +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 default value of /projects 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 (*ContainerPluginOverrideParentOverride) DeepCopy

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

func (*ContainerPluginOverrideParentOverride) DeepCopyInto

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 {
	// 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 +kubebuilder:subresource:status +kubebuilder:resource:path=devworkspaces,scope=Namespaced,shortName=dw +kubebuilder:printcolumn:name="DevWorkspace ID",type="string",JSONPath=".status.devworkspaceId",description="The devworkspace's unique id" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="The current devworkspace startup phase" +kubebuilder:printcolumn:name="Info",type="string",JSONPath=".status.message",description="Additional information about the devworkspace" +devfile:jsonschema:generate +kubebuilder:storageversion

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.

func (*DevWorkspace) Hub

func (*DevWorkspace) Hub()

Hub marks this type as a conversion hub.

type DevWorkspaceCondition

type DevWorkspaceCondition struct {
	// Type is the type of the condition.
	Type DevWorkspaceConditionType `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"`
}

DevWorkspaceCondition contains details for the current condition of this devworkspace.

func (*DevWorkspaceCondition) DeepCopy

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

func (*DevWorkspaceCondition) DeepCopyInto

func (in *DevWorkspaceCondition) DeepCopyInto(out *DevWorkspaceCondition)

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

type DevWorkspaceConditionType

type DevWorkspaceConditionType string

Types of conditions reported by devworkspace

const (
	DevWorkspaceComponentsReady     DevWorkspaceConditionType = "ComponentsReady"
	DevWorkspaceRoutingReady        DevWorkspaceConditionType = "RoutingReady"
	DevWorkspaceServiceAccountReady DevWorkspaceConditionType = "ServiceAccountReady"
	DevWorkspaceReady               DevWorkspaceConditionType = "Ready"
	DevWorkspaceFailedStart         DevWorkspaceConditionType = "FailedStart"
	DevWorkspaceError               DevWorkspaceConditionType = "Error"
)

type DevWorkspaceEvents

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

	// IDs of commands that should be executed after the devworkspace 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
	// IDs of commands that should be executed before stopping the devworkspace.
	PreStop []string `json:"preStop,omitempty"`

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

func (*DevWorkspaceEvents) DeepCopy

func (in *DevWorkspaceEvents) DeepCopy() *DevWorkspaceEvents

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

func (*DevWorkspaceEvents) DeepCopyInto

func (in *DevWorkspaceEvents) DeepCopyInto(out *DevWorkspaceEvents)

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

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 DevWorkspacePhase

type DevWorkspacePhase string
const (
	DevWorkspaceStatusStarting DevWorkspacePhase = "Starting"
	DevWorkspaceStatusRunning  DevWorkspacePhase = "Running"
	DevWorkspaceStatusStopped  DevWorkspacePhase = "Stopped"
	DevWorkspaceStatusStopping DevWorkspacePhase = "Stopping"
	DevWorkspaceStatusFailed   DevWorkspacePhase = "Failed"
	DevWorkspaceStatusError    DevWorkspacePhase = "Error"
)

Valid devworkspace Statuses

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

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 DevWorkspace
	DevWorkspaceId string `json:"devworkspaceId"`
	// URL at which the DevWorkspace Editor can be joined
	IdeUrl string            `json:"ideUrl,omitempty"`
	Phase  DevWorkspacePhase `json:"phase,omitempty"`
	// Conditions represent the latest available observations of an object's state
	Conditions []DevWorkspaceCondition `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

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 +kubebuilder:resource:path=devworkspacetemplates,scope=Namespaced,shortName=dwt +devfile:jsonschema:generate +kubebuilder:storageversion

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.

func (*DevWorkspaceTemplate) Hub

func (*DevWorkspaceTemplate) Hub()

Hub marks this type as a conversion hub.

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 devworkspace template
	// +optional
	Parent *Parent `json:"parent,omitempty"`

	DevWorkspaceTemplateSpecContent `json:",inline"`
}

Structure of the devworkspace. This is also the specification of a devworkspace template. +devfile:jsonschema:generate

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 {
	// Map of key-value variables used for string replacement in the devfile. Values can can be referenced via {{variable-key}}
	// to replace the corresponding value in string fields in the devfile. Replacement cannot be used for
	//
	//  - schemaVersion, metadata, parent source
	//  - element identifiers, e.g. command id, component name, endpoint name, project name
	//  - references to identifiers, e.g. in events, a command's component, container's volume mount name
	//  - string enums, e.g. command group kind, endpoint exposure
	// +optional
	// +patchStrategy=merge
	// +devfile:overrides:include:omitInPlugin=true,description=Overrides of variables encapsulated in a parent devfile.
	Variables map[string]string `json:"variables,omitempty" patchStrategy:"merge"`

	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	// +patchStrategy=merge
	// +devfile:overrides:include:omitInPlugin=true,description=Overrides of attributes encapsulated in a parent devfile.
	Attributes attributes.Attributes `json:"attributes,omitempty" patchStrategy:"merge"`

	// List of the devworkspace components, such as editor and plugins,
	// user-provided containers, or other types of components
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +devfile:overrides:include:description=Overrides of components encapsulated in a parent devfile or a plugin.
	// +devfile:toplevellist
	Components []Component `json:"components,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// Projects worked on in the devworkspace, containing names and sources locations
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +devfile:overrides:include:omitInPlugin=true,description=Overrides of projects encapsulated in a parent devfile.
	// +devfile:toplevellist
	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
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +devfile:overrides:include:omitInPlugin=true,description=Overrides of starterProjects encapsulated in a parent devfile.
	// +devfile:toplevellist
	StarterProjects []StarterProject `json:"starterProjects,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// Predefined, ready-to-use, devworkspace-related commands
	// +optional
	// +patchMergeKey=id
	// +patchStrategy=merge
	// +devfile:overrides:include:description=Overrides of commands encapsulated in a parent devfile or a plugin.
	// +devfile:toplevellist
	Commands []Command `json:"commands,omitempty" patchStrategy:"merge" patchMergeKey:"id"`

	// Bindings of commands to events.
	// Each command is referred-to by its name.
	// +optional
	// +devfile:overrides:include:omit=true
	Events *Events `json:"events,omitempty"`
}

+devfile:overrides:generate

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.

func (DevWorkspaceTemplateSpecContent) GetToplevelLists

func (container DevWorkspaceTemplateSpecContent) GetToplevelLists() TopLevelLists

type Devfile

type Devfile struct {
	devfile.DevfileHeader `json:",inline"`

	DevWorkspaceTemplateSpec `json:",inline"`
}

Devfile describes the structure of a cloud-native devworkspace and development environment. +k8s:deepcopy-gen=false +devfile:jsonschema:generate:omitCustomUnionMembers=true,omitPluginUnionMembers=true

type Endpoint

type Endpoint struct {
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`

	TargetPort int `json:"targetPort"`

	// 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 devworkspace 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 devworkspace POD, on a local address.
	//
	// Default value is `public`
	// +optional
	// +kubebuilder:default=public
	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
	// +kubebuilder:default=http
	Protocol EndpointProtocol `json:"protocol,omitempty"`

	// Describes whether the endpoint should be secured and protected by some
	// authentication process. This requires a protocol of `https` or `wss`.
	// +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 attributes.Attributes `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 devworkspace 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 devworkspace POD, on a local address.
	NoneEndpointExposure EndpointExposure = "none"
)

type EndpointExposureParentOverride

type EndpointExposureParentOverride 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

type EndpointExposurePluginOverride

type EndpointExposurePluginOverride 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

type EndpointExposurePluginOverrideParentOverride

type EndpointExposurePluginOverrideParentOverride 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

type EndpointParentOverride

type EndpointParentOverride struct {

	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	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 devworkspace 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 devworkspace POD, on a local address.
	//
	// Default value is `public`
	// +optional
	Exposure EndpointExposureParentOverride `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 EndpointProtocolParentOverride `json:"protocol,omitempty"`

	// Describes whether the endpoint should be secured and protected by some
	// authentication process. This requires a protocol of `https` or `wss`.
	// +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 attributes.Attributes `json:"attributes,omitempty"`
}

func (*EndpointParentOverride) DeepCopy

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

func (*EndpointParentOverride) DeepCopyInto

func (in *EndpointParentOverride) DeepCopyInto(out *EndpointParentOverride)

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

type EndpointPluginOverride

type EndpointPluginOverride struct {

	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	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 devworkspace 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 devworkspace POD, on a local address.
	//
	// Default value is `public`
	// +optional
	Exposure EndpointExposurePluginOverride `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 EndpointProtocolPluginOverride `json:"protocol,omitempty"`

	// Describes whether the endpoint should be secured and protected by some
	// authentication process. This requires a protocol of `https` or `wss`.
	// +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 attributes.Attributes `json:"attributes,omitempty"`
}

func (*EndpointPluginOverride) DeepCopy

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

func (*EndpointPluginOverride) DeepCopyInto

func (in *EndpointPluginOverride) DeepCopyInto(out *EndpointPluginOverride)

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

type EndpointPluginOverrideParentOverride

type EndpointPluginOverrideParentOverride struct {

	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	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 devworkspace 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 devworkspace POD, on a local address.
	//
	// Default value is `public`
	// +optional
	Exposure EndpointExposurePluginOverrideParentOverride `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 EndpointProtocolPluginOverrideParentOverride `json:"protocol,omitempty"`

	// Describes whether the endpoint should be secured and protected by some
	// authentication process. This requires a protocol of `https` or `wss`.
	// +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 attributes.Attributes `json:"attributes,omitempty"`
}

func (*EndpointPluginOverrideParentOverride) DeepCopy

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

func (*EndpointPluginOverrideParentOverride) DeepCopyInto

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

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;https;ws;wss;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 EndpointProtocolParentOverride

type EndpointProtocolParentOverride 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;https;ws;wss;tcp;udp

type EndpointProtocolPluginOverride

type EndpointProtocolPluginOverride 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;https;ws;wss;tcp;udp

type EndpointProtocolPluginOverrideParentOverride

type EndpointProtocolPluginOverrideParentOverride 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;https;ws;wss;tcp;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 EnvVarParentOverride

type EnvVarParentOverride struct {
	Name string `json:"name" yaml:"name"`
	//  +optional
	Value string `json:"value,omitempty" yaml:"value"`
}

func (*EnvVarParentOverride) DeepCopy

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

func (*EnvVarParentOverride) DeepCopyInto

func (in *EnvVarParentOverride) DeepCopyInto(out *EnvVarParentOverride)

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

type EnvVarPluginOverride

type EnvVarPluginOverride struct {
	Name string `json:"name" yaml:"name"`
	//  +optional
	Value string `json:"value,omitempty" yaml:"value"`
}

func (*EnvVarPluginOverride) DeepCopy

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

func (*EnvVarPluginOverride) DeepCopyInto

func (in *EnvVarPluginOverride) DeepCopyInto(out *EnvVarPluginOverride)

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

type EnvVarPluginOverrideParentOverride

type EnvVarPluginOverrideParentOverride struct {
	Name string `json:"name" yaml:"name"`

	//  +optional
	Value string `json:"value,omitempty" yaml:"value"`
}

func (*EnvVarPluginOverrideParentOverride) DeepCopy

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

func (*EnvVarPluginOverrideParentOverride) DeepCopyInto

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

type Events

type Events struct {
	DevWorkspaceEvents `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 as defined by container component's sourceMapping.
	//
	//  - `$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"`

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

	// Working directory where the command should be executed
	//
	// Special variables that can be used:
	//
	//  - `$PROJECTS_ROOT`: A path where projects sources are mounted as defined by container component's sourceMapping.
	//
	//  - `$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.
	// +optional
	WorkingDir string `json:"workingDir,omitempty"`

	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// 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 ExecCommandParentOverride

type ExecCommandParentOverride struct {
	LabeledCommandParentOverride `json:",inline"`

	//  +optional
	// The actual command-line string
	//
	// Special variables that can be used:
	//
	//  - `$PROJECTS_ROOT`: A path where projects sources are mounted as defined by container component's sourceMapping.
	//
	//  - `$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"`

	//  +optional
	// 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 as defined by container component's sourceMapping.
	//
	//  - `$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.
	// +optional
	WorkingDir string `json:"workingDir,omitempty"`

	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// Optional list of environment variables that have to be set
	// before running the command
	Env []EnvVarParentOverride `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 (*ExecCommandParentOverride) DeepCopy

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

func (*ExecCommandParentOverride) DeepCopyInto

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

type ExecCommandPluginOverride

type ExecCommandPluginOverride struct {
	LabeledCommandPluginOverride `json:",inline"`

	//  +optional
	// The actual command-line string
	//
	// Special variables that can be used:
	//
	//  - `$PROJECTS_ROOT`: A path where projects sources are mounted as defined by container component's sourceMapping.
	//
	//  - `$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"`

	//  +optional
	// 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 as defined by container component's sourceMapping.
	//
	//  - `$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.
	// +optional
	WorkingDir string `json:"workingDir,omitempty"`

	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// Optional list of environment variables that have to be set
	// before running the command
	Env []EnvVarPluginOverride `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 (*ExecCommandPluginOverride) DeepCopy

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

func (*ExecCommandPluginOverride) DeepCopyInto

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

type ExecCommandPluginOverrideParentOverride

type ExecCommandPluginOverrideParentOverride struct {
	LabeledCommandPluginOverrideParentOverride `json:",inline"`

	//  +optional
	// The actual command-line string
	//
	// Special variables that can be used:
	//
	//  - `$PROJECTS_ROOT`: A path where projects sources are mounted as defined by container component's sourceMapping.
	//
	//  - `$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"`

	//  +optional
	// 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 as defined by container component's sourceMapping.
	//
	//  - `$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.
	// +optional
	WorkingDir string `json:"workingDir,omitempty"`

	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// Optional list of environment variables that have to be set
	// before running the command
	Env []EnvVarPluginOverrideParentOverride `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 (*ExecCommandPluginOverrideParentOverride) DeepCopy

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

func (*ExecCommandPluginOverrideParentOverride) DeepCopyInto

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
	Remotes map[string]string `json:"remotes"`
}

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 GitLikeProjectSourceParentOverride

type GitLikeProjectSourceParentOverride struct {
	CommonProjectSourceParentOverride `json:",inline"`

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

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

func (*GitLikeProjectSourceParentOverride) DeepCopy

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

func (*GitLikeProjectSourceParentOverride) DeepCopyInto

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 GitProjectSourceParentOverride

type GitProjectSourceParentOverride struct {
	GitLikeProjectSourceParentOverride `json:",inline"`
}

func (*GitProjectSourceParentOverride) DeepCopy

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

func (*GitProjectSourceParentOverride) DeepCopyInto

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 GithubProjectSourceParentOverride

type GithubProjectSourceParentOverride struct {
	GitLikeProjectSourceParentOverride `json:",inline"`
}

func (*GithubProjectSourceParentOverride) DeepCopy

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

func (*GithubProjectSourceParentOverride) DeepCopyInto

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 ImportReferenceParentOverride

type ImportReferenceParentOverride struct {
	ImportReferenceUnionParentOverride `json:",inline"`

	// +optional
	RegistryUrl string `json:"registryUrl,omitempty"`
}

func (*ImportReferenceParentOverride) DeepCopy

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

func (*ImportReferenceParentOverride) DeepCopyInto

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 ImportReferenceTypeParentOverride

type ImportReferenceTypeParentOverride 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.

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 +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 ImportReferenceUnionParentOverride

type ImportReferenceUnionParentOverride struct {

	// +kubebuilder:validation:Enum=Uri;Id;Kubernetes
	// type of location from where the referenced template structure should be retrieved
	// +
	// +unionDiscriminator
	// +optional
	ImportReferenceType ImportReferenceTypeParentOverride `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 *KubernetesCustomResourceImportReferenceParentOverride `json:"kubernetes,omitempty"`
}

Location from where the an import reference is retrieved +union

func (*ImportReferenceUnionParentOverride) DeepCopy

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

func (*ImportReferenceUnionParentOverride) DeepCopyInto

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

func (*ImportReferenceUnionParentOverride) Normalize

func (union *ImportReferenceUnionParentOverride) Normalize() error

func (*ImportReferenceUnionParentOverride) Simplify

func (union *ImportReferenceUnionParentOverride) Simplify()

func (ImportReferenceUnionParentOverride) Visit

type ImportReferenceUnionParentOverrideVisitor

type ImportReferenceUnionParentOverrideVisitor struct {
	Uri        func(string) error
	Id         func(string) error
	Kubernetes func(*KubernetesCustomResourceImportReferenceParentOverride) error
}

+k8s:deepcopy-gen=false

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"`
	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"`
}

+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 K8sLikeComponentLocationParentOverride

type K8sLikeComponentLocationParentOverride struct {

	// +kubebuilder:validation:Enum=Uri;Inlined
	// Type of Kubernetes-like location
	// +
	// +unionDiscriminator
	// +optional
	LocationType K8sLikeComponentLocationTypeParentOverride `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"`
}

+union

func (*K8sLikeComponentLocationParentOverride) DeepCopy

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

func (*K8sLikeComponentLocationParentOverride) DeepCopyInto

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

func (*K8sLikeComponentLocationParentOverride) Normalize

func (union *K8sLikeComponentLocationParentOverride) Normalize() error

func (*K8sLikeComponentLocationParentOverride) Simplify

func (union *K8sLikeComponentLocationParentOverride) Simplify()

func (K8sLikeComponentLocationParentOverride) Visit

type K8sLikeComponentLocationParentOverrideVisitor

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

+k8s:deepcopy-gen=false

type K8sLikeComponentLocationPluginOverride

type K8sLikeComponentLocationPluginOverride struct {

	// +kubebuilder:validation:Enum=Uri;Inlined
	// Type of Kubernetes-like location
	// +
	// +unionDiscriminator
	// +optional
	LocationType K8sLikeComponentLocationTypePluginOverride `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"`
}

+union

func (*K8sLikeComponentLocationPluginOverride) DeepCopy

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

func (*K8sLikeComponentLocationPluginOverride) DeepCopyInto

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

func (*K8sLikeComponentLocationPluginOverride) Normalize

func (union *K8sLikeComponentLocationPluginOverride) Normalize() error

func (*K8sLikeComponentLocationPluginOverride) Simplify

func (union *K8sLikeComponentLocationPluginOverride) Simplify()

func (K8sLikeComponentLocationPluginOverride) Visit

type K8sLikeComponentLocationPluginOverrideParentOverride

type K8sLikeComponentLocationPluginOverrideParentOverride struct {

	// +kubebuilder:validation:Enum=Uri;Inlined
	// Type of Kubernetes-like location
	// +
	// +unionDiscriminator
	// +optional
	LocationType K8sLikeComponentLocationTypePluginOverrideParentOverride `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"`
}

+union

func (*K8sLikeComponentLocationPluginOverrideParentOverride) DeepCopy

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

func (*K8sLikeComponentLocationPluginOverrideParentOverride) DeepCopyInto

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

func (*K8sLikeComponentLocationPluginOverrideParentOverride) Normalize

func (*K8sLikeComponentLocationPluginOverrideParentOverride) Simplify

func (K8sLikeComponentLocationPluginOverrideParentOverride) Visit

type K8sLikeComponentLocationPluginOverrideParentOverrideVisitor

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

+k8s:deepcopy-gen=false

type K8sLikeComponentLocationPluginOverrideVisitor

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

+k8s:deepcopy-gen=false

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 K8sLikeComponentLocationTypeParentOverride

type K8sLikeComponentLocationTypeParentOverride string

K8sLikeComponentLocationType describes the type of the location the configuration is fetched from. Only one of the following component type may be specified.

type K8sLikeComponentLocationTypePluginOverride

type K8sLikeComponentLocationTypePluginOverride string

K8sLikeComponentLocationType describes the type of the location the configuration is fetched from. Only one of the following component type may be specified.

type K8sLikeComponentLocationTypePluginOverrideParentOverride

type K8sLikeComponentLocationTypePluginOverrideParentOverride string

K8sLikeComponentLocationType describes the type of the location the configuration is fetched from. Only one of the following component type may be specified.

type K8sLikeComponentLocationVisitor

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

+k8s:deepcopy-gen=false

type K8sLikeComponentParentOverride

type K8sLikeComponentParentOverride struct {
	BaseComponentParentOverride            `json:",inline"`
	K8sLikeComponentLocationParentOverride `json:",inline"`
	Endpoints                              []EndpointParentOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

func (*K8sLikeComponentParentOverride) DeepCopy

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

func (*K8sLikeComponentParentOverride) DeepCopyInto

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

type K8sLikeComponentPluginOverride

type K8sLikeComponentPluginOverride struct {
	BaseComponentPluginOverride            `json:",inline"`
	K8sLikeComponentLocationPluginOverride `json:",inline"`
	Endpoints                              []EndpointPluginOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

func (*K8sLikeComponentPluginOverride) DeepCopy

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

func (*K8sLikeComponentPluginOverride) DeepCopyInto

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

type K8sLikeComponentPluginOverrideParentOverride

type K8sLikeComponentPluginOverrideParentOverride struct {
	BaseComponentPluginOverrideParentOverride            `json:",inline"`
	K8sLikeComponentLocationPluginOverrideParentOverride `json:",inline"`
	Endpoints                                            []EndpointPluginOverrideParentOverride `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
}

func (*K8sLikeComponentPluginOverrideParentOverride) DeepCopy

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

func (*K8sLikeComponentPluginOverrideParentOverride) DeepCopyInto

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

type Keyed

type Keyed interface {
	// Key is a string that allows uniquely identifying the object,
	// especially in the Devfile top-level lists that are map-like K8S-compatible lists.
	Key() string
}

Keyed is expected to be implemented by the elements of the devfile top-level lists (such as Command, Component, Project, ...).

The Keys of list objects will typically be used to merge the top-level lists according to strategic merge patch rules, during parent or plugin overriding. +k8s:deepcopy-gen=false

type KeyedList

type KeyedList []Keyed

KeyedList is a list of object that are uniquely identified by a Key The devfile top-level list (such as Commands, Components, Projects, ...) are examples of such lists of Keyed objects +k8s:deepcopy-gen=false

func (KeyedList) GetKeys

func (l KeyedList) GetKeys() []string

GetKeys converts a KeyedList into a slice of string by calling Key() on each element in the list.

type KubernetesComponent

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

Component that allows partly importing Kubernetes resources into the devworkspace 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 KubernetesComponentParentOverride

type KubernetesComponentParentOverride struct {
	K8sLikeComponentParentOverride `json:",inline"`
}

Component that allows partly importing Kubernetes resources into the devworkspace POD

func (*KubernetesComponentParentOverride) DeepCopy

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

func (*KubernetesComponentParentOverride) DeepCopyInto

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

type KubernetesComponentPluginOverride

type KubernetesComponentPluginOverride struct {
	K8sLikeComponentPluginOverride `json:",inline"`
}

Component that allows partly importing Kubernetes resources into the devworkspace POD

func (*KubernetesComponentPluginOverride) DeepCopy

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

func (*KubernetesComponentPluginOverride) DeepCopyInto

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

type KubernetesComponentPluginOverrideParentOverride

type KubernetesComponentPluginOverrideParentOverride struct {
	K8sLikeComponentPluginOverrideParentOverride `json:",inline"`
}

Component that allows partly importing Kubernetes resources into the devworkspace POD

func (*KubernetesComponentPluginOverrideParentOverride) DeepCopy

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

func (*KubernetesComponentPluginOverrideParentOverride) DeepCopyInto

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 KubernetesCustomResourceImportReferenceParentOverride

type KubernetesCustomResourceImportReferenceParentOverride struct {
	//  +optional
	Name string `json:"name,omitempty"`

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

func (*KubernetesCustomResourceImportReferenceParentOverride) DeepCopy

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

func (*KubernetesCustomResourceImportReferenceParentOverride) 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 LabeledCommandParentOverride

type LabeledCommandParentOverride struct {
	BaseCommandParentOverride `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 (*LabeledCommandParentOverride) DeepCopy

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

func (*LabeledCommandParentOverride) DeepCopyInto

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

type LabeledCommandPluginOverride

type LabeledCommandPluginOverride struct {
	BaseCommandPluginOverride `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 (*LabeledCommandPluginOverride) DeepCopy

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

func (*LabeledCommandPluginOverride) DeepCopyInto

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

type LabeledCommandPluginOverrideParentOverride

type LabeledCommandPluginOverrideParentOverride struct {
	BaseCommandPluginOverrideParentOverride `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 (*LabeledCommandPluginOverrideParentOverride) DeepCopy

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

func (*LabeledCommandPluginOverrideParentOverride) DeepCopyInto

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 devworkspace 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 OpenshiftComponentParentOverride

type OpenshiftComponentParentOverride struct {
	K8sLikeComponentParentOverride `json:",inline"`
}

Component that allows partly importing Openshift resources into the devworkspace POD

func (*OpenshiftComponentParentOverride) DeepCopy

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

func (*OpenshiftComponentParentOverride) DeepCopyInto

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

type OpenshiftComponentPluginOverride

type OpenshiftComponentPluginOverride struct {
	K8sLikeComponentPluginOverride `json:",inline"`
}

Component that allows partly importing Openshift resources into the devworkspace POD

func (*OpenshiftComponentPluginOverride) DeepCopy

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

func (*OpenshiftComponentPluginOverride) DeepCopyInto

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

type OpenshiftComponentPluginOverrideParentOverride

type OpenshiftComponentPluginOverrideParentOverride struct {
	K8sLikeComponentPluginOverrideParentOverride `json:",inline"`
}

Component that allows partly importing Openshift resources into the devworkspace POD

func (*OpenshiftComponentPluginOverrideParentOverride) DeepCopy

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

func (*OpenshiftComponentPluginOverrideParentOverride) DeepCopyInto

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 interface {
	TopLevelListContainer
	// contains filtered or unexported methods
}

+k8s:deepcopy-gen=false

type OverridesBase

type OverridesBase struct{}

OverridesBase is used in the Overrides generator in order to provide a common base for the generated Overrides So please be careful when renaming

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 OverridesBaseParentOverride

type OverridesBaseParentOverride struct{}

OverridesBase is used in the Overrides generator in order to provide a common base for the generated Overrides So please be careful when renaming

func (*OverridesBaseParentOverride) DeepCopy

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

func (*OverridesBaseParentOverride) DeepCopyInto

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"`
	ParentOverrides `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 ParentOverrides

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

	// Overrides of variables encapsulated in a parent devfile.
	// Overriding is done according to K8S strategic merge patch standard rules.
	// +optional
	// +patchStrategy=merge
	Variables map[string]string `json:"variables,omitempty" patchStrategy:"merge"`

	// Overrides of attributes encapsulated in a parent devfile.
	// Overriding is done according to K8S strategic merge patch standard rules.
	// +optional
	// +patchStrategy=merge
	Attributes attributes.Attributes `json:"attributes,omitempty" patchStrategy:"merge"`

	// Overrides of components encapsulated in a parent devfile or a plugin.
	// Overriding is done according to K8S strategic merge patch standard rules.
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +devfile:toplevellist
	Components []ComponentParentOverride `json:"components,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// Overrides of projects encapsulated in a parent devfile.
	// Overriding is done according to K8S strategic merge patch standard rules.
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +devfile:toplevellist
	Projects []ProjectParentOverride `json:"projects,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// Overrides of starterProjects encapsulated in a parent devfile.
	// Overriding is done according to K8S strategic merge patch standard rules.
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +devfile:toplevellist
	StarterProjects []StarterProjectParentOverride `json:"starterProjects,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// Overrides of commands encapsulated in a parent devfile or a plugin.
	// Overriding is done according to K8S strategic merge patch standard rules.
	// +optional
	// +patchMergeKey=id
	// +patchStrategy=merge
	// +devfile:toplevellist
	Commands []CommandParentOverride `json:"commands,omitempty" patchStrategy:"merge" patchMergeKey:"id"`
}

+devfile:jsonschema:generate

func (*ParentOverrides) DeepCopy

func (in *ParentOverrides) DeepCopy() *ParentOverrides

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

func (*ParentOverrides) DeepCopyInto

func (in *ParentOverrides) DeepCopyInto(out *ParentOverrides)

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

func (ParentOverrides) GetToplevelLists

func (container ParentOverrides) GetToplevelLists() TopLevelLists

type PluginComponent

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

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 PluginComponentParentOverride

type PluginComponentParentOverride struct {
	BaseComponentParentOverride   `json:",inline"`
	ImportReferenceParentOverride `json:",inline"`
	PluginOverridesParentOverride `json:",inline"`
}

func (*PluginComponentParentOverride) DeepCopy

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

func (*PluginComponentParentOverride) DeepCopyInto

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

type PluginOverrides

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

	// Overrides of components encapsulated in a parent devfile or a plugin.
	// Overriding is done according to K8S strategic merge patch standard rules.
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +devfile:toplevellist
	Components []ComponentPluginOverride `json:"components,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// Overrides of commands encapsulated in a parent devfile or a plugin.
	// Overriding is done according to K8S strategic merge patch standard rules.
	// +optional
	// +patchMergeKey=id
	// +patchStrategy=merge
	// +devfile:toplevellist
	Commands []CommandPluginOverride `json:"commands,omitempty" patchStrategy:"merge" patchMergeKey:"id"`
}

+devfile:jsonschema:generate

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.

func (PluginOverrides) GetToplevelLists

func (container PluginOverrides) GetToplevelLists() TopLevelLists

type PluginOverridesParentOverride

type PluginOverridesParentOverride struct {
	OverridesBaseParentOverride `json:",inline"`

	// Overrides of components encapsulated in a parent devfile or a plugin.
	// Overriding is done according to K8S strategic merge patch standard rules.
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	// +devfile:toplevellist
	Components []ComponentPluginOverrideParentOverride `json:"components,omitempty" patchStrategy:"merge" patchMergeKey:"name"`

	// Overrides of commands encapsulated in a parent devfile or a plugin.
	// Overriding is done according to K8S strategic merge patch standard rules.
	// +optional
	// +patchMergeKey=id
	// +patchStrategy=merge
	// +devfile:toplevellist
	Commands []CommandPluginOverrideParentOverride `json:"commands,omitempty" patchStrategy:"merge" patchMergeKey:"id"`
}

func (*PluginOverridesParentOverride) DeepCopy

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

func (*PluginOverridesParentOverride) DeepCopyInto

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

func (PluginOverridesParentOverride) GetToplevelLists

func (container PluginOverridesParentOverride) GetToplevelLists() TopLevelLists

type Project

type Project struct {
	// Project name
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`

	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes attributes.Attributes `json:"attributes,omitempty"`

	// 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"`

	// Populate the project sparsely with selected directories.
	// +optional
	SparseCheckoutDirs []string `json:"sparseCheckoutDirs,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.

func (Project) Key

func (keyed Project) Key() string

type ProjectParentOverride

type ProjectParentOverride struct {

	// Project name
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`

	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes attributes.Attributes `json:"attributes,omitempty"`

	// 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"`

	// Populate the project sparsely with selected directories.
	// +optional
	SparseCheckoutDirs []string `json:"sparseCheckoutDirs,omitempty"`

	ProjectSourceParentOverride `json:",inline"`
}

func (*ProjectParentOverride) DeepCopy

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

func (*ProjectParentOverride) DeepCopyInto

func (in *ProjectParentOverride) DeepCopyInto(out *ProjectParentOverride)

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

func (ProjectParentOverride) Key

func (keyed ProjectParentOverride) Key() string

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. Deprecated, use `Git` instead
	// +optional
	Github *GithubProjectSource `json:"github,omitempty"`

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

	// Project's Custom source
	// +optional
	// +devfile:overrides:include:omit=true
	Custom *CustomProjectSource `json:"custom,omitempty"`
}

+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 ProjectSourceParentOverride

type ProjectSourceParentOverride struct {

	// +kubebuilder:validation:Enum=Git;Github;Zip
	// Type of project source
	// +
	// +unionDiscriminator
	// +optional
	SourceType ProjectSourceTypeParentOverride `json:"sourceType,omitempty"`

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

	// Project's GitHub source. Deprecated, use `Git` instead
	// +optional
	Github *GithubProjectSourceParentOverride `json:"github,omitempty"`

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

+union

func (*ProjectSourceParentOverride) DeepCopy

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

func (*ProjectSourceParentOverride) DeepCopyInto

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

func (*ProjectSourceParentOverride) Normalize

func (union *ProjectSourceParentOverride) Normalize() error

func (*ProjectSourceParentOverride) Simplify

func (union *ProjectSourceParentOverride) Simplify()

func (ProjectSourceParentOverride) Visit

type ProjectSourceParentOverrideVisitor

type ProjectSourceParentOverrideVisitor struct {
	Git    func(*GitProjectSourceParentOverride) error
	Github func(*GithubProjectSourceParentOverride) error
	Zip    func(*ZipProjectSourceParentOverride) error
}

+k8s:deepcopy-gen=false

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 ProjectSourceTypeParentOverride

type ProjectSourceTypeParentOverride 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.

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 name
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`

	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes attributes.Attributes `json:"attributes,omitempty"`

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

	// Sub-directory from a starter project to be used as root for starter project.
	// +optional
	SubDir string `json:"subDir,omitempty"`

	ProjectSource `json:",inline"`
}

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.

func (StarterProject) Key

func (keyed StarterProject) Key() string

type StarterProjectParentOverride

type StarterProjectParentOverride struct {

	// Project name
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	Name string `json:"name"`

	// Map of implementation-dependant free-form YAML attributes.
	// +optional
	Attributes attributes.Attributes `json:"attributes,omitempty"`

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

	// Sub-directory from a starter project to be used as root for starter project.
	// +optional
	SubDir string `json:"subDir,omitempty"`

	ProjectSourceParentOverride `json:",inline"`
}

func (*StarterProjectParentOverride) DeepCopy

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

func (*StarterProjectParentOverride) DeepCopyInto

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

func (StarterProjectParentOverride) Key

type TopLevelListContainer

type TopLevelListContainer interface {
	GetToplevelLists() TopLevelLists
}

TopLevelListContainer is an interface that allows retrieving the devfile top-level lists from an object. Main implementor of this interface will be the `DevWorkspaceTemplateSpecContent`, which will return all its devfile top-level lists.

But this will also be implemented by `Overrides` which may return less top-level lists the `DevWorkspaceTemplateSpecContent`, according to the top-level lists they can override. `PluginOverride` will not return the `Projects` and `StarterProjects` list, since plugins are not expected to override `projects` or `starterProjects` +k8s:deepcopy-gen=false

type TopLevelLists

type TopLevelLists map[string]KeyedList

TopLevelLists is a map that contains several Devfile top-level lists (such as `Commands`, `Components`, `Projects`, ...), available as `KeyedList`s.

Each key of this map is the name of the field that contains the given top-level list: `Commands`, `Components`, etc... +k8s:deepcopy-gen=false

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

type Volume

type Volume struct {
	// +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 their devworkspace

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 VolumeComponentParentOverride

type VolumeComponentParentOverride struct {
	BaseComponentParentOverride `json:",inline"`
	VolumeParentOverride        `json:",inline"`
}

Component that allows the developer to declare and configure a volume into their devworkspace

func (*VolumeComponentParentOverride) DeepCopy

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

func (*VolumeComponentParentOverride) DeepCopyInto

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

type VolumeComponentPluginOverride

type VolumeComponentPluginOverride struct {
	BaseComponentPluginOverride `json:",inline"`
	VolumePluginOverride        `json:",inline"`
}

Component that allows the developer to declare and configure a volume into their devworkspace

func (*VolumeComponentPluginOverride) DeepCopy

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

func (*VolumeComponentPluginOverride) DeepCopyInto

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

type VolumeComponentPluginOverrideParentOverride

type VolumeComponentPluginOverrideParentOverride struct {
	BaseComponentPluginOverrideParentOverride `json:",inline"`
	VolumePluginOverrideParentOverride        `json:",inline"`
}

Component that allows the developer to declare and configure a volume into their devworkspace

func (*VolumeComponentPluginOverrideParentOverride) DeepCopy

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

func (*VolumeComponentPluginOverrideParentOverride) DeepCopyInto

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.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	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 VolumeMountParentOverride

type VolumeMountParentOverride 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.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	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 (*VolumeMountParentOverride) DeepCopy

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

func (*VolumeMountParentOverride) DeepCopyInto

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

type VolumeMountPluginOverride

type VolumeMountPluginOverride 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.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	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 (*VolumeMountPluginOverride) DeepCopy

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

func (*VolumeMountPluginOverride) DeepCopyInto

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

type VolumeMountPluginOverrideParentOverride

type VolumeMountPluginOverrideParentOverride 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.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	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 (*VolumeMountPluginOverrideParentOverride) DeepCopy

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

func (*VolumeMountPluginOverrideParentOverride) DeepCopyInto

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

type VolumeParentOverride

type VolumeParentOverride struct {

	// +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 (*VolumeParentOverride) DeepCopy

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

func (*VolumeParentOverride) DeepCopyInto

func (in *VolumeParentOverride) DeepCopyInto(out *VolumeParentOverride)

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

type VolumePluginOverride

type VolumePluginOverride struct {

	// +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 (*VolumePluginOverride) DeepCopy

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

func (*VolumePluginOverride) DeepCopyInto

func (in *VolumePluginOverride) DeepCopyInto(out *VolumePluginOverride)

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

type VolumePluginOverrideParentOverride

type VolumePluginOverrideParentOverride struct {

	// +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 (*VolumePluginOverrideParentOverride) DeepCopy

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

func (*VolumePluginOverrideParentOverride) DeepCopyInto

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

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.

type ZipProjectSourceParentOverride

type ZipProjectSourceParentOverride struct {
	CommonProjectSourceParentOverride `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 (*ZipProjectSourceParentOverride) DeepCopy

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

func (*ZipProjectSourceParentOverride) DeepCopyInto

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