v1alpha1

package
v0.4.3 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2025 License: Apache-2.0 Imports: 22 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"

	// DefaultVectorCPULimit is the default CPU limit for the vector.
	DefaultVectorCPULimit = "200m"

	// DefaultVectorMemoryLimit is the default memory limit for the vector.
	DefaultVectorMemoryLimit = "256Mi"
)

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"

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

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

	// MetaDatabaseUsernameKey is the key for the username in the secret when using MySQL or PostgreSQL as the backend storage.
	MetaDatabaseUsernameKey = "username"

	// MetaDatabasePasswordKey is the key for the password in the secret when using MySQL or PostgreSQL as the backend storage.
	MetaDatabasePasswordKey = "password"
)

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

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 BackendStorage added in v0.3.0

type BackendStorage struct {
	// EtcdStorage is the specification for etcd storage for meta.
	// +optional
	EtcdStorage *EtcdStorage `json:"etcd,omitempty"`

	// MySQLStorage is the specification for MySQL storage for meta.
	// +optional
	MySQLStorage *MySQLStorage `json:"mysql,omitempty"`

	// PostgreSQLStorage is the specification for PostgreSQL storage for meta.
	// +optional
	PostgreSQLStorage *PostgreSQLStorage `json:"postgresql,omitempty"`
}

BackendStorage is the specification for the backend storage for meta.

func (*BackendStorage) DeepCopy added in v0.3.0

func (in *BackendStorage) DeepCopy() *BackendStorage

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

func (*BackendStorage) DeepCopyInto added in v0.3.0

func (in *BackendStorage) DeepCopyInto(out *BackendStorage)

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

func (*BackendStorage) GetEtcdStorage added in v0.3.0

func (in *BackendStorage) GetEtcdStorage() *EtcdStorage

func (*BackendStorage) GetMySQLStorage added in v0.3.0

func (in *BackendStorage) GetMySQLStorage() *MySQLStorage

func (*BackendStorage) GetPostgreSQLStorage added in v0.3.0

func (in *BackendStorage) GetPostgreSQLStorage() *PostgreSQLStorage

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.

func (*CacheStorage) GetFileStorage added in v0.4.0

func (in *CacheStorage) GetFileStorage() *FileStorage

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

	// Tracing defines the tracing configuration for the component.
	// +optional
	Tracing *TracingSpec `json:"tracing,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 ConfigMergeStrategy added in v0.4.3

type ConfigMergeStrategy string

ConfigMergeStrategy is the strategy for merging the input config with the config that generated by the operator.

const (
	// ConfigMergeStrategyOperatorFirst means the config that generated by the operator has higher priority than the input config.
	// If the input config has the same key as the config that generated by the operator, the value of the input config will be ignored.
	// It's the default strategy.
	ConfigMergeStrategyOperatorFirst ConfigMergeStrategy = "ConfigMergeStrategyOperatorFirst"

	// ConfigMergeStrategyInjectedDataFirst means the input config has higher priority than the config that generated by the operator.
	// If the input config has the same key as the config that generated by the operator, the value of the input config will be used.
	// It should be used carefully because it may lead to some conflicts with the other components.
	ConfigMergeStrategyInjectedDataFirst ConfigMergeStrategy = "ConfigMergeStrategyInjectedDataFirst"
)

type DatanodeSpec

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

	// Name is the name of the datanode.
	// +optional
	Name string `json:"name,omitempty"`

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

func (*DatanodeSpec) GetName added in v0.3.0

func (in *DatanodeSpec) GetName() string

func (*DatanodeSpec) GetReplicas added in v0.2.2

func (in *DatanodeSpec) GetReplicas() *int32

func (*DatanodeSpec) GetRoleKind added in v0.3.0

func (in *DatanodeSpec) GetRoleKind() RoleKind

GetRoleKind returns the role kind.

func (*DatanodeSpec) GetTracing added in v0.4.3

func (in *DatanodeSpec) GetTracing() *TracingSpec

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 EtcdStorage added in v0.3.0

type EtcdStorage struct {
	// The endpoints of the etcd cluster.
	// +required
	Endpoints []string `json:"endpoints"`

	// EnableCheckEtcdService indicates whether to check etcd cluster health when starting meta.
	// +optional
	EnableCheckEtcdService bool `json:"enableCheckEtcdService,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"`
}

EtcdStorage is the specification for etcd storage for meta.

func (*EtcdStorage) DeepCopy added in v0.3.0

func (in *EtcdStorage) DeepCopy() *EtcdStorage

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

func (*EtcdStorage) DeepCopyInto added in v0.3.0

func (in *EtcdStorage) DeepCopyInto(out *EtcdStorage)

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

func (*EtcdStorage) GetEndpoints added in v0.3.0

func (in *EtcdStorage) GetEndpoints() []string

func (*EtcdStorage) GetStoreKeyPrefix added in v0.3.0

func (in *EtcdStorage) GetStoreKeyPrefix() string

func (*EtcdStorage) IsEnableCheckEtcdService added in v0.3.0

func (in *EtcdStorage) IsEnableCheckEtcdService() bool

type FileStorage

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

	// UseEmptyDir is a flag to indicate whether to use an empty dir. If true, the PVC will not be created and the whole storage of datanode will be cleaned up when the datanode restarts.
	// +optional
	UseEmptyDir *bool `json:"useEmptyDir,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"`

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

	// Annotations is the annotations for the PVC.
	// +optional
	Annotations map[string]string `json:"annotations,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) GetAnnotations added in v0.2.0

