v1alpha1

package
v0.1.4-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Dec 4, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultVersion is the default version of the GreptimeDB.
	DefaultVersion = "Unknown"

	// DefaultHealthEndpoint is the default health endpoint for the liveness probe.
	DefaultHealthEndpoint = "/health"

	// DefaultHTTPPort is the default HTTP port for the GreptimeDB.
	DefaultHTTPPort int32 = 4000

	// DefaultRPCPort is the default RPC port for the GreptimeDB.
	DefaultRPCPort int32 = 4001

	// DefaultMySQLPort is the default MySQL port for the GreptimeDB.
	DefaultMySQLPort int32 = 4002

	// DefaultPostgreSQLPort is the default PostgreSQL port for the GreptimeDB.
	DefaultPostgreSQLPort int32 = 4003

	// DefaultMetaRPCPort is the default Meta RPC port for the GreptimeDB.
	DefaultMetaRPCPort int32 = 3002

	// DefaultReplicas is the default number of replicas for components of the GreptimeDB cluster.
	DefaultReplicas = 1

	// DefaultDataSize is the default size of the data when using the file storage.
	DefaultDataSize = "10Gi"

	// DefaultDataSizeForMonitoring is the default size of the data for monitoring.
	DefaultDataSizeForMonitoring = "30Gi"

	// DefaultDataHome is the default directory for the data.
	DefaultDataHome = "/data/greptimedb"

	// DefaultDatanodeFileStorageName is the default file storage name for the datanode.
	DefaultDatanodeFileStorageName = "datanode"

	// DefaultLogsDir is the default directory for the logs.
	DefaultLogsDir = DefaultDataHome + "/logs"

	// DefaultStorageRetainPolicyType is the default storage retain policy type.
	DefaultStorageRetainPolicyType = StorageRetainPolicyTypeRetain

	// DefaultInitializerImage is the default image for the GreptimeDB initializer.
	DefaultInitializerImage = "greptime/greptimedb-initializer:latest"

	// DefaultGreptimeDBImage is the default image for the GreptimeDB.
	DefaultGreptimeDBImage = "greptime/greptimedb:latest"

	// DefaultLoggingLevel is the default logging level for the GreptimeDB.
	DefaultLoggingLevel = LoggingLevelInfo

	// DefaultVectorImage is the default image for the vector.
	DefaultVectorImage = "timberio/vector:nightly-alpine"

	// DefaultVectorCPURequest is the default CPU request for the vector.
	DefaultVectorCPURequest = "50m"

	// DefaultVectorMemoryRequest is the default memory request for the vector.
	DefaultVectorMemoryRequest = "64Mi"
)

The following constants are the default values for the GreptimeDBCluster and GreptimeDBStandalone.

View Source
const (
	// TLSCrtSecretKey is the key for the TLS certificate in the secret.
	TLSCrtSecretKey = "tls.crt"

	// TLSKeySecretKey is the key for the TLS key in the secret.
	TLSKeySecretKey = "tls.key"

	// AccessKeyIDSecretKey is the key for the access key ID in the secret.
	AccessKeyIDSecretKey = "access-key-id"

	// SecretAccessKeySecretKey is the key for the secret access key in the secret.
	SecretAccessKeySecretKey = "secret-access-key"

	// ServiceAccountKey is the key for the service account in the secret.
	ServiceAccountKey = "service-account-key"

	// AccountName is the name for the account in the secret.
	AccountName = "account-name"

	// AccountKey is the key for the account in the secret.
	AccountKey = "account-key"
)

The following constants are the constant configuration for the GreptimeDBCluster and GreptimeDBStandalone.

Variables

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

	SchemeGroupVersion = GroupVersion

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

func Resource

func Resource(resource string) schema.GroupResource

Resource is required by pkg/client/listers/...

Types

type AZBlobStorage added in v0.1.3

type AZBlobStorage struct {
	// The data will be stored in the container.
	// +required
	Container string `json:"container"`

	// The secret of storing the credentials of account name and account key.
	// The secret should contain keys named `account-name` and `account-key`.
	// The secret must be the same namespace with the GreptimeDBCluster resource.
	// +optional
	SecretName string `json:"secretName,omitempty"`

	// The Blob directory path.
	// +required
	Root string `json:"root"`

	// The Blob Storage endpoint.
	// +optional
	Endpoint string `json:"endpoint,omitempty"`
}

AZBlobStorage defines the Azure Blob storage specification.

func (*AZBlobStorage) DeepCopy added in v0.1.3

func (in *AZBlobStorage) DeepCopy() *AZBlobStorage

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

func (*AZBlobStorage) DeepCopyInto added in v0.1.3

func (in *AZBlobStorage) DeepCopyInto(out *AZBlobStorage)

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

func (*AZBlobStorage) GetRoot added in v0.1.3

func (in *AZBlobStorage) GetRoot() string

func (*AZBlobStorage) GetSecretName added in v0.1.3

func (in *AZBlobStorage) GetSecretName() string

type CacheStorage

type CacheStorage struct {
	// Storage is the storage specification for the cache.
	// If the storage is not specified, the cache will use DatanodeStorageSpec.
	// +optional
	FileStorage *FileStorage `json:"fs,omitempty"`

	// CacheCapacity is the capacity of the cache.
	// +optional
	CacheCapacity string `json:"cacheCapacity,omitempty"`
}

CacheStorage defines the cache storage specification.

func (*CacheStorage) DeepCopy

func (in *CacheStorage) DeepCopy() *CacheStorage

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

