v1alpha1

package
v1.8.3 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2023 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

+k8s:deepcopy-gen=package +groupName=starrocks.com

Package v1alpha1 contains API Schema definitions for the v1alpha1 API group +kubebuilder:object:generate=true +groupName=starrocks.com

Index

Constants

View Source
const (
	// ComponentLabelKey is Kubernetes recommended label key, it represents the component within the architecture
	ComponentLabelKey string = "app.kubernetes.io/component"
	// NameLabelKey is Kubernetes recommended label key, it represents the name of the application
	NameLabelKey string = "app.kubernetes.io/name"

	// OwnerReference list object depended by this object
	OwnerReference string = "app.starrocks.ownerreference/name"

	// ComponentsResourceHash the component hash
	ComponentResourceHash string = "app.starrocks.components/hash"

	ComponentReplicasEmpty string = "app.starrocks.components/replica/empty"
)

the labels key

View Source
const (
	DEFAULT_FE = "fe"
	DEFAULT_BE = "be"
	DEFAULT_CN = "cn"
)

the labels value. default statefulset name

View Source
const (
	DEFAULT_FE_CONFIG_NAME = "fe-config"

	DEFAULT_EMPTDIR_NAME = "emptydir-data"

	INITIAL_VOLUME_PATH = "/pod-data"

	DEFAULT_START_SCRIPT_NAME = "fe-start-scripts"

	// TODO: when scripts need set.
	DEFAULT_START_SCRIPT_PATH = ""
)

config value

View Source
const (
	COMPONENT_NAME      = "COMPONENT_NAME"
	FE_SERVICE_NAME     = "FE_SERVICE_NAME"
	SEARCH_SERVICE_NAME = "SEARCH_SERVICE_NAME"
)

the env of container

View Source
const (
	// TCPProbeType represents the readiness prob method with TCP
	TCPProbeType string = "tcp"
	// CommandProbeType represents the readiness prob method with arbitrary unix `exec` call format commands
	CommandProbeType string = "command"
)

Variables

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

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

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

Functions

func BeStatefulSetName

func BeStatefulSetName(src *StarRocksCluster) string

func CnStatefulSetName

func CnStatefulSetName(src *StarRocksCluster) string

func FeStatefulSetName

func FeStatefulSetName(src *StarRocksCluster) string

func GetBeExternalServiceName

func GetBeExternalServiceName(src *StarRocksCluster) string

GetBeExternalServiceName generate the name of service that access the be.

func GetCnExternalServiceName

func GetCnExternalServiceName(src *StarRocksCluster) string

GetCnExternalServiceName generate the name of service that access the cn

func GetFeExternalServiceName

func GetFeExternalServiceName(src *StarRocksCluster) string

GetFeExternalServiceName generate the name of service that access the fe.

Types

type AnnotationOperationKey

type AnnotationOperationKey string

Operation response key in annnotation, the annotation key be associated with annotation value represent the process status of sr operation.

const (
	// the fe annotation key for restart
	AnnotationFERestartKey AnnotationOperationKey = "app.starrocks.fe.io/restart"

	// the be annotation key for restart be
	AnnotationBERestartKey AnnotationOperationKey = "app.starrocks.be.io/restart"

	// the cn annotation key for restart cn
	AnnotationCNRestartKey AnnotationOperationKey = "app.starrocks.cn.io/restart"
)

type AnnotationOperationValue

type AnnotationOperationValue string

AnnotationOperationValue present the operation for fe, cn, be.

const (
	// represent the user want to restart all fe pods.
	AnnotationRestart AnnotationOperationValue = "restart"
	// represent all fe pods have restarted.
	AnnotationRestartFinished AnnotationOperationValue = "finished"
	// represent at least one pod on restarting
	AnnotationRestarting AnnotationOperationValue = "restarting"
)

type AutoScalerVersion

type AutoScalerVersion string
const (
	// the cn service use v1 autoscaler. reference to https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
	AutoScalerV1 AutoScalerVersion = "v1"

	// the cn service use v2beta. reference to  https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
	AutoScalerV2Beta2 AutoScalerVersion = "v2beta2"

	// the cn service use v2. reference to  https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
	AutoSclaerV2 AutoScalerVersion = "v2"
)

type AutoScalingPolicy

type AutoScalingPolicy struct {
	// the policy of cn autoscale. operator use autoscaling v2.
	HPAPolicy *HPAPolicy `json:"hpaPolicy,omitempty"`

	// version represents the autoscaler version for cn service. only support v1,v2beta2,v2
	// +kubebuilder:default:="v2beta2"
	Version AutoScalerVersion `json:"version,omitempty"`
	// +optional
	MinReplicas *int32 `json:"minReplicas,omitempty"`

	// the max numbers of target.
	// +optional
	MaxReplicas int32 `json:"maxReplicas"`
}

AutoScalingPolicy defines the auto scale

func (*AutoScalingPolicy) DeepCopy

func (in *AutoScalingPolicy) DeepCopy() *AutoScalingPolicy

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

