v1alpha1

package
v0.6.3 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "risingwave.risingwavelabs.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

This section is empty.

Types

type ComponentGroupReplicasStatus

type ComponentGroupReplicasStatus struct {
	// Name of the group.
	Name string `json:"name"`

	// Target replicas of the group.
	Target int32 `json:"target"`

	// Running replicas in the group.
	Running int32 `json:"running"`

	// Existence status of the group.
	Exists bool `json:"exists,omitempty"`
}

ComponentGroupReplicasStatus are the running status of Pods in group.

func (*ComponentGroupReplicasStatus) DeepCopy

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

func (*ComponentGroupReplicasStatus) DeepCopyInto

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

type ComponentReplicasStatus

type ComponentReplicasStatus struct {
	// Total target replicas of the component.
	Target int32 `json:"target"`

	// Total running replicas of the component.
	Running int32 `json:"running"`

	// List of running status of each group.
	Groups []ComponentGroupReplicasStatus `json:"groups,omitempty"`
}

ComponentReplicasStatus are the running status of Pods of the component.

func (*ComponentReplicasStatus) DeepCopy

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

func (*ComponentReplicasStatus) DeepCopyInto

func (in *ComponentReplicasStatus) DeepCopyInto(out *ComponentReplicasStatus)

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

type PartialObjectMeta added in v0.4.0

type PartialObjectMeta struct {
	// Labels of the object.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Annotations of the object.
	Annotations map[string]string `json:"annotations,omitempty"`
}

PartialObjectMeta contains partial metadata of an object, including labels and annotations.

func (*PartialObjectMeta) DeepCopy added in v0.4.0

func (in *PartialObjectMeta) DeepCopy() *PartialObjectMeta

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

func (*PartialObjectMeta) DeepCopyInto added in v0.4.0

func (in *PartialObjectMeta) DeepCopyInto(out *PartialObjectMeta)

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

type PersistentVolumeClaim added in v0.2.6

type PersistentVolumeClaim struct {
	PersistentVolumeClaimPartialObjectMeta `json:"metadata,omitempty"`

	// spec defines the desired characteristics of a volume requested by a pod author.
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
	// +optional
	Spec corev1.PersistentVolumeClaimSpec `json:"spec,omitempty"`
}

PersistentVolumeClaim used by RisingWave.

func (*PersistentVolumeClaim) DeepCopy added in v0.2.6

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

func (*PersistentVolumeClaim) DeepCopyInto added in v0.2.6

func (in *PersistentVolumeClaim) DeepCopyInto(out *PersistentVolumeClaim)

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

type PersistentVolumeClaimPartialObjectMeta added in v0.2.6

type PersistentVolumeClaimPartialObjectMeta struct {
	// Name must be unique within a namespace. Is required when creating resources, although
	// some resources may allow a client to request the generation of an appropriate name
	// automatically. Name is primarily intended for creation idempotence and configuration
	// definition.
	// Cannot be updated.
	// More info: http://kubernetes.io/docs/user-guide/identifiers#names
	// +optional
	Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`

	// Map of string keys and values that can be used to organize and categorize
	// (scope and select) objects. May match selectors of replication controllers
	// and services.
	// More info: http://kubernetes.io/docs/user-guide/labels
	// +optional
	Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,11,rep,name=labels"`

	// Annotations is an unstructured key value map stored with a resource that may be
	// set by external tools to store and retrieve arbitrary metadata. They are not
	// queryable and should be preserved when modifying objects.
	// More info: http://kubernetes.io/docs/user-guide/annotations
	// +optional
	Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"`

	// Must be empty before the object is deleted from the registry. Each entry
	// is an identifier for the responsible component that will remove the entry
	// from the list. If the deletionTimestamp of the object is non-nil, entries
	// in this list can only be removed.
	// Finalizers may be processed and removed in any order.  Order is NOT enforced
	// because it introduces significant risk of stuck finalizers.
	// finalizers is a shared field, any actor with permission can reorder it.
	// If the finalizer list is processed in order, then this can lead to a situation
	// in which the component responsible for the first finalizer in the list is
	// waiting for a signal (field value, external system, or other) produced by a
	// component responsible for a finalizer later in the list, resulting in a deadlock.
	// Without enforced ordering finalizers are free to order amongst themselves and
	// are not vulnerable to ordering changes in the list.
	// +optional
	// +patchStrategy=merge
	Finalizers []string `json:"finalizers,omitempty" patchStrategy:"merge" protobuf:"bytes,14,rep,name=finalizers"`
}

PersistentVolumeClaimPartialObjectMeta is the metadata for PVC templates.

func (*PersistentVolumeClaimPartialObjectMeta) DeepCopy added in v0.2.6

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

func (*PersistentVolumeClaimPartialObjectMeta) DeepCopyInto added in v0.2.6

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

type RisingWave

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

	Spec   RisingWaveSpec   `json:"spec,omitempty"`
	Status RisingWaveStatus `json:"status,omitempty"`
}

RisingWave is the struct for RisingWave object.

func (*RisingWave) DeepCopy

func (in *RisingWave) DeepCopy() *RisingWave

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

func (*RisingWave) DeepCopyInto

func (in *RisingWave) DeepCopyInto(out *RisingWave)

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

func (*RisingWave) DeepCopyObject

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

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

type RisingWaveAliyunOSSCredentials added in v0.5.0

type RisingWaveAliyunOSSCredentials struct {
	// The name of the secret in the pod's namespace to select from.
	SecretName string `json:"secretName"`

	// AccessKeyIDRef is the key of the secret to be the access key. Must be a valid secret key.
	// Defaults to "AccessKeyIDRef".
	// +kubebuilder:default=AccessKeyIDRef
	AccessKeyIDRef string `json:"accessKeyIDRef,omitempty"`

	// AccessKeySecretRef is the key of the secret to be the secret access key. Must be a valid secret key.
	// Defaults to "AccessKeySecretRef".
	// +kubebuilder:default=AccessKeySecretRef
	AccessKeySecretRef string `json:"accessKeySecretRef,omitempty"`
}

RisingWaveAliyunOSSCredentials is the reference and keys selector to the AliyunOSS access credentials stored in a local secret.

func (*RisingWaveAliyunOSSCredentials) DeepCopy added in v0.5.0

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

func (*RisingWaveAliyunOSSCredentials) DeepCopyInto added in v0.5.0

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

type RisingWaveAzureBlobCredentials added in v0.3.5

type RisingWaveAzureBlobCredentials struct {
	// The name of the secret in the pod's namespace to select from.
	SecretName string `json:"secretName,omitempty"`

	// AccountNameKeyRef is the key of the secret to be the account name. Must be a valid secret key.
	// Defaults to "AccountName".
	// +kubebuilder:default=AccountName
	AccountNameRef string `json:"accountNameRef,omitempty"`

	// AccountKeyRef is the key of the secret to be the secret account key. Must be a valid secret key.
	// Defaults to "AccountKey".
	// +kubebuilder:default=AccountKey
	AccountKeyRef string `json:"accountKeyRef,omitempty"`

	// UseServiceAccount indicates whether to use the service account token mounted in the pod.
	// If this is enabled, secret and keys are ignored. Defaults to false.
	// +optional
	UseServiceAccount *bool `json:"useServiceAccount,omitempty"`
}

RisingWaveAzureBlobCredentials is the reference and keys selector to the AzureBlob access credentials stored in a local secret.

func (*RisingWaveAzureBlobCredentials) DeepCopy added in v0.3.5

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

func (*RisingWaveAzureBlobCredentials) DeepCopyInto added in v0.3.5

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

type RisingWaveComponent added in v0.4.0

type RisingWaveComponent struct {
	// LogLevel controls the log level of the running nodes. It can be in any format that the underlying component supports,
	// e.g., in the RUST_LOG format for Rust programs. Defaults to INFO.
	// +kubebuilder:default=INFO
	LogLevel string `json:"logLevel,omitempty"`

	// DisallowPrintStackTraces determines if the stack traces are allowed to print when panic happens. This options applies
	// to both Rust and Java programs. Defaults to false.
	// +optional
	DisallowPrintStackTraces *bool `json:"disallowPrintStackTraces,omitempty"`

	// NodeGroups of the component deployment.
	// +optional
	// +listType=map
	// +listMapKey=name
	// +patchMergeKey=name
	// +patchStrategy=merge,retainKeys
	NodeGroups []RisingWaveNodeGroup `json:"nodeGroups,omitempty"`
}

RisingWaveComponent determines how a RisingWave component is deployed.

func (*RisingWaveComponent) DeepCopy added in v0.4.0

func (in *RisingWaveComponent) DeepCopy() *RisingWaveComponent

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

func (*RisingWaveComponent) DeepCopyInto added in v0.4.0

func (in *RisingWaveComponent) DeepCopyInto(out *RisingWaveComponent)

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

type RisingWaveComponentStatus added in v0.4.0

type RisingWaveComponentStatus struct {
	// Total is the replica status of the component.
	Total WorkloadReplicaStatus `json:"total,omitempty"`

	// NodeGroups are the status list of all declared node groups of some component.
	// +optional
	// +listType=map
	// +listMapKey=name
	// +patchMergeKey=name
	// +patchStrategy=merge,retainKeys
	NodeGroups []RisingWaveNodeGroupStatus `json:"nodeGroups,omitempty"`
}

RisingWaveComponentStatus is the status of a component.

func (*RisingWaveComponentStatus) DeepCopy added in v0.4.0

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

func (*RisingWaveComponentStatus) DeepCopyInto added in v0.4.0

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

type RisingWaveComponentsReplicasStatus