func (*CacheStorage) DeepCopyInto

func (in *CacheStorage) DeepCopyInto(out *CacheStorage)

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

type ComponentKind

type ComponentKind string

ComponentKind is the kind of the component in the cluster.

const (
	// FrontendComponentKind is the frontend component kind.
	FrontendComponentKind ComponentKind = "frontend"

	// DatanodeComponentKind is the datanode component kind.
	DatanodeComponentKind ComponentKind = "datanode"

	// MetaComponentKind is the meta component kind.
	MetaComponentKind ComponentKind = "meta"

	// FlownodeComponentKind is the flownode component kind.
	FlownodeComponentKind ComponentKind = "flownode"

	// StandaloneKind is the standalone component kind.
	StandaloneKind ComponentKind = "standalone"
)

type ComponentSpec

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

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

	// Logging defines the logging configuration for the component.
	// +optional
	Logging *LoggingSpec `json:"logging,omitempty"`
}

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

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

ConditionType is the type of the condition.

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"
)

type DatanodeSpec

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

	// RPCPort is the gRPC port of the datanode.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	RPCPort int32 `json:"rpcPort,omitempty"`

	// HTTPPort is the HTTP port of the datanode.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	HTTPPort int32 `json:"httpPort,omitempty"`

	// Storage is the default file storage of the datanode. For example, WAL, cache, index etc.
	// +optional
	Storage *DatanodeStorageSpec `json:"storage,omitempty"`

	// RollingUpdate is the rolling update configuration. We always use `RollingUpdate` strategy.
	// +optional
	RollingUpdate *appsv1.RollingUpdateStatefulSetStrategy `json:"rollingUpdate,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.

func (*DatanodeSpec) GetConfig

func (in *DatanodeSpec) GetConfig() string

func (*DatanodeSpec) GetDataHome

func (in *DatanodeSpec) GetDataHome() string

func (*DatanodeSpec) GetFileStorage

func (in *DatanodeSpec) GetFileStorage() *FileStorage

func (*DatanodeSpec) GetLogging

func (in *DatanodeSpec) GetLogging() *LoggingSpec

type DatanodeStatus

type DatanodeStatus struct {
	// Replicas is the number of replicas of the datanode.
	Replicas int32 `json:"replicas"`

	// ReadyReplicas is the number of ready replicas of the datanode.
	ReadyReplicas int32 `json:"readyReplicas"`
}

DatanodeStatus is the status of datanode node.

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 DatanodeStorageSpec

type DatanodeStorageSpec struct {
	// DataHome is the home directory of the data.
	DataHome string `json:"dataHome,omitempty"`

	// FileStorage is the file storage configuration.
	// +optional
	FileStorage *FileStorage `json:"fs,omitempty"`
}

DatanodeStorageSpec defines the storage specification for the datanode.

func (*DatanodeStorageSpec) DeepCopy

func (in *DatanodeStorageSpec) DeepCopy() *DatanodeStorageSpec

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

func (*DatanodeStorageSpec) DeepCopyInto

func (in *DatanodeStorageSpec) DeepCopyInto(out *DatanodeStorageSpec)

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

type FileStorage

type FileStorage struct {
	// Name is the name of the PVC that will be created.
	// +optional
	Name string `json:"name,omitempty"`

	// StorageClassName is the name of the StorageClass to use for the PVC.
	// +optional
	StorageClassName *string `json:"storageClassName,omitempty"`

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

	// MountPath is the path where the storage will be mounted in the container.
	// +optional
	MountPath string `json:"mountPath,omitempty"`

	// StorageRetainPolicy is the policy of the storage. It can be `Retain` or `Delete`.
	// +optional
	// +kubebuilder:validation:Enum:={"Retain", "Delete"}
	StorageRetainPolicy StorageRetainPolicyType `json:"storageRetainPolicy,omitempty"`
}

FileStorage defines the file storage specification. It is used to generate the PVC that will be mounted to the container.

func (*FileStorage) DeepCopy

func (in *FileStorage) DeepCopy() *FileStorage

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

func (*FileStorage) DeepCopyInto

func (in *FileStorage) DeepCopyInto(out *FileStorage)

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

func (*FileStorage) GetMountPath

func (in *FileStorage) GetMountPath() string

func (*FileStorage) GetName

func (in *FileStorage) GetName() string

func (*FileStorage) GetPolicy

func (in *FileStorage) GetPolicy() StorageRetainPolicyType

func (*FileStorage) GetSize

func (in *FileStorage) GetSize() string

func (*FileStorage) GetStorageClassName

func (in *FileStorage) GetStorageClassName() *string

type FileStorageAccessor

type FileStorageAccessor interface {
	GetName() string
	GetStorageClassName() *string
	GetSize() string
	GetMountPath() string
	GetPolicy() StorageRetainPolicyType
}

FileStorageAccessor is the interface that wraps the basic methods for the FileStorage. +kubebuilder:object:generate=false

type FlownodeSpec

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

	// The gRPC port of the flownode.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	RPCPort int32 `json:"rpcPort,omitempty"`

	// RollingUpdate is the rolling update configuration. We always use `RollingUpdate` strategy.
	// +optional
	RollingUpdate *appsv1.RollingUpdateStatefulSetStrategy `json:"rollingUpdate,omitempty"`
}

FlownodeSpec is the specification for flownode component.

func (*FlownodeSpec) DeepCopy

func (in *FlownodeSpec) DeepCopy() *FlownodeSpec

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

func (*FlownodeSpec) DeepCopyInto

func (in *FlownodeSpec) DeepCopyInto(out *FlownodeSpec)

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

func (*FlownodeSpec) GetConfig

func (in *FlownodeSpec) GetConfig() string

func (*FlownodeSpec) GetLogging

func (in *FlownodeSpec) GetLogging() *LoggingSpec

type FlownodeStatus

type FlownodeStatus struct {
	// Replicas is the number of replicas of the flownode.
	Replicas int32 `json:"replicas"`

	// ReadyReplicas is the number of ready replicas of the flownode.
	ReadyReplicas int32 `json:"readyReplicas"`
}

FlownodeStatus is the status of flownode node.

func (*FlownodeStatus) DeepCopy

func (in *FlownodeStatus) DeepCopy() *FlownodeStatus

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

func (*FlownodeStatus) DeepCopyInto

func (in *FlownodeStatus) DeepCopyInto(out *FlownodeStatus)

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

	// RPCPort is the gRPC port of the frontend.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	RPCPort int32 `json:"rpcPort,omitempty"`

	// HTTPPort is the HTTP port of the frontend.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	HTTPPort int32 `json:"httpPort,omitempty"`

	// MySQLPort is the MySQL port of the frontend.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	MySQLPort int32 `json:"mysqlPort,omitempty"`

	// PostgreSQLPort is the PostgreSQL port of the frontend.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	PostgreSQLPort int32 `json:"postgreSQLPort,omitempty"`

	// Service is the service configuration of the frontend.
	// +optional
	Service *ServiceSpec `json:"service,omitempty"`

	// TLS is the TLS configuration of the frontend.
	// +optional
	TLS *TLSSpec `json:"tls,omitempty"`

	// RollingUpdate is the rolling update configuration. We always use `RollingUpdate` strategyt.
	// +optional
	RollingUpdate *appsv1.RollingUpdateDeployment `json:"rollingUpdate,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.