func (*AutoScalingPolicy) DeepCopyInto

func (in *AutoScalingPolicy) DeepCopyInto(out *AutoScalingPolicy)

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

type ClusterPhase

type ClusterPhase string

represent the cluster phase. the possible value for cluster phase are: running, failed, pending.

const (
	// ClusterRunning represents starrocks cluster is running.
	ClusterRunning ClusterPhase = "running"

	// ClusterFailed represents starrocks cluster failed.
	ClusterFailed ClusterPhase = "failed"

	// ClusterPending represents the starrocks cluster is creating
	ClusterPending ClusterPhase = "pending"

	// ClusterDeleting waiting all resource deleted
	ClusterDeleting = "deleting"
)

type ConfigMapInfo

type ConfigMapInfo struct {
	// the config info for start progress.
	ConfigMapName string `json:"configMapName,omitempty"`

	// the config response key in configmap.
	ResolveKey string `json:"resolveKey,omitempty"`
}

func (*ConfigMapInfo) DeepCopy

func (in *ConfigMapInfo) DeepCopy() *ConfigMapInfo

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

func (*ConfigMapInfo) DeepCopyInto

func (in *ConfigMapInfo) DeepCopyInto(out *ConfigMapInfo)

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

type ContainerResourceMetricSource

type ContainerResourceMetricSource struct {
	// name is the name of the resource in question.
	Name v1.ResourceName `json:"name" protobuf:"bytes,1,name=name"`
	// target specifies the target value for the given metric
	Target MetricTarget `json:"target" protobuf:"bytes,2,name=target"`
	// container is the name of the container in the pods of the scaling target
	Container string `json:"container" protobuf:"bytes,3,opt,name=container"`
}

ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.

func (*ContainerResourceMetricSource) DeepCopy

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

func (*ContainerResourceMetricSource) DeepCopyInto

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

type CrossVersionObjectReference

type CrossVersionObjectReference struct {
	// Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
	Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"`
	// Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
	Name string `json:"name" protobuf:"bytes,2,opt,name=name"`
	// API version of the referent
	// +optional
	APIVersion string `json:"apiVersion,omitempty" protobuf:"bytes,3,opt,name=apiVersion"`
}

CrossVersionObjectReference contains enough information to let you identify the referred resource.

func (*CrossVersionObjectReference) DeepCopy

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

func (*CrossVersionObjectReference) DeepCopyInto

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

type ExternalMetricSource

type ExternalMetricSource struct {
	// metric identifies the target metric by name and selector
	Metric MetricIdentifier `json:"metric" protobuf:"bytes,1,name=metric"`
	// target specifies the target value for the given metric
	Target MetricTarget `json:"target" protobuf:"bytes,2,name=target"`
}

ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).

func (*ExternalMetricSource) DeepCopy

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

func (*ExternalMetricSource) DeepCopyInto

func (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource)

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

type HPAPolicy

type HPAPolicy struct {
	// +optional
	// Metrics specifies how to scale based on a single metric
	// the struct copy from k8s.io/api/autoscaling/v2beta2/types.go. the redundancy code will hide the restriction about
	// HorizontalPodAutoscaler version and kubernetes releases matching issue.
	// the splice will have unsafe.Pointer convert, so be careful to edit the struct fileds.
	Metrics []MetricSpec `json:"metrics,omitempty"`

	// +optional
	// HorizontalPodAutoscalerBehavior configures the scaling behavior of the target.
	// the struct copy from k8s.io/api/autoscaling/v2beta2/types.go. the redundancy code will hide the restriction about
	// HorizontalPodAutoscaler version and kubernetes releases matching issue.
	// the
	Behavior *HorizontalPodAutoscalerBehavior `json:"behavior,omitempty"`
}

func (*HPAPolicy) DeepCopy

func (in *HPAPolicy) DeepCopy() *HPAPolicy

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

func (*HPAPolicy) DeepCopyInto

func (in *HPAPolicy) DeepCopyInto(out *HPAPolicy)

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

type HPAScalingPolicy

type HPAScalingPolicy struct {
	// Type is used to specify the scaling policy.
	Type HPAScalingPolicyType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=HPAScalingPolicyType"`
	// Value contains the amount of change which is permitted by the policy.
	// It must be greater than zero
	Value int32 `json:"value" protobuf:"varint,2,opt,name=value"`
	// PeriodSeconds specifies the window of time for which the policy should hold true.
	// PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).
	PeriodSeconds int32 `json:"periodSeconds" protobuf:"varint,3,opt,name=periodSeconds"`
}

HPAScalingPolicy is a single policy which must hold true for a specified past interval.

func (*HPAScalingPolicy) DeepCopy

func (in *HPAScalingPolicy) DeepCopy() *HPAScalingPolicy

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

func (*HPAScalingPolicy) DeepCopyInto

func (in *HPAScalingPolicy) DeepCopyInto(out *HPAScalingPolicy)

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

type HPAScalingPolicyType