func (in *FileStorage) GetAnnotations() map[string]string

func (*FileStorage) GetLabels added in v0.2.0

func (in *FileStorage) GetLabels() map[string]string

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

func (*FileStorage) IsUseEmptyDir added in v0.4.3

func (in *FileStorage) IsUseEmptyDir() bool

type FileStorageAccessor

type FileStorageAccessor interface {
	GetName() string
	GetStorageClassName() *string
	GetSize() string
	GetMountPath() string
	GetPolicy() StorageRetainPolicyType
	GetLabels() map[string]string
	GetAnnotations() map[string]string
}

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

	// The HTTP port of the flownode.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	HTTPPort int32 `json:"httpPort,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

func (*FlownodeSpec) GetName added in v0.3.0

func (in *FlownodeSpec) GetName() string

func (*FlownodeSpec) GetReplicas added in v0.2.2

func (in *FlownodeSpec) GetReplicas() *int32

func (*FlownodeSpec) GetRoleKind added in v0.3.0

func (in *FlownodeSpec) GetRoleKind() RoleKind

GetRoleKind returns the role kind.

func (*FlownodeSpec) GetTracing added in v0.4.3

func (in *FlownodeSpec) GetTracing() *TracingSpec

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

	// Name is the name of the frontend.
	// +optional
	Name string `json:"name,omitempty"`

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

	// InternalPort is the internal gRPC port of the frontend.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	// +optional
	InternalPort *int32 `json:"internalPort,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"`

	// SlowQuery is the slow query configuration.
	// +optional
	SlowQuery *SlowQuery `json:"slowQuery,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) GetName added in v0.2.1

func (in *FrontendSpec) GetName() string

func (*FrontendSpec) GetReplicas added in v0.2.2

func (in *FrontendSpec) GetReplicas() *int32

func (*FrontendSpec) GetRoleKind added in v0.3.0

func (in *FrontendSpec) GetRoleKind() RoleKind

GetRoleKind returns the role kind.

func (*FrontendSpec) GetService

func (in *FrontendSpec) GetService() *ServiceSpec

func (*FrontendSpec) GetSlowQuery added in v0.3.0

func (in *FrontendSpec) GetSlowQuery() *SlowQuery

func (*FrontendSpec) GetTLS

func (in *FrontendSpec) GetTLS() *TLSSpec

func (*FrontendSpec) GetTracing added in v0.4.3

func (in *FrontendSpec) GetTracing() *TracingSpec

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) GetDatanodeGroups added in v0.4.0

func (in *GreptimeDBCluster) GetDatanodeGroups() []*DatanodeSpec

func (*GreptimeDBCluster) GetDatanodeReplicas added in v0.4.0

func (in *GreptimeDBCluster) GetDatanodeReplicas() int32

func (*GreptimeDBCluster) GetFlownode

func (in *GreptimeDBCluster) GetFlownode() *FlownodeSpec

func (*GreptimeDBCluster) GetFrontend

func (in *GreptimeDBCluster) GetFrontend() *FrontendSpec

func (*GreptimeDBCluster) GetFrontendGroups added in v0.3.0

func (in *GreptimeDBCluster) GetFrontendGroups() []*FrontendSpec

func (*GreptimeDBCluster) GetIngress added in v0.2.1

func (in *GreptimeDBCluster) GetIngress() *IngressSpec

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) GetTracing added in v0.4.3

func (in *GreptimeDBCluster) GetTracing() *TracingSpec

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) MergeWithBaseTemplate added in v0.4.3

func (in *GreptimeDBCluster) MergeWithBaseTemplate() error

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

func (*GreptimeDBCluster) MergeWithGlobalLogging added in v0.4.3

func (in *GreptimeDBCluster) MergeWithGlobalLogging() error

MergeWithGlobalLogging will merge the base logging settings into the component's logging settings. If the component's logging settings is not set, it will be set to the base logging settings.

func (*GreptimeDBCluster) MergeWithGlobalTracing added in v0.4.3

func (in *GreptimeDBCluster) MergeWithGlobalTracing() error

MergeWithGlobalTracing will merge the global tracing settings into the component's tracing settings. If the component's tracing settings is not set, it will be set to the global tracing settings.

func (*GreptimeDBCluster) SetDefaults

func (in *GreptimeDBCluster) SetDefaults() error

SetDefaults sets the default values for the GreptimeDBCluster.

func (*GreptimeDBCluster) SetupWebhookWithManager added in v0.2.0

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

func (*GreptimeDBCluster) Validate

func (in *GreptimeDBCluster) Validate() error

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

func (*GreptimeDBCluster) ValidateCreate added in v0.2.0

func (r *GreptimeDBCluster) ValidateCreate(_ context.Context, obj runtime.Object) (admission.Warnings, error)

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

func (*GreptimeDBCluster) ValidateDelete added in v0.2.0

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

func (*GreptimeDBCluster) ValidateUpdate added in v0.2.0

func (r *GreptimeDBCluster) ValidateUpdate(_ context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error)

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

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

	// DatanodeGroups is a group of datanode statefulsets.
	// +optional
	DatanodeGroups []*DatanodeSpec `json:"datanodeGroups,omitempty"`

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

	// FrontendGroups is groups of frontend node.
	// +optional
	FrontendGroups []*FrontendSpec `json:"frontendGroups,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"`

	// Ingress is the Ingress configuration of the frontend.
	// +optional
	Ingress *IngressSpec `json:"ingress,omitempty"`

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

	// ConfigMergeStrategy is the strategy for merging the input config with the config that generated by the operator.
	// +optional
	ConfigMergeStrategy ConfigMergeStrategy `json:"configMergeStrategy,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) GetSlowQuery added in v0.3.0