func (*FrontendSpec) GetConfig

func (in *FrontendSpec) GetConfig() string

func (*FrontendSpec) GetLogging

func (in *FrontendSpec) GetLogging() *LoggingSpec

func (*FrontendSpec) GetService

func (in *FrontendSpec) GetService() *ServiceSpec

func (*FrontendSpec) GetTLS

func (in *FrontendSpec) GetTLS() *TLSSpec

type FrontendStatus

type FrontendStatus struct {
	// Replicas is the number of replicas of the frontend.
	Replicas int32 `json:"replicas"`

	// ReadyReplicas is the number of ready replicas of the frontend.
	ReadyReplicas int32 `json:"readyReplicas"`
}

FrontendStatus is the status of frontend node.

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 GCSStorage

type GCSStorage struct {
	// The data will be stored in the bucket.
	// +required
	Bucket string `json:"bucket"`

	// The gcs directory path.
	// +required
	Root string `json:"root"`

	// The secret of storing Credentials for gcs service OAuth2 authentication.
	// The secret should contain keys named `service-account-key`.
	// The secret must be the same namespace with the GreptimeDBCluster resource.
	// +optional
	SecretName string `json:"secretName,omitempty"`

	// The scope for gcs.
	// +optional
	Scope string `json:"scope,omitempty"`

	// The endpoint URI of gcs service.
	// +optional
	Endpoint string `json:"endpoint,omitempty"`
}

GCSStorage defines the Google GCS storage specification.

func (*GCSStorage) DeepCopy

func (in *GCSStorage) DeepCopy() *GCSStorage

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

func (*GCSStorage) DeepCopyInto

func (in *GCSStorage) DeepCopyInto(out *GCSStorage)

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

func (*GCSStorage) GetRoot added in v0.1.1

func (in *GCSStorage) GetRoot() string

func (*GCSStorage) GetSecretName

func (in *GCSStorage) GetSecretName() string

type GreptimeDBCluster

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

	// Spec is the specification of the desired state of the GreptimeDBCluster.
	Spec GreptimeDBClusterSpec `json:"spec,omitempty"`

	// Status is the most recently observed status of the GreptimeDBCluster.
	Status GreptimeDBClusterStatus `json:"status,omitempty"`
}

GreptimeDBCluster is the Schema for the greptimedbclusters API

func (*GreptimeDBCluster) Check

func (in *GreptimeDBCluster) Check(ctx context.Context, client client.Client) error

Check checks the GreptimeDBCluster with other resources and returns an error if it is invalid.

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) GetBaseMainContainer

func (in *GreptimeDBCluster) GetBaseMainContainer() *MainContainerSpec

func (*GreptimeDBCluster) GetDatanode

func (in *GreptimeDBCluster) GetDatanode() *DatanodeSpec

func (*GreptimeDBCluster) GetFlownode

func (in *GreptimeDBCluster) GetFlownode() *FlownodeSpec

func (*GreptimeDBCluster) GetFrontend

func (in *GreptimeDBCluster) GetFrontend() *FrontendSpec

func (*GreptimeDBCluster) GetLogging

func (in *GreptimeDBCluster) GetLogging() *LoggingSpec

func (*GreptimeDBCluster) GetMeta

func (in *GreptimeDBCluster) GetMeta() *MetaSpec

func (*GreptimeDBCluster) GetMonitoring added in v0.1.1

func (in *GreptimeDBCluster) GetMonitoring() *MonitoringSpec

func (*GreptimeDBCluster) GetObjectStorageProvider

func (in *GreptimeDBCluster) GetObjectStorageProvider() *ObjectStorageProviderSpec

