v1alpha1

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Nov 25, 2021 License: Apache-2.0 Imports: 7 Imported by: 7

Documentation

Overview

Copyright (c) 2019-2021 Red Hat, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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

Copyright (c) 2019-2021 Red Hat, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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

Index

Constants

View Source
const (
	// TypeEndpointAttribute is an attribute used for devfile endpoints that specifies the endpoint type.
	// See EndpointType for respected values
	TypeEndpointAttribute EndpointAttribute = "type"

	// The value for `type` endpoint attribute that indicates that it should be exposed as mainUrl
	// in the workspace status
	MainEndpointType EndpointType = "main"

	// DiscoverableAttribute defines an endpoint as "discoverable", meaning that a service should be
	// created using the endpoint name (i.e. instead of generating a service name for all endpoints,
	// this endpoint should be statically accessible)
	DiscoverableAttribute EndpointAttribute = "discoverable"
)

Variables

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

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

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

Functions

This section is empty.

Types

type DevWorkspaceOperatorConfig added in v0.10.0

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

	Config *OperatorConfiguration `json:"config,omitempty"`
}

DevWorkspaceOperatorConfig is the Schema for the devworkspaceoperatorconfigs API +kubebuilder:object:root=true +kubebuilder:resource:path=devworkspaceoperatorconfigs,scope=Namespaced,shortName=dwoc

func (*DevWorkspaceOperatorConfig) DeepCopy added in v0.10.0

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

func (*DevWorkspaceOperatorConfig) DeepCopyInto added in v0.10.0

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

func (*DevWorkspaceOperatorConfig) DeepCopyObject added in v0.10.0

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

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

type DevWorkspaceOperatorConfigList added in v0.10.0

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

DevWorkspaceOperatorConfigList contains a list of DevWorkspaceOperatorConfig +kubebuilder:object:root=true

func (*DevWorkspaceOperatorConfigList) DeepCopy added in v0.10.0

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

func (*DevWorkspaceOperatorConfigList) DeepCopyInto added in v0.10.0

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

func (*DevWorkspaceOperatorConfigList) DeepCopyObject added in v0.10.0

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

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

type DevWorkspaceRouting added in v0.2.0

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

	Spec   DevWorkspaceRoutingSpec   `json:"spec,omitempty"`
	Status DevWorkspaceRoutingStatus `json:"status,omitempty"`
}

DevWorkspaceRouting is the Schema for the devworkspaceroutings API +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:path=devworkspaceroutings,scope=Namespaced,shortName=dwr +kubebuilder:printcolumn:name="DevWorkspace ID",type="string",JSONPath=".spec.devworkspaceId",description="The owner DevWorkspace's unique id" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="The current phase" +kubebuilder:printcolumn:name="Info",type="string",JSONPath=".status.message",description="Additional info about DevWorkspaceRouting state"

func (*DevWorkspaceRouting) DeepCopy added in v0.2.0

func (in *DevWorkspaceRouting) DeepCopy() *DevWorkspaceRouting

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

func (*DevWorkspaceRouting) DeepCopyInto added in v0.2.0

func (in *DevWorkspaceRouting) DeepCopyInto(out *DevWorkspaceRouting)

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

func (*DevWorkspaceRouting) DeepCopyObject added in v0.2.0

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

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

type DevWorkspaceRoutingClass added in v0.2.0

type DevWorkspaceRoutingClass string
const (
	DevWorkspaceRoutingBasic       DevWorkspaceRoutingClass = "basic"
	DevWorkspaceRoutingCluster     DevWorkspaceRoutingClass = "cluster"
	DevWorkspaceRoutingClusterTLS  DevWorkspaceRoutingClass = "cluster-tls"
	DevWorkspaceRoutingWebTerminal DevWorkspaceRoutingClass = "web-terminal"
)

type DevWorkspaceRoutingList added in v0.2.0

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

DevWorkspaceRoutingList contains a list of DevWorkspaceRouting

func (*DevWorkspaceRoutingList) DeepCopy added in v0.2.0

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

func (*DevWorkspaceRoutingList) DeepCopyInto added in v0.2.0

func (in *DevWorkspaceRoutingList) DeepCopyInto(out *DevWorkspaceRoutingList)

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

func (*DevWorkspaceRoutingList) DeepCopyObject added in v0.2.0

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

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

type DevWorkspaceRoutingPhase added in v0.2.0

type DevWorkspaceRoutingPhase string

Valid phases for devworkspacerouting