func (in *GreptimeDBStandalone) GetSlowQuery() *SlowQuery

func (*GreptimeDBStandalone) GetTLS

func (in *GreptimeDBStandalone) GetTLS() *TLSSpec

func (*GreptimeDBStandalone) GetTracing added in v0.4.3

func (in *GreptimeDBStandalone) GetTracing() *TracingSpec

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) SetupWebhookWithManager added in v0.2.0

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

func (*GreptimeDBStandalone) Validate

func (in *GreptimeDBStandalone) Validate() error

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

func (*GreptimeDBStandalone) ValidateCreate added in v0.2.0

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

func (*GreptimeDBStandalone) ValidateDelete added in v0.2.0

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

func (*GreptimeDBStandalone) ValidateUpdate added in v0.2.0

func (r *GreptimeDBStandalone) ValidateUpdate(_ context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error)

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

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

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

	// Tracing defines the tracing configuration for the component.
	// +optional
	Tracing *TracingSpec `json:"tracing,omitempty"`

	// ConfigMergeStrategy is the strategy for merging the input config with the config that generated by the operator.
	// +optional
	ConfigMergeStrategy ConfigMergeStrategy `json:"configMergeStrategy,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 IngressBackend added in v0.2.1

type IngressBackend struct {
	// Name is the referenced frontend name.
	// +optional
	Name string `json:"name,omitempty"`

	// Path is matched against the path of an incoming request.
	// +optional
	Path string `json:"path,omitempty"`

	// PathType determines the interpretation of the path matching.
	// +optional
	PathType *networkingv1.PathType `json:"pathType,omitempty"`
}

IngressBackend defines the Ingress backend configuration.

func (*IngressBackend) DeepCopy added in v0.2.1

func (in *IngressBackend) DeepCopy() *IngressBackend

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

func (*IngressBackend) DeepCopyInto added in v0.2.1

func (in *IngressBackend) DeepCopyInto(out *IngressBackend)

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

type IngressRule added in v0.2.1

type IngressRule struct {
	// Host is the fully qualified domain name of a network host.
	// +optional
	Host string `json:"host,omitempty"`

	// IngressBackend is the Ingress backend configuration.
	// +optional
	IngressBackend []IngressBackend `json:"backends,omitempty"`
}

IngressRule defines the Ingress rule configuration.

func (*IngressRule) DeepCopy added in v0.2.1

func (in *IngressRule) DeepCopy() *IngressRule

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

func (*IngressRule) DeepCopyInto added in v0.2.1

func (in *IngressRule) DeepCopyInto(out *IngressRule)

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

type IngressSpec added in v0.2.1

type IngressSpec struct {
	// Annotations is the annotations for the ingress.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

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

	// IngressClassName is the name of an IngressClass.
	// +optional
	IngressClassName *string `json:"ingressClassName,omitempty"`

	// IngressRule is a list of host rules used to configure the Ingress.
	// +optional
	Rules []IngressRule `json:"rules,omitempty"`

	// TLS is the Ingress TLS configuration.
	// +optional
	TLS []networkingv1.IngressTLS `json:"tls,omitempty"`
}

IngressSpec defines the Ingress configuration.

func (*IngressSpec) DeepCopy added in v0.2.1

func (in *IngressSpec) DeepCopy() *IngressSpec

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

func (*IngressSpec) DeepCopyInto added in v0.2.1

func (in *IngressSpec) DeepCopyInto(out *IngressSpec)

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

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

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.
	// +optional
	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"`

	// ExtraArgs specifies additional command-line arguments for the container entrypoint.
	// These arguments will be appended to the default command line.
	// +optional
	ExtraArgs []string `json:"extraArgs,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"`

	// BackendStorage is the specification for the backend storage for meta.
	// +optional
	BackendStorage *BackendStorage `json:"backendStorage,omitempty"`

	// EtcdEndpoints is the endpoints of the etcd cluster.
	// +optional
	// +kubebuilder:deprecatedversion:warning="EtcdEndpoints is deprecated and will be removed in a future version. Please use BackendStorage instead."
	EtcdEndpoints []string `json:"etcdEndpoints,omitempty"`

	// EnableCheckEtcdService indicates whether to check etcd cluster health when starting meta.
	// +optional
	// +kubebuilder:deprecatedversion:warning="EnableCheckEtcdService is deprecated and will be removed in a future version. Please use BackendStorage instead."
	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
	// +kubebuilder:deprecatedversion:warning="StoreKeyPrefix is deprecated and will be removed in a future version. Please use BackendStorage instead."
	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) GetBackendStorage added in v0.3.0