func (*GreptimeDBCluster) GetPrometheusMonitor

func (in *GreptimeDBCluster) GetPrometheusMonitor() *PrometheusMonitorSpec

func (*GreptimeDBCluster) GetVersion

func (in *GreptimeDBCluster) GetVersion() string

func (*GreptimeDBCluster) GetWALDir

func (in *GreptimeDBCluster) GetWALDir() string

func (*GreptimeDBCluster) GetWALProvider

func (in *GreptimeDBCluster) GetWALProvider() *WALProviderSpec

func (*GreptimeDBCluster) MergeLogging added in v0.1.1

func (in *GreptimeDBCluster) MergeLogging() error

MergeLogging merges the logging settings into the component's logging settings.

func (*GreptimeDBCluster) MergeTemplate added in v0.1.1

func (in *GreptimeDBCluster) MergeTemplate() error

MergeTemplate merges the base template with the component's template.

func (*GreptimeDBCluster) SetDefaults

func (in *GreptimeDBCluster) SetDefaults() error

SetDefaults sets the default values for the GreptimeDBCluster.

func (*GreptimeDBCluster) Validate

func (in *GreptimeDBCluster) Validate() error

Validate checks the GreptimeDBCluster and returns an error if it is invalid.

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,omitempty"`

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

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

	// Flownode is the specification of flownode node.
	// +optional
	Flownode *FlownodeSpec `json:"flownode,omitempty"`

	// HTTPPort is the HTTP port of the greptimedb cluster.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	HTTPPort int32 `json:"httpPort,omitempty"`

	// RPCPort is the RPC port of the greptimedb cluster.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	RPCPort int32 `json:"rpcPort,omitempty"`

	// MySQLPort is the MySQL port of the greptimedb cluster.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	MySQLPort int32 `json:"mysqlPort,omitempty"`

	// PostgreSQLPort is the PostgreSQL port of the greptimedb cluster.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	PostgreSQLPort int32 `json:"postgreSQLPort,omitempty"`

	// PrometheusMonitor is the specification for creating PodMonitor or ServiceMonitor.
	// +optional
	PrometheusMonitor *PrometheusMonitorSpec `json:"prometheusMonitor,omitempty"`

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

	// Initializer is the init container to set up components configurations before running the container.
	// +optional
	Initializer *InitializerSpec `json:"initializer,omitempty"`

	// ObjectStorageProvider is the storage provider for the greptimedb cluster.
	// +optional
	ObjectStorageProvider *ObjectStorageProviderSpec `json:"objectStorage,omitempty"`

	// WALProvider is the WAL provider for the greptimedb cluster.
	// +optional
	WALProvider *WALProviderSpec `json:"wal,omitempty"`

	// The global logging configuration for all components. It can be overridden by the logging configuration of individual component.
	// +optional
	Logging *LoggingSpec `json:"logging,omitempty"`

	// Monitoring is the specification for monitor bootstrapping. It will create a standalone greptimedb instance to monitor the cluster.
	// +optional
	Monitoring *MonitoringSpec `json:"monitoring,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 is the status of frontend node.
	// +optional
	Frontend FrontendStatus `json:"frontend,omitempty"`

	// Meta is the status of meta node.
	// +optional
	Meta MetaStatus `json:"meta,omitempty"`

	// Datanode is the status of datanode node.
	// +optional
	Datanode DatanodeStatus `json:"datanode,omitempty"`

	// Flownode is the status of flownode node.
	// +optional
	Flownode FlownodeStatus `json:"flownode,omitempty"`

	// The status of the monitoring service.
	// +optional
	Monitoring MonitoringStatus `json:"monitoring,omitempty"`

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

	// ClusterPhase is the phase of the greptimedb cluster.
	// +optional
	ClusterPhase Phase `json:"clusterPhase,omitempty"`

	// Conditions is an array of current conditions.
	// +optional
	Conditions []Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the last observed generation.
	// +optional
	ObservedGeneration *int64 `json:"observedGeneration,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 is the specification of the desired state of the GreptimeDBStandalone.
	Spec GreptimeDBStandaloneSpec `json:"spec,omitempty"`

	// Status is the most recently observed status of the GreptimeDBStandalone.
	Status GreptimeDBStandaloneStatus `json:"status,omitempty"`
}

GreptimeDBStandalone is the Schema for the greptimedbstandalones API

func (*GreptimeDBStandalone) Check

func (in *GreptimeDBStandalone) Check(ctx context.Context, client client.Client) error

Check checks the GreptimeDBStandalone with other resources and returns an error if it is invalid.

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) GetBaseMainContainer

func (in *GreptimeDBStandalone) GetBaseMainContainer() *MainContainerSpec

func (*GreptimeDBStandalone) GetConfig

func (in *GreptimeDBStandalone) GetConfig() string

func (*GreptimeDBStandalone) GetDataHome

func (in *GreptimeDBStandalone) GetDataHome() string

func (*GreptimeDBStandalone) GetDatanodeFileStorage

func (in *GreptimeDBStandalone) GetDatanodeFileStorage() *FileStorage

func (*GreptimeDBStandalone) GetLogging

func (in *GreptimeDBStandalone) GetLogging() *LoggingSpec

func (*GreptimeDBStandalone) GetObjectStorageProvider

func (in *GreptimeDBStandalone) GetObjectStorageProvider() *ObjectStorageProviderSpec

func (*GreptimeDBStandalone) GetPrometheusMonitor