type RisingWaveComponentsReplicasStatus struct {
	// Running status of meta.
	Meta ComponentReplicasStatus `json:"meta"`

	// Running status of frontend.
	Frontend ComponentReplicasStatus `json:"frontend"`

	// Running status of compute.
	Compute ComponentReplicasStatus `json:"compute"`

	// Running status of compactor.
	Compactor ComponentReplicasStatus `json:"compactor"`

	// Running status of standalone component.
	Standalone ComponentReplicasStatus `json:"standalone"`
}

RisingWaveComponentsReplicasStatus is the running status of components.

func (*RisingWaveComponentsReplicasStatus) DeepCopy

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

func (*RisingWaveComponentsReplicasStatus) DeepCopyInto

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

type RisingWaveComponentsSpec

type RisingWaveComponentsSpec struct {
	// Standalone contains configuration of the standalone component.
	Standalone *RisingWaveStandaloneComponent `json:"standalone,omitempty"`

	// Meta contains configuration of the meta component.
	Meta RisingWaveComponent `json:"meta,omitempty"`

	// Frontend contains configuration of the frontend component.
	Frontend RisingWaveComponent `json:"frontend,omitempty"`

	// Compute contains configuration of the compute component.
	Compute RisingWaveComponent `json:"compute,omitempty"`

	// Compactor contains configuration of the compactor component.
	Compactor RisingWaveComponent `json:"compactor,omitempty"`
}

RisingWaveComponentsSpec is the spec for RisingWave components.

func (*RisingWaveComponentsSpec) DeepCopy

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

func (*RisingWaveComponentsSpec) DeepCopyInto

func (in *RisingWaveComponentsSpec) DeepCopyInto(out *RisingWaveComponentsSpec)

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

type RisingWaveCondition

