v1alpha1

package
v0.1.0-alpha.21 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

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

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

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

Functions

This section is empty.

Types

type ComponentKind

type ComponentKind string

ComponentKind is the kind of the component in the cluster.

const (
	FrontendComponentKind ComponentKind = "frontend"
	DatanodeComponentKind ComponentKind = "datanode"
	MetaComponentKind     ComponentKind = "meta"
	StandaloneKind        ComponentKind = "standalone"
)

type ComponentSpec

type ComponentSpec struct {
	// The number of replicas of the components.
	// +optional
	// +kubebuilder:validation:Minimum=0
	Replicas *int32 `json:"replicas"`

	// The content of the configuration file of the component in TOML format.
	// +optional
	Config string `json:"config,omitempty"`

	// Template defines the pod template for the component, if not specified, the pod template will use the default value.
	// +optional
	Template *PodTemplateSpec `json:"template,omitempty"`
}

ComponentSpec is the common specification for all components(frontend/meta/datanode).

func (*ComponentSpec) DeepCopy

func (in *ComponentSpec) DeepCopy() *ComponentSpec

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

func (*ComponentSpec) DeepCopyInto

func (in *ComponentSpec) DeepCopyInto(out *ComponentSpec)

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

type Condition

type Condition struct {
	// Type of deployment condition.
	Type ConditionType `json:"type"`

	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`

	// The last time this condition was updated.
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`

	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`

	// The reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`

	// A human-readable message indicating details about the transition.
	// +optional
	Message string `json:"message,omitempty"`
}

Condition describes the state of a deployment at a certain point.

func GetCondition

func GetCondition(conditions []Condition, conditionType ConditionType) *Condition

func NewCondition

func NewCondition(conditionType ConditionType, conditionStatus corev1.ConditionStatus,
	reason, message string) *Condition

func SetCondition

func SetCondition(conditions []Condition, condition Condition) []Condition

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

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

func (*Condition) DeepCopyInto

func (in *Condition) DeepCopyInto(out *Condition)

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

type ConditionType

type ConditionType string
const (
	// ConditionTypeReady indicates that the GreptimeDB cluster is ready to serve requests.
	// Every component in the cluster are all ready.
	ConditionTypeReady ConditionType = "Ready"

	// ConditionTypeProgressing indicates that the GreptimeDB cluster is progressing.
	ConditionTypeProgressing ConditionType = "Progressing"
)

These are valid conditions of a GreptimeDBCluster and GreptimeDBStandalone.

type DatanodeSpec

type DatanodeSpec struct {
	ComponentSpec `json:",inline"`

	Storage StorageSpec `json:"storage,omitempty"`
}

DatanodeSpec is the specification for datanode component.

func (*DatanodeSpec) DeepCopy

func (in *DatanodeSpec) DeepCopy() *DatanodeSpec

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

func (*DatanodeSpec) DeepCopyInto

func (in *DatanodeSpec) DeepCopyInto(out *DatanodeSpec)

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

type DatanodeStatus

type DatanodeStatus struct {
	Replicas      int32 `json:"replicas"`
	ReadyReplicas int32 `json:"readyReplicas"`
}

func (*DatanodeStatus) DeepCopy

func (in *DatanodeStatus) DeepCopy() *DatanodeStatus

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

func (*DatanodeStatus) DeepCopyInto

func (in *DatanodeStatus) DeepCopyInto(out *DatanodeStatus)

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

type FrontendSpec

type FrontendSpec struct {
	ComponentSpec `json:",inline"`

	// +optional
	Service ServiceSpec `json:"service,omitempty"`

	// The TLS configurations of the frontend.
	// +optional
	TLS *TLSSpec `json:"tls,omitempty"`
}

FrontendSpec is the specification for frontend component.

func (*FrontendSpec) DeepCopy

func (in *FrontendSpec) DeepCopy() *FrontendSpec

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

func (*FrontendSpec) DeepCopyInto

func (in *FrontendSpec) DeepCopyInto(out *FrontendSpec)

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

type FrontendStatus

type FrontendStatus struct {
	Replicas      int32 `json:"replicas"`
	ReadyReplicas int32 `json:"readyReplicas"`
}