func (in *GreptimeDBStandalone) GetPrometheusMonitor() *PrometheusMonitorSpec

func (*GreptimeDBStandalone) GetTLS

func (in *GreptimeDBStandalone) GetTLS() *TLSSpec

func (*GreptimeDBStandalone) GetVersion

func (in *GreptimeDBStandalone) GetVersion() string

func (*GreptimeDBStandalone) GetWALDir

func (in *GreptimeDBStandalone) GetWALDir() string

func (*GreptimeDBStandalone) GetWALProvider

func (in *GreptimeDBStandalone) GetWALProvider() *WALProviderSpec

func (*GreptimeDBStandalone) SetDefaults

func (in *GreptimeDBStandalone) SetDefaults() error

func (*GreptimeDBStandalone) Validate

func (in *GreptimeDBStandalone) Validate() error

Validate checks the GreptimeDBStandalone and returns an error if it is invalid.

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

	// Service is the service configuration of greptimedb.
	// +optional
	Service *ServiceSpec `json:"service,omitempty"`

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

	// HTTPPort is the port of the greptimedb http service.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	HTTPPort int32 `json:"httpPort,omitempty"`

	// RPCPort is the port of the greptimedb rpc service.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	RPCPort int32 `json:"rpcPort,omitempty"`

	// MySQLPort is the port of the greptimedb mysql service.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	MySQLPort int32 `json:"mysqlPort,omitempty"`

	// PostgreSQLPort is the port of the greptimedb postgresql service.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	PostgreSQLPort int32 `json:"postgreSQLPort,omitempty"`

	// PrometheusMonitor is the specification for creating PodMonitor or ServiceMonitor.
	// +optional
	PrometheusMonitor *PrometheusMonitorSpec `json:"prometheusMonitor,omitempty"`

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

	// Initializer is the init container to set up components configurations before running the container.
	// +optional
	Initializer *InitializerSpec `json:"initializer,omitempty"`

	// ObjectStorageProvider is the storage provider for the greptimedb cluster.
	// +optional
	ObjectStorageProvider *ObjectStorageProviderSpec `json:"objectStorage,omitempty"`

	// DatanodeStorage is the default file storage of the datanode. For example, WAL, cache, index etc.
	// +optional
	DatanodeStorage *DatanodeStorageSpec `json:"datanodeStorage,omitempty"`

	// WALProvider is the WAL provider for the greptimedb cluster.
	// +optional
	WALProvider *WALProviderSpec `json:"wal,omitempty"`

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

	// Logging defines the logging configuration for the component.
	// +optional
	Logging *LoggingSpec `json:"logging,omitempty"`

	// RollingUpdate is the rolling update configuration. We always use `RollingUpdate` strategy.
	// +optional
	RollingUpdate *appsv1.RollingUpdateStatefulSetStrategy `json:"rollingUpdate,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 is the version of the greptimedb.
	// +optional
	Version string `json:"version,omitempty"`

	// StandalonePhase is the phase of the greptimedb standalone.
	// +optional
	StandalonePhase Phase `json:"standalonePhase,omitempty"`

	// Conditions represent the latest available observations of an object's current state.
	// +optional
	Conditions []Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the most recent generation observed for this GreptimeDBStandalone.
	// +optional
	ObservedGeneration *int64 `json:"observedGeneration,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 {
	// The image of the initializer.
	// +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 KafkaWAL

type KafkaWAL struct {
	// BrokerEndpoints is the list of Kafka broker endpoints.
	// +required
	BrokerEndpoints []string `json:"brokerEndpoints"`
}

KafkaWAL is the specification for Kafka remote WAL.

func (*KafkaWAL) DeepCopy

func (in *KafkaWAL) DeepCopy() *KafkaWAL

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

func (*KafkaWAL) DeepCopyInto

func (in *KafkaWAL) DeepCopyInto(out *KafkaWAL)

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

func (*KafkaWAL) GetBrokerEndpoints

func (in *KafkaWAL) GetBrokerEndpoints() []string

type LogFormat

type LogFormat string
const (
	// LogFormatJSON is the `json` format of the logging.
	LogFormatJSON LogFormat = "json"

	// LogFormatText is the `text` format of the logging.
	LogFormatText LogFormat = "text"
)

type LogPipeline added in v0.1.1

type LogPipeline struct {
	// The content of the pipeline configuration file in YAML format.
	// +optional
	Data string `json:"data,omitempty"`
}

LogPipeline is the specification for log pipeline.

func (*LogPipeline) DeepCopy added in v0.1.1

func (in *LogPipeline) DeepCopy() *LogPipeline

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

func (*LogPipeline) DeepCopyInto added in v0.1.1

func (in *LogPipeline) DeepCopyInto(out *LogPipeline)

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

func (*LogPipeline) GetData added in v0.1.1

func (in *LogPipeline) GetData() string

type LoggingLevel

type LoggingLevel string

LoggingLevel is the level of the logging.

const (
	// LoggingLevelInfo is the `info` level of the logging.
	LoggingLevelInfo LoggingLevel = "info"

	// LoggingLevelError is the `error` level of the logging.
	LoggingLevelError LoggingLevel = "error"

	// LoggingLevelWarn is the `warn` level of the logging.
	LoggingLevelWarn LoggingLevel = "warn"

	// LoggingLevelDebug is the `debug` level of the logging.
	LoggingLevelDebug LoggingLevel = "debug"
)

type LoggingSpec