type RisingWaveCondition struct {
	// Type of the condition
	Type RisingWaveConditionType `json:"type"`

	// Status of the condition
	Status metav1.ConditionStatus `json:"status"`

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

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

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

RisingWaveCondition indicates a condition of RisingWave.

func (*RisingWaveCondition) DeepCopy

func (in *RisingWaveCondition) DeepCopy() *RisingWaveCondition

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

func (*RisingWaveCondition) DeepCopyInto

func (in *RisingWaveCondition) DeepCopyInto(out *RisingWaveCondition)

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

type RisingWaveConditionType

type RisingWaveConditionType string

RisingWaveConditionType is the condition type of RisingWave.

const (
	RisingWaveConditionRunning      RisingWaveConditionType = "Running"
	RisingWaveConditionInitializing RisingWaveConditionType = "Initializing"
	RisingWaveConditionUpgrading    RisingWaveConditionType = "Upgrading"
	RisingWaveConditionFailed       RisingWaveConditionType = "Failed"
	RisingWaveConditionUnknown      RisingWaveConditionType = "Unknown"
)

These are valid value of RisingWaveConditionType.

type RisingWaveConfigurationSpec

type RisingWaveConfigurationSpec struct {
	RisingWaveNodeConfiguration `json:",inline"`
}

RisingWaveConfigurationSpec is the configuration spec.

func (*RisingWaveConfigurationSpec) DeepCopy

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

func (*RisingWaveConfigurationSpec) DeepCopyInto

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

type RisingWaveDBCredentials added in v0.6.3

type RisingWaveDBCredentials struct {
	// The name of the secret in the pod's namespace to select from.
	SecretName string `json:"secretName"`

	// UsernameKeyRef is the key of the secret to be the username. Must be a valid secret key.
	// Defaults to "username".
	// +kubebuilder:default=username
	UsernameKeyRef string `json:"usernameKeyRef,omitempty"`

	// PasswordKeyRef is the key of the secret to be the password. Must be a valid secret key.
	// Defaults to "password".
	// +kubebuilder:default=password
	PasswordKeyRef string `json:"passwordKeyRef,omitempty"`
}

RisingWaveDBCredentials is the reference and keys selector to the DB access credentials stored in a local secret.

func (*RisingWaveDBCredentials) DeepCopy added in v0.6.3

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

func (*RisingWaveDBCredentials) DeepCopyInto added in v0.6.3

func (in *RisingWaveDBCredentials) DeepCopyInto(out *RisingWaveDBCredentials)

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

type RisingWaveEtcdCredentials added in v0.3.5

type RisingWaveEtcdCredentials struct {
	// The name of the secret in the pod's namespace to select from.
	SecretName string `json:"secretName"`

	// UsernameKeyRef is the key of the secret to be the username. Must be a valid secret key.
	// Defaults to "username".
	// +kubebuilder:default=username
	UsernameKeyRef string `json:"usernameKeyRef,omitempty"`

	// PasswordKeyRef is the key of the secret to be the password. Must be a valid secret key.
	// Defaults to "password".
	// +kubebuilder:default=password
	PasswordKeyRef string `json:"passwordKeyRef,omitempty"`
}

RisingWaveEtcdCredentials is the reference and keys selector to the etcd access credentials stored in a local secret.

func (*RisingWaveEtcdCredentials) DeepCopy added in v0.3.5

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

func (*RisingWaveEtcdCredentials) DeepCopyInto added in v0.3.5

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

type RisingWaveGCSCredentials added in v0.3.5

type RisingWaveGCSCredentials struct {
	// UseWorkloadIdentity indicates to use workload identity to access the GCS service.
	// If this is enabled, secret is not required, and ADC is used.
	UseWorkloadIdentity *bool `json:"useWorkloadIdentity,omitempty"`

	// The name of the secret in the pod's namespace to select from.
	// +optional
	SecretName string `json:"secretName,omitempty"`

	// ServiceAccountCredentialsKeyRef is the key of the secret to be the service account credentials. Must be a valid secret key.
	// Defaults to "ServiceAccountCredentials".
	// +kubebuilder:default=ServiceAccountCredentials
	// +optional
	ServiceAccountCredentialsKeyRef string `json:"serviceAccountCredentialsKeyRef,omitempty"`
}

RisingWaveGCSCredentials is the reference and keys selector to the GCS access credentials stored in a local secret.

func (*RisingWaveGCSCredentials) DeepCopy added in v0.3.5

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

func (*RisingWaveGCSCredentials) DeepCopyInto added in v0.3.5

func (in *RisingWaveGCSCredentials) DeepCopyInto(out *RisingWaveGCSCredentials)

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

type RisingWaveGlobalReplicas

type RisingWaveGlobalReplicas struct {
	// Replicas of meta component. Replicas specified here is in a default group (with empty name ”).
	// +optional
	// +kubebuilder:validation:Minimum=0
	Meta int32 `json:"meta,omitempty"`

	// Replicas of frontend component. Replicas specified here is in a default group (with empty name ”).
	// +optional
	// +kubebuilder:validation:Minimum=0
	Frontend int32 `json:"frontend,omitempty"`

	// Replicas of compute component. Replicas specified here is in a default group (with empty name ”).
	// +optional
	// +kubebuilder:validation:Minimum=0
	Compute int32 `json:"compute,omitempty"`

	// Replicas of compactor component. Replicas specified here is in a default group (with empty name ”).
	// +optional
	// +kubebuilder:validation:Minimum=0
	Compactor int32 `json:"compactor,omitempty"`
}

RisingWaveGlobalReplicas are the replicas of each component, declared in global scope.

func (*RisingWaveGlobalReplicas) DeepCopy

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

func (*RisingWaveGlobalReplicas) DeepCopyInto

func (in *RisingWaveGlobalReplicas) DeepCopyInto(out *RisingWaveGlobalReplicas)

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

type RisingWaveHuaweiCloudOBSCredentials added in v0.5.8

type RisingWaveHuaweiCloudOBSCredentials struct {
	// The name of the secret in the pod's namespace to select from.
	SecretName string `json:"secretName"`

	// AccessKeyIDRef is the key of the secret to be the access key. Must be a valid secret key.
	// Defaults to "AccessKeyIDRef".
	// +kubebuilder:default=AccessKeyIDRef
	AccessKeyIDRef string `json:"accessKeyIDRef,omitempty"`

	// AccessKeySecretRef is the key of the secret to be the secret access key. Must be a valid secret key.
	// Defaults to "AccessKeySecretRef".
	// +kubebuilder:default=AccessKeySecretRef
	AccessKeySecretRef string `json:"accessKeySecretRef,omitempty"`
}

RisingWaveHuaweiCloudOBSCredentials is the reference and keys selector to the HuaweiCloudOBS access credentials stored in a local secret.

func (*RisingWaveHuaweiCloudOBSCredentials) DeepCopy added in v0.5.8

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

func (*RisingWaveHuaweiCloudOBSCredentials) DeepCopyInto added in v0.5.8

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

type RisingWaveList

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

RisingWaveList contains a list of RisingWave.

func (*RisingWaveList) DeepCopy

func (in *RisingWaveList) DeepCopy() *RisingWaveList

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

func (*RisingWaveList) DeepCopyInto

func (in *RisingWaveList) DeepCopyInto(out *RisingWaveList)

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

func (*RisingWaveList) DeepCopyObject

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

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

type RisingWaveMetaStoreBackend added in v0.3.5

type RisingWaveMetaStoreBackend struct {
	// Memory indicates to store the metadata in memory. It is only for test usage and strongly
	// discouraged to be set in production. If one is using the memory storage for meta,
	// replicas will not work because they are not going to share the same metadata and any kinds
	// exit of the process will cause a permanent loss of the data.
	// +optional
	Memory *bool `json:"memory,omitempty"`

	// Stores metadata in etcd.
	// +optional
	Etcd *RisingWaveMetaStoreBackendEtcd `json:"etcd,omitempty"`

	// SQLite stores metadata in a SQLite DB file.
	// +optional
	SQLite *RisingWaveMetaStoreBackendSQLite `json:"sqlite,omitempty"`

	// MySQL stores metadata in a MySQL DB.
	// +optional
	MySQL *RisingWaveMetaStoreBackendMySQL `json:"mysql,omitempty"`

	// PostgreSQL stores metadata in a PostgreSQL DB.
	// +optional
	PostgreSQL *RisingWaveMetaStoreBackendPostgreSQL `json:"postgresql,omitempty"`
}

RisingWaveMetaStoreBackend is the collection of parameters for the meta store that RisingWave uses. Note that one and only one of the first-level fields could be set.

func (*RisingWaveMetaStoreBackend) DeepCopy added in v0.3.5

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

func (*RisingWaveMetaStoreBackend) DeepCopyInto added in v0.3.5

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

type RisingWaveMetaStoreBackendEtcd added in v0.3.5

type RisingWaveMetaStoreBackendEtcd struct {
	// RisingWaveEtcdCredentials is the credentials provider from a Secret. It could be optional to mean that
	// the etcd service could be accessed without authentication.
	// +optional
	*RisingWaveEtcdCredentials `json:"credentials,omitempty"`

	// Endpoint of etcd. It must be provided.
	Endpoint string `json:"endpoint"`

	// Secret contains the credentials of access the etcd, it must contain the following keys:
	//   * username
	//   * password
	// But it is an optional field. Empty value indicates etcd is available without authentication.
	// +optional
	// Deprecated: Please use "credentials" field instead. The "Secret" field will be removed in a future release.
	Secret string `json:"secret,omitempty"`
}

RisingWaveMetaStoreBackendEtcd is the collection of parameters for the etcd backend meta store.

func (*RisingWaveMetaStoreBackendEtcd) DeepCopy added in v0.3.5

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

func (*RisingWaveMetaStoreBackendEtcd) DeepCopyInto added in v0.3.5

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

type RisingWaveMetaStoreBackendMySQL added in v0.6.3

type RisingWaveMetaStoreBackendMySQL struct {
	// RisingWaveDBCredentials is the reference credentials. User must provide a secret contains
	// `username` and `password` (or one can customize the key references) keys and the correct values.
	RisingWaveDBCredentials `json:"credentials"`

	// Host of the MySQL DB.
	Host string `json:"host"`

	// Port of the MySQL DB. Defaults to 3306.
	// +kubebuilder:default=3306
	Port uint32 `json:"port"`

	// Database of the MySQL DB.
	Database string `json:"database"`

	// Options when connecting to the MySQL DB. Optional.
	// +optional
	Options map[string]string `json:"options,omitempty"`
}

RisingWaveMetaStoreBackendMySQL describes the options of MySQL DB backend.

func (*RisingWaveMetaStoreBackendMySQL) DeepCopy added in v0.6.3

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

func (*RisingWaveMetaStoreBackendMySQL) DeepCopyInto added in v0.6.3

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

type RisingWaveMetaStoreBackendPostgreSQL added in v0.6.3

type RisingWaveMetaStoreBackendPostgreSQL struct {
	// RisingWaveDBCredentials is the reference credentials. User must provide a secret contains
	// `username` and `password` (or one can customize the key references) keys and the correct values.
	RisingWaveDBCredentials `json:"credentials"`

	// Host of the PostgreSQL DB.
	Host string `json:"host"`

	// Port of the PostgreSQL DB. Defaults to 5432.
	// +kubebuilder:default=5432
	Port uint32 `json:"port"`

	// Database of the PostgreSQL DB.
	Database string `json:"database"`

	// Options when connecting to the PostgreSQL DB. Optional.
	// +optional
	Options map[string]string `json:"options,omitempty"`
}

RisingWaveMetaStoreBackendPostgreSQL describes the options of PostgreSQL DB backend.

func (*RisingWaveMetaStoreBackendPostgreSQL) DeepCopy added in v0.6.3

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

func (*RisingWaveMetaStoreBackendPostgreSQL) DeepCopyInto added in v0.6.3

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

type RisingWaveMetaStoreBackendSQLite added in v0.6.3

type RisingWaveMetaStoreBackendSQLite struct {
	// Path of the DB file.
	Path string `json:"path"`
}

RisingWaveMetaStoreBackendSQLite describes the options of SQLite DB backend.

func (*RisingWaveMetaStoreBackendSQLite) DeepCopy added in v0.6.3

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

func (*RisingWaveMetaStoreBackendSQLite) DeepCopyInto added in v0.6.3

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

type RisingWaveMetaStoreBackendType added in v0.3.5

type RisingWaveMetaStoreBackendType string

RisingWaveMetaStoreBackendType is the type for the meta store backends.

const (
	RisingWaveMetaStoreBackendTypeMemory     RisingWaveMetaStoreBackendType = "Memory"
	RisingWaveMetaStoreBackendTypeEtcd       RisingWaveMetaStoreBackendType = "Etcd"
	RisingWaveMetaStoreBackendTypePostgreSQL RisingWaveMetaStoreBackendType = "PostgreSQL"
	RisingWaveMetaStoreBackendTypeMySQL      RisingWaveMetaStoreBackendType = "MySQL"
	RisingWaveMetaStoreBackendTypeSQLite     RisingWaveMetaStoreBackendType = "SQLite"
	RisingWaveMetaStoreBackendTypeUnknown    RisingWaveMetaStoreBackendType = "Unknown"
)

All valid meta store backend types.

type RisingWaveMetaStoreStatus added in v0.3.5

type RisingWaveMetaStoreStatus struct {
	// Backend type of the meta store.
	Backend RisingWaveMetaStoreBackendType `json:"backend,omitempty"`
}

RisingWaveMetaStoreStatus is the status of the meta store.

func (*RisingWaveMetaStoreStatus) DeepCopy added in v0.3.5

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

func (*RisingWaveMetaStoreStatus) DeepCopyInto added in v0.3.5

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

type RisingWaveMinIOCredentials added in v0.3.5

type RisingWaveMinIOCredentials struct {
	// The name of the secret in the pod's namespace to select from.
	SecretName string `json:"secretName"`

	// UsernameKeyRef is the key of the secret to be the username. Must be a valid secret key.
	// Defaults to "username".
	// +kubebuilder:default=username
	UsernameKeyRef string `json:"usernameKeyRef,omitempty"`

	// PasswordKeyRef is the key of the secret to be the password. Must be a valid secret key.
	// Defaults to "password".
	// +kubebuilder:default=password
	PasswordKeyRef string `json:"passwordKeyRef,omitempty"`
}

RisingWaveMinIOCredentials is the reference and keys selector to the MinIO access credentials stored in a local secret.

func (*RisingWaveMinIOCredentials) DeepCopy added in v0.3.5

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

func (*RisingWaveMinIOCredentials) DeepCopyInto added in v0.3.5

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

type RisingWaveNodeConfiguration added in v0.4.0

type RisingWaveNodeConfiguration struct {
	// ConfigMap where the `risingwave.toml` locates.
	ConfigMap *RisingWaveNodeConfigurationConfigMapSource `json:"configMap,omitempty"`

	// Secret where the `risingwave.toml` locates.
	Secret *RisingWaveNodeConfigurationSecretSource `json:"secret,omitempty"`
}

RisingWaveNodeConfiguration determines where the configurations are from, either ConfigMap, Secret, or raw string.

func (*RisingWaveNodeConfiguration) DeepCopy added in v0.4.0

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

func (*RisingWaveNodeConfiguration) DeepCopyInto added in v0.4.0

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

type RisingWaveNodeConfigurationConfigMapSource added in v0.4.0

type RisingWaveNodeConfigurationConfigMapSource struct {
	// Name determines the ConfigMap to provide the configs RisingWave requests. It will be mounted on the Pods
	// directly. It the ConfigMap isn't provided, the controller will use empty value as the configs.
	// +optional
	Name string `json:"name,omitempty"`

	// Key to the configuration file. Defaults to `risingwave.toml`.
	// +kubebuilder:default=risingwave.toml
	// +optional
	Key string `json:"key,omitempty"`

	// Optional determines if the key must exist in the ConfigMap. Defaults to false.
	// +optional
	Optional *bool `json:"optional,omitempty"`
}

RisingWaveNodeConfigurationConfigMapSource refers to a ConfigMap where the RisingWave configuration is stored.

func (*RisingWaveNodeConfigurationConfigMapSource) DeepCopy added in v0.4.0

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

func (*RisingWaveNodeConfigurationConfigMapSource) DeepCopyInto added in v0.4.0

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

type RisingWaveNodeConfigurationSecretSource added in v0.4.0

type RisingWaveNodeConfigurationSecretSource struct {
	// Name determines the Secret to provide the configs RisingWave requests. It will be mounted on the Pods
	// directly. It the Secret isn't provided, the controller will use empty value as the configs.
	// +optional
	Name string `json:"name,omitempty"`

	// Key to the configuration file. Defaults to `risingwave.toml`.
	// +kubebuilder:default=risingwave.toml
	// +optional
	Key string `json:"key,omitempty"`

	// Optional determines if the key must exist in the Secret. Defaults to false.
	// +optional
	Optional *bool `json:"optional,omitempty"`
}

RisingWaveNodeConfigurationSecretSource refers to a Secret where the RisingWave configuration is stored.

func (*RisingWaveNodeConfigurationSecretSource) DeepCopy added in v0.4.0

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

func (*RisingWaveNodeConfigurationSecretSource) DeepCopyInto added in v0.4.0

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

type RisingWaveNodeContainer added in v0.4.0

type RisingWaveNodeContainer struct {
	// Container image name.
	// More info: https://kubernetes.io/docs/concepts/containers/images
	// This field is optional to allow higher level config management to default or override
	// container images in workload controllers like Deployments and StatefulSets.
	// +optional
	Image string `json:"image,omitempty" protobuf:"bytes,2,opt,name=image"`

	// List of sources to populate environment variables in the container.
	// The keys defined within a source must be a C_IDENTIFIER. All invalid keys
	// will be reported as an event when the container is starting. When a key exists in multiple
	// sources, the value associated with the last source will take precedence.
	// Values defined by an Env with a duplicate key will take precedence.
	// Cannot be updated.
	// +optional
	EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty" protobuf:"bytes,19,rep,name=envFrom"`
	// List of environment variables to set in the container.
	// Cannot be updated.
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	Env []corev1.EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,7,rep,name=env"`

	// Compute Resources required by this container.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,8,opt,name=resources"`

	// Pod volumes to mount into the container's filesystem.
	// Cannot be updated.
	// +optional
	// +patchMergeKey=mountPath
	// +patchStrategy=merge
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"mountPath" protobuf:"bytes,9,rep,name=volumeMounts"`

	// volumeDevices is the list of block devices to be used by the container.
	// +patchMergeKey=devicePath
	// +patchStrategy=merge
	// +optional
	VolumeDevices []corev1.VolumeDevice `json:"volumeDevices,omitempty" patchStrategy:"merge" patchMergeKey:"devicePath" protobuf:"bytes,21,rep,name=volumeDevices"`

	// 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
	// +optional
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty" protobuf:"bytes,14,opt,name=imagePullPolicy,casttype=PullPolicy"`

	// SecurityContext defines the security options the container should be run with.
	// If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty" protobuf:"bytes,15,opt,name=securityContext"`
}

RisingWaveNodeContainer determines the container specs of a RisingWave node.

func (*RisingWaveNodeContainer) DeepCopy added in v0.4.0

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

func (*RisingWaveNodeContainer) DeepCopyInto added in v0.4.0

func (in *RisingWaveNodeContainer) DeepCopyInto(out *RisingWaveNodeContainer)

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

type RisingWaveNodeGroup added in v0.4.0

type RisingWaveNodeGroup struct {
	// Name of the node group.
	// +kubebuilder:default=""
	Name string `json:"name"`

	// Replicas of Pods in this group.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=0
	Replicas int32 `json:"replicas,omitempty"`

	// RestartAt is the time that the Pods under the group should be restarted. Setting a value on this field will
	// trigger a full recreation of the Pods. Defaults to nil.
	RestartAt *metav1.Time `json:"restartAt,omitempty"`

	// Configuration determines the configuration to be used for the RisingWave nodes.
	// +optional
	Configuration *RisingWaveNodeConfiguration `json:"configuration,omitempty"`

	// Upgrade strategy for the components. By default, it is the same as the
	// workload's default strategy that the component is deployed with.
	// Note: the maxSurge will not take effect for the compute component.
	// +optional
	// +patchStrategy=retainKeys
	UpgradeStrategy RisingWaveNodeGroupUpgradeStrategy `json:"upgradeStrategy,omitempty"`

	// Minimum number of seconds for which a newly created pod should be ready
	// without any of its container crashing for it to be considered available.
	// Defaults to 0 (pod will be considered available as soon as it is ready)
	// +optional
	MinReadySeconds int32 `json:"minReadySeconds,omitempty" protobuf:"varint,9,opt,name=minReadySeconds"`

	// volumeClaimTemplates is a list of claims that pods are allowed to reference.
	// The StatefulSet controller is responsible for mapping network identities to
	// claims in a way that maintains the identity of a pod. Every claim in
	// this list must have at least one matching (by name) volumeMount in one
	// container in the template. A claim in this list takes precedence over
	// any volumes in the template, with the same name.
	// +optional
	VolumeClaimTemplates []PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty" protobuf:"bytes,4,rep,name=volumeClaimTemplates"`

	// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent
	// volume claims created from volumeClaimTemplates. By default, all persistent
	// volume claims are created as needed and retained until manually deleted. This
	// policy allows the lifecycle to be altered, for example by deleting persistent
	// volume claims when their stateful set is deleted, or when their pod is scaled
	// down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled,
	// which is alpha.
	// +optional
	PersistentVolumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty" protobuf:"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy"`

	// The maximum time in seconds for a deployment to make progress before it
	// is considered to be failed. The deployment controller will continue to
	// process failed deployments and a condition with a ProgressDeadlineExceeded
	// reason will be surfaced in the deployment status. Note that progress will
	// not be estimated during the time a deployment is paused. Defaults to 600s.
	ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty" protobuf:"varint,9,opt,name=progressDeadlineSeconds"`

	// Template tells how the Pod should be started. It is an optional field. If it's empty, then the pod template in
	// the first-level fields under spec will be used.
	// +optional
	Template RisingWaveNodePodTemplate `json:"template,omitempty"`
}

RisingWaveNodeGroup is the definition of a group of RisingWave nodes of the same component.

func (*RisingWaveNodeGroup) DeepCopy added in v0.4.0

func (in *RisingWaveNodeGroup) DeepCopy() *RisingWaveNodeGroup

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

func (*RisingWaveNodeGroup) DeepCopyInto added in v0.4.0

func (in *RisingWaveNodeGroup) DeepCopyInto(out *RisingWaveNodeGroup)

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

type RisingWaveNodeGroupRollingUpdate added in v0.4.0

type RisingWaveNodeGroupRollingUpdate struct {
	// The maximum number of pods that can be unavailable during the update.
	// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
	// Absolute number is calculated from percentage by rounding down.
	// Defaults to 25%.
	// +optional
	// +kubebuilder:default="25%"
	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,1,opt,name=maxUnavailable"`

	// Partition is the desired number of pods in old revisions.
	// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
	// Absolute number is calculated from percentage by rounding up by default.
	// It means when partition is set during pods updating, (replicas - partition value) number of pods will be updated.
	// Default value is 0.
	// +optional
	// +kubebuilder:default=0
	Partition *intstr.IntOrString `json:"partition,omitempty"`

	// The maximum number of pods that can be scheduled above the desired replicas during update or specified delete.
	// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
	// Absolute number is calculated from percentage by rounding up.
	// Defaults to 0.
	// +optional
	// +kubebuilder:default=0
	MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"`
}

RisingWaveNodeGroupRollingUpdate is the spec to define rolling update strategies.

func (*RisingWaveNodeGroupRollingUpdate) DeepCopy added in v0.4.0

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

func (*RisingWaveNodeGroupRollingUpdate) DeepCopyInto added in v0.4.0

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

type RisingWaveNodeGroupStatus added in v0.4.0

type RisingWaveNodeGroupStatus struct {
	// Name of the node group.
	Name string `json:"name"`

	// WorkloadReplicaStatus is the replica status of the node group.
	WorkloadReplicaStatus `json:",inline"`

	// Existence status of the node group.
	Exists bool `json:"exists,omitempty"`
}

RisingWaveNodeGroupStatus is the status of a node group.

func (*RisingWaveNodeGroupStatus) DeepCopy added in v0.4.0

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

func (*RisingWaveNodeGroupStatus) DeepCopyInto added in v0.4.0

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

type RisingWaveNodeGroupUpgradeStrategy added in v0.4.0

type RisingWaveNodeGroupUpgradeStrategy struct {
	// Type of upgrade. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.
	// +optional
	// +kubebuilder:default=RollingUpdate
	// +kubebuilder:validation:Enum=Recreate;RollingUpdate;InPlaceIfPossible;InPlaceOnly
	Type RisingWaveNodeGroupUpgradeStrategyType `json:"type,omitempty"`

	// Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.
	// +optional
	RollingUpdate *RisingWaveNodeGroupRollingUpdate `json:"rollingUpdate,omitempty"`

	// InPlaceUpdateStrategy contains strategies for in-place update.
	// +optional
	InPlaceUpdateStrategy *kruisepubs.InPlaceUpdateStrategy `json:"inPlaceUpdateStrategy,omitempty"`
}

RisingWaveNodeGroupUpgradeStrategy is the spec of upgrade strategy used by RisingWave.

func (*RisingWaveNodeGroupUpgradeStrategy) DeepCopy added in v0.4.0

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

func (*RisingWaveNodeGroupUpgradeStrategy) DeepCopyInto added in v0.4.0

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

type RisingWaveNodeGroupUpgradeStrategyType added in v0.4.0

type RisingWaveNodeGroupUpgradeStrategyType string

RisingWaveNodeGroupUpgradeStrategyType is the type of upgrade strategies used in RisingWave.

const (
	RisingWaveUpgradeStrategyTypeRecreate          RisingWaveNodeGroupUpgradeStrategyType = "Recreate"
	RisingWaveUpgradeStrategyTypeRollingUpdate     RisingWaveNodeGroupUpgradeStrategyType = "RollingUpdate"
	RisingWaveUpgradeStrategyTypeInPlaceIfPossible RisingWaveNodeGroupUpgradeStrategyType = "InPlaceIfPossible"
	RisingWaveUpgradeStrategyTypeInPlaceOnly       RisingWaveNodeGroupUpgradeStrategyType = "InPlaceOnly"
)

Valid values of RisingWaveNodeGroupUpgradeStrategyType.

type RisingWaveNodePodTemplate added in v0.4.0

type RisingWaveNodePodTemplate struct {
	// PartialObjectMeta tells the operator to add the specified metadata onto the Pod.
	ObjectMeta PartialObjectMeta `json:"metadata,omitempty"`

	// RisingWaveNodePodTemplateSpec determines the Pod spec to start the RisingWave pod.
	Spec RisingWaveNodePodTemplateSpec `json:"spec,omitempty"`
}

RisingWaveNodePodTemplate determines the Pod specs of a RisingWave node.

func (*RisingWaveNodePodTemplate) DeepCopy added in v0.4.0

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

func (*RisingWaveNodePodTemplate) DeepCopyInto added in v0.4.0

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

type RisingWaveNodePodTemplateSpec added in v0.4.0

type RisingWaveNodePodTemplateSpec struct {
	RisingWaveNodeContainer `json:",inline"`

	// List of volumes that can be mounted by containers belonging to the pod.
	// More info: https://kubernetes.io/docs/concepts/storage/volumes
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge,retainKeys
	Volumes []corev1.Volume `json:"volumes,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name" protobuf:"bytes,1,rep,name=volumes"`

	// 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.
	// +optional
	ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty" protobuf:"varint,5,opt,name=activeDeadlineSeconds"`

	// 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.
	// +optional
	TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty" protobuf:"varint,4,opt,name=terminationGracePeriodSeconds"`

	// 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'.
	// +optional
	// +kubebuilder:validation:Enum=ClusterFirst;ClusterFirstWithHostNet;Default;None
	DNSPolicy corev1.DNSPolicy `json:"dnsPolicy,omitempty" protobuf:"bytes,6,opt,name=dnsPolicy,casttype=DNSPolicy"`

	// 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/
	// +optional
	// +mapType=atomic
	NodeSelector map[string]string `json:"nodeSelector,omitempty" protobuf:"bytes,7,rep,name=nodeSelector"`

	// 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/
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty" protobuf:"bytes,8,opt,name=serviceAccountName"`

	// AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
	// +optional
	AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty" protobuf:"varint,21,opt,name=automountServiceAccountToken"`

	// Use the host's pid namespace.
	// Optional: Default to false.
	// +k8s:conversion-gen=false
	// +optional
	HostPID bool `json:"hostPID,omitempty" protobuf:"varint,12,opt,name=hostPID"`
	// Use the host's ipc namespace.
	// Optional: Default to false.
	// +k8s:conversion-gen=false
	// +optional
	HostIPC bool `json:"hostIPC,omitempty" protobuf:"varint,13,opt,name=hostIPC"`

	// Share a single process namespace between all of the containers in a pod.
	// When this is set containers will be able to view and signal processes from other containers
	// in the same pod, and the first process in each container will not be assigned PID 1.
	// HostPID and ShareProcessNamespace cannot both be set.
	// Optional: Default to false.
	// +k8s:conversion-gen=false
	// +optional
	ShareProcessNamespace *bool `json:"shareProcessNamespace,omitempty" protobuf:"varint,27,opt,name=shareProcessNamespace"`

	// SecurityContext holds pod-level security attributes and common container settings.
	// Optional: Defaults to empty.  See type description for default values of each field.
	// +optional
	SecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty" protobuf:"bytes,14,opt,name=securityContext"`

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

	// If specified, the pod's scheduling constraints
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty" protobuf:"bytes,18,opt,name=affinity"`

	// If specified, the pod will be dispatched by specified scheduler.
	// If not specified, the pod will be dispatched by default scheduler.
	// +optional
	SchedulerName string `json:"schedulerName,omitempty" protobuf:"bytes,19,opt,name=schedulerName"`

	// If specified, the pod's tolerations.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty" protobuf:"bytes,22,opt,name=tolerations"`

	// 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
	// +patchMergeKey=ip
	// +patchStrategy=merge
	HostAliases []corev1.HostAlias `json:"hostAliases,omitempty" patchStrategy:"merge" patchMergeKey:"ip" protobuf:"bytes,23,rep,name=hostAliases"`

	// If specified, indicates the pod's priority. "system-node-critical" and
	// "system-cluster-critical" are two special keywords which indicate the
	// highest priorities with the former being the highest priority. Any other
	// name must be defined by creating a PriorityClass object with that name.
	// If not specified, the pod priority will be default or zero if there is no
	// default.
	// +optional
	PriorityClassName string `json:"priorityClassName,omitempty" protobuf:"bytes,24,opt,name=priorityClassName"`

	// The priority value. Various system components use this field to find the
	// priority of the pod. When Priority Admission Controller is enabled, it
	// prevents users from setting this field. The admission controller populates
	// this field from PriorityClassName.
	// The higher the value, the higher the priority.
	// +optional
	Priority *int32 `json:"priority,omitempty" protobuf:"bytes,25,opt,name=priority"`

	// Specifies the DNS parameters of a pod.
	// Parameters specified here will be merged to the generated DNS
	// configuration based on DNSPolicy.
	// +optional
	DNSConfig *corev1.PodDNSConfig `json:"dnsConfig,omitempty" protobuf:"bytes,26,opt,name=dnsConfig"`

	// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
	// to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
	// If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
	// empty definition that uses the default runtime handler.
	// More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
	// +optional
	RuntimeClassName *string `json:"runtimeClassName,omitempty" protobuf:"bytes,29,opt,name=runtimeClassName"`

	// PreemptionPolicy is the Policy for preempting pods with lower priority.
	// One of Never, PreemptLowerPriority.
	// Defaults to PreemptLowerPriority if unset.
	// +optional
	PreemptionPolicy *corev1.PreemptionPolicy `json:"preemptionPolicy,omitempty" protobuf:"bytes,31,opt,name=preemptionPolicy"`

	// TopologySpreadConstraints describes how a group of pods ought to spread across topology
	// domains. Scheduler will schedule pods in a way which abides by the constraints.
	// All topologySpreadConstraints are ANDed.
	// +optional
	// +patchMergeKey=topologyKey
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=topologyKey
	// +listMapKey=whenUnsatisfiable
	TopologySpreadConstraints []corev1.TopologySpreadConstraint `` /* 147-byte string literal not displayed */

	// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).
	// In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).
	// In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN.
	// If a pod does not have FQDN, this has no effect.
	// Default to false.
	// +optional
	SetHostnameAsFQDN *bool `json:"setHostnameAsFQDN,omitempty" protobuf:"varint,35,opt,name=setHostnameAsFQDN"`

	// Specifies the OS of the containers in the pod.
	// Some pod and container fields are restricted if this is set.
	//
	// If the OS field is set to linux, the following fields must be unset:
	// -securityContext.windowsOptions
	//
	// If the OS field is set to windows, following fields must be unset:
	// - spec.hostPID
	// - spec.hostIPC
	// - spec.hostUsers
	// - spec.securityContext.seLinuxOptions
	// - spec.securityContext.seccompProfile
	// - spec.securityContext.fsGroup
	// - spec.securityContext.fsGroupChangePolicy
	// - spec.securityContext.sysctls
	// - spec.shareProcessNamespace
	// - spec.securityContext.runAsUser
	// - spec.securityContext.runAsGroup
	// - spec.securityContext.supplementalGroups
	// - spec.containers[*].securityContext.seLinuxOptions
	// - spec.containers[*].securityContext.seccompProfile
	// - spec.containers[*].securityContext.capabilities
	// - spec.containers[*].securityContext.readOnlyRootFilesystem
	// - spec.containers[*].securityContext.privileged
	// - spec.containers[*].securityContext.allowPrivilegeEscalation
	// - spec.containers[*].securityContext.procMount
	// - spec.containers[*].securityContext.runAsUser
	// - spec.containers[*].securityContext.runAsGroup
	// +optional
	OS *corev1.PodOS `json:"os,omitempty" protobuf:"bytes,36,opt,name=os"`

	// Use the host's user namespace.
	// Optional: Default to true.
	// If set to true or not present, the pod will be run in the host user namespace, useful
	// for when the pod needs a feature only available to the host user namespace, such as
	// loading a kernel module with CAP_SYS_MODULE.
	// When set to false, a new userns is created for the pod. Setting false is useful for
	// mitigating container breakout vulnerabilities even allowing users to run their
	// containers as root without actually having root privileges on the host.
	// This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.
	// +k8s:conversion-gen=false
	// +optional
	HostUsers *bool `json:"hostUsers,omitempty" protobuf:"bytes,37,opt,name=hostUsers"`

	// Additional containers to run in the same Pod. The containers will be appended to the Pod's containers array in order.
	// + optional
	AdditionalContainers []corev1.Container `json:"additionalContainers,omitempty"`
}

RisingWaveNodePodTemplateSpec is a template for a RisingWave's Pod.

func (*RisingWaveNodePodTemplateSpec) DeepCopy added in v0.4.0

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

func (*RisingWaveNodePodTemplateSpec) DeepCopyInto added in v0.4.0

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

type RisingWaveS3Credentials added in v0.3.5

type RisingWaveS3Credentials struct {
	// UseServiceAccount indicates whether to use the service account token mounted in the pod. It only works when using
	// the AWS S3. If this is enabled, secret and keys are ignored. Defaults to false.
	// +optional
	UseServiceAccount *bool `json:"useServiceAccount,omitempty"`

	// The name of the secret in the pod's namespace to select from.
	SecretName string `json:"secretName,omitempty"`

	// AccessKeyRef is the key of the secret to be the access key. Must be a valid secret key.
	// Defaults to "AccessKeyID".
	// +kubebuilder:default=AccessKeyID
	AccessKeyRef string `json:"accessKeyRef,omitempty"`

	// SecretAccessKeyRef is the key of the secret to be the secret access key. Must be a valid secret key.
	// Defaults to "SecretAccessKey".
	// +kubebuilder:default=SecretAccessKey
	SecretAccessKeyRef string `json:"secretAccessKeyRef,omitempty"`
}

RisingWaveS3Credentials is the reference and keys selector to the AWS access credentials stored in a local secret.

func (*RisingWaveS3Credentials) DeepCopy added in v0.3.5

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

func (*RisingWaveS3Credentials) DeepCopyInto added in v0.3.5

func (in *RisingWaveS3Credentials) DeepCopyInto(out *RisingWaveS3Credentials)

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

type RisingWaveScaleView added in v0.2.2

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

	Spec   RisingWaveScaleViewSpec   `json:"spec,omitempty"`
	Status RisingWaveScaleViewStatus `json:"status,omitempty"`
}