func (*FrontendStatus) DeepCopy

func (in *FrontendStatus) DeepCopy() *FrontendStatus

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

func (*FrontendStatus) DeepCopyInto

func (in *FrontendStatus) DeepCopyInto(out *FrontendStatus)

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

type GreptimeDBCluster

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

	Spec   GreptimeDBClusterSpec   `json:"spec,omitempty"`
	Status GreptimeDBClusterStatus `json:"status,omitempty"`
}

GreptimeDBCluster is the Schema for the greptimedbclusters API

func (*GreptimeDBCluster) DeepCopy

func (in *GreptimeDBCluster) DeepCopy() *GreptimeDBCluster

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

func (*GreptimeDBCluster) DeepCopyInto

func (in *GreptimeDBCluster) DeepCopyInto(out *GreptimeDBCluster)

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

func (*GreptimeDBCluster) DeepCopyObject

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

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

func (*GreptimeDBCluster) SetDefaults

func (in *GreptimeDBCluster) SetDefaults() error

type GreptimeDBClusterList

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

GreptimeDBClusterList contains a list of GreptimeDBCluster

func (*GreptimeDBClusterList) DeepCopy

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

func (*GreptimeDBClusterList) DeepCopyInto

func (in *GreptimeDBClusterList) DeepCopyInto(out *GreptimeDBClusterList)

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

func (*GreptimeDBClusterList) DeepCopyObject

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

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

type GreptimeDBClusterSpec

type GreptimeDBClusterSpec struct {
	// Base is the base pod template for all components and can be overridden by template of individual component.
	// +optional
	Base *PodTemplateSpec `json:"base,omitempty"`

	// Frontend is the specification of frontend node.
	// +optional
	Frontend *FrontendSpec `json:"frontend"`

	// Meta is the specification of meta node.
	// +optional
	Meta *MetaSpec `json:"meta"`

	// Datanode is the specification of datanode node.
	// +optional
	Datanode *DatanodeSpec `json:"datanode"`

	// +optional
	HTTPServicePort int32 `json:"httpServicePort,omitempty"`

	// +optional
	GRPCServicePort int32 `json:"grpcServicePort,omitempty"`

	// +optional
	MySQLServicePort int32 `json:"mysqlServicePort,omitempty"`

	// +optional
	PostgresServicePort int32 `json:"postgresServicePort,omitempty"`

	// +optional
	OpenTSDBServicePort int32 `json:"openTSDBServicePort,omitempty"`

	// +optional
	PrometheusServicePort int32 `json:"prometheusServicePort,omitempty"`

	// +optional
	EnableInfluxDBProtocol bool `json:"enableInfluxDBProtocol,omitempty"`

	// +optional
	PrometheusMonitor *PrometheusMonitorSpec `json:"prometheusMonitor,omitempty"`

	// +optional
	// The version of greptimedb.
	Version string `json:"version,omitempty"`

	// +optional
	Initializer *InitializerSpec `json:"initializer,omitempty"`

	// +optional
	ObjectStorageProvider *ObjectStorageProvider `json:"objectStorage,omitempty"`

	// +optional
	// Attention: This option need to be supported by the Reloader(https://github.com/stakater/Reloader).
	// We may consider to implement the same feature inside the operator in the future.
	ReloadWhenConfigChange bool `json:"reloadWhenConfigChange,omitempty"`
}

GreptimeDBClusterSpec defines the desired state of GreptimeDBCluster

func (*GreptimeDBClusterSpec) DeepCopy

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

func (*GreptimeDBClusterSpec) DeepCopyInto

func (in *GreptimeDBClusterSpec) DeepCopyInto(out *GreptimeDBClusterSpec)

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

type GreptimeDBClusterStatus

type GreptimeDBClusterStatus struct {
	Frontend FrontendStatus `json:"frontend,omitempty"`
	Meta     MetaStatus     `json:"meta,omitempty"`
	Datanode DatanodeStatus `json:"datanode,omitempty"`
	Version  string         `json:"version,omitempty"`

	// +optional
	ClusterPhase Phase `json:"clusterPhase,omitempty"`

	// +optional
	Conditions []Condition `json:"conditions,omitempty"`
}