const (
	RoutingReady     DevWorkspaceRoutingPhase = "Ready"
	RoutingPreparing DevWorkspaceRoutingPhase = "Preparing"
	RoutingFailed    DevWorkspaceRoutingPhase = "Failed"
)

type DevWorkspaceRoutingSpec added in v0.2.0

type DevWorkspaceRoutingSpec struct {
	// Id for the DevWorkspace being routed
	DevWorkspaceId string `json:"devworkspaceId"`
	// Class of the routing: this drives which DevWorkspaceRouting controller will manage this routing
	RoutingClass DevWorkspaceRoutingClass `json:"routingClass,omitempty"`
	// Machines to endpoints map
	Endpoints map[string]EndpointList `json:"endpoints"`
	// Selector that should be used by created services to point to the devworkspace Pod
	PodSelector map[string]string `json:"podSelector"`
}

DevWorkspaceRoutingSpec defines the desired state of DevWorkspaceRouting +k8s:openapi-gen=true

func (*DevWorkspaceRoutingSpec) DeepCopy added in v0.2.0

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

func (*DevWorkspaceRoutingSpec) DeepCopyInto added in v0.2.0

func (in *DevWorkspaceRoutingSpec) DeepCopyInto(out *DevWorkspaceRoutingSpec)

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

type DevWorkspaceRoutingStatus added in v0.2.0

type DevWorkspaceRoutingStatus struct {
	// Additions to main devworkspace deployment
	PodAdditions *PodAdditions `json:"podAdditions,omitempty"`
	// Machine name to exposed endpoint map
	ExposedEndpoints map[string]ExposedEndpointList `json:"exposedEndpoints,omitempty"`
	// Routing reconcile phase
	Phase DevWorkspaceRoutingPhase `json:"phase,omitempty"`
	// Message is a user-readable message explaining the current phase (e.g. reason for failure)
	Message string `json:"message,omitempty"`
}

DevWorkspaceRoutingStatus defines the observed state of DevWorkspaceRouting +k8s:openapi-gen=true

func (*DevWorkspaceRoutingStatus) DeepCopy added in v0.2.0

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

func (*DevWorkspaceRoutingStatus) DeepCopyInto added in v0.2.0

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

type EndpointAttribute

type EndpointAttribute string

type EndpointList

type EndpointList []dw.Endpoint

func (EndpointList) DeepCopy

func (in EndpointList) DeepCopy() EndpointList

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

func (EndpointList) DeepCopyInto

func (in EndpointList) DeepCopyInto(out *EndpointList)

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

type EndpointType added in v0.5.0

type EndpointType string

type ExposedEndpoint

type ExposedEndpoint struct {
	// Name of the exposed endpoint
	Name string `json:"name"`
	// Public URL of the exposed endpoint
	Url string `json:"url"`
	// Attributes of the exposed endpoint
	// +optional
	Attributes devfileAttr.Attributes `json:"attributes,omitempty"`
}

func (*ExposedEndpoint) DeepCopy

func (in *ExposedEndpoint) DeepCopy() *ExposedEndpoint

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

func (*ExposedEndpoint) DeepCopyInto

func (in *ExposedEndpoint) DeepCopyInto(out *ExposedEndpoint)

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

type ExposedEndpointList

type ExposedEndpointList []ExposedEndpoint

func (ExposedEndpointList) DeepCopy

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

func (ExposedEndpointList) DeepCopyInto

func (in ExposedEndpointList) DeepCopyInto(out *ExposedEndpointList)

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

type OperatorConfiguration added in v0.10.0

type OperatorConfiguration struct {
	// Routing defines configuration options related to DevWorkspace networking
	Routing *RoutingConfig `json:"routing,omitempty"`
	// Workspace defines configuration options related to how DevWorkspaces are
	// managed
	Workspace *WorkspaceConfig `json:"workspace,omitempty"`
	// EnableExperimentalFeatures turns on in-development features of the controller.
	// This option should generally not be enabled, as any capabilites are subject
	// to removal without notice.
	EnableExperimentalFeatures *bool `json:"enableExperimentalFeatures,omitempty"`
}

OperatorConfiguration defines configuration options for the DevWorkspace Operator.

func (*OperatorConfiguration) DeepCopy added in v0.10.0

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

func (*OperatorConfiguration) DeepCopyInto added in v0.10.0

func (in *OperatorConfiguration) DeepCopyInto(out *OperatorConfiguration)

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

type PodAdditions