RisingWaveScaleView is the struct for RisingWaveScaleView.

func (*RisingWaveScaleView) DeepCopy added in v0.2.2

func (in *RisingWaveScaleView) DeepCopy() *RisingWaveScaleView

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

func (*RisingWaveScaleView) DeepCopyInto added in v0.2.2

func (in *RisingWaveScaleView) DeepCopyInto(out *RisingWaveScaleView)

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

func (*RisingWaveScaleView) DeepCopyObject added in v0.2.2

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

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

type RisingWaveScaleViewList added in v0.2.2

type RisingWaveScaleViewList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []RisingWaveScaleView `json:"items"`
}

RisingWaveScaleViewList contains a list of RisingWaveScaleViews.

func (*RisingWaveScaleViewList) DeepCopy added in v0.2.2

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

func (*RisingWaveScaleViewList) DeepCopyInto added in v0.2.2

func (in *RisingWaveScaleViewList) DeepCopyInto(out *RisingWaveScaleViewList)

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

func (*RisingWaveScaleViewList) DeepCopyObject added in v0.2.2

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

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

type RisingWaveScaleViewLock added in v0.2.2

type RisingWaveScaleViewLock struct {
	// Name of the owned RisingWaveScaleView object.
	Name string `json:"name"`

	// UID of the owned RisingWaveScaleView object.
	UID types.UID `json:"uid"`

	// Component of the lock.
	Component string `json:"component"`

	// Generation of the lock.
	Generation int64 `json:"generation"`

	// Group locks.
	// +listType=map
	// +listMapKey=name
	GroupLocks []RisingWaveScaleViewLockGroupLock `json:"groupLocks,omitempty"`
}