type HPAScalingPolicyType string

HPAScalingPolicyType is the type of the policy which could be used while making scaling decisions.

const (
	// PodsScalingPolicy is a policy used to specify a change in absolute number of pods.
	PodsScalingPolicy HPAScalingPolicyType = "Pods"
	// PercentScalingPolicy is a policy used to specify a relative amount of change with respect to
	// the current number of pods.
	PercentScalingPolicy HPAScalingPolicyType = "Percent"
)

type HPAScalingRules

type HPAScalingRules struct {
	// StabilizationWindowSeconds is the number of seconds for which past recommendations should be
	// considered while scaling up or scaling down.
	// StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour).
	// If not set, use the default values:
	// - For scale up: 0 (i.e. no stabilization is done).
	// - For scale down: 300 (i.e. the stabilization window is 300 seconds long).
	// +optional
	StabilizationWindowSeconds *int32 `json:"stabilizationWindowSeconds,omitempty" protobuf:"varint,3,opt,name=stabilizationWindowSeconds"`
	// selectPolicy is used to specify which policy should be used.
	// If not set, the default value MaxPolicySelect is used.
	// +optional
	SelectPolicy *ScalingPolicySelect `json:"selectPolicy,omitempty" protobuf:"bytes,1,opt,name=selectPolicy"`
	// policies is a list of potential scaling polices which can be used during scaling.
	// At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid
	// +optional
	Policies []HPAScalingPolicy `json:"policies,omitempty" protobuf:"bytes,2,rep,name=policies"`
}

HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.

func (*HPAScalingRules) DeepCopy

func (in *HPAScalingRules) DeepCopy() *HPAScalingRules

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

func (*HPAScalingRules) DeepCopyInto

func (in *HPAScalingRules) DeepCopyInto(out *HPAScalingRules)

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

type HorizontalPodAutoscalerBehavior

type HorizontalPodAutoscalerBehavior struct {
	// scaleUp is scaling policy for scaling Up.
	// If not set, the default value is the higher of:
	//   * increase no more than 4 pods per 60 seconds
	//   * double the number of pods per 60 seconds
	// No stabilization is used.
	// +optional
	ScaleUp *HPAScalingRules `json:"scaleUp,omitempty" protobuf:"bytes,1,opt,name=scaleUp"`
	// scaleDown is scaling policy for scaling Down.
	// If not set, the default value is to allow to scale down to minReplicas pods, with a
	// 300 second stabilization window (i.e., the highest recommendation for
	// the last 300sec is used).
	// +optional
	ScaleDown *HPAScalingRules `json:"scaleDown,omitempty" protobuf:"bytes,2,opt,name=scaleDown"`
}

HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).

func (*HorizontalPodAutoscalerBehavior) DeepCopy

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

func (*HorizontalPodAutoscalerBehavior) DeepCopyInto

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

type HorizontalScaler

type HorizontalScaler struct {
	// the deploy horizontal scaler name
	Name string `json:"name,omitempty"`

	// the deploy horizontal version.
	Version AutoScalerVersion `json:"version,omitempty"`
}

func (*HorizontalScaler) DeepCopy

func (in *HorizontalScaler) DeepCopy() *HorizontalScaler

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

func (*HorizontalScaler) DeepCopyInto

func (in *HorizontalScaler) DeepCopyInto(out *HorizontalScaler)

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

type MemberPhase

type MemberPhase string

represent the component phase about be, cn, be. the possible value for component phase are: reconciliing, failed, running, waitting.

const (
	// ComponentReconciling the starrocks have component in starting.
	ComponentReconciling MemberPhase = "reconciling"
	// ComponentFailed have at least one service failed.
	ComponentFailed MemberPhase = "failed"
	// ComponentRunning all components runs available.
	ComponentRunning MemberPhase = "running"
)

type MetricIdentifier

type MetricIdentifier struct {
	// name is the name of the given metric
	Name string `json:"name" protobuf:"bytes,1,name=name"`
	// selector is the string-encoded form of a standard kubernetes label selector for the given metric
	// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.
	// When unset, just the metricName will be used to gather metrics.
	// +optional
	Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,2,name=selector"`
}

MetricIdentifier defines the name and optionally selector for a metric

func (*MetricIdentifier) DeepCopy

func (in *MetricIdentifier) DeepCopy() *MetricIdentifier

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

func (*MetricIdentifier) DeepCopyInto

func (in *MetricIdentifier) DeepCopyInto(out *MetricIdentifier)

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

type MetricSourceType

type MetricSourceType string

MetricSourceType indicates the type of metric.