GreptimeDBClusterStatus defines the observed state of GreptimeDBCluster

func (*GreptimeDBClusterStatus) DeepCopy

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

func (*GreptimeDBClusterStatus) DeepCopyInto

func (in *GreptimeDBClusterStatus) DeepCopyInto(out *GreptimeDBClusterStatus)

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

func (*GreptimeDBClusterStatus) GetCondition

func (in *GreptimeDBClusterStatus) GetCondition(conditionType ConditionType) *Condition

func (*GreptimeDBClusterStatus) SetCondition

func (in *GreptimeDBClusterStatus) SetCondition(condition Condition)

type GreptimeDBStandalone

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

	Spec   GreptimeDBStandaloneSpec   `json:"spec,omitempty"`
	Status GreptimeDBStandaloneStatus `json:"status,omitempty"`
}

GreptimeDBStandalone is the Schema for the greptimedbstandalones API

func (*GreptimeDBStandalone) DeepCopy

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

func (*GreptimeDBStandalone) DeepCopyInto

func (in *GreptimeDBStandalone) DeepCopyInto(out *GreptimeDBStandalone)

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

func (*GreptimeDBStandalone) DeepCopyObject

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

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

func (*GreptimeDBStandalone) SetDefaults

func (in *GreptimeDBStandalone) SetDefaults() error

type GreptimeDBStandaloneList

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

GreptimeDBStandaloneList contains a list of GreptimeDBStandalone

func (*GreptimeDBStandaloneList) DeepCopy

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

func (*GreptimeDBStandaloneList) DeepCopyInto

func (in *GreptimeDBStandaloneList) DeepCopyInto(out *GreptimeDBStandaloneList)

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

func (*GreptimeDBStandaloneList) DeepCopyObject

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

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

type GreptimeDBStandaloneSpec

type GreptimeDBStandaloneSpec struct {
	// Base is the base pod template for all components and can be overridden by template of individual component.
	// +optional
	Base *PodTemplateSpec `json:"base,omitempty"`

	// +optional
	Service *ServiceSpec `json:"service,omitempty"`

	// The TLS configurations of the greptimedb.
	// +optional
	TLS *TLSSpec `json:"tls,omitempty"`

	// +optional
	HTTPServicePort int32 `json:"httpServicePort,omitempty"`

	// +optional
	GRPCServicePort int32 `json:"grpcServicePort,omitempty"`

	// +optional
	MySQLServicePort int32 `json:"mysqlServicePort,omitempty"`

	// +optional
	PostgresServicePort int32 `json:"postgresServicePort,omitempty"`

	// +optional
	OpenTSDBServicePort int32 `json:"openTSDBServicePort,omitempty"`

	// +optional
	PrometheusServicePort int32 `json:"prometheusServicePort,omitempty"`

	// +optional
	EnableInfluxDBProtocol bool `json:"enableInfluxDBProtocol,omitempty"`

	// +optional
	PrometheusMonitor *PrometheusMonitorSpec `json:"prometheusMonitor,omitempty"`

	// +optional
	// The version of greptimedb.
	Version string `json:"version,omitempty"`

	// +optional
	Initializer *InitializerSpec `json:"initializer,omitempty"`

	// +optional
	ObjectStorageProvider *ObjectStorageProvider `json:"objectStorage,omitempty"`

	// +optional
	LocalStorage *StorageSpec `json:"localStorage,omitempty"`

	// +optional
	Config string `json:"config,omitempty"`

	// +optional
	// Attention: This option need to be supported by the Reloader(https://github.com/stakater/Reloader).
	// We may consider to implement the same feature inside the operator in the future.
	ReloadWhenConfigChange bool `json:"reloadWhenConfigChange,omitempty"`
}

GreptimeDBStandaloneSpec defines the desired state of GreptimeDBStandalone

func (*GreptimeDBStandaloneSpec) DeepCopy

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

func (*GreptimeDBStandaloneSpec) DeepCopyInto

func (in *GreptimeDBStandaloneSpec) DeepCopyInto(out *GreptimeDBStandaloneSpec)

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