RisingWaveScaleViewLock is a lock record for RisingWaveScaleViews. For example, if there's a RisingWaveScaleView targets the current RisingWave, the controller will try to create a new RisingWaveScaleViewLock with the name, uid, target component, generation, and the replicas of targeting groups of the RisingWaveScaleView. After the record is set, the validation webhook will reject any updates on the replicas of any targeting group that doesn't equal the replicas recorded, which makes it a lock similar thing.

func (*RisingWaveScaleViewLock) DeepCopy added in v0.2.2

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

func (*RisingWaveScaleViewLock) DeepCopyInto added in v0.2.2

func (in *RisingWaveScaleViewLock) DeepCopyInto(out *RisingWaveScaleViewLock)

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

type RisingWaveScaleViewLockGroupLock added in v0.2.2

type RisingWaveScaleViewLockGroupLock struct {
	// Group name.
	Name string `json:"name"`

	// Locked replica value.
	Replicas int32 `json:"replicas,omitempty"`
}

RisingWaveScaleViewLockGroupLock is the lock record of RisingWaveScaleView.

func (*RisingWaveScaleViewLockGroupLock) DeepCopy added in v0.2.2

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

func (*RisingWaveScaleViewLockGroupLock) DeepCopyInto added in v0.2.2

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

type RisingWaveScaleViewSpec added in v0.2.2