func (in *MetaSpec) GetBackendStorage() *BackendStorage

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) GetName added in v0.3.0

func (in *MetaSpec) GetName() string

func (*MetaSpec) GetReplicas added in v0.2.2

func (in *MetaSpec) GetReplicas() *int32

func (*MetaSpec) GetRoleKind added in v0.3.0

func (in *MetaSpec) GetRoleKind() RoleKind

GetRoleKind returns the role kind.

func (*MetaSpec) GetStoreKeyPrefix

func (in *MetaSpec) GetStoreKeyPrefix() string

func (*MetaSpec) GetTracing added in v0.4.3

func (in *MetaSpec) GetTracing() *TracingSpec

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

	// MaintenanceMode is the maintenance mode of the meta.
	MaintenanceMode bool `json:"maintenanceMode"`
}

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 MySQLStorage added in v0.3.0

type MySQLStorage struct {
	// Host is the host of the MySQL database.
	// +required
	Host string `json:"host"`

	// Port is the port of the MySQL database.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port"`

	// CredentialsSecretName is the name of the secret that contains the credentials for the MySQL database.
	// The secret must be in the same namespace with the greptime resource.
	// The secret must contain keys named `username` and `password`.
	// +required
	CredentialsSecretName string `json:"credentialsSecretName"`

	// Database is the name of the MySQL database.
	// +optional
	Database string `json:"database,omitempty"`

	// Table is the name of the MySQL table.
	// +optional
	Table string `json:"table,omitempty"`
}

MySQLStorage is the specification for MySQL storage for meta.

func (*MySQLStorage) DeepCopy added in v0.3.0

func (in *MySQLStorage) DeepCopy() *MySQLStorage

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

func (*MySQLStorage) DeepCopyInto added in v0.3.0

func (in *MySQLStorage) DeepCopyInto(out *MySQLStorage)

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

func (*MySQLStorage) GetCredentialsSecretName added in v0.3.0

func (in *MySQLStorage) GetCredentialsSecretName() string

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 access key secret.
	// The secret should contain keys named `access-key-id` and `access-key-secret`.
	// 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
	GetCacheStorage() *CacheStorage
}

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) GetCacheStorage added in v0.2.1

func (in *ObjectStorageProviderSpec) GetCacheStorage() *CacheStorage

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 PostgreSQLStorage added in v0.3.0