const (
	// ObjectMetricSourceType is a metric describing a kubernetes object
	// (for example, hits-per-second on an Ingress object).
	ObjectMetricSourceType MetricSourceType = "Object"
	// PodsMetricSourceType is a metric describing each pod in the current scale
	// target (for example, transactions-processed-per-second).  The values
	// will be averaged together before being compared to the target value.
	PodsMetricSourceType MetricSourceType = "Pods"
	// ResourceMetricSourceType is a resource metric known to Kubernetes, as
	// specified in requests and limits, describing each pod in the current
	// scale target (e.g. CPU or memory).  Such metrics are built in to
	// Kubernetes, and have special scaling options on top of those available
	// to normal per-pod metrics (the "pods" source).
	ResourceMetricSourceType MetricSourceType = "Resource"
	// ContainerResourceMetricSourceType is a resource metric known to Kubernetes, as
	// specified in requests and limits, describing a single container in each pod in the current
	// scale target (e.g. CPU or memory).  Such metrics are built in to
	// Kubernetes, and have special scaling options on top of those available
	// to normal per-pod metrics (the "pods" source).
	ContainerResourceMetricSourceType MetricSourceType = "ContainerResource"
	// ExternalMetricSourceType is a global metric that is not associated
	// with any Kubernetes object. It allows autoscaling based on information
	// coming from components running outside of cluster
	// (for example length of queue in cloud messaging service, or
	// QPS from loadbalancer running outside of cluster).
	ExternalMetricSourceType MetricSourceType = "External"
)

type MetricSpec

type MetricSpec struct {
	// type is the type of metric source.  It should be one of "ContainerResource", "External",
	// "Object", "Pods" or "Resource", each mapping to a matching field in the object.
	// Note: "ContainerResource" type is available on when the feature-gate
	// HPAContainerMetrics is enabled
	Type MetricSourceType `json:"type" protobuf:"bytes,1,name=type"`

	// object refers to a metric describing a single kubernetes object
	// (for example, hits-per-second on an Ingress object).
	// +optional
	Object *ObjectMetricSource `json:"object,omitempty" protobuf:"bytes,2,opt,name=object"`
	// pods refers to a metric describing each pod in the current scale target
	// (for example, transactions-processed-per-second).  The values will be
	// averaged together before being compared to the target value.
	// +optional
	Pods *PodsMetricSource `json:"pods,omitempty" protobuf:"bytes,3,opt,name=pods"`
	// resource refers to a resource metric (such as those specified in
	// requests and limits) known to Kubernetes describing each pod in the
	// current scale target (e.g. CPU or memory). Such metrics are built in to
	// Kubernetes, and have special scaling options on top of those available
	// to normal per-pod metrics using the "pods" source.
	// +optional
	Resource *ResourceMetricSource `json:"resource,omitempty" protobuf:"bytes,4,opt,name=resource"`
	// container resource refers to a resource metric (such as those specified in
	// requests and limits) known to Kubernetes describing a single container in
	// each pod of the current scale target (e.g. CPU or memory). Such metrics are
	// built in to Kubernetes, and have special scaling options on top of those
	// available to normal per-pod metrics using the "pods" source.
	// This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.
	// +optional
	ContainerResource *ContainerResourceMetricSource `json:"containerResource,omitempty" protobuf:"bytes,7,opt,name=containerResource"`
	// external refers to a global metric that is not associated
	// with any Kubernetes object. It allows autoscaling based on information
	// coming from components running outside of cluster
	// (for example length of queue in cloud messaging service, or
	// QPS from loadbalancer running outside of cluster).
	// +optional
	External *ExternalMetricSource `json:"external,omitempty" protobuf:"bytes,5,opt,name=external"`
}

MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).

func (*MetricSpec) DeepCopy

func (in *MetricSpec) DeepCopy() *MetricSpec

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

func (*MetricSpec) DeepCopyInto

func (in *MetricSpec) DeepCopyInto(out *MetricSpec)

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

type MetricTarget

type MetricTarget struct {
	// type represents whether the metric type is Utilization, Value, or AverageValue
	Type MetricTargetType `json:"type" protobuf:"bytes,1,name=type"`
	// value is the target value of the metric (as a quantity).
	// +optional
	Value *resource.Quantity `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"`
	// averageValue is the target value of the average of the
	// metric across all relevant pods (as a quantity)
	// +optional
	AverageValue *resource.Quantity `json:"averageValue,omitempty" protobuf:"bytes,3,opt,name=averageValue"`
	// averageUtilization is the target value of the average of the
	// resource metric across all relevant pods, represented as a percentage of
	// the requested value of the resource for the pods.
	// Currently only valid for Resource metric source type
	// +optional
	AverageUtilization *int32 `json:"averageUtilization,omitempty" protobuf:"bytes,4,opt,name=averageUtilization"`
}

MetricTarget defines the target value, average value, or average utilization of a specific metric

func (*MetricTarget) DeepCopy

func (in *MetricTarget) DeepCopy() *MetricTarget

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

func (*MetricTarget) DeepCopyInto

func (in *MetricTarget) DeepCopyInto(out *MetricTarget)

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

type MetricTargetType

type MetricTargetType string

MetricTargetType specifies the type of metric being targeted, and should be either "Value", "AverageValue", or "Utilization"