type RisingWaveScaleViewSpec struct {
	// Reference of the target RisingWave.
	TargetRef RisingWaveScaleViewTargetRef `json:"targetRef,omitempty"`

	// Desired replicas.
	Replicas *int32 `json:"replicas,omitempty"`

	// Serialized label selector. Would be set by the webhook.
	LabelSelector string `json:"labelSelector,omitempty"`

	// An array of groups and the policies for scale, optional and empty means the default group with the default policy.
	// +listType=map
	// +listMapKey=group
	ScalePolicy []RisingWaveScaleViewSpecScalePolicy `json:"scalePolicy,omitempty"`
}

RisingWaveScaleViewSpec is the spec of RisingWaveScaleView.

func (*RisingWaveScaleViewSpec) DeepCopy added in v0.2.2

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

func (*RisingWaveScaleViewSpec) DeepCopyInto added in v0.2.2

func (in *RisingWaveScaleViewSpec) DeepCopyInto(out *RisingWaveScaleViewSpec)

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

type RisingWaveScaleViewSpecScalePolicy added in v0.2.2

type RisingWaveScaleViewSpecScalePolicy struct {
	// Group name.
	Group string `json:"group"`

	// 0-10, optional. The groups will be sorted by the priority and the current replicas.
	// The higher it is, the more replicas of the target group will be considered kept, i.e. scale out first, scale in last.
	// +optional
	Priority int32 `json:"priority,omitempty"`

	// MaxReplicas is the limit of the replicas.
	// +kubebuilder:validation:Maximum=5000
	MaxReplicas *int32 `json:"maxReplicas,omitempty"`
}

RisingWaveScaleViewSpecScalePolicy is the scale policy of a group.

func (*RisingWaveScaleViewSpecScalePolicy) DeepCopy added in v0.2.2

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

func (*RisingWaveScaleViewSpecScalePolicy) DeepCopyInto added in v0.2.2

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

type RisingWaveScaleViewSpecScalePolicyConstraints added in v0.2.2

type RisingWaveScaleViewSpecScalePolicyConstraints struct {
	// Maximum value of the replicas.
	// +kubebuilder:validation:Maximum=1000
	Max int32 `json:"max,omitempty"`
}

RisingWaveScaleViewSpecScalePolicyConstraints is the constraints of replicas in scale policy.

func (*RisingWaveScaleViewSpecScalePolicyConstraints) DeepCopy added in v0.2.2

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

func (*RisingWaveScaleViewSpecScalePolicyConstraints) DeepCopyInto added in v0.2.2

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

type RisingWaveScaleViewStatus added in v0.2.2

type RisingWaveScaleViewStatus struct {
	// Running replicas.
	Replicas *int32 `json:"replicas,omitempty"`

	// Lock status.
	Locked bool `json:"locked,omitempty"`
}

RisingWaveScaleViewStatus is the status of RisingWaveScaleView.

func (*RisingWaveScaleViewStatus) DeepCopy added in v0.2.2

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

func (*RisingWaveScaleViewStatus) DeepCopyInto added in v0.2.2

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

type RisingWaveScaleViewTargetRef added in v0.2.2

type RisingWaveScaleViewTargetRef struct {
	// Name of the RisingWave object.
	Name string `json:"name"`

	// Component name. Must be one of meta, frontend, compute, and compactor.
	// +kubebuilder:validation:Enum=meta;frontend;compute;compactor
	Component string `json:"component"`

	// UID of the target RisingWave object. Should be set by the mutating webhook.
	UID types.UID `json:"uid,omitempty"`
}

RisingWaveScaleViewTargetRef is the reference of the target RisingWave.

func (*RisingWaveScaleViewTargetRef) DeepCopy added in v0.2.2

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

func (*RisingWaveScaleViewTargetRef) DeepCopyInto added in v0.2.2

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

type RisingWaveSpec

type RisingWaveSpec struct {
	// The spec of ports and some controllers (such as `restartAt`) of each component,
	// as well as an advanced concept called `group` to override the global template and create groups
	// of Pods, e.g., deployment in hybrid-arch cluster.
	Components RisingWaveComponentsSpec `json:"components,omitempty"`

	// The spec of configuration template for RisingWave.
	Configuration RisingWaveConfigurationSpec `json:"configuration,omitempty"`

	// Flag to indicate if OpenKruise should be enabled for components.
	// If enabled, CloneSets will be used for meta/frontend/compactor nodes
	// and Advanced StateFulSets will be used for compute nodes.
	// +optional
	// +kubebuilder:default=false
	EnableOpenKruise *bool `json:"enableOpenKruise,omitempty"`

	// Flag to indicate if a default ServiceMonitor (from Prometheus operator) should be created by the controller.
	// False and an empty value means the ServiceMonitor won't be created automatically. But even if it's set to true,
	// the controller will determine if it can create the resource by checking if the CRDs are installed.
	// +optional
	EnableDefaultServiceMonitor *bool `json:"enableDefaultServiceMonitor,omitempty"`

	// Flag to indicate if full kubernetes address should be enabled for components.
	// If enabled, address will be [<pod>.]<service>.<namespace>.svc. Otherwise, it will be [<pod>.]<service>.
	// Enabling this flag on existing RisingWave will cause incompatibility.
	// +optional
	// +kubebuilder:default=false
	EnableFullKubernetesAddr *bool `json:"enableFullKubernetesAddr,omitempty"`

	// Flag to control whether to deploy in standalone mode or distributed mode. If standalone mode is used,
	// spec.components will be ignored. Standalone mode can be turned on/off dynamically.
	// +optional
	// +kubebuilder:default=false
	EnableStandaloneMode *bool `json:"enableStandaloneMode,omitempty"`

	// Image for RisingWave component.
	Image string `json:"image"`

	// FrontendServiceType determines the service type of the frontend service. Defaults to ClusterIP.
	// +optional
	// +kubebuilder:default=ClusterIP
	// +kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer
	FrontendServiceType corev1.ServiceType `json:"frontendServiceType,omitempty"`

	// AdditionalFrontendServiceMetadata tells the operator to add the specified metadata onto the frontend Service.
	// Note that the system reserved labels and annotations are not valid and will be rejected by the webhook.
	AdditionalFrontendServiceMetadata PartialObjectMeta `json:"additionalFrontendServiceMetadata,omitempty"`

	// MetaStore determines which backend the meta store will use and the parameters for it. Defaults to memory.
	// But keep in mind that memory backend is not recommended in production.
	// +kubebuilder:default={memory: true}
	MetaStore RisingWaveMetaStoreBackend `json:"metaStore,omitempty"`

	// StateStore determines which backend the state store will use and the parameters for it. Defaults to memory.
	// But keep in mind that memory backend is not recommended in production.
	// +kubebuilder:default={memory: true}
	StateStore RisingWaveStateStoreBackend `json:"stateStore,omitempty"`
}