type GreptimeDBStandaloneStatus

type GreptimeDBStandaloneStatus struct {
	Version string `json:"version,omitempty"`

	// +optional
	StandalonePhase Phase `json:"standalonePhase,omitempty"`

	// +optional
	Conditions []Condition `json:"conditions,omitempty"`
}

GreptimeDBStandaloneStatus defines the observed state of GreptimeDBStandalone

func (*GreptimeDBStandaloneStatus) DeepCopy

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

func (*GreptimeDBStandaloneStatus) DeepCopyInto

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

func (*GreptimeDBStandaloneStatus) GetCondition

func (in *GreptimeDBStandaloneStatus) GetCondition(conditionType ConditionType) *Condition

func (*GreptimeDBStandaloneStatus) SetCondition

func (in *GreptimeDBStandaloneStatus) SetCondition(condition Condition)

type InitializerSpec

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

InitializerSpec is the init container to set up components configurations before running the container.

func (*InitializerSpec) DeepCopy

func (in *InitializerSpec) DeepCopy() *InitializerSpec

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

func (*InitializerSpec) DeepCopyInto

func (in *InitializerSpec) DeepCopyInto(out *InitializerSpec)

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

type MainContainerSpec

type MainContainerSpec struct {
	// The main container image name of the component.
	// +required
	Image string `json:"image,omitempty"`

	// The resource requirements of the main container.
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// Entrypoint array. Not executed within a shell.
	// The container image's ENTRYPOINT is used if this is not provided.
	// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
	// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
	// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
	// produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless
	// of whether the variable exists or not. Cannot be updated.
	// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
	// Command field is from 'corev1.Container.Command'.
	// +optional
	Command []string `json:"command,omitempty"`

	// Arguments to the entrypoint.
	// The container image's CMD is used if this is not provided.
	// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
	// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
	// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
	// produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless
	// of whether the variable exists or not. Cannot be updated.
	// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
	// Args field is from 'corev1.Container.Args'.
	// +optional
	Args []string `json:"args,omitempty"`

	// Container's working directory.
	// If not specified, the container runtime's default will be used, which
	// might be configured in the container image.
	// Cannot be updated.
	// WorkingDir field is from 'corev1.Container.WorkingDir'.
	// +optional
	WorkingDir string `json:"workingDir,omitempty"`

	// List of environment variables to set in the container.
	// Cannot be updated.
	// Env field is from 'corev1.Container.Env'.
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`

	// Periodic probe of container liveness.
	// Container will be restarted if the probe fails.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// LivenessProbe field is from 'corev1.Container.LivenessProbe'.
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty"`

	// Periodic probe of container service readiness.
	// Container will be removed from service endpoints if the probe fails.
	// ReadinessProbe field is from 'corev1.Container.LivenessProbe'.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"`

	// Actions that the management system should take in response to container lifecycle events.
	// Cannot be updated.
	// Lifecycle field is from 'corev1.Container.Lifecycle'.
	// +optional
	Lifecycle *corev1.Lifecycle `json:"lifecycle,omitempty"`

	// Image pull policy.
	// One of Always, Never, IfNotPresent.
	// Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
	// ImagePullPolicy field is from 'corev1.Container.ImagePullPolicy'.
	// +optional
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`

	// Pod volumes to mount into the container's filesystem.
	// Cannot be updated.
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
}

MainContainerSpec describes the specification of the main container of a pod. Most of the fields of MainContainerSpec are from 'corev1.Container'.

func (*MainContainerSpec) DeepCopy

func (in *MainContainerSpec) DeepCopy() *MainContainerSpec

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

func (*MainContainerSpec) DeepCopyInto

func (in *MainContainerSpec) DeepCopyInto(out *MainContainerSpec)

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

type MetaSpec

type MetaSpec struct {
	ComponentSpec `json:",inline"`

	// +optional
	ServicePort int32 `json:"servicePort,omitempty"`

	// +optional
	EtcdEndpoints []string `json:"etcdEndpoints,omitempty"`

	// EnableCheckEtcdService indicates whether to check etcd cluster health when starting meta.
	// +optional
	EnableCheckEtcdService bool `json:"enableCheckEtcdService,omitempty"`

	// EnableRegionFailover indicates whether to enable region failover.
	// +optional
	EnableRegionFailover bool `json:"enableRegionFailover,omitempty"`

	// The meta will store data with this key prefix.
	// +optional
	StoreKeyPrefix string `json:"storeKeyPrefix,omitempty"`
}

MetaSpec is the specification for meta component.

func (*MetaSpec) DeepCopy

func (in *MetaSpec) DeepCopy() *MetaSpec

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

func (*MetaSpec) DeepCopyInto

func (in *MetaSpec) DeepCopyInto(out *MetaSpec)

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

type MetaStatus

type MetaStatus struct {
	Replicas      int32 `json:"replicas"`
	ReadyReplicas int32 `json:"readyReplicas"`

	// +optional
	EtcdEndpoints []string `json:"etcdEndpoints,omitempty"`
}

func (*MetaStatus) DeepCopy

func (in *MetaStatus) DeepCopy() *MetaStatus

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

func (*MetaStatus) DeepCopyInto

func (in *MetaStatus) DeepCopyInto(out *MetaStatus)

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

type OSSStorageProvider

type OSSStorageProvider struct {
	// The data will be stored in the bucket.
	// +optional
	Bucket string `json:"bucket,omitempty"`

	// The region of the bucket.
	// +optional
	Region string `json:"region,omitempty"`

	// The endpoint of the bucket.
	// +optional
	Endpoint string `json:"endpoint,omitempty"`

	// The secret of storing the credentials of access key id and secret access key.
	// The secret must be the same namespace with the GreptimeDBCluster resource.
	// +optional
	SecretName string `json:"secretName,omitempty"`

	// The OSS directory path.
	// +optional
	Root string `json:"root,omitempty"`
}

func (*OSSStorageProvider) DeepCopy

func (in *OSSStorageProvider) DeepCopy() *OSSStorageProvider

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

func (*OSSStorageProvider) DeepCopyInto

func (in *OSSStorageProvider) DeepCopyInto(out *OSSStorageProvider)

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

type ObjectStorageProvider

type ObjectStorageProvider struct {
	S3            *S3StorageProvider  `json:"s3,omitempty"`
	OSS           *OSSStorageProvider `json:"oss,omitempty"`
	CachePath     string              `json:"cachePath,omitempty"`
	CacheCapacity string              `json:"cacheCapacity,omitempty"`
}

ObjectStorageProvider defines the storage provider for the cluster. The data will be stored in the storage.

func (*ObjectStorageProvider) DeepCopy

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

func (*ObjectStorageProvider) DeepCopyInto

func (in *ObjectStorageProvider) DeepCopyInto(out *ObjectStorageProvider)

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

type Phase

type Phase string

Phase define the phase of the cluster or standalone.

const (
	// PhaseStarting means the controller start to create cluster.
	PhaseStarting Phase = "Starting"

	// PhaseRunning means all the components of cluster is ready.
	PhaseRunning Phase = "Running"

	// PhaseUpdating means the cluster is updating.
	PhaseUpdating Phase = "Updating"

	// PhaseError means some kind of error happen in reconcile.
	PhaseError Phase = "Error"

	// PhaseTerminating means the cluster is terminating.
	PhaseTerminating Phase = "Terminating"
)

type PodTemplateSpec

type PodTemplateSpec struct {
	// The annotations to be created to the pod.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// The labels to be created to the pod.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// MainContainer defines the specification of the main container of the pod.
	// +optional
	MainContainer *MainContainerSpec `json:"main,omitempty"`

	// SlimPodSpec defines the desired behavior of the pod.
	// +optional
	SlimPodSpec `json:",inline"`
}

PodTemplateSpec defines the template for a pod of cluster.

func (*PodTemplateSpec) DeepCopy

func (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec

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

func (*PodTemplateSpec) DeepCopyInto

func (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec)

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

type PrometheusMonitorSpec

type PrometheusMonitorSpec struct {
	// Enable a Prometheus PodMonitor
	// +optional
	Enabled bool `json:"enabled,omitempty"`

	// Prometheus PodMonitor labels.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Interval at which metrics should be scraped
	// +optional
	Interval string `json:"interval,omitempty"`
}

PrometheusMonitorSpec defines the PodMonitor configuration.

func (*PrometheusMonitorSpec) DeepCopy

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

func (*PrometheusMonitorSpec) DeepCopyInto

func (in *PrometheusMonitorSpec) DeepCopyInto(out *PrometheusMonitorSpec)

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

type S3StorageProvider

type S3StorageProvider struct {
	// The data will be stored in the bucket.
	// +optional
	Bucket string `json:"bucket,omitempty"`

	// The region of the bucket.
	// +optional
	Region string `json:"region,omitempty"`

	// The endpoint of the bucket.
	// +optional
	Endpoint string `json:"endpoint,omitempty"`

	// The secret of storing the credentials of access key id and secret access key.
	// The secret must be the same namespace with the GreptimeDBCluster resource.
	// +optional
	SecretName string `json:"secretName,omitempty"`

	// The S3 directory path.
	// +optional
	Root string `json:"root,omitempty"`
}

func (*S3StorageProvider) DeepCopy

func (in *S3StorageProvider) DeepCopy() *S3StorageProvider

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

func (*S3StorageProvider) DeepCopyInto

func (in *S3StorageProvider) DeepCopyInto(out *S3StorageProvider)

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

type ServiceSpec

type ServiceSpec struct {
	// type determines how the Service is exposed.
	// +optional
	Type corev1.ServiceType `json:"type,omitempty"`

	// Additional annotations for the service
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Additional labels for the service
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// loadBalancerClass is the class of the load balancer implementation this Service belongs to.
	// +optional
	LoadBalancerClass *string `json:"loadBalancerClass,omitempty"`
}

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

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

func (*ServiceSpec) DeepCopyInto

func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)

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

type SlimPodSpec

type SlimPodSpec struct {
	// NodeSelector is a selector which must be true for the pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	// NodeSelector field is from 'corev1.PodSpec.NodeSelector'.
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// List of initialization containers belonging to the pod.
	// Init containers are executed in order prior to containers being started. If any
	// init container fails, the pod is considered to have failed and is handled according
	// to its restartPolicy. The name for an init container or normal container must be
	// unique among all containers.
	// Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.
	// The resourceRequirements of an init container are taken into account during scheduling
	// by finding the highest request/limit for each resource type, and then using the max of
	// that value or the sum of the normal containers. Limits are applied to init containers
	// in a similar fashion.
	// Init containers cannot currently be added or removed.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
	// InitContainers field is from 'corev1.PodSpec.InitContainers'.
	// +optional
	InitContainers []corev1.Container `json:"initContainers,omitempty"`

	// Restart policy for all containers within the pod.
	// One of Always, OnFailure, Never.
	// Default to Always.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
	// RestartPolicy field is from 'corev1.PodSpec.RestartPolicy'.
	// +optional
	RestartPolicy corev1.RestartPolicy `json:"restartPolicy,omitempty"`

	// Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
	// Value must be non-negative integer. The value zero indicates stop immediately via
	// the kill signal (no opportunity to shut down).
	// If this value is nil, the default grace period will be used instead.
	// The grace period is the duration in seconds after the processes running in the pod are sent
	// a termination signal and the time when the processes are forcibly halted with a kill signal.
	// Set this value longer than the expected cleanup time for your process.
	// Defaults to 30 seconds.
	// TerminationGracePeriodSeconds field is from 'corev1.PodSpec.TerminationGracePeriodSeconds'.
	// +optional
	TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"`

	// Optional duration in seconds the pod may be active on the node relative to
	// StartTime before the system will actively try to mark it failed and kill associated containers.
	// Value must be a positive integer.
	// ActiveDeadlineSeconds field is from 'corev1.PodSpec.ActiveDeadlineSeconds'.
	// +optional
	ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"`

	// Set DNS policy for the pod.
	// Defaults to "ClusterFirst".
	// Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
	// DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
	// To have DNS options set along with hostNetwork, you have to specify DNS policy
	// explicitly to 'ClusterFirstWithHostNet'.
	// DNSPolicy field is from 'corev1.PodSpec.DNSPolicy'.
	// +optional
	DNSPolicy corev1.DNSPolicy `json:"dnsPolicy,omitempty"`

	// ServiceAccountName is the name of the ServiceAccount to use to run this pod.
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
	// ServiceAccountName field is from 'corev1.PodSpec.ServiceAccountName'.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// Host networking requested for this pod. Use the host's network namespace.
	// If this option is set, the ports that will be used must be specified.
	// Default to false.
	// HostNetwork field is from 'corev1.PodSpec.HostNetwork'.
	// +optional
	HostNetwork bool `json:"hostNetwork,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
	// ImagePullSecrets field is from 'corev1.PodSpec.ImagePullSecrets'.
	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	// If specified, the pod's scheduling constraints
	// Affinity field is from 'corev1.PodSpec.Affinity'.
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// If specified, the pod's tolerations.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// If specified, the pod will be dispatched by specified scheduler.
	// If not specified, the pod will be dispatched by default scheduler.
	// SchedulerName field is from 'corev1.PodSpec.SchedulerName'.
	// +optional
	SchedulerName string `json:"schedulerName,omitempty"`

	// For most time, there is one main container in a pod(frontend/meta/datanode).
	// If specified, additional containers will be added to the pod as sidecar containers.
	// +optional
	AdditionalContainers []corev1.Container `json:"additionalContainers,omitempty"`

	// List of volumes that can be mounted by containers belonging to the pod.
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`
}