type PodAdditions struct {
	// Annotations to be applied to devworkspace deployment
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	Annotations map[string]string `json:"annotations,omitempty"`
	// Labels to be applied to devworkspace deployment
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	Labels map[string]string `json:"labels,omitempty"`
	// Containers to add to devworkspace deployment
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	Containers []v1.Container `json:"containers,omitempty"`
	// Init containers to add to devworkspace deployment
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	InitContainers []v1.Container `json:"initContainers,omitempty"`
	// Volumes to add to devworkspace deployment
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	Volumes []v1.Volume `json:"volumes,omitempty"`
	// VolumeMounts to add to all containers in a devworkspace deployment
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"`
	// ImagePullSecrets to add to devworkspace deployment
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	PullSecrets []v1.LocalObjectReference `json:"pullSecrets,omitempty"`
	// Annotations for the devworkspace service account, it might be used for e.g. OpenShift oauth with SA as auth client
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	ServiceAccountAnnotations map[string]string `json:"serviceAccountAnnotations,omitempty"`
}

Summary of additions that are to be merged into the main devworkspace deployment

func (*PodAdditions) DeepCopy

func (in *PodAdditions) DeepCopy() *PodAdditions

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

func (*PodAdditions) DeepCopyInto

func (in *PodAdditions) DeepCopyInto(out *PodAdditions)

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

type RoutingConfig added in v0.10.0

type RoutingConfig struct {
	// DefaultRoutingClass specifies the routingClass to be used when a DevWorkspace
	// specifies an empty `.spec.routingClass`. Supported routingClasses can be defined
	// in other controllers. If not specified, the default value of "basic" is used.
	DefaultRoutingClass string `json:"defaultRoutingClass,omitempty"`
	// ClusterHostSuffix is the hostname suffix to be used for DevWorkspace endpoints.
	// On OpenShift, the DevWorkspace Operator will attempt to determine the appropriate
	// value automatically. Must be specified on Kubernetes.
	ClusterHostSuffix string `json:"clusterHostSuffix,omitempty"`
}

func (*RoutingConfig) DeepCopy added in v0.10.0

func (in *RoutingConfig) DeepCopy() *RoutingConfig

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

func (*RoutingConfig) DeepCopyInto added in v0.10.0

func (in *RoutingConfig) DeepCopyInto(out *RoutingConfig)

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

type WorkspaceConfig added in v0.10.0

type WorkspaceConfig struct {
	// ImagePullPolicy defines the imagePullPolicy used for containers in a DevWorkspace
	// For additional information, see Kubernetes documentation for imagePullPolicy. If
	// not specified, the default value of "Always" is used.
	// +kubebuilder:validation:Enum=IfNotPresent;Always;Never
	ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
	// PVCName defines the name used for the persistent volume claim created
	// to support workspace storage when the 'common' storage class is used.
	// If not specified, the default value of `claim-devworkspace` is used.
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	PVCName string `json:"pvcName,omitempty"`
	// StorageClassName defines and optional storageClass to use for persistent
	// volume claims created to support DevWorkspaces
	StorageClassName *string `json:"storageClassName,omitempty"`
	// IdleTimeout determines how long a workspace should sit idle before being
	// automatically scaled down. Proper functionality of this configuration property
	// requires support in the workspace being started. If not specified, the default
	// value of "15m" is used.
	IdleTimeout string `json:"idleTimeout,omitempty"`
	// ProgressTimeout determines the maximum duration a DevWorkspace can be in
	// a "Starting" or "Failing" phase without progressing before it is automatically failed.
	// Duration should be specified in a format parseable by Go's time package, e.g.
	// "15m", "20s", "1h30m", etc. If not specified, the default value of "5m" is used.
	ProgressTimeout string `json:"progressTimeout,omitempty"`
	// IgnoredUnrecoverableEvents defines a list of Kubernetes event names that should
	// be ignored when deciding to fail a DevWorkspace startup. This option should be used
	// if a transient cluster issue is triggering false-positives (for example, if
	// the cluster occasionally encounters FailedScheduling events). Events listed
	// here will not trigger DevWorkspace failures.
	IgnoredUnrecoverableEvents []string `json:"ignoredUnrecoverableEvents,omitempty"`
}

func (*WorkspaceConfig) DeepCopy added in v0.10.0

func (in *WorkspaceConfig) DeepCopy() *WorkspaceConfig

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

func (*WorkspaceConfig) DeepCopyInto added in v0.10.0

func (in *WorkspaceConfig) DeepCopyInto(out *WorkspaceConfig)

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