type LoggingSpec struct {
	// Level is the level of the logging.
	// +optional
	// +kubebuilder:validation:Enum:={"info", "error", "warn", "debug"}
	Level LoggingLevel `json:"level,omitempty"`

	// Filters is the filters of the logging.
	// User can use [EnvFilter](https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html) to filter the logging.
	// We can use `target[span{field=value}]=level` to filter the logging by target and span field.
	// For example, "mito2=debug" will filter the logging of target `mito2` to `debug` level.
	// +optional
	Filters []string `json:"filters,omitempty"`

	// LogsDir is the directory path of the logs.
	// +optional
	LogsDir string `json:"logsDir,omitempty"`

	// PersistentWithData indicates whether to persist the log with the datanode data storage. It **ONLY** works for the datanode component.
	// If false, the log will be stored in ephemeral storage.
	// +optional
	PersistentWithData *bool `json:"persistentWithData,omitempty"`

	// OnlyLogToStdout indicates whether to only log to stdout. If true, the log will not be stored in the storage even if the storage is configured.
	// +optional
	OnlyLogToStdout *bool `json:"onlyLogToStdout,omitempty"`

	// Format is the format of the logging.
	// +optional
	// +kubebuilder:validation:Enum:={"json", "text"}
	Format LogFormat `json:"format,omitempty"`

	// SlowQuery is the slow query configuration.
	// +optional
	SlowQuery *SlowQuery `json:"slowQuery,omitempty"`
}

LoggingSpec defines the logging configuration for the component.

func (*LoggingSpec) DeepCopy

func (in *LoggingSpec) DeepCopy() *LoggingSpec

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

func (*LoggingSpec) DeepCopyInto

func (in *LoggingSpec) DeepCopyInto(out *LoggingSpec)

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

func (*LoggingSpec) GetLevel

func (in *LoggingSpec) GetLevel() LoggingLevel

func (*LoggingSpec) GetLogsDir

func (in *LoggingSpec) GetLogsDir() string

func (*LoggingSpec) IsOnlyLogToStdout

func (in *LoggingSpec) IsOnlyLogToStdout() bool

func (*LoggingSpec) IsPersistentWithData

func (in *LoggingSpec) IsPersistentWithData() bool

type LogsCollectionSpec added in v0.1.1

type LogsCollectionSpec struct {
	// The specification of the log pipeline.
	// +optional
	Pipeline *LogPipeline `json:"pipeline,omitempty"`
}

LogsCollectionSpec is the specification for cluster logs collection.

func (*LogsCollectionSpec) DeepCopy added in v0.1.1

func (in *LogsCollectionSpec) DeepCopy() *LogsCollectionSpec

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

func (*LogsCollectionSpec) DeepCopyInto added in v0.1.1

func (in *LogsCollectionSpec) DeepCopyInto(out *LogsCollectionSpec)

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

func (*LogsCollectionSpec) GetPipeline added in v0.1.1

func (in *LogsCollectionSpec) GetPipeline() *LogPipeline

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

	// StartupProbe indicates that the Pod has successfully initialized.
	// If specified, no other probes are executed until this completes successfully.
	// If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.
	// This can be used to provide different probe parameters at the beginning of a Pod's lifecycle,
	// when it might take a long time to load data or warm a cache, than during steady-state operation.
	// This cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	StartupProbe *corev1.Probe `json:"startupProbe,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"`

	// SecurityContext holds container-level security attributes and common settings.
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,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.

func (*MainContainerSpec) GetImage

func (in *MainContainerSpec) GetImage() string

