v1

package
v0.0.0-...-f7a8afa Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2026 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

+k8s:deepcopy-gen=package,register Package v1 is the v1 version of the API. +groupName=disaggregated.cluster.doris.com

Package v1 contains API Schema definitions for the doris v1 API group +kubebuilder:object:generate=true +groupName=disaggregated.cluster.doris.com

Index

Constants

View Source
const (
	DorisDisaggregatedClusterName string = "app.doris.disaggregated.cluster"

	//OwnerReference list ownerReferences this object
	DorisDisaggregatedOwnerReference string = "app.doris.disaggregated.ownerreference/name"

	DorisDisaggregatedComputeGroupUniqueId string = "app.doris.disaggregated.cg-uniqueid"

	DorisDisaggregatedPodType string = "app.doris.disaggregated.type"

	DisaggregatedSpecHashValueAnnotation string = "doris.disaggregated.cluster/hash"

	ServiceRoleForCluster string = "app.doris.service/role"

	//annnotate on statefulset, represent which generation of DorisDisaggregatedCluster update the statefulset.
	UpdateStatefulsetGeneration string = "doris.disaggregated.cluster/generation"

	//use uniqueId as indifier of which statefulset updated. value is the ddc updateVersion
	UpdateStatefulsetName = "doris.disaggregated.cluster/%s"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "disaggregated.cluster.doris.com", Version: "v1"}

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	DefaultMetaserviceNumber   int32 = 2
	DefaultFeReplicaNumber     int32 = 2
	DefaultDisFeElectionNumber int32 = 1
)
View Source
var SchemeGroupVersion = GroupVersion

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type AdminUser

type AdminUser struct {
	//the user name for admin service's node.
	Name string `json:"name,omitempty"`

	//password, login to doris db.
	Password string `json:"password,omitempty"`
}

AdminUser describe administrator for manage components in specified cluster.

func (*AdminUser) DeepCopy

func (in *AdminUser) DeepCopy() *AdminUser

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

func (*AdminUser) DeepCopyInto

func (in *AdminUser) DeepCopyInto(out *AdminUser)

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

type AvailableStatus

type AvailableStatus string
const (
	//Available represents the service is available.
	Available AvailableStatus = "Available"

	//UnAvailable represents the service not available for using.
	UnAvailable AvailableStatus = "UnAvailable"
)

type ClusterHealth

type ClusterHealth struct {
	//represents the cluster overall status.
	Health Health `json:"health,omitempty"`
	//represents the fe available or not.
	FeAvailable bool `json:"feAvailable,omitempty"`
	//the number of compute group.
	CGCount int32 `json:"cgCount,omitempty"`
	//the available numbers of compute group.
	CGAvailableCount int32 `json:"cgAvailableCount,omitempty"`
	//the full available numbers of compute group, represents all pod in compute group are ready.
	CGFullAvailableCount int32 `json:"cgFullAvailableCount,omitempty"`
}

func (*ClusterHealth) DeepCopy

func (in *ClusterHealth) DeepCopy() *ClusterHealth

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

func (*ClusterHealth) DeepCopyInto

func (in *ClusterHealth) DeepCopyInto(out *ClusterHealth)

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

type CommonSpec