const (
	// UtilizationMetricType declares a MetricTarget is an AverageUtilization value
	UtilizationMetricType MetricTargetType = "Utilization"
	// ValueMetricType declares a MetricTarget is a raw value
	ValueMetricType MetricTargetType = "Value"
	// AverageValueMetricType declares a MetricTarget is an
	AverageValueMetricType MetricTargetType = "AverageValue"
)

type ObjectMetricSource

type ObjectMetricSource struct {
	DescribedObject CrossVersionObjectReference `json:"describedObject" protobuf:"bytes,1,name=describedObject"`
	// target specifies the target value for the given metric
	Target MetricTarget `json:"target" protobuf:"bytes,2,name=target"`
	// metric identifies the target metric by name and selector
	Metric MetricIdentifier `json:"metric" protobuf:"bytes,3,name=metric"`
}

ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).

func (*ObjectMetricSource) DeepCopy

func (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource

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

func (*ObjectMetricSource) DeepCopyInto

func (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource)

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

type PodsMetricSource

type PodsMetricSource struct {
	// metric identifies the target metric by name and selector
	Metric MetricIdentifier `json:"metric" protobuf:"bytes,1,name=metric"`
	// target specifies the target value for the given metric
	Target MetricTarget `json:"target" protobuf:"bytes,2,name=target"`
}

PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.

func (*PodsMetricSource) DeepCopy

func (in *PodsMetricSource) DeepCopy() *PodsMetricSource

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

func (*PodsMetricSource) DeepCopyInto

func (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource)

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

type ResourceMetricSource

type ResourceMetricSource struct {
	// name is the name of the resource in question.
	Name v1.ResourceName `json:"name" protobuf:"bytes,1,name=name"`
	// target specifies the target value for the given metric
	Target MetricTarget `json:"target" protobuf:"bytes,2,name=target"`
}

ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.

func (*ResourceMetricSource) DeepCopy

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

func (*ResourceMetricSource) DeepCopyInto

func (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource)

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

type ScalingPolicySelect

type ScalingPolicySelect string

ScalingPolicySelect is used to specify which policy should be used while scaling in a certain direction

const (
	// MaxPolicySelect selects the policy with the highest possible change.
	MaxPolicySelect ScalingPolicySelect = "Max"
	// MinPolicySelect selects the policy with the lowest possible change.
	MinPolicySelect ScalingPolicySelect = "Min"
	// DisabledPolicySelect disables the scaling in this direction.
	DisabledPolicySelect ScalingPolicySelect = "Disabled"
)

type StarRocksBeSpec

type StarRocksBeSpec struct {
	// Replicas is the number of desired be Pod. the default value=3
	// Optional
	Replicas *int32 `json:"replicas,omitempty"`

	// Image for a starrocks be deployment.
	Image string `json:"image"`

	// annotation for be pods. user can config monitor annotation for collect to monitor system.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

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

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

	// name of the starrocks be cluster.
	// +optional
	// +kubebuilder:validation:Pattern=[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
	// Deprecated
	Name string `json:"name,omitempty"`

	// Service defines the template for the associated Kubernetes Service object.
	// the service for user access be.
	// +optional
	Service *StarRocksService `json:"service,omitempty"`

	// defines the specification of resource cpu and mem.
	// +optional
	corev1.ResourceRequirements `json:",inline"`

	// the reference for be configMap.
	// +optional
	ConfigMapInfo ConfigMapInfo `json:"configMapInfo,omitempty"`

	// Probe defines the mode probe service in container is alive.
	// +optional
	Probe *StarRocksProbe `json:"probe,omitempty"`

	// StorageVolumes defines the additional storage for be storage data and log.
	// +optional
	StorageVolumes []StorageVolume `json:"storageVolumes,omitempty"`

	// ReplicaInstance is the names of replica starrocksbe cluster.
	// +optional
	// Deprecated, temp deprecated.
	ReplicaInstances []string `json:"replicaInstances,omitempty"`

	// (Optional) If specified, the pod's nodeSelector,displayName="Map of nodeSelectors to match when scheduling pods on nodes"
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

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

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

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

	// podLabels for user selector or classify pods.
	PodLabels map[string]string `json:"podLabels,omitempty"`

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

StarRocksBeSpec defines the desired state of be.

func (*StarRocksBeSpec) DeepCopy

func (in *StarRocksBeSpec) DeepCopy() *StarRocksBeSpec

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

func (*StarRocksBeSpec) DeepCopyInto

func (in *StarRocksBeSpec) DeepCopyInto(out *StarRocksBeSpec)

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

type StarRocksBeStatus

type StarRocksBeStatus struct {
	// the name of be service for fe find be instance.
	ServiceName string `json:"serviceName,omitempty"`

	// FailedInstances deploy failed instance of be.
	FailedInstances []string `json:"failedInstances,omitempty"`

	// CreatingInstances represents status in creating pods of be.
	CreatingInstances []string `json:"creatingInstances,omitempty"`

	// RunningInstances represents status in running pods of be.
	RunningInstances []string `json:"runningInstances,omitempty"`

	// The statefulset names of be.
	ResourceNames []string `json:"resourceNames,omitempty"`

	// Phase the value from all pods of be status. If be have one failed pod phase=failed,
	// also if be have one creating pod phase=creating, also if be all running phase=running, others unknown.
	Phase MemberPhase `json:"phase"`

	// the reason for the phase.
	// +optional
	Reason string `json:"reason"`
}

StarRocksBeStatus represents the status of starrocks be.

func (*StarRocksBeStatus) DeepCopy

func (in *StarRocksBeStatus) DeepCopy() *StarRocksBeStatus

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

func (*StarRocksBeStatus) DeepCopyInto

func (in *StarRocksBeStatus) DeepCopyInto(out *StarRocksBeStatus)

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

type StarRocksCluster

type StarRocksCluster struct {
	metav1.TypeMeta `json:",inline"`
	// +k8s:openapi-gen=false
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired state of the starrocks cluster.
	Spec StarRocksClusterSpec `json:"spec,omitempty"`

	// Most recent observed status of the starrocks cluster
	Status StarRocksClusterStatus `json:"status,omitempty"`
}

StarRocksCluster defines a starrocks cluster deployment. +kubebuilder:object:root=true +kubebuilder:resource:shortName=src +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:subresource:status +kubebuilder:printcolumn:name="FeStatus",type=string,JSONPath=`.status.starRocksFeStatus.phase` +kubebuilder:printcolumn:name="CnStatus",type=string,JSONPath=`.status.starRocksCnStatus.phase` +kubebuilder:printcolumn:name="BeStatus",type=string,JSONPath=`.status.starRocksBeStatus.phase` +k8s:openapi-gen=true +genclient

func (*StarRocksCluster) DeepCopy

func (in *StarRocksCluster) DeepCopy() *StarRocksCluster

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

func (*StarRocksCluster) DeepCopyInto

func (in *StarRocksCluster) DeepCopyInto(out *StarRocksCluster)

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

func (*StarRocksCluster) DeepCopyObject

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

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

type StarRocksClusterList

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

StarRocksClusterList contains a list of StarRocksCluster +kubebuilder:object:root=true +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +k8s:openapi-gen=true

func (*StarRocksClusterList) DeepCopy

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

func (*StarRocksClusterList) DeepCopyInto

func (in *StarRocksClusterList) DeepCopyInto(out *StarRocksClusterList)

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

func (*StarRocksClusterList) DeepCopyObject

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

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

type StarRocksClusterSpec

type StarRocksClusterSpec struct {
	// Specify a Service Account for starRocksCluster use k8s cluster.
	// +optional
	// Deprecated: component use serviceAccount in own's field.
	ServiceAccount string `json:"serviceAccount,omitempty"`

	// StarRocksFeSpec define fe configuration for start fe service.
	StarRocksFeSpec *StarRocksFeSpec `json:"starRocksFeSpec,omitempty"`

	// StarRocksBeSpec define be configuration for start be service.
	StarRocksBeSpec *StarRocksBeSpec `json:"starRocksBeSpec,omitempty"`

	// StarRocksCnSpec define cn configuration for start cn service.
	StarRocksCnSpec *StarRocksCnSpec `json:"starRocksCnSpec,omitempty"`
}

StarRocksClusterSpec defines the desired state of StarRocksCluster

func (*StarRocksClusterSpec) DeepCopy

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

func (*StarRocksClusterSpec) DeepCopyInto

func (in *StarRocksClusterSpec) DeepCopyInto(out *StarRocksClusterSpec)

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

type StarRocksClusterStatus

type StarRocksClusterStatus struct {
	// Represents the state of cluster. the possible value are: running, failed, pending
	Phase ClusterPhase `json:"phase"`
	// Represents the status of fe. the status have running, failed and creating pods.
	StarRocksFeStatus *StarRocksFeStatus `json:"starRocksFeStatus,omitempty"`

	// Represents the status of be. the status have running, failed and creating pods.
	StarRocksBeStatus *StarRocksBeStatus `json:"starRocksBeStatus,omitempty"`

	// Represents the status of cn. the status have running, failed and creating pods.
	StarRocksCnStatus *StarRocksCnStatus `json:"starRocksCnStatus,omitempty"`
}

StarRocksClusterStatus defines the observed state of StarRocksCluster.

func (*StarRocksClusterStatus) DeepCopy

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

func (*StarRocksClusterStatus) DeepCopyInto

func (in *StarRocksClusterStatus) DeepCopyInto(out *StarRocksClusterStatus)

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

type StarRocksCnSpec

type StarRocksCnSpec struct {
	// name of the starrocks cn cluster.
	// +kubebuilder:validation:Pattern=[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
	// +optional
	// Deprecated: , the statefulset name don't allow set, prevent accidental modification.
	Name string `json:"name,omitempty"`

	// annotation for cn pods. user can config monitor annotation for collect to monitor system.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

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

	// Replicas is the number of desired cn Pod.
	// +kubebuilder:validation:Minimum=0
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`

	// Image for a starrocks cn deployment.
	Image string `json:"image"`

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

	// Service defines the template for the associated Kubernetes Service object.
	// the service for user access cn.
	Service *StarRocksService `json:"service,omitempty"`

	// the reference for cn configMap.
	// +optional
	ConfigMapInfo ConfigMapInfo `json:"configMapInfo,omitempty"`

	// defines the specification of resource cpu and mem.
	corev1.ResourceRequirements `json:",inline"`

	// Probe defines the mode probe service in container is alive.
	Probe *StarRocksProbe `json:"probe,omitempty"`

	// AutoScalingPolicy auto scaling strategy
	AutoScalingPolicy *AutoScalingPolicy `json:"autoScalingPolicy,omitempty"`

	// (Optional) If specified, the pod's nodeSelector,displayName="Map of nodeSelectors to match when scheduling pods on nodes"
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

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

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

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

	// podLabels for user selector or classify pods.
	PodLabels map[string]string `json:"podLabels,omitempty"`

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

StarRocksCnSpec defines the desired state of cn.

func (*StarRocksCnSpec) DeepCopy

func (in *StarRocksCnSpec) DeepCopy() *StarRocksCnSpec

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

func (*StarRocksCnSpec) DeepCopyInto

func (in *StarRocksCnSpec) DeepCopyInto(out *StarRocksCnSpec)

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

type StarRocksCnStatus

type StarRocksCnStatus struct {
	// the name of cn service for fe find cn instance.
	ServiceName string `json:"serviceName,omitempty"`

	// FailedInstances deploy failed cn pod names.
	FailedInstances []string `json:"failedInstances,omitempty"`

	// CreatingInstances in creating status cn pod names.
	CreatingInstances []string `json:"creatingInstances,omitempty"`

	// RunningInstances in running status be pod names.
	RunningInstances []string `json:"runningInstances,omitempty"`

	// The statefulset names of be.
	ResourceNames []string `json:"resourceNames,omitempty"`

	// The policy name of autoScale.
	// Deprecated
	HpaName string `json:"hpaName,omitempty"`

	// HorizontalAutoscaler have the autoscaler information.
	HorizontalScaler HorizontalScaler `json:"horizontalScaler,omitempty"`

	// Phase the value from all pods of cn status. If cn have one failed pod phase=failed,
	// also if cn have one creating pod phase=creating, also if cn all running phase=running, others unknown.
	Phase MemberPhase `json:"phase"`

	// the reason for the phase.
	// +optional
	Reason string `json:"reason"`
}

func (*StarRocksCnStatus) DeepCopy

func (in *StarRocksCnStatus) DeepCopy() *StarRocksCnStatus

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

func (*StarRocksCnStatus) DeepCopyInto

func (in *StarRocksCnStatus) DeepCopyInto(out *StarRocksCnStatus)

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

type StarRocksFeSpec

type StarRocksFeSpec struct {
	// name of the starrocks be cluster.
	// +optional
	// +kubebuilder:validation:Pattern=[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
	// Deprecated, not allow set statefulset name.
	Name string `json:"name,omitempty"`

	// annotation for fe pods. user can config monitor annotation for collect to monitor system.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

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

	// Replicas is the number of desired fe Pod, the number is 1,3,5
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`

	// Image for a starrocks fe deployment..
	Image string `json:"image"`

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

	// Service defines the template for the associated Kubernetes Service object.
	// +optional
	Service *StarRocksService `json:"service,omitempty"`

	// defines the specification of resource cpu and mem.
	// +optional
	corev1.ResourceRequirements `json:",inline"`

	// the reference for fe configMap.
	// +optional
	ConfigMapInfo ConfigMapInfo `json:"configMapInfo,omitempty"`

	// Probe defines the mode probe service in container is alive.
	// +optional
	Probe *StarRocksProbe `json:"probe,omitempty"`

	// StorageVolumes defines the additional storage for fe meta storage.
	// +optional
	StorageVolumes []StorageVolume `json:"storageVolumes,omitempty"`

	// (Optional) If specified, the pod's nodeSelector,displayName="Map of nodeSelectors to match when scheduling pods on nodes"
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

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

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

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

	// +optional
	// the pod labels for user select or classify pods.
	PodLabels map[string]string `json:"podLabels,omitempty"`

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

StarRocksFeSpec defines the desired state of fe.

func (*StarRocksFeSpec) DeepCopy

func (in *StarRocksFeSpec) DeepCopy() *StarRocksFeSpec

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

func (*StarRocksFeSpec) DeepCopyInto

func (in *StarRocksFeSpec) DeepCopyInto(out *StarRocksFeSpec)

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

type StarRocksFeStatus

type StarRocksFeStatus struct {
	// the name of fe service exposed for user.
	ServiceName string `json:"serviceName,omitempty"`

	// FailedInstances failed fe pod names.
	FailedInstances []string `json:"failedInstances,omitempty"`

	// CreatingInstances in creating pod names.
	CreatingInstances []string `json:"creatingInstances,omitempty"`

	// RunningInstances in running status pod names.
	RunningInstances []string `json:"runningInstances,omitempty"`

	// ResourceNames the statefulset names of fe in v1alpha1 version.
	ResourceNames []string `json:"resourceNames,omitempty"`

	// Phase the value from all pods of fe status. If fe have one failed pod phase=failed,
	// also if fe have one creating pod phase=creating, also if fe all running phase=running, others unknown.
	Phase MemberPhase `json:"phase"`

	// +optional
	// Reason represents the reason of not running.
	Reason string `json:"reason"`
}

StarRocksFeStatus represents the status of starrocks fe.

func (*StarRocksFeStatus) DeepCopy

func (in *StarRocksFeStatus) DeepCopy() *StarRocksFeStatus

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

func (*StarRocksFeStatus) DeepCopyInto

func (in *StarRocksFeStatus) DeepCopyInto(out *StarRocksFeStatus)

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

type StarRocksProbe

type StarRocksProbe struct {
	// Type identifies the mode of probe main container
	// +kubebuilder:validation:Enum=tcp;command
	Type string `json:"type"`

	// Number of seconds after the container has started before liveness probes are initiated.
	// Default to 10 seconds.
	// +kubebuilder:validation:Minimum=0
	// +optional
	InitialDelaySeconds *int32 `json:"initialDelaySeconds,omitempty"`

	// How often (in seconds) to perform the probe.
	// Default to Kubernetes default (10 seconds). Minimum value is 1.
	// +kubebuilder:validation:Minimum=1
	// +optional
	PeriodSeconds *int32 `json:"periodSeconds,omitempty"`
}

StarRocksProbe defines the mode for probe be alive.

func (*StarRocksProbe) DeepCopy

func (in *StarRocksProbe) DeepCopy() *StarRocksProbe

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

func (*StarRocksProbe) DeepCopyInto

func (in *StarRocksProbe) DeepCopyInto(out *StarRocksProbe)

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

type StarRocksService

type StarRocksService struct {
	// Name assigned to service.
	// +kubebuilder:validation:Pattern=[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
	// +optional
	Name string `json:"name,omitempty"`

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

	// Only applies to Service Type: LoadBalancer.
	// This feature depends on whether the underlying cloud-provider supports specifying
	// the loadBalancerIP when a load balancer is created.
	// This field will be ignored if the cloud-provider does not support the feature.
	// This field was under-specified and its meaning varies across implementations,
	// and it cannot support dual-stack.
	// As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available.
	// This field may be removed in a future API version.
	// +optional
	LoadBalancerIP string `json:"loadBalancerIP,omitempty"`

	// Ports the components exposed ports and listen ports in pod.
	// +optional
	Ports []StarRocksServicePort `json:"ports"`
}

func (*StarRocksService) DeepCopy

func (in *StarRocksService) DeepCopy() *StarRocksService

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

func (*StarRocksService) DeepCopyInto

func (in *StarRocksService) DeepCopyInto(out *StarRocksService)

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

type StarRocksServicePort

type StarRocksServicePort struct {
	// Name of the map about coming port and target port
	Name string `json:"name,omitempty"`

	// Port the pod is exposed on service.
	Port int32 `json:"port"`

	// ContainerPort the service listen in pod.
	ContainerPort int32 `json:"containerPort"`

	// The easiest way to expose fe, cn or be is to use a Service of type `NodePort`.
	NodePort int32 `json:"nodePort,omitempty"`
}

func (*StarRocksServicePort) DeepCopy

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

func (*StarRocksServicePort) DeepCopyInto

func (in *StarRocksServicePort) DeepCopyInto(out *StarRocksServicePort)

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

type StorageVolume

type StorageVolume struct {
	// name of a storage volume.
	// +kubebuilder:validation:Pattern=[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
	Name string `json:"name"`

	// storageClassName is the name of the StorageClass required by the claim.
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
	// +optional
	StorageClassName *string `json:"storageClassName,omitempty"`

	// StorageSize is a valid memory size type based on powers-of-2, so 1Mi is 1024Ki.
	// Supported units:Mi, Gi, GiB, Ti, Ti, Pi, Ei, Ex: `512Mi`.
	// +kubebuilder:validation:Pattern:="(^0|([0-9]*l[.])?[0-9]+((M|G|T|E|P)i))$"
	StorageSize string `json:"storageSize"`

	// MountPath specify the path of volume mount.
	MountPath string `json:"mountPath,omitempty"`
}

StorageVolume defines additional PVC template for StatefulSets and volumeMount for pods that mount this PVC

func (*StorageVolume) DeepCopy

func (in *StorageVolume) DeepCopy() *StorageVolume

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

func (*StorageVolume) DeepCopyInto

func (in *StorageVolume) DeepCopyInto(out *StorageVolume)

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

Jump to

Keyboard shortcuts

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