type MetaSpec

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

	// RPCPort is the gRPC port of the meta.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	RPCPort int32 `json:"rpcPort,omitempty"`

	// HTTPPort is the HTTP port of the meta.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	HTTPPort int32 `json:"httpPort,omitempty"`

	// EtcdEndpoints is the endpoints of the etcd cluster.
	// +required
	EtcdEndpoints []string `json:"etcdEndpoints"`

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

	// StoreKeyPrefix is the prefix of the key in the etcd. We can use it to isolate the data of different clusters.
	// +optional
	StoreKeyPrefix string `json:"storeKeyPrefix,omitempty"`

	// RollingUpdate is the rolling update configuration. We always use `RollingUpdate` strategyt.
	// +optional
	RollingUpdate *appsv1.RollingUpdateDeployment `json:"rollingUpdate,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.

func (*MetaSpec) GetConfig

func (in *MetaSpec) GetConfig() string

func (*MetaSpec) GetEtcdEndpoints

func (in *MetaSpec) GetEtcdEndpoints() []string

func (*MetaSpec) GetLogging

func (in *MetaSpec) GetLogging() *LoggingSpec

func (*MetaSpec) GetStoreKeyPrefix

func (in *MetaSpec) GetStoreKeyPrefix() string

func (*MetaSpec) IsEnableCheckEtcdService

func (in *MetaSpec) IsEnableCheckEtcdService() bool

func (*MetaSpec) IsEnableRegionFailover

func (in *MetaSpec) IsEnableRegionFailover() bool

type MetaStatus

type MetaStatus struct {
	// Replicas is the number of replicas of the meta.
	Replicas int32 `json:"replicas"`

	// ReadyReplicas is the number of ready replicas of the meta.
	ReadyReplicas int32 `json:"readyReplicas"`

	// EtcdEndpoints is the endpoints of the etcd cluster.
	// +optional
	EtcdEndpoints []string `json:"etcdEndpoints,omitempty"`
}

MetaStatus is the status of meta node.

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 MonitoringSpec added in v0.1.1

type MonitoringSpec struct {
	// Enabled indicates whether to enable the monitoring service.
	// +required
	Enabled bool `json:"enabled"`

	// The specification of the standalone greptimedb instance.
	// +optional
	Standalone *GreptimeDBStandaloneSpec `json:"standalone,omitempty"`

	// The specification of cluster logs collection.
	// +optional
	LogsCollection *LogsCollectionSpec `json:"logsCollection,omitempty"`

	// The specification of the vector instance.
	// +optional
	Vector *VectorSpec `json:"vector,omitempty"`
}

MonitoringSpec is the specification for monitor bootstrapping. It will create a standalone greptimedb instance to monitor the cluster.

func (*MonitoringSpec) DeepCopy added in v0.1.1

func (in *MonitoringSpec) DeepCopy() *MonitoringSpec

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

func (*MonitoringSpec) DeepCopyInto added in v0.1.1

func (in *MonitoringSpec) DeepCopyInto(out *MonitoringSpec)

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

func (*MonitoringSpec) GetLogsCollection added in v0.1.1

func (in *MonitoringSpec) GetLogsCollection() *LogsCollectionSpec

func (*MonitoringSpec) GetStandalone added in v0.1.1

func (in *MonitoringSpec) GetStandalone() *GreptimeDBStandaloneSpec

func (*MonitoringSpec) GetVector added in v0.1.1

func (in *MonitoringSpec) GetVector() *VectorSpec

func (*MonitoringSpec) IsEnabled added in v0.1.1

func (in *MonitoringSpec) IsEnabled() bool

type MonitoringStatus added in v0.1.1

type MonitoringStatus struct {
	// InternalDNSName is the internal DNS name of the monitoring service. For example, 'mycluster-standalone-monitor.default.svc.cluster.local'.
	// +optional
	InternalDNSName string `json:"internalDNSName,omitempty"`
}

MonitoringStatus is the status of the monitoring service.

func (*MonitoringStatus) DeepCopy added in v0.1.1

func (in *MonitoringStatus) DeepCopy() *MonitoringStatus

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

func (*MonitoringStatus) DeepCopyInto added in v0.1.1

func (in *MonitoringStatus) DeepCopyInto(out *MonitoringStatus)

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

type OSSStorage

type OSSStorage struct {
	// The data will be stored in the bucket.
	// +required
	Bucket string `json:"bucket"`

	// The region of the bucket.
	// +required
	Region string `json:"region"`

	// The secret of storing the credentials of access key id and secret access key.
	// The secret should contain keys named `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.
	// +required
	Root string `json:"root"`

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

OSSStorage defines the Aliyun OSS storage specification.

func (*OSSStorage) DeepCopy

func (in *OSSStorage) DeepCopy() *OSSStorage

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

func (*OSSStorage) DeepCopyInto

func (in *OSSStorage) DeepCopyInto(out *OSSStorage)

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

func (*OSSStorage) GetRoot added in v0.1.1

func (in *OSSStorage) GetRoot() string

func (*OSSStorage) GetSecretName

func (in *OSSStorage) GetSecretName() string

type ObjectStorageProviderAccessor

type ObjectStorageProviderAccessor interface {
	GetS3Storage() *S3Storage
	GetGCSStorage() *GCSStorage
	GetOSSStorage() *OSSStorage
	GetAZBlobStorage() *AZBlobStorage
	GetCacheFileStorage() *FileStorage
}

ObjectStorageProviderAccessor is the interface that wraps the basic methods for the ObjectStorageProviderSpec. +kubebuilder:object:generate=false

type ObjectStorageProviderSpec

type ObjectStorageProviderSpec struct {
	// S3 is the AWS S3 storage configuration.
	// +optional
	S3 *S3Storage `json:"s3,omitempty"`

	// OSS is the Aliyun OSS storage configuration.
	// +optional
	OSS *OSSStorage `json:"oss,omitempty"`

	// GCS is the Google cloud storage configuration.
	// +optional
	GCS *GCSStorage `json:"gcs,omitempty"`

	// AZBlob is the Azure Blob storage configuration.
	// +optional
	AZBlob *AZBlobStorage `json:"azblob,omitempty"`

	// Cache is the cache storage configuration for object storage.
	// +optional
	Cache *CacheStorage `json:"cache,omitempty"`
}

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

func (*ObjectStorageProviderSpec) DeepCopy

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

func (*ObjectStorageProviderSpec) DeepCopyInto

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

func (*ObjectStorageProviderSpec) GetAZBlobStorage added in v0.1.3

func (in *ObjectStorageProviderSpec) GetAZBlobStorage() *AZBlobStorage

func (*ObjectStorageProviderSpec) GetCacheFileStorage

func (in *ObjectStorageProviderSpec) GetCacheFileStorage() *FileStorage

func (*ObjectStorageProviderSpec) GetGCSStorage

func (in *ObjectStorageProviderSpec) GetGCSStorage() *GCSStorage

func (*ObjectStorageProviderSpec) GetOSSStorage

func (in *ObjectStorageProviderSpec) GetOSSStorage() *OSSStorage

func (*ObjectStorageProviderSpec) GetS3Storage

func (in *ObjectStorageProviderSpec) GetS3Storage() *S3Storage

type Phase

type Phase string

Phase define the phase of the cluster or standalone.

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

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

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

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

	// PhaseTerminating means the cluster or standalone 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 {
	// Enabled indicates whether the PodMonitor is enabled.
	// +required
	Enabled bool `json:"enabled"`

	// Labels is the labels for the PodMonitor.
	// +optional
	Labels map[string]string `json:"labels"`

	// Interval is the scape interval for the PodMonitor.
	// +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.