type CommonSpec struct {
	//Replicas represent the number of desired Pod.
	// fe default is 2. fe is master-slave architecture only one is master.
	Replicas *int32 `json:"replicas,omitempty"`

	//Image is the Disaggregated docker image to deploy. please reference the selectdb repository to find.
	Image string `json:"image,omitempty"`
	// ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
	// If specified, these secrets will be passed to individual puller implementations for them to use.
	// More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	// pod start timeout, unit is second
	StartTimeout int32 `json:"startTimeout,omitempty"`

	//Number of seconds after which the probe times out. Defaults to 180 second.
	LiveTimeout int32 `json:"liveTimeout,omitempty"`

	//defines the specification of resource cpu and mem. ep: {"requests":{"cpu": 4, "memory": "8Gi"},"limits":{"cpu":4,"memory":"8Gi"}}
	corev1.ResourceRequirements `json:",inline"`

	//Labels for organize and categorize objects
	Labels map[string]string `json:"labels,omitempty"`

	//Annotations is an unstructured key value map stored with a resource that may be
	// set by external tools to store and retrieve arbitrary metadata.
	Annotations map[string]string `json:"annotations,omitempty"`

	//+optional
	// Affinity is a group of affinity scheduling rules.
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// VolumeClaimTemplate allows customizing the persistent volume claim for the pod.
	//+deprecated please use persistentVolumes
	PersistentVolume *PersistentVolume `json:"persistentVolume,omitempty"`

	//if config true, the log will mount a pvc to store logs. the pvc size is definitely 200Gi, as the log recycling system will regular recycling.
	LogNotStore bool `json:"logNotStore,omitempty"`

	//volume template for mountPath
	PersistentVolumes []PersistentVolume `json:"persistentVolumes,omitempty"`
	// (Optional) Tolerations for scheduling pods onto some dedicated nodes
	//+optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// export service for accessing from outside k8s.
	Service *ExportService `json:"service,omitempty"`

	// ConfigMaps describe all configmap that need to be mounted.
	ConfigMaps []ConfigMap `json:"configMaps,omitempty"`

	// specify what's node to deploy compute group pod.
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	//serviceAccount for compute node access cloud service.
	ServiceAccount string `json:"serviceAccount,omitempty"`

	// HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
	// file if specified. This is only valid for non-hostNetwork pods.
	// +optional
	HostAliases []corev1.HostAlias `json:"hostAliases,omitempty"`

	//Security context for pod.
	//+optional
	SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`

	//Security context for all containers running in the pod (unless they override it).
	//+optional
	ContainerSecurityContext *corev1.SecurityContext `json:"containerSecurityContext,omitempty"` //+optional

	//EnvVars is a slice of environment variables that are added to the pods, the default is empty.
	EnvVars []corev1.EnvVar `json:"envVars,omitempty"`

	//SystemInitialization for fe, be setting system parameters.
	SystemInitialization *SystemInitialization `json:"systemInitialization,omitempty"`

	// Multi Secret for pod.
	// +optional
	Secrets []Secret `json:"secrets,omitempty"`
}

func (*CommonSpec) DeepCopy

func (in *CommonSpec) DeepCopy() *CommonSpec

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

func (*CommonSpec) DeepCopyInto

func (in *CommonSpec) DeepCopyInto(out *CommonSpec)

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

type ComputeGroup

type ComputeGroup struct {
	//the unique identifier of compute group, first register in fe will use UniqueId as compute group name.
	UniqueId string `json:"uniqueId"`

	// EnableWorkloadGroup is a switch that determines whether the doris cluster enables the workload group.
	// Default value is 'false'.
	// Enabling it means that the container must be started in privileged mode.
	// Please confirm whether the host machine and k8s cluster allow it.
	// Doris workloadgroup reference document: https://doris.apache.org/docs/admin-manual/resource-admin/workload-group
	EnableWorkloadGroup bool `json:"enableWorkloadGroup,omitempty"`

	CommonSpec `json:",inline"`

	// SkipDefaultSystemInit is a switch that skips the default initialization and is used to set the default environment configuration required by the doris BE node.
	// Default value is 'false'.
	// Default System Init means that the container must be started in privileged mode.
	// Default System Init configuration is implemented through the initContainers of the pod, so changes to this configuration may be ignored by k8s when it is not the first deployment.
	SkipDefaultSystemInit bool `json:"skipDefaultSystemInit,omitempty"`

	// AutoResolveLimitCPU indicates whether to automatically set the CPU limit to doris BE config.
	// Default value is 'false'. This means that the Doris BE is unaware of the CPU configuration of resources.
	// Enabling this configuration means injecting an ENV named BE_CPU_LIMIT with the value requests.cpu into the pod. This configuration will also appear in the 'be.conf' file inside the BE container.
	// Changing this configuration will cause a BE rolling restart.
	AutoResolveLimitCPU bool `json:"autoResolveLimitCPU,omitempty"`
}

ComputeGroup describe the specification that a group of compute node.

func (*ComputeGroup) DeepCopy

func (in *ComputeGroup) DeepCopy() *ComputeGroup

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

func (*ComputeGroup) DeepCopyInto

func (in *ComputeGroup) DeepCopyInto(out *ComputeGroup)

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

type ComputeGroupStatus

type ComputeGroupStatus struct {
	//Phase represent the stage of reconciling.
	Phase Phase `json:"phase,omitempty"`
	// the statefulset of control this compute group pods.
	StatefulsetName string `json:"statefulsetName,omitempty"`
	// the service that can access the compute group pods.
	ServiceName string `json:"serviceName,omitempty"`

	//the unique id of compute group in kubernetes, this field is part of compute group statefulset.
	UniqueId string `json:"uniqueId,omitempty"`

	//the compute group id in doris meta, this response to the backend's tag "compute_group_id";
	ComputeGroupId string `json:"computeGroupId,omitempty"`

	//AvailableStatus represents the compute group available or not.
	AvailableStatus AvailableStatus `json:"availableStatus,omitempty"`

	//suspend replicas display the replicas of compute group before resume.
	SuspendReplicas int32 `json:"suspendReplicas,omitempty"`

	// replicas is the number of Pods created by the StatefulSet controller.
	Replicas int32 `json:"replicas,omitempty"`

	// Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.
	// +optional
	AvailableReplicas int32 `json:"availableReplicas,omitempty"`
}

func (*ComputeGroupStatus) DeepCopy

func (in *ComputeGroupStatus) DeepCopy() *ComputeGroupStatus

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

func (*ComputeGroupStatus) DeepCopyInto

func (in *ComputeGroupStatus) DeepCopyInto(out *ComputeGroupStatus)

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

type ConfigMap

type ConfigMap struct {
	//Name specify the configmap need to be mounted in pod in deployed namespace.
	Name string `json:"name,omitempty"`

	//display the path of configMap be mounted in pod. the component start conf please mount to /etc/doris, ep: fe-configmap contains 'fe.conf', mountPath must be '/etc/doris'.
	// key in configMap's data is file name.
	MountPath string `json:"mountPath,omitempty"`
}

func (*ConfigMap) DeepCopy

func (in *ConfigMap) DeepCopy() *ConfigMap

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

func (*ConfigMap) DeepCopyInto

func (in *ConfigMap) DeepCopyInto(out *ConfigMap)

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

type DisaggregatedComponentType

type DisaggregatedComponentType string
var (
	DisaggregatedFE DisaggregatedComponentType = "FE"
	DisaggregatedBE DisaggregatedComponentType = "BE"
	DisaggregatedMS DisaggregatedComponentType = "MS"
)

type DorisDisaggregatedCluster

type DorisDisaggregatedCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              DorisDisaggregatedClusterSpec   `json:"spec,omitempty"`
	Status            DorisDisaggregatedClusterStatus `json:"status,omitempty"`
}

+genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:shortName=ddc +kubebuilder:printcolumn:name="ClusterHealth",type=string,JSONPath=`.status.clusterHealth.health` +kubebuilder:printcolumn:name="MSPhase",type=string,JSONPath=`.status.metaServiceStatus.phase` +kubebuilder:printcolumn:name="FEPhase",type=string,JSONPath=`.status.feStatus.phase` +kubebuilder:printcolumn:name="CGCount",type=integer,JSONPath=`.status.clusterHealth.cgCount` +kubebuilder:printcolumn:name="CGAvailableCount",type=integer,JSONPath=`.status.clusterHealth.cgAvailableCount` +kubebuilder:printcolumn:name="CGFullAvailableCount",type=integer,JSONPath=`.status.clusterHealth.cgFullAvailableCount` +kubebuilder:storageversion DorisDisaggregatedCluster defined as CRD format, have type, metadata, spec, status, fields.

func (*DorisDisaggregatedCluster) DeepCopy

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

func (*DorisDisaggregatedCluster) DeepCopyInto

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

func (*DorisDisaggregatedCluster) DeepCopyObject

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

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

func (*DorisDisaggregatedCluster) Default

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

func (*DorisDisaggregatedCluster) GetCGName

func (ddc *DorisDisaggregatedCluster) GetCGName(cg *ComputeGroup) string

the first deployed used computegroup name, when user rename the compute group name by sql command `ALTER SYSTEM RENAME COMPUTE GROUP <old_name> <new_name>`, this function will not right.

func (*DorisDisaggregatedCluster) GetCGServiceName

func (ddc *DorisDisaggregatedCluster) GetCGServiceName(cg *ComputeGroup) string

func (*DorisDisaggregatedCluster) GetCGStatefulsetName

func (ddc *DorisDisaggregatedCluster) GetCGStatefulsetName(cg *ComputeGroup) string

func (*DorisDisaggregatedCluster) GetElectionNumber

func (ddc *DorisDisaggregatedCluster) GetElectionNumber() int32

func (*DorisDisaggregatedCluster) GetFEInternalServiceName

func (ddc *DorisDisaggregatedCluster) GetFEInternalServiceName() string

func (*DorisDisaggregatedCluster) GetFEServiceName

func (ddc *DorisDisaggregatedCluster) GetFEServiceName() string

func (*DorisDisaggregatedCluster) GetFEStatefulsetName

func (ddc *DorisDisaggregatedCluster) GetFEStatefulsetName() string

func (*DorisDisaggregatedCluster) GetFEVIPAddresss

func (ddc *DorisDisaggregatedCluster) GetFEVIPAddresss() string

func (*DorisDisaggregatedCluster) GetInstanceHashId

func (ddc *DorisDisaggregatedCluster) GetInstanceHashId() int64

func (*DorisDisaggregatedCluster) GetMSServiceName

func (ddc *DorisDisaggregatedCluster) GetMSServiceName() string

func (*DorisDisaggregatedCluster) GetMSStatefulsetName

func (ddc *DorisDisaggregatedCluster) GetMSStatefulsetName() string

func (*DorisDisaggregatedCluster) SetupWebhookWithManager

func (ddc *DorisDisaggregatedCluster) SetupWebhookWithManager(mgr ctrl.Manager) error

log is for logging in this package.

func (*DorisDisaggregatedCluster) ValidateCreate

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

func (*DorisDisaggregatedCluster) ValidateDelete

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

func (*DorisDisaggregatedCluster) ValidateUpdate

func (ddc *DorisDisaggregatedCluster) ValidateUpdate(ctx context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error)

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

type DorisDisaggregatedClusterList

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

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object DorisDisaggregatedClusterList contains a list of DorisDisaggregatedCluster

func (*DorisDisaggregatedClusterList) DeepCopy

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

func (*DorisDisaggregatedClusterList) DeepCopyInto

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

func (*DorisDisaggregatedClusterList) DeepCopyObject

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

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

type DorisDisaggregatedClusterSpec

type DorisDisaggregatedClusterSpec struct {

	//MetaService describe the metaservice that cluster want to storage metadata.
	MetaService MetaService `json:"metaService,omitempty"`

	//FeSpec describe the fe specification of doris disaggregated cluster.
	FeSpec FeSpec `json:"feSpec,omitempty"`

	//ComputeGroups describe a list of ComputeGroup, ComputeGroup is a group of compute node to do same thing.
	ComputeGroups []ComputeGroup `json:"computeGroups,omitempty"`

	// the name of secret that type is `kubernetes.io/basic-auth` and contains keys username, password for management doris node in cluster as fe, be register.
	// the password key is `password`. the username defaults to `root` and is omitempty.
	AuthSecret string `json:"authSecret,omitempty"`

	//administrator for register or drop component from fe cluster. adminUser for all component register and operator drop component.
	//+Deprecated, from 1.4.1 please use secret config username and password.
	AdminUser *AdminUser `json:"adminUser,omitempty"`

	// decommission be or not. default value is false.
	// if true, will decommission be node when scale down compute group.
	// if false, will drop be node when scale down compute group.
	EnableDecommission bool `json:"enableDecommission,omitempty"`

	// KerberosInfo contains a series of access key files, Provides access to kerberos.
	KerberosInfo *KerberosInfo `json:"kerberosInfo,omitempty"`
}

func (*DorisDisaggregatedClusterSpec) DeepCopy

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

func (*DorisDisaggregatedClusterSpec) DeepCopyInto

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

type DorisDisaggregatedClusterStatus

type DorisDisaggregatedClusterStatus struct {
	//describe the metaservice status now.
	MetaServiceStatus MetaServiceStatus `json:"metaServiceStatus,omitempty"`

	//FEStatus describe the fe status.
	FEStatus FEStatus `json:"feStatus,omitempty"`

	ClusterHealth ClusterHealth `json:"clusterHealth,omitempty"`

	//ComputeGroupStatuses reflect a list of computeGroup status.
	ComputeGroupStatuses []ComputeGroupStatus `json:"computeGroupStatuses,omitempty"`

	//is the most recent generation observed for DorisDisaggregatedCluster
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

func (*DorisDisaggregatedClusterStatus) DeepCopy

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

func (*DorisDisaggregatedClusterStatus) DeepCopyInto

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

type ExportService

type ExportService struct {
	//type of service,the possible value for the service type are : ClusterIP, NodePort, LoadBalancer,ExternalName.
	//More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
	// +optional
	Type corev1.ServiceType `json:"type,omitempty"`

	//Annotations for using function on different cloud platform.
	Annotations map[string]string `json:"annotations,omitempty"`

	//PortMaps specify node port for target port in pod, when the service type=NodePort.
	PortMaps []PortMap `json:"portMaps,omitempty"`
}

func (*ExportService) DeepCopy

func (in *ExportService) DeepCopy() *ExportService

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

func (*ExportService) DeepCopyInto

func (in *ExportService) DeepCopyInto(out *ExportService)

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

type FDB

type FDB struct {
	//if fdb directly deployed in machine, please add fdb access address which generated in 'etc/foundationdb/fdb.cluster' default.
	Address string `json:"address,omitempty"`
	//if fdb deployed in kubernetes by fdb-kubernetes-operator, please specify the namespace and configmap's name generated by `fdb-kubernetes-operator` in deployed fdbcluster namespace.
	ConfigMapNamespaceName NamespaceName `json:"configMapNamespaceName,omitempty"`
}

func (*FDB) DeepCopy

func (in *FDB) DeepCopy() *FDB

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

func (*FDB) DeepCopyInto

func (in *FDB) DeepCopyInto(out *FDB)

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

type FEStatus

type FEStatus struct {
	//Phase represent the stage of reconciling.
	Phase Phase `json:"phase,omitempty"`
	//AvailableStatus represents the fe available or not.
	AvailableStatus AvailableStatus `json:"availableStatus,omitempty"`
	//ClusterId display  the clusterId of fe in fe.conf,
	//It is the hash value of the concatenated string of namespace and ddcName
	ClusterId string `json:"clusterId,omitempty"`
}

func (*FEStatus) DeepCopy

func (in *FEStatus) DeepCopy() *FEStatus

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

func (*FEStatus) DeepCopyInto

func (in *FEStatus) DeepCopyInto(out *FEStatus)

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

type FeSpec

type FeSpec struct {
	//the number of fe in election. electionNumber <= replicas, left as observers. default value=3
	ElectionNumber *int32 `json:"electionNumber,omitempty"`

	CommonSpec `json:",inline"`
}

func (*FeSpec) DeepCopy

func (in *FeSpec) DeepCopy() *FeSpec

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

func (*FeSpec) DeepCopyInto

func (in *FeSpec) DeepCopyInto(out *FeSpec)

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

type Health

type Health string
var (
	Green  Health = "green"
	Yellow Health = "yellow"
	Red    Health = "red"
)

type KerberosInfo

type KerberosInfo struct {
	// Krb5ConfigMap is the name of configmap within 'krb5.conf'
	Krb5ConfigMap string `json:"krb5ConfigMap,omitempty"`

	// SecretName is the name of sercet within '*.keytab' files,
	// refer to the following command to create a Secret :
	// 	'kubectl create secret generic {secret-name} --from-file=. '
	KeytabSecretName string `json:"keytabSecretName,omitempty"`

	// KeytabPath is the path where the Secret is finally stored inside the pod. default '/etc/keytab/'.
	// It is not recommended to modify it unless necessary.
	// This path is the path filled in when configuring "hadoop.kerberos.keytab".
	KeytabPath string `json:"keytabPath,omitempty"`
}

func (*KerberosInfo) DeepCopy

func (in *KerberosInfo) DeepCopy() *KerberosInfo

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

func (*KerberosInfo) DeepCopyInto

func (in *KerberosInfo) DeepCopyInto(out *KerberosInfo)

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

type MetaService

type MetaService struct {
	CommonSpec `json:",inline"`
	//specify the address of fdb that used by doris Compute-storage decoupled cluster.
	FDB FDB `json:"fdb,omitempty"`
}

func (*MetaService) DeepCopy

func (in *MetaService) DeepCopy() *MetaService

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

func (*MetaService) DeepCopyInto

func (in *MetaService) DeepCopyInto(out *MetaService)

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

type MetaServiceStatus

type MetaServiceStatus struct {
	//Phase represent the stage of reconciling.
	Phase Phase `json:"phase,omitempty"`

	//AvailableStatus represents the metaservice available or not.
	AvailableStatus AvailableStatus `json:"availableStatus,omitempty"`

	// the meta service address for store meta of disaggregated cluster.
	MetaServiceEndpoint string `json:"metaServiceEndpoint,omitempty"`

	//the token for access ms service.
	MsToken string `json:"msToken,omitempty"`
}

func (*MetaServiceStatus) DeepCopy

func (in *MetaServiceStatus) DeepCopy() *MetaServiceStatus

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

func (*MetaServiceStatus) DeepCopyInto

func (in *MetaServiceStatus) DeepCopyInto(out *MetaServiceStatus)

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

type NamespaceName

type NamespaceName struct {
	Namespace string `json:"namespace,omitempty"`
	Name      string `json:"name,omitempty"`
}

func (*NamespaceName) DeepCopy

func (in *NamespaceName) DeepCopy() *NamespaceName

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

func (*NamespaceName) DeepCopyInto

func (in *NamespaceName) DeepCopyInto(out *NamespaceName)

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

type PVCProvisioner

type PVCProvisioner string
const (
	PVCProvisionerOperator PVCProvisioner = "operator"
)

Possible values of PVC provisioner

type PersistentVolume

type PersistentVolume struct {
	// PersistentVolumeClaimSpec is a list of claim spec about storage that pods are required.
	// +kubebuilder:validation:Optional
	corev1.PersistentVolumeClaimSpec `json:"persistentVolumeClaimSpec,omitempty"`

	// specify mountPaths, if not config, operator will refer from be.conf `cache_file_path`.
	// when mountPaths=[]{"/opt/path1", "/opt/path2"}, will create two pvc mount the two paths. also, operator will mount the cache_file_path config in be.conf .
	// if mountPaths have duplicated path in cache_file_path, operator will only create one pvc.
	MountPaths []string `json:"mountPaths,omitempty"`

	//if config true, the log will mount a pvc to store logs. the pvc size is definitely 200Gi, as the log recycling system will regular recycling.
	//+deprecated
	LogNotStore bool `json:"logNotStore,omitempty"`

	//Annotation for PVC pods. Users can adapt the storage authentication and pv binding of the cloud platform through configuration.
	//It only takes effect in the first configuration and cannot be added or modified later.
	Annotations map[string]string `json:"annotations,omitempty"`

	// defines pvc provisioner, default is ”.
	PVCProvisioner PVCProvisioner `json:"provisioner,omitempty"`
}

PersistentVolume defines volume information and container mount information.

func (*PersistentVolume) DeepCopy

func (in *PersistentVolume) DeepCopy() *PersistentVolume

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

func (*PersistentVolume) DeepCopyInto

func (in *PersistentVolume) DeepCopyInto(out *PersistentVolume)

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

type Phase

type Phase string
const (
	Ready Phase = "Ready"
	//Creating represents service in creating stage.
	Reconciling Phase = "Reconciling"

	//Scaling represents service in Scaling.
	Scaling         Phase = "Scaling"
	Decommissioning Phase = "Decommissioning"
	ScaleDownFailed Phase = "ScaleDownFailed"
	ResumeFailed    Phase = "ResumeFailed"
	SuspendFailed   Phase = "SuspendFailed"
	Suspended       Phase = "Suspended"
)

type PortMap

type PortMap struct {
	// The port on each node on which this service is exposed when type is
	// NodePort or LoadBalancer.  Usually assigned by the system. If a value is
	// specified, in-range, and not in use it will be used, otherwise the
	// operation will fail.  If not specified, a port will be allocated if this
	// Service requires one.  If this field is specified when creating a
	// Service which does not need it, creation will fail. This field will be
	// wiped when updating a Service to no longer need it (e.g. changing type
	// from NodePort to ClusterIP).
	// More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
	// need in 30000-32767
	// +optional
	NodePort int32 `json:"nodePort,omitempty"`

	// Number or name of the port to access on the pods targeted by the service.
	// Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
	// If this is a string, it will be looked up as a named port in the
	// target Pod's container ports. If this is not specified, the value
	// of the 'port' field is used (an identity map).
	// This field is ignored for services with clusterIP=None, and should be
	// omitted or set equal to the 'port' field.
	// More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
	// +optional
	TargetPort int32 `json:"targetPort,omitempty"`
}

PortMap for ServiceType=NodePort situation.

func (*PortMap) DeepCopy

func (in *PortMap) DeepCopy() *PortMap

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

func (*PortMap) DeepCopyInto

func (in *PortMap) DeepCopyInto(out *PortMap)

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

type Secret

type Secret struct {
	//specify the secret need to be mounted in deployed namespace.
	SecretName string `json:"secretName,omitempty"`
	//display the path of secret be mounted in pod.
	MountPath string `json:"mountPath,omitempty"`
}

func (*Secret) DeepCopy

func (in *Secret) DeepCopy() *Secret

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

func (*Secret) DeepCopyInto

func (in *Secret) DeepCopyInto(out *Secret)

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

type ServiceRole

type ServiceRole string
const (
	Service_Role_Access   ServiceRole = "access"
	Service_Role_Internal ServiceRole = "internal"
)

type SystemInitialization

type SystemInitialization struct {
	//Image for doris initialization, default is selectdb/alpine:latest.
	InitImage string `json:"initImage,omitempty"`

	// Entrypoint array. Not executed within a shell.
	Command []string `json:"command,omitempty"`

	// Arguments to the entrypoint.
	Args []string `json:"args,omitempty"`

	// defines the specification of resource cpu and mem for Custom initContainer.
	// the default behavior of the operator `initContainer` does not require resource constraints.
	// ep: {"requests":{"cpu": 4, "memory": "16Gi"},"limits":{"cpu":4,"memory":"16Gi"}}
	corev1.ResourceRequirements `json:",inline"`
}

func (*SystemInitialization) DeepCopy

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

func (*SystemInitialization) DeepCopyInto

func (in *SystemInitialization) DeepCopyInto(out *SystemInitialization)

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