SlimPodSpec is a slimmed down version of corev1.PodSpec. Most of the fields in SlimPodSpec are copied from corev1.PodSpec.

func (*SlimPodSpec) DeepCopy

func (in *SlimPodSpec) DeepCopy() *SlimPodSpec

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

func (*SlimPodSpec) DeepCopyInto

func (in *SlimPodSpec) DeepCopyInto(out *SlimPodSpec)

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

type StorageRetainPolicyType

type StorageRetainPolicyType string
const (
	// StorageRetainPolicyTypeRetain is the default options.
	// The storage(PVCs) will be retained when the cluster is deleted.
	StorageRetainPolicyTypeRetain StorageRetainPolicyType = "Retain"

	// StorageRetainPolicyTypeDelete specify that the storage will be deleted when the associated StatefulSet delete.
	StorageRetainPolicyTypeDelete StorageRetainPolicyType = "Delete"
)

type StorageSpec

type StorageSpec struct {
	// The name of the storage.
	// +optional
	Name string `json:"name,omitempty"`

	// The name of the storage class to use for the volume.
	// +optional
	StorageClassName *string `json:"storageClassName,omitempty"`

	// The size of the storage.
	// +optional
	// +kubebuilder:validation:Pattern=(^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$)
	StorageSize string `json:"storageSize,omitempty"`

	// The mount path of the storage in datanode container.
	// +optional
	MountPath string `json:"mountPath,omitempty"`

	// The PVCs will retain or delete when the cluster is deleted, default to Retain.
	// +optional
	// +kubebuilder:validation:Enum:={"Retain", "Delete"}
	StorageRetainPolicy StorageRetainPolicyType `json:"storageRetainPolicy,omitempty"`

	// The wal directory of the storage.
	WalDir string `json:"walDir,omitempty"`

	// The datahome directory.
	// +optional
	DataHome string `json:"dataHome,omitempty"`
}

StorageSpec will generate PVC.

func (*StorageSpec) DeepCopy

func (in *StorageSpec) DeepCopy() *StorageSpec

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

func (*StorageSpec) DeepCopyInto

func (in *StorageSpec) DeepCopyInto(out *StorageSpec)

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

type TLSSpec

type TLSSpec struct {
	// The secret name of the TLS certificate, and it must be in the same namespace of the cluster.
	// The secret must contain keys named ca.crt, tls.crt and tls.key.
	// +optional
	SecretName string `json:"secretName,omitempty"`
}

func (*TLSSpec) DeepCopy

func (in *TLSSpec) DeepCopy() *TLSSpec

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

func (*TLSSpec) DeepCopyInto

func (in *TLSSpec) DeepCopyInto(out *TLSSpec)

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