func (*PrometheusMonitorSpec) IsEnablePrometheusMonitor

func (in *PrometheusMonitorSpec) IsEnablePrometheusMonitor() bool

type RaftEngineWAL

type RaftEngineWAL struct {
	// FileStorage is the file storage configuration for the raft-engine WAL.
	// If the file storage is not specified, WAL will use DatanodeStorageSpec.
	// +optional
	FileStorage *FileStorage `json:"fs,omitempty"`
}

RaftEngineWAL is the specification for local WAL that uses raft-engine.

func (*RaftEngineWAL) DeepCopy

func (in *RaftEngineWAL) DeepCopy() *RaftEngineWAL

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

func (*RaftEngineWAL) DeepCopyInto

func (in *RaftEngineWAL) DeepCopyInto(out *RaftEngineWAL)

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

func (*RaftEngineWAL) GetFileStorage

func (in *RaftEngineWAL) GetFileStorage() *FileStorage

type S3Storage

type S3Storage struct {
	// The data will be stored in the bucket.
	// +required
	Bucket string `json:"bucket"`

	// The region of the bucket.
	// +required
	Region string `json:"region"`

	// The secret of storing the credentials of access key id and secret access key.
	// The secret should contain keys named `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.
	// +required
	Root string `json:"root"`

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

S3Storage defines the S3 storage specification.

func (*S3Storage) DeepCopy

func (in *S3Storage) DeepCopy() *S3Storage

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

func (*S3Storage) DeepCopyInto

func (in *S3Storage) DeepCopyInto(out *S3Storage)

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

func (*S3Storage) GetRoot added in v0.1.1

func (in *S3Storage) GetRoot() string

func (*S3Storage) GetSecretName

func (in *S3Storage) GetSecretName() string

type ServiceSpec

type ServiceSpec struct {
	// Type is the type of the service.
	// +optional
	Type corev1.ServiceType `json:"type,omitempty"`

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

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

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

ServiceSpec defines the service configuration for the component.

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`/`flownode`).
	// 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"`

	// SecurityContext holds pod-level security attributes and common container settings.
	// +optional
	SecurityContext *corev1.PodSecurityContext `json:"securityContext,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 SlowQuery added in v0.1.3

type SlowQuery struct {
	// Enabled indicates whether the slow query is enabled.
	// +required
	Enabled bool `json:"enabled"`

	// Threshold is the threshold of the slow query. Default to `10s`.
	// +optional
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))+$"
	Threshold string `json:"threshold,omitempty"`

	// SampleRatio is the sampling ratio of slow query log. The value should be in the range of (0, 1]. Default to `1.0`.
	// +optional
	// +kubebuilder:validation:Pattern=`^(0?\.\d+|1(\.0+)?)$`
	// +kubebuilder:validation:Type=string
	SampleRatio string `json:"sampleRatio,omitempty"`
}

SlowQuery defines the slow query configuration. It only works for the datanode component.

func (*SlowQuery) DeepCopy added in v0.1.3

func (in *SlowQuery) DeepCopy() *SlowQuery

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

func (*SlowQuery) DeepCopyInto added in v0.1.3

func (in *SlowQuery) DeepCopyInto(out *SlowQuery)

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

type StorageRetainPolicyType

type StorageRetainPolicyType string

StorageRetainPolicyType is the type of the storage retain policy.

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 TLSSpec

type TLSSpec struct {
	// SecretName is the name of the secret that contains the TLS certificates.
	// The secret must be in the same namespace with the greptime resource.
	// The secret must contain keys named `tls.crt` and `tls.key`.
	// +required
	SecretName string `json:"secretName"`
}

TLSSpec defines the TLS configurations for the component.

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.

func (*TLSSpec) GetSecretName

func (in *TLSSpec) GetSecretName() string

type VectorSpec added in v0.1.1

type VectorSpec struct {
	// The image of the vector instance.
	// +optional
	Image string `json:"image,omitempty"`

	// The resources of the vector instance.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`
}

VectorSpec is the specification for vector instance.

func (*VectorSpec) DeepCopy added in v0.1.1

func (in *VectorSpec) DeepCopy() *VectorSpec

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

func (*VectorSpec) DeepCopyInto added in v0.1.1

func (in *VectorSpec) DeepCopyInto(out *VectorSpec)

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

type WALProviderSpec

type WALProviderSpec struct {
	// RaftEngineWAL is the specification for local WAL that uses raft-engine.
	// +optional
	RaftEngineWAL *RaftEngineWAL `json:"raftEngine,omitempty"`

	// KafkaWAL is the specification for remote WAL that uses Kafka.
	// +optional
	KafkaWAL *KafkaWAL `json:"kafka,omitempty"`
}

WALProviderSpec defines the WAL provider for the cluster.

func (*WALProviderSpec) DeepCopy

func (in *WALProviderSpec) DeepCopy() *WALProviderSpec

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

func (*WALProviderSpec) DeepCopyInto

func (in *WALProviderSpec) DeepCopyInto(out *WALProviderSpec)

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

func (*WALProviderSpec) GetKafkaWAL

func (in *WALProviderSpec) GetKafkaWAL() *KafkaWAL

func (*WALProviderSpec) GetRaftEngineWAL

func (in *WALProviderSpec) GetRaftEngineWAL() *RaftEngineWAL

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL