v2

package
v0.0.0-...-f7e4497 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: EPL-2.0 Imports: 25 Imported by: 4

Documentation

Overview

Package v2 contains API Schema definitions for the org v2 API group +kubebuilder:object:generate=true +groupName=org.eclipse.che

Index

Constants

View Source
const (
	GatewayPhaseInitializing = "Initializing"
	GatewayPhaseEstablished  = "Established"
	GatewayPhaseInactive     = "Inactive"
)
View Source
const (
	ClusterPhaseActive          = "Active"
	ClusterPhaseInactive        = "Inactive"
	ClusterPhasePendingDeletion = "PendingDeletion"
	RollingUpdate               = "RollingUpdate"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "org.eclipse.che", Version: "v2"}

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

type AdvancedAuthorization struct {
	// List of users allowed to access Che.
	// +optional
	AllowUsers []string `json:"allowUsers,omitempty"`
	// List of groups allowed to access Che (currently supported in OpenShift only).
	// +optional
	AllowGroups []string `json:"allowGroups,omitempty"`
	// List of users denied to access Che.
	// +optional
	DenyUsers []string `json:"denyUsers,omitempty"`
	// List of groups denied to access Che (currently supported in OpenShift only).
	// +optional
	DenyGroups []string `json:"denyGroups,omitempty"`
}

func (*AdvancedAuthorization) DeepCopy

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

func (*AdvancedAuthorization) DeepCopyInto

func (in *AdvancedAuthorization) DeepCopyInto(out *AdvancedAuthorization)

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

type Auth

type Auth struct {
	// Public URL of the Identity Provider server.
	// +optional
	IdentityProviderURL string `json:"identityProviderURL,omitempty"`
	// Name of the OpenShift `OAuthClient` resource used to set up identity federation on the OpenShift side.
	// +optional
	OAuthClientName string `json:"oAuthClientName,omitempty"`
	// Name of the secret set in the OpenShift `OAuthClient` resource used to set up identity federation on the OpenShift side.
	// +optional
	OAuthSecret string `json:"oAuthSecret,omitempty"`
	// Access Token Scope.
	// This field is specific to Che installations made for Kubernetes only and ignored for OpenShift.
	// +optional
	OAuthScope string `json:"oAuthScope,omitempty"`
	// Inactivity timeout for tokens to set in the OpenShift `OAuthClient` resource used to set up identity federation on the OpenShift side.
	// 0 means tokens for this client never time out.
	// +optional
	OAuthAccessTokenInactivityTimeoutSeconds *int32 `json:"oAuthAccessTokenInactivityTimeoutSeconds,omitempty"`
	// Access token max age for tokens to set in the OpenShift `OAuthClient` resource used to set up identity federation on the OpenShift side.
	// 0 means no expiration.
	// +optional
	OAuthAccessTokenMaxAgeSeconds *int32 `json:"oAuthAccessTokenMaxAgeSeconds,omitempty"`
	// Identity token to be passed to upstream. There are two types of tokens supported: `id_token` and `access_token`.
	// Default value is `id_token`.
	// This field is specific to Che installations made for Kubernetes only and ignored for OpenShift.
	// +optional
	// +kubebuilder:validation:Enum=id_token;access_token
	IdentityToken string `json:"identityToken,omitempty"`
	// Gateway settings.
	// +optional
	// +kubebuilder:default:={configLabels: {app: che, component: che-gateway-config}}
	Gateway Gateway `json:"gateway,omitempty"`
	// Advance authorization settings. Determines which users and groups are allowed to access Che.
	// User is allowed to access Che if he/she is either in the `allowUsers` list or is member of group from `allowGroups` list
	// and not in neither the `denyUsers` list nor is member of group from `denyGroups` list.
	// If `allowUsers` and `allowGroups` are empty, then all users are allowed to access Che.
	// if `denyUsers` and `denyGroups` are empty, then no users are denied to access Che.
	// +optional
	AdvancedAuthorization *AdvancedAuthorization `json:"advancedAuthorization,omitempty"`
}

Authentication settings.

func (*Auth) DeepCopy

func (in *Auth) DeepCopy() *Auth

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

func (*Auth) DeepCopyInto

func (in *Auth) DeepCopyInto(out *Auth)

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

type AzureDevOpsService

type AzureDevOpsService struct {
	// Kubernetes secret, that contains Base64-encoded Azure DevOps Service Application ID and Client Secret.
	// See the following page: https://www.eclipse.org/che/docs/stable/administration-guide/configuring-oauth-2-for-microsoft-azure-devops-services
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:Secret"
	SecretName string `json:"secretName"`
}

AzureDevOpsService enables users to work with repositories hosted on Azure DevOps Service (dev.azure.com).

func (*AzureDevOpsService) DeepCopy

func (in *AzureDevOpsService) DeepCopy() *AzureDevOpsService

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

func (*AzureDevOpsService) DeepCopyInto

func (in *AzureDevOpsService) DeepCopyInto(out *AzureDevOpsService)

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

type BitBucketService

type BitBucketService struct {
	// Kubernetes secret, that contains Base64-encoded Bitbucket OAuth 1.0 or OAuth 2.0 data.
	// See the following pages for details: https://www.eclipse.org/che/docs/stable/administration-guide/configuring-oauth-1-for-a-bitbucket-server/
	// and https://www.eclipse.org/che/docs/stable/administration-guide/configuring-oauth-2-for-the-bitbucket-cloud/.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:Secret"
	SecretName string `json:"secretName"`
	// Bitbucket server endpoint URL.
	// Deprecated in favor of `che.eclipse.org/scm-server-endpoint` annotation.
	// See the following page: https://www.eclipse.org/che/docs/stable/administration-guide/configuring-oauth-1-for-a-bitbucket-server/.
	// +optional
	Endpoint string `json:"endpoint,omitempty"`
}

BitBucketService enables users to work with repositories hosted on Bitbucket (bitbucket.org or self-hosted).

func (*BitBucketService) DeepCopy

func (in *BitBucketService) DeepCopy() *BitBucketService

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

func (*BitBucketService) DeepCopyInto

func (in *BitBucketService) DeepCopyInto(out *BitBucketService)

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

type Branding

type Branding struct {
	// +optional
	Logo *Icon `json:"logo,omitempty"`
}

func (*Branding) DeepCopy

func (in *Branding) DeepCopy() *Branding

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

func (*Branding) DeepCopyInto

func (in *Branding) DeepCopyInto(out *Branding)

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

type CheCluster

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

	// Desired configuration of Eclipse Che installation.
	Spec CheClusterSpec `json:"spec,omitempty"`

	// Defines the observed state of Che installation.
	Status CheClusterStatus `json:"status,omitempty"`
}

The `CheCluster` custom resource allows defining and managing Eclipse Che server installation. Based on these settings, the Operator automatically creates and maintains several ConfigMaps: `che`, `plugin-registry`, `devfile-registry` that will contain the appropriate environment variables of the various components of the installation. These generated ConfigMaps must NOT be updated manually. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:subresource:status +k8s:openapi-gen=true +operator-sdk:csv:customresourcedefinitions:displayName="Eclipse Che instance Specification" +operator-sdk:csv:customresourcedefinitions:order=0 +operator-sdk:csv:customresourcedefinitions:resources={{Ingress,v1},{Route,v1},{ConfigMap,v1},{Service,v1},{Secret,v1},{Deployment,apps/v1},{Role,v1},{RoleBinding,v1},{ClusterRole,v1},{ClusterRoleBinding,v1}} +kubebuilder:storageversion

func (*CheCluster) DeepCopy

func (in *CheCluster) DeepCopy() *CheCluster

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

func (*CheCluster) DeepCopyInto

func (in *CheCluster) DeepCopyInto(out *CheCluster)

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

func (*CheCluster) DeepCopyObject

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

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

func (*CheCluster) Default

func (r *CheCluster) Default()

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

func (*CheCluster) GetCheHost

func (c *CheCluster) GetCheHost() string

func (*CheCluster) GetDefaultNamespace

func (c *CheCluster) GetDefaultNamespace() string

func (*CheCluster) GetIdentityToken

func (c *CheCluster) GetIdentityToken() string

func (*CheCluster) Hub

func (*CheCluster) Hub()

func (*CheCluster) IsAccessTokenConfigured

func (c *CheCluster) IsAccessTokenConfigured() bool

func (*CheCluster) IsAirGapMode

func (c *CheCluster) IsAirGapMode() bool

func (*CheCluster) IsCheBeingInstalled

func (c *CheCluster) IsCheBeingInstalled() bool

IsCheBeingInstalled returns true if the Che version is not set in the status. Basically it means that the Che is being installed since the Che version is set only after the installation.

func (*CheCluster) IsCheFlavor

func (c *CheCluster) IsCheFlavor() bool

func (*CheCluster) IsContainerBuildCapabilitiesEnabled

func (c *CheCluster) IsContainerBuildCapabilitiesEnabled() bool

IsContainerBuildCapabilitiesEnabled returns true if container build capabilities are enabled. If value is not set in the CheCluster CR, then the default value is used.

func (*CheCluster) IsEmbeddedOpenVSXRegistryConfigured

func (c *CheCluster) IsEmbeddedOpenVSXRegistryConfigured() bool

IsEmbeddedOpenVSXRegistryConfigured returns true if the Open VSX Registry is configured to be embedded only if only the `Spec.Components.PluginRegistry.OpenVSXURL` is empty.

func (*CheCluster) IsImagePullerSpecEmpty

func (c *CheCluster) IsImagePullerSpecEmpty() bool

func (*CheCluster) IsOpenShiftSecurityContextConstraintSet

func (c *CheCluster) IsOpenShiftSecurityContextConstraintSet() bool

func (*CheCluster) SetupWebhookWithManager

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

func (*CheCluster) ValidateCreate

func (r *CheCluster) ValidateCreate() error

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

func (*CheCluster) ValidateDelete

func (r *CheCluster) ValidateDelete() error

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

func (*CheCluster) ValidateUpdate

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

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

type CheClusterComponents

type CheClusterComponents struct {
	// DevWorkspace Operator configuration.
	// +optional
	DevWorkspace DevWorkspace `json:"devWorkspace"`
	// General configuration settings related to the Che server.
	// +optional
	// +kubebuilder:default:={logLevel: INFO, debug: false}
	CheServer CheServer `json:"cheServer"`
	// Configuration settings related to the plug-in registry used by the Che installation.
	// +optional
	PluginRegistry PluginRegistry `json:"pluginRegistry"`
	// Configuration settings related to the devfile registry used by the Che installation.
	// +optional
	DevfileRegistry DevfileRegistry `json:"devfileRegistry"`
	// Configuration settings related to the dashboard used by the Che installation.
	// +optional
	Dashboard Dashboard `json:"dashboard"`
	// Kubernetes Image Puller configuration.
	// +optional
	ImagePuller ImagePuller `json:"imagePuller"`
	// Che server metrics configuration.
	// +optional
	// +kubebuilder:default:={enable: true}
	Metrics ServerMetrics `json:"metrics"`
}

Che components configuration. +k8s:openapi-gen=true

func (*CheClusterComponents) DeepCopy

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

func (*CheClusterComponents) DeepCopyInto

func (in *CheClusterComponents) DeepCopyInto(out *CheClusterComponents)

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

type CheClusterContainerRegistry

type CheClusterContainerRegistry struct {
	// An optional hostname or URL of an alternative container registry to pull images from.
	// This value overrides the container registry hostname defined in all the default container images involved in a Che deployment.
	// This is particularly useful for installing Che in a restricted environment.
	// +optional
	Hostname string `json:"hostname,omitempty"`
	// An optional repository name of an alternative registry to pull images from.
	// This value overrides the container registry organization defined in all the default container images involved in a Che deployment.
	// This is particularly useful for installing Eclipse Che in a restricted environment.
	// +optional
	Organization string `json:"organization,omitempty"`
}

Container registry configuration. +k8s:openapi-gen=true

func (*CheClusterContainerRegistry) DeepCopy

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

func (*CheClusterContainerRegistry) DeepCopyInto

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

type CheClusterDevEnvironments