RisingWaveSpec is the overall spec.

func (*RisingWaveSpec) DeepCopy

func (in *RisingWaveSpec) DeepCopy() *RisingWaveSpec

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

func (*RisingWaveSpec) DeepCopyInto

func (in *RisingWaveSpec) DeepCopyInto(out *RisingWaveSpec)

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

type RisingWaveStandaloneComponent added in v0.5.4

type RisingWaveStandaloneComponent struct {
	// LogLevel controls the log level of the running nodes. It can be in any format that the underlying component supports,
	// e.g., in the RUST_LOG format for Rust programs. Defaults to INFO.
	// +kubebuilder:default=INFO
	LogLevel string `json:"logLevel,omitempty"`

	// DisallowPrintStackTraces determines if the stack traces are allowed to print when panic happens. This options applies
	// to both Rust and Java programs. Defaults to false.
	// +optional
	DisallowPrintStackTraces *bool `json:"disallowPrintStackTraces,omitempty"`

	// RestartAt is the time that the Pods under the group should be restarted. Setting a value on this field will
	// trigger a full recreation of the Pods. Defaults to nil.
	RestartAt *metav1.Time `json:"restartAt,omitempty"`

	// Replicas is the number of the standalone Pods. Maximum is 1. Defaults to 1.
	// +kubebuilder:default=1
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=1
	Replicas int32 `json:"replicas"`

	// Upgrade strategy for the components. By default, it is the same as the
	// workload's default strategy that the component is deployed with.
	// Note: the maxSurge will not take effect for the compute component.
	// +optional
	// +patchStrategy=retainKeys
	UpgradeStrategy RisingWaveNodeGroupUpgradeStrategy `json:"upgradeStrategy,omitempty"`

	// Minimum number of seconds for which a newly created pod should be ready
	// without any of its container crashing for it to be considered available.
	// Defaults to 0 (pod will be considered available as soon as it is ready)
	// +optional
	MinReadySeconds int32 `json:"minReadySeconds,omitempty" protobuf:"varint,9,opt,name=minReadySeconds"`

	// volumeClaimTemplates is a list of claims that pods are allowed to reference.
	// The StatefulSet controller is responsible for mapping network identities to
	// claims in a way that maintains the identity of a pod. Every claim in
	// this list must have at least one matching (by name) volumeMount in one
	// container in the template. A claim in this list takes precedence over
	// any volumes in the template, with the same name.
	// +optional
	VolumeClaimTemplates []PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty" protobuf:"bytes,4,rep,name=volumeClaimTemplates"`

	// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent
	// volume claims created from volumeClaimTemplates. By default, all persistent
	// volume claims are created as needed and retained until manually deleted. This
	// policy allows the lifecycle to be altered, for example by deleting persistent
	// volume claims when their stateful set is deleted, or when their pod is scaled
	// down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled,
	// which is alpha.
	// +optional
	PersistentVolumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty" protobuf:"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy"`

	// The maximum time in seconds for a deployment to make progress before it
	// is considered to be failed. The deployment controller will continue to
	// process failed deployments and a condition with a ProgressDeadlineExceeded
	// reason will be surfaced in the deployment status. Note that progress will
	// not be estimated during the time a deployment is paused. Defaults to 600s.
	ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty" protobuf:"varint,9,opt,name=progressDeadlineSeconds"`

	// Template tells how the Pod should be started. It is an optional field. If it's empty, then the pod template in
	// the first-level fields under spec will be used.
	// +optional
	Template RisingWaveNodePodTemplate `json:"template,omitempty"`
}

RisingWaveStandaloneComponent contains the spec for standalone component.

func (*RisingWaveStandaloneComponent) DeepCopy added in v0.5.4

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

func (*RisingWaveStandaloneComponent) DeepCopyInto added in v0.5.4

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

type RisingWaveStateStoreBackend added in v0.3.5

type RisingWaveStateStoreBackend struct {
	// DataDirectory is the directory to store the data in the object storage.
	// Defaults to hummock.
	// +kubebuilder:default=hummock
	// +kubebuilder:validation:Pattern="^[0-9a-zA-Z_/-]{1,}$"
	DataDirectory string `json:"dataDirectory,omitempty"`

	// Memory indicates to store the data in memory. It's only for test usage and strongly discouraged to
	// be used in production.
	// +optional
	Memory *bool `json:"memory,omitempty"`

	// Local indicates to store the data in local disk. It's only for test usage and strongly discouraged to
	// be used in production.
	// +optional
	LocalDisk *RisingWaveStateStoreBackendLocalDisk `json:"localDisk,omitempty"`

	// MinIO storage spec.
	// +optional
	MinIO *RisingWaveStateStoreBackendMinIO `json:"minio,omitempty"`

	// S3 storage spec.
	// +optional
	S3 *RisingWaveStateStoreBackendS3 `json:"s3,omitempty"`

	// GCS storage spec.
	// +optional
	GCS *RisingWaveStateStoreBackendGCS `json:"gcs,omitempty"`

	// AliyunOSS storage spec.
	// +optional
	AliyunOSS *RisingWaveStateStoreBackendAliyunOSS `json:"aliyunOSS,omitempty"`

	// Azure Blob storage spec.
	// +optional
	AzureBlob *RisingWaveStateStoreBackendAzureBlob `json:"azureBlob,omitempty"`

	// HDFS storage spec.
	// +optional
	HDFS *RisingWaveStateStoreBackendHDFS `json:"hdfs,omitempty"`

	// WebHDFS storage spec.
	// +optional
	WebHDFS *RisingWaveStateStoreBackendHDFS `json:"webhdfs,omitempty"`

	// HuaweiCloudOBS storage spec.
	// +optional
	HuaweiCloudOBS *RisingWaveStateStoreBackendHuaweiCloudOBS `json:"huaweiCloudOBS,omitempty"`
}

RisingWaveStateStoreBackend is the collection of parameters for the state store that RisingWave uses. Note that one and only one of the first-level fields could be set.

func (*RisingWaveStateStoreBackend) DeepCopy added in v0.3.5

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

func (*RisingWaveStateStoreBackend) DeepCopyInto added in v0.3.5

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

type RisingWaveStateStoreBackendAliyunOSS added in v0.3.5

type RisingWaveStateStoreBackendAliyunOSS struct {
	// RisingWaveAliyunOSSCredentials is the credentials provider from a Secret.
	RisingWaveAliyunOSSCredentials `json:"credentials"`

	// Bucket name of your AliyunOSS
	// +kubebuilder:validation:Required
	Bucket string `json:"bucket"`

	// Working directory root of the Aliyun OSS.
	// +kubebuilder:validation:Required
	Root string `json:"root"`

	// Region of Aliyun OSS service
	// +kubebuilder:validation:Required
	Region string `json:"region,omitempty"`

	// InternalEndpoint indicates if we use the internal endpoint to access Aliyun OSS, which is
	// only available in the internal network.
	// +kubebuilder:validation:Required
	InternalEndpoint bool `json:"internalEndpoint,omitempty"`
}

RisingWaveStateStoreBackendAliyunOSS is the details of AliyunOSS for compute and compactor components.

func (*RisingWaveStateStoreBackendAliyunOSS) DeepCopy added in v0.3.5

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

func (*RisingWaveStateStoreBackendAliyunOSS) DeepCopyInto added in v0.3.5

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

type RisingWaveStateStoreBackendAzureBlob added in v0.3.5

type RisingWaveStateStoreBackendAzureBlob struct {
	// RisingWaveAzureBlobCredentials is the credentials provider from a Secret.
	RisingWaveAzureBlobCredentials `json:"credentials"`

	// Container Name of the Azure Blob service.
	// +kubebuilder:validation:Required
	Container string `json:"container"`

	// Working directory root of the Azure Blob service.
	// +kubebuilder:validation:Required
	Root string `json:"root"`

	// Endpoint of the Azure Blob service.
	// e.g. https://yufantest.blob.core.windows.net
	// +kubebuilder:validation:Pattern="^(?:https://)?(?:[^/.\\s]+\\.)*(?:[^/\\s]+)*$"
	Endpoint string `json:"endpoint"`
}

RisingWaveStateStoreBackendAzureBlob is the details of Azure blob storage (S3 compatible) for compute and compactor components.

func (*RisingWaveStateStoreBackendAzureBlob) DeepCopy added in v0.3.5

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

func (*RisingWaveStateStoreBackendAzureBlob) DeepCopyInto added in v0.3.5

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

type RisingWaveStateStoreBackendGCS added in v0.3.5

type RisingWaveStateStoreBackendGCS struct {
	// RisingWaveGCSCredentials is the credentials provider from a Secret.
	RisingWaveGCSCredentials `json:"credentials,omitempty"`

	// Bucket of the GCS bucket service.
	// +kubebuilder:validation:Required
	Bucket string `json:"bucket"`

	// Working directory root of the GCS bucket
	// +kubebuilder:validation:Required
	Root string `json:"root"`
}

RisingWaveStateStoreBackendGCS is the collection of parameters for the GCS backend state store.

func (*RisingWaveStateStoreBackendGCS) DeepCopy added in v0.3.5

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

func (*RisingWaveStateStoreBackendGCS) DeepCopyInto added in v0.3.5

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

type RisingWaveStateStoreBackendHDFS added in v0.3.5

type RisingWaveStateStoreBackendHDFS struct {
	// Name node of the HDFS
	// +kubebuilder:validation:Required
	NameNode string `json:"nameNode"`

	// Working directory root of the HDFS
	// +kubebuilder:validation:Required
	Root string `json:"root"`
}

RisingWaveStateStoreBackendHDFS is the details of HDFS storage (S3 compatible) for compute and compactor components.

func (*RisingWaveStateStoreBackendHDFS) DeepCopy added in v0.3.5

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

func (*RisingWaveStateStoreBackendHDFS) DeepCopyInto added in v0.3.5

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

type RisingWaveStateStoreBackendHuaweiCloudOBS added in v0.5.8

type RisingWaveStateStoreBackendHuaweiCloudOBS struct {
	// RisingWaveHuaweiCloudOBSCredentials is the credentials provider from a Secret.
	RisingWaveHuaweiCloudOBSCredentials `json:"credentials"`

	// Bucket name.
	// +kubebuilder:validation:Required
	Bucket string `json:"bucket"`

	// Region of Huawei Cloud OBS.
	// +kubebuilder:validation:Required
	Region string `json:"region,omitempty"`
}

RisingWaveStateStoreBackendHuaweiCloudOBS is the details of HuaweiCloudOBS for compute and compactor components.

func (*RisingWaveStateStoreBackendHuaweiCloudOBS) DeepCopy added in v0.5.8

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

func (*RisingWaveStateStoreBackendHuaweiCloudOBS) DeepCopyInto added in v0.5.8

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

type RisingWaveStateStoreBackendLocalDisk added in v0.4.0

type RisingWaveStateStoreBackendLocalDisk struct {
	// Root is the root directory to store the data in the object storage.
	// +kubebuilder:validation:Required
	Root string `json:"root"`
}

RisingWaveStateStoreBackendLocalDisk is the details of local storage for compute and compactor components.

func (*RisingWaveStateStoreBackendLocalDisk) DeepCopy added in v0.4.0

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

func (*RisingWaveStateStoreBackendLocalDisk) DeepCopyInto added in v0.4.0

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

type RisingWaveStateStoreBackendMinIO added in v0.3.5

type RisingWaveStateStoreBackendMinIO struct {
	// RisingWaveMinIOCredentials is the credentials provider from a Secret.
	RisingWaveMinIOCredentials `json:"credentials"`

	// Endpoint of the MinIO service.
	// +kubebuilder:validation:Required
	Endpoint string `json:"endpoint"`

	// Bucket of the MinIO service.
	// +kubebuilder:validation:Required
	Bucket string `json:"bucket"`
}

RisingWaveStateStoreBackendMinIO is the collection of parameters for the MinIO backend state store.

func (*RisingWaveStateStoreBackendMinIO) DeepCopy added in v0.3.5

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

func (*RisingWaveStateStoreBackendMinIO) DeepCopyInto added in v0.3.5

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

type RisingWaveStateStoreBackendS3 added in v0.3.5

type RisingWaveStateStoreBackendS3 struct {
	// RisingWaveS3Credentials is the credentials provider from a Secret.
	RisingWaveS3Credentials `json:"credentials"`

	// Bucket of the AWS S3 service.
	// +kubebuilder:validation:Required
	Bucket string `json:"bucket"`

	// Region of AWS S3 service. Defaults to "us-east-1".
	// +kubebuilder:validation:Required
	// +kubebuilder:default=us-east-1
	Region string `json:"region"`

	// Endpoint of the AWS (or other vendor's S3-compatible) service. Leave it empty when using AWS S3 service.
	// You can reference the `REGION` and `BUCKET` variables in the endpoint with `${BUCKET}` and `${REGION}`, e.g.,
	//   s3.${REGION}.amazonaws.com
	//   ${BUCKET}.s3.${REGION}.amazonaws.com
	// +optional
	// +kubebuilder:validation:Pattern="^(?:https://)?(?:[^/.\\s]+\\.)*(?:[^/\\s]+)*$"
	Endpoint string `json:"endpoint,omitempty"`
}

RisingWaveStateStoreBackendS3 is the collection of parameters for the S3 backend state store.

func (*RisingWaveStateStoreBackendS3) DeepCopy added in v0.3.5

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

func (*RisingWaveStateStoreBackendS3) DeepCopyInto added in v0.3.5

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

type RisingWaveStateStoreBackendType added in v0.3.5

type RisingWaveStateStoreBackendType string

RisingWaveStateStoreBackendType is the type for the state store backends.

const (
	RisingWaveStateStoreBackendTypeMemory         RisingWaveStateStoreBackendType = "Memory"
	RisingWaveStateStoreBackendTypeMinIO          RisingWaveStateStoreBackendType = "MinIO"
	RisingWaveStateStoreBackendTypeS3             RisingWaveStateStoreBackendType = "S3"
	RisingWaveStateStoreBackendTypeHDFS           RisingWaveStateStoreBackendType = "HDFS"
	RisingWaveStateStoreBackendTypeWebHDFS        RisingWaveStateStoreBackendType = "WebHDFS"
	RisingWaveStateStoreBackendTypeGCS            RisingWaveStateStoreBackendType = "GCS"
	RisingWaveStateStoreBackendTypeAliyunOSS      RisingWaveStateStoreBackendType = "AliyunOSS"
	RisingWaveStateStoreBackendTypeAzureBlob      RisingWaveStateStoreBackendType = "AzureBlob"
	RisingWaveStateStoreBackendTypeLocalDisk      RisingWaveStateStoreBackendType = "LocalDisk"
	RisingWaveStateStoreBackendTypeHuaweiCloudOBS RisingWaveStateStoreBackendType = "HuaweiCloudOBS"
	RisingWaveStateStoreBackendTypeUnknown        RisingWaveStateStoreBackendType = "Unknown"
)

All valid state store backend types.

type RisingWaveStateStoreStatus added in v0.3.5

type RisingWaveStateStoreStatus struct {
	// Backend type of the state store.
	Backend RisingWaveStateStoreBackendType `json:"backend,omitempty"`
}

RisingWaveStateStoreStatus is the status of the state store.

func (*RisingWaveStateStoreStatus) DeepCopy added in v0.3.5

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

func (*RisingWaveStateStoreStatus) DeepCopyInto added in v0.3.5

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

type RisingWaveStatus

type RisingWaveStatus struct {
	// Observed generation by controller. It will be updated
	// when controller observes the changes on the spec and going to sync the subresources.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Version of the Global Image
	Version string `json:"version,omitempty"`

	// Replica status of components.
	ComponentReplicas RisingWaveComponentsReplicasStatus `json:"componentReplicas,omitempty"`

	// Conditions of the RisingWave.
	// +listType=map
	// +listMapKey=type
	// +patchMergeKey=type
	// +patchStrategy=merge,retainKeys
	Conditions []RisingWaveCondition `json:"conditions,omitempty"`

	// Scale view locks.
	// +listType=map
	// +listMapKey=name
	ScaleViews []RisingWaveScaleViewLock `json:"scaleViews,omitempty"`

	// Status of the meta store.
	MetaStore RisingWaveMetaStoreStatus `json:"metaStore,omitempty"`

	// Status of the state store.
	StateStore RisingWaveStateStoreStatus `json:"stateStore,omitempty"`
}

RisingWaveStatus is the status of RisingWave.

func (*RisingWaveStatus) DeepCopy

func (in *RisingWaveStatus) DeepCopy() *RisingWaveStatus

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

func (*RisingWaveStatus) DeepCopyInto

func (in *RisingWaveStatus) DeepCopyInto(out *RisingWaveStatus)

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

type WorkloadReplicaStatus added in v0.4.0

type WorkloadReplicaStatus struct {
	// Replicas is the declared replicas of the workload.
	Replicas int32 `json:"replicas,omitempty"`

	// ReadyReplicas is the ready replicas of the workload.
	ReadyReplicas int32 `json:"readyReplicas,omitempty"`

	// AvailableReplicas is the available replicas of the workload.
	AvailableReplicas int32 `json:"availableReplicas,omitempty"`

	// UpdatedReplicas is the update replicas of the workload.
	UpdatedReplicas int32 `json:"updatedReplicas,omitempty"`

	// UnavailableReplicas is the unavailable replicas of the workload.
	UnavailableReplicas int32 `json:"unavailableReplicas,omitempty"`
}

WorkloadReplicaStatus is a common structure for replica status of some workload.

func (*WorkloadReplicaStatus) DeepCopy added in v0.4.0

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

func (*WorkloadReplicaStatus) DeepCopyInto added in v0.4.0

func (in *WorkloadReplicaStatus) DeepCopyInto(out *WorkloadReplicaStatus)

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