type PostgreSQLStorage struct {
	// Host is the host of the PostgreSQL database.
	// +required
	Host string `json:"host"`

	// Port is the port of the PostgreSQL database.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=65535
	Port int32 `json:"port"`

	// CredentialsSecretName is the name of the secret that contains the credentials for the PostgreSQL database.
	// The secret must be in the same namespace with the greptime resource.
	// The secret must contain keys named `username` and `password`.
	// +required
	CredentialsSecretName string `json:"credentialsSecretName"`

	// Database is the name of the PostgreSQL database.
	// +optional
	Database string `json:"database,omitempty"`

	// Table is the name of the PostgreSQL table.
	// +optional
	Table string `json:"table,omitempty"`

	// ElectionLockID it the lock id in PostgreSQL for election.
	ElectionLockID uint64 `json:"electionLockID,omitempty"`
}

PostgreSQLStorage is the specification for PostgreSQL storage for meta.

func (*PostgreSQLStorage) DeepCopy added in v0.3.0

func (in *PostgreSQLStorage) DeepCopy() *PostgreSQLStorage

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

func (*PostgreSQLStorage) DeepCopyInto added in v0.3.0

func (in *PostgreSQLStorage) DeepCopyInto(out *PostgreSQLStorage)

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

func (*PostgreSQLStorage) GetCredentialsSecretName added in v0.3.0

func (in *PostgreSQLStorage) GetCredentialsSecretName() string

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 RoleKind added in v0.3.0

type RoleKind string

RoleKind is the role of the component in the cluster.

const (
	// FrontendRoleKind is the frontend role.
	FrontendRoleKind RoleKind = "frontend"

	// DatanodeRoleKind is the datanode role.
	DatanodeRoleKind RoleKind = "datanode"

	// MetaRoleKind is the meta role.
	MetaRoleKind RoleKind = "meta"

	// FlownodeRoleKind is the flownode role.
	FlownodeRoleKind RoleKind = "flownode"

	// StandaloneRoleKind is the standalone role.
	StandaloneRoleKind RoleKind = "standalone"
)

type RoleSpec added in v0.3.0

type RoleSpec interface {
	// GetName returns the spec name if it has. It will return empty string if the spec has no name.
	GetName() string

	// GetRoleKind returns the role kind.
	GetRoleKind() RoleKind
}

RoleSpec is the interface for the role spec. +kubebuilder:object:generate=false

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

	// Enable virtual host style so that OpenDAL will send API requests in virtual host style instead of path style.
	// By default, OpenDAL will send API to 'https://s3.us-east-1.amazonaws.com/${BUCKET_NAME}'.
	// If EnableVirtualHostStyle is true, OpenDAL will send API to 'https://${BUCKET_NAME}.s3.us-east-1.amazonaws.com'.
	// +optional
	EnableVirtualHostStyle bool `json:"enableVirtualHostStyle,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.
	// +optional
	Enabled bool `json:"enabled,omitempty"`

	// RecordType is the type of the slow query record. Default to `system_table`.
	// +optional
	RecordType SlowQueryRecordType `json:"recordType,omitempty"`

	// Threshold is the threshold of the slow query. Default to `30s`.
	// +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"`

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

SlowQuery defines the slow query configuration.

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.

func (*SlowQuery) IsEnabled added in v0.3.0

func (in *SlowQuery) IsEnabled() bool

type SlowQueryRecordType added in v0.3.0

type SlowQueryRecordType string
const (
	// SlowQueryRecordTypeSystemTable is the type of the slow query record.
	SlowQueryRecordTypeSystemTable SlowQueryRecordType = "system_table"

	// SlowQueryRecordTypeLog is the type of the slow query record.
	SlowQueryRecordTypeLog SlowQueryRecordType = "log"
)

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 TracingSpec added in v0.4.3

type TracingSpec struct {
	// Enabled indicates whether to enable OTLP tracing.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Endpoint it the OTLP tracing endpoint.
	// +optional
	Endpoint string `json:"endpoint,omitempty"`

	// SampleRatio is the percentage of tracing will be sampled and exported.
	// Valid range `[0, 1]`, 1 means all traces are sampled, 0 means all traces are not sampled, the default value is 1.
	SampleRatio string `json:"sampleRatio,omitempty"`
}

TracingSpec defines the tracing configuration for the component.

func (*TracingSpec) DeepCopy added in v0.4.3

func (in *TracingSpec) DeepCopy() *TracingSpec

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

func (*TracingSpec) DeepCopyInto added in v0.4.3

func (in *TracingSpec) DeepCopyInto(out *TracingSpec)

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

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