type CheClusterDevEnvironments struct {
	//
	// GatewayContainer configuration.
	// +optional
	GatewayContainer *Container `json:"gatewayContainer,omitempty"`
	// Project clone container configuration.
	// +optional
	ProjectCloneContainer *Container `json:"projectCloneContainer,omitempty"`
	// Workspaces persistent storage.
	// +optional
	// +kubebuilder:default:={pvcStrategy: per-user}
	Storage WorkspaceStorage `json:"storage,omitempty"`
	// PersistUserHome defines configuration options for persisting the
	// user home directory in workspaces.
	// +optional
	PersistUserHome *PersistentHomeConfig `json:"persistUserHome,omitempty"`
	// Default plug-ins applied to DevWorkspaces.
	// +optional
	DefaultPlugins []WorkspaceDefaultPlugins `json:"defaultPlugins,omitempty"`
	// The node selector limits the nodes that can run the workspace pods.
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// The pod tolerations of the workspace pods limit where the workspace pods can run.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// User's default namespace.
	// +optional
	// +kubebuilder:default:={template: <username>-che, autoProvision: true}
	DefaultNamespace DefaultNamespace `json:"defaultNamespace,omitempty"`
	// Trusted certificate settings.
	// +optional
	TrustedCerts *TrustedCerts `json:"trustedCerts,omitempty"`
	// The default editor to workspace create with. It could be a plugin ID or a URI.
	// The plugin ID must have `publisher/plugin/version` format.
	// The URI must start from `http://` or `https://`.
	// +optional
	DefaultEditor string `json:"defaultEditor,omitempty"`
	// Default components applied to DevWorkspaces.
	// These default components are meant to be used when a Devfile, that does not contain any components.
	// +optional
	DefaultComponents []devfile.Component `json:"defaultComponents,omitempty"`
	// Idle timeout for workspaces in seconds.
	// This timeout is the duration after which a workspace will be idled if there is no activity.
	// To disable workspace idling due to inactivity, set this value to -1.
	// +kubebuilder:default:=1800
	SecondsOfInactivityBeforeIdling *int32 `json:"secondsOfInactivityBeforeIdling,omitempty"`
	// Run timeout for workspaces in seconds.
	// This timeout is the maximum duration a workspace runs.
	// To disable workspace run timeout, set this value to -1.
	// +kubebuilder:default:=-1
	SecondsOfRunBeforeIdling *int32 `json:"secondsOfRunBeforeIdling,omitempty"`
	// Disables the container build capabilities.
	// When set to `false` (the default value), the devEnvironments.security.containerSecurityContext
	// field is ignored, and the following container SecurityContext is applied:
	//
	//  containerSecurityContext:
	//    allowPrivilegeEscalation: true
	//    capabilities:
	//      add:
	//      - SETGID
	//      - SETUID
	//
	// +optional
	DisableContainerBuildCapabilities *bool `json:"disableContainerBuildCapabilities,omitempty"`
	// Workspace security configuration.
	// +optional
	Security WorkspaceSecurityConfig `json:"security,omitempty"`
	// Container build configuration.
	// +optional
	ContainerBuildConfiguration *ContainerBuildConfiguration `json:"containerBuildConfiguration,omitempty"`
	// ServiceAccount to use by the DevWorkspace operator when starting the workspaces.
	// +optional
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:MaxLength=63
	ServiceAccount string `json:"serviceAccount,omitempty"`
	// List of ServiceAccount tokens that will be mounted into workspace pods as projected volumes.
	// +optional
	ServiceAccountTokens []controllerv1alpha1.ServiceAccountToken `json:"serviceAccountTokens,omitempty"`
	// Pod scheduler for the workspace pods.
	// If not specified, the pod scheduler is set to the default scheduler on the cluster.
	// +optional
	PodSchedulerName string `json:"podSchedulerName,omitempty"`
	// StartTimeoutSeconds determines the maximum duration (in seconds) that a workspace can take to start
	// before it is automatically failed.
	// If not specified, the default value of 300 seconds (5 minutes) is used.
	// +optional
	// +kubebuilder:validation:Minimum:=1
	// +kubebuilder:default:=300
	StartTimeoutSeconds *int32 `json:"startTimeoutSeconds,omitempty"`
	// DeploymentStrategy defines the deployment strategy to use to replace existing workspace pods
	// with new ones. The available deployment stragies are `Recreate` and `RollingUpdate`.
	// With the `Recreate` deployment strategy, the existing workspace pod is killed before the new one is created.
	// With the `RollingUpdate` deployment strategy, a new workspace pod is created and the existing workspace pod is deleted
	// only when the new workspace pod is in a ready state.
	// If not specified, the default `Recreate` deployment strategy is used.
	// +optional
	// +kubebuilder:validation:Enum=Recreate;RollingUpdate
	DeploymentStrategy appsv1.DeploymentStrategyType `json:"deploymentStrategy,omitempty"`
	// Total number of workspaces, both stopped and running, that a user can keep.
	// The value, -1, allows users to keep an unlimited number of workspaces.
	// +kubebuilder:validation:Minimum:=-1
	// +kubebuilder:default:=-1
	// +optional
	MaxNumberOfWorkspacesPerUser *int64 `json:"maxNumberOfWorkspacesPerUser,omitempty"`
	// The maximum number of running workspaces per user.
	// The value, -1, allows users to run an unlimited number of workspaces.
	// +kubebuilder:validation:Minimum:=-1
	// +optional
	MaxNumberOfRunningWorkspacesPerUser *int64 `json:"maxNumberOfRunningWorkspacesPerUser,omitempty"`
	// User configuration.
	// +optional
	User *UserConfiguration `json:"user,omitempty"`
	// ImagePullPolicy defines the imagePullPolicy used for containers in a DevWorkspace.
	// +optional
	// +kubebuilder:validation:Enum=Always;IfNotPresent;Never
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
}

Development environment configuration. +k8s:openapi-gen=true

func (*CheClusterDevEnvironments) DeepCopy

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

func (*CheClusterDevEnvironments) DeepCopyInto

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

type CheClusterGitServices

type CheClusterGitServices struct {
	// Enables users to work with repositories hosted on GitHub (github.com or GitHub Enterprise).
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="GitHub"
	GitHub []GitHubService `json:"github,omitempty"`
	// Enables users to work with repositories hosted on GitLab (gitlab.com or self-hosted).
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="GitLab"
	GitLab []GitLabService `json:"gitlab,omitempty"`
	// Enables users to work with repositories hosted on Bitbucket (bitbucket.org or self-hosted).
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Bitbucket"
	BitBucket []BitBucketService `json:"bitbucket,omitempty"`
	// Enables users to work with repositories hosted on Azure DevOps Service (dev.azure.com).
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Azure"
	AzureDevOps []AzureDevOpsService `json:"azure,omitempty"`
}

func (*CheClusterGitServices) DeepCopy

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

func (*CheClusterGitServices) DeepCopyInto

func (in *CheClusterGitServices) DeepCopyInto(out *CheClusterGitServices)

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

type CheClusterList

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

+kubebuilder:object:root=true The CheClusterList contains a list of CheClusters.

func (*CheClusterList) DeepCopy

func (in *CheClusterList) DeepCopy() *CheClusterList

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

func (*CheClusterList) DeepCopyInto

func (in *CheClusterList) DeepCopyInto(out *CheClusterList)

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

func (*CheClusterList) DeepCopyObject

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

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

type CheClusterPhase

type CheClusterPhase string

CheClusterPhase describes the different phases of the Che cluster lifecycle.

type CheClusterSpec

type CheClusterSpec struct {
	// Development environment default configuration options.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,order=1
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Development environments"
	// +kubebuilder:default:={storage: {pvcStrategy: per-user}, defaultNamespace: {template: <username>-che, autoProvision: true}, secondsOfInactivityBeforeIdling:1800, secondsOfRunBeforeIdling:-1, startTimeoutSeconds:300, maxNumberOfWorkspacesPerUser:-1}
	DevEnvironments CheClusterDevEnvironments `json:"devEnvironments"`
	// Che components configuration.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,order=2
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Components"
	// +kubebuilder:default:={cheServer: {logLevel: INFO, debug: false}, metrics: {enable: true}}
	Components CheClusterComponents `json:"components"`
	// A configuration that allows users to work with remote Git repositories.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,order=3
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Git Services"
	GitServices CheClusterGitServices `json:"gitServices"`
	// Networking, Che authentication, and TLS configuration.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,order=4
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Networking"
	// +kubebuilder:default:={auth: {gateway: {configLabels: {app: che, component: che-gateway-config}}}}
	Networking CheClusterSpecNetworking `json:"networking"`
	// Configuration of an alternative registry that stores Che images.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec,order=5
	// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Container registry"
	ContainerRegistry CheClusterContainerRegistry `json:"containerRegistry"`
}

+k8s:openapi-gen=true Desired configuration of Eclipse Che installation.

func (*CheClusterSpec) DeepCopy

func (in *CheClusterSpec) DeepCopy() *CheClusterSpec

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

func (*CheClusterSpec) DeepCopyInto

func (in *CheClusterSpec) DeepCopyInto(out *CheClusterSpec)

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

type CheClusterSpecNetworking

type CheClusterSpecNetworking struct {
	// Defines labels which will be set for an Ingress (a route for OpenShift platform).
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// Defines annotations which will be set for an Ingress (a route for OpenShift platform).
	// The defaults for kubernetes platforms are:
	//     kubernetes.io/ingress.class:                       "nginx"
	//     nginx.ingress.kubernetes.io/proxy-read-timeout:    "3600",
	//     nginx.ingress.kubernetes.io/proxy-connect-timeout: "3600",
	//     nginx.ingress.kubernetes.io/ssl-redirect:          "true"
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// For an OpenShift cluster, the Operator uses the domain to generate a hostname for the route.
	// The generated hostname follows this pattern: che-<che-namespace>.<domain>. The <che-namespace> is the namespace where the CheCluster CRD is created.
	// In conjunction with labels, it creates a route served by a non-default Ingress controller.
	// For a Kubernetes cluster, it contains a global ingress domain. There are no default values: you must specify them.
	// +optional
	Domain string `json:"domain,omitempty"`
	// The public hostname of the installed Che server.
	// +optional
	Hostname string `json:"hostname,omitempty"`
	// The name of the secret used to set up Ingress TLS termination.
	// If the field is an empty string, the default cluster certificate is used.
	// The secret must have a `app.kubernetes.io/part-of=che.eclipse.org` label.
	// +optional
	TlsSecretName string `json:"tlsSecretName,omitempty"`
	// IngressClassName is the name of an IngressClass cluster resource.
	// If a class name is defined in both the `IngressClassName` field and the `kubernetes.io/ingress.class` annotation,
	// `IngressClassName` field takes precedence.
	IngressClassName string `json:"ingressClassName,omitempty"`
	// Authentication settings.
	// +optional
	// +kubebuilder:default:={gateway: {configLabels: {app: che, component: che-gateway-config}}}
	Auth Auth `json:"auth"`
}

Configuration settings related to the networking used by the Che installation. +k8s:openapi-gen=true

func (*CheClusterSpecNetworking) DeepCopy

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

func (*CheClusterSpecNetworking) DeepCopyInto

func (in *CheClusterSpecNetworking) DeepCopyInto(out *CheClusterSpecNetworking)

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

type CheClusterStatus

type CheClusterStatus struct {
	// Specifies the current phase of the gateway deployment.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Gateway phase"
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:text"
	GatewayPhase GatewayPhase `json:"gatewayPhase,omitempty"`
	// Currently installed Che version.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="displayName: Eclipse Che version"
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:text"
	CheVersion string `json:"cheVersion"`
	// Public URL of the Che server.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Eclipse Che URL"
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:org.w3:link"
	CheURL string `json:"cheURL"`
	// Specifies the current phase of the Che deployment.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="ChePhase"
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:text"
	ChePhase CheClusterPhase `json:"chePhase,omitempty"`
	// The public URL of the internal devfile registry.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Devfile registry URL"
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:org.w3:link"
	DevfileRegistryURL string `json:"devfileRegistryURL"`
	// The public URL of the internal plug-in registry.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Plugin registry URL"
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:org.w3:link"
	PluginRegistryURL string `json:"pluginRegistryURL"`
	// A human readable message indicating details about why the Che deployment is in the current phase.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Message"
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:text"
	Message string `json:"message,omitempty"`
	// A brief CamelCase message indicating details about why the Che deployment is in the current phase.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Reason"
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:text"
	Reason string `json:"reason,omitempty"`
	// The resolved workspace base domain. This is either the copy of the explicitly defined property of the
	// same name in the spec or, if it is undefined in the spec and we're running on OpenShift, the automatically
	// resolved basedomain for routes.
	// +optional
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Workspace base domain"
	// +operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors="urn:alm:descriptor:text"
	WorkspaceBaseDomain string `json:"workspaceBaseDomain,omitempty"`
}

CheClusterStatus defines the observed state of Che installation.

func (*CheClusterStatus) DeepCopy

func (in *CheClusterStatus) DeepCopy() *CheClusterStatus

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

func (*CheClusterStatus) DeepCopyInto

func (in *CheClusterStatus) DeepCopyInto(out *CheClusterStatus)

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

type CheServer

type CheServer struct {
	// Deployment override options.
	// +optional
	Deployment *Deployment `json:"deployment,omitempty"`
	// The log level for the Che server: `INFO` or `DEBUG`.
	// +optional
	// +kubebuilder:default:="INFO"
	LogLevel string `json:"logLevel,omitempty"`
	// Enables the debug mode for Che server.
	// +optional
	// +kubebuilder:default:=false
	Debug *bool `json:"debug,omitempty"`
	// Additional ClusterRoles assigned to Che ServiceAccount.
	// Each role must have a `app.kubernetes.io/part-of=che.eclipse.org` label.
	// The defaults roles are:
	// - `<che-namespace>-cheworkspaces-clusterrole`
	// - `<che-namespace>-cheworkspaces-namespaces-clusterrole`
	// - `<che-namespace>-cheworkspaces-devworkspace-clusterrole`
	// where the <che-namespace> is the namespace where the CheCluster CR is created.
	// The Che Operator must already have all permissions in these ClusterRoles to grant them.
	// +optional
	ClusterRoles []string `json:"clusterRoles,omitempty"`
	// Proxy server settings for Kubernetes cluster. No additional configuration is required for OpenShift cluster.
	// By specifying these settings for the OpenShift cluster, you override the OpenShift proxy configuration.
	// +optional
	Proxy *Proxy `json:"proxy,omitempty"`
	// A map of additional environment variables applied in the generated `che` ConfigMap to be used by the Che server
	// in addition to the values already generated from other fields of the `CheCluster` custom resource (CR).
	// If the `extraProperties` field contains a property normally generated in `che` ConfigMap from other CR fields,
	// the value defined in the `extraProperties` is used instead.
	// +optional
	ExtraProperties map[string]string `json:"extraProperties,omitempty"`
}

+k8s:openapi-gen=true General configuration settings related to the Che server.

func (*CheServer) DeepCopy

func (in *CheServer) DeepCopy() *CheServer

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

func (*CheServer) DeepCopyInto

func (in *CheServer) DeepCopyInto(out *CheServer)

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

type Container

type Container struct {
	// Container name.
	// +optional
	Name string `json:"name,omitempty"`
	// Container image. Omit it or leave it empty to use the default container image provided by the Operator.
	// +optional
	Image string `json:"image,omitempty"`
	// Image pull policy. Default value is `Always` for `nightly`, `next` or `latest` images, and `IfNotPresent` in other cases.
	// +optional
	// +kubebuilder:validation:Enum=Always;IfNotPresent;Never
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// Compute resources required by this container.
	// +optional
	Resources *ResourceRequirements `json:"resources,omitempty"`
	// List of environment variables to set in the container.
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`
}

Container custom settings.

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 ContainerBuildConfiguration

type ContainerBuildConfiguration struct {
	// OpenShift security context constraint to build containers.
	// +kubebuilder:validation:Required
	// +kubebuilder:default:=container-build
	OpenShiftSecurityContextConstraint string `json:"openShiftSecurityContextConstraint,omitempty"`
}

Container build configuration.

func (*ContainerBuildConfiguration) DeepCopy

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

func (*ContainerBuildConfiguration) DeepCopyInto

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

type Dashboard

type Dashboard struct {
	// The log level for the Dashboard.
	// +optional
	// +kubebuilder:default:="ERROR"
	// +kubebuilder:validation:Enum=DEBUG;INFO;WARN;ERROR;FATAL;TRACE;SILENT
	LogLevel string `json:"logLevel,omitempty"`
	// Deployment override options.
	// +optional
	Deployment *Deployment `json:"deployment,omitempty"`
	// Dashboard header message.
	// +optional
	HeaderMessage *DashboardHeaderMessage `json:"headerMessage,omitempty"`
	// Dashboard branding resources.
	// +optional
	Branding *Branding `json:"branding,omitempty"`
}

Configuration settings related to the Dashaboard used by the Che installation. +k8s:openapi-gen=true

func (*Dashboard) DeepCopy

func (in *Dashboard) DeepCopy() *Dashboard

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

func (*Dashboard) DeepCopyInto

func (in *Dashboard) DeepCopyInto(out *Dashboard)

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

type DashboardHeaderMessage

type DashboardHeaderMessage struct {
	// Instructs dashboard to show the message.
	// +optional
	Show bool `json:"show,omitempty"`
	// Warning message displayed on the user dashboard.
	// +optional
	Text string `json:"text,omitempty"`
}

func (*DashboardHeaderMessage) DeepCopy

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

func (*DashboardHeaderMessage) DeepCopyInto

func (in *DashboardHeaderMessage) DeepCopyInto(out *DashboardHeaderMessage)

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

type DefaultNamespace

type DefaultNamespace struct {
	// If you don't create the user namespaces in advance, this field defines the Kubernetes namespace created when you start your first workspace.
	// You can use `<username>` and `<userid>` placeholders, such as che-workspace-<username>.
	// +optional
	// +kubebuilder:default:=<username>-che
	// +kubebuilder:validation:Pattern=<username>|<userid>
	Template string `json:"template,omitempty"`
	// Indicates if is allowed to automatically create a user namespace.
	// If it set to false, then user namespace must be pre-created by a cluster administrator.
	// +optional
	// +kubebuilder:default:=true
	AutoProvision *bool `json:"autoProvision,omitempty"`
}

func (*DefaultNamespace) DeepCopy

func (in *DefaultNamespace) DeepCopy() *DefaultNamespace

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

func (*DefaultNamespace) DeepCopyInto

func (in *DefaultNamespace) DeepCopyInto(out *DefaultNamespace)

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

type Deployment

type Deployment struct {
	// List of containers belonging to the pod.
	// +optional
	Containers []Container `json:"containers,omitempty"`
	// Security options the pod should run with.
	// +optional
	SecurityContext *PodSecurityContext `json:"securityContext,omitempty"`
}

Deployment custom settings.

func (*Deployment) DeepCopy

func (in *Deployment) DeepCopy() *Deployment

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

func (*Deployment) DeepCopyInto

func (in *Deployment) DeepCopyInto(out *Deployment)

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

type DevWorkspace

type DevWorkspace struct {
	// Deprecated in favor of `MaxNumberOfRunningWorkspacesPerUser`
	// The maximum number of running workspaces per user.
	// +optional
	RunningLimit string `json:"runningLimit,omitempty"`
}

Settings for installation and configuration of the DevWorkspace Operator See https://github.com/devfile/devworkspace-operator +k8s:openapi-gen=true

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.

type DevfileRegistry

type DevfileRegistry struct {
	// Deployment override options.
	// +optional
	Deployment *Deployment `json:"deployment,omitempty"`
	// Disables internal devfile registry.
	// +optional
	DisableInternalRegistry bool `json:"disableInternalRegistry,omitempty"`
	// External devfile registries serving sample ready-to-use devfiles.
	// +optional
	ExternalDevfileRegistries []ExternalDevfileRegistry `json:"externalDevfileRegistries,omitempty"`
}

Configuration settings related to the devfile registry used by the Che installation. +k8s:openapi-gen=true

func (*DevfileRegistry) DeepCopy

func (in *DevfileRegistry) DeepCopy() *DevfileRegistry

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

func (*DevfileRegistry) DeepCopyInto

func (in *DevfileRegistry) DeepCopyInto(out *DevfileRegistry)

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

type ExternalDevfileRegistry

type ExternalDevfileRegistry struct {
	// The public UR of the devfile registry that serves sample ready-to-use devfiles.
	// +optional
	Url string `json:"url,omitempty"`
}

External devfile registries configuration.

func (*ExternalDevfileRegistry) DeepCopy

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

func (*ExternalDevfileRegistry) DeepCopyInto

func (in *ExternalDevfileRegistry) DeepCopyInto(out *ExternalDevfileRegistry)

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

type ExternalPluginRegistry

type ExternalPluginRegistry struct {
	// Public URL of the plug-in registry.
	// +optional
	Url string `json:"url,omitempty"`
}

External plug-in registries configuration.

func (*ExternalPluginRegistry) DeepCopy

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

func (*ExternalPluginRegistry) DeepCopyInto

func (in *ExternalPluginRegistry) DeepCopyInto(out *ExternalPluginRegistry)

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

type Gateway

type Gateway struct {
	// Deployment override options.
	// Since gateway deployment consists of several containers, they must be distinguished in the configuration by their names:
	// - `gateway`
	// - `configbump`
	// - `oauth-proxy`
	// - `kube-rbac-proxy`
	// +optional
	Deployment *Deployment `json:"deployment,omitempty"`
	// Gateway configuration labels.
	// +optional
	// +kubebuilder:default:={app: che, component: che-gateway-config}
	ConfigLabels map[string]string `json:"configLabels,omitempty"`
	// Configuration for Traefik within the Che gateway pod.
	// +optional
	Traefik *Traefik `json:"traefik,omitempty"`
	// Configuration for kube-rbac-proxy within the Che gateway pod.
	// +optional
	KubeRbacProxy *KubeRbacProxy `json:"kubeRbacProxy,omitempty"`
	// Configuration for oauth-proxy within the Che gateway pod.
	// +optional
	OAuthProxy *OAuthProxy `json:"oAuthProxy,omitempty"`
}

Gateway settings.

func (*Gateway) DeepCopy

func (in *Gateway) DeepCopy() *Gateway

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

func (*Gateway) DeepCopyInto

func (in *Gateway) DeepCopyInto(out *Gateway)

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

type GatewayPhase

type GatewayPhase string

GatewayPhase describes the different phases of the Che gateway lifecycle.

type GitHubService

type GitHubService struct {
	// Kubernetes secret, that contains Base64-encoded GitHub OAuth Client id and GitHub OAuth Client secret.
	// See the following page for details: https://www.eclipse.org/che/docs/stable/administration-guide/configuring-oauth-2-for-github/.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:Secret"
	SecretName string `json:"secretName"`
	// GitHub server endpoint URL.
	// Deprecated in favor of `che.eclipse.org/scm-server-endpoint` annotation.
	// See the following page for details: https://www.eclipse.org/che/docs/stable/administration-guide/configuring-oauth-2-for-github/.
	// +optional
	Endpoint string `json:"endpoint,omitempty"`
	// Disables subdomain isolation.
	// Deprecated in favor of `che.eclipse.org/scm-github-disable-subdomain-isolation` annotation.
	// See the following page for details: https://www.eclipse.org/che/docs/stable/administration-guide/configuring-oauth-2-for-github/.
	// +optional
	DisableSubdomainIsolation *bool `json:"disableSubdomainIsolation,omitempty"`
}

GitHubService enables users to work with repositories hosted on GitHub (GitHub.com or GitHub Enterprise).

func (*GitHubService) DeepCopy

func (in *GitHubService) DeepCopy() *GitHubService

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

func (*GitHubService) DeepCopyInto

func (in *GitHubService) DeepCopyInto(out *GitHubService)

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

type GitLabService

type GitLabService struct {
	// Kubernetes secret, that contains Base64-encoded GitHub Application id and GitLab Application Client secret.
	// See the following page: https://www.eclipse.org/che/docs/stable/administration-guide/configuring-oauth-2-for-gitlab/.
	// +kubebuilder:validation:Required
	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:io.kubernetes:Secret"
	SecretName string `json:"secretName"`
	// GitLab server endpoint URL.
	// Deprecated in favor of `che.eclipse.org/scm-server-endpoint` annotation.
	// See the following page: https://www.eclipse.org/che/docs/stable/administration-guide/configuring-oauth-2-for-gitlab/.
	// +optional
	Endpoint string `json:"endpoint,omitempty"`
}

GitLabService enables users to work with repositories hosted on GitLab (gitlab.com or self-hosted).

func (*GitLabService) DeepCopy

func (in *GitLabService) DeepCopy() *GitLabService

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

func (*GitLabService) DeepCopyInto

func (in *GitLabService) DeepCopyInto(out *GitLabService)

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

type Icon

type Icon struct {
	Data      string `json:"base64data"`
	MediaType string `json:"mediatype"`
}

func (*Icon) DeepCopy

func (in *Icon) DeepCopy() *Icon

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

func (*Icon) DeepCopyInto

func (in *Icon) DeepCopyInto(out *Icon)

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

type ImagePuller

type ImagePuller struct {
	// Install and configure the community supported Kubernetes Image Puller Operator. When you set the value to `true` without providing any specs,
	// it creates a default Kubernetes Image Puller object managed by the Operator.
	// When you set the value to `false`, the Kubernetes Image Puller object is deleted, and the Operator uninstalled,
	// regardless of whether a spec is provided.
	// If you leave the `spec.images` field empty, a set of recommended workspace-related images is automatically detected and
	// pre-pulled after installation.
	// Note that while this Operator and its behavior is community-supported, its payload may be commercially-supported
	// for pulling commercially-supported images.
	// +optional
	Enable bool `json:"enable"`
	// A Kubernetes Image Puller spec to configure the image puller in the CheCluster.
	// +optional
	Spec imagepullerv1alpha1.KubernetesImagePullerSpec `json:"spec"`
}

Configuration settings for installation and configuration of the Kubernetes Image Puller See https://github.com/che-incubator/kubernetes-image-puller-operator +k8s:openapi-gen=true

func (*ImagePuller) DeepCopy

func (in *ImagePuller) DeepCopy() *ImagePuller

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

func (*ImagePuller) DeepCopyInto

func (in *ImagePuller) DeepCopyInto(out *ImagePuller)

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

type KubeRbacProxy

type KubeRbacProxy struct {
	// The glog log level for the kube-rbac-proxy container within the gateway pod. Larger values represent a higher verbosity. The default value is `0`.
	// +optional
	// +kubebuilder:default:=0
	// +kubebuilder:validation:Minimum:=0
	LogLevel *int32 `json:"logLevel,omitempty"`
}

Configuration for kube-rbac-proxy within the Che gateway pod.

func (*KubeRbacProxy) DeepCopy

func (in *KubeRbacProxy) DeepCopy() *KubeRbacProxy

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

func (*KubeRbacProxy) DeepCopyInto

func (in *KubeRbacProxy) DeepCopyInto(out *KubeRbacProxy)

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

type OAuthProxy

type OAuthProxy struct {
	// Expire timeframe for cookie. If set to 0, cookie becomes a session-cookie which will expire when the browser is closed.
	// +optional
	// +kubebuilder:default:=86400
	// +kubebuilder:validation:Minimum:=0
	CookieExpireSeconds *int32 `json:"cookieExpireSeconds,omitempty"`
}

func (*OAuthProxy) DeepCopy

func (in *OAuthProxy) DeepCopy() *OAuthProxy

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

func (*OAuthProxy) DeepCopyInto

func (in *OAuthProxy) DeepCopyInto(out *OAuthProxy)

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

type PVC

type PVC struct {
	// Persistent Volume Claim size. To update the claim size, the storage class that provisions it must support resizing.
	// +optional
	ClaimSize string `json:"claimSize,omitempty"`
	// Storage class for the Persistent Volume Claim. When omitted or left blank, a default storage class is used.
	// +optional
	StorageClass string `json:"storageClass,omitempty"`
}

PersistentVolumeClaim custom settings.

func (*PVC) DeepCopy

func (in *PVC) DeepCopy() *PVC

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

func (*PVC) DeepCopyInto

func (in *PVC) DeepCopyInto(out *PVC)

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

type PersistentHomeConfig

type PersistentHomeConfig struct {
	// Determines whether the user home directory in workspaces should persist between
	// workspace shutdown and startup.
	// Must be used with the 'per-user' or 'per-workspace' PVC strategy in order to take effect.
	// Disabled by default.
	Enabled *bool `json:"enabled,omitempty"`
}

func (*PersistentHomeConfig) DeepCopy

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

func (*PersistentHomeConfig) DeepCopyInto

func (in *PersistentHomeConfig) DeepCopyInto(out *PersistentHomeConfig)

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

type PluginRegistry

type PluginRegistry struct {
	// Deployment override options.
	// +optional
	Deployment *Deployment `json:"deployment,omitempty"`
	// Disables internal plug-in registry.
	// +optional
	DisableInternalRegistry bool `json:"disableInternalRegistry,omitempty"`
	// External plugin registries.
	// +optional
	ExternalPluginRegistries []ExternalPluginRegistry `json:"externalPluginRegistries,omitempty"`
	// Open VSX registry URL. If omitted an embedded instance will be used.
	// +optional
	OpenVSXURL *string `json:"openVSXURL,omitempty"`
}

Configuration settings related to the plug-in registry used by the Che installation. +k8s:openapi-gen=true

func (*PluginRegistry) DeepCopy

func (in *PluginRegistry) DeepCopy() *PluginRegistry

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

func (*PluginRegistry) DeepCopyInto

func (in *PluginRegistry) DeepCopyInto(out *PluginRegistry)

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

type PodSecurityContext

type PodSecurityContext struct {
	// The UID to run the entrypoint of the container process. The default value is `1724`.
	// +optional
	RunAsUser *int64 `json:"runAsUser,omitempty"`
	// A special supplemental group that applies to all containers in a pod. The default value is `1724`.
	// +optional
	FsGroup *int64 `json:"fsGroup,omitempty"`
}

PodSecurityContext holds pod-level security attributes and common container settings.

func (*PodSecurityContext) DeepCopy

func (in *PodSecurityContext) DeepCopy() *PodSecurityContext

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

func (*PodSecurityContext) DeepCopyInto

func (in *PodSecurityContext) DeepCopyInto(out *PodSecurityContext)

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

type Proxy

type Proxy struct {
	// URL (protocol+hostname) of the proxy server.
	// Use only when a proxy configuration is required. The Operator respects OpenShift cluster-wide proxy configuration,
	// defining `url` in a custom resource leads to overriding the cluster proxy configuration.
	// See the following page: https://docs.openshift.com/container-platform/4.4/networking/enable-cluster-wide-proxy.html.
	// +optional
	Url string `json:"url,omitempty"`
	// Proxy server port.
	// +optional
	Port string `json:"port,omitempty"`
	// A list of hosts that can be reached directly, bypassing the proxy.
	// Specify wild card domain use the following form `.<DOMAIN>`, for example:
	//    - localhost
	//    - my.host.com
	//    - 123.42.12.32
	// Use only when a proxy configuration is required. The Operator respects OpenShift cluster-wide proxy configuration,
	// defining `nonProxyHosts` in a custom resource leads to merging non-proxy hosts lists from the cluster proxy configuration, and the ones defined in the custom resources.
	// See the following page: https://docs.openshift.com/container-platform/4.4/networking/enable-cluster-wide-proxy.html.
	// +optional
	NonProxyHosts []string `json:"nonProxyHosts,omitempty"`
	// The secret name that contains `user` and `password` for a proxy server.
	// The secret must have a `app.kubernetes.io/part-of=che.eclipse.org` label.
	// +optional
	CredentialsSecretName string `json:"credentialsSecretName,omitempty"`
}

Proxy server configuration.

func (*Proxy) DeepCopy

func (in *Proxy) DeepCopy() *Proxy

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

func (*Proxy) DeepCopyInto

func (in *Proxy) DeepCopyInto(out *Proxy)

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

type ResourceList

type ResourceList struct {
	// Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
	// If the value is not specified, then the default value is set depending on the component.
	// If value is `0`, then no value is set for the component.
	// +optional
	Memory *resource.Quantity `json:"memory,omitempty"`
	// CPU, in cores. (500m = .5 cores)
	// If the value is not specified, then the default value is set depending on the component.
	// If value is `0`, then no value is set for the component.
	// +optional
	Cpu *resource.Quantity `json:"cpu,omitempty"`
}

List of resources.

func (*ResourceList) DeepCopy

func (in *ResourceList) DeepCopy() *ResourceList

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

func (*ResourceList) DeepCopyInto

func (in *ResourceList) DeepCopyInto(out *ResourceList)

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

type ResourceRequirements

type ResourceRequirements struct {
	// Describes the minimum amount of compute resources required.
	// +optional
	Requests *ResourceList `json:"request,omitempty"`
	// Describes the maximum amount of compute resources allowed.
	// +optional
	Limits *ResourceList `json:"limits,omitempty"`
}

Describes the compute resource requirements.

func (*ResourceRequirements) DeepCopy

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

func (*ResourceRequirements) DeepCopyInto

func (in *ResourceRequirements) DeepCopyInto(out *ResourceRequirements)

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

type ServerMetrics

type ServerMetrics struct {
	// Enables `metrics` for the Che server endpoint.
	// +optional
	// +kubebuilder:default:=true
	Enable bool `json:"enable"`
}

Che server metrics configuration

func (*ServerMetrics) DeepCopy

func (in *ServerMetrics) DeepCopy() *ServerMetrics

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

func (*ServerMetrics) DeepCopyInto

func (in *ServerMetrics) DeepCopyInto(out *ServerMetrics)

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

type Traefik

type Traefik struct {
	// The log level for the Traefik container within the gateway pod: `DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL`, or `PANIC`. The default value is `INFO`
	// +optional
	// +kubebuilder:default:="INFO"
	// +kubebuilder:validation:Enum=DEBUG;INFO;WARN;ERROR;FATAL;PANIC
	LogLevel string `json:"logLevel,omitempty"`
}

Configuration for Traefik within the Che gateway pod.

func (*Traefik) DeepCopy

func (in *Traefik) DeepCopy() *Traefik

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

func (*Traefik) DeepCopyInto

func (in *Traefik) DeepCopyInto(out *Traefik)

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

type TrustedCerts

type TrustedCerts struct {
	// The ConfigMap contains certificates to propagate to the Che components and to provide a particular configuration for Git.
	// See the following page: https://www.eclipse.org/che/docs/stable/administration-guide/deploying-che-with-support-for-git-repositories-with-self-signed-certificates/
	// The ConfigMap must have a `app.kubernetes.io/part-of=che.eclipse.org` label.
	// +optional
	GitTrustedCertsConfigMapName string `json:"gitTrustedCertsConfigMapName,omitempty"`
}

func (*TrustedCerts) DeepCopy

func (in *TrustedCerts) DeepCopy() *TrustedCerts

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

func (*TrustedCerts) DeepCopyInto

func (in *TrustedCerts) DeepCopyInto(out *TrustedCerts)

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

type UserConfiguration

type UserConfiguration struct {
	// Additional ClusterRoles assigned to the user.
	// The role must have `app.kubernetes.io/part-of=che.eclipse.org` label.
	// +optional
	ClusterRoles []string `json:"clusterRoles,omitempty"`
}

func (*UserConfiguration) DeepCopy

func (in *UserConfiguration) DeepCopy() *UserConfiguration

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

func (*UserConfiguration) DeepCopyInto

func (in *UserConfiguration) DeepCopyInto(out *UserConfiguration)

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

type WorkspaceDefaultPlugins

type WorkspaceDefaultPlugins struct {
	// The editor ID to specify default plug-ins for.
	Editor string `json:"editor,omitempty"`
	// Default plug-in URIs for the specified editor.
	Plugins []string `json:"plugins,omitempty"`
}

func (*WorkspaceDefaultPlugins) DeepCopy

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

func (*WorkspaceDefaultPlugins) DeepCopyInto

func (in *WorkspaceDefaultPlugins) DeepCopyInto(out *WorkspaceDefaultPlugins)

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

type WorkspaceSecurityConfig

type WorkspaceSecurityConfig struct {
	// PodSecurityContext used by all workspace-related pods.
	// If set, defined values are merged into the default PodSecurityContext configuration.
	// +optional
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
	// Container SecurityContext used by all workspace-related containers.
	// If set, defined values are merged into the default Container SecurityContext configuration.
	// Requires devEnvironments.disableContainerBuildCapabilities to be set to `true` in order to take effect.
	// +optional
	ContainerSecurityContext *corev1.SecurityContext `json:"containerSecurityContext,omitempty"`
}

Workspace security configuration

func (*WorkspaceSecurityConfig) DeepCopy

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

func (*WorkspaceSecurityConfig) DeepCopyInto

func (in *WorkspaceSecurityConfig) DeepCopyInto(out *WorkspaceSecurityConfig)

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

type WorkspaceStorage

type WorkspaceStorage struct {
	// PVC settings when using the `per-user` PVC strategy.
	// +optional
	PerUserStrategyPvcConfig *PVC `json:"perUserStrategyPvcConfig,omitempty"`
	// PVC settings when using the `per-workspace` PVC strategy.
	// +optional
	PerWorkspaceStrategyPvcConfig *PVC `json:"perWorkspaceStrategyPvcConfig,omitempty"`
	// Persistent volume claim strategy for the Che server.
	// The supported strategies are: `per-user` (all workspaces PVCs in one volume),
	// `per-workspace` (each workspace is given its own individual PVC)
	// and `ephemeral` (non-persistent storage where local changes will be lost when
	// the workspace is stopped.)
	// +optional
	// +kubebuilder:default:="per-user"
	// +kubebuilder:validation:Enum=common;per-user;per-workspace;ephemeral
	PvcStrategy string `json:"pvcStrategy,omitempty"`
}

Configuration settings related to the workspaces persistent storage.

func (*WorkspaceStorage) DeepCopy

func (in *WorkspaceStorage) DeepCopy() *WorkspaceStorage

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

func (*WorkspaceStorage) DeepCopyInto

func (in *WorkspaceStorage) DeepCopyInto(out *WorkspaceStorage)

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