Documentation ¶
Overview ¶
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=apps.kubeblocks.io
Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group +kubebuilder:object:generate=true +groupName=apps.kubeblocks.io
Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group
Index ¶
- Constants
- Variables
- func ComponentPodsAreReady(podsAreReady *bool) bool
- func NewBackupCondition(ops *OpsRequest) *metav1.Condition
- func NewCancelFailedCondition(ops *OpsRequest, err error) *metav1.Condition
- func NewCancelSucceedCondition(opsName string) *metav1.Condition
- func NewCancelingCondition(ops *OpsRequest) *metav1.Condition
- func NewDataScriptCondition(ops *OpsRequest) *metav1.Condition
- func NewExposingCondition(ops *OpsRequest) *metav1.Condition
- func NewFailedCondition(ops *OpsRequest, err error) *metav1.Condition
- func NewHorizontalScalingCondition(ops *OpsRequest) *metav1.Condition
- func NewInstancesRebuildingCondition(ops *OpsRequest) *metav1.Condition
- func NewReconfigureCondition(ops *OpsRequest) *metav1.Condition
- func NewReconfigureFailedCondition(ops *OpsRequest, err error) *metav1.Condition
- func NewReconfigureRunningCondition(ops *OpsRequest, conditionType string, configSpecName string, info ...string) *metav1.Condition
- func NewRestartingCondition(ops *OpsRequest) *metav1.Condition
- func NewRestoreCondition(ops *OpsRequest) *metav1.Condition
- func NewStartCondition(ops *OpsRequest) *metav1.Condition
- func NewStopCondition(ops *OpsRequest) *metav1.Condition
- func NewSucceedCondition(ops *OpsRequest) *metav1.Condition
- func NewSwitchoveringCondition(generation int64, message string) *metav1.Condition
- func NewUpgradingCondition(ops *OpsRequest) *metav1.Condition
- func NewValidateFailedCondition(reason, message string) *metav1.Condition
- func NewValidatePassedCondition(opsRequestName string) *metav1.Condition
- func NewVerticalScalingCondition(ops *OpsRequest) *metav1.Condition
- func NewVolumeExpandingCondition(ops *OpsRequest) *metav1.Condition
- func NewWaitForProcessingCondition(ops *OpsRequest) *metav1.Condition
- func RegisterWebhookManager(mgr manager.Manager)
- func Resource(resource string) schema.GroupResource
- type AccessMode
- type AccountName
- type Action
- type ActionTask
- type ActionTaskStatus
- type Affinity
- type AvailabilityPolicyType
- type BackupMethod
- type BackupPolicy
- type BackupPolicyTemplate
- type BackupPolicyTemplateList
- type BackupPolicyTemplateSpec
- type BackupPolicyTemplateStatus
- type BackupRefSpec
- type BackupSpec
- type BackupStatusUpdateStage
- type BaseBackupType
- type BuiltinActionHandlerType
- type CPUConstraint
- type ClassDefRef
- type Cluster
- func (in *Cluster) DeepCopy() *Cluster
- func (in *Cluster) DeepCopyInto(out *Cluster)
- func (in *Cluster) DeepCopyObject() runtime.Object
- func (r *Cluster) GetVolumeClaimNames(compName string, claimNames ...string) []string
- func (r Cluster) IsDeleting() bool
- func (r Cluster) IsStatusUpdating() bool
- func (r Cluster) IsUpdating() bool
- func (r *Cluster) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *Cluster) ValidateCreate() (admission.Warnings, error)
- func (r *Cluster) ValidateDelete() (admission.Warnings, error)
- func (r *Cluster) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type ClusterBackup
- type ClusterComponentDefinition
- func (in *ClusterComponentDefinition) DeepCopy() *ClusterComponentDefinition
- func (in *ClusterComponentDefinition) DeepCopyInto(out *ClusterComponentDefinition)
- func (r *ClusterComponentDefinition) GetCommonStatefulSpec() (*StatefulSetSpec, error)
- func (r *ClusterComponentDefinition) GetStatefulSetWorkload() StatefulSetWorkload
- func (r *ClusterComponentDefinition) IsStatelessWorkload() bool
- type ClusterComponentPhase
- type ClusterComponentService
- type ClusterComponentSpec
- type ClusterComponentStatus
- func (in *ClusterComponentStatus) DeepCopy() *ClusterComponentStatus
- func (in *ClusterComponentStatus) DeepCopyInto(out *ClusterComponentStatus)
- func (r ClusterComponentStatus) GetMessage() ComponentMessageMap
- func (r ClusterComponentStatus) GetObjectMessage(objectKind, objectName string) string
- func (r *ClusterComponentStatus) SetMessage(messageMap ComponentMessageMap)
- func (r *ClusterComponentStatus) SetObjectMessage(objectKind, objectName, message string)
- type ClusterComponentVersion
- type ClusterComponentVolumeClaimTemplate
- type ClusterDefinition
- func (in *ClusterDefinition) DeepCopy() *ClusterDefinition
- func (in *ClusterDefinition) DeepCopyInto(out *ClusterDefinition)
- func (in *ClusterDefinition) DeepCopyObject() runtime.Object
- func (r *ClusterDefinition) Default()
- func (r *ClusterDefinition) GetComponentDefByName(compDefName string) *ClusterComponentDefinition
- func (r *ClusterDefinition) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *ClusterDefinition) ValidateCreate() (admission.Warnings, error)
- func (r *ClusterDefinition) ValidateDelete() (admission.Warnings, error)
- func (r *ClusterDefinition) ValidateEnabledLogConfigs(compDefName string, enabledLogs []string) []string
- func (r *ClusterDefinition) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type ClusterDefinitionList
- type ClusterDefinitionProbe
- type ClusterDefinitionProbeCMDs
- type ClusterDefinitionProbes
- type ClusterDefinitionSpec
- type ClusterDefinitionStatus
- type ClusterList
- type ClusterMonitor
- type ClusterNetwork
- type ClusterObjectReference
- type ClusterPhase
- type ClusterResourceConstraintSelector
- type ClusterResources
- type ClusterService
- type ClusterSpec
- func (in *ClusterSpec) DeepCopy() *ClusterSpec
- func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)
- func (r ClusterSpec) GetComponentByName(componentName string) *ClusterComponentSpec
- func (r ClusterSpec) GetComponentDefRefName(componentName string) string
- func (r ClusterSpec) GetDefNameMappingComponents() map[string][]ClusterComponentSpec
- func (r ClusterSpec) ValidateEnabledLogs(cd *ClusterDefinition) error
- type ClusterStatus
- type ClusterStorage
- type ClusterSwitchPolicy
- type ClusterTopology
- type ClusterTopologyComponent
- type ClusterTopologyOrders
- type ClusterVersion
- func (in *ClusterVersion) DeepCopy() *ClusterVersion
- func (in *ClusterVersion) DeepCopyInto(out *ClusterVersion)
- func (in *ClusterVersion) DeepCopyObject() runtime.Object
- func (r *ClusterVersion) GetInconsistentComponentsInfo(clusterDef *ClusterDefinition) ([]string, []string)
- func (r *ClusterVersion) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *ClusterVersion) ValidateCreate() (admission.Warnings, error)
- func (r *ClusterVersion) ValidateDelete() (admission.Warnings, error)
- func (r *ClusterVersion) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type ClusterVersionList
- type ClusterVersionSpec
- type ClusterVersionStatus
- type CmdExecutorConfig
- type CommandExecutorEnvItem
- type CommandExecutorItem
- type CompletionProbe
- type Component
- func (in *Component) DeepCopy() *Component
- func (in *Component) DeepCopyInto(out *Component)
- func (in *Component) DeepCopyObject() runtime.Object
- func (r *Component) Default()
- func (r *Component) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *Component) ValidateCreate() (admission.Warnings, error)
- func (r *Component) ValidateDelete() (admission.Warnings, error)
- func (r *Component) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type ComponentClass
- type ComponentClassDefinition
- type ComponentClassDefinitionList
- type ComponentClassDefinitionSpec
- type ComponentClassDefinitionStatus
- type ComponentClassGroup
- type ComponentClassSeries
- type ComponentConfigSpec
- type ComponentDefRef
- type ComponentDefinition
- func (in *ComponentDefinition) DeepCopy() *ComponentDefinition
- func (in *ComponentDefinition) DeepCopyInto(out *ComponentDefinition)
- func (in *ComponentDefinition) DeepCopyObject() runtime.Object
- func (r *ComponentDefinition) Default()
- func (r *ComponentDefinition) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *ComponentDefinition) ValidateCreate() (admission.Warnings, error)
- func (r *ComponentDefinition) ValidateDelete() (admission.Warnings, error)
- func (r *ComponentDefinition) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type ComponentDefinitionList
- type ComponentDefinitionRef
- type ComponentDefinitionSpec
- type ComponentDefinitionStatus
- type ComponentLifecycleActions
- type ComponentList
- type ComponentMessageMap
- type ComponentNameSet
- type ComponentOps
- type ComponentRefEnv
- type ComponentResourceConstraint
- func (in *ComponentResourceConstraint) DeepCopy() *ComponentResourceConstraint
- func (in *ComponentResourceConstraint) DeepCopyInto(out *ComponentResourceConstraint)
- func (in *ComponentResourceConstraint) DeepCopyObject() runtime.Object
- func (c *ComponentResourceConstraint) FindMatchingRules(clusterDefRef string, componentDefRef string, resources corev1.ResourceList) []ResourceConstraintRule
- func (c *ComponentResourceConstraint) FindRules(clusterDefRef, componentDefRef string) []ResourceConstraintRule
- func (c *ComponentResourceConstraint) FindRulesWithCompDef(compDef string) []ResourceConstraintRule
- func (c *ComponentResourceConstraint) MatchClass(clusterDefRef, componentDefRef string, class *ComponentClass) bool
- type ComponentResourceConstraintList
- type ComponentResourceConstraintSelector
- type ComponentResourceConstraintSpec
- type ComponentResourceKey
- type ComponentService
- type ComponentSpec
- type ComponentStatus
- type ComponentSwitchover
- type ComponentTemplateSpec
- type ComponentValueFrom
- type ComponentValueFromType
- type ComponentVersion
- func (in *ComponentVersion) DeepCopy() *ComponentVersion
- func (in *ComponentVersion) DeepCopyInto(out *ComponentVersion)
- func (in *ComponentVersion) DeepCopyObject() runtime.Object
- func (r *ComponentVersion) Default()
- func (r *ComponentVersion) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *ComponentVersion) ValidateCreate() (admission.Warnings, error)
- func (r *ComponentVersion) ValidateDelete() (admission.Warnings, error)
- func (r *ComponentVersion) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type ComponentVersionCompatibilityRule
- type ComponentVersionList
- type ComponentVersionRelease
- type ComponentVersionSpec
- type ComponentVersionStatus
- type ComponentVolume
- type ConfigConstraint
- func (cc *ConfigConstraint) ConvertFrom(srcRaw conversion.Hub) error
- func (cc *ConfigConstraint) ConvertTo(dstRaw conversion.Hub) error
- func (in *ConfigConstraint) DeepCopy() *ConfigConstraint
- func (in *ConfigConstraint) DeepCopyInto(out *ConfigConstraint)
- func (in *ConfigConstraint) DeepCopyObject() runtime.Object
- type ConfigConstraintList
- type ConfigConstraintSpec
- type ConfigConstraintStatus
- type ConfigMapRef
- type ConfigParams
- type ConfigTemplateExtension
- type Configuration
- type ConfigurationItem
- type ConfigurationItemDetail
- type ConfigurationItemDetailStatus
- type ConfigurationItemStatus
- type ConfigurationList
- type ConfigurationPhase
- type ConfigurationSpec
- func (in *ConfigurationSpec) DeepCopy() *ConfigurationSpec
- func (in *ConfigurationSpec) DeepCopyInto(out *ConfigurationSpec)
- func (configuration *ConfigurationSpec) GetConfigSpec(configSpecName string) *ComponentConfigSpec
- func (configuration *ConfigurationSpec) GetConfigurationItem(name string) *ConfigurationItemDetail
- type ConfigurationStatus
- type ConnectionCredentialAuth
- type ConnectionCredentialKey
- type ConsensusMember
- type ConsensusSetSpec
- func (in *ConsensusSetSpec) DeepCopy() *ConsensusSetSpec
- func (in *ConsensusSetSpec) DeepCopyInto(out *ConsensusSetSpec)
- func (r *ConsensusSetSpec) FinalStsUpdateStrategy() (appsv1.PodManagementPolicyType, appsv1.StatefulSetUpdateStrategy)
- func (r *ConsensusSetSpec) GetUpdateStrategy() UpdateStrategy
- type ContainerVars
- type CredentialVar
- type CredentialVarSelector
- type CredentialVars
- type CustomLabelSpec
- type CustomOpsComponent
- type CustomOpsSpec
- type CustomParametersValidation
- type EnvMappingVar
- type EnvVar
- type EnvVarRef
- type ExecAction
- type ExporterConfig
- type Expose
- type ExposeSwitch
- type FailurePolicyType
- type GVKResource
- type HScaleDataClonePolicyType
- type HTTPAction
- type HorizontalScalePolicy
- type HorizontalScaling
- type HostNetwork
- type HostNetworkContainerPort
- type Instance
- type InstanceTemplate
- type Issuer
- type IssuerName
- type JSONPatchOperation
- type KBAccountType
- type LastComponentConfiguration
- type LastConfiguration
- type LegacyRenderedTemplateSpec
- type LetterCase
- type LifecycleActionHandler
- type LogConfig
- type MatchExpressions
- type MemoryConstraint
- type MergedPolicy
- type MonitorConfig
- type MultipleClusterObjectCombinedOption
- type MultipleClusterObjectOption
- type MultipleClusterObjectStrategy
- type MultipleClusterObjectValueFormat
- type MultipleClusterObjectValueFormatFlatten
- type NamedVar
- type OpsAction
- type OpsDefinition
- type OpsDefinitionList
- type OpsDefinitionSpec
- type OpsDefinitionStatus
- type OpsEnvVar
- type OpsExecAction
- type OpsPhase
- type OpsRecorder
- type OpsRequest
- func (in *OpsRequest) DeepCopy() *OpsRequest
- func (in *OpsRequest) DeepCopyInto(out *OpsRequest)
- func (in *OpsRequest) DeepCopyObject() runtime.Object
- func (r *OpsRequest) Force() bool
- func (r *OpsRequest) GetComponentNameSet() ComponentNameSet
- func (r *OpsRequest) GetUpgradeComponentNameSet() ComponentNameSet
- func (r *OpsRequest) IsComplete(phases ...OpsPhase) bool
- func (r *OpsRequest) SetStatusCondition(condition metav1.Condition)
- func (r *OpsRequest) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *OpsRequest) Validate(ctx context.Context, k8sClient client.Client, cluster *Cluster, ...) error
- func (r *OpsRequest) ValidateCreate() (admission.Warnings, error)
- func (r *OpsRequest) ValidateDelete() (admission.Warnings, error)
- func (r *OpsRequest) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type OpsRequestBehaviour
- type OpsRequestComponentStatus
- type OpsRequestList
- type OpsRequestSpec
- func (in *OpsRequestSpec) DeepCopy() *OpsRequestSpec
- func (in *OpsRequestSpec) DeepCopyInto(out *OpsRequestSpec)
- func (r OpsRequestSpec) GetDataScriptComponentNameSet() ComponentNameSet
- func (r OpsRequestSpec) GetExposeComponentNameSet() ComponentNameSet
- func (r OpsRequestSpec) GetHorizontalScalingComponentNameSet() ComponentNameSet
- func (r OpsRequestSpec) GetReconfiguringComponentNameSet() ComponentNameSet
- func (r OpsRequestSpec) GetRestartComponentNameSet() ComponentNameSet
- func (r OpsRequestSpec) GetSwitchoverComponentNameSet() ComponentNameSet
- func (r OpsRequestSpec) GetVerticalScalingComponentNameSet() ComponentNameSet
- func (r OpsRequestSpec) GetVolumeExpansionComponentNameSet() ComponentNameSet
- func (r OpsRequestSpec) ToExposeListToMap() map[string]Expose
- func (r OpsRequestSpec) ToHorizontalScalingListToMap() map[string]HorizontalScaling
- func (r OpsRequestSpec) ToVerticalScalingListToMap() map[string]VerticalScaling
- func (r OpsRequestSpec) ToVolumeExpansionListToMap() map[string]VolumeExpansion
- type OpsRequestStatus
- type OpsRequestVolumeClaimTemplate
- type OpsResourceModifierAction
- type OpsService
- type OpsType
- type OpsVarSource
- type OpsWorkloadAction
- type OpsWorkloadType
- type OverrideBy
- type Parameter
- type ParameterConfig
- type ParameterPair
- type ParametersSchema
- type PasswordConfig
- type Payload
- type PersistentVolumeClaimSpec
- type Phase
- type PodAntiAffinity
- type PodAvailabilityPolicy
- type PodSelectionPolicy
- type PodSelector
- type PodVarSelector
- type PodVars
- type PointInTimeRefSpec
- type PostStartAction
- type PreCheckResult
- type PreCondition
- type PreConditionExec
- type PreConditionType
- type ProgressStatus
- type ProgressStatusDetail
- type ProtectedVolume
- type ProvisionPolicy
- type ProvisionPolicyType
- type ProvisionScope
- type ProvisionSecretRef
- type ProvisionStatements
- type RSMSpec
- type RebuildInstance
- type ReconcileDetail
- type Reconfigure
- type ReconfiguringStatus
- type RefNamespaceName
- type ReloadOptions
- type ReplicaRole
- type ReplicasLimit
- type ReplicationSetSpec
- func (in *ReplicationSetSpec) DeepCopy() *ReplicationSetSpec
- func (in *ReplicationSetSpec) DeepCopyInto(out *ReplicationSetSpec)
- func (r *ReplicationSetSpec) FinalStsUpdateStrategy() (appsv1.PodManagementPolicyType, appsv1.StatefulSetUpdateStrategy)
- func (r *ReplicationSetSpec) GetUpdateStrategy() UpdateStrategy
- type RerenderResourceType
- type ResourceConstraintRule
- func (m *ResourceConstraintRule) CompleteResources(r corev1.ResourceList) corev1.ResourceList
- func (in *ResourceConstraintRule) DeepCopy() *ResourceConstraintRule
- func (in *ResourceConstraintRule) DeepCopyInto(out *ResourceConstraintRule)
- func (m *ResourceConstraintRule) GetMinimalResources() corev1.ResourceList
- func (m *ResourceConstraintRule) ValidateCPU(cpu *resource.Quantity) bool
- func (m *ResourceConstraintRule) ValidateMemory(cpu *resource.Quantity, memory *resource.Quantity) bool
- func (m *ResourceConstraintRule) ValidateResources(r corev1.ResourceList) bool
- func (m *ResourceConstraintRule) ValidateStorage(storage *resource.Quantity) bool
- type ResourceMeta
- type RestoreFromSpec
- type RestoreSpec
- type RetryPolicy
- type RoleArbitrator
- type RoleProbe
- type Rule
- type SchedulePolicy
- type ScriptFrom
- type ScriptSecret
- type ScriptSpec
- type ScriptSpecSelector
- type SecretRef
- type Service
- type ServiceDescriptor
- func (in *ServiceDescriptor) DeepCopy() *ServiceDescriptor
- func (in *ServiceDescriptor) DeepCopyInto(out *ServiceDescriptor)
- func (in *ServiceDescriptor) DeepCopyObject() runtime.Object
- func (r *ServiceDescriptor) Default()
- func (r *ServiceDescriptor) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *ServiceDescriptor) ValidateCreate() (admission.Warnings, error)
- func (r *ServiceDescriptor) ValidateDelete() (admission.Warnings, error)
- func (r *ServiceDescriptor) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type ServiceDescriptorList
- type ServiceDescriptorSpec
- type ServiceDescriptorStatus
- type ServicePort
- type ServiceRef
- type ServiceRefDeclaration
- type ServiceRefDeclarationSpec
- type ServiceRefVarSelector
- type ServiceRefVars
- type ServiceSpec
- type ServiceVarSelector
- type ServiceVars
- type ShardingSpec
- type StatefulSetSpec
- type StatefulSetWorkload
- type StatelessSetSpec
- type StorageConstraint
- type SwitchPolicyType
- type Switchover
- type SwitchoverAction
- type SwitchoverShortSpec
- type SwitchoverSpec
- type SystemAccount
- type SystemAccountConfig
- type SystemAccountShortSpec
- type SystemAccountSpec
- type TLSConfig
- type TLSSecretRef
- type TargetInstance
- type TargetPodSelector
- type TargetPodTemplate
- type TenancyType
- type TerminationPolicyType
- type TypedObjectRef
- type UpdateStrategy
- type UpdatedParameters
- type Upgrade
- type UpgradePolicy
- type UserResourceRefs
- type ValueFrom
- type ValueMapping
- type VarOption
- type VarSource
- type VersionsContext
- type VerticalScaling
- type VolumeExpansion
- type VolumeProtectionSpec
- type VolumeType
- type VolumeTypeSpec
- type WorkloadType
Constants ¶
const ( // condition types ConditionTypeCancelled = "Cancelled" ConditionTypeWaitForProgressing = "WaitForProgressing" ConditionTypeValidated = "Validated" ConditionTypeSucceed = "Succeed" ConditionTypeFailed = "Failed" ConditionTypeRestarting = "Restarting" ConditionTypeVerticalScaling = "VerticalScaling" ConditionTypeHorizontalScaling = "HorizontalScaling" ConditionTypeVolumeExpanding = "VolumeExpanding" ConditionTypeReconfigure = "Reconfigure" ConditionTypeSwitchover = "Switchover" ConditionTypeStop = "Stopping" ConditionTypeStart = "Starting" ConditionTypeVersionUpgrading = "VersionUpgrading" ConditionTypeExpose = "Exposing" ConditionTypeDataScript = "ExecuteDataScript" ConditionTypeBackup = "Backup" ConditionTypeInstanceRebuilding = "InstancesRebuilding" ConditionTypeCustomOperation = "CustomOperation" ReasonReconfigurePersisting = "ReconfigurePersisting" ReasonReconfigurePersisted = "ReconfigurePersisted" ReasonReconfigureFailed = "ReconfigureFailed" ReasonReconfigureRestartFailed = "ReconfigureRestartFailed" ReasonReconfigureRestart = "ReconfigureRestarted" ReasonReconfigureNoChanged = "ReconfigureNoChanged" ReasonReconfigureSucceed = "ReconfigureSucceed" ReasonReconfigureRunning = "ReconfigureRunning" ReasonClusterPhaseMismatch = "ClusterPhaseMismatch" ReasonOpsTypeNotSupported = "OpsTypeNotSupported" ReasonValidateFailed = "ValidateFailed" ReasonClusterNotFound = "ClusterNotFound" ReasonOpsRequestFailed = "OpsRequestFailed" ReasonOpsCanceling = "Canceling" ReasonOpsCancelFailed = "CancelFailed" ReasonOpsCancelSucceed = "CancelSucceed" ReasonOpsCancelByController = "CancelByController" )
const ( APIVersion = "apps.kubeblocks.io/v1alpha1" ClusterVersionKind = "ClusterVersion" ClusterDefinitionKind = "ClusterDefinition" ClusterKind = "Cluster" ComponentKind = "Component" OpsRequestKind = "OpsRequestKind" )
const ( // define the cluster condition type ConditionTypeHaltRecovery = "HaltRecovery" // ConditionTypeHaltRecovery describe Halt recovery processing stage ConditionTypeProvisioningStarted = "ProvisioningStarted" // ConditionTypeProvisioningStarted the operator starts resource provisioning to create or change the cluster ConditionTypeApplyResources = "ApplyResources" // ConditionTypeApplyResources the operator start to apply resources to create or change the cluster ConditionTypeReplicasReady = "ReplicasReady" // ConditionTypeReplicasReady all pods of components are ready ConditionTypeReady = "Ready" // ConditionTypeReady all components are running ConditionTypeSwitchoverPrefix = "Switchover-" // ConditionTypeSwitchoverPrefix component status condition of switchover )
const ( KBAccountInvalid KBAccountType = 0 KBAccountAdmin = 1 KBAccountDataprotection = 1 << 1 KBAccountProbe = 1 << 2 KBAccountMonitor = 1 << 3 KBAccountReplicator = 1 << 4 KBAccountMAX = KBAccountReplicator // KBAccountMAX indicates the max value of KBAccountType, used for validation. )
System accounts represented in bit.
const DefaultRoleProbeTimeoutAfterPodsReady int32 = 60
DefaultRoleProbeTimeoutAfterPodsReady the default role probe timeout for application when all pods of component are ready. default values are 60 seconds.
const (
KBSwitchoverCandidateInstanceForAnyPod = "*"
)
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "apps.kubeblocks.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
var ( ErrWorkloadTypeIsUnknown = errors.New("workloadType is unknown") ErrWorkloadTypeIsStateless = errors.New("workloadType should not be stateless") ErrNotMatchingCompDef = errors.New("not matching componentDefRef") )
var DefaultLeader = ConsensusMember{ Name: "leader", AccessMode: ReadWrite, }
var ( // OpsRequestBehaviourMapper records the opsRequest behaviour according to the OpsType. OpsRequestBehaviourMapper = map[OpsType]OpsRequestBehaviour{} )
log is for logging in this package.
var SchemeGroupVersion = GroupVersion
SchemeGroupVersion is group version used to register these objects.
var WorkloadTypes = []string{"Stateless", "Stateful", "Consensus", "Replication"}
Functions ¶
func ComponentPodsAreReady ¶ added in v0.6.0
ComponentPodsAreReady checks if the pods of component are ready.
func NewBackupCondition ¶ added in v0.7.0
func NewBackupCondition(ops *OpsRequest) *metav1.Condition
NewBackupCondition creates a condition that the OpsRequest backup the cluster.
func NewCancelFailedCondition ¶ added in v0.6.0
func NewCancelFailedCondition(ops *OpsRequest, err error) *metav1.Condition
NewCancelFailedCondition creates a condition for canceling failed.
func NewCancelSucceedCondition ¶ added in v0.6.0
NewCancelSucceedCondition creates a condition for canceling successfully.
func NewCancelingCondition ¶ added in v0.6.0
func NewCancelingCondition(ops *OpsRequest) *metav1.Condition
NewCancelingCondition the controller is canceling the OpsRequest
func NewDataScriptCondition ¶ added in v0.6.0
func NewDataScriptCondition(ops *OpsRequest) *metav1.Condition
func NewExposingCondition ¶
func NewExposingCondition(ops *OpsRequest) *metav1.Condition
func NewFailedCondition ¶
func NewFailedCondition(ops *OpsRequest, err error) *metav1.Condition
NewFailedCondition creates a condition that the OpsRequest processing failed
func NewHorizontalScalingCondition ¶
func NewHorizontalScalingCondition(ops *OpsRequest) *metav1.Condition
NewHorizontalScalingCondition creates a condition that the OpsRequest starts to horizontal scale cluster
func NewInstancesRebuildingCondition ¶ added in v0.8.3
func NewInstancesRebuildingCondition(ops *OpsRequest) *metav1.Condition
NewInstancesRebuildingCondition creates a condition that the operation starts to rebuild the instances.
func NewReconfigureCondition ¶
func NewReconfigureCondition(ops *OpsRequest) *metav1.Condition
NewReconfigureCondition creates a condition that the OpsRequest updating component configuration
func NewReconfigureFailedCondition ¶
func NewReconfigureFailedCondition(ops *OpsRequest, err error) *metav1.Condition
NewReconfigureFailedCondition creates a condition for the failed reconfigure.
func NewReconfigureRunningCondition ¶
func NewReconfigureRunningCondition(ops *OpsRequest, conditionType string, configSpecName string, info ...string) *metav1.Condition
NewReconfigureRunningCondition creates a condition that the OpsRequest reconfigure workflow
func NewRestartingCondition ¶
func NewRestartingCondition(ops *OpsRequest) *metav1.Condition
NewRestartingCondition creates a condition that the operation starts to restart components
func NewRestoreCondition ¶ added in v0.8.0
func NewRestoreCondition(ops *OpsRequest) *metav1.Condition
NewRestoreCondition creates a condition that the OpsRequest restore the cluster.
func NewStartCondition ¶
func NewStartCondition(ops *OpsRequest) *metav1.Condition
NewStartCondition creates a condition that the OpsRequest starts the cluster.
func NewStopCondition ¶
func NewStopCondition(ops *OpsRequest) *metav1.Condition
NewStopCondition creates a condition that the OpsRequest starts to stop the cluster.
func NewSucceedCondition ¶
func NewSucceedCondition(ops *OpsRequest) *metav1.Condition
NewSucceedCondition creates a condition that the controller has successfully processed the OpsRequest
func NewSwitchoveringCondition ¶ added in v0.6.0
NewSwitchoveringCondition creates a condition that the operation starts to switchover components
func NewUpgradingCondition ¶
func NewUpgradingCondition(ops *OpsRequest) *metav1.Condition
NewUpgradingCondition creates a condition that the OpsRequest starts to upgrade the cluster version
func NewValidateFailedCondition ¶
NewValidateFailedCondition creates a condition for operation validation failure.
func NewValidatePassedCondition ¶
NewValidatePassedCondition creates a condition for operation validation to pass.
func NewVerticalScalingCondition ¶
func NewVerticalScalingCondition(ops *OpsRequest) *metav1.Condition
NewVerticalScalingCondition creates a condition that the OpsRequest starts to vertical scale cluster
func NewVolumeExpandingCondition ¶
func NewVolumeExpandingCondition(ops *OpsRequest) *metav1.Condition
NewVolumeExpandingCondition creates a condition that the OpsRequest starts to expand volume
func NewWaitForProcessingCondition ¶ added in v0.8.0
func NewWaitForProcessingCondition(ops *OpsRequest) *metav1.Condition
NewWaitForProcessingCondition waits the controller to process the opsRequest.
func RegisterWebhookManager ¶
func Resource ¶ added in v0.6.0
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type AccessMode ¶
type AccessMode string
AccessMode defines the modes of access granted to the SVC. The modes can be `None`, `Readonly`, or `ReadWrite`.
+enum +kubebuilder:validation:Enum={None,Readonly,ReadWrite}
const ( // ReadWrite permits both read and write operations. ReadWrite AccessMode = "ReadWrite" // Readonly allows only read operations. Readonly AccessMode = "Readonly" // None implies no access. None AccessMode = "None" )
type AccountName ¶
type AccountName string
AccountName defines system account names. +enum +kubebuilder:validation:Enum={kbadmin,kbdataprotection,kbprobe,kbmonitoring,kbreplicator}
const ( AdminAccount AccountName = "kbadmin" DataprotectionAccount AccountName = "kbdataprotection" ProbeAccount AccountName = "kbprobe" MonitorAccount AccountName = "kbmonitoring" ReplicatorAccount AccountName = "kbreplicator" )
func (AccountName) GetAccountID ¶
func (r AccountName) GetAccountID() KBAccountType
type Action ¶ added in v0.8.0
type Action struct { // Specifies the container image to run the action. // This field cannot be updated. // // +optional Image string `json:"image,omitempty"` // Defines the action to take. // This field cannot be updated. // // +optional Exec *ExecAction `json:"exec,omitempty"` // Specifies the HTTP request to perform. // This field cannot be updated. // // +optional HTTP *HTTPAction `json:"http,omitempty"` // Represents a list of environment variables to set in the container. // This field cannot be updated. // // +optional // +patchMergeKey=name // +patchStrategy=merge Env []corev1.EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` // Defines how to select the target Pod where the action will be performed, // if there may not have a target replica by default. // This field cannot be updated. // // +optional TargetPodSelector TargetPodSelector `json:"targetPodSelector,omitempty"` // Used to select the target pod(s) actually. // If the selector is AnyReplica or AllReplicas, this field will be ignored. // If the selector is RoleSelector, any replica which has the same role with this field will be chosen. // This field cannot be updated. // // +optional MatchingKey string `json:"matchingKey,omitempty"` // Defines the name of the container within the target Pod where the action will be executed. // If specified, it must be one of container declared in @Runtime. // If not specified, the first container declared in @Runtime will be used. // This field cannot be updated. // // +optional Container string `json:"container,omitempty"` // Defines the timeout duration for the action in seconds. // This field cannot be updated. // // +kubebuilder:default=0 // +optional TimeoutSeconds int32 `json:"timeoutSeconds,omitempty"` // Defines the strategy for retrying the action in case of failure. // This field cannot be updated. // // +optional RetryPolicy *RetryPolicy `json:"retryPolicy,omitempty"` // Defines the condition when the action will be executed. // // - Immediately: The Action is executed immediately after the Component object is created, // without guaranteeing the availability of the Component and its underlying resources. Only after the action is successfully executed will the Component's state turn to ready. // - RuntimeReady: The Action is executed after the Component object is created and once all underlying Runtimes are ready. // Only after the action is successfully executed will the Component's state turn to ready. // - ComponentReady: The Action is executed after the Component object is created and once the Component is ready. // The execution process does not impact the state of the Component and the Cluster. // - ClusterReady: The Action is executed after the Cluster object is created and once the Cluster is ready. // // The execution process does not impact the state of the Component and the Cluster. // This field cannot be updated. // // +optional PreCondition *PreConditionType `json:"preCondition,omitempty"` }
Action defines an operational action that can be performed by a component instance. There are some pre-defined environment variables that can be used when writing action commands, check @BuiltInVars for reference.
An action is considered successful if it returns 0 (or HTTP 200 for HTTP(s) actions). Any other return value or HTTP status code is considered as a failure, and the action may be retried based on the configured retry policy.
- If an action exceeds the specified timeout duration, it will be terminated, and the action is considered failed. - If an action produces any data as output, it should be written to stdout (or included in the HTTP response payload for HTTP(s) actions). - If an action encounters any errors, error messages should be written to stderr (or included in the HTTP response payload with a non-200 HTTP status code).
func (*Action) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Action.
func (*Action) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionTask ¶ added in v0.9.0
type ActionTask struct { // Specifies the name of the task workload. // +kubebuilder:validation:Required ObjectKey string `json:"objectKey"` // Defines the namespace where the task workload is deployed. // +kubebuilder:validation:Required Namespace string `json:"namespace"` // Indicates the current status of the task. // +kubebuilder:validation:Required Status ActionTaskStatus `json:"status"` // The name of the target pod for the task. // +optional TargetPodName string `json:"targetPodName,omitempty"` // The number of retry attempts for this task. // +optional Retries int32 `json:"retries,omitempty"` }
func (*ActionTask) DeepCopy ¶ added in v0.9.0
func (in *ActionTask) DeepCopy() *ActionTask
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionTask.
func (*ActionTask) DeepCopyInto ¶ added in v0.9.0
func (in *ActionTask) DeepCopyInto(out *ActionTask)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ActionTaskStatus ¶ added in v0.9.0
type ActionTaskStatus string
ActionTaskStatus defines the status of the task. +enum +kubebuilder:validation:Enum={Processing,Failed,Succeed}
const ( ProcessingActionTaskStatus ActionTaskStatus = "Processing" FailedActionTaskStatus ActionTaskStatus = "Failed" SucceedActionTaskStatus ActionTaskStatus = "Succeed" )
type Affinity ¶
type Affinity struct { // Specifies the anti-affinity level of pods within a component. // // +kubebuilder:default=Preferred // +optional PodAntiAffinity PodAntiAffinity `json:"podAntiAffinity,omitempty"` // Represents the key of node labels. // // Nodes with a label containing this key and identical values are considered to be in the same topology. // This is used as the topology domain for pod anti-affinity and pod spread constraint. // Some well-known label keys, such as `kubernetes.io/hostname` and `topology.kubernetes.io/zone`, are often used // as TopologyKey, along with any other custom label key. // // +listType=set // +optional TopologyKeys []string `json:"topologyKeys,omitempty"` // Indicates that pods must be scheduled to the nodes with the specified node labels. // // +optional NodeLabels map[string]string `json:"nodeLabels,omitempty"` // Defines how pods are distributed across nodes. // // +kubebuilder:default=SharedNode // +optional Tenancy TenancyType `json:"tenancy,omitempty"` }
func (*Affinity) DeepCopy ¶ added in v0.6.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Affinity.
func (*Affinity) DeepCopyInto ¶ added in v0.6.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AvailabilityPolicyType ¶ added in v0.6.0
type AvailabilityPolicyType string
AvailabilityPolicyType defines the type of availability policy to be applied for cluster affinity, influencing how resources are distributed across zones or nodes for high availability and resilience.
+enum +kubebuilder:validation:Enum={zone,node,none}
const ( // AvailabilityPolicyZone specifies that resources should be distributed across different availability zones. // This policy aims to ensure high availability and protect against zone failures, spreading the resources to reduce // the risk of simultaneous downtime. AvailabilityPolicyZone AvailabilityPolicyType = "zone" // AvailabilityPolicyNode specifies that resources should be distributed across different nodes within the same zone. // This policy aims to provide resilience against node failures, ensuring that the failure of a single node does not // impact the overall service availability. AvailabilityPolicyNode AvailabilityPolicyType = "node" // AvailabilityPolicyNone specifies that no specific availability policy is applied. // Resources may not be explicitly distributed for high availability, potentially concentrating them in a single // zone or node based on other scheduling decisions. AvailabilityPolicyNone AvailabilityPolicyType = "none" )
type BackupMethod ¶ added in v0.7.0
type BackupMethod struct { // Method for backup dpv1alpha1.BackupMethod `json:",inline"` // Specifies the instance where the backup will be stored. // // +optional Target *TargetInstance `json:"target"` // Defines the mapping between the environment variables of the cluster and the keys of the environment values. // // +optional EnvMapping []EnvMappingVar `json:"envMapping,omitempty"` }
func (*BackupMethod) DeepCopy ¶ added in v0.7.0
func (in *BackupMethod) DeepCopy() *BackupMethod
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupMethod.
func (*BackupMethod) DeepCopyInto ¶ added in v0.7.0
func (in *BackupMethod) DeepCopyInto(out *BackupMethod)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupPolicy ¶
type BackupPolicy struct { // References a componentDef defined in the ClusterDefinition spec. // Must comply with the IANA Service Naming rule. // // +kubebuilder:validation:MaxLength=22 // +kubebuilder:validation:Pattern:=`^[a-z]([a-z0-9\-]*[a-z0-9])?$` // +optional ComponentDefRef string `json:"componentDefRef,omitempty"` // References to componentDefinitions. // Must comply with the IANA Service Naming rule. // // +optional ComponentDefs []string `json:"componentDefs,omitempty"` // The instance to be backed up. // // +optional Target TargetInstance `json:"target"` // Define the policy for backup scheduling. // // +optional Schedules []SchedulePolicy `json:"schedules,omitempty"` // Define the methods to be used for backups. // // +kubebuilder:validation:Required BackupMethods []BackupMethod `json:"backupMethods"` // Specifies the number of retries before marking the backup as failed. // // +optional // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=10 BackoffLimit *int32 `json:"backoffLimit,omitempty"` }
func (*BackupPolicy) DeepCopy ¶ added in v0.6.0
func (in *BackupPolicy) DeepCopy() *BackupPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicy.
func (*BackupPolicy) DeepCopyInto ¶ added in v0.6.0
func (in *BackupPolicy) DeepCopyInto(out *BackupPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupPolicyTemplate ¶
type BackupPolicyTemplate struct { // The metadata for the API version and kind of the BackupPolicyTemplate. metav1.TypeMeta `json:",inline"` // The metadata for the BackupPolicyTemplate object, including name, namespace, labels, and annotations. metav1.ObjectMeta `json:"metadata,omitempty"` // Defines the desired state of the BackupPolicyTemplate. Spec BackupPolicyTemplateSpec `json:"spec,omitempty"` // Populated by the system, it represents the current information about the BackupPolicyTemplate. Status BackupPolicyTemplateStatus `json:"status,omitempty"` }
BackupPolicyTemplate is the Schema for the BackupPolicyTemplates API (defined by provider)
func (*BackupPolicyTemplate) DeepCopy ¶ added in v0.6.0
func (in *BackupPolicyTemplate) DeepCopy() *BackupPolicyTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicyTemplate.
func (*BackupPolicyTemplate) DeepCopyInto ¶ added in v0.6.0
func (in *BackupPolicyTemplate) DeepCopyInto(out *BackupPolicyTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BackupPolicyTemplate) DeepCopyObject ¶ added in v0.6.0
func (in *BackupPolicyTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BackupPolicyTemplateList ¶
type BackupPolicyTemplateList struct { // Contains the metadata for the API objects, including the Kind and Version of the object. metav1.TypeMeta `json:",inline"` // Contains the metadata for the list objects, including the continue and remainingItemCount for the list. metav1.ListMeta `json:"metadata,omitempty"` // Contains the list of BackupPolicyTemplate. Items []BackupPolicyTemplate `json:"items"` }
BackupPolicyTemplateList contains a list of BackupPolicyTemplate
func (*BackupPolicyTemplateList) DeepCopy ¶ added in v0.6.0
func (in *BackupPolicyTemplateList) DeepCopy() *BackupPolicyTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicyTemplateList.
func (*BackupPolicyTemplateList) DeepCopyInto ¶ added in v0.6.0
func (in *BackupPolicyTemplateList) DeepCopyInto(out *BackupPolicyTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BackupPolicyTemplateList) DeepCopyObject ¶ added in v0.6.0
func (in *BackupPolicyTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BackupPolicyTemplateSpec ¶
type BackupPolicyTemplateSpec struct { // Specifies a reference to the ClusterDefinition name. This is an immutable attribute that cannot be changed after creation. // // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="clusterDefinitionRef is immutable" ClusterDefRef string `json:"clusterDefinitionRef"` // Represents an array of backup policy templates for the specified ComponentDefinition. // // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 BackupPolicies []BackupPolicy `json:"backupPolicies"` // Acts as a unique identifier for this BackupPolicyTemplate. This identifier will be used as a suffix for the automatically generated backupPolicy name. // It is required when multiple BackupPolicyTemplates exist to prevent backupPolicy override. // // +optional // +kubebuilder:validation:MaxLength=20 Identifier string `json:"identifier,omitempty"` }
BackupPolicyTemplateSpec defines the desired state of BackupPolicyTemplate
func (*BackupPolicyTemplateSpec) DeepCopy ¶ added in v0.6.0
func (in *BackupPolicyTemplateSpec) DeepCopy() *BackupPolicyTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicyTemplateSpec.
func (*BackupPolicyTemplateSpec) DeepCopyInto ¶ added in v0.6.0
func (in *BackupPolicyTemplateSpec) DeepCopyInto(out *BackupPolicyTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupPolicyTemplateStatus ¶
type BackupPolicyTemplateStatus struct { }
BackupPolicyTemplateStatus defines the observed state of BackupPolicyTemplate
func (*BackupPolicyTemplateStatus) DeepCopy ¶ added in v0.6.0
func (in *BackupPolicyTemplateStatus) DeepCopy() *BackupPolicyTemplateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicyTemplateStatus.
func (*BackupPolicyTemplateStatus) DeepCopyInto ¶ added in v0.6.0
func (in *BackupPolicyTemplateStatus) DeepCopyInto(out *BackupPolicyTemplateStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupRefSpec ¶
type BackupRefSpec struct { // Refers to a reference backup that needs to be restored. // +optional Ref RefNamespaceName `json:"ref,omitempty"` }
func (*BackupRefSpec) DeepCopy ¶ added in v0.6.0
func (in *BackupRefSpec) DeepCopy() *BackupRefSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupRefSpec.
func (*BackupRefSpec) DeepCopyInto ¶ added in v0.6.0
func (in *BackupRefSpec) DeepCopyInto(out *BackupRefSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupSpec ¶ added in v0.7.0
type BackupSpec struct { // Specifies the name of the backup. // +optional BackupName string `json:"backupName,omitempty"` // Indicates the backupPolicy applied to perform this backup. // +optional BackupPolicyName string `json:"backupPolicyName,omitempty"` // Defines the backup method that is defined in backupPolicy. // +optional BackupMethod string `json:"backupMethod,omitempty"` // Determines whether the backup contents stored in backup repository // should be deleted when the backup custom resource is deleted. // Supported values are `Retain` and `Delete`. // - `Retain` means that the backup content and its physical snapshot on backup repository are kept. // - `Delete` means that the backup content and its physical snapshot on backup repository are deleted. // +kubebuilder:validation:Enum=Delete;Retain // +kubebuilder:validation:Required // +kubebuilder:default=Delete // +optional DeletionPolicy string `json:"deletionPolicy,omitempty"` // Determines a duration up to which the backup should be kept. // Controller will remove all backups that are older than the RetentionPeriod. // For example, RetentionPeriod of `30d` will keep only the backups of last 30 days. // Sample duration format: // // - years: 2y // - months: 6mo // - days: 30d // - hours: 12h // - minutes: 30m // // You can also combine the above durations. For example: 30d12h30m. // If not set, the backup will be kept forever. // +optional RetentionPeriod string `json:"retentionPeriod,omitempty"` // If backupType is incremental, parentBackupName is required. // +optional ParentBackupName string `json:"parentBackupName,omitempty"` }
func (*BackupSpec) DeepCopy ¶ added in v0.7.0
func (in *BackupSpec) DeepCopy() *BackupSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupSpec.
func (*BackupSpec) DeepCopyInto ¶ added in v0.7.0
func (in *BackupSpec) DeepCopyInto(out *BackupSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupStatusUpdateStage ¶
type BackupStatusUpdateStage string
BackupStatusUpdateStage defines the stage of backup status update.
+enum +kubebuilder:validation:Enum={pre,post}
type BaseBackupType ¶
type BaseBackupType string
BaseBackupType the base backup type, keep synchronized with the BaseBackupType of the data protection API.
+enum +kubebuilder:validation:Enum={full,snapshot}
type BuiltinActionHandlerType ¶ added in v0.8.0
type BuiltinActionHandlerType string
BuiltinActionHandlerType defines build-in action handlers provided by Lorry.
const ( MySQLBuiltinActionHandler BuiltinActionHandlerType = "mysql" WeSQLBuiltinActionHandler BuiltinActionHandlerType = "wesql" OceanbaseBuiltinActionHandler BuiltinActionHandlerType = "oceanbase" RedisBuiltinActionHandler BuiltinActionHandlerType = "redis" MongoDBBuiltinActionHandler BuiltinActionHandlerType = "mongodb" ETCDBuiltinActionHandler BuiltinActionHandlerType = "etcd" PostgresqlBuiltinActionHandler BuiltinActionHandlerType = "postgresql" OfficialPostgresqlBuiltinActionHandler BuiltinActionHandlerType = "official-postgresql" ApeCloudPostgresqlBuiltinActionHandler BuiltinActionHandlerType = "apecloud-postgresql" PolarDBXBuiltinActionHandler BuiltinActionHandlerType = "polardbx" CustomActionHandler BuiltinActionHandlerType = "custom" UnknownBuiltinActionHandler BuiltinActionHandlerType = "unknown" )
type CPUConstraint ¶
type CPUConstraint struct { // The maximum count of vcpu cores, [Min, Max] defines a range for valid vcpu cores, and the value in this range // must be multiple times of Step. It's useful to define a large number of valid values without defining them one by // one. Please see the documentation for Step for some examples. // If Slots is specified, Max, Min, and Step are ignored // +optional Max *resource.Quantity `json:"max,omitempty"` // The minimum count of vcpu cores, [Min, Max] defines a range for valid vcpu cores, and the value in this range // must be multiple times of Step. It's useful to define a large number of valid values without defining them one by // one. Please see the documentation for Step for some examples. // If Slots is specified, Max, Min, and Step are ignored // +optional Min *resource.Quantity `json:"min,omitempty"` // The minimum granularity of vcpu cores, [Min, Max] defines a range for valid vcpu cores and the value in this range must be // multiple times of Step. // For example: // 1. Min is 2, Max is 8, Step is 2, and the valid vcpu core is {2, 4, 6, 8}. // 2. Min is 0.5, Max is 2, Step is 0.5, and the valid vcpu core is {0.5, 1, 1.5, 2}. // +optional Step *resource.Quantity `json:"step,omitempty"` // The valid vcpu cores, it's useful if you want to define valid vcpu cores explicitly. // If Slots is specified, Max, Min, and Step are ignored // +optional Slots []resource.Quantity `json:"slots,omitempty"` }
func (*CPUConstraint) DeepCopy ¶ added in v0.6.0
func (in *CPUConstraint) DeepCopy() *CPUConstraint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CPUConstraint.
func (*CPUConstraint) DeepCopyInto ¶ added in v0.6.0
func (in *CPUConstraint) DeepCopyInto(out *CPUConstraint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClassDefRef ¶
type ClassDefRef struct { // Specifies the name of the ComponentClassDefinition. // // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` // +optional Name string `json:"name,omitempty"` // Defines the name of the class that is defined in the ComponentClassDefinition. // // +kubebuilder:validation:Required Class string `json:"class"` }
func (*ClassDefRef) DeepCopy ¶ added in v0.6.0
func (in *ClassDefRef) DeepCopy() *ClassDefRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClassDefRef.
func (*ClassDefRef) DeepCopyInto ¶ added in v0.6.0
func (in *ClassDefRef) DeepCopyInto(out *ClassDefRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Cluster ¶
type Cluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ClusterSpec `json:"spec,omitempty"` Status ClusterStatus `json:"status,omitempty"` }
Cluster is the Schema for the clusters API.
func (*Cluster) DeepCopy ¶ added in v0.6.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.
func (*Cluster) DeepCopyInto ¶ added in v0.6.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Cluster) DeepCopyObject ¶ added in v0.6.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Cluster) GetVolumeClaimNames ¶
GetVolumeClaimNames gets all PVC names of component compName.
r.Spec.GetComponentByName(compName).VolumeClaimTemplates[*].Name will be used if no claimNames provided
nil return if: 1. component compName not found or 2. len(VolumeClaimTemplates)==0 or 3. any claimNames not found
func (Cluster) IsDeleting ¶ added in v0.6.0
func (Cluster) IsStatusUpdating ¶ added in v0.6.0
func (Cluster) IsUpdating ¶ added in v0.6.0
func (*Cluster) SetupWebhookWithManager ¶
func (*Cluster) ValidateCreate ¶
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*Cluster) ValidateDelete ¶
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
type ClusterBackup ¶ added in v0.6.0
type ClusterBackup struct { // Specifies whether automated backup is enabled. // // +kubebuilder:default=false // +optional Enabled *bool `json:"enabled,omitempty"` // Determines the duration for which the backup should be retained. All backups older than this period will be // removed by the controller. // // For example, RetentionPeriod of `30d` will keep only the backups of last 30 days. // Sample duration format: // // - years: 2y // - months: 6mo // - days: 30d // - hours: 12h // - minutes: 30m // // You can also combine the above durations. For example: 30d12h30m // // +kubebuilder:default="7d" // +optional RetentionPeriod dpv1alpha1.RetentionPeriod `json:"retentionPeriod,omitempty"` // Specifies the backup method to use, as defined in backupPolicy. // // +kubebuilder:validation:Required Method string `json:"method"` // The cron expression for the schedule. The timezone is in UTC. See https://en.wikipedia.org/wiki/Cron. // // +optional CronExpression string `json:"cronExpression,omitempty"` // Defines the deadline in minutes for starting the backup job if it misses its scheduled time for any reason. // // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=1440 // +optional StartingDeadlineMinutes *int64 `json:"startingDeadlineMinutes,omitempty"` // Specifies the name of the backupRepo. If not set, the default backupRepo will be used. // // +optional RepoName string `json:"repoName,omitempty"` // Specifies whether to enable point-in-time recovery. // // +kubebuilder:default=false // +optional PITREnabled *bool `json:"pitrEnabled,omitempty"` }
func (*ClusterBackup) DeepCopy ¶ added in v0.6.0
func (in *ClusterBackup) DeepCopy() *ClusterBackup
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterBackup.
func (*ClusterBackup) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterBackup) DeepCopyInto(out *ClusterBackup)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterComponentDefinition ¶
type ClusterComponentDefinition struct { // This name could be used as default name of `cluster.spec.componentSpecs.name`, and needs to conform with same // validation rules as `cluster.spec.componentSpecs.name`, currently complying with IANA Service Naming rule. // This name will apply to cluster objects as the value of label "apps.kubeblocks.io/component-name". // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=22 // +kubebuilder:validation:Pattern:=`^[a-z]([a-z0-9\-]*[a-z0-9])?$` Name string `json:"name"` // Description of the component definition. // // +optional Description string `json:"description,omitempty"` // Defines the type of the workload. // // - `Stateless` describes stateless applications. // - `Stateful` describes common stateful applications. // - `Consensus` describes applications based on consensus protocols, such as raft and paxos. // - `Replication` describes applications based on the primary-secondary data replication protocol. // // +kubebuilder:validation:Required WorkloadType WorkloadType `json:"workloadType"` // Defines well-known database component name, such as mongos(mongodb), proxy(redis), mariadb(mysql). // // +optional CharacterType string `json:"characterType,omitempty"` // Defines the template of configurations. // // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional ConfigSpecs []ComponentConfigSpec `json:"configSpecs,omitempty"` // Defines the template of scripts. // // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional ScriptSpecs []ComponentTemplateSpec `json:"scriptSpecs,omitempty"` // Settings for health checks. // // +optional Probes *ClusterDefinitionProbes `json:"probes,omitempty"` // Specify the config that how to monitor the component. // // +optional Monitor *MonitorConfig `json:"monitor,omitempty"` // Specify the logging files which can be observed and configured by cluster users. // // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional LogConfigs []LogConfig `json:"logConfigs,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` // Defines the pod spec template of component. // // +kubebuilder:pruning:PreserveUnknownFields // +optional PodSpec *corev1.PodSpec `json:"podSpec,omitempty"` // Defines the service spec. // // +optional Service *ServiceSpec `json:"service,omitempty"` // Defines spec for `Stateless` workloads. // // +kubebuilder:deprecatedversion:warning="This field is deprecated from KB 0.7.0, use RSMSpec instead." // +optional StatelessSpec *StatelessSetSpec `json:"statelessSpec,omitempty"` // Defines spec for `Stateful` workloads. // // +kubebuilder:deprecatedversion:warning="This field is deprecated from KB 0.7.0, use RSMSpec instead." // +optional StatefulSpec *StatefulSetSpec `json:"statefulSpec,omitempty"` // Defines spec for `Consensus` workloads. It's required if the workload type is `Consensus`. // // +kubebuilder:deprecatedversion:warning="This field is deprecated from KB 0.7.0, use RSMSpec instead." // +optional ConsensusSpec *ConsensusSetSpec `json:"consensusSpec,omitempty"` // Defines spec for `Replication` workloads. // // +kubebuilder:deprecatedversion:warning="This field is deprecated from KB 0.7.0, use RSMSpec instead." // +optional ReplicationSpec *ReplicationSetSpec `json:"replicationSpec,omitempty"` // Defines workload spec of this component. // From KB 0.7.0, RSM(ReplicatedStateMachineSpec) will be the underlying CR which powers all kinds of workload in KB. // RSM is an enhanced stateful workload extension dedicated for heavy-state workloads like databases. // // +optional RSMSpec *RSMSpec `json:"rsmSpec,omitempty"` // Defines the behavior of horizontal scale. // // +optional HorizontalScalePolicy *HorizontalScalePolicy `json:"horizontalScalePolicy,omitempty"` // Defines system accounts needed to manage the component, and the statement to create them. // // +optional SystemAccounts *SystemAccountSpec `json:"systemAccounts,omitempty"` // Used to describe the purpose of the volumes mapping the name of the VolumeMounts in the PodSpec.Container field, // such as data volume, log volume, etc. When backing up the volume, the volume can be correctly backed up according // to the volumeType. // // For example: // // - `name: data, type: data` means that the volume named `data` is used to store `data`. // - `name: binlog, type: log` means that the volume named `binlog` is used to store `log`. // // NOTE: When volumeTypes is not defined, the backup function will not be supported, even if a persistent volume has // been specified. // // +listType=map // +listMapKey=name // +optional VolumeTypes []VolumeTypeSpec `json:"volumeTypes,omitempty"` // Used for custom label tags which you want to add to the component resources. // // +listType=map // +listMapKey=key // +optional CustomLabelSpecs []CustomLabelSpec `json:"customLabelSpecs,omitempty"` // Defines command to do switchover. // In particular, when workloadType=Replication, the command defined in switchoverSpec will only be executed under // the condition of cluster.componentSpecs[x].SwitchPolicy.type=Noop. // // +optional SwitchoverSpec *SwitchoverSpec `json:"switchoverSpec,omitempty"` // Defines the command to be executed when the component is ready, and the command will only be executed once after // the component becomes ready. // // +optional PostStartSpec *PostStartAction `json:"postStartSpec,omitempty"` // Defines settings to do volume protect. // // +optional VolumeProtectionSpec *VolumeProtectionSpec `json:"volumeProtectionSpec,omitempty"` // Used to inject values from other components into the current component. Values will be saved and updated in a // configmap and mounted to the current component. // // +patchMergeKey=componentDefName // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=componentDefName // +optional ComponentDefRef []ComponentDefRef `json:"componentDefRef,omitempty" patchStrategy:"merge" patchMergeKey:"componentDefName"` // Used to declare the service reference of the current component. // // +optional ServiceRefDeclarations []ServiceRefDeclaration `json:"serviceRefDeclarations,omitempty"` }
ClusterComponentDefinition provides a workload component specification template. Attributes are designed to work effectively with stateful workloads and day-2 operations behaviors. +kubebuilder:validation:XValidation:rule="has(self.workloadType) && self.workloadType == 'Consensus' ? (has(self.consensusSpec) || has(self.rsmSpec)) : !has(self.consensusSpec)",message="componentDefs.consensusSpec(deprecated) or componentDefs.rsmSpec(recommended) is required when componentDefs.workloadType is Consensus, and forbidden otherwise"
func (*ClusterComponentDefinition) DeepCopy ¶ added in v0.6.0
func (in *ClusterComponentDefinition) DeepCopy() *ClusterComponentDefinition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterComponentDefinition.
func (*ClusterComponentDefinition) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterComponentDefinition) DeepCopyInto(out *ClusterComponentDefinition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterComponentDefinition) GetCommonStatefulSpec ¶ added in v0.6.0
func (r *ClusterComponentDefinition) GetCommonStatefulSpec() (*StatefulSetSpec, error)
func (*ClusterComponentDefinition) GetStatefulSetWorkload ¶ added in v0.6.0
func (r *ClusterComponentDefinition) GetStatefulSetWorkload() StatefulSetWorkload
func (*ClusterComponentDefinition) IsStatelessWorkload ¶ added in v0.6.0
func (r *ClusterComponentDefinition) IsStatelessWorkload() bool
type ClusterComponentPhase ¶
type ClusterComponentPhase string
ClusterComponentPhase defines the phase of a cluster component as represented in cluster.status.components.phase field.
+enum +kubebuilder:validation:Enum={Creating,Running,Updating,Stopping,Stopped,Deleting,Failed,Abnormal}
const ( // CreatingClusterCompPhase indicates the component is being created. CreatingClusterCompPhase ClusterComponentPhase = "Creating" // RunningClusterCompPhase indicates the component has more than zero replicas, and all pods are up-to-date and // in a 'Running' state. RunningClusterCompPhase ClusterComponentPhase = "Running" // UpdatingClusterCompPhase indicates the component has more than zero replicas, and there are no failed pods, // it is currently being updated. UpdatingClusterCompPhase ClusterComponentPhase = "Updating" // StoppingClusterCompPhase indicates the component has zero replicas, and there are pods that are terminating. StoppingClusterCompPhase ClusterComponentPhase = "Stopping" // StoppedClusterCompPhase indicates the component has zero replicas, and all pods have been deleted. StoppedClusterCompPhase ClusterComponentPhase = "Stopped" // DeletingClusterCompPhase indicates the component is currently being deleted. DeletingClusterCompPhase ClusterComponentPhase = "Deleting" // FailedClusterCompPhase indicates the component has more than zero replicas, but there are some failed pods. // The component is not functioning. FailedClusterCompPhase ClusterComponentPhase = "Failed" // AbnormalClusterCompPhase indicates the component has more than zero replicas, but there are some failed pods. // The component is functioning, but it is in a fragile state. AbnormalClusterCompPhase ClusterComponentPhase = "Abnormal" )
func GetComponentTerminalPhases ¶
func GetComponentTerminalPhases() []ClusterComponentPhase
GetComponentTerminalPhases return Cluster's component terminal phases.
func GetComponentUpRunningPhase ¶ added in v0.6.0
func GetComponentUpRunningPhase() []ClusterComponentPhase
GetComponentUpRunningPhase returns component running or partially running phases.
type ClusterComponentService ¶
type ClusterComponentService struct { // The name of the service. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=15 Name string `json:"name"` // Determines how the Service is exposed. Valid options are ClusterIP, NodePort, and LoadBalancer. // // - `ClusterIP` allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined // by the selector or if that is not specified, they are determined by manual construction of an Endpoints object // or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published // as a set of endpoints rather than a virtual IP. // - `NodePort` builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. // - `LoadBalancer` builds on NodePort and creates an external load-balancer (if supported in the current cloud) // which routes to the same endpoints as the clusterIP. // // More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types. // // +kubebuilder:default=ClusterIP // +kubebuilder:validation:Enum={ClusterIP,NodePort,LoadBalancer} // +kubebuilder:pruning:PreserveUnknownFields // +optional ServiceType corev1.ServiceType `json:"serviceType,omitempty"` // If ServiceType is LoadBalancer, cloud provider related parameters can be put here. // More info: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer. // // +optional Annotations map[string]string `json:"annotations,omitempty"` }
func (*ClusterComponentService) DeepCopy ¶ added in v0.6.0
func (in *ClusterComponentService) DeepCopy() *ClusterComponentService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterComponentService.
func (*ClusterComponentService) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterComponentService) DeepCopyInto(out *ClusterComponentService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterComponentSpec ¶
type ClusterComponentSpec struct { // Specifies the name of the cluster's component. // This name is also part of the Service DNS name and must comply with the IANA Service Naming rule. // When ClusterComponentSpec is referenced as a template, the name is optional. Otherwise, it is required. // // +kubebuilder:validation:MaxLength=22 // +kubebuilder:validation:Pattern:=`^[a-z]([a-z0-9\-]*[a-z0-9])?$` // TODO +kubebuilder:validation:XValidation:rule="self == oldSelf",message="name is immutable" // +optional Name string `json:"name"` // References the componentDef defined in the ClusterDefinition spec. Must comply with the IANA Service Naming rule. // // +kubebuilder:validation:MaxLength=22 // +kubebuilder:validation:Pattern:=`^[a-z]([a-z0-9\-]*[a-z0-9])?$` // TODO +kubebuilder:validation:XValidation:rule="self == oldSelf",message="componentDefRef is immutable" // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0, consider using the ComponentDef instead" // +optional ComponentDefRef string `json:"componentDefRef,omitempty"` // References the name of the ComponentDefinition. // If both componentDefRef and componentDef are provided, the componentDef will take precedence over componentDefRef. // // +kubebuilder:validation:MaxLength=64 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` // +optional ComponentDef string `json:"componentDef,omitempty"` // ServiceVersion specifies the version of the service provisioned by the component. // The version should follow the syntax and semantics of the "Semantic Versioning" specification (http://semver.org/). // If not explicitly specified, the version defined in the referenced topology will be used. // If no version is specified in the topology, the latest available version will be used. // // +kubebuilder:validation:MaxLength=32 // +optional ServiceVersion string `json:"serviceVersion,omitempty"` // References the class defined in ComponentClassDefinition. // // +kubebuilder:deprecatedversion:warning="Due to the lack of practical use cases, this field is deprecated from KB 0.9.0." // +optional ClassDefRef *ClassDefRef `json:"classDefRef,omitempty"` // Defines service references for the current component. // // Based on the referenced services, they can be categorized into two types: // // - Service provided by external sources: These services are provided by external sources and are not managed by KubeBlocks. // They can be Kubernetes-based or non-Kubernetes services. For external services, an additional // ServiceDescriptor object is needed to establish the service binding. // - Service provided by other KubeBlocks clusters: These services are provided by other KubeBlocks clusters. // Binding to these services is done by specifying the name of the hosting cluster. // // Each type of service reference requires specific configurations and bindings to establish the connection and // interaction with the respective services. // Note that the ServiceRef has cluster-level semantic consistency, meaning that within the same Cluster, service // references with the same ServiceRef.Name are considered to be the same service. It is only allowed to bind to // the same Cluster or ServiceDescriptor. // // +optional ServiceRefs []ServiceRef `json:"serviceRefs,omitempty"` // To enable monitoring. // // +kubebuilder:default=false // +optional Monitor bool `json:"monitor,omitempty"` // Indicates which log file takes effect in the database cluster. // // +listType=set // +optional EnabledLogs []string `json:"enabledLogs,omitempty"` // Specifies the number of component replicas. // // +kubebuilder:validation:Required // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=1 Replicas int32 `json:"replicas"` // A group of affinity scheduling rules. // // +optional Affinity *Affinity `json:"affinity,omitempty"` // Attached to tolerate any taint that matches the triple `key,value,effect` using the matching operator `operator`. // // +kubebuilder:pruning:PreserveUnknownFields // +optional Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // Specifies the resources requests and limits of the workload. // // +kubebuilder:pruning:PreserveUnknownFields // +optional Resources corev1.ResourceRequirements `json:"resources,omitempty"` // Provides information for statefulset.spec.volumeClaimTemplates. // // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +optional VolumeClaimTemplates []ClusterComponentVolumeClaimTemplate `json:"volumeClaimTemplates,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` // Services expose endpoints that can be accessed by clients. // // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0, consider using the $.Spec.ClusterService instead" // +optional Services []ClusterComponentService `json:"services,omitempty"` // Defines the strategy for switchover and failover when workloadType is Replication. // // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional SwitchPolicy *ClusterSwitchPolicy `json:"switchPolicy,omitempty"` // Enables or disables TLS certs. // // +optional TLS bool `json:"tls,omitempty"` // Defines provider context for TLS certs. Required when TLS is enabled. // // +optional Issuer *Issuer `json:"issuer,omitempty"` // Specifies the name of the ServiceAccount that the running component depends on. // // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // Defines the update strategy for the component. // Not supported. // // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional UpdateStrategy *UpdateStrategy `json:"updateStrategy,omitempty"` // Defines the user-defined volumes. // // +optional UserResourceRefs *UserResourceRefs `json:"userResourceRefs,omitempty"` // Overrides values in default Template. // // Instance is the fundamental unit managed by KubeBlocks. // It represents a Pod with additional objects such as PVCs, Services, ConfigMaps, etc. // A component manages instances with a total count of Replicas, // and by default, all these instances are generated from the same template. // The InstanceTemplate provides a way to override values in the default template, // allowing the component to manage instances from different templates. // // +optional Instances []InstanceTemplate `json:"instances,omitempty"` }
ClusterComponentSpec defines the specifications for a cluster component. TODO +kubebuilder:validation:XValidation:rule="!has(oldSelf.componentDefRef) || has(self.componentDefRef)", message="componentDefRef is required once set" TODO +kubebuilder:validation:XValidation:rule="!has(oldSelf.componentDef) || has(self.componentDef)", message="componentDef is required once set"
func (*ClusterComponentSpec) DeepCopy ¶ added in v0.6.0
func (in *ClusterComponentSpec) DeepCopy() *ClusterComponentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterComponentSpec.
func (*ClusterComponentSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterComponentSpec) DeepCopyInto(out *ClusterComponentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterComponentSpec) ToVolumeClaimTemplates ¶
func (r *ClusterComponentSpec) ToVolumeClaimTemplates() []corev1.PersistentVolumeClaimTemplate
ToVolumeClaimTemplates convert r.VolumeClaimTemplates to []corev1.PersistentVolumeClaimTemplate.
type ClusterComponentStatus ¶
type ClusterComponentStatus struct { // Specifies the current state of the component. Phase ClusterComponentPhase `json:"phase,omitempty"` // Records detailed information about the component in its current phase. // The keys are either podName, deployName, or statefulSetName, formatted as 'ObjectKind/Name'. // // +optional Message ComponentMessageMap `json:"message,omitempty"` // Checks if all pods of the component are ready. // // +optional PodsReady *bool `json:"podsReady,omitempty"` // Indicates the time when all component pods became ready. // This is the readiness time of the last component pod. // // +optional PodsReadyTime *metav1.Time `json:"podsReadyTime,omitempty"` // Represents the status of the members. // // +optional MembersStatus []workloads.MemberStatus `json:"membersStatus,omitempty"` }
ClusterComponentStatus records components status.
func (*ClusterComponentStatus) DeepCopy ¶ added in v0.6.0
func (in *ClusterComponentStatus) DeepCopy() *ClusterComponentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterComponentStatus.
func (*ClusterComponentStatus) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterComponentStatus) DeepCopyInto(out *ClusterComponentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ClusterComponentStatus) GetMessage ¶
func (r ClusterComponentStatus) GetMessage() ComponentMessageMap
GetMessage gets message map deep copy object.
func (ClusterComponentStatus) GetObjectMessage ¶
func (r ClusterComponentStatus) GetObjectMessage(objectKind, objectName string) string
GetObjectMessage gets the k8s workload message in component status message map
func (*ClusterComponentStatus) SetMessage ¶
func (r *ClusterComponentStatus) SetMessage(messageMap ComponentMessageMap)
SetMessage overrides message map object.
func (*ClusterComponentStatus) SetObjectMessage ¶
func (r *ClusterComponentStatus) SetObjectMessage(objectKind, objectName, message string)
SetObjectMessage sets K8s workload message to component status message map.
type ClusterComponentVersion ¶
type ClusterComponentVersion struct { // Specifies a reference to one of the cluster component definition names in the ClusterDefinition API (spec.componentDefs.name). // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` ComponentDefRef string `json:"componentDefRef"` // Defines a configuration extension mechanism to handle configuration differences between versions. // The configTemplateRefs field, in conjunction with the configTemplateRefs in the ClusterDefinition, determines // the final configuration file. // // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional ConfigSpecs []ComponentConfigSpec `json:"configSpecs,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` // Defines the image for the component to connect to databases or engines. // This overrides the `image` and `env` attributes defined in clusterDefinition.spec.componentDefs.systemAccountSpec.cmdExecutorConfig. // To clear default environment settings, set systemAccountSpec.cmdExecutorConfig.env to an empty list. // // +optional SystemAccountSpec *SystemAccountShortSpec `json:"systemAccountSpec,omitempty"` // Defines the context for container images for component versions. // This value replaces the values in clusterDefinition.spec.componentDefs.podSpec.[initContainers | containers]. VersionsCtx VersionsContext `json:"versionsContext"` // Defines the images for the component to perform a switchover. // This overrides the image and env attributes defined in clusterDefinition.spec.componentDefs.SwitchoverSpec.CommandExecutorEnvItem. // // +optional SwitchoverSpec *SwitchoverShortSpec `json:"switchoverSpec,omitempty"` }
ClusterComponentVersion is an application version component spec.
func (*ClusterComponentVersion) DeepCopy ¶ added in v0.6.0
func (in *ClusterComponentVersion) DeepCopy() *ClusterComponentVersion
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterComponentVersion.
func (*ClusterComponentVersion) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterComponentVersion) DeepCopyInto(out *ClusterComponentVersion)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterComponentVolumeClaimTemplate ¶
type ClusterComponentVolumeClaimTemplate struct { // Refers to `clusterDefinition.spec.componentDefs.containers.volumeMounts.name`. // // +kubebuilder:validation:Required Name string `json:"name"` // Defines the desired characteristics of a volume requested by a pod author. // // +optional Spec PersistentVolumeClaimSpec `json:"spec,omitempty"` }
func (*ClusterComponentVolumeClaimTemplate) DeepCopy ¶ added in v0.6.0
func (in *ClusterComponentVolumeClaimTemplate) DeepCopy() *ClusterComponentVolumeClaimTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterComponentVolumeClaimTemplate.
func (*ClusterComponentVolumeClaimTemplate) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterComponentVolumeClaimTemplate) DeepCopyInto(out *ClusterComponentVolumeClaimTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterDefinition ¶
type ClusterDefinition struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ClusterDefinitionSpec `json:"spec,omitempty"` Status ClusterDefinitionStatus `json:"status,omitempty"` }
ClusterDefinition is the Schema for the clusterdefinitions API
func (*ClusterDefinition) DeepCopy ¶ added in v0.6.0
func (in *ClusterDefinition) DeepCopy() *ClusterDefinition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterDefinition.
func (*ClusterDefinition) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterDefinition) DeepCopyInto(out *ClusterDefinition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterDefinition) DeepCopyObject ¶ added in v0.6.0
func (in *ClusterDefinition) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ClusterDefinition) Default ¶
func (r *ClusterDefinition) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*ClusterDefinition) GetComponentDefByName ¶
func (r *ClusterDefinition) GetComponentDefByName(compDefName string) *ClusterComponentDefinition
GetComponentDefByName gets component definition from ClusterDefinition with compDefName
func (*ClusterDefinition) SetupWebhookWithManager ¶
func (r *ClusterDefinition) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*ClusterDefinition) ValidateCreate ¶
func (r *ClusterDefinition) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*ClusterDefinition) ValidateDelete ¶
func (r *ClusterDefinition) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*ClusterDefinition) ValidateEnabledLogConfigs ¶
func (r *ClusterDefinition) ValidateEnabledLogConfigs(compDefName string, enabledLogs []string) []string
ValidateEnabledLogConfigs validates enabledLogs against component compDefName, and returns the invalid logNames undefined in ClusterDefinition.
func (*ClusterDefinition) ValidateUpdate ¶
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type ClusterDefinitionList ¶
type ClusterDefinitionList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ClusterDefinition `json:"items"` }
ClusterDefinitionList contains a list of ClusterDefinition
func (*ClusterDefinitionList) DeepCopy ¶ added in v0.6.0
func (in *ClusterDefinitionList) DeepCopy() *ClusterDefinitionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterDefinitionList.
func (*ClusterDefinitionList) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterDefinitionList) DeepCopyInto(out *ClusterDefinitionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterDefinitionList) DeepCopyObject ¶ added in v0.6.0
func (in *ClusterDefinitionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterDefinitionProbe ¶
type ClusterDefinitionProbe struct { // How often (in seconds) to perform the probe. // // +kubebuilder:default=1 // +kubebuilder:validation:Minimum=1 PeriodSeconds int32 `json:"periodSeconds,omitempty"` // Number of seconds after which the probe times out. Defaults to 1 second. // // +kubebuilder:default=1 // +kubebuilder:validation:Minimum=1 TimeoutSeconds int32 `json:"timeoutSeconds,omitempty"` // Minimum consecutive failures for the probe to be considered failed after having succeeded. // // +kubebuilder:default=3 // +kubebuilder:validation:Minimum=2 FailureThreshold int32 `json:"failureThreshold,omitempty"` // Commands used to execute for probe. // // +optional Commands *ClusterDefinitionProbeCMDs `json:"commands,omitempty"` }
func (*ClusterDefinitionProbe) DeepCopy ¶ added in v0.6.0
func (in *ClusterDefinitionProbe) DeepCopy() *ClusterDefinitionProbe
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterDefinitionProbe.
func (*ClusterDefinitionProbe) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterDefinitionProbe) DeepCopyInto(out *ClusterDefinitionProbe)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterDefinitionProbeCMDs ¶
type ClusterDefinitionProbeCMDs struct { // Defines write checks that are executed on the probe sidecar. // // +optional Writes []string `json:"writes,omitempty"` // Defines read checks that are executed on the probe sidecar. // // +optional Queries []string `json:"queries,omitempty"` }
func (*ClusterDefinitionProbeCMDs) DeepCopy ¶ added in v0.6.0
func (in *ClusterDefinitionProbeCMDs) DeepCopy() *ClusterDefinitionProbeCMDs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterDefinitionProbeCMDs.
func (*ClusterDefinitionProbeCMDs) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterDefinitionProbeCMDs) DeepCopyInto(out *ClusterDefinitionProbeCMDs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterDefinitionProbes ¶
type ClusterDefinitionProbes struct { // Specifies the probe used for checking the running status of the component. // // +optional RunningProbe *ClusterDefinitionProbe `json:"runningProbe,omitempty"` // Specifies the probe used for checking the status of the component. // // +optional StatusProbe *ClusterDefinitionProbe `json:"statusProbe,omitempty"` // Specifies the probe used for checking the role of the component. // // +kubebuilder:deprecatedversion:warning="This field is deprecated from KB 0.7.0, use RSMSpec instead." // +optional RoleProbe *ClusterDefinitionProbe `json:"roleProbe,omitempty"` // Defines the timeout (in seconds) for the role probe after all pods of the component are ready. // The system will check if the application is available in the pod. // If pods exceed the InitializationTimeoutSeconds time without a role label, this component will enter the // Failed/Abnormal phase. // // Note that this configuration will only take effect if the component supports RoleProbe // and will not affect the life cycle of the pod. default values are 60 seconds. // // +kubebuilder:validation:Minimum=30 // +optional RoleProbeTimeoutAfterPodsReady int32 `json:"roleProbeTimeoutAfterPodsReady,omitempty"` }
func (*ClusterDefinitionProbes) DeepCopy ¶ added in v0.6.0
func (in *ClusterDefinitionProbes) DeepCopy() *ClusterDefinitionProbes
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterDefinitionProbes.
func (*ClusterDefinitionProbes) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterDefinitionProbes) DeepCopyInto(out *ClusterDefinitionProbes)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterDefinitionSpec ¶
type ClusterDefinitionSpec struct { // Specifies the well-known application cluster type, such as mysql, redis, or mongodb. // // +kubebuilder:validation:MaxLength=24 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$` // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional Type string `json:"type,omitempty"` // Provides the definitions for the cluster components. // // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional ComponentDefs []ClusterComponentDefinition `json:"componentDefs" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` // Connection credential template used for creating a connection credential secret for cluster objects. // // Built-in objects are: // // - `$(RANDOM_PASSWD)` random 8 characters. // - `$(STRONG_RANDOM_PASSWD)` random 16 characters, with mixed cases, digits and symbols. // - `$(UUID)` generate a random UUID v4 string. // - `$(UUID_B64)` generate a random UUID v4 BASE64 encoded string. // - `$(UUID_STR_B64)` generate a random UUID v4 string then BASE64 encoded. // - `$(UUID_HEX)` generate a random UUID v4 HEX representation. // - `$(HEADLESS_SVC_FQDN)` headless service FQDN placeholder, value pattern is `$(CLUSTER_NAME)-$(1ST_COMP_NAME)-headless.$(NAMESPACE).svc`, // where 1ST_COMP_NAME is the 1st component that provide `ClusterDefinition.spec.componentDefs[].service` attribute; // - `$(SVC_FQDN)` service FQDN placeholder, value pattern is `$(CLUSTER_NAME)-$(1ST_COMP_NAME).$(NAMESPACE).svc`, // where 1ST_COMP_NAME is the 1st component that provide `ClusterDefinition.spec.componentDefs[].service` attribute; // - `$(SVC_PORT_{PORT-NAME})` is ServicePort's port value with specified port name, i.e, a servicePort JSON struct: // `{"name": "mysql", "targetPort": "mysqlContainerPort", "port": 3306}`, and `$(SVC_PORT_mysql)` in the // connection credential value is 3306. // // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional ConnectionCredential map[string]string `json:"connectionCredential,omitempty"` // Topologies represents the different topologies within the cluster. // // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=128 // +optional Topologies []ClusterTopology `json:"topologies,omitempty"` }
ClusterDefinitionSpec defines the desired state of ClusterDefinition
func (*ClusterDefinitionSpec) DeepCopy ¶ added in v0.6.0
func (in *ClusterDefinitionSpec) DeepCopy() *ClusterDefinitionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterDefinitionSpec.
func (*ClusterDefinitionSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterDefinitionSpec) DeepCopyInto(out *ClusterDefinitionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterDefinitionStatus ¶
type ClusterDefinitionStatus struct { // Represents the most recent generation observed for this ClusterDefinition. // // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // Specifies the current phase of the ClusterDefinition. Valid values are `empty`, `Available`, `Unavailable`. // When `Available`, the ClusterDefinition is ready and can be referenced by related objects. Phase Phase `json:"phase,omitempty"` // Provides additional information about the current phase. // // +optional Message string `json:"message,omitempty"` // Topologies this ClusterDefinition supported. // // +optional Topologies string `json:"topologies,omitempty"` // The service references declared by this ClusterDefinition. // // +optional ServiceRefs string `json:"serviceRefs,omitempty"` }
ClusterDefinitionStatus defines the observed state of ClusterDefinition
func (*ClusterDefinitionStatus) DeepCopy ¶ added in v0.6.0
func (in *ClusterDefinitionStatus) DeepCopy() *ClusterDefinitionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterDefinitionStatus.
func (*ClusterDefinitionStatus) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterDefinitionStatus) DeepCopyInto(out *ClusterDefinitionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ClusterDefinitionStatus) GetTerminalPhases ¶
func (r ClusterDefinitionStatus) GetTerminalPhases() []Phase
type ClusterList ¶
type ClusterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Cluster `json:"items"` }
ClusterList contains a list of Cluster.
func (*ClusterList) DeepCopy ¶ added in v0.6.0
func (in *ClusterList) DeepCopy() *ClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList.
func (*ClusterList) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterList) DeepCopyInto(out *ClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterList) DeepCopyObject ¶ added in v0.6.0
func (in *ClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterMonitor ¶ added in v0.6.0
type ClusterMonitor struct { // Defines the frequency at which monitoring occurs. If set to 0, monitoring is disabled. // // +kubebuilder:validation:XIntOrString // +optional MonitoringInterval *intstr.IntOrString `json:"monitoringInterval,omitempty"` }
func (*ClusterMonitor) DeepCopy ¶ added in v0.6.0
func (in *ClusterMonitor) DeepCopy() *ClusterMonitor
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterMonitor.
func (*ClusterMonitor) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterMonitor) DeepCopyInto(out *ClusterMonitor)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterNetwork ¶ added in v0.6.0
type ClusterNetwork struct { // Indicates whether the host network can be accessed. By default, this is set to false. // // +kubebuilder:default=false // +optional HostNetworkAccessible bool `json:"hostNetworkAccessible,omitempty"` // Indicates whether the network is accessible to the public. By default, this is set to false. // // +kubebuilder:default=false // +optional PubliclyAccessible bool `json:"publiclyAccessible,omitempty"` }
func (*ClusterNetwork) DeepCopy ¶ added in v0.6.0
func (in *ClusterNetwork) DeepCopy() *ClusterNetwork
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNetwork.
func (*ClusterNetwork) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterNetwork) DeepCopyInto(out *ClusterNetwork)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterObjectReference ¶ added in v0.8.0
type ClusterObjectReference struct { // CompDef specifies the definition used by the component that the referent object resident in. // If not specified, the component itself will be used. // +optional CompDef string `json:"compDef,omitempty"` // Name of the referent object. // +optional Name string `json:"name,omitempty"` // Specify whether the object must be defined. // +optional Optional *bool `json:"optional,omitempty"` // This option defines the behavior when multiple component objects match the specified @CompDef. // If not provided, an error will be raised when handling multiple matches. // // +optional MultipleClusterObjectOption *MultipleClusterObjectOption `json:"multipleClusterObjectOption,omitempty"` }
ClusterObjectReference defines information to let you locate the referenced object inside the same cluster.
func (*ClusterObjectReference) DeepCopy ¶ added in v0.8.0
func (in *ClusterObjectReference) DeepCopy() *ClusterObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterObjectReference.
func (*ClusterObjectReference) DeepCopyInto ¶ added in v0.8.0
func (in *ClusterObjectReference) DeepCopyInto(out *ClusterObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterPhase ¶
type ClusterPhase string
ClusterPhase defines the phase of the Cluster within the .status.phase field.
+enum +kubebuilder:validation:Enum={Creating,Running,Updating,Stopping,Stopped,Deleting,Failed,Abnormal}
const ( // CreatingClusterPhase represents all components are in `Creating` phase. CreatingClusterPhase ClusterPhase = "Creating" // RunningClusterPhase represents all components are in `Running` phase, indicates that the cluster is functioning properly. RunningClusterPhase ClusterPhase = "Running" // UpdatingClusterPhase represents all components are in `Creating`, `Running` or `Updating` phase, and at least one // component is in `Creating` or `Updating` phase, indicates that the cluster is undergoing an update. UpdatingClusterPhase ClusterPhase = "Updating" // StoppingClusterPhase represents at least one component is in `Stopping` phase, indicates that the cluster is in // the process of stopping. StoppingClusterPhase ClusterPhase = "Stopping" // StoppedClusterPhase represents all components are in `Stopped` phase, indicates that the cluster has stopped and // is not providing any functionality. StoppedClusterPhase ClusterPhase = "Stopped" // DeletingClusterPhase indicates the cluster is being deleted. DeletingClusterPhase ClusterPhase = "Deleting" // FailedClusterPhase represents all components are in `Failed` phase, indicates that the cluster is unavailable. FailedClusterPhase ClusterPhase = "Failed" // AbnormalClusterPhase represents some components are in `Failed` or `Abnormal` phase, indicates that the cluster // is in a fragile state and troubleshooting is required. AbnormalClusterPhase ClusterPhase = "Abnormal" )
func GetClusterUpRunningPhases ¶
func GetClusterUpRunningPhases() []ClusterPhase
GetClusterUpRunningPhases returns Cluster running or partially running phases.
func GetReconfiguringRunningPhases ¶ added in v0.6.0
func GetReconfiguringRunningPhases() []ClusterPhase
GetReconfiguringRunningPhases return Cluster running or partially running phases.
type ClusterResourceConstraintSelector ¶ added in v0.6.0
type ClusterResourceConstraintSelector struct { // clusterDefRef is the name of the cluster definition. // +kubebuilder:validation:Required ClusterDefRef string `json:"clusterDefRef"` // selector is used to bind the resource constraint to components. // +listType=map // +listMapKey=componentDefRef // +kubebuilder:validation:Required Components []ComponentResourceConstraintSelector `json:"components"` }
func (*ClusterResourceConstraintSelector) DeepCopy ¶ added in v0.6.0
func (in *ClusterResourceConstraintSelector) DeepCopy() *ClusterResourceConstraintSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterResourceConstraintSelector.
func (*ClusterResourceConstraintSelector) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterResourceConstraintSelector) DeepCopyInto(out *ClusterResourceConstraintSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterResources ¶ added in v0.6.0
type ClusterResources struct { // Specifies the amount of processing power the cluster needs. // For more information, refer to: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // // +optional CPU resource.Quantity `json:"cpu,omitempty"` // Specifies the amount of memory the cluster needs. // For more information, refer to: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // // +optional Memory resource.Quantity `json:"memory,omitempty"` }
func (*ClusterResources) DeepCopy ¶ added in v0.6.0
func (in *ClusterResources) DeepCopy() *ClusterResources
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterResources.
func (*ClusterResources) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterResources) DeepCopyInto(out *ClusterResources)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterService ¶ added in v0.8.0
type ClusterService struct { Service `json:",inline"` // Extends the ServiceSpec.Selector by allowing the specification of a sharding name, which is defined in // cluster.spec.shardingSpecs[x].name, to be used as a selector for the service. // Note that this and the ComponentSelector are mutually exclusive and cannot be set simultaneously. // // +optional ShardingSelector string `json:"shardingSelector,omitempty"` // Extends the ServiceSpec.Selector by allowing the specification of a component, to be used as a selector for the service. // Note that this and the ShardingSelector are mutually exclusive and cannot be set simultaneously. // // +optional ComponentSelector string `json:"componentSelector,omitempty"` }
ClusterService defines the service of a cluster.
func (*ClusterService) DeepCopy ¶ added in v0.8.0
func (in *ClusterService) DeepCopy() *ClusterService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterService.
func (*ClusterService) DeepCopyInto ¶ added in v0.8.0
func (in *ClusterService) DeepCopyInto(out *ClusterService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterSpec ¶
type ClusterSpec struct { // Refers to the ClusterDefinition name. // If not specified, ComponentDef must be specified for each Component in ComponentSpecs. // // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="clusterDefinitionRef is immutable" // +optional ClusterDefRef string `json:"clusterDefinitionRef,omitempty"` // Refers to the ClusterVersion name. // // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional ClusterVersionRef string `json:"clusterVersionRef,omitempty"` // Topology specifies the topology to use for the cluster. If not specified, the default topology will be used. // Cannot be updated. // // +kubebuilder:validation:MaxLength=32 // +optional Topology string `json:"topology,omitempty"` // Specifies the cluster termination policy. // // - DoNotTerminate will block delete operation. // - Halt will delete workload resources such as statefulset, deployment workloads but keep PVCs. // - Delete is based on Halt and deletes PVCs. // - WipeOut is based on Delete and wipe out all volume snapshots and snapshot data from backup storage location. // // +kubebuilder:validation:Required TerminationPolicy TerminationPolicyType `json:"terminationPolicy"` // List of ShardingSpec used to define components with a sharding topology structure that make up a cluster. // ShardingSpecs and ComponentSpecs cannot both be empty at the same time. // // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=128 // +optional ShardingSpecs []ShardingSpec `json:"shardingSpecs,omitempty"` // List of componentSpec used to define the components that make up a cluster. // ComponentSpecs and ShardingSpecs cannot both be empty at the same time. // // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=128 // +kubebuilder:validation:XValidation:rule="self.all(x, size(self.filter(c, c.name == x.name)) == 1)",message="duplicated component" // +kubebuilder:validation:XValidation:rule="self.all(x, size(self.filter(c, has(c.componentDef))) == 0) || self.all(x, size(self.filter(c, has(c.componentDef))) == size(self))",message="two kinds of definition API can not be used simultaneously" // +optional ComponentSpecs []ClusterComponentSpec `json:"componentSpecs,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` // Defines the services to access a cluster. // // +kubebuilder:pruning:PreserveUnknownFields // +optional Services []ClusterService `json:"services,omitempty"` // A group of affinity scheduling rules. // // +optional Affinity *Affinity `json:"affinity,omitempty"` // Attached to tolerate any taint that matches the triple `key,value,effect` using the matching operator `operator`. // // +kubebuilder:pruning:PreserveUnknownFields // +optional Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // Cluster backup configuration. // // +optional Backup *ClusterBackup `json:"backup,omitempty"` // Describes how pods are distributed across node. // // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional Tenancy TenancyType `json:"tenancy,omitempty"` // Describes the availability policy, including zone, node, and none. // // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional AvailabilityPolicy AvailabilityPolicyType `json:"availabilityPolicy,omitempty"` // Specifies the replicas of the first componentSpec, if the replicas of the first componentSpec is specified, // this value will be ignored. // //+kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional Replicas *int32 `json:"replicas,omitempty"` // Specifies the resources of the first componentSpec, if the resources of the first componentSpec is specified, // this value will be ignored. // // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional Resources ClusterResources `json:"resources,omitempty"` // Specifies the storage of the first componentSpec, if the storage of the first componentSpec is specified, // this value will be ignored. // // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional Storage ClusterStorage `json:"storage,omitempty"` // The configuration of monitor. // // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional Monitor ClusterMonitor `json:"monitor,omitempty"` // The configuration of network. // // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional Network *ClusterNetwork `json:"network,omitempty"` }
ClusterSpec defines the desired state of Cluster.
func (*ClusterSpec) DeepCopy ¶ added in v0.6.0
func (in *ClusterSpec) DeepCopy() *ClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec.
func (*ClusterSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ClusterSpec) GetComponentByName ¶
func (r ClusterSpec) GetComponentByName(componentName string) *ClusterComponentSpec
GetComponentByName gets component by name.
func (ClusterSpec) GetComponentDefRefName ¶
func (r ClusterSpec) GetComponentDefRefName(componentName string) string
GetComponentDefRefName gets the name of referenced component definition.
func (ClusterSpec) GetDefNameMappingComponents ¶
func (r ClusterSpec) GetDefNameMappingComponents() map[string][]ClusterComponentSpec
GetDefNameMappingComponents returns ComponentDefRef name mapping ClusterComponentSpec.
func (ClusterSpec) ValidateEnabledLogs ¶
func (r ClusterSpec) ValidateEnabledLogs(cd *ClusterDefinition) error
ValidateEnabledLogs validates enabledLogs config in cluster.yaml, and returns metav1.Condition when detecting invalid values.
type ClusterStatus ¶
type ClusterStatus struct { // The most recent generation number that has been observed by the controller. // // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // The current phase of the Cluster. // // +optional Phase ClusterPhase `json:"phase,omitempty"` // Provides additional information about the current phase. // // +optional Message string `json:"message,omitempty"` // Records the current status information of all components within the cluster. // // +optional Components map[string]ClusterComponentStatus `json:"components,omitempty"` // Represents the generation number of the referenced ClusterDefinition. // // +optional ClusterDefGeneration int64 `json:"clusterDefGeneration,omitempty"` // Describes the current state of the cluster API Resource, such as warnings. // // +optional Conditions []metav1.Condition `json:"conditions,omitempty"` }
ClusterStatus defines the observed state of Cluster.
func (*ClusterStatus) DeepCopy ¶ added in v0.6.0
func (in *ClusterStatus) DeepCopy() *ClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus.
func (*ClusterStatus) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterStatus) SetComponentStatus ¶
func (r *ClusterStatus) SetComponentStatus(name string, status ClusterComponentStatus)
SetComponentStatus does safe operation on ClusterStatus.Components map object update.
type ClusterStorage ¶ added in v0.6.0
type ClusterStorage struct { // Specifies the amount of storage the cluster needs. // For more information, refer to: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // // +optional Size resource.Quantity `json:"size,omitempty"` }
func (*ClusterStorage) DeepCopy ¶ added in v0.6.0
func (in *ClusterStorage) DeepCopy() *ClusterStorage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStorage.
func (*ClusterStorage) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterStorage) DeepCopyInto(out *ClusterStorage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterSwitchPolicy ¶
type ClusterSwitchPolicy struct { // Type specifies the type of switch policy to be applied. // // +kubebuilder:validation:Required // +kubebuilder:default=Noop // +optional Type SwitchPolicyType `json:"type"` }
ClusterSwitchPolicy defines the switch policy for a cluster.
func (*ClusterSwitchPolicy) DeepCopy ¶ added in v0.6.0
func (in *ClusterSwitchPolicy) DeepCopy() *ClusterSwitchPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSwitchPolicy.
func (*ClusterSwitchPolicy) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterSwitchPolicy) DeepCopyInto(out *ClusterSwitchPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterTopology ¶ added in v0.9.0
type ClusterTopology struct { // Name is the unique identifier for the cluster topology. // Cannot be updated. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=32 Name string `json:"name"` // Components specifies the components in the topology. // // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=128 Components []ClusterTopologyComponent `json:"components"` // Orders defines the orders of components within the topology. // // +optional Orders *ClusterTopologyOrders `json:"orders,omitempty"` // Default indicates whether this topology is the default configuration. // // +optional Default bool `json:"default,omitempty"` }
ClusterTopology represents the definition for a specific cluster topology.
func (*ClusterTopology) DeepCopy ¶ added in v0.9.0
func (in *ClusterTopology) DeepCopy() *ClusterTopology
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTopology.
func (*ClusterTopology) DeepCopyInto ¶ added in v0.9.0
func (in *ClusterTopology) DeepCopyInto(out *ClusterTopology)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterTopologyComponent ¶ added in v0.9.0
type ClusterTopologyComponent struct { // Name defines the name of the component. // This name is also part of Service DNS name, following IANA Service Naming rules. // Cannot be updated. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=16 // +kubebuilder:validation:Pattern:=`^[a-z]([a-z0-9\-]*[a-z0-9])?$` Name string `json:"name"` // CompDef specifies the component definition to use, either as a specific name or a name prefix. // Cannot be updated. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=64 CompDef string `json:"compDef"` }
ClusterTopologyComponent defines a component within a cluster topology.
func (*ClusterTopologyComponent) DeepCopy ¶ added in v0.9.0
func (in *ClusterTopologyComponent) DeepCopy() *ClusterTopologyComponent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTopologyComponent.
func (*ClusterTopologyComponent) DeepCopyInto ¶ added in v0.9.0
func (in *ClusterTopologyComponent) DeepCopyInto(out *ClusterTopologyComponent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterTopologyOrders ¶ added in v0.9.0
type ClusterTopologyOrders struct { // Provision defines the order in which components should be provisioned in the cluster. // Components with the same order can be listed together, separated by commas. // // +optional Provision []string `json:"provision,omitempty"` // Terminate defines the order in which components should be terminated in the cluster. // Components with the same order can be listed together, separated by commas. // // +optional Terminate []string `json:"terminate,omitempty"` // Update defines the order in which components should be updated in the cluster. // Components with the same order can be listed together, separated by commas. // // +optional Update []string `json:"update,omitempty"` }
ClusterTopologyOrders defines the orders for components within a topology.
func (*ClusterTopologyOrders) DeepCopy ¶ added in v0.9.0
func (in *ClusterTopologyOrders) DeepCopy() *ClusterTopologyOrders
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTopologyOrders.
func (*ClusterTopologyOrders) DeepCopyInto ¶ added in v0.9.0
func (in *ClusterTopologyOrders) DeepCopyInto(out *ClusterTopologyOrders)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterVersion ¶
type ClusterVersion struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ClusterVersionSpec `json:"spec,omitempty"` Status ClusterVersionStatus `json:"status,omitempty"` }
ClusterVersion is the Schema for the ClusterVersions API
func (*ClusterVersion) DeepCopy ¶ added in v0.6.0
func (in *ClusterVersion) DeepCopy() *ClusterVersion
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVersion.
func (*ClusterVersion) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterVersion) DeepCopyInto(out *ClusterVersion)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterVersion) DeepCopyObject ¶ added in v0.6.0
func (in *ClusterVersion) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ClusterVersion) GetInconsistentComponentsInfo ¶
func (r *ClusterVersion) GetInconsistentComponentsInfo(clusterDef *ClusterDefinition) ([]string, []string)
GetInconsistentComponentsInfo get clusterVersion invalid component name and no containers component compared with clusterDefinitionDef
func (*ClusterVersion) SetupWebhookWithManager ¶
func (r *ClusterVersion) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*ClusterVersion) ValidateCreate ¶
func (r *ClusterVersion) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*ClusterVersion) ValidateDelete ¶
func (r *ClusterVersion) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*ClusterVersion) ValidateUpdate ¶
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type ClusterVersionList ¶
type ClusterVersionList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ClusterVersion `json:"items"` }
ClusterVersionList contains a list of ClusterVersion
func (*ClusterVersionList) DeepCopy ¶ added in v0.6.0
func (in *ClusterVersionList) DeepCopy() *ClusterVersionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVersionList.
func (*ClusterVersionList) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterVersionList) DeepCopyInto(out *ClusterVersionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterVersionList) DeepCopyObject ¶ added in v0.6.0
func (in *ClusterVersionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterVersionSpec ¶
type ClusterVersionSpec struct { // Specifies a reference to the ClusterDefinition. // // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` ClusterDefinitionRef string `json:"clusterDefinitionRef"` // Contains a list of versioning contexts for the components' containers. // // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 // +patchMergeKey=componentDefRef // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=componentDefRef ComponentVersions []ClusterComponentVersion `json:"componentVersions" patchStrategy:"merge,retainKeys" patchMergeKey:"componentDefRef"` }
ClusterVersionSpec defines the desired state of ClusterVersion
func (*ClusterVersionSpec) DeepCopy ¶ added in v0.6.0
func (in *ClusterVersionSpec) DeepCopy() *ClusterVersionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVersionSpec.
func (*ClusterVersionSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterVersionSpec) DeepCopyInto(out *ClusterVersionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ClusterVersionSpec) GetDefNameMappingComponents ¶
func (r ClusterVersionSpec) GetDefNameMappingComponents() map[string]*ClusterComponentVersion
GetDefNameMappingComponents returns ComponentDefRef name mapping ClusterComponentVersion.
type ClusterVersionStatus ¶
type ClusterVersionStatus struct { // The current phase of the ClusterVersion. // // +optional Phase Phase `json:"phase,omitempty"` // Provides additional information about the current phase. // // +optional Message string `json:"message,omitempty"` // The generation number that has been observed by the controller. // // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // The generation number of the ClusterDefinition that is currently being referenced. // // +optional ClusterDefGeneration int64 `json:"clusterDefGeneration,omitempty"` }
ClusterVersionStatus defines the observed state of ClusterVersion
func (*ClusterVersionStatus) DeepCopy ¶ added in v0.6.0
func (in *ClusterVersionStatus) DeepCopy() *ClusterVersionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVersionStatus.
func (*ClusterVersionStatus) DeepCopyInto ¶ added in v0.6.0
func (in *ClusterVersionStatus) DeepCopyInto(out *ClusterVersionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ClusterVersionStatus) GetTerminalPhases ¶
func (r ClusterVersionStatus) GetTerminalPhases() []Phase
type CmdExecutorConfig ¶
type CmdExecutorConfig struct { CommandExecutorEnvItem `json:",inline"` CommandExecutorItem `json:",inline"` }
CmdExecutorConfig specifies how to perform creation and deletion statements.
func (*CmdExecutorConfig) DeepCopy ¶ added in v0.6.0
func (in *CmdExecutorConfig) DeepCopy() *CmdExecutorConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CmdExecutorConfig.
func (*CmdExecutorConfig) DeepCopyInto ¶ added in v0.6.0
func (in *CmdExecutorConfig) DeepCopyInto(out *CmdExecutorConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CommandExecutorEnvItem ¶
type CommandExecutorEnvItem struct { // Specifies the image used to execute the command. // // +kubebuilder:validation:Required Image string `json:"image"` // A list of environment variables that will be injected into the command execution context. // // +kubebuilder:pruning:PreserveUnknownFields // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +optional Env []corev1.EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` }
func (*CommandExecutorEnvItem) DeepCopy ¶ added in v0.6.0
func (in *CommandExecutorEnvItem) DeepCopy() *CommandExecutorEnvItem
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommandExecutorEnvItem.
func (*CommandExecutorEnvItem) DeepCopyInto ¶ added in v0.6.0
func (in *CommandExecutorEnvItem) DeepCopyInto(out *CommandExecutorEnvItem)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CommandExecutorItem ¶
type CommandExecutorItem struct { // The command to be executed. // // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 Command []string `json:"command"` // Additional parameters used in the execution of the command. // // +optional Args []string `json:"args,omitempty"` }
func (*CommandExecutorItem) DeepCopy ¶ added in v0.6.0
func (in *CommandExecutorItem) DeepCopy() *CommandExecutorItem
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommandExecutorItem.
func (*CommandExecutorItem) DeepCopyInto ¶ added in v0.6.0
func (in *CommandExecutorItem) DeepCopyInto(out *CommandExecutorItem)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CompletionProbe ¶ added in v0.9.0
type CompletionProbe struct { // Specifies the number of seconds to wait after the resource has been patched before initiating completion probes. // The default value is 5 seconds, with a minimum value of 1. // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=5 // +optional InitialDelaySeconds int32 `json:"initialDelaySeconds,omitempty"` // Defines the number of seconds after which the probe times out. // The default value is 60 seconds, with a minimum value of 1. // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=60 // +optional TimeoutSeconds int32 `json:"timeoutSeconds,omitempty"` // Indicates the frequency (in seconds) at which the probe should be performed. // The default value is 5 seconds, with a minimum value of 1. // +kubebuilder:validation:Minimum=1 // +kubebuilder:default=5 // +optional PeriodSeconds int32 `json:"periodSeconds,omitempty"` // Executes expressions regularly, based on the value of PeriodSeconds, to determine if the action has been completed. // +kubebuilder:validation:Required MatchExpressions MatchExpressions `json:"matchExpressions"` }
func (*CompletionProbe) DeepCopy ¶ added in v0.9.0
func (in *CompletionProbe) DeepCopy() *CompletionProbe
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompletionProbe.
func (*CompletionProbe) DeepCopyInto ¶ added in v0.9.0
func (in *CompletionProbe) DeepCopyInto(out *CompletionProbe)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Component ¶ added in v0.8.0
type Component struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ComponentSpec `json:"spec,omitempty"` Status ComponentStatus `json:"status,omitempty"` }
Component is the Schema for the components API
func (*Component) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Component.
func (*Component) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Component) DeepCopyObject ¶ added in v0.8.0
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Component) Default ¶ added in v0.8.0
func (r *Component) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*Component) SetupWebhookWithManager ¶ added in v0.8.0
func (*Component) ValidateCreate ¶ added in v0.8.0
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*Component) ValidateDelete ¶ added in v0.8.0
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
type ComponentClass ¶
type ComponentClass struct { // name is the class name // +optional Name string `json:"name,omitempty"` // args are variable's value // +optional Args []string `json:"args,omitempty"` // the CPU of the class // +optional CPU resource.Quantity `json:"cpu,omitempty"` // the memory of the class // +optional Memory resource.Quantity `json:"memory,omitempty"` }
func (*ComponentClass) Cmp ¶ added in v0.6.0
func (r *ComponentClass) Cmp(b *ComponentClass) int
func (*ComponentClass) DeepCopy ¶ added in v0.6.0
func (in *ComponentClass) DeepCopy() *ComponentClass
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentClass.
func (*ComponentClass) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentClass) DeepCopyInto(out *ComponentClass)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ComponentClass) ToResourceRequirements ¶
func (r *ComponentClass) ToResourceRequirements() corev1.ResourceRequirements
type ComponentClassDefinition ¶
type ComponentClassDefinition struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ComponentClassDefinitionSpec `json:"spec,omitempty"` Status ComponentClassDefinitionStatus `json:"status,omitempty"` }
ComponentClassDefinition is the Schema for the componentclassdefinitions API
func (*ComponentClassDefinition) DeepCopy ¶ added in v0.6.0
func (in *ComponentClassDefinition) DeepCopy() *ComponentClassDefinition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentClassDefinition.
func (*ComponentClassDefinition) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentClassDefinition) DeepCopyInto(out *ComponentClassDefinition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ComponentClassDefinition) DeepCopyObject ¶ added in v0.6.0
func (in *ComponentClassDefinition) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ComponentClassDefinitionList ¶
type ComponentClassDefinitionList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ComponentClassDefinition `json:"items"` }
ComponentClassDefinitionList contains a list of ComponentClassDefinition
func (*ComponentClassDefinitionList) DeepCopy ¶ added in v0.6.0
func (in *ComponentClassDefinitionList) DeepCopy() *ComponentClassDefinitionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentClassDefinitionList.
func (*ComponentClassDefinitionList) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentClassDefinitionList) DeepCopyInto(out *ComponentClassDefinitionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ComponentClassDefinitionList) DeepCopyObject ¶ added in v0.6.0
func (in *ComponentClassDefinitionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ComponentClassDefinitionSpec ¶
type ComponentClassDefinitionSpec struct { // group defines a list of class series that conform to the same constraint. // +optional Groups []ComponentClassGroup `json:"groups,omitempty"` }
ComponentClassDefinitionSpec defines the desired state of ComponentClassDefinition
func (*ComponentClassDefinitionSpec) DeepCopy ¶ added in v0.6.0
func (in *ComponentClassDefinitionSpec) DeepCopy() *ComponentClassDefinitionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentClassDefinitionSpec.
func (*ComponentClassDefinitionSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentClassDefinitionSpec) DeepCopyInto(out *ComponentClassDefinitionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentClassDefinitionStatus ¶
type ComponentClassDefinitionStatus struct { // observedGeneration is the most recent generation observed for this // ComponentClassDefinition. It corresponds to the ComponentClassDefinition's generation, which is // updated on mutation by the API Server. // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // classes is the list of classes that have been observed for this ComponentClassDefinition Classes []ComponentClass `json:"classes,omitempty"` }
ComponentClassDefinitionStatus defines the observed state of ComponentClassDefinition
func (*ComponentClassDefinitionStatus) DeepCopy ¶ added in v0.6.0
func (in *ComponentClassDefinitionStatus) DeepCopy() *ComponentClassDefinitionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentClassDefinitionStatus.
func (*ComponentClassDefinitionStatus) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentClassDefinitionStatus) DeepCopyInto(out *ComponentClassDefinitionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentClassGroup ¶
type ComponentClassGroup struct { // template is a class definition template that uses the Go template syntax and allows for variable declaration. // When defining a class in Series, specifying the variable's value is sufficient, as the complete class // definition will be generated through rendering the template. // // For example: // // “`yaml // template: | // cpu: "{{ or .cpu 1 }}" // memory: "{{ or .memory 4 }}Gi" // “` // // +optional Template string `json:"template,omitempty"` // vars defines the variables declared in the template and will be used to generating the complete class definition by // render the template. // +listType=set // +optional Vars []string `json:"vars,omitempty"` // series is a series of class definitions. // +optional Series []ComponentClassSeries `json:"series,omitempty"` }
func (*ComponentClassGroup) DeepCopy ¶ added in v0.6.0
func (in *ComponentClassGroup) DeepCopy() *ComponentClassGroup
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentClassGroup.
func (*ComponentClassGroup) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentClassGroup) DeepCopyInto(out *ComponentClassGroup)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentClassSeries ¶
type ComponentClassSeries struct { // namingTemplate is a template that uses the Go template syntax and allows for referencing variables defined // in ComponentClassGroup.Template. This enables dynamic generation of class names. // For example: // name: "general-{{ .cpu }}c{{ .memory }}g" // +optional NamingTemplate string `json:"namingTemplate,omitempty"` // classes are definitions of classes that come in two forms. In the first form, only ComponentClass.Args // need to be defined, and the complete class definition is generated by rendering the ComponentClassGroup.Template // and Name. In the second form, the Name, CPU and Memory must be defined. // +optional Classes []ComponentClass `json:"classes,omitempty"` }
func (*ComponentClassSeries) DeepCopy ¶ added in v0.6.0
func (in *ComponentClassSeries) DeepCopy() *ComponentClassSeries
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentClassSeries.
func (*ComponentClassSeries) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentClassSeries) DeepCopyInto(out *ComponentClassSeries)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentConfigSpec ¶
type ComponentConfigSpec struct { ComponentTemplateSpec `json:",inline"` // Defines a list of keys. // If left empty, ConfigConstraint applies to all keys in the configmap. // // +listType=set // +optional Keys []string `json:"keys,omitempty"` // An optional field that defines the secondary rendered config spec. // // +optional LegacyRenderedConfigSpec *LegacyRenderedTemplateSpec `json:"legacyRenderedConfigSpec,omitempty"` // An optional field that defines the name of the referenced configuration constraints object. // // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` // +optional ConfigConstraintRef string `json:"constraintRef,omitempty"` // An optional field where the list of containers will be injected into EnvFrom. // // +listType=set // +optional AsEnvFrom []string `json:"asEnvFrom,omitempty"` // An optional field defines which resources change trigger re-render config. // +listType=set // +optional ReRenderResourceTypes []RerenderResourceType `json:"reRenderResourceTypes,omitempty"` }
func (*ComponentConfigSpec) DeepCopy ¶ added in v0.6.0
func (in *ComponentConfigSpec) DeepCopy() *ComponentConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentConfigSpec.
func (*ComponentConfigSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentConfigSpec) DeepCopyInto(out *ComponentConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentDefRef ¶ added in v0.6.0
type ComponentDefRef struct { // The name of the componentDef to be selected. // // +kubebuilder:validation:Required ComponentDefName string `json:"componentDefName"` // Defines the policy to be followed in case of a failure in finding the component. // // +kubebuilder:validation:Enum={Ignore,Fail} // +default="Ignore" // +optional FailurePolicy FailurePolicyType `json:"failurePolicy,omitempty"` // The values that are to be injected as environment variables into each component. // // +kbubebuilder:validation:Required // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional ComponentRefEnvs []ComponentRefEnv `json:"componentRefEnv" patchStrategy:"merge" patchMergeKey:"name"` }
ComponentDefRef is used to select the component and its fields to be referenced.
func (*ComponentDefRef) DeepCopy ¶ added in v0.6.0
func (in *ComponentDefRef) DeepCopy() *ComponentDefRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentDefRef.
func (*ComponentDefRef) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentDefRef) DeepCopyInto(out *ComponentDefRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentDefinition ¶ added in v0.8.0
type ComponentDefinition struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ComponentDefinitionSpec `json:"spec,omitempty"` Status ComponentDefinitionStatus `json:"status,omitempty"` }
ComponentDefinition is the Schema for the componentdefinitions API
func (*ComponentDefinition) DeepCopy ¶ added in v0.8.0
func (in *ComponentDefinition) DeepCopy() *ComponentDefinition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentDefinition.
func (*ComponentDefinition) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentDefinition) DeepCopyInto(out *ComponentDefinition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ComponentDefinition) DeepCopyObject ¶ added in v0.8.0
func (in *ComponentDefinition) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ComponentDefinition) Default ¶ added in v0.8.0
func (r *ComponentDefinition) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*ComponentDefinition) SetupWebhookWithManager ¶ added in v0.8.0
func (r *ComponentDefinition) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*ComponentDefinition) ValidateCreate ¶ added in v0.8.0
func (r *ComponentDefinition) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*ComponentDefinition) ValidateDelete ¶ added in v0.8.0
func (r *ComponentDefinition) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*ComponentDefinition) ValidateUpdate ¶ added in v0.8.0
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type ComponentDefinitionList ¶ added in v0.8.0
type ComponentDefinitionList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ComponentDefinition `json:"items"` }
ComponentDefinitionList contains a list of ComponentDefinition
func (*ComponentDefinitionList) DeepCopy ¶ added in v0.8.0
func (in *ComponentDefinitionList) DeepCopy() *ComponentDefinitionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentDefinitionList.
func (*ComponentDefinitionList) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentDefinitionList) DeepCopyInto(out *ComponentDefinitionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ComponentDefinitionList) DeepCopyObject ¶ added in v0.8.0
func (in *ComponentDefinitionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ComponentDefinitionRef ¶ added in v0.8.0
type ComponentDefinitionRef struct { // Refers to the name of the component definition. This is a required field with a maximum length of 32 characters. // +kubebuilder:validation:MaxLength=32 // +kubebuilder:validation:Required Name string `json:"name"` // Represents the account name of the component. // If provided, the account username and password will be injected into the job environment variables `KB_ACCOUNT_USERNAME` and `KB_ACCOUNT_PASSWORD`. // +optional AccountName string `json:"accountName,omitempty"` // References the name of the service. // If provided, the service name and ports will be mapped to the job environment variables `KB_COMP_SVC_NAME` and `KB_COMP_SVC_PORT_$(portName)`. // Note that the portName will replace the characters '-' with '_' and convert to uppercase. // +optional ServiceName string `json:"serviceName,omitempty"` }
func (*ComponentDefinitionRef) DeepCopy ¶ added in v0.8.0
func (in *ComponentDefinitionRef) DeepCopy() *ComponentDefinitionRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentDefinitionRef.
func (*ComponentDefinitionRef) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentDefinitionRef) DeepCopyInto(out *ComponentDefinitionRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentDefinitionSpec ¶ added in v0.8.0
type ComponentDefinitionSpec struct { // Specifies the name of the component provider. // // +kubebuilder:validation:MaxLength=32 // +optional Provider string `json:"provider,omitempty"` // Provides a brief description of the component. // // +kubebuilder:validation:MaxLength=256 // +optional Description string `json:"description,omitempty"` // Defines the type of well-known service that the component provides (e.g., MySQL, Redis, ETCD, case insensitive). // This field is immutable. // // +kubebuilder:validation:MaxLength=32 // +optional ServiceKind string `json:"serviceKind,omitempty"` // Specifies the version of the well-known service that the component provides. // The version should follow the syntax and semantics of the "Semantic Versioning" specification (http://semver.org/). // Cannot be updated. // // +kubebuilder:validation:MaxLength=32 // +optional ServiceVersion string `json:"serviceVersion,omitempty"` // Primarily defines runtime information for the component, including: // // - Init containers // - Containers // - Image // - Commands // - Args // - Envs // - Mounts // - Ports // - Security context // - Probes // - Lifecycle // - Volumes // // CPU and memory resource limits, as well as scheduling settings (affinity, toleration, priority), should not be configured within this structure. // This field is immutable. // // +kubebuilder:pruning:PreserveUnknownFields // +kubebuilder:validation:Required Runtime corev1.PodSpec `json:"runtime"` // Represents user-defined variables. // // These variables can be utilized as environment variables for Pods and Actions, or to render the templates of config and script. // When used as environment variables, these variables are placed in front of the environment variables declared in the Pod. // This field is immutable. // // +optional Vars []EnvVar `json:"vars,omitempty"` // Defines the persistent volumes needed by the component. // Users are responsible for providing these volumes when creating a component instance. // This field is immutable. // // +optional Volumes []ComponentVolume `json:"volumes"` // Defines the host-network capability and resources. // // If set, the DNS policy will be automatically set to "ClusterFirstWithHostNet". // // +optional HostNetwork *HostNetwork `json:"hostNetwork,omitempty"` // Defines endpoints that can be used to access the component service to manage the component. // // In addition, a reserved headless service will be created by default, with the name pattern `{clusterName}-{componentName}-headless`. // This field is immutable. // // +optional Services []ComponentService `json:"services,omitempty"` // The configs field is provided by the provider, and // finally, these configTemplateRefs will be rendered into the user's own configuration file according to the user's cluster. // This field is immutable. // // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional // TODO: support referencing configs from other components or clusters. Configs []ComponentConfigSpec `json:"configs,omitempty"` // LogConfigs is a detailed log file config provided by the provider. // This field is immutable. // // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional LogConfigs []LogConfig `json:"logConfigs,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` // Monitor is a monitoring config provided by the provider. // This field is immutable. // // +optional Monitor *MonitorConfig `json:"monitor,omitempty"` // The scripts field is provided by the provider, and // finally, these configTemplateRefs will be rendered into the user's own configuration file according to the user's cluster. // This field is immutable. // // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional Scripts []ComponentTemplateSpec `json:"scripts,omitempty"` // Defines the namespaced policy rules required by the component. // If any rule application fails (e.g., due to lack of permissions), the provisioning of the component instance will also fail. // This field is immutable. // // +optional PolicyRules []rbacv1.PolicyRule `json:"policyRules,omitempty"` // Defines static labels that will be patched to all k8s resources created for the component. // If a label key conflicts with any other system labels or user-specified labels, it will be silently ignored. // This field is immutable. // // +optional Labels map[string]string `json:"labels,omitempty"` // Defines static annotations that will be patched to all k8s resources created for the component. // If an annotation key conflicts with any other system annotations or user-specified annotations, it will be silently ignored. // This field is immutable. // // +optional Annotations map[string]string `json:"annotations,omitempty"` // Defines the limit of valid replicas supported. // This field is immutable. // // +optional ReplicasLimit *ReplicasLimit `json:"replicasLimit,omitempty"` // Defines the pre-defined system accounts required to manage the component. // TODO(component): accounts KB required // This field is immutable. // // +optional SystemAccounts []SystemAccount `json:"systemAccounts,omitempty"` // Defines the strategy for updating the component instance. // This field is immutable. // // +kubebuilder:default=Serial // +optional UpdateStrategy *UpdateStrategy `json:"updateStrategy,omitempty"` // Defines all the roles that the component can assume. // This field is immutable. // // +optional Roles []ReplicaRole `json:"roles,omitempty"` // Defines the strategy for electing the component's active role. // This field is immutable. // // +kubebuilder:default=External // +optional RoleArbitrator *RoleArbitrator `json:"roleArbitrator,omitempty"` // Defines the operational actions needed to interoperate with the component // service and processes for lifecycle management. // This field is immutable. // // +optional LifecycleActions *ComponentLifecycleActions `json:"lifecycleActions,omitempty"` // Used to declare the service reference of the current component. // This field is immutable. // // +optional ServiceRefDeclarations []ServiceRefDeclaration `json:"serviceRefDeclarations,omitempty"` // Specifies the 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) // // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=0 // +optional MinReadySeconds int32 `json:"minReadySeconds,omitempty"` }
ComponentDefinitionSpec provides a workload component specification with attributes that strongly work with stateful workloads and day-2 operation behaviors.
func (*ComponentDefinitionSpec) DeepCopy ¶ added in v0.8.0
func (in *ComponentDefinitionSpec) DeepCopy() *ComponentDefinitionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentDefinitionSpec.
func (*ComponentDefinitionSpec) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentDefinitionSpec) DeepCopyInto(out *ComponentDefinitionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentDefinitionStatus ¶ added in v0.8.0
type ComponentDefinitionStatus struct { // Refers to the most recent generation that has been observed for the ComponentDefinition. // // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // Represents the current status of the ComponentDefinition. Valid values include “, `Available`, and `Unavailable`. // When the status is `Available`, the ComponentDefinition is ready and can be utilized by related objects. // // +optional Phase Phase `json:"phase,omitempty"` // Provides additional information about the current phase. // // +optional Message string `json:"message,omitempty"` }
ComponentDefinitionStatus defines the observed state of ComponentDefinition.
func (*ComponentDefinitionStatus) DeepCopy ¶ added in v0.8.0
func (in *ComponentDefinitionStatus) DeepCopy() *ComponentDefinitionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentDefinitionStatus.
func (*ComponentDefinitionStatus) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentDefinitionStatus) DeepCopyInto(out *ComponentDefinitionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentLifecycleActions ¶ added in v0.8.0
type ComponentLifecycleActions struct { // Specifies the actions and corresponding policy to be executed when a component is created. // The precondition for executing PostProvision can be defined using Action.PreCondition. The default precondition for PostProvision action is ComponentReady. // The PostProvision Action will be executed only once. // The following dedicated environment variables are available for the action: // // - KB_CLUSTER_COMPONENT_LIST: Lists all components in the cluster, joined by ',' (e.g., "comp1,comp2"). // - KB_CLUSTER_COMPONENT_POD_NAME_LIST: Lists all pod names in this component, joined by ',' (e.g., "pod1,pod2"). // - KB_CLUSTER_COMPONENT_POD_IP_LIST: Lists the IP addresses of each pod in this component, corresponding one-to-one with each pod in the KB_CLUSTER_COMPONENT_POD_NAME_LIST. Joined by ',' (e.g., "podIp1,podIp2"). // - KB_CLUSTER_COMPONENT_POD_HOST_NAME_LIST: Lists the host names where each pod resides in this component, corresponding one-to-one with each pod in the KB_CLUSTER_COMPONENT_POD_NAME_LIST. Joined by ',' (e.g., "hostName1,hostName2"). // - KB_CLUSTER_COMPONENT_POD_HOST_IP_LIST: Lists the host IP addresses where each pod resides in this component, corresponding one-to-one with each pod in the KB_CLUSTER_COMPONENT_POD_NAME_LIST. Joined by ',' (e.g., "hostIp1,hostIp2"). // // This field cannot be updated. // // +optional PostProvision *LifecycleActionHandler `json:"postProvision,omitempty"` // Defines the actions to be executed when a component is terminated due to an API request. // The PreTerminate Action will be executed only once. Upon receiving a scale-down command for the Component, it is executed immediately. // The destruction of the Component and its underlying resources proceeds only after the preTerminate action is successfully executed. // This field cannot be updated. // // +optional PreTerminate *LifecycleActionHandler `json:"preTerminate,omitempty"` // RoleProbe defines the mechanism to probe the role of replicas periodically. The specified action will be // executed by Lorry at the configured interval. If the execution is successful, the output will be used as // the replica's assigned role, and the role must be one of the names defined in the ComponentDefinition roles. // The output will be compared with the last successful result. If there is a change, a role change event will // be created to notify the controller and trigger updating the replica's role. // Defining a RoleProbe is required if roles are configured for the component. Otherwise, the replicas' pods will // lack role information after the cluster is created, and services will not route to the replica correctly. // // The following dedicated environment variables are available for the action: // // - KB_POD_FQDN: The pod FQDN of the replica to check the role. // - KB_SERVICE_PORT: The port on which the DB service listens. // - KB_SERVICE_USER: The username used to access the DB service and retrieve the role information with sufficient privileges. // - KB_SERVICE_PASSWORD: The password of the user used to access the DB service and retrieve the role information. // // Output of the action: // - ROLE: the role of the replica. It must be one of the names defined in the roles. // - ERROR: Any error message if the action fails. // // This field cannot be updated. // // +optional RoleProbe *RoleProbe `json:"roleProbe,omitempty"` // Defines the method to proactively switch the current leader to a new replica to minimize the impact on availability. // This action is typically invoked when the leader is about to become unavailable due to events, such as: // // - switchover // - stop // - restart // - scale-in // // The following dedicated environment variables are available for the action: // // - KB_SWITCHOVER_CANDIDATE_NAME: The name of the new candidate replica's Pod. It may be empty. // - KB_SWITCHOVER_CANDIDATE_FQDN: The FQDN of the new candidate replica. It may be empty. // - KB_LEADER_POD_IP: The IP address of the original leader's Pod before switchover. // - KB_LEADER_POD_NAME: The name of the original leader's Pod before switchover. // - KB_LEADER_POD_FQDN: The FQDN of the original leader's Pod before switchover. // // The environment variables with the following prefixes are deprecated and will be removed in the future: // // - KB_REPLICATION_PRIMARY_POD_: The prefix of the environment variables of the original primary's Pod before switchover. // - KB_CONSENSUS_LEADER_POD_: The prefix of the environment variables of the original leader's Pod before switchover. // // This field cannot be updated. // // +optional Switchover *ComponentSwitchover `json:"switchover,omitempty"` // Defines the method to add a new replica to the replication group. // This action is typically invoked when a new replica needs to be added, such as during scale-out. // The function does not specify or constrain the role of the new member. The role assignment // is handled by the scripts implemented in the action commands. This provides flexibility // as the new member can be automatically scaled and assigned a role based on the cluster's needs. // // The following dedicated environment variables are available for the action: // // - KB_SERVICE_PORT: The port on which the DB service listens. // - KB_SERVICE_USER: The username used to access the DB service with sufficient privileges. // - KB_SERVICE_PASSWORD: The password of the user used to access the DB service . // - KB_PRIMARY_POD_FQDN: The FQDN of the original primary Pod. // - KB_MEMBER_ADDRESSES: The addresses of all members. // - KB_NEW_MEMBER_POD_NAME: The name of the new member's Pod. // - KB_NEW_MEMBER_POD_IP: The name of the new member's Pod. // // Output of the action: // - ERROR: Any error message if the action fails. // // For example, the following command can be used to add a new OBServer to the OceanBase Cluster in zone1: // command: // - bash // - -c // - | // ADDRESS=$(KB_MEMBER_ADDRESSES%%,*) // HOST=$(echo $ADDRESS | cut -d ':' -f 1) // PORT=$(echo $ADDRESS | cut -d ':' -f 2) // CLIENT="mysql -u $KB_SERVICE_USER -p$KB_SERVICE_PASSWORD -P $PORT -h $HOST -e" // $CLIENT "ALTER SYSTEM ADD SERVER '$KB_NEW_MEMBER_POD_IP:$KB_SERVICE_PORT' ZONE 'zone1'" // // This field cannot be updated. // // +optional MemberJoin *LifecycleActionHandler `json:"memberJoin,omitempty"` // Defines the method to remove a replica from the replication group. // This action is typically invoked when a replica needs to be removed, such as during scale-in. // It may involve configuration updates and notifying other members about the departure, // but it is advisable to avoid performing data migration within this action. // // The following dedicated environment variables are available for the action: // // - KB_SERVICE_PORT: The port on which the DB service listens. // - KB_SERVICE_USER: The username used to access the DB service with sufficient privileges. // - KB_SERVICE_PASSWORD: The password of the user used to access the DB service. // - KB_PRIMARY_POD_FQDN: The FQDN of the original primary Pod. // - KB_MEMBER_ADDRESSES: The addresses of all members. // - KB_LEAVE_MEMBER_POD_NAME: The name of the leave member's Pod. // - KB_LEAVE_MEMBER_POD_IP: The IP of the leave member's Pod. // // Output of the action: // - ERROR: Any error message if the action fails. // // For example, the following command can be used to delete a OBServer from the OceanBase Cluster in zone1: // command: // - bash // - -c // - | // ADDRESS=$(KB_MEMBER_ADDRESSES%%,*) // HOST=$(echo $ADDRESS | cut -d ':' -f 1) // PORT=$(echo $ADDRESS | cut -d ':' -f 2) // CLIENT="mysql -u $KB_SERVICE_USER -p$KB_SERVICE_PASSWORD -P $PORT -h $HOST -e" // $CLIENT "ALTER SYSTEM DELETE SERVER '$KB_NEW_MEMBER_POD_IP:$KB_SERVICE_PORT' ZONE 'zone1'" // // This field cannot be updated. // // +optional MemberLeave *LifecycleActionHandler `json:"memberLeave,omitempty"` // Defines the method to set a replica service as read-only. // This action is used to protect a replica in case of volume space exhaustion or excessive traffic. // // The following dedicated environment variables are available for the action: // // - KB_POD_FQDN: The FQDN of the replica pod to check the role. // - KB_SERVICE_PORT: The port on which the DB service listens. // - KB_SERVICE_USER: The username used to access the DB service with sufficient privileges. // - KB_SERVICE_PASSWORD: The password of the user used to access the DB service. // // Output of the action: // - ERROR: Any error message if the action fails. // // This field cannot be updated. // // +optional Readonly *LifecycleActionHandler `json:"readonly,omitempty"` // Readwrite defines how to set a replica service as read-write. // // The following dedicated environment variables are available for the action: // // - KB_POD_FQDN: The FQDN of the replica pod to check the role. // - KB_SERVICE_PORT: The port on which the DB service listens. // - KB_SERVICE_USER: The username used to access the DB service with sufficient privileges. // - KB_SERVICE_PASSWORD: The password of the user used to access the DB service. // // Output of the action: // - ERROR: Any error message if the action fails. // // This field cannot be updated. // // +optional Readwrite *LifecycleActionHandler `json:"readwrite,omitempty"` // Defines the method to dump the data from a replica. // This action is typically used when a new replica needs to be constructed, such as: // // - scale-out // - rebuild // - clone // // It should write the valid data to stdout without including any extraneous information. // This field cannot be updated. // // +optional DataDump *LifecycleActionHandler `json:"dataDump,omitempty"` // Defines the method to load data into a replica. // This action is typically used when creating a new replica, such as: // // - scale-out // - rebuild // - clone // // The data will be streamed in via stdin. If any error occurs during the process, // the action must be able to guarantee idempotence to allow for retries from the beginning. // This field cannot be updated. // // +optional DataLoad *LifecycleActionHandler `json:"dataLoad,omitempty"` // Defines the method to notify the replica service that there is a configuration update. // This field cannot be updated. // // +optional Reconfigure *LifecycleActionHandler `json:"reconfigure,omitempty"` // Defines the method to provision accounts. // This field cannot be updated. // // +optional AccountProvision *LifecycleActionHandler `json:"accountProvision,omitempty"` }
ComponentLifecycleActions defines a set of operational actions for interacting with component services and processes.
func (*ComponentLifecycleActions) DeepCopy ¶ added in v0.8.0
func (in *ComponentLifecycleActions) DeepCopy() *ComponentLifecycleActions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentLifecycleActions.
func (*ComponentLifecycleActions) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentLifecycleActions) DeepCopyInto(out *ComponentLifecycleActions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentList ¶ added in v0.8.0
type ComponentList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Component `json:"items"` }
ComponentList contains a list of Component
func (*ComponentList) DeepCopy ¶ added in v0.8.0
func (in *ComponentList) DeepCopy() *ComponentList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentList.
func (*ComponentList) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentList) DeepCopyInto(out *ComponentList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ComponentList) DeepCopyObject ¶ added in v0.8.0
func (in *ComponentList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ComponentMessageMap ¶
func (ComponentMessageMap) DeepCopy ¶ added in v0.6.0
func (in ComponentMessageMap) DeepCopy() ComponentMessageMap
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentMessageMap.
func (ComponentMessageMap) DeepCopyInto ¶ added in v0.6.0
func (in ComponentMessageMap) DeepCopyInto(out *ComponentMessageMap)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ComponentMessageMap) SetObjectMessage ¶
func (r ComponentMessageMap) SetObjectMessage(objectKind, objectName, message string)
SetObjectMessage sets k8s workload message to component status message map
type ComponentNameSet ¶
type ComponentNameSet map[string]struct{}
func (ComponentNameSet) DeepCopy ¶ added in v0.6.0
func (in ComponentNameSet) DeepCopy() ComponentNameSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentNameSet.
func (ComponentNameSet) DeepCopyInto ¶ added in v0.6.0
func (in ComponentNameSet) DeepCopyInto(out *ComponentNameSet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentOps ¶
type ComponentOps struct { // Specifies the name of the cluster component. // +kubebuilder:validation:Required ComponentName string `json:"componentName"` }
ComponentOps represents the common variables required for operations within the scope of a component.
func (*ComponentOps) DeepCopy ¶ added in v0.6.0
func (in *ComponentOps) DeepCopy() *ComponentOps
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentOps.
func (*ComponentOps) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentOps) DeepCopyInto(out *ComponentOps)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentRefEnv ¶ added in v0.6.0
type ComponentRefEnv struct { // The name of the env, it must be a C identifier. // // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern=`^[A-Za-z_][A-Za-z0-9_]*$` Name string `json:"name"` // The value of the env. // // +optional Value string `json:"value,omitempty"` // The source from which the value of the env. // // +optional ValueFrom *ComponentValueFrom `json:"valueFrom,omitempty"` }
ComponentRefEnv specifies name and value of an env.
func (*ComponentRefEnv) DeepCopy ¶ added in v0.6.0
func (in *ComponentRefEnv) DeepCopy() *ComponentRefEnv
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentRefEnv.
func (*ComponentRefEnv) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentRefEnv) DeepCopyInto(out *ComponentRefEnv)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentResourceConstraint ¶
type ComponentResourceConstraint struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ComponentResourceConstraintSpec `json:"spec,omitempty"` }
ComponentResourceConstraint is the Schema for the componentresourceconstraints API
func (*ComponentResourceConstraint) DeepCopy ¶ added in v0.6.0
func (in *ComponentResourceConstraint) DeepCopy() *ComponentResourceConstraint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentResourceConstraint.
func (*ComponentResourceConstraint) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentResourceConstraint) DeepCopyInto(out *ComponentResourceConstraint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ComponentResourceConstraint) DeepCopyObject ¶ added in v0.6.0
func (in *ComponentResourceConstraint) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ComponentResourceConstraint) FindMatchingRules ¶ added in v0.6.0
func (c *ComponentResourceConstraint) FindMatchingRules( clusterDefRef string, componentDefRef string, resources corev1.ResourceList) []ResourceConstraintRule
FindMatchingRules find all constraint rules that resource satisfies.
func (*ComponentResourceConstraint) FindRules ¶ added in v0.6.0
func (c *ComponentResourceConstraint) FindRules(clusterDefRef, componentDefRef string) []ResourceConstraintRule
FindRules find all constraint rules that the component should conform to based on ClusterDefinition API. TODO(xingran): it will be deprecated in the future, use FindRulesWithCompDef instead.
func (*ComponentResourceConstraint) FindRulesWithCompDef ¶ added in v0.8.0
func (c *ComponentResourceConstraint) FindRulesWithCompDef(compDef string) []ResourceConstraintRule
FindRulesWithCompDef find all constraint rules that the component should conform to based on ComponentDefinition API.
func (*ComponentResourceConstraint) MatchClass ¶
func (c *ComponentResourceConstraint) MatchClass(clusterDefRef, componentDefRef string, class *ComponentClass) bool
MatchClass checks if the class meets the constraint rules.
type ComponentResourceConstraintList ¶
type ComponentResourceConstraintList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ComponentResourceConstraint `json:"items"` }
ComponentResourceConstraintList contains a list of ComponentResourceConstraint
func (*ComponentResourceConstraintList) DeepCopy ¶ added in v0.6.0
func (in *ComponentResourceConstraintList) DeepCopy() *ComponentResourceConstraintList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentResourceConstraintList.
func (*ComponentResourceConstraintList) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentResourceConstraintList) DeepCopyInto(out *ComponentResourceConstraintList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ComponentResourceConstraintList) DeepCopyObject ¶ added in v0.6.0
func (in *ComponentResourceConstraintList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ComponentResourceConstraintSelector ¶ added in v0.6.0
type ComponentResourceConstraintSelector struct { // In versions prior to KB 0.8.0, ComponentDefRef is the name of the component definition in the ClusterDefinition. // In KB 0.8.0 and later versions, ComponentDefRef is the name of ComponentDefinition. // +kubebuilder:validation:Required ComponentDefRef string `json:"componentDefRef"` // rules are the constraint rules that will be applied to the component. // +kubebuilder:validation:Required Rules []string `json:"rules"` }
func (*ComponentResourceConstraintSelector) DeepCopy ¶ added in v0.6.0
func (in *ComponentResourceConstraintSelector) DeepCopy() *ComponentResourceConstraintSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentResourceConstraintSelector.
func (*ComponentResourceConstraintSelector) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentResourceConstraintSelector) DeepCopyInto(out *ComponentResourceConstraintSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentResourceConstraintSpec ¶
type ComponentResourceConstraintSpec struct { // Component resource constraint rules. // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +kubebuilder:validation:Required Rules []ResourceConstraintRule `json:"rules"` // selector is used to bind the resource constraint to cluster definitions based on ClusterDefinition API. // +listType=map // +listMapKey=clusterDefRef //+kubebuilder:deprecatedversion:warning="This field is deprecated from KB 0.8.0, use ComponentSelector instead." // +optional Selector []ClusterResourceConstraintSelector `json:"selector,omitempty"` // componentSelector is used to bind the resource constraint to components based on ComponentDefinition API. // +listType=map // +listMapKey=componentDefRef // +optional ComponentSelector []ComponentResourceConstraintSelector `json:"componentSelector,omitempty"` }
ComponentResourceConstraintSpec defines the desired state of ComponentResourceConstraint
func (*ComponentResourceConstraintSpec) DeepCopy ¶ added in v0.6.0
func (in *ComponentResourceConstraintSpec) DeepCopy() *ComponentResourceConstraintSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentResourceConstraintSpec.
func (*ComponentResourceConstraintSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentResourceConstraintSpec) DeepCopyInto(out *ComponentResourceConstraintSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentResourceKey ¶
type ComponentResourceKey string
ComponentResourceKey defines the resource key of component, such as pod/pvc. +enum +kubebuilder:validation:Enum={pods}
const PodsCompResourceKey ComponentResourceKey = "pods"
type ComponentService ¶ added in v0.8.0
type ComponentService struct { Service `json:",inline"` // GeneratePodOrdinalService indicates whether to create a corresponding Service for each Pod of the selected Component. // If sets to true, a set of Service will be automatically generated for each Pod. And Service.RoleSelector will be ignored. // They can be referred to by adding the PodOrdinal to the defined ServiceName with named pattern `$(Service.ServiceName)-$(PodOrdinal)`. // And the Service.Name will also be generated with named pattern `$(Service.Name)-$(PodOrdinal)`. // The PodOrdinal is zero-based, and the number of generated Services is equal to the number of replicas of the Component. // For example, a Service might be defined as follows: // // “`yaml // name: my-service // serviceName: my-service // generatePodOrdinalService: true // spec: // type: NodePort // ports: // - name: http // port: 80 // targetPort: 8080 // “` // // Assuming that the Component has 3 replicas, then three services would be generated: my-service-0, my-service-1, and my-service-2, each pointing to its respective Pod. // // +kubebuilder:default=false // +optional GeneratePodOrdinalService bool `json:"generatePodOrdinalService,omitempty"` }
func (*ComponentService) DeepCopy ¶ added in v0.8.0
func (in *ComponentService) DeepCopy() *ComponentService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentService.
func (*ComponentService) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentService) DeepCopyInto(out *ComponentService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentSpec ¶ added in v0.8.0
type ComponentSpec struct { // Specifies the name of the referenced ComponentDefinition. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=64 CompDef string `json:"compDef"` // ServiceVersion specifies the version of the service provisioned by the component. // The version should follow the syntax and semantics of the "Semantic Versioning" specification (http://semver.org/). // // +kubebuilder:validation:MaxLength=32 // +optional ServiceVersion string `json:"serviceVersion,omitempty"` // References the class defined in ComponentClassDefinition. // // +kubebuilder:deprecatedversion:warning="Due to the lack of practical use cases, this field is deprecated from KB 0.9.0." // +optional ClassDefRef *ClassDefRef `json:"classDefRef,omitempty"` // Define service references for the current component. Based on the referenced services, they can be categorized into two types: // - Service provided by external sources: These services are provided by external sources and are not managed by KubeBlocks. They can be Kubernetes-based or non-Kubernetes services. For external services, you need to provide an additional ServiceDescriptor object to establish the service binding. // - Service provided by other KubeBlocks clusters: These services are provided by other KubeBlocks clusters. You can bind to these services by specifying the name of the hosting cluster. // // Each type of service reference requires specific configurations and bindings to establish the connection and interaction with the respective services. // It should be noted that the ServiceRef has cluster-level semantic consistency, meaning that within the same Cluster, service references with the same ServiceRef.Name are considered to be the same service. It is only allowed to bind to the same Cluster or ServiceDescriptor. // +optional ServiceRefs []ServiceRef `json:"serviceRefs,omitempty"` // Requests and limits of workload resources. // // +kubebuilder:pruning:PreserveUnknownFields // +optional Resources corev1.ResourceRequirements `json:"resources,omitempty"` // Information for statefulset.spec.volumeClaimTemplates. // +optional // +patchMergeKey=name // +patchStrategy=merge,retainKeys VolumeClaimTemplates []ClusterComponentVolumeClaimTemplate `json:"volumeClaimTemplates,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` // Specifies the desired number of replicas for the component's workload. // // +kubebuilder:validation:Required // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=1 Replicas int32 `json:"replicas"` // Defines the configuration for the component. // // +optional Configs []ComponentConfigSpec `json:"configs,omitempty"` // A switch to enable monitoring and is set as false by default. // KubeBlocks provides an extension mechanism to support component level monitoring, // which will scrape metrics auto or manually from servers in component and export // metrics to Time Series Database. // // +kubebuilder:default=false // +optional Monitor bool `json:"monitor,omitempty"` // Indicates which log file takes effect in the database cluster, // element is the log type which is defined in ComponentDefinition logConfig.name. // // +listType=set // +optional EnabledLogs []string `json:"enabledLogs,omitempty"` // The name of the ServiceAccount that running component depends on. // // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // Specifies the scheduling constraints for the component's workload. // If specified, it will override the cluster-wide affinity. // // +optional Affinity *Affinity `json:"affinity,omitempty"` // Specify the tolerations for the component's workload. // If specified, they will override the cluster-wide toleration settings. // // +optional Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // Specifies the TLS configuration for the component. // // +optional TLSConfig *TLSConfig `json:"tlsConfig,omitempty"` // Overrides values in default Template. // +optional Instances []InstanceTemplate `json:"instances,omitempty"` }
ComponentSpec defines the desired state of Component
func (*ComponentSpec) DeepCopy ¶ added in v0.8.0
func (in *ComponentSpec) DeepCopy() *ComponentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentSpec.
func (*ComponentSpec) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentSpec) DeepCopyInto(out *ComponentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentStatus ¶ added in v0.8.0
type ComponentStatus struct { // Specifies the most recent generation observed for this Component. // This corresponds to the Cluster's generation, which is updated by the API Server upon mutation. // // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // Defines the current state of the component API Resource, such as warnings. // // +optional Conditions []metav1.Condition `json:"conditions,omitempty"` // Indicates the phase of the component. Detailed information for each phase is as follows: // // - Creating: A special `Updating` phase with previous phase `empty`(means "") or `Creating`. // - Running: Component replicas > 0 and all pod specs are latest with a Running state. // - Updating: Component replicas > 0 and no failed pods. The component is being updated. // - Abnormal: Component replicas > 0 but some pods have failed. The component is functional but in a fragile state. // - Failed: Component replicas > 0 but some pods have failed. The component is no longer functional. // - Stopping: Component replicas = 0 and pods are terminating. // - Stopped: Component replicas = 0 and all pods have been deleted. // - Deleting: The component is being deleted. Phase ClusterComponentPhase `json:"phase,omitempty"` // Records the detailed message of the component in its current phase. // Keys can be podName, deployName, or statefulSetName. The format is `ObjectKind/Name`. // // +optional Message ComponentMessageMap `json:"message,omitempty"` }
ComponentStatus represents the observed state of a Component within the cluster.
func (*ComponentStatus) DeepCopy ¶ added in v0.8.0
func (in *ComponentStatus) DeepCopy() *ComponentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentStatus.
func (*ComponentStatus) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentStatus) DeepCopyInto(out *ComponentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentSwitchover ¶ added in v0.8.0
type ComponentSwitchover struct { // Represents the switchover process for a specified candidate primary or leader instance. // Note that only Action.Exec is currently supported, while Action.HTTP is not. // // +optional WithCandidate *Action `json:"withCandidate,omitempty"` // Represents a switchover process that does not involve a specific candidate primary or leader instance. // As with the previous field, only Action.Exec is currently supported, not Action.HTTP. // // +optional WithoutCandidate *Action `json:"withoutCandidate,omitempty"` // Used to define the selectors for the scriptSpecs that need to be referenced. // When this field is defined, the scripts specified in the scripts field can be referenced in the Action. // // +kubebuilder:deprecatedversion:warning="This field is deprecated from KB 0.9.0" // +optional ScriptSpecSelectors []ScriptSpecSelector `json:"scriptSpecSelectors,omitempty"` }
func (*ComponentSwitchover) DeepCopy ¶ added in v0.8.0
func (in *ComponentSwitchover) DeepCopy() *ComponentSwitchover
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentSwitchover.
func (*ComponentSwitchover) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentSwitchover) DeepCopyInto(out *ComponentSwitchover)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentTemplateSpec ¶
type ComponentTemplateSpec struct { // Specifies the name of the configuration template. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` Name string `json:"name"` // Specifies the name of the referenced configuration template ConfigMap object. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` TemplateRef string `json:"templateRef"` // Specifies the namespace of the referenced configuration template ConfigMap object. // An empty namespace is equivalent to the "default" namespace. // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$` // +kubebuilder:default="default" // +optional Namespace string `json:"namespace,omitempty"` // Refers to the volume name of PodTemplate. The configuration file produced through the configuration // template will be mounted to the corresponding volume. Must be a DNS_LABEL name. // The volume name must be defined in podSpec.containers[*].volumeMounts. // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z]([a-z0-9\-]*[a-z0-9])?$` VolumeName string `json:"volumeName"` // Refers to the mode bits used to set permissions on created files by default. // // Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. // YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. // Defaults to 0644. // // Directories within the path are not affected by this setting. // This might be in conflict with other options that affect the file // mode, like fsGroup, and the result can be other mode bits set. // // +optional DefaultMode *int32 `json:"defaultMode,omitempty" protobuf:"varint,3,opt,name=defaultMode"` }
func (*ComponentTemplateSpec) DeepCopy ¶ added in v0.6.0
func (in *ComponentTemplateSpec) DeepCopy() *ComponentTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentTemplateSpec.
func (*ComponentTemplateSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentTemplateSpec) DeepCopyInto(out *ComponentTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentValueFrom ¶ added in v0.6.0
type ComponentValueFrom struct { // Specifies the source to select. It can be one of three types: `FieldRef`, `ServiceRef`, `HeadlessServiceRef`. // // +kubebuilder:validation:Enum={FieldRef,ServiceRef,HeadlessServiceRef} // +kubebuilder:validation:Required Type ComponentValueFromType `json:"type"` // The jsonpath of the source to select when the Type is `FieldRef`. // Two objects are registered in the jsonpath: `componentDef` and `components`: // // - `componentDef` is the component definition object specified in `componentRef.componentDefName`. // - `components` are the component list objects referring to the component definition object. // // +optional FieldPath string `json:"fieldPath,omitempty"` // Defines the format of each headless service address. // Three builtin variables can be used as placeholders: `$POD_ORDINAL`, `$POD_FQDN`, `$POD_NAME` // // - `$POD_ORDINAL` represents the ordinal of the pod. // - `$POD_FQDN` represents the fully qualified domain name of the pod. // - `$POD_NAME` represents the name of the pod. // // +kubebuilder:default=="$POD_FQDN" // +optional Format string `json:"format,omitempty"` // The string used to join the values of headless service addresses. // // +kubebuilder:default="," // +optional JoinWith string `json:"joinWith,omitempty"` }
func (*ComponentValueFrom) DeepCopy ¶ added in v0.6.0
func (in *ComponentValueFrom) DeepCopy() *ComponentValueFrom
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentValueFrom.
func (*ComponentValueFrom) DeepCopyInto ¶ added in v0.6.0
func (in *ComponentValueFrom) DeepCopyInto(out *ComponentValueFrom)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentValueFromType ¶ added in v0.6.0
type ComponentValueFromType string
ComponentValueFromType specifies the type of component value from which the data is derived.
+enum +kubebuilder:validation:Enum={FieldRef,ServiceRef,HeadlessServiceRef}
const ( // FromFieldRef refers to the value of a specific field in the object. FromFieldRef ComponentValueFromType = "FieldRef" // FromServiceRef refers to a service within the same namespace as the object. FromServiceRef ComponentValueFromType = "ServiceRef" // FromHeadlessServiceRef refers to a headless service within the same namespace as the object. FromHeadlessServiceRef ComponentValueFromType = "HeadlessServiceRef" )
type ComponentVersion ¶ added in v0.9.0
type ComponentVersion struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ComponentVersionSpec `json:"spec,omitempty"` Status ComponentVersionStatus `json:"status,omitempty"` }
ComponentVersion is the Schema for the componentversions API
func (*ComponentVersion) DeepCopy ¶ added in v0.9.0
func (in *ComponentVersion) DeepCopy() *ComponentVersion
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentVersion.
func (*ComponentVersion) DeepCopyInto ¶ added in v0.9.0
func (in *ComponentVersion) DeepCopyInto(out *ComponentVersion)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ComponentVersion) DeepCopyObject ¶ added in v0.9.0
func (in *ComponentVersion) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ComponentVersion) Default ¶ added in v0.9.0
func (r *ComponentVersion) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*ComponentVersion) SetupWebhookWithManager ¶ added in v0.9.0
func (r *ComponentVersion) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*ComponentVersion) ValidateCreate ¶ added in v0.9.0
func (r *ComponentVersion) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*ComponentVersion) ValidateDelete ¶ added in v0.9.0
func (r *ComponentVersion) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*ComponentVersion) ValidateUpdate ¶ added in v0.9.0
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type ComponentVersionCompatibilityRule ¶ added in v0.9.0
type ComponentVersionCompatibilityRule struct { // CompDefs specifies names for the component definitions associated with this ComponentVersion. // Each name in the list can represent an exact name, or a name prefix. // // For example: // // - "mysql-8.0.30-v1alpha1": Matches the exact name "mysql-8.0.30-v1alpha1" // - "mysql-8.0.30": Matches all names starting with "mysql-8.0.30" // // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=128 CompDefs []string `json:"compDefs"` // Releases is a list of identifiers for the releases. // // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=128 Releases []string `json:"releases"` }
ComponentVersionCompatibilityRule defines the compatibility between a set of component definitions and a set of releases.
func (*ComponentVersionCompatibilityRule) DeepCopy ¶ added in v0.9.0
func (in *ComponentVersionCompatibilityRule) DeepCopy() *ComponentVersionCompatibilityRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentVersionCompatibilityRule.
func (*ComponentVersionCompatibilityRule) DeepCopyInto ¶ added in v0.9.0
func (in *ComponentVersionCompatibilityRule) DeepCopyInto(out *ComponentVersionCompatibilityRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentVersionList ¶ added in v0.9.0
type ComponentVersionList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ComponentVersion `json:"items"` }
ComponentVersionList contains a list of ComponentVersion
func (*ComponentVersionList) DeepCopy ¶ added in v0.9.0
func (in *ComponentVersionList) DeepCopy() *ComponentVersionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentVersionList.
func (*ComponentVersionList) DeepCopyInto ¶ added in v0.9.0
func (in *ComponentVersionList) DeepCopyInto(out *ComponentVersionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ComponentVersionList) DeepCopyObject ¶ added in v0.9.0
func (in *ComponentVersionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ComponentVersionRelease ¶ added in v0.9.0
type ComponentVersionRelease struct { // Name is a unique identifier for this release. // Cannot be updated. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=32 Name string `json:"name"` // Changes provides information about the changes made in this release. // // +kubebuilder:validation:MaxLength=256 // +optional Changes string `json:"changes,omitempty"` // ServiceVersion defines the version of the well-known service that the component provides. // The version should follow the syntax and semantics of the "Semantic Versioning" specification (http://semver.org/). // If the release is used, it will serve as the service version for component instances, overriding the one defined in the component definition. // Cannot be updated. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=32 ServiceVersion string `json:"serviceVersion"` // Images define the new images for different containers within the release. // // +kubebuilder:validation:Required // +kubebuilder:validation:MinProperties=1 // +kubebuilder:validation:MaxProperties=128 // +kubebuilder:validation:XValidation:rule="self.all(key, size(key) <= 32)",message="Container name may not exceed maximum length of 32 characters" // +kubebuilder:validation:XValidation:rule="self.all(key, size(self[key]) <= 256)",message="Image name may not exceed maximum length of 256 characters" Images map[string]string `json:"images"` }
ComponentVersionRelease represents a release of component instances within a ComponentVersion.
func (*ComponentVersionRelease) DeepCopy ¶ added in v0.9.0
func (in *ComponentVersionRelease) DeepCopy() *ComponentVersionRelease
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentVersionRelease.
func (*ComponentVersionRelease) DeepCopyInto ¶ added in v0.9.0
func (in *ComponentVersionRelease) DeepCopyInto(out *ComponentVersionRelease)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentVersionSpec ¶ added in v0.9.0
type ComponentVersionSpec struct { // CompatibilityRules defines compatibility rules between sets of component definitions and releases. // // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=128 CompatibilityRules []ComponentVersionCompatibilityRule `json:"compatibilityRules"` // Releases represents different releases of component instances within this ComponentVersion. // // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=128 Releases []ComponentVersionRelease `json:"releases"` }
ComponentVersionSpec defines the desired state of ComponentVersion
func (*ComponentVersionSpec) DeepCopy ¶ added in v0.9.0
func (in *ComponentVersionSpec) DeepCopy() *ComponentVersionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentVersionSpec.
func (*ComponentVersionSpec) DeepCopyInto ¶ added in v0.9.0
func (in *ComponentVersionSpec) DeepCopyInto(out *ComponentVersionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentVersionStatus ¶ added in v0.9.0
type ComponentVersionStatus struct { // ObservedGeneration is the most recent generation observed for this ComponentVersion. // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // Phase valid values are “, `Available`, 'Unavailable`. // Available is ComponentVersion become available, and can be used for co-related objects. // +optional Phase Phase `json:"phase,omitempty"` // Extra message for current phase. // +optional Message string `json:"message,omitempty"` // ServiceVersions represent the supported service versions of this ComponentVersion. // +optional ServiceVersions string `json:"serviceVersions,omitempty"` }
ComponentVersionStatus defines the observed state of ComponentVersion
func (*ComponentVersionStatus) DeepCopy ¶ added in v0.9.0
func (in *ComponentVersionStatus) DeepCopy() *ComponentVersionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentVersionStatus.
func (*ComponentVersionStatus) DeepCopyInto ¶ added in v0.9.0
func (in *ComponentVersionStatus) DeepCopyInto(out *ComponentVersionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentVolume ¶ added in v0.8.0
type ComponentVolume struct { // Specifies the name of the volume. // It must be a DNS_LABEL and unique within the pod. // More info can be found at: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names // Note: This field cannot be updated. // // +kubebuilder:validation:Required Name string `json:"name"` // Indicates whether a snapshot is required when creating a backup for the component. // Note: This field cannot be updated. // // +kubebuilder:default=false // +optional NeedSnapshot bool `json:"needSnapshot,omitempty"` // Defines the high watermark threshold for the volume space usage. // // If the space usage of any specified volume exceeds this threshold, a pre-defined "LOCK" action // will be triggered. This action degrades the service to protect the volume from space exhaustion, // for example, by setting the instance to read-only. // // If the space usage of all volumes drops below the threshold, a pre-defined "UNLOCK" action // will be performed to restore the service to normal operation. // Note: This field cannot be updated. // // +kubebuilder:validation:Maximum=100 // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=0 // +optional HighWatermark int `json:"highWatermark,omitempty"` }
func (*ComponentVolume) DeepCopy ¶ added in v0.8.0
func (in *ComponentVolume) DeepCopy() *ComponentVolume
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentVolume.
func (*ComponentVolume) DeepCopyInto ¶ added in v0.8.0
func (in *ComponentVolume) DeepCopyInto(out *ComponentVolume)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigConstraint ¶
type ConfigConstraint struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ConfigConstraintSpec `json:"spec,omitempty"` Status ConfigConstraintStatus `json:"status,omitempty"` }
ConfigConstraint is the Schema for the configconstraint API
func (*ConfigConstraint) ConvertFrom ¶ added in v0.9.0
func (cc *ConfigConstraint) ConvertFrom(srcRaw conversion.Hub) error
func (*ConfigConstraint) ConvertTo ¶ added in v0.9.0
func (cc *ConfigConstraint) ConvertTo(dstRaw conversion.Hub) error
func (*ConfigConstraint) DeepCopy ¶ added in v0.6.0
func (in *ConfigConstraint) DeepCopy() *ConfigConstraint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigConstraint.
func (*ConfigConstraint) DeepCopyInto ¶ added in v0.6.0
func (in *ConfigConstraint) DeepCopyInto(out *ConfigConstraint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ConfigConstraint) DeepCopyObject ¶ added in v0.6.0
func (in *ConfigConstraint) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ConfigConstraintList ¶
type ConfigConstraintList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ConfigConstraint `json:"items"` }
ConfigConstraintList contains a list of ConfigConstraints.
func (*ConfigConstraintList) DeepCopy ¶ added in v0.6.0
func (in *ConfigConstraintList) DeepCopy() *ConfigConstraintList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigConstraintList.
func (*ConfigConstraintList) DeepCopyInto ¶ added in v0.6.0
func (in *ConfigConstraintList) DeepCopyInto(out *ConfigConstraintList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ConfigConstraintList) DeepCopyObject ¶ added in v0.6.0
func (in *ConfigConstraintList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ConfigConstraintSpec ¶
type ConfigConstraintSpec struct { // Specifies the dynamic reload actions supported by the engine. If set, the controller call the scripts defined in the actions for a dynamic parameter upgrade. // The actions are called only when the modified parameter is defined in dynamicParameters part && ReloadOptions != nil // // +optional ReloadOptions *ReloadOptions `json:"reloadOptions,omitempty"` // Indicates the dynamic reload action and restart action can be merged to a restart action. // // When a batch of parameters updates incur both restart & dynamic reload, it works as: // - set to true, the two actions merged to only one restart action // - set to false, the two actions cannot be merged, the actions executed in order [dynamic reload, restart] // // +optional DynamicActionCanBeMerged *bool `json:"dynamicActionCanBeMerged,omitempty"` // Specifies the policy for selecting the parameters of dynamic reload actions. // // +optional DynamicParameterSelectedPolicy *appsv1beta1.DynamicParameterSelectedPolicy `json:"dynamicParameterSelectedPolicy,omitempty"` // Tools used by the dynamic reload actions. // Usually it is referenced by the 'init container' for 'cp' it to a binary volume. // // +optional ToolsImageSpec *appsv1beta1.ReloadToolsImage `json:"toolsImageSpec,omitempty"` // A set of actions for regenerating local configs. // // It works when: // - different engine roles have different config, such as redis primary & secondary // - after a role switch, the local config will be regenerated with the help of DownwardActions // // +optional DownwardAPIOptions []appsv1beta1.DownwardAction `json:"downwardAPIOptions,omitempty"` // A list of ScriptConfig used by the actions defined in dynamic reload and downward actions. // // +optional // +patchMergeKey=scriptConfigMapRef // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=scriptConfigMapRef ScriptConfigs []appsv1beta1.ScriptConfig `json:"scriptConfigs,omitempty"` // Top level key used to get the cue rules to validate the config file. // It must exist in 'ConfigSchema' // // +optional CfgSchemaTopLevelName string `json:"cfgSchemaTopLevelName,omitempty"` // List constraints rules for each config parameters. // // +optional ConfigurationSchema *CustomParametersValidation `json:"configurationSchema,omitempty"` // A list of StaticParameter. Modifications of static parameters trigger a process restart. // // +listType=set // +optional StaticParameters []string `json:"staticParameters,omitempty"` // A list of DynamicParameter. Modifications of dynamic parameters trigger a reload action without process restart. // // +listType=set // +optional DynamicParameters []string `json:"dynamicParameters,omitempty"` // Describes parameters that are prohibited to do any modifications. // // +listType=set // +optional ImmutableParameters []string `json:"immutableParameters,omitempty"` // Used to match labels on the pod to do a dynamic reload // // +optional Selector *metav1.LabelSelector `json:"selector,omitempty"` // Describes the format of the config file. // The controller works as follows: // 1. Parse the config file // 2. Get the modified parameters // 3. Trigger the corresponding action // // +kubebuilder:validation:Required FormatterConfig *appsv1beta1.FormatterConfig `json:"formatterConfig"` }
ConfigConstraintSpec defines the desired state of ConfigConstraint
func (*ConfigConstraintSpec) DeepCopy ¶ added in v0.6.0
func (in *ConfigConstraintSpec) DeepCopy() *ConfigConstraintSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigConstraintSpec.
func (*ConfigConstraintSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ConfigConstraintSpec) DeepCopyInto(out *ConfigConstraintSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigConstraintStatus ¶
type ConfigConstraintStatus struct { // Specifies the status of the configuration template. // When set to CCAvailablePhase, the ConfigConstraint can be referenced by ClusterDefinition or ClusterVersion. // // +optional Phase appsv1beta1.ConfigConstraintPhase `json:"phase,omitempty"` // Provides descriptions for abnormal states. // // +optional Message string `json:"message,omitempty"` // Refers to the most recent generation observed for this ConfigConstraint. This value is updated by the API Server. // // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` }
func (*ConfigConstraintStatus) DeepCopy ¶ added in v0.6.0
func (in *ConfigConstraintStatus) DeepCopy() *ConfigConstraintStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigConstraintStatus.
func (*ConfigConstraintStatus) DeepCopyInto ¶ added in v0.6.0
func (in *ConfigConstraintStatus) DeepCopyInto(out *ConfigConstraintStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigMapRef ¶ added in v0.8.0
type ConfigMapRef struct { ResourceMeta `json:",inline"` // ConfigMap specifies the ConfigMap to be mounted as a volume. // // +kubebuilder:validation:Required ConfigMap corev1.ConfigMapVolumeSource `json:"configMap"` }
ConfigMapRef defines a reference to a ConfigMap.
func (*ConfigMapRef) DeepCopy ¶ added in v0.8.0
func (in *ConfigMapRef) DeepCopy() *ConfigMapRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapRef.
func (*ConfigMapRef) DeepCopyInto ¶ added in v0.8.0
func (in *ConfigMapRef) DeepCopyInto(out *ConfigMapRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigParams ¶ added in v0.7.0
type ConfigParams struct { // Holds the configuration keys and values. This field is a workaround for issues found in kubebuilder and code-generator. // Refer to https://github.com/kubernetes-sigs/kubebuilder/issues/528 and https://github.com/kubernetes/code-generator/issues/50 for more details. // // Represents the content of the configuration file. // // +optional Content *string `json:"content"` // Represents the updated parameters for a single configuration file. // // +optional Parameters map[string]*string `json:"parameters,omitempty"` }
func (*ConfigParams) DeepCopy ¶ added in v0.7.0
func (in *ConfigParams) DeepCopy() *ConfigParams
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigParams.
func (*ConfigParams) DeepCopyInto ¶ added in v0.7.0
func (in *ConfigParams) DeepCopyInto(out *ConfigParams)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigTemplateExtension ¶ added in v0.7.0
type ConfigTemplateExtension struct { // Specifies the name of the referenced configuration template ConfigMap object. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` TemplateRef string `json:"templateRef"` // Specifies the namespace of the referenced configuration template ConfigMap object. // An empty namespace is equivalent to the "default" namespace. // // +kubebuilder:default="default" // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$` // +optional Namespace string `json:"namespace,omitempty"` // Defines the strategy for merging externally imported templates into component templates. // // +kubebuilder:default="none" // +optional Policy MergedPolicy `json:"policy,omitempty"` }
func (*ConfigTemplateExtension) DeepCopy ¶ added in v0.7.0
func (in *ConfigTemplateExtension) DeepCopy() *ConfigTemplateExtension
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigTemplateExtension.
func (*ConfigTemplateExtension) DeepCopyInto ¶ added in v0.7.0
func (in *ConfigTemplateExtension) DeepCopyInto(out *ConfigTemplateExtension)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Configuration ¶
type Configuration struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ConfigurationSpec `json:"spec,omitempty"` Status ConfigurationStatus `json:"status,omitempty"` }
Configuration is the Schema for the configurations API
func (*Configuration) DeepCopy ¶ added in v0.6.0
func (in *Configuration) DeepCopy() *Configuration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Configuration.
func (*Configuration) DeepCopyInto ¶ added in v0.6.0
func (in *Configuration) DeepCopyInto(out *Configuration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Configuration) DeepCopyObject ¶ added in v0.7.0
func (in *Configuration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ConfigurationItem ¶ added in v0.7.0
type ConfigurationItem struct { // Specifies the name of the configuration template. // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` Name string `json:"name"` // Defines the upgrade policy for the configuration. This field is optional. // +optional Policy *UpgradePolicy `json:"policy,omitempty"` // Sets the parameters to be updated. It should contain at least one item. The keys are merged and retained during patch operations. // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 // +patchMergeKey=key // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=key Keys []ParameterConfig `json:"keys" patchStrategy:"merge,retainKeys" patchMergeKey:"key"` }
func (*ConfigurationItem) DeepCopy ¶ added in v0.7.0
func (in *ConfigurationItem) DeepCopy() *ConfigurationItem
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationItem.
func (*ConfigurationItem) DeepCopyInto ¶ added in v0.7.0
func (in *ConfigurationItem) DeepCopyInto(out *ConfigurationItem)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigurationItemDetail ¶ added in v0.7.0
type ConfigurationItemDetail struct { // Defines the unique identifier of the configuration template. It must be a string of maximum 63 characters, and can only include lowercase alphanumeric characters, hyphens, and periods. The name must start and end with an alphanumeric character. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` Name string `json:"name"` // Deprecated: No longer used. Please use 'Payload' instead. Previously represented the version of the configuration template. // // +optional Version string `json:"version,omitempty"` // Holds the configuration-related rerender. Preserves unknown fields and is optional. // // +kubebuilder:pruning:PreserveUnknownFields // +optional Payload Payload `json:"payload,omitempty"` // Used to set the configuration template. It is optional. // // +optional ConfigSpec *ComponentConfigSpec `json:"configSpec"` // Specifies the configuration template. It is optional. // // +optional ImportTemplateRef *ConfigTemplateExtension `json:"importTemplateRef"` // Used to set the parameters to be updated. It is optional. // // +optional ConfigFileParams map[string]ConfigParams `json:"configFileParams,omitempty"` }
ConfigurationItemDetail represents a specific configuration item within a configuration template.
func (*ConfigurationItemDetail) DeepCopy ¶ added in v0.7.0
func (in *ConfigurationItemDetail) DeepCopy() *ConfigurationItemDetail
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationItemDetail.
func (*ConfigurationItemDetail) DeepCopyInto ¶ added in v0.7.0
func (in *ConfigurationItemDetail) DeepCopyInto(out *ConfigurationItemDetail)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigurationItemDetailStatus ¶ added in v0.7.0
type ConfigurationItemDetailStatus struct { // Specifies the name of the configuration template. It is a required field and must be a string of maximum 63 characters. // The name should only contain lowercase alphanumeric characters, hyphens, or periods. It should start and end with an alphanumeric character. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` Name string `json:"name"` // Indicates the current status of the configuration item. This field is optional. // // +optional Phase ConfigurationPhase `json:"phase,omitempty"` // Represents the last completed revision of the configuration item. This field is optional. // // +optional LastDoneRevision string `json:"lastDoneRevision,omitempty"` // Represents the updated revision of the configuration item. This field is optional. // // +optional UpdateRevision string `json:"updateRevision,omitempty"` // Provides a description of any abnormal status. This field is optional. // // +optional Message *string `json:"message,omitempty"` // Provides detailed information about the execution of the configuration change. This field is optional. // // +optional ReconcileDetail *ReconcileDetail `json:"reconcileDetail,omitempty"` }
func (*ConfigurationItemDetailStatus) DeepCopy ¶ added in v0.7.0
func (in *ConfigurationItemDetailStatus) DeepCopy() *ConfigurationItemDetailStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationItemDetailStatus.
func (*ConfigurationItemDetailStatus) DeepCopyInto ¶ added in v0.7.0
func (in *ConfigurationItemDetailStatus) DeepCopyInto(out *ConfigurationItemDetailStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigurationItemStatus ¶ added in v0.7.0
type ConfigurationItemStatus struct { // Specifies the name of the configuration template. // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` Name string `json:"name"` // Defines the policy for reconfiguration. // +optional UpdatePolicy UpgradePolicy `json:"updatePolicy,omitempty"` // Indicates the current state of the reconfiguration state machine. // +optional Status string `json:"status,omitempty"` // Provides details about the operation. // +optional Message string `json:"message,omitempty"` // Counts the number of successful reconfigurations. // +kubebuilder:default=0 // +optional SucceedCount int32 `json:"succeedCount"` // Specifies the number of expected reconfigurations. // +kubebuilder:default=-1 // +optional ExpectedCount int32 `json:"expectedCount"` // Records the last status of the reconfiguration controller. // +optional LastAppliedStatus string `json:"lastStatus,omitempty"` // Stores the last applied configuration. // +optional LastAppliedConfiguration map[string]string `json:"lastAppliedConfiguration,omitempty"` // Contains the updated parameters. // +optional UpdatedParameters UpdatedParameters `json:"updatedParameters"` }
func (*ConfigurationItemStatus) DeepCopy ¶ added in v0.7.0
func (in *ConfigurationItemStatus) DeepCopy() *ConfigurationItemStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationItemStatus.
func (*ConfigurationItemStatus) DeepCopyInto ¶ added in v0.7.0
func (in *ConfigurationItemStatus) DeepCopyInto(out *ConfigurationItemStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigurationList ¶ added in v0.7.0
type ConfigurationList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Configuration `json:"items"` }
ConfigurationList contains a list of Configuration
func (*ConfigurationList) DeepCopy ¶ added in v0.7.0
func (in *ConfigurationList) DeepCopy() *ConfigurationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationList.
func (*ConfigurationList) DeepCopyInto ¶ added in v0.7.0
func (in *ConfigurationList) DeepCopyInto(out *ConfigurationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ConfigurationList) DeepCopyObject ¶ added in v0.7.0
func (in *ConfigurationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ConfigurationPhase ¶ added in v0.7.0
type ConfigurationPhase string
ConfigurationPhase defines the Configuration FSM phase +enum +kubebuilder:validation:Enum={Creating,Init,Running,Pending,Merged,MergeFailed,FailedAndPause,Upgrading,Deleting,FailedAndRetry,Finished}
const ( CCreatingPhase ConfigurationPhase = "Creating" CInitPhase ConfigurationPhase = "Init" CRunningPhase ConfigurationPhase = "Running" CPendingPhase ConfigurationPhase = "Pending" CFailedPhase ConfigurationPhase = "FailedAndRetry" CFailedAndPausePhase ConfigurationPhase = "FailedAndPause" CMergedPhase ConfigurationPhase = "Merged" CMergeFailedPhase ConfigurationPhase = "MergeFailed" CDeletingPhase ConfigurationPhase = "Deleting" CUpgradingPhase ConfigurationPhase = "Upgrading" CFinishedPhase ConfigurationPhase = "Finished" )
type ConfigurationSpec ¶ added in v0.7.0
type ConfigurationSpec struct { // Specifies the name of the cluster that this configuration is associated with. // // +kubebuilder:validation:Required // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.clusterRef" ClusterRef string `json:"clusterRef"` // Represents the name of the cluster component that this configuration pertains to. // // +kubebuilder:validation:Required // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.clusterRef" ComponentName string `json:"componentName"` // An array of ConfigurationItemDetail objects that describe user-defined configuration templates. // // +optional // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name ConfigItemDetails []ConfigurationItemDetail `json:"configItemDetails,omitempty"` }
ConfigurationSpec defines the desired state of a Configuration resource.
func (*ConfigurationSpec) DeepCopy ¶ added in v0.7.0
func (in *ConfigurationSpec) DeepCopy() *ConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationSpec.
func (*ConfigurationSpec) DeepCopyInto ¶ added in v0.7.0
func (in *ConfigurationSpec) DeepCopyInto(out *ConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ConfigurationSpec) GetConfigSpec ¶ added in v0.8.2
func (configuration *ConfigurationSpec) GetConfigSpec(configSpecName string) *ComponentConfigSpec
func (*ConfigurationSpec) GetConfigurationItem ¶ added in v0.7.0
func (configuration *ConfigurationSpec) GetConfigurationItem(name string) *ConfigurationItemDetail
type ConfigurationStatus ¶
type ConfigurationStatus struct { // Provides a description of any abnormal status. // +optional Message string `json:"message,omitempty"` // Represents the latest generation observed for this // ClusterDefinition. It corresponds to the ConfigConstraint's generation, which is // updated by the API Server. // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // Provides detailed status information for opsRequest. // +optional // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty"` // Provides the status of each component undergoing reconfiguration. // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name ConfigurationItemStatus []ConfigurationItemDetailStatus `json:"configurationStatus"` }
func (*ConfigurationStatus) DeepCopy ¶ added in v0.6.0
func (in *ConfigurationStatus) DeepCopy() *ConfigurationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationStatus.
func (*ConfigurationStatus) DeepCopyInto ¶ added in v0.6.0
func (in *ConfigurationStatus) DeepCopyInto(out *ConfigurationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ConfigurationStatus) GetItemStatus ¶ added in v0.7.0
func (status *ConfigurationStatus) GetItemStatus(name string) *ConfigurationItemDetailStatus
type ConnectionCredentialAuth ¶ added in v0.7.0
type ConnectionCredentialAuth struct { // Represents the username credential for the service connection. // // +optional Username *CredentialVar `json:"username,omitempty"` // Represents the password credential for the service connection. // // +optional Password *CredentialVar `json:"password,omitempty"` }
ConnectionCredentialAuth represents the authentication details of the service connection credential.
func (*ConnectionCredentialAuth) DeepCopy ¶ added in v0.7.0
func (in *ConnectionCredentialAuth) DeepCopy() *ConnectionCredentialAuth
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionCredentialAuth.
func (*ConnectionCredentialAuth) DeepCopyInto ¶ added in v0.7.0
func (in *ConnectionCredentialAuth) DeepCopyInto(out *ConnectionCredentialAuth)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConnectionCredentialKey ¶
type ConnectionCredentialKey struct { // Represents the key of the password in the ConnectionCredential secret. // If not specified, the default key "password" is used. // // +optional PasswordKey *string `json:"passwordKey,omitempty"` // Represents the key of the username in the ConnectionCredential secret. // If not specified, the default key "username" is used. // // +optional UsernameKey *string `json:"usernameKey,omitempty"` // Defines the map key of the host in the connection credential secret. HostKey *string `json:"hostKey,omitempty"` // Indicates the map key of the port in the connection credential secret. PortKey *string `json:"portKey,omitempty"` }
func (*ConnectionCredentialKey) DeepCopy ¶ added in v0.6.0
func (in *ConnectionCredentialKey) DeepCopy() *ConnectionCredentialKey
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionCredentialKey.
func (*ConnectionCredentialKey) DeepCopyInto ¶ added in v0.6.0
func (in *ConnectionCredentialKey) DeepCopyInto(out *ConnectionCredentialKey)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConsensusMember ¶
type ConsensusMember struct { // Specifies the name of the consensus member. // // +kubebuilder:validation:Required // +kubebuilder:default=leader Name string `json:"name"` // Specifies the services that this member is capable of providing. // // +kubebuilder:validation:Required // +kubebuilder:default=ReadWrite AccessMode AccessMode `json:"accessMode"` // Indicates the number of Pods that perform this role. // The default is 1 for `Leader`, 0 for `Learner`, others for `Followers`. // // +kubebuilder:default=0 // +kubebuilder:validation:Minimum=0 // +optional Replicas *int32 `json:"replicas,omitempty"` }
func (*ConsensusMember) DeepCopy ¶ added in v0.6.0
func (in *ConsensusMember) DeepCopy() *ConsensusMember
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsensusMember.
func (*ConsensusMember) DeepCopyInto ¶ added in v0.6.0
func (in *ConsensusMember) DeepCopyInto(out *ConsensusMember)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConsensusSetSpec ¶
type ConsensusSetSpec struct { StatefulSetSpec `json:",inline"` // Represents a single leader in the consensus set. // // +kubebuilder:validation:Required Leader ConsensusMember `json:"leader"` // Members of the consensus set that have voting rights but are not the leader. // // +optional Followers []ConsensusMember `json:"followers,omitempty"` // Represents a member of the consensus set that does not have voting rights. // // +optional Learner *ConsensusMember `json:"learner,omitempty"` }
func NewConsensusSetSpec ¶ added in v0.6.0
func NewConsensusSetSpec() *ConsensusSetSpec
func (*ConsensusSetSpec) DeepCopy ¶ added in v0.6.0
func (in *ConsensusSetSpec) DeepCopy() *ConsensusSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsensusSetSpec.
func (*ConsensusSetSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ConsensusSetSpec) DeepCopyInto(out *ConsensusSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ConsensusSetSpec) FinalStsUpdateStrategy ¶ added in v0.6.0
func (r *ConsensusSetSpec) FinalStsUpdateStrategy() (appsv1.PodManagementPolicyType, appsv1.StatefulSetUpdateStrategy)
func (*ConsensusSetSpec) GetUpdateStrategy ¶ added in v0.6.0
func (r *ConsensusSetSpec) GetUpdateStrategy() UpdateStrategy
type ContainerVars ¶ added in v0.9.0
type ContainerVars struct { // The name of the container. // +required Name string `json:"name"` // Container port to reference. // +optional Port *NamedVar `json:"port,omitempty"` }
ContainerVars defines the vars can be referenced from a Container.
func (*ContainerVars) DeepCopy ¶ added in v0.9.0
func (in *ContainerVars) DeepCopy() *ContainerVars
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerVars.
func (*ContainerVars) DeepCopyInto ¶ added in v0.9.0
func (in *ContainerVars) DeepCopyInto(out *ContainerVars)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CredentialVar ¶ added in v0.7.0
type CredentialVar struct { // Specifies an optional variable. Only one of the following may be specified. // Variable references, denoted by $(VAR_NAME), are expanded using previously defined // environment variables in the container and any service environment variables. // If a variable cannot be resolved, the reference in the input string remains unchanged. // // Double $$ are reduced to a single $, enabling the escaping of the $(VAR_NAME) syntax. // For instance, "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". // Escaped references will never be expanded, irrespective of the variable's existence. // The default value is "". // // +optional Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` // Defines the source for the environment variable's value. This cannot be used if the value is not empty. // // +optional ValueFrom *corev1.EnvVarSource `json:"valueFrom,omitempty" protobuf:"bytes,3,opt,name=valueFrom"` }
CredentialVar defines the value of credential variable.
func (*CredentialVar) DeepCopy ¶ added in v0.7.0
func (in *CredentialVar) DeepCopy() *CredentialVar
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialVar.
func (*CredentialVar) DeepCopyInto ¶ added in v0.7.0
func (in *CredentialVar) DeepCopyInto(out *CredentialVar)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CredentialVarSelector ¶ added in v0.8.0
type CredentialVarSelector struct { // The Credential (SystemAccount) to select from. ClusterObjectReference `json:",inline"` CredentialVars `json:",inline"` }
CredentialVarSelector selects a var from a Credential (SystemAccount).
func (*CredentialVarSelector) DeepCopy ¶ added in v0.8.0
func (in *CredentialVarSelector) DeepCopy() *CredentialVarSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialVarSelector.
func (*CredentialVarSelector) DeepCopyInto ¶ added in v0.8.0
func (in *CredentialVarSelector) DeepCopyInto(out *CredentialVarSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CredentialVars ¶ added in v0.8.0
type CredentialVars struct { // +optional Username *VarOption `json:"username,omitempty"` // +optional Password *VarOption `json:"password,omitempty"` }
CredentialVars defines the vars can be referenced from a Credential (SystemAccount). !!!!! CredentialVars will only be used as environment variables for Pods & Actions, and will not be used to render the templates.
func (*CredentialVars) DeepCopy ¶ added in v0.8.0
func (in *CredentialVars) DeepCopy() *CredentialVars
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialVars.
func (*CredentialVars) DeepCopyInto ¶ added in v0.8.0
func (in *CredentialVars) DeepCopyInto(out *CredentialVars)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CustomLabelSpec ¶
type CustomLabelSpec struct { // The key of the label. // // +kubebuilder:validation:Required Key string `json:"key"` // The value of the label. // // +kubebuilder:validation:Required Value string `json:"value"` // The resources that will be patched with the label. // // +kubebuilder:validation:Required Resources []GVKResource `json:"resources,omitempty"` }
func (*CustomLabelSpec) DeepCopy ¶ added in v0.6.0
func (in *CustomLabelSpec) DeepCopy() *CustomLabelSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomLabelSpec.
func (*CustomLabelSpec) DeepCopyInto ¶ added in v0.6.0
func (in *CustomLabelSpec) DeepCopyInto(out *CustomLabelSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CustomOpsComponent ¶ added in v0.9.0
type CustomOpsComponent struct { // Specifies the unique identifier of the cluster component // +kubebuilder:validation:Required ComponentName string `json:"name"` // Represents the parameters for this operation as declared in the opsDefinition.spec.parametersSchema. // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional Parameters []Parameter `json:"parameters,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` }
func (*CustomOpsComponent) DeepCopy ¶ added in v0.9.0
func (in *CustomOpsComponent) DeepCopy() *CustomOpsComponent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomOpsComponent.
func (*CustomOpsComponent) DeepCopyInto ¶ added in v0.9.0
func (in *CustomOpsComponent) DeepCopyInto(out *CustomOpsComponent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CustomOpsSpec ¶ added in v0.8.0
type CustomOpsSpec struct { // Is a reference to an OpsDefinition. // +kubebuilder:validation:Required OpsDefinitionRef string `json:"opsDefinitionRef"` ServiceAccountName *string `json:"serviceAccountName,omitempty"` // Defines the execution concurrency. By default, all incoming Components will be executed simultaneously. // The value can be an absolute number (e.g., 5) or a percentage of desired components (e.g., 10%). // The absolute number is calculated from the percentage by rounding up. // For instance, if the percentage value is 10% and the components length is 1, // the calculated number will be rounded up to 1. // +optional Parallelism intstr.IntOrString `json:"parallelism,omitempty"` // Defines which components need to perform the actions defined by this OpsDefinition. // At least one component is required. The components are identified by their name and can be merged or retained. // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name CustomOpsComponents []CustomOpsComponent `json:"components" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` }
func (*CustomOpsSpec) DeepCopy ¶ added in v0.8.0
func (in *CustomOpsSpec) DeepCopy() *CustomOpsSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomOpsSpec.
func (*CustomOpsSpec) DeepCopyInto ¶ added in v0.8.0
func (in *CustomOpsSpec) DeepCopyInto(out *CustomOpsSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CustomParametersValidation ¶
type CustomParametersValidation struct { // Transforms the schema from CUE to json for further OpenAPI validation // // +kubebuilder:validation:Schemaless // +kubebuilder:validation:ComponentDefRef=object // +kubebuilder:pruning:PreserveUnknownFields Schema *apiext.JSONSchemaProps `json:"schema,omitempty"` // Enables providers to verify user configurations using the CUE language. // // +optional CUE string `json:"cue,omitempty"` }
func (*CustomParametersValidation) DeepCopy ¶ added in v0.6.0
func (in *CustomParametersValidation) DeepCopy() *CustomParametersValidation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomParametersValidation.
func (*CustomParametersValidation) DeepCopyInto ¶ added in v0.6.0
func (in *CustomParametersValidation) DeepCopyInto(out *CustomParametersValidation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvMappingVar ¶ added in v0.7.0
type EnvMappingVar struct { // Specifies the environment variable key that requires mapping. // // +kubebuilder:validation:Required Key string `json:"key"` // Defines the source from which the environment variable value is derived. // // +kubebuilder:validation:Required ValueFrom ValueFrom `json:"valueFrom"` }
func (*EnvMappingVar) DeepCopy ¶ added in v0.7.0
func (in *EnvMappingVar) DeepCopy() *EnvMappingVar
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvMappingVar.
func (*EnvMappingVar) DeepCopyInto ¶ added in v0.7.0
func (in *EnvMappingVar) DeepCopyInto(out *EnvMappingVar)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvVar ¶ added in v0.8.0
type EnvVar struct { // Name of the variable. Must be a C_IDENTIFIER. // +required Name string `json:"name"` // Variable references $(VAR_NAME) are expanded using the previously defined variables in the current context. // // If a variable cannot be resolved, the reference in the input string will be unchanged. // Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. // // - "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". // // Escaped references will never be expanded, regardless of whether the variable exists or not. // Defaults to "". // // +optional Value string `json:"value,omitempty"` // Source for the variable's value. Cannot be used if value is not empty. // +optional ValueFrom *VarSource `json:"valueFrom,omitempty"` }
EnvVar represents a variable present in the env of Pod/Action or the template of config/script.
func (*EnvVar) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.
func (*EnvVar) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvVarRef ¶ added in v0.8.0
type EnvVarRef struct { // Specifies the name of the container as defined in the componentDefinition or as injected by the kubeBlocks controller. // If not specified, the first container will be used by default. // +optional ContainerName string `json:"containerName,omitempty"` // Defines the name of the environment variable. // +kubebuilder:validation:Required EnvName string `json:"envName"` }
func (*EnvVarRef) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVarRef.
func (*EnvVarRef) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExecAction ¶ added in v0.8.0
type ExecAction struct { // Specifies the command line to be executed inside the container. The working directory for this command // is the root ('/') of the container's filesystem. The command is directly executed and not run inside a shell, // hence traditional shell instructions ('|', etc) are not applicable. To use a shell, it needs to be explicitly invoked. // // An exit status of 0 is interpreted as live/healthy, while a non-zero status indicates unhealthy. // // +optional Command []string `json:"command,omitempty" protobuf:"bytes,1,rep,name=command"` // Args are used to perform statements. // // +optional Args []string `json:"args,omitempty"` }
func (*ExecAction) DeepCopy ¶ added in v0.8.0
func (in *ExecAction) DeepCopy() *ExecAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecAction.
func (*ExecAction) DeepCopyInto ¶ added in v0.8.0
func (in *ExecAction) DeepCopyInto(out *ExecAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExporterConfig ¶
type ExporterConfig struct { // Defines the port that the exporter uses for the Time Series Database to scrape metrics. // // +kubebuilder:validation:Required // +kubebuilder:validation:XIntOrString ScrapePort intstr.IntOrString `json:"scrapePort"` // Specifies the URL path that the exporter uses for the Time Series Database to scrape metrics. // // +kubebuilder:validation:MaxLength=128 // +kubebuilder:default="/metrics" // +optional ScrapePath string `json:"scrapePath,omitempty"` }
func (*ExporterConfig) DeepCopy ¶ added in v0.6.0
func (in *ExporterConfig) DeepCopy() *ExporterConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExporterConfig.
func (*ExporterConfig) DeepCopyInto ¶ added in v0.6.0
func (in *ExporterConfig) DeepCopyInto(out *ExporterConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Expose ¶
type Expose struct { ComponentOps `json:",inline"` // Controls the expose operation. // If set to Enable, the corresponding service will be exposed. Conversely, if set to Disable, the service will be removed. // // +kubebuilder:validation:Required Switch ExposeSwitch `json:"switch"` // A list of services that are to be exposed or removed. // If componentNamem is not specified, each `OpsService` in the list must specify ports and selectors. // // +kubebuilder:validation:Required // +kubebuilder:validation:Minitems=0 Services []OpsService `json:"services"` }
func (*Expose) DeepCopy ¶ added in v0.6.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Expose.
func (*Expose) DeepCopyInto ¶ added in v0.6.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExposeSwitch ¶ added in v0.8.0
type ExposeSwitch string
ExposeSwitch Specifies the switch for the expose operation. This switch can be used to enable or disable the expose operation. +enum +kubebuilder:validation:Enum={Enable, Disable}
const ( EnableExposeSwitch ExposeSwitch = "Enable" DisableExposeSwitch ExposeSwitch = "Disable" )
type FailurePolicyType ¶ added in v0.6.0
type FailurePolicyType string
FailurePolicyType specifies the type of failure policy.
+enum +kubebuilder:validation:Enum={Ignore,Fail}
const ( // FailurePolicyIgnore means that an error will be ignored but logged. FailurePolicyIgnore FailurePolicyType = "Ignore" // FailurePolicyFail means that an error will be reported. FailurePolicyFail FailurePolicyType = "Fail" )
type GVKResource ¶
type GVKResource struct { // Represents the GVK of a resource, such as "v1/Pod", "apps/v1/StatefulSet", etc. // When a resource matching this is found by the selector, a custom label will be added if it doesn't already exist, // or updated if it does. // // +kubebuilder:validation:Required GVK string `json:"gvk"` // A label query used to filter a set of resources. // // +optional Selector map[string]string `json:"selector,omitempty"` }
func (*GVKResource) DeepCopy ¶ added in v0.6.0
func (in *GVKResource) DeepCopy() *GVKResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GVKResource.
func (*GVKResource) DeepCopyInto ¶ added in v0.6.0
func (in *GVKResource) DeepCopyInto(out *GVKResource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HScaleDataClonePolicyType ¶
type HScaleDataClonePolicyType string
HScaleDataClonePolicyType defines the data clone policy to be used during horizontal scaling. This policy determines how data is handled when new nodes are added to the cluster. The policy can be set to `None`, `CloneVolume`, or `Snapshot`.
+enum +kubebuilder:validation:Enum={None,CloneVolume,Snapshot}
const ( // HScaleDataClonePolicyNone indicates that no data cloning will occur during horizontal scaling. HScaleDataClonePolicyNone HScaleDataClonePolicyType = "None" // HScaleDataClonePolicyCloneVolume indicates that data will be cloned from existing volumes during horizontal scaling. HScaleDataClonePolicyCloneVolume HScaleDataClonePolicyType = "CloneVolume" // HScaleDataClonePolicyFromSnapshot indicates that data will be cloned from a snapshot during horizontal scaling. HScaleDataClonePolicyFromSnapshot HScaleDataClonePolicyType = "Snapshot" )
type HTTPAction ¶ added in v0.8.0
type HTTPAction struct { // Specifies the path to be accessed on the HTTP server. // // +optional Path string `json:"path,omitempty"` // Defines the name or number of the port to be accessed on the container. // The number must fall within the range of 1 to 65535. // The name must conform to the IANA_SVC_NAME standard. Port intstr.IntOrString `json:"port"` // Indicates the host name to connect to, which defaults to the pod IP. // It is recommended to set "Host" in httpHeaders instead. // // +optional Host string `json:"host,omitempty"` // Specifies the scheme to be used for connecting to the host. // The default scheme is HTTP. // // +optional Scheme corev1.URIScheme `json:"scheme,omitempty"` // Represents the HTTP request method, which can be one of the standard HTTP methods such as "GET," "POST," "PUT," etc. // The default method is Get. // // +optional Method string `json:"method,omitempty"` // Allows for the setting of custom headers in the request. // HTTP supports repeated headers. // // +optional HTTPHeaders []corev1.HTTPHeader `json:"httpHeaders,omitempty"` }
HTTPAction describes an action based on HTTP requests.
func (*HTTPAction) DeepCopy ¶ added in v0.8.0
func (in *HTTPAction) DeepCopy() *HTTPAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPAction.
func (*HTTPAction) DeepCopyInto ¶ added in v0.8.0
func (in *HTTPAction) DeepCopyInto(out *HTTPAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HorizontalScalePolicy ¶
type HorizontalScalePolicy struct { // Determines the data synchronization method when a component scales out. // The policy can be one of the following: {None, CloneVolume}. The default policy is `None`. // // - `None`: This is the default policy. It creates an empty volume without data cloning. // - `CloneVolume`: This policy clones data to newly scaled pods. It first tries to use a volume snapshot. // If volume snapshot is not enabled, it will attempt to use a backup tool. If neither method works, it will report an error. // - `Snapshot`: This policy is deprecated and is an alias for CloneVolume. // // +kubebuilder:default=None // +optional Type HScaleDataClonePolicyType `json:"type,omitempty"` // Refers to the backup policy template. // // +optional BackupPolicyTemplateName string `json:"backupPolicyTemplateName,omitempty"` // Specifies the volumeMount of the container to backup. // This only works if Type is not None. If not specified, the first volumeMount will be selected. // // +optional VolumeMountsName string `json:"volumeMountsName,omitempty"` }
func (*HorizontalScalePolicy) DeepCopy ¶ added in v0.6.0
func (in *HorizontalScalePolicy) DeepCopy() *HorizontalScalePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalScalePolicy.
func (*HorizontalScalePolicy) DeepCopyInto ¶ added in v0.6.0
func (in *HorizontalScalePolicy) DeepCopyInto(out *HorizontalScalePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HorizontalScaling ¶
type HorizontalScaling struct { ComponentOps `json:",inline"` // Specifies the number of replicas for the workloads. // +kubebuilder:validation:Required // +kubebuilder:validation:Minimum=0 Replicas int32 `json:"replicas"` }
HorizontalScaling defines the variables of horizontal scaling operation
func (*HorizontalScaling) DeepCopy ¶ added in v0.6.0
func (in *HorizontalScaling) DeepCopy() *HorizontalScaling
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalScaling.
func (*HorizontalScaling) DeepCopyInto ¶ added in v0.6.0
func (in *HorizontalScaling) DeepCopyInto(out *HorizontalScaling)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostNetwork ¶ added in v0.9.0
type HostNetwork struct { // The list of container ports that are required by the component. // // +optional ContainerPorts []HostNetworkContainerPort `json:"containerPorts,omitempty"` }
func (*HostNetwork) DeepCopy ¶ added in v0.9.0
func (in *HostNetwork) DeepCopy() *HostNetwork
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostNetwork.
func (*HostNetwork) DeepCopyInto ¶ added in v0.9.0
func (in *HostNetwork) DeepCopyInto(out *HostNetwork)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostNetworkContainerPort ¶ added in v0.9.0
type HostNetworkContainerPort struct { // Container specifies the target container within the pod. // // +required Container string `json:"container"` // Ports are named container ports within the specified container. // These container ports must be defined in the container for proper port allocation. // // +kubebuilder:validation:MinItems=1 // +required Ports []string `json:"ports"` }
func (*HostNetworkContainerPort) DeepCopy ¶ added in v0.9.0
func (in *HostNetworkContainerPort) DeepCopy() *HostNetworkContainerPort
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostNetworkContainerPort.
func (*HostNetworkContainerPort) DeepCopyInto ¶ added in v0.9.0
func (in *HostNetworkContainerPort) DeepCopyInto(out *HostNetworkContainerPort)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Instance ¶ added in v0.8.3
type Instance struct { // Pod name of the instance. // +kubebuilder:validation:Required Name string `json:"name"` // The instance will rebuild on the specified node when the instance uses local PersistentVolume as the storage disk. // If not set, it will rebuild on a random node. // +optional TargetNodeName string `json:"targetNodeName,omitempty"` }
func (*Instance) DeepCopy ¶ added in v0.8.3
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Instance.
func (*Instance) DeepCopyInto ¶ added in v0.8.3
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InstanceTemplate ¶ added in v0.9.0
type InstanceTemplate struct { // Number of replicas of this template. // Default is 1. // +kubebuilder:default=1 // +kubebuilder:validation:Minimum=0 // +optional Replicas *int32 `json:"replicas,omitempty"` // Defines the name of the instance. // Only applied when Replicas is 1. // // +kubebuilder:validation:MaxLength=64 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` // +optional Name *string `json:"name,omitempty"` // GenerateName is an optional prefix, used by the server, to generate a unique // name ONLY IF the Name field has not been provided. // If this field is used, the name returned to the client will be different // than the name passed. This value will also be combined with a unique suffix. // The provided value has the same validation rules as the Name field, // and may be truncated by the length of the suffix required to make the value // unique on the server. // // Applied only if Name is not specified. // // +kubebuilder:validation:MaxLength=54 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` // +optional GenerateName *string `json:"generateName,omitempty"` // Defines annotations to override. // Add new or override existing annotations. // +optional Annotations map[string]string `json:"annotations,omitempty"` // Defines labels to override. // Add new or override existing labels. // +optional Labels map[string]string `json:"labels,omitempty"` // Defines image to override. // Will override the first container's image of the pod. // +optional Image *string `json:"image,omitempty"` // Defines NodeName to override. // +optional NodeName *string `json:"nodeName,omitempty"` // Defines NodeSelector to override. // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` // Defines Tolerations to override. // Add new or override existing tolerations. // +optional Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // Defines Resources to override. // Will override the first container's resources of the pod. // +optional Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // Defines Volumes to override. // Add new or override existing volumes. // +optional Volumes []corev1.Volume `json:"volumes,omitempty"` // Defines VolumeMounts to override. // Add new or override existing volume mounts of the first container in the pod. // +optional VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"` // Defines VolumeClaimTemplates to override. // Add new or override existing volume claim templates. // +optional VolumeClaimTemplates []corev1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"` }
InstanceTemplate defines values to override in pod template.
func (*InstanceTemplate) DeepCopy ¶ added in v0.9.0
func (in *InstanceTemplate) DeepCopy() *InstanceTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceTemplate.
func (*InstanceTemplate) DeepCopyInto ¶ added in v0.9.0
func (in *InstanceTemplate) DeepCopyInto(out *InstanceTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Issuer ¶
type Issuer struct { // The issuer for TLS certificates. // // +kubebuilder:validation:Enum={KubeBlocks, UserProvided} // +kubebuilder:default=KubeBlocks // +kubebuilder:validation:Required Name IssuerName `json:"name"` // SecretRef is the reference to the TLS certificates secret. // It is required when the issuer is set to UserProvided. // // +optional SecretRef *TLSSecretRef `json:"secretRef,omitempty"` }
Issuer defines the TLS certificates issuer for the cluster.
func (*Issuer) DeepCopy ¶ added in v0.6.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Issuer.
func (*Issuer) DeepCopyInto ¶ added in v0.6.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IssuerName ¶
type IssuerName string
IssuerName defines the name of the TLS certificates issuer. +enum +kubebuilder:validation:Enum={KubeBlocks,UserProvided}
const ( // IssuerKubeBlocks represents certificates that are signed by the KubeBlocks Operator. IssuerKubeBlocks IssuerName = "KubeBlocks" // IssuerUserProvided indicates that the user has provided their own CA-signed certificates. IssuerUserProvided IssuerName = "UserProvided" )
type JSONPatchOperation ¶ added in v0.9.0
type JSONPatchOperation struct { // Represents the type of JSON patch operation. It supports the following values: 'add', 'remove', 'replace'. // +enum // +kubebuilder:validation:Enum={add,remove,replace} // +kubebuilder:validation:Required Operation string `json:"op"` // Represents the json patch path. // +kubebuilder:validation:Required Path string `json:"path"` // Represents the value to be used in the JSON patch operation. // +kubebuilder:validation:Required Value string `json:"value"` }
func (*JSONPatchOperation) DeepCopy ¶ added in v0.9.0
func (in *JSONPatchOperation) DeepCopy() *JSONPatchOperation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JSONPatchOperation.
func (*JSONPatchOperation) DeepCopyInto ¶ added in v0.9.0
func (in *JSONPatchOperation) DeepCopyInto(out *JSONPatchOperation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LastComponentConfiguration ¶
type LastComponentConfiguration struct { // Represents the last replicas of the component. // +optional Replicas *int32 `json:"replicas,omitempty"` // Represents the last resources of the component. // +kubebuilder:pruning:PreserveUnknownFields // +optional corev1.ResourceRequirements `json:",inline,omitempty"` // References a class defined in ComponentClassDefinition. // +kubebuilder:deprecatedversion:warning="Due to the lack of practical use cases, this field is deprecated from KB 0.9.0." // +optional ClassDefRef *ClassDefRef `json:"classDefRef,omitempty"` // Records the last volumeClaimTemplates of the component. // +optional VolumeClaimTemplates []OpsRequestVolumeClaimTemplate `json:"volumeClaimTemplates,omitempty"` // Records the last services of the component. // +optional Services []ClusterComponentService `json:"services,omitempty"` // Records the information about the target resources affected by the component. // The resource key is in the list of [pods]. // +optional TargetResources map[ComponentResourceKey][]string `json:"targetResources,omitempty"` }
func (*LastComponentConfiguration) DeepCopy ¶ added in v0.6.0
func (in *LastComponentConfiguration) DeepCopy() *LastComponentConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LastComponentConfiguration.
func (*LastComponentConfiguration) DeepCopyInto ¶ added in v0.6.0
func (in *LastComponentConfiguration) DeepCopyInto(out *LastComponentConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LastConfiguration ¶
type LastConfiguration struct { // Specifies the reference to the ClusterVersion name. // +optional ClusterVersionRef string `json:"clusterVersionRef,omitempty"` // Records the last configuration of the component. // +optional Components map[string]LastComponentConfiguration `json:"components,omitempty"` }
func (*LastConfiguration) DeepCopy ¶ added in v0.6.0
func (in *LastConfiguration) DeepCopy() *LastConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LastConfiguration.
func (*LastConfiguration) DeepCopyInto ¶ added in v0.6.0
func (in *LastConfiguration) DeepCopyInto(out *LastConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LegacyRenderedTemplateSpec ¶ added in v0.7.0
type LegacyRenderedTemplateSpec struct { // Extends the configuration template. ConfigTemplateExtension `json:",inline"` }
func (*LegacyRenderedTemplateSpec) DeepCopy ¶ added in v0.7.0
func (in *LegacyRenderedTemplateSpec) DeepCopy() *LegacyRenderedTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LegacyRenderedTemplateSpec.
func (*LegacyRenderedTemplateSpec) DeepCopyInto ¶ added in v0.7.0
func (in *LegacyRenderedTemplateSpec) DeepCopyInto(out *LegacyRenderedTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LetterCase ¶
type LetterCase string
LetterCase defines the available cases to be used in password generation.
+enum +kubebuilder:validation:Enum={LowerCases,UpperCases,MixedCases}
const ( // LowerCases represents the use of lower case letters only. LowerCases LetterCase = "LowerCases" // UpperCases represents the use of upper case letters only. UpperCases LetterCase = "UpperCases" // MixedCases represents the use of a mix of both lower and upper case letters. MixedCases LetterCase = "MixedCases" )
type LifecycleActionHandler ¶ added in v0.8.0
type LifecycleActionHandler struct { // BuiltinHandler specifies the builtin action handler name to do the action. // the BuiltinHandler within the same ComponentLifecycleActions should be consistent. Details can be queried through official documentation in the future. // use CustomHandler to define your own actions if none of them satisfies the requirement. // // +optional BuiltinHandler *BuiltinActionHandlerType `json:"builtinHandler,omitempty"` // CustomHandler defines the custom way to do action. // // +optional CustomHandler *Action `json:"customHandler,omitempty"` }
func (*LifecycleActionHandler) DeepCopy ¶ added in v0.8.0
func (in *LifecycleActionHandler) DeepCopy() *LifecycleActionHandler
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleActionHandler.
func (*LifecycleActionHandler) DeepCopyInto ¶ added in v0.8.0
func (in *LifecycleActionHandler) DeepCopyInto(out *LifecycleActionHandler)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LogConfig ¶
type LogConfig struct { // Specifies the type of log, such as 'slow' for a MySQL slow log file. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=128 Name string `json:"name"` // Indicates the path to the log file using a pattern, it corresponds to the variable (log path) in the database kernel. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=4096 FilePathPattern string `json:"filePathPattern"` }
func (*LogConfig) DeepCopy ¶ added in v0.6.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogConfig.
func (*LogConfig) DeepCopyInto ¶ added in v0.6.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MatchExpressions ¶ added in v0.9.0
type MatchExpressions struct { // Defines a failure condition for an action using a Go template expression. // Should evaluate to either `true` or `false`. // The current resource object is parsed into the Go template. // for example, you can use '{{ eq .spec.replicas 1 }}'. // +optional Failure string `json:"failure,omitempty"` // Defines a success condition for an action using a Go template expression. // Should evaluate to either `true` or `false`. // The current resource object is parsed into the Go template. // for example, using '{{ eq .spec.replicas 1 }}' // +kubebuilder:validation:Required Success string `json:"success"` }
func (*MatchExpressions) DeepCopy ¶ added in v0.9.0
func (in *MatchExpressions) DeepCopy() *MatchExpressions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchExpressions.
func (*MatchExpressions) DeepCopyInto ¶ added in v0.9.0
func (in *MatchExpressions) DeepCopyInto(out *MatchExpressions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MemoryConstraint ¶
type MemoryConstraint struct { // The size of memory per vcpu core. // For example: 1Gi, 200Mi. // If SizePerCPU is specified, MinPerCPU and MaxPerCPU are ignore. // +optional SizePerCPU *resource.Quantity `json:"sizePerCPU,omitempty"` // The maximum size of memory per vcpu core, [MinPerCPU, MaxPerCPU] defines a range for valid memory size per vcpu core. // It is useful on GCP as the ratio between the CPU and memory may be a range. // If SizePerCPU is specified, MinPerCPU and MaxPerCPU are ignored. // Reference: https://cloud.google.com/compute/docs/general-purpose-machines#custom_machine_types // +optional MaxPerCPU *resource.Quantity `json:"maxPerCPU,omitempty"` // The minimum size of memory per vcpu core, [MinPerCPU, MaxPerCPU] defines a range for valid memory size per vcpu core. // It is useful on GCP as the ratio between the CPU and memory may be a range. // If SizePerCPU is specified, MinPerCPU and MaxPerCPU are ignored. // Reference: https://cloud.google.com/compute/docs/general-purpose-machines#custom_machine_types // +optional MinPerCPU *resource.Quantity `json:"minPerCPU,omitempty"` }
func (*MemoryConstraint) DeepCopy ¶ added in v0.6.0
func (in *MemoryConstraint) DeepCopy() *MemoryConstraint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemoryConstraint.
func (*MemoryConstraint) DeepCopyInto ¶ added in v0.6.0
func (in *MemoryConstraint) DeepCopyInto(out *MemoryConstraint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MergedPolicy ¶ added in v0.6.0
type MergedPolicy string
MergedPolicy defines how to merge external imported templates into component templates. +enum +kubebuilder:validation:Enum={patch,replace,none}
const ( PatchPolicy MergedPolicy = "patch" ReplacePolicy MergedPolicy = "replace" OnlyAddPolicy MergedPolicy = "add" NoneMergePolicy MergedPolicy = "none" )
type MonitorConfig ¶
type MonitorConfig struct { // To enable the built-in monitoring. // When set to true, monitoring metrics will be automatically scraped. // When set to false, the provider is expected to configure the ExporterConfig and manage the Sidecar container. // // +kubebuilder:default=false // +optional BuiltIn bool `json:"builtIn,omitempty"` // Provided by the provider and contains the necessary information for the Time Series Database. // This field is only valid when BuiltIn is set to false. // // +optional Exporter *ExporterConfig `json:"exporterConfig,omitempty"` }
func (*MonitorConfig) DeepCopy ¶ added in v0.6.0
func (in *MonitorConfig) DeepCopy() *MonitorConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitorConfig.
func (*MonitorConfig) DeepCopyInto ¶ added in v0.6.0
func (in *MonitorConfig) DeepCopyInto(out *MonitorConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MultipleClusterObjectCombinedOption ¶ added in v0.8.3
type MultipleClusterObjectCombinedOption struct { // If set, the existing variable will be kept, and a new variable will be defined with the specified suffix // in pattern: $(var.name)_$(suffix). // The new variable will be auto-created and placed behind the existing one. // If not set, the existing variable will be reused with the value format defined below. // // +optional NewVarSuffix *string `json:"newVarSuffix,omitempty"` // The format of the value that the operator will use to compose values from multiple components. // // +kubebuilder:default="Flatten" // +optional ValueFormat MultipleClusterObjectValueFormat `json:"valueFormat,omitempty"` // The flatten format, default is: $(comp-name-1):value,$(comp-name-2):value. // // +optional FlattenFormat *MultipleClusterObjectValueFormatFlatten `json:"flattenFormat,omitempty"` }
MultipleClusterObjectCombinedOption defines options for handling combined variables.
func (*MultipleClusterObjectCombinedOption) DeepCopy ¶ added in v0.8.3
func (in *MultipleClusterObjectCombinedOption) DeepCopy() *MultipleClusterObjectCombinedOption
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MultipleClusterObjectCombinedOption.
func (*MultipleClusterObjectCombinedOption) DeepCopyInto ¶ added in v0.8.3
func (in *MultipleClusterObjectCombinedOption) DeepCopyInto(out *MultipleClusterObjectCombinedOption)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MultipleClusterObjectOption ¶ added in v0.8.3
type MultipleClusterObjectOption struct { // Define the strategy for handling multiple cluster objects. // +required Strategy MultipleClusterObjectStrategy `json:"strategy"` // Define the options for handling combined variables. // Valid only when the strategy is set to "combined". // // +optional CombinedOption *MultipleClusterObjectCombinedOption `json:"combinedOption,omitempty"` }
MultipleClusterObjectOption defines the options for handling multiple cluster objects matched.
func (*MultipleClusterObjectOption) DeepCopy ¶ added in v0.8.3
func (in *MultipleClusterObjectOption) DeepCopy() *MultipleClusterObjectOption
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MultipleClusterObjectOption.
func (*MultipleClusterObjectOption) DeepCopyInto ¶ added in v0.8.3
func (in *MultipleClusterObjectOption) DeepCopyInto(out *MultipleClusterObjectOption)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MultipleClusterObjectStrategy ¶ added in v0.8.3
type MultipleClusterObjectStrategy string
MultipleClusterObjectStrategy defines the strategy for handling multiple cluster objects. +enum +kubebuilder:validation:Enum={individual,combined}
const ( // MultipleClusterObjectStrategyIndividual - each matched component will have its individual variable with its name // as the suffix. // This is required when referencing credential variables that cannot be passed by values. MultipleClusterObjectStrategyIndividual MultipleClusterObjectStrategy = "individual" // MultipleClusterObjectStrategyCombined - the values from all matched components will be combined into a single // variable using the specified option. MultipleClusterObjectStrategyCombined MultipleClusterObjectStrategy = "combined" )
type MultipleClusterObjectValueFormat ¶ added in v0.8.3
type MultipleClusterObjectValueFormat string
MultipleClusterObjectValueFormat defines the format details for the value.
const (
FlattenFormat MultipleClusterObjectValueFormat = "Flatten"
)
type MultipleClusterObjectValueFormatFlatten ¶ added in v0.8.3
type MultipleClusterObjectValueFormatFlatten struct { // Pair delimiter. // // +kubebuilder:default="," // +required Delimiter string `json:"delimiter"` // Key-value delimiter. // // +kubebuilder:default=":" // +required KeyValueDelimiter string `json:"keyValueDelimiter"` }
MultipleClusterObjectValueFormatFlatten defines the flatten format for the value.
func (*MultipleClusterObjectValueFormatFlatten) DeepCopy ¶ added in v0.8.3
func (in *MultipleClusterObjectValueFormatFlatten) DeepCopy() *MultipleClusterObjectValueFormatFlatten
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MultipleClusterObjectValueFormatFlatten.
func (*MultipleClusterObjectValueFormatFlatten) DeepCopyInto ¶ added in v0.8.3
func (in *MultipleClusterObjectValueFormatFlatten) DeepCopyInto(out *MultipleClusterObjectValueFormatFlatten)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NamedVar ¶ added in v0.8.0
type NamedVar struct { // +optional Name string `json:"name,omitempty"` // +optional Option *VarOption `json:"option,omitempty"` }
func (*NamedVar) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedVar.
func (*NamedVar) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsAction ¶ added in v0.9.0
type OpsAction struct { // action name. // +kubebuilder:validation:MaxLength=20 // +kubebuilder:validation:Required Name string `json:"name"` // failurePolicy is the failure policy of the action. valid values Fail and Ignore. // - Fail: if the action failed, the opsRequest will be failed. // - Ignore: opsRequest will ignore the failure if the action is failed. // +kubebuilder:validation:Enum={Ignore,Fail} // +kubebuilder:default=Fail // +optional FailurePolicy FailurePolicyType `json:"failurePolicy"` // Refers to the parameter of the ParametersSchema. // The parameter will be used in the action. // If it is a 'workload' and 'exec' Action, they will be injected into the corresponding environment variable. // If it is a 'resourceModifier' Action, parameter can be referenced using $() in completionProbe.matchExpressions and JsonPatches[*].Value. // +optional Parameters []string `json:"parameters,omitempty"` // Indicates the workload action and a corresponding workload will be created to execute this action. // +optional Workload *OpsWorkloadAction `json:"workload,omitempty"` // Represents the exec action. This will call the kubectl exec interface. // +optional Exec *OpsExecAction `json:"exec,omitempty"` // Specifies the resource modifier to update the custom resource. // +optional ResourceModifier *OpsResourceModifierAction `json:"resourceModifier,omitempty"` }
func (*OpsAction) DeepCopy ¶ added in v0.9.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsAction.
func (*OpsAction) DeepCopyInto ¶ added in v0.9.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsDefinition ¶ added in v0.8.0
type OpsDefinition struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec OpsDefinitionSpec `json:"spec,omitempty"` Status OpsDefinitionStatus `json:"status,omitempty"` }
OpsDefinition is the Schema for the opsdefinitions API
func (*OpsDefinition) DeepCopy ¶ added in v0.8.0
func (in *OpsDefinition) DeepCopy() *OpsDefinition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsDefinition.
func (*OpsDefinition) DeepCopyInto ¶ added in v0.8.0
func (in *OpsDefinition) DeepCopyInto(out *OpsDefinition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OpsDefinition) DeepCopyObject ¶ added in v0.8.0
func (in *OpsDefinition) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*OpsDefinition) GetComponentDefRef ¶ added in v0.8.0
func (o *OpsDefinition) GetComponentDefRef(compDefName string) *ComponentDefinitionRef
type OpsDefinitionList ¶ added in v0.8.0
type OpsDefinitionList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []OpsDefinition `json:"items"` }
OpsDefinitionList contains a list of OpsDefinition
func (*OpsDefinitionList) DeepCopy ¶ added in v0.8.0
func (in *OpsDefinitionList) DeepCopy() *OpsDefinitionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsDefinitionList.
func (*OpsDefinitionList) DeepCopyInto ¶ added in v0.8.0
func (in *OpsDefinitionList) DeepCopyInto(out *OpsDefinitionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OpsDefinitionList) DeepCopyObject ¶ added in v0.8.0
func (in *OpsDefinitionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OpsDefinitionSpec ¶ added in v0.8.0
type OpsDefinitionSpec struct { // Specifies the preconditions that must be met to run the actions for the operation. // if set, it will check the condition before the component run this operation. // +optional PreConditions []PreCondition `json:"preConditions,omitempty"` // Defines the targetPodTemplate to be referenced by the action. // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional TargetPodTemplates []TargetPodTemplate `json:"targetPodTemplates" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` // Specifies the types of componentDefinitions supported by the operation. // It can reference certain variables of the componentDefinition. // If set, any component not meeting these conditions will be intercepted. // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional ComponentDefinitionRefs []ComponentDefinitionRef `json:"componentDefinitionRefs,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` // Describes the schema used for validation, pruning, and defaulting. // +optional ParametersSchema *ParametersSchema `json:"parametersSchema,omitempty"` // The actions to be executed in the opsRequest are performed sequentially. // +kubebuilder:validation:MinItems=1 // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +kubebuilder:validation:Required Actions []OpsAction `json:"actions" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` }
OpsDefinitionSpec defines the desired state of OpsDefinition
func (*OpsDefinitionSpec) DeepCopy ¶ added in v0.8.0
func (in *OpsDefinitionSpec) DeepCopy() *OpsDefinitionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsDefinitionSpec.
func (*OpsDefinitionSpec) DeepCopyInto ¶ added in v0.8.0
func (in *OpsDefinitionSpec) DeepCopyInto(out *OpsDefinitionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsDefinitionStatus ¶ added in v0.8.0
type OpsDefinitionStatus struct { // Refers to the most recent generation observed for this OpsDefinition. // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // Represents the current state of the OpsDefinition. Valid values are “, `Available`, `Unavailable`. // When the state is `Available`, the OpsDefinition is ready and can be used for related objects. // +optional Phase Phase `json:"phase,omitempty"` // Provides additional information about the current phase. // +optional Message string `json:"message,omitempty"` }
OpsDefinitionStatus defines the observed state of OpsDefinition
func (*OpsDefinitionStatus) DeepCopy ¶ added in v0.8.0
func (in *OpsDefinitionStatus) DeepCopy() *OpsDefinitionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsDefinitionStatus.
func (*OpsDefinitionStatus) DeepCopyInto ¶ added in v0.8.0
func (in *OpsDefinitionStatus) DeepCopyInto(out *OpsDefinitionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsEnvVar ¶ added in v0.8.0
type OpsEnvVar struct { // Specifies the name of the variable. This must be a C_IDENTIFIER. // +kubebuilder:validation:Required Name string `json:"name"` // Defines the source for the variable's value. // +kubebuilder:validation:Required ValueFrom *OpsVarSource `json:"valueFrom"` }
func (*OpsEnvVar) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsEnvVar.
func (*OpsEnvVar) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsExecAction ¶ added in v0.9.0
type OpsExecAction struct { // Refers to the spec.targetPodTemplates. Defines the target pods that need to execute exec actions. // +kubebuilder:validation:Required TargetPodTemplate string `json:"targetPodTemplate"` // Specifies the number of retries before marking the action as failed. // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=0 // +optional BackoffLimit int32 `json:"backoffLimit,omitempty"` // The command to execute. // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:Required Command []string `json:"command"` // The name of the container in the target pod to execute the command. // If not set, the first container is used. // +optional ContainerName string `json:"containerName"` }
func (*OpsExecAction) DeepCopy ¶ added in v0.9.0
func (in *OpsExecAction) DeepCopy() *OpsExecAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsExecAction.
func (*OpsExecAction) DeepCopyInto ¶ added in v0.9.0
func (in *OpsExecAction) DeepCopyInto(out *OpsExecAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsPhase ¶
type OpsPhase string
OpsPhase defines opsRequest phase. +enum +kubebuilder:validation:Enum={Pending,Creating,Running,Cancelling,Cancelled,Failed,Succeed}
type OpsRecorder ¶
type OpsRecorder struct { // name OpsRequest name Name string `json:"name"` // opsRequest type Type OpsType `json:"type"` // indicates whether the current opsRequest is in the queue InQueue bool `json:"inQueue,omitempty"` // indicates that the operation is queued for execution within its own-type scope. QueueBySelf bool `json:"queueBySelf,omitempty"` }
func (*OpsRecorder) DeepCopy ¶ added in v0.6.0
func (in *OpsRecorder) DeepCopy() *OpsRecorder
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsRecorder.
func (*OpsRecorder) DeepCopyInto ¶ added in v0.6.0
func (in *OpsRecorder) DeepCopyInto(out *OpsRecorder)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsRequest ¶
type OpsRequest struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec OpsRequestSpec `json:"spec,omitempty"` Status OpsRequestStatus `json:"status,omitempty"` }
OpsRequest is the Schema for the opsrequests API
func GetRunningOpsByOpsType ¶ added in v0.6.0
func GetRunningOpsByOpsType(ctx context.Context, cli client.Client, clusterName, namespace, opsType string) ([]OpsRequest, error)
GetRunningOpsByOpsType gets the running opsRequests by type.
func (*OpsRequest) DeepCopy ¶ added in v0.6.0
func (in *OpsRequest) DeepCopy() *OpsRequest
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsRequest.
func (*OpsRequest) DeepCopyInto ¶ added in v0.6.0
func (in *OpsRequest) DeepCopyInto(out *OpsRequest)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OpsRequest) DeepCopyObject ¶ added in v0.6.0
func (in *OpsRequest) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*OpsRequest) Force ¶ added in v0.9.0
func (r *OpsRequest) Force() bool
Force checks if the current opsRequest can be forcibly executed
func (*OpsRequest) GetComponentNameSet ¶
func (r *OpsRequest) GetComponentNameSet() ComponentNameSet
GetComponentNameSet if the operations are within the scope of component, this function should be implemented
func (*OpsRequest) GetUpgradeComponentNameSet ¶
func (r *OpsRequest) GetUpgradeComponentNameSet() ComponentNameSet
GetUpgradeComponentNameSet gets the component name map with upgrade operation.
func (*OpsRequest) IsComplete ¶ added in v0.6.0
func (r *OpsRequest) IsComplete(phases ...OpsPhase) bool
IsComplete checks if opsRequest has been completed.
func (*OpsRequest) SetStatusCondition ¶
func (r *OpsRequest) SetStatusCondition(condition metav1.Condition)
func (*OpsRequest) SetupWebhookWithManager ¶
func (r *OpsRequest) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*OpsRequest) Validate ¶
func (r *OpsRequest) Validate(ctx context.Context, k8sClient client.Client, cluster *Cluster, needCheckClusterPhase bool) error
Validate validates OpsRequest
func (*OpsRequest) ValidateCreate ¶
func (r *OpsRequest) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*OpsRequest) ValidateDelete ¶
func (r *OpsRequest) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*OpsRequest) ValidateUpdate ¶
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type OpsRequestBehaviour ¶
type OpsRequestBehaviour struct { FromClusterPhases []ClusterPhase ToClusterPhase ClusterPhase }
func (*OpsRequestBehaviour) DeepCopy ¶ added in v0.6.0
func (in *OpsRequestBehaviour) DeepCopy() *OpsRequestBehaviour
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsRequestBehaviour.
func (*OpsRequestBehaviour) DeepCopyInto ¶ added in v0.6.0
func (in *OpsRequestBehaviour) DeepCopyInto(out *OpsRequestBehaviour)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsRequestComponentStatus ¶
type OpsRequestComponentStatus struct { // Describes the component phase, referencing Cluster.status.component.phase. // +optional Phase ClusterComponentPhase `json:"phase,omitempty"` // Indicates the last time the component phase transitioned to Failed or Abnormal. // +optional LastFailedTime metav1.Time `json:"lastFailedTime,omitempty"` // Specifies the outcome of the preConditions check for the opsRequest. This result is crucial for determining the next steps in the operation. // +optional PreCheckResult *PreCheckResult `json:"preCheck,omitempty"` // Describes the progress details of the component for this operation. // +optional ProgressDetails []ProgressStatusDetail `json:"progressDetails,omitempty"` // References the workload type of component in ClusterDefinition. // +optional WorkloadType WorkloadType `json:"workloadType,omitempty"` // Describes the configuration covered by the latest OpsRequest of the same kind. // when reconciling, this information will be used as a benchmark rather than the 'spec', such as 'Spec.HorizontalScaling'. // +optional OverrideBy *OverrideBy `json:"overrideBy,omitempty"` // Describes the reason for the component phase. // +kubebuilder:validation:MaxLength=1024 // +optional Reason string `json:"reason,omitempty" protobuf:"bytes,5,opt,name=reason"` // Provides a human-readable message indicating details about this operation. // +kubebuilder:validation:MaxLength=32768 // +optional Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"` }
func (*OpsRequestComponentStatus) DeepCopy ¶ added in v0.6.0
func (in *OpsRequestComponentStatus) DeepCopy() *OpsRequestComponentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsRequestComponentStatus.
func (*OpsRequestComponentStatus) DeepCopyInto ¶ added in v0.6.0
func (in *OpsRequestComponentStatus) DeepCopyInto(out *OpsRequestComponentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsRequestList ¶
type OpsRequestList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []OpsRequest `json:"items"` }
OpsRequestList contains a list of OpsRequest
func (*OpsRequestList) DeepCopy ¶ added in v0.6.0
func (in *OpsRequestList) DeepCopy() *OpsRequestList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsRequestList.
func (*OpsRequestList) DeepCopyInto ¶ added in v0.6.0
func (in *OpsRequestList) DeepCopyInto(out *OpsRequestList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OpsRequestList) DeepCopyObject ¶ added in v0.6.0
func (in *OpsRequestList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OpsRequestSpec ¶
type OpsRequestSpec struct { // References the cluster object. // +kubebuilder:validation:Required // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.clusterRef" ClusterRef string `json:"clusterRef"` // Defines the action to cancel the `Pending/Creating/Running` opsRequest, supported types: `VerticalScaling/HorizontalScaling`. // Once set to true, this opsRequest will be canceled and modifying this property again will not take effect. // +optional Cancel bool `json:"cancel,omitempty"` // Indicates if pre-checks should be bypassed, allowing the opsRequest to execute immediately. If set to true, pre-checks are skipped except for 'Start' type. // Particularly useful when concurrent execution of VerticalScaling and HorizontalScaling opsRequests is required, // achievable through the use of the Force flag. // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.force" // +optional Force bool `json:"force,omitempty"` // Defines the operation type. // +kubebuilder:validation:Required // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.type" Type OpsType `json:"type"` // OpsRequest will be deleted after TTLSecondsAfterSucceed second when OpsRequest.status.phase is Succeed. // +optional TTLSecondsAfterSucceed int32 `json:"ttlSecondsAfterSucceed,omitempty"` // Specifies the cluster version by specifying clusterVersionRef. // +optional // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.upgrade" Upgrade *Upgrade `json:"upgrade,omitempty"` // Defines what component need to horizontal scale the specified replicas. // +optional // +patchMergeKey=componentName // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=componentName // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.horizontalScaling" HorizontalScalingList []HorizontalScaling `json:"horizontalScaling,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"componentName"` // Note: Quantity struct can not do immutable check by CEL. // Defines what component and volumeClaimTemplate need to expand the specified storage. // +optional // +patchMergeKey=componentName // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=componentName VolumeExpansionList []VolumeExpansion `json:"volumeExpansion,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"componentName"` // Restarts the specified components. // +optional // +patchMergeKey=componentName // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=componentName // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.restart" RestartList []ComponentOps `json:"restart,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"componentName"` // Switches over the specified components. // +optional // +patchMergeKey=componentName // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=componentName // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.switchover" SwitchoverList []Switchover `json:"switchover,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"componentName"` // Note: Quantity struct can not do immutable check by CEL. // Defines what component need to vertical scale the specified compute resources. // +optional // +patchMergeKey=componentName // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=componentName VerticalScalingList []VerticalScaling `json:"verticalScaling,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"componentName"` // Deprecated: replace by reconfigures. // Defines the variables that need to input when updating configuration. // +optional // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.reconfigure" // +kubebuilder:validation:XValidation:rule="self.configurations.size() > 0", message="Value can not be empty" Reconfigure *Reconfigure `json:"reconfigure,omitempty"` // Defines the variables that need to input when updating configuration. // +optional // +patchMergeKey=componentName // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=componentName Reconfigures []Reconfigure `json:"reconfigures,omitempty"` // Defines services the component needs to expose. // +optional // +patchMergeKey=componentName // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=componentName ExposeList []Expose `json:"expose,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"componentName"` // Cluster RestoreFrom backup or point in time. // +optional // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.restoreFrom" RestoreFrom *RestoreFromSpec `json:"restoreFrom,omitempty"` // OpsRequest will wait at most TTLSecondsBeforeAbort seconds for start-conditions to be met. // If not specified, the default value is 0, which means that the start-conditions must be met immediately. // +kubebuilder:default=0 // +optional TTLSecondsBeforeAbort *int32 `json:"ttlSecondsBeforeAbort,omitempty"` // Defines the script to be executed. // +optional ScriptSpec *ScriptSpec `json:"scriptSpec,omitempty"` // Defines how to backup the cluster. // +optional BackupSpec *BackupSpec `json:"backupSpec,omitempty"` // Defines how to restore the cluster. // Note that this restore operation will roll back cluster services. // +optional RestoreSpec *RestoreSpec `json:"restoreSpec,omitempty"` // Specifies the instances that require re-creation. // +patchMergeKey=componentName // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=componentName // +optional // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.rebuildFrom" RebuildFrom []RebuildInstance `json:"rebuildFrom,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"componentName"` // Specifies a custom operation as defined by OpsDefinition. // +optional CustomSpec *CustomOpsSpec `json:"customSpec,omitempty"` }
OpsRequestSpec defines the desired state of OpsRequest +kubebuilder:validation:XValidation:rule="has(self.cancel) && self.cancel ? (self.type in ['VerticalScaling', 'HorizontalScaling']) : true",message="forbidden to cancel the opsRequest which type not in ['VerticalScaling','HorizontalScaling']"
func (*OpsRequestSpec) DeepCopy ¶ added in v0.6.0
func (in *OpsRequestSpec) DeepCopy() *OpsRequestSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsRequestSpec.
func (*OpsRequestSpec) DeepCopyInto ¶ added in v0.6.0
func (in *OpsRequestSpec) DeepCopyInto(out *OpsRequestSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (OpsRequestSpec) GetDataScriptComponentNameSet ¶ added in v0.6.0
func (r OpsRequestSpec) GetDataScriptComponentNameSet() ComponentNameSet
GetDataScriptComponentNameSet gets the component name map with switchover operation.
func (OpsRequestSpec) GetExposeComponentNameSet ¶
func (r OpsRequestSpec) GetExposeComponentNameSet() ComponentNameSet
func (OpsRequestSpec) GetHorizontalScalingComponentNameSet ¶
func (r OpsRequestSpec) GetHorizontalScalingComponentNameSet() ComponentNameSet
GetHorizontalScalingComponentNameSet gets the component name map with horizontal scaling operation.
func (OpsRequestSpec) GetReconfiguringComponentNameSet ¶
func (r OpsRequestSpec) GetReconfiguringComponentNameSet() ComponentNameSet
GetReconfiguringComponentNameSet gets the component name map with reconfiguring operation.
func (OpsRequestSpec) GetRestartComponentNameSet ¶
func (r OpsRequestSpec) GetRestartComponentNameSet() ComponentNameSet
GetRestartComponentNameSet gets the component name map with restart operation.
func (OpsRequestSpec) GetSwitchoverComponentNameSet ¶ added in v0.6.0
func (r OpsRequestSpec) GetSwitchoverComponentNameSet() ComponentNameSet
GetSwitchoverComponentNameSet gets the component name map with switchover operation.
func (OpsRequestSpec) GetVerticalScalingComponentNameSet ¶
func (r OpsRequestSpec) GetVerticalScalingComponentNameSet() ComponentNameSet
GetVerticalScalingComponentNameSet gets the component name map with vertical scaling operation.
func (OpsRequestSpec) GetVolumeExpansionComponentNameSet ¶
func (r OpsRequestSpec) GetVolumeExpansionComponentNameSet() ComponentNameSet
GetVolumeExpansionComponentNameSet gets the component name map with volume expansion operation.
func (OpsRequestSpec) ToExposeListToMap ¶
func (r OpsRequestSpec) ToExposeListToMap() map[string]Expose
ToExposeListToMap build expose map
func (OpsRequestSpec) ToHorizontalScalingListToMap ¶
func (r OpsRequestSpec) ToHorizontalScalingListToMap() map[string]HorizontalScaling
ToHorizontalScalingListToMap converts OpsRequest.spec.horizontalScaling list to map
func (OpsRequestSpec) ToVerticalScalingListToMap ¶
func (r OpsRequestSpec) ToVerticalScalingListToMap() map[string]VerticalScaling
ToVerticalScalingListToMap converts OpsRequest.spec.verticalScaling list to map
func (OpsRequestSpec) ToVolumeExpansionListToMap ¶
func (r OpsRequestSpec) ToVolumeExpansionListToMap() map[string]VolumeExpansion
ToVolumeExpansionListToMap converts volumeExpansionList to map
type OpsRequestStatus ¶
type OpsRequestStatus struct { // Specifies the cluster generation after the OpsRequest action has been handled. // +optional ClusterGeneration int64 `json:"clusterGeneration,omitempty"` // Defines the phase of the OpsRequest. Phase OpsPhase `json:"phase,omitempty"` // Represents the progress of the OpsRequest. // +kubebuilder:validation:Pattern:=`^(\d+|\-)/(\d+|\-)$` // +kubebuilder:default=-/- Progress string `json:"progress"` // Records the last configuration before this operation took effect. // +optional LastConfiguration LastConfiguration `json:"lastConfiguration,omitempty"` // Records the status information of components changed due to the operation request. // +optional Components map[string]OpsRequestComponentStatus `json:"components,omitempty"` // A collection of additional key-value pairs that provide supplementary information for the opsRequest. Extras []map[string]string `json:"extras,omitempty"` // Indicates the time when the OpsRequest started processing. // +optional StartTimestamp metav1.Time `json:"startTimestamp,omitempty"` // Specifies the time when the OpsRequest was completed. // +optional CompletionTimestamp metav1.Time `json:"completionTimestamp,omitempty"` // Defines the time when the OpsRequest was cancelled. // +optional CancelTimestamp metav1.Time `json:"cancelTimestamp,omitempty"` // Deprecated: Replaced by ReconfiguringStatusAsComponent. // Defines the status information of reconfiguring. // +optional ReconfiguringStatus *ReconfiguringStatus `json:"reconfiguringStatus,omitempty"` // Represents the status information of reconfiguring. // +optional ReconfiguringStatusAsComponent map[string]*ReconfiguringStatus `json:"reconfiguringStatusAsComponent,omitempty"` // Describes the detailed status of the OpsRequest. // +optional // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty"` }
OpsRequestStatus represents the observed state of an OpsRequest.
func (*OpsRequestStatus) DeepCopy ¶ added in v0.6.0
func (in *OpsRequestStatus) DeepCopy() *OpsRequestStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsRequestStatus.
func (*OpsRequestStatus) DeepCopyInto ¶ added in v0.6.0
func (in *OpsRequestStatus) DeepCopyInto(out *OpsRequestStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsRequestVolumeClaimTemplate ¶
type OpsRequestVolumeClaimTemplate struct { // Specifies the requested storage size for the volume. // +kubebuilder:validation:Required Storage resource.Quantity `json:"storage"` // A reference to the volumeClaimTemplate name from the cluster components. // +kubebuilder:validation:Required Name string `json:"name"` }
func (*OpsRequestVolumeClaimTemplate) DeepCopy ¶ added in v0.6.0
func (in *OpsRequestVolumeClaimTemplate) DeepCopy() *OpsRequestVolumeClaimTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsRequestVolumeClaimTemplate.
func (*OpsRequestVolumeClaimTemplate) DeepCopyInto ¶ added in v0.6.0
func (in *OpsRequestVolumeClaimTemplate) DeepCopyInto(out *OpsRequestVolumeClaimTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsResourceModifierAction ¶ added in v0.9.0
type OpsResourceModifierAction struct { // Refers to the Kubernetes objects that are required to be updated. // +kubebuilder:validation:Required Resource TypedObjectRef `json:"resource"` // Defines the set of patches that are used to perform updates on the resource object. // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:Required JSONPatches []JSONPatchOperation `json:"jsonPatches"` // Provides a method to check if the action has been completed. // +kubebuilder:validation:Required CompletionProbe CompletionProbe `json:"completionProbe"` }
func (*OpsResourceModifierAction) DeepCopy ¶ added in v0.9.0
func (in *OpsResourceModifierAction) DeepCopy() *OpsResourceModifierAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsResourceModifierAction.
func (*OpsResourceModifierAction) DeepCopyInto ¶ added in v0.9.0
func (in *OpsResourceModifierAction) DeepCopyInto(out *OpsResourceModifierAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsService ¶ added in v0.8.0
type OpsService struct { // Specifies the name of the service. This name is used by others to refer to this service (e.g., connection credential). // Note: This field cannot be updated. // +required Name string `json:"name"` // Contains cloud provider related parameters if ServiceType is LoadBalancer. // More info: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer. // +optional Annotations map[string]string `json:"annotations,omitempty"` // Lists the ports that are exposed by this service. // If not provided, the default Services Ports defined in the ClusterDefinition or ComponentDefinition that are neither of NodePort nor LoadBalancer service type will be used. // If there is no corresponding Service defined in the ClusterDefinition or ComponentDefinition, the expose operation will fail. // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies // +patchMergeKey=port // +patchStrategy=merge // +listType=map // +listMapKey=port // +listMapKey=protocol // +optional Ports []corev1.ServicePort `json:"ports,omitempty" patchStrategy:"merge" patchMergeKey:"port" protobuf:"bytes,1,rep,name=ports"` // Allows you to specify a defined role as a selector for the service, extending the ServiceSpec.Selector. // +optional RoleSelector string `json:"roleSelector,omitempty"` // Routes service traffic to pods with label keys and values matching this selector. // If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. // This only applies to types ClusterIP, NodePort, and LoadBalancer and is ignored if type is ExternalName. // More info: https://kubernetes.io/docs/concepts/services-networking/service/ // +optional // +mapType=atomic Selector map[string]string `json:"selector,omitempty" protobuf:"bytes,2,rep,name=selector"` // Determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. // - `ClusterIP` allocates a cluster-internal IP address for load-balancing to endpoints. // - `NodePort` builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. // - `LoadBalancer` builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. // More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types. // +optional ServiceType corev1.ServiceType `json:"serviceType,omitempty"` // IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this // service. This field is usually assigned automatically based on cluster // configuration and the ipFamilyPolicy field. If this field is specified // manually, the requested family is available in the cluster, // and ipFamilyPolicy allows it, it will be used; otherwise creation of // the service will fail. This field is conditionally mutable: it allows // for adding or removing a secondary IP family, but it does not allow // changing the primary IP family of the Service. Valid values are "IPv4" // and "IPv6". This field only applies to Services of types ClusterIP, // NodePort, and LoadBalancer, and does apply to "headless" services. // This field will be wiped when updating a Service to type ExternalName. // // This field may hold a maximum of two entries (dual-stack families, in // either order). These families must correspond to the values of the // clusterIPs field, if specified. Both clusterIPs and ipFamilies are // governed by the ipFamilyPolicy field. // +listType=atomic // +optional IPFamilies []corev1.IPFamily `json:"ipFamilies,omitempty" protobuf:"bytes,19,opt,name=ipFamilies,casttype=IPFamily"` // IPFamilyPolicy represents the dual-stack-ness requested or required by // this Service. If there is no value provided, then this field will be set // to SingleStack. Services can be "SingleStack" (a single IP family), // "PreferDualStack" (two IP families on dual-stack configured clusters or // a single IP family on single-stack clusters), or "RequireDualStack" // (two IP families on dual-stack configured clusters, otherwise fail). The // ipFamilies and clusterIPs fields depend on the value of this field. This // field will be wiped when updating a service to type ExternalName. // +optional IPFamilyPolicy *corev1.IPFamilyPolicy `json:"ipFamilyPolicy,omitempty" protobuf:"bytes,17,opt,name=ipFamilyPolicy,casttype=IPFamilyPolicy"` }
func (*OpsService) DeepCopy ¶ added in v0.8.0
func (in *OpsService) DeepCopy() *OpsService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsService.
func (*OpsService) DeepCopyInto ¶ added in v0.8.0
func (in *OpsService) DeepCopyInto(out *OpsService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsType ¶
type OpsType string
OpsType defines operation types. +enum +kubebuilder:validation:Enum={Upgrade,VerticalScaling,VolumeExpansion,HorizontalScaling,Restart,Reconfiguring,Start,Stop,Expose,Switchover,DataScript,Backup,Restore,RebuildInstance,Custom}
const ( VerticalScalingType OpsType = "VerticalScaling" HorizontalScalingType OpsType = "HorizontalScaling" VolumeExpansionType OpsType = "VolumeExpansion" UpgradeType OpsType = "Upgrade" ReconfiguringType OpsType = "Reconfiguring" SwitchoverType OpsType = "Switchover" RestartType OpsType = "Restart" // RestartType the restart operation is a special case of the rolling update operation. StopType OpsType = "Stop" // StopType the stop operation will delete all pods in a cluster concurrently. StartType OpsType = "Start" // StartType the start operation will start the pods which is deleted in stop operation. ExposeType OpsType = "Expose" DataScriptType OpsType = "DataScript" // DataScriptType the data script operation will execute the data script against the cluster. BackupType OpsType = "Backup" RestoreType OpsType = "Restore" RebuildInstanceType OpsType = "RebuildInstance" // RebuildInstance rebuilding an instance is very useful when a node is offline or an instance is unrecoverable. CustomType OpsType = "Custom" // use opsDefinition )
type OpsVarSource ¶ added in v0.8.0
type OpsVarSource struct { // Specifies a reference to a specific environment variable within a container. // Used to specify the source of the variable, which can be either "env" or "envFrom". // +optional EnvVarRef *EnvVarRef `json:"envRef,omitempty"` // Represents the JSONPath of the target pod. This is used to specify the exact location of the data within the JSON structure of the pod. // +optional FieldPath string `json:"fieldPath,omitempty"` }
func (*OpsVarSource) DeepCopy ¶ added in v0.8.0
func (in *OpsVarSource) DeepCopy() *OpsVarSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsVarSource.
func (*OpsVarSource) DeepCopyInto ¶ added in v0.8.0
func (in *OpsVarSource) DeepCopyInto(out *OpsVarSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsWorkloadAction ¶ added in v0.9.0
type OpsWorkloadAction struct { // Defines the workload type of the action. Valid values include "Job" and "Pod". // "Job" creates a job to execute the action. // "Pod" creates a pod to execute the action. Note that unlike jobs, if a pod is manually deleted, it will not consume backoffLimit times. // +kubebuilder:validation:Required Type OpsWorkloadType `json:"type"` // Refers to the spec.targetPodTemplates. // This field defines the target pod for the current action. TargetPodTemplate string `json:"targetPodTemplate,omitempty"` // Specifies the number of retries before marking the action as failed. // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=0 // +optional BackoffLimit int32 `json:"backoffLimit,omitempty"` // Represents the pod spec of the workload. // +kubebuilder:validation:Required PodSpec corev1.PodSpec `json:"podSpec"` }
func (*OpsWorkloadAction) DeepCopy ¶ added in v0.9.0
func (in *OpsWorkloadAction) DeepCopy() *OpsWorkloadAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpsWorkloadAction.
func (*OpsWorkloadAction) DeepCopyInto ¶ added in v0.9.0
func (in *OpsWorkloadAction) DeepCopyInto(out *OpsWorkloadAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpsWorkloadType ¶ added in v0.9.0
type OpsWorkloadType string
OpsWorkloadType policy after action failure. +enum +kubebuilder:validation:Enum={Job,Pod}
const ( PodWorkload OpsWorkloadType = "Pod" JobWorkload OpsWorkloadType = "Job" )
type OverrideBy ¶ added in v0.9.0
type OverrideBy struct { // Indicates the opsRequest name. // +optional OpsName string `json:"opsName"` LastComponentConfiguration `json:",inline"` }
func (*OverrideBy) DeepCopy ¶ added in v0.9.0
func (in *OverrideBy) DeepCopy() *OverrideBy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OverrideBy.
func (*OverrideBy) DeepCopyInto ¶ added in v0.9.0
func (in *OverrideBy) DeepCopyInto(out *OverrideBy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Parameter ¶ added in v0.9.0
type Parameter struct { // Specifies the identifier of the parameter as defined in the OpsDefinition. // +kubebuilder:validation:Required Name string `json:"name"` // Holds the data associated with the parameter. // If the parameter type is an array, the format should be "v1,v2,v3". // +kubebuilder:validation:Required Value string `json:"value"` }
func (*Parameter) DeepCopy ¶ added in v0.9.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Parameter.
func (*Parameter) DeepCopyInto ¶ added in v0.9.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ParameterConfig ¶
type ParameterConfig struct { // Represents the unique identifier for the ConfigMap. // +kubebuilder:validation:Required Key string `json:"key"` // Defines a list of key-value pairs for a single configuration file. // These parameters are used to update the specified configuration settings. // +optional Parameters []ParameterPair `json:"parameters,omitempty"` // Represents the content of the configuration file. // This field is used to update the entire content of the file. // +optional FileContent string `json:"fileContent,omitempty"` }
func (*ParameterConfig) DeepCopy ¶ added in v0.6.0
func (in *ParameterConfig) DeepCopy() *ParameterConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParameterConfig.
func (*ParameterConfig) DeepCopyInto ¶ added in v0.6.0
func (in *ParameterConfig) DeepCopyInto(out *ParameterConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ParameterPair ¶
type ParameterPair struct { // Represents the name of the parameter that is to be updated. // +kubebuilder:validation:Required Key string `json:"key"` // Represents the parameter values that are to be updated. // If set to nil, the parameter defined by the Key field will be removed from the configuration file. // +optional Value *string `json:"value"` }
func (*ParameterPair) DeepCopy ¶ added in v0.6.0
func (in *ParameterPair) DeepCopy() *ParameterPair
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParameterPair.
func (*ParameterPair) DeepCopyInto ¶ added in v0.6.0
func (in *ParameterPair) DeepCopyInto(out *ParameterPair)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ParametersSchema ¶ added in v0.8.0
type ParametersSchema struct { // Defines the OpenAPI v3 schema used for the parameter schema. // The supported property types include: // - string // - number // - integer // - array: Note that only items of string type are supported. // +kubebuilder:validation:Schemaless // +kubebuilder:validation:Type=object // +kubebuilder:pruning:PreserveUnknownFields // +k8s:conversion-gen=false // +optional OpenAPIV3Schema *apiextensionsv1.JSONSchemaProps `json:"openAPIV3Schema,omitempty"` }
func (*ParametersSchema) DeepCopy ¶ added in v0.8.0
func (in *ParametersSchema) DeepCopy() *ParametersSchema
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersSchema.
func (*ParametersSchema) DeepCopyInto ¶ added in v0.8.0
func (in *ParametersSchema) DeepCopyInto(out *ParametersSchema)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PasswordConfig ¶
type PasswordConfig struct { // The length of the password. // // +kubebuilder:validation:Maximum=32 // +kubebuilder:validation:Minimum=8 // +kubebuilder:default=16 // +optional Length int32 `json:"length,omitempty"` // The number of digits in the password. // // +kubebuilder:validation:Maximum=8 // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=4 // +optional NumDigits int32 `json:"numDigits,omitempty"` // The number of symbols in the password. // // +kubebuilder:validation:Maximum=8 // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=0 // +optional NumSymbols int32 `json:"numSymbols,omitempty"` // The case of the letters in the password. // // +kubebuilder:default=MixedCases // +optional LetterCase LetterCase `json:"letterCase,omitempty"` // Seed to generate the account's password. // Cannot be updated. // // +optional Seed string `json:"seed,omitempty"` }
PasswordConfig helps provide to customize complexity of password generation pattern.
func (*PasswordConfig) DeepCopy ¶ added in v0.6.0
func (in *PasswordConfig) DeepCopy() *PasswordConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PasswordConfig.
func (*PasswordConfig) DeepCopyInto ¶ added in v0.6.0
func (in *PasswordConfig) DeepCopyInto(out *PasswordConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Payload ¶ added in v0.8.0
type Payload struct { // Holds the payload data. This field is optional and can contain any type of data. // Not included in the JSON representation of the object. // // +kubebuilder:pruning:PreserveUnknownFields // +optional Data map[string]any `json:"-"` }
func (*Payload) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Payload.
func (*Payload) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. This exists here to work around https://github.com/kubernetes/code-generator/issues/50
func (*Payload) MarshalJSON ¶ added in v0.8.0
MarshalJSON implements the Marshaler interface.
func (*Payload) UnmarshalJSON ¶ added in v0.8.0
UnmarshalJSON implements the Unmarshaler interface.
type PersistentVolumeClaimSpec ¶
type PersistentVolumeClaimSpec struct { // Contains the desired access modes the volume should have. // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1. // // +kubebuilder:pruning:PreserveUnknownFields // +optional AccessModes []corev1.PersistentVolumeAccessMode `json:"accessModes,omitempty" protobuf:"bytes,1,rep,name=accessModes,casttype=PersistentVolumeAccessMode"` // Represents the minimum resources the volume should have. // If the RecoverVolumeExpansionFailure feature is enabled, users are allowed to specify resource requirements that // are lower than the previous value but must still be higher than the capacity recorded in the status field of the claim. // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources. // // +kubebuilder:pruning:PreserveUnknownFields // +optional Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,2,opt,name=resources"` // The name of the StorageClass required by the claim. // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1. // // +optional StorageClassName *string `json:"storageClassName,omitempty" protobuf:"bytes,5,opt,name=storageClassName"` // Defines what type of volume is required by the claim. // // +optional VolumeMode *corev1.PersistentVolumeMode `json:"volumeMode,omitempty" protobuf:"bytes,6,opt,name=volumeMode,casttype=PersistentVolumeMode"` }
func (*PersistentVolumeClaimSpec) DeepCopy ¶ added in v0.6.0
func (in *PersistentVolumeClaimSpec) DeepCopy() *PersistentVolumeClaimSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimSpec.
func (*PersistentVolumeClaimSpec) DeepCopyInto ¶ added in v0.6.0
func (in *PersistentVolumeClaimSpec) DeepCopyInto(out *PersistentVolumeClaimSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PersistentVolumeClaimSpec) ToV1PersistentVolumeClaimSpec ¶
func (r *PersistentVolumeClaimSpec) ToV1PersistentVolumeClaimSpec() corev1.PersistentVolumeClaimSpec
ToV1PersistentVolumeClaimSpec converts to corev1.PersistentVolumeClaimSpec.
type Phase ¶
type Phase string
Phase represents the current status of the ClusterDefinition and ClusterVersion CR.
+enum +kubebuilder:validation:Enum={Available,Unavailable}
type PodAntiAffinity ¶
type PodAntiAffinity string
PodAntiAffinity defines the pod anti-affinity strategy.
This strategy determines how pods are scheduled in relation to other pods, with the aim of either spreading pods across nodes (Preferred) or ensuring that certain pods do not share a node (Required).
+enum +kubebuilder:validation:Enum={Preferred,Required}
const ( // Preferred indicates that the scheduler will try to enforce the anti-affinity rules, but it will not guarantee it. Preferred PodAntiAffinity = "Preferred" // Required indicates that the scheduler must enforce the anti-affinity rules and will not schedule the pods unless // the rules are met. Required PodAntiAffinity = "Required" )
type PodAvailabilityPolicy ¶ added in v0.9.0
type PodAvailabilityPolicy string
PodAvailabilityPolicy pod availability strategy. +enum +kubebuilder:validation:Enum={Available,PreferredAvailable,None}
const ( AvailablePolicy PodAvailabilityPolicy = "Available" UnAvailablePolicy PodAvailabilityPolicy = "UnAvailable" NoneAvailabilityPolicy PodAvailabilityPolicy = "None" )
type PodSelectionPolicy ¶ added in v0.9.0
type PodSelectionPolicy string
PodSelectionPolicy pod selection strategy. +enum +kubebuilder:validation:Enum={All,Any}
const ( All PodSelectionPolicy = "All" Any PodSelectionPolicy = "Any" )
type PodSelector ¶ added in v0.9.0
type PodSelector struct { // Specifies the role of the target pod. // +optional Role string `json:"role,omitempty"` // Defines the policy for selecting the target pod when multiple pods match the podSelector. // It can be either 'Any' (select any one pod that matches the podSelector) // or 'All' (select all pods that match the podSelector). // +kubebuilder:default=Any // +kubebuilder:validation:Required SelectionPolicy PodSelectionPolicy `json:"selectionPolicy,omitempty"` // Indicates the desired availability status of the pods to be selected. // valid values: // - 'Available': selects only available pods and terminates the action if none are found. // - 'PreferredAvailable': prioritizes the selection of available pods。 // - 'None': there are no requirements for the availability of pods. // +kubebuilder:default=PreferredAvailable // +kubebuilder:validation:Required Availability PodAvailabilityPolicy `json:"availability,omitempty"` }
func (*PodSelector) DeepCopy ¶ added in v0.9.0
func (in *PodSelector) DeepCopy() *PodSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSelector.
func (*PodSelector) DeepCopyInto ¶ added in v0.9.0
func (in *PodSelector) DeepCopyInto(out *PodSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodVarSelector ¶
type PodVarSelector struct { // The pod to select from. ClusterObjectReference `json:",inline"` PodVars `json:",inline"` }
PodVarSelector selects a var from a Pod.
func (*PodVarSelector) DeepCopy ¶
func (in *PodVarSelector) DeepCopy() *PodVarSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodVarSelector.
func (*PodVarSelector) DeepCopyInto ¶
func (in *PodVarSelector) DeepCopyInto(out *PodVarSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodVars ¶
type PodVars struct { // +optional Container *ContainerVars `json:"container,omitempty"` }
PodVars defines the vars can be referenced from a Pod.
func (*PodVars) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodVars.
func (*PodVars) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PointInTimeRefSpec ¶
type PointInTimeRefSpec struct { // Refers to the specific time point for restoration, with UTC as the time zone. // +optional Time *metav1.Time `json:"time,omitempty"` // Refers to a reference source cluster that needs to be restored. // +optional Ref RefNamespaceName `json:"ref,omitempty"` }
func (*PointInTimeRefSpec) DeepCopy ¶ added in v0.6.0
func (in *PointInTimeRefSpec) DeepCopy() *PointInTimeRefSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PointInTimeRefSpec.
func (*PointInTimeRefSpec) DeepCopyInto ¶ added in v0.6.0
func (in *PointInTimeRefSpec) DeepCopyInto(out *PointInTimeRefSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PostStartAction ¶ added in v0.7.1
type PostStartAction struct { // Specifies the post-start command to be executed. // // +kubebuilder:validation:Required CmdExecutorConfig CmdExecutorConfig `json:"cmdExecutorConfig"` // Used to select the script that need to be referenced. // When defined, the scripts defined in scriptSpecs can be referenced within the CmdExecutorConfig. // // +optional ScriptSpecSelectors []ScriptSpecSelector `json:"scriptSpecSelectors,omitempty"` }
func (*PostStartAction) DeepCopy ¶ added in v0.7.1
func (in *PostStartAction) DeepCopy() *PostStartAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostStartAction.
func (*PostStartAction) DeepCopyInto ¶ added in v0.7.1
func (in *PostStartAction) DeepCopyInto(out *PostStartAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PreCheckResult ¶ added in v0.9.0
type PreCheckResult struct { // Indicates whether the preCheck operation was successful or not. // +kubebuilder:validation:Required Pass bool `json:"pass"` // Provides additional details about the preCheck operation in a human-readable format. // +optional Message string `json:"message,omitempty"` }
func (*PreCheckResult) DeepCopy ¶ added in v0.9.0
func (in *PreCheckResult) DeepCopy() *PreCheckResult
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreCheckResult.
func (*PreCheckResult) DeepCopyInto ¶ added in v0.9.0
func (in *PreCheckResult) DeepCopyInto(out *PreCheckResult)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PreCondition ¶ added in v0.8.0
type PreCondition struct { // Defines the conditions under which the operation can be executed. Rule *Rule `json:"rule,omitempty"` }
func (*PreCondition) DeepCopy ¶ added in v0.8.0
func (in *PreCondition) DeepCopy() *PreCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreCondition.
func (*PreCondition) DeepCopyInto ¶ added in v0.8.0
func (in *PreCondition) DeepCopyInto(out *PreCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PreConditionExec ¶ added in v0.8.0
type PreConditionExec struct { // Specifies the name of the Docker image to be used for the execution. // +kubebuilder:validation:Required Image string `json:"image"` // Defines the environment variables to be set in the container. // +optional Env []corev1.EnvVar `json:"env,omitempty"` // Specifies the commands to be executed in the container. // +optional Command []string `json:"command,omitempty"` // Represents the arguments to be passed to the command in the container. // +optional Args []string `json:"args,omitempty"` }
func (*PreConditionExec) DeepCopy ¶ added in v0.8.0
func (in *PreConditionExec) DeepCopy() *PreConditionExec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreConditionExec.
func (*PreConditionExec) DeepCopyInto ¶ added in v0.8.0
func (in *PreConditionExec) DeepCopyInto(out *PreConditionExec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PreConditionType ¶ added in v0.8.0
type PreConditionType string
PreConditionType defines the preCondition type of the action execution.
const ( ImmediatelyPreConditionType PreConditionType = "Immediately" RuntimeReadyPreConditionType PreConditionType = "RuntimeReady" ComponentReadyPreConditionType PreConditionType = "ComponentReady" ClusterReadyPreConditionType PreConditionType = "ClusterReady" )
type ProgressStatus ¶
type ProgressStatus string
ProgressStatus defines the status of the opsRequest progress. +enum +kubebuilder:validation:Enum={Processing,Pending,Failed,Succeed}
const ( PendingProgressStatus ProgressStatus = "Pending" ProcessingProgressStatus ProgressStatus = "Processing" FailedProgressStatus ProgressStatus = "Failed" SucceedProgressStatus ProgressStatus = "Succeed" )
type ProgressStatusDetail ¶
type ProgressStatusDetail struct { // Specifies the group to which the current object belongs. // If the objects of a component belong to the same group, they can be ignored. // +optional Group string `json:"group,omitempty"` // Represents the unique key of the object. // either objectKey or actionName. // +optional ObjectKey string `json:"objectKey,omitempty"` // Refer to the action name of the OpsDefinition.spec.actions[*].name. // either objectKey or actionName. // +optional ActionName string `json:"actionName,omitempty"` // Records the tasks associated with an action. such as Jobs/Pods that executes action. // +optional ActionTasks []ActionTask `json:"actionTasks,omitempty"` // Indicates the state of processing the object. // +kubebuilder:validation:Required Status ProgressStatus `json:"status"` // Provides a human-readable message detailing the condition of the object. // +optional Message string `json:"message,omitempty"` // Represents the start time of object processing. // +optional StartTime metav1.Time `json:"startTime,omitempty"` // Represents the completion time of object processing. // +optional EndTime metav1.Time `json:"endTime,omitempty"` }
func (*ProgressStatusDetail) DeepCopy ¶ added in v0.6.0
func (in *ProgressStatusDetail) DeepCopy() *ProgressStatusDetail
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProgressStatusDetail.
func (*ProgressStatusDetail) DeepCopyInto ¶ added in v0.6.0
func (in *ProgressStatusDetail) DeepCopyInto(out *ProgressStatusDetail)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProgressStatusDetail) SetStatusAndMessage ¶
func (p *ProgressStatusDetail) SetStatusAndMessage(status ProgressStatus, message string)
type ProtectedVolume ¶ added in v0.6.0
type ProtectedVolume struct { // The Name of the volume to protect. // // +optional Name string `json:"name,omitempty"` // Defines the high watermark threshold for the volume, it will override the component level threshold. // If the value is invalid, it will be ignored and the component level threshold will be used. // // +kubebuilder:validation:Maximum=100 // +kubebuilder:validation:Minimum=0 // +optional HighWatermark *int `json:"highWatermark,omitempty"` }
func (*ProtectedVolume) DeepCopy ¶ added in v0.6.0
func (in *ProtectedVolume) DeepCopy() *ProtectedVolume
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProtectedVolume.
func (*ProtectedVolume) DeepCopyInto ¶ added in v0.6.0
func (in *ProtectedVolume) DeepCopyInto(out *ProtectedVolume)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProvisionPolicy ¶
type ProvisionPolicy struct { // Specifies the method to provision an account. // // +kubebuilder:validation:Required Type ProvisionPolicyType `json:"type"` // Defines the scope within which the account is provisioned. // // +kubebuilder:default=AnyPods Scope ProvisionScope `json:"scope"` // The statement to provision an account. // // +optional Statements *ProvisionStatements `json:"statements,omitempty"` // The external secret to refer. // // +optional SecretRef *ProvisionSecretRef `json:"secretRef,omitempty"` }
ProvisionPolicy defines the policy details for creating accounts.
func (*ProvisionPolicy) DeepCopy ¶ added in v0.6.0
func (in *ProvisionPolicy) DeepCopy() *ProvisionPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProvisionPolicy.
func (*ProvisionPolicy) DeepCopyInto ¶ added in v0.6.0
func (in *ProvisionPolicy) DeepCopyInto(out *ProvisionPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProvisionPolicyType ¶
type ProvisionPolicyType string
ProvisionPolicyType defines the policy for creating accounts.
+enum +kubebuilder:validation:Enum={CreateByStmt,ReferToExisting}
const ( // CreateByStmt will create account w.r.t. deletion and creation statement given by provider. CreateByStmt ProvisionPolicyType = "CreateByStmt" // ReferToExisting will not create account, but create a secret by copying data from referred secret file. ReferToExisting ProvisionPolicyType = "ReferToExisting" )
type ProvisionScope ¶
type ProvisionScope string
ProvisionScope defines the scope of provision within a component.
+enum
const ( // AllPods indicates that accounts will be created for all pods within the component. AllPods ProvisionScope = "AllPods" // AnyPods indicates that accounts will be created only on a single pod within the component. AnyPods ProvisionScope = "AnyPods" )
type ProvisionSecretRef ¶
type ProvisionSecretRef struct { // The unique identifier of the secret. // // +kubebuilder:validation:Required Name string `json:"name"` // The namespace where the secret is located. // // +kubebuilder:validation:Required Namespace string `json:"namespace"` }
ProvisionSecretRef represents the reference to a secret.
func (*ProvisionSecretRef) DeepCopy ¶ added in v0.6.0
func (in *ProvisionSecretRef) DeepCopy() *ProvisionSecretRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProvisionSecretRef.
func (*ProvisionSecretRef) DeepCopyInto ¶ added in v0.6.0
func (in *ProvisionSecretRef) DeepCopyInto(out *ProvisionSecretRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProvisionStatements ¶
type ProvisionStatements struct { // Specifies the statement required to create a new account with the necessary privileges. // // +kubebuilder:validation:Required CreationStatement string `json:"creation"` // Defines the statement required to update the password of an existing account. // // +optional UpdateStatement string `json:"update,omitempty"` // Defines the statement required to delete an existing account. // Typically used in conjunction with the creation statement to delete an account before recreating it. // For example, one might use a `drop user if exists` statement followed by a `create user` statement to ensure a fresh account. // Deprecated: This field is deprecated and the update statement should be used instead. // // +optional DeletionStatement string `json:"deletion,omitempty"` }
ProvisionStatements defines the statements used to create accounts.
func (*ProvisionStatements) DeepCopy ¶ added in v0.6.0
func (in *ProvisionStatements) DeepCopy() *ProvisionStatements
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProvisionStatements.
func (*ProvisionStatements) DeepCopyInto ¶ added in v0.6.0
func (in *ProvisionStatements) DeepCopyInto(out *ProvisionStatements)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RSMSpec ¶ added in v0.7.0
type RSMSpec struct { // Specifies a list of roles defined within the system. // // +optional Roles []workloads.ReplicaRole `json:"roles,omitempty"` // Defines the method used to probe a role. // // +optional RoleProbe *workloads.RoleProbe `json:"roleProbe,omitempty"` // Indicates the actions required for dynamic membership reconfiguration. // // +optional MembershipReconfiguration *workloads.MembershipReconfiguration `json:"membershipReconfiguration,omitempty"` // Describes the strategy for updating Members (Pods). // // - `Serial`: Updates Members sequentially to ensure minimum component downtime. // - `BestEffortParallel`: Updates Members in parallel to ensure minimum component write downtime. // - `Parallel`: Forces parallel updates. // // +kubebuilder:validation:Enum={Serial,BestEffortParallel,Parallel} // +optional MemberUpdateStrategy *workloads.MemberUpdateStrategy `json:"memberUpdateStrategy,omitempty"` }
func (*RSMSpec) DeepCopy ¶ added in v0.7.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RSMSpec.
func (*RSMSpec) DeepCopyInto ¶ added in v0.7.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RebuildInstance ¶ added in v0.8.3
type RebuildInstance struct { ComponentOps `json:",inline"` // Defines the instances that need to be rebuilt. // +kubebuilder:validation:Required Instances []Instance `json:"instances"` // Indicates the name of the backup from which to recover. Currently, only a full physical backup is supported // unless your component only has one replica. Such as 'xtrabackup' is full physical backup for mysql and 'mysqldump' is not. // And if no specified backupName, the instance will be recreated with empty 'PersistentVolumes'. // +optional BackupName string `json:"backupName,omitempty"` // List of environment variables to set in the container for restore. These will be // merged with the env of Backup and ActionSet. // // The priority of merging is as follows: `Restore env > Backup env > ActionSet env`. // // +kubebuilder:pruning:PreserveUnknownFields // +optional EnvForRestore []corev1.EnvVar `json:"envForRestore,omitempty" patchStrategy:"merge" patchMergeKey:"name"` }
func (*RebuildInstance) DeepCopy ¶ added in v0.8.3
func (in *RebuildInstance) DeepCopy() *RebuildInstance
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RebuildInstance.
func (*RebuildInstance) DeepCopyInto ¶ added in v0.8.3
func (in *RebuildInstance) DeepCopyInto(out *RebuildInstance)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReconcileDetail ¶ added in v0.7.0
type ReconcileDetail struct { // Represents the policy applied during the most recent execution. // // +optional Policy string `json:"policy"` // Represents the outcome of the most recent execution. // // +optional ExecResult string `json:"execResult"` // Represents the current revision of the configuration item. // // +optional CurrentRevision string `json:"currentRevision,omitempty"` // Represents the number of pods where configuration changes were successfully applied. // // +kubebuilder:default=-1 // +optional SucceedCount int32 `json:"succeedCount,omitempty"` // Represents the total number of pods that require execution of configuration changes. // // +kubebuilder:default=-1 // +optional ExpectedCount int32 `json:"expectedCount,omitempty"` // Represents the error message generated when the execution of configuration changes fails. // // +optional ErrMessage string `json:"errMessage,omitempty"` }
func (*ReconcileDetail) DeepCopy ¶ added in v0.7.0
func (in *ReconcileDetail) DeepCopy() *ReconcileDetail
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReconcileDetail.
func (*ReconcileDetail) DeepCopyInto ¶ added in v0.7.0
func (in *ReconcileDetail) DeepCopyInto(out *ReconcileDetail)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Reconfigure ¶
type Reconfigure struct { ComponentOps `json:",inline"` // Specifies the components that will perform the operation. // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name Configurations []ConfigurationItem `json:"configurations" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` }
Reconfigure represents the variables required for updating a configuration.
func (*Reconfigure) DeepCopy ¶ added in v0.6.0
func (in *Reconfigure) DeepCopy() *Reconfigure
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Reconfigure.
func (*Reconfigure) DeepCopyInto ¶ added in v0.6.0
func (in *Reconfigure) DeepCopyInto(out *Reconfigure)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReconfiguringStatus ¶
type ReconfiguringStatus struct { // Describes the reconfiguring detail status. // +optional // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty"` // Describes the status of the component reconfiguring. // +kubebuilder:validation:Required // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name ConfigurationStatus []ConfigurationItemStatus `json:"configurationStatus"` }
func (*ReconfiguringStatus) DeepCopy ¶ added in v0.6.0
func (in *ReconfiguringStatus) DeepCopy() *ReconfiguringStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReconfiguringStatus.
func (*ReconfiguringStatus) DeepCopyInto ¶ added in v0.6.0
func (in *ReconfiguringStatus) DeepCopyInto(out *ReconfiguringStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RefNamespaceName ¶
type RefNamespaceName struct { // Refers to the specific name of the resource. // +optional Name string `json:"name,omitempty"` // Refers to the specific namespace of the resource. // +optional Namespace string `json:"namespace,omitempty"` }
func (*RefNamespaceName) DeepCopy ¶ added in v0.6.0
func (in *RefNamespaceName) DeepCopy() *RefNamespaceName
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RefNamespaceName.
func (*RefNamespaceName) DeepCopyInto ¶ added in v0.6.0
func (in *RefNamespaceName) DeepCopyInto(out *RefNamespaceName)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReloadOptions ¶
type ReloadOptions struct { // Used to trigger a reload by sending a Unix signal to the process. // // +optional UnixSignalTrigger *appsv1beta1.UnixSignalTrigger `json:"unixSignalTrigger,omitempty"` // Used to perform the reload command in shell script. // // +optional ShellTrigger *appsv1beta1.ShellTrigger `json:"shellTrigger,omitempty"` // Used to perform the reload command by Go template script. // // +optional TPLScriptTrigger *appsv1beta1.TPLScriptTrigger `json:"tplScriptTrigger"` // Used to automatically perform the reload command when conditions are met. // // +optional AutoTrigger *appsv1beta1.AutoTrigger `json:"autoTrigger,omitempty"` }
func (*ReloadOptions) DeepCopy ¶ added in v0.6.0
func (in *ReloadOptions) DeepCopy() *ReloadOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReloadOptions.
func (*ReloadOptions) DeepCopyInto ¶ added in v0.6.0
func (in *ReloadOptions) DeepCopyInto(out *ReloadOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicaRole ¶ added in v0.8.0
type ReplicaRole struct { // Defines the role's identifier. This will be applied to the "apps.kubeblocks.io/role" object label value. // This field is immutable once set. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=32 // +kubebuilder:validation:Pattern=`^.*[^\s]+.*$` Name string `json:"name"` // Specifies if a replica assuming this role can provide services. // This field is immutable once set. // // +kubebuilder:default=false // +optional Serviceable bool `json:"serviceable,omitempty"` // Specifies if a replica assuming this role is permitted to write data. // This field is immutable once set. // // +kubebuilder:default=false // +optional Writable bool `json:"writable,omitempty"` // Specifies if a replica assuming this role is permitted to vote. // This field is immutable once set. // // +kubebuilder:default=false // +optional Votable bool `json:"votable,omitempty"` }
ReplicaRole represents a role that can be assumed by a component instance.
func (*ReplicaRole) DeepCopy ¶ added in v0.8.0
func (in *ReplicaRole) DeepCopy() *ReplicaRole
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaRole.
func (*ReplicaRole) DeepCopyInto ¶ added in v0.8.0
func (in *ReplicaRole) DeepCopyInto(out *ReplicaRole)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicasLimit ¶ added in v0.8.0
type ReplicasLimit struct { // The minimum limit of replicas. // // +kubebuilder:validation:Required MinReplicas int32 `json:"minReplicas"` // The maximum limit of replicas. // // +kubebuilder:validation:Required MaxReplicas int32 `json:"maxReplicas"` }
ReplicasLimit defines the limit of valid replicas supported. +kubebuilder:validation:XValidation:rule="self.minReplicas >= 0 && self.maxReplicas <= 128",message="the minimum and maximum limit of replicas should be in the range of [0, 128]" +kubebuilder:validation:XValidation:rule="self.minReplicas <= self.maxReplicas",message="the minimum replicas limit should be no greater than the maximum"
func (*ReplicasLimit) DeepCopy ¶ added in v0.8.0
func (in *ReplicasLimit) DeepCopy() *ReplicasLimit
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicasLimit.
func (*ReplicasLimit) DeepCopyInto ¶ added in v0.8.0
func (in *ReplicasLimit) DeepCopyInto(out *ReplicasLimit)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicationSetSpec ¶ added in v0.6.0
type ReplicationSetSpec struct {
StatefulSetSpec `json:",inline"`
}
func (*ReplicationSetSpec) DeepCopy ¶ added in v0.6.0
func (in *ReplicationSetSpec) DeepCopy() *ReplicationSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationSetSpec.
func (*ReplicationSetSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ReplicationSetSpec) DeepCopyInto(out *ReplicationSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ReplicationSetSpec) FinalStsUpdateStrategy ¶ added in v0.6.0
func (r *ReplicationSetSpec) FinalStsUpdateStrategy() (appsv1.PodManagementPolicyType, appsv1.StatefulSetUpdateStrategy)
func (*ReplicationSetSpec) GetUpdateStrategy ¶ added in v0.6.0
func (r *ReplicationSetSpec) GetUpdateStrategy() UpdateStrategy
type RerenderResourceType ¶ added in v0.9.0
type RerenderResourceType string
RerenderResourceType defines the resource requirements for a component. +enum +kubebuilder:validation:Enum={resources,replcias,tls}
const ( ComponentResourceType RerenderResourceType = "resources" ComponentReplicasType RerenderResourceType = "replicas" )
type ResourceConstraintRule ¶ added in v0.6.0
type ResourceConstraintRule struct { // The name of the constraint. // +kubebuilder:validation:Required Name string `json:"name"` // The constraint for vcpu cores. // +kubebuilder:validation:Required CPU CPUConstraint `json:"cpu"` // The constraint for memory size. // +kubebuilder:validation:Required Memory MemoryConstraint `json:"memory"` // The constraint for storage size. // +optional Storage StorageConstraint `json:"storage"` }
func (*ResourceConstraintRule) CompleteResources ¶ added in v0.6.0
func (m *ResourceConstraintRule) CompleteResources(r corev1.ResourceList) corev1.ResourceList
func (*ResourceConstraintRule) DeepCopy ¶ added in v0.6.0
func (in *ResourceConstraintRule) DeepCopy() *ResourceConstraintRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceConstraintRule.
func (*ResourceConstraintRule) DeepCopyInto ¶ added in v0.6.0
func (in *ResourceConstraintRule) DeepCopyInto(out *ResourceConstraintRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ResourceConstraintRule) GetMinimalResources ¶ added in v0.6.0
func (m *ResourceConstraintRule) GetMinimalResources() corev1.ResourceList
GetMinimalResources gets the minimal resources meets the constraint
func (*ResourceConstraintRule) ValidateCPU ¶ added in v0.6.0
func (m *ResourceConstraintRule) ValidateCPU(cpu *resource.Quantity) bool
ValidateCPU validates if the CPU meets the constraint
func (*ResourceConstraintRule) ValidateMemory ¶ added in v0.6.0
func (m *ResourceConstraintRule) ValidateMemory(cpu *resource.Quantity, memory *resource.Quantity) bool
ValidateMemory validates if the memory meets the constraint
func (*ResourceConstraintRule) ValidateResources ¶ added in v0.6.0
func (m *ResourceConstraintRule) ValidateResources(r corev1.ResourceList) bool
ValidateResources validates if the resources meets the constraint
func (*ResourceConstraintRule) ValidateStorage ¶ added in v0.6.0
func (m *ResourceConstraintRule) ValidateStorage(storage *resource.Quantity) bool
ValidateStorage validates if the storage meets the constraint
type ResourceMeta ¶ added in v0.8.0
type ResourceMeta struct { // Name is the name of the referenced ConfigMap or Secret object. It must conform to DNS label standards. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` Name string `json:"name"` // MountPoint is the filesystem path where the volume will be mounted. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=256 // +kubebuilder:validation:Pattern:=`^/[a-z]([a-z0-9\-]*[a-z0-9])?$` MountPoint string `json:"mountPoint"` // SubPath specifies a path within the volume from which to mount. // // +optional SubPath string `json:"subPath,omitempty"` // AsVolumeFrom lists the names of containers in which the volume should be mounted. // // +listType=set // +optional AsVolumeFrom []string `json:"asVolumeFrom,omitempty"` }
ResourceMeta encapsulates metadata and configuration for referencing ConfigMaps and Secrets as volumes.
func (*ResourceMeta) DeepCopy ¶ added in v0.8.0
func (in *ResourceMeta) DeepCopy() *ResourceMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMeta.
func (*ResourceMeta) DeepCopyInto ¶ added in v0.8.0
func (in *ResourceMeta) DeepCopyInto(out *ResourceMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestoreFromSpec ¶
type RestoreFromSpec struct { // Refers to the backup name and component name used for restoration. Supports recovery of multiple components. // +optional Backup []BackupRefSpec `json:"backup,omitempty"` // Refers to the specific point in time for recovery. // +optional PointInTime *PointInTimeRefSpec `json:"pointInTime,omitempty"` }
func (*RestoreFromSpec) DeepCopy ¶ added in v0.6.0
func (in *RestoreFromSpec) DeepCopy() *RestoreFromSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreFromSpec.
func (*RestoreFromSpec) DeepCopyInto ¶ added in v0.6.0
func (in *RestoreFromSpec) DeepCopyInto(out *RestoreFromSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestoreSpec ¶ added in v0.8.0
type RestoreSpec struct { // Specifies the name of the backup. // +kubebuilder:validation:Required BackupName string `json:"backupName"` // Indicates if this backup will be restored for all components which refer to common ComponentDefinition. EffectiveCommonComponentDef bool `json:"effectiveCommonComponentDef,omitempty"` // Defines the point in time to restore. RestoreTimeStr string `json:"restoreTimeStr,omitempty"` // Specifies the volume claim restore policy, support values: [Serial, Parallel] // +kubebuilder:validation:Enum=Serial;Parallel // +kubebuilder:default=Parallel VolumeRestorePolicy string `json:"volumeRestorePolicy,omitempty"` }
func (*RestoreSpec) DeepCopy ¶ added in v0.8.0
func (in *RestoreSpec) DeepCopy() *RestoreSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreSpec.
func (*RestoreSpec) DeepCopyInto ¶ added in v0.8.0
func (in *RestoreSpec) DeepCopyInto(out *RestoreSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RetryPolicy ¶ added in v0.8.0
type RetryPolicy struct { // Defines the maximum number of retry attempts that should be made for a given action. // This value is set to 0 by default, indicating that no retries will be made. // // +kubebuilder:default=0 // +optional MaxRetries int `json:"maxRetries,omitempty"` // Indicates the duration of time to wait between each retry attempt. // This value is set to 0 by default, indicating that there will be no delay between retry attempts. // // +kubebuilder:default=0 // +optional RetryInterval time.Duration `json:"retryInterval,omitempty"` }
func (*RetryPolicy) DeepCopy ¶ added in v0.8.0
func (in *RetryPolicy) DeepCopy() *RetryPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetryPolicy.
func (*RetryPolicy) DeepCopyInto ¶ added in v0.8.0
func (in *RetryPolicy) DeepCopyInto(out *RetryPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleArbitrator ¶ added in v0.8.0
type RoleArbitrator string
RoleArbitrator defines how to arbitrate the role of replicas. +enum +kubebuilder:validation:Enum={External,Lorry}
const ( ExternalRoleArbitrator RoleArbitrator = "External" LorryRoleArbitrator RoleArbitrator = "Lorry" )
type RoleProbe ¶ added in v0.8.0
type RoleProbe struct { LifecycleActionHandler `json:",inline"` // Number of seconds after the container has started before liveness probes are initiated. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes // // +optional InitialDelaySeconds int32 `json:"initialDelaySeconds,omitempty" protobuf:"varint,2,opt,name=initialDelaySeconds"` // Number of seconds after which the probe times out. // Defaults to 1 second. Minimum value is 1. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes // // +optional TimeoutSeconds int32 `json:"timeoutSeconds,omitempty" protobuf:"varint,3,opt,name=timeoutSeconds"` // How often (in seconds) to perform the probe. // Default to 10 seconds. Minimum value is 1. // // +optional PeriodSeconds int32 `json:"periodSeconds,omitempty" protobuf:"varint,4,opt,name=periodSeconds"` }
func (*RoleProbe) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleProbe.
func (*RoleProbe) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Rule ¶ added in v0.8.0
type Rule struct { // Defines how the operation can be executed using a Go template expression. // Should return either `true` or `false`. The built-in objects available for use in the expression include: // - `params`: These are the input parameters. // - `cluster`: This is the referenced cluster object. // - `component`: This is the referenced component object. // +kubebuilder:validation:Required Expression string `json:"expression"` // Reported if the rule is not matched. // +kubebuilder:validation:Required Message string `json:"message"` }
func (*Rule) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rule.
func (*Rule) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SchedulePolicy ¶
type SchedulePolicy struct { // Specifies whether the backup schedule is enabled or not. // // +optional Enabled *bool `json:"enabled,omitempty"` // Defines the backup method name that is defined in backupPolicy. // // +kubebuilder:validation:Required BackupMethod string `json:"backupMethod"` // Represents the cron expression for schedule, with the timezone set in UTC. // Refer to https://en.wikipedia.org/wiki/Cron for more details. // // +kubebuilder:validation:Required CronExpression string `json:"cronExpression"` // Determines the duration for which the backup should be retained. // The controller will remove all backups that are older than the RetentionPeriod. // For instance, a RetentionPeriod of `30d` will retain only the backups from the last 30 days. // Sample duration format: // // - years: 2y // - months: 6mo // - days: 30d // - hours: 12h // - minutes: 30m // // These durations can also be combined, for example: 30d12h30m. // // +optional // +kubebuilder:default="7d" RetentionPeriod dpv1alpha1.RetentionPeriod `json:"retentionPeriod,omitempty"` }
func (*SchedulePolicy) DeepCopy ¶ added in v0.6.0
func (in *SchedulePolicy) DeepCopy() *SchedulePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulePolicy.
func (*SchedulePolicy) DeepCopyInto ¶ added in v0.6.0
func (in *SchedulePolicy) DeepCopyInto(out *SchedulePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScriptFrom ¶ added in v0.6.0
type ScriptFrom struct { // Specifies the configMap that is to be executed. // +optional // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.scriptSpec.scriptFrom.configMapRef" ConfigMapRef []corev1.ConfigMapKeySelector `json:"configMapRef,omitempty"` // Specifies the secret that is to be executed. // +optional // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.scriptSpec.scriptFrom.secretRef" SecretRef []corev1.SecretKeySelector `json:"secretRef,omitempty"` }
ScriptFrom represents the script that is to be executed from a configMap or a secret.
func (*ScriptFrom) DeepCopy ¶ added in v0.6.0
func (in *ScriptFrom) DeepCopy() *ScriptFrom
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScriptFrom.
func (*ScriptFrom) DeepCopyInto ¶ added in v0.6.0
func (in *ScriptFrom) DeepCopyInto(out *ScriptFrom)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScriptSecret ¶ added in v0.6.0
type ScriptSecret struct { // Specifies the name of the secret. // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` Name string `json:"name"` // Used to specify the username part of the secret. // +kubebuilder:default:="username" // +optional UsernameKey string `json:"usernameKey,omitempty"` // Used to specify the password part of the secret. // +kubebuilder:default:="password" // +optional PasswordKey string `json:"passwordKey,omitempty"` }
ScriptSecret represents the secret that is used to execute the script.
func (*ScriptSecret) DeepCopy ¶ added in v0.6.0
func (in *ScriptSecret) DeepCopy() *ScriptSecret
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScriptSecret.
func (*ScriptSecret) DeepCopyInto ¶ added in v0.6.0
func (in *ScriptSecret) DeepCopyInto(out *ScriptSecret)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScriptSpec ¶ added in v0.6.0
type ScriptSpec struct { ComponentOps `json:",inline"` // Specifies the image to be used for the exec command. By default, the image of kubeblocks-datascript is used. // +optional Image string `json:"image,omitempty"` // Defines the secret to be used to execute the script. If not specified, the default cluster root credential secret is used. // +optional Secret *ScriptSecret `json:"secret,omitempty"` // Defines the script to be executed. // +optional // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.scriptSpec.script" Script []string `json:"script,omitempty"` // Defines the script to be executed from a configMap or secret. // +optional // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.scriptSpec.scriptFrom" ScriptFrom *ScriptFrom `json:"scriptFrom,omitempty"` // By default, KubeBlocks will execute the script on the primary pod with role=leader. // Exceptions exist, such as Redis, which does not synchronize account information between primary and secondary. // In such cases, the script needs to be executed on all pods matching the selector. // Indicates the components on which the script is executed. // +optional // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.scriptSpec.script.selector" Selector *metav1.LabelSelector `json:"selector,omitempty"` }
ScriptSpec is designed to execute specific operations such as creating a database or user. It is not a general-purpose script executor and is applicable for engines like MySQL, PostgreSQL, Redis, MongoDB, etc.
func (*ScriptSpec) DeepCopy ¶ added in v0.6.0
func (in *ScriptSpec) DeepCopy() *ScriptSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScriptSpec.
func (*ScriptSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ScriptSpec) DeepCopyInto(out *ScriptSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScriptSpecSelector ¶ added in v0.6.0
type ScriptSpecSelector struct { // Represents the name of the ScriptSpec referent. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` Name string `json:"name"` }
func (*ScriptSpecSelector) DeepCopy ¶ added in v0.6.0
func (in *ScriptSpecSelector) DeepCopy() *ScriptSpecSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScriptSpecSelector.
func (*ScriptSpecSelector) DeepCopyInto ¶ added in v0.6.0
func (in *ScriptSpecSelector) DeepCopyInto(out *ScriptSpecSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SecretRef ¶ added in v0.8.0
type SecretRef struct { ResourceMeta `json:",inline"` // Secret specifies the secret to be mounted as a volume. // // +kubebuilder:validation:Required Secret corev1.SecretVolumeSource `json:"secret"` }
SecretRef defines a reference to a Secret.
func (*SecretRef) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretRef.
func (*SecretRef) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Service ¶ added in v0.8.0
type Service struct { // Name defines the name of the service. // otherwise, it indicates the name of the service. // Others can refer to this service by its name. (e.g., connection credential) // Cannot be updated. // +required Name string `json:"name"` // ServiceName defines the name of the underlying service object. // If not specified, the default service name with different patterns will be used: // // - CLUSTER_NAME: for cluster-level services // - CLUSTER_NAME-COMPONENT_NAME: for component-level services // // Only one default service name is allowed. // Cannot be updated. // // +optional ServiceName string `json:"serviceName,omitempty"` // If ServiceType is LoadBalancer, cloud provider related parameters can be put here // More info: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer. // +optional Annotations map[string]string `json:"annotations,omitempty"` // Spec defines the behavior of a service. // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status // +optional Spec corev1.ServiceSpec `json:"spec,omitempty"` // RoleSelector extends the ServiceSpec.Selector by allowing you to specify defined role as selector for the service. // if GeneratePodOrdinalService sets to true, RoleSelector will be ignored. // +optional RoleSelector string `json:"roleSelector,omitempty"` }
func (*Service) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.
func (*Service) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceDescriptor ¶ added in v0.7.0
type ServiceDescriptor struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ServiceDescriptorSpec `json:"spec,omitempty"` Status ServiceDescriptorStatus `json:"status,omitempty"` }
ServiceDescriptor is the Schema for the servicedescriptors API
func (*ServiceDescriptor) DeepCopy ¶ added in v0.7.0
func (in *ServiceDescriptor) DeepCopy() *ServiceDescriptor
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDescriptor.
func (*ServiceDescriptor) DeepCopyInto ¶ added in v0.7.0
func (in *ServiceDescriptor) DeepCopyInto(out *ServiceDescriptor)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServiceDescriptor) DeepCopyObject ¶ added in v0.7.0
func (in *ServiceDescriptor) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ServiceDescriptor) Default ¶ added in v0.7.0
func (r *ServiceDescriptor) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*ServiceDescriptor) SetupWebhookWithManager ¶ added in v0.7.0
func (r *ServiceDescriptor) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*ServiceDescriptor) ValidateCreate ¶ added in v0.7.0
func (r *ServiceDescriptor) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*ServiceDescriptor) ValidateDelete ¶ added in v0.7.0
func (r *ServiceDescriptor) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*ServiceDescriptor) ValidateUpdate ¶ added in v0.7.0
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type ServiceDescriptorList ¶ added in v0.7.0
type ServiceDescriptorList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ServiceDescriptor `json:"items"` }
ServiceDescriptorList contains a list of ServiceDescriptor
func (*ServiceDescriptorList) DeepCopy ¶ added in v0.7.0
func (in *ServiceDescriptorList) DeepCopy() *ServiceDescriptorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDescriptorList.
func (*ServiceDescriptorList) DeepCopyInto ¶ added in v0.7.0
func (in *ServiceDescriptorList) DeepCopyInto(out *ServiceDescriptorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServiceDescriptorList) DeepCopyObject ¶ added in v0.7.0
func (in *ServiceDescriptorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ServiceDescriptorSpec ¶ added in v0.7.0
type ServiceDescriptorSpec struct { // Specifies the type or nature of the service. Should represent a well-known application cluster type, such as {mysql, redis, mongodb}. // This field is case-insensitive and supports abbreviations for some well-known databases. // For instance, both `zk` and `zookeeper` will be recognized as a ZooKeeper cluster, and `pg`, `postgres`, `postgresql` will all be recognized as a PostgreSQL cluster. // // +kubebuilder:validation:Required ServiceKind string `json:"serviceKind"` // Represents the version of the service reference. // // +kubebuilder:validation:Required ServiceVersion string `json:"serviceVersion"` // Represents the endpoint of the service connection credential. // // +optional Endpoint *CredentialVar `json:"endpoint,omitempty"` // Represents the authentication details of the service connection credential. // // +optional Auth *ConnectionCredentialAuth `json:"auth,omitempty"` // Represents the port of the service connection credential. // // +optional Port *CredentialVar `json:"port,omitempty" protobuf:"bytes,4,opt,name=port"` }
ServiceDescriptorSpec defines the desired state of ServiceDescriptor
func (*ServiceDescriptorSpec) DeepCopy ¶ added in v0.7.0
func (in *ServiceDescriptorSpec) DeepCopy() *ServiceDescriptorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDescriptorSpec.
func (*ServiceDescriptorSpec) DeepCopyInto ¶ added in v0.7.0
func (in *ServiceDescriptorSpec) DeepCopyInto(out *ServiceDescriptorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceDescriptorStatus ¶ added in v0.7.0
type ServiceDescriptorStatus struct { // Indicates the current lifecycle phase of the ServiceDescriptor. This can be either 'Available' or 'Unavailable'. // // +optional Phase Phase `json:"phase,omitempty"` // Provides a human-readable explanation detailing the reason for the current phase of the ServiceConnectionCredential. // // +optional Message string `json:"message,omitempty"` // Represents the generation number that has been processed by the controller. // // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` }
ServiceDescriptorStatus defines the observed state of ServiceDescriptor
func (*ServiceDescriptorStatus) DeepCopy ¶ added in v0.7.0
func (in *ServiceDescriptorStatus) DeepCopy() *ServiceDescriptorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDescriptorStatus.
func (*ServiceDescriptorStatus) DeepCopyInto ¶ added in v0.7.0
func (in *ServiceDescriptorStatus) DeepCopyInto(out *ServiceDescriptorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ServiceDescriptorStatus) GetTerminalPhases ¶ added in v0.7.0
func (r ServiceDescriptorStatus) GetTerminalPhases() []Phase
type ServicePort ¶
type ServicePort struct { // The name of this port within the service. This must be a DNS_LABEL. // All ports within a ServiceSpec must have unique names. When considering // the endpoints for a Service, this must match the 'name' field in the // EndpointPort. // +kubebuilder:validation:Required Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` // The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". // Default is TCP. // +kubebuilder:validation:Enum={TCP,UDP,SCTP} // +default="TCP" // +optional Protocol corev1.Protocol `json:"protocol,omitempty" protobuf:"bytes,2,opt,name=protocol,casttype=Protocol"` // The application protocol for this port. // This field follows standard Kubernetes label syntax. // Un-prefixed names are reserved for IANA standard service names (as per // RFC-6335 and https://www.iana.org/assignments/service-names). // Non-standard protocols should use prefixed names such as // mycompany.com/my-custom-protocol. // +optional AppProtocol *string `json:"appProtocol,omitempty" protobuf:"bytes,6,opt,name=appProtocol"` // The port that will be exposed by this service. Port int32 `json:"port" protobuf:"varint,3,opt,name=port"` // Number or name of the port to access on the pods targeted by the service. // // Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. // // - If this is a string, it will be looked up as a named port in the target Pod's container ports. // - If this is not specified, the value of the `port` field is used (an identity map). // // This field is ignored for services with clusterIP=None, and should be // omitted or set equal to the `port` field. // // More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service // // +kubebuilder:validation:XIntOrString // +optional TargetPort intstr.IntOrString `json:"targetPort,omitempty" protobuf:"bytes,4,opt,name=targetPort"` }
func (*ServicePort) DeepCopy ¶ added in v0.6.0
func (in *ServicePort) DeepCopy() *ServicePort
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServicePort.
func (*ServicePort) DeepCopyInto ¶ added in v0.6.0
func (in *ServicePort) DeepCopyInto(out *ServicePort)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceRef ¶ added in v0.7.0
type ServiceRef struct { // Specifies the identifier of the service reference declaration. // It corresponds to the serviceRefDeclaration name defined in the clusterDefinition.componentDefs[*].serviceRefDeclarations[*].name. // // +kubebuilder:validation:Required Name string `json:"name"` // Specifies the namespace of the referenced Cluster or the namespace of the referenced ServiceDescriptor object. // If not provided, the referenced Cluster and ServiceDescriptor will be searched in the namespace of the current // cluster by default. // // +optional Namespace string `json:"namespace,omitempty" protobuf:"bytes,3,opt,name=namespace"` // The name of the KubeBlocks cluster being referenced when a service provided by another KubeBlocks cluster is // being referenced. // // By default, the clusterDefinition.spec.connectionCredential secret corresponding to the referenced Cluster will // be used to bind to the current component. The connection credential secret should include and correspond to the // following fields: endpoint, port, username, and password when a KubeBlocks cluster is being referenced. // // Under this referencing approach, the ServiceKind and ServiceVersion of service reference declaration defined in // the ClusterDefinition will not be validated. // If both Cluster and ServiceDescriptor are specified, the Cluster takes precedence. // // +optional Cluster string `json:"cluster,omitempty"` // The service descriptor of the service provided by external sources. // // When referencing a service provided by external sources, the ServiceDescriptor object name is required to // establish the service binding. // The `serviceDescriptor.spec.serviceKind` and `serviceDescriptor.spec.serviceVersion` should match the serviceKind // and serviceVersion defined in the service reference declaration in the ClusterDefinition. // // If both Cluster and ServiceDescriptor are specified, the Cluster takes precedence. // // +optional ServiceDescriptor string `json:"serviceDescriptor,omitempty"` }
func (*ServiceRef) DeepCopy ¶ added in v0.7.0
func (in *ServiceRef) DeepCopy() *ServiceRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRef.
func (*ServiceRef) DeepCopyInto ¶ added in v0.7.0
func (in *ServiceRef) DeepCopyInto(out *ServiceRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceRefDeclaration ¶ added in v0.7.0
type ServiceRefDeclaration struct { // Specifies the name of the service reference declaration. // // The service reference may originate from an external service that is not part of KubeBlocks, or from services // provided by other KubeBlocks Cluster objects. // The specific type of service reference is determined by the binding declaration when a Cluster is created. // // +kubebuilder:validation:Required Name string `json:"name"` // Represents a collection of service descriptions for a service reference declaration. // // Each ServiceRefDeclarationSpec defines a service Kind and Version. When multiple ServiceRefDeclarationSpecs are defined, // it implies that the ServiceRefDeclaration can be any one of the specified ServiceRefDeclarationSpecs. // // For instance, when the ServiceRefDeclaration is declared to require an OLTP database, which can be either MySQL // or PostgreSQL, a ServiceRefDeclarationSpec for MySQL and another for PostgreSQL can be defined. // When referencing the service within the cluster, as long as the serviceKind and serviceVersion match either MySQL or PostgreSQL, it can be used. // // +kubebuilder:validation:Required ServiceRefDeclarationSpecs []ServiceRefDeclarationSpec `json:"serviceRefDeclarationSpecs"` }
func (*ServiceRefDeclaration) DeepCopy ¶ added in v0.7.0
func (in *ServiceRefDeclaration) DeepCopy() *ServiceRefDeclaration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRefDeclaration.
func (*ServiceRefDeclaration) DeepCopyInto ¶ added in v0.7.0
func (in *ServiceRefDeclaration) DeepCopyInto(out *ServiceRefDeclaration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceRefDeclarationSpec ¶ added in v0.7.0
type ServiceRefDeclarationSpec struct { // Specifies the type or nature of the service. This should be a well-known application cluster type, such as // {mysql, redis, mongodb}. // The field is case-insensitive and supports abbreviations for some well-known databases. // For instance, both `zk` and `zookeeper` are considered as a ZooKeeper cluster, while `pg`, `postgres`, `postgresql` // are all recognized as a PostgreSQL cluster. // // +kubebuilder:validation:Required ServiceKind string `json:"serviceKind"` // Defines the service version of the service reference. This is a regular expression that matches a version number pattern. // For instance, `^8.0.8$`, `8.0.\d{1,2}$`, `^[v\-]*?(\d{1,2}\.){0,3}\d{1,2}$` are all valid patterns. // // +kubebuilder:validation:Required ServiceVersion string `json:"serviceVersion"` }
func (*ServiceRefDeclarationSpec) DeepCopy ¶ added in v0.7.0
func (in *ServiceRefDeclarationSpec) DeepCopy() *ServiceRefDeclarationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRefDeclarationSpec.
func (*ServiceRefDeclarationSpec) DeepCopyInto ¶ added in v0.7.0
func (in *ServiceRefDeclarationSpec) DeepCopyInto(out *ServiceRefDeclarationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceRefVarSelector ¶ added in v0.8.0
type ServiceRefVarSelector struct { // The ServiceRefDeclaration to select from. ClusterObjectReference `json:",inline"` ServiceRefVars `json:",inline"` }
ServiceRefVarSelector selects a var from a ServiceRefDeclaration.
func (*ServiceRefVarSelector) DeepCopy ¶ added in v0.8.0
func (in *ServiceRefVarSelector) DeepCopy() *ServiceRefVarSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRefVarSelector.
func (*ServiceRefVarSelector) DeepCopyInto ¶ added in v0.8.0
func (in *ServiceRefVarSelector) DeepCopyInto(out *ServiceRefVarSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceRefVars ¶ added in v0.8.0
type ServiceRefVars struct { // +optional Endpoint *VarOption `json:"endpoint,omitempty"` // +optional Port *VarOption `json:"port,omitempty"` CredentialVars `json:",inline"` }
ServiceRefVars defines the vars can be referenced from a ServiceRef.
func (*ServiceRefVars) DeepCopy ¶ added in v0.8.0
func (in *ServiceRefVars) DeepCopy() *ServiceRefVars
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRefVars.
func (*ServiceRefVars) DeepCopyInto ¶ added in v0.8.0
func (in *ServiceRefVars) DeepCopyInto(out *ServiceRefVars)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceSpec ¶
type ServiceSpec struct { // The list of ports that are exposed by this service. // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies // // +patchMergeKey=port // +patchStrategy=merge // +listType=map // +listMapKey=port // +listMapKey=protocol // +optional Ports []ServicePort `json:"ports,omitempty" patchStrategy:"merge" patchMergeKey:"port" protobuf:"bytes,1,rep,name=ports"` }
func (*ServiceSpec) DeepCopy ¶ added in v0.6.0
func (in *ServiceSpec) DeepCopy() *ServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.
func (*ServiceSpec) DeepCopyInto ¶ added in v0.6.0
func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServiceSpec) ToSVCPorts ¶ added in v0.8.0
func (r *ServiceSpec) ToSVCPorts() []corev1.ServicePort
func (ServiceSpec) ToSVCSpec ¶
func (r ServiceSpec) ToSVCSpec() corev1.ServiceSpec
type ServiceVarSelector ¶ added in v0.8.0
type ServiceVarSelector struct { // The Service to select from. // It can be referenced from the default headless service by setting the name to "headless". ClusterObjectReference `json:",inline"` ServiceVars `json:",inline"` // GeneratePodOrdinalServiceVar indicates whether to create a corresponding ServiceVars reference variable for each Pod. // If set to true, a set of ServiceVars that can be referenced will be automatically generated for each Pod Ordinal. // They can be referred to by adding the PodOrdinal to the defined name template with named pattern `$(Vars[x].Name)_$(PodOrdinal)`. // For example, a ServiceVarRef might be defined as follows: // // “`yaml // // name: MY_SERVICE_PORT // valueFrom: // serviceVarRef: // compDef: my-component-definition // name: my-service // optional: true // generatePodOrdinalServiceVar: true // port: // name: redis-sentinel // // “` // // Assuming that the Component has 3 replicas, then you can reference the port of existing services named my-service-0, my-service-1, // and my-service-2 with $MY_SERVICE_PORT_0, $MY_SERVICE_PORT_1, and $MY_SERVICE_PORT_2, respectively. // It should be used in conjunction with Service.GeneratePodOrdinalService. // +kubebuilder:default=false // +optional GeneratePodOrdinalServiceVar bool `json:"generatePodOrdinalServiceVar,omitempty"` }
ServiceVarSelector selects a var from a Service.
func (*ServiceVarSelector) DeepCopy ¶ added in v0.8.0
func (in *ServiceVarSelector) DeepCopy() *ServiceVarSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceVarSelector.
func (*ServiceVarSelector) DeepCopyInto ¶ added in v0.8.0
func (in *ServiceVarSelector) DeepCopyInto(out *ServiceVarSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceVars ¶ added in v0.8.0
type ServiceVars struct { // +optional Host *VarOption `json:"host,omitempty"` // +optional Port *NamedVar `json:"port,omitempty"` // +optional NodePort *NamedVar `json:"nodePort,omitempty"` }
ServiceVars defines the vars can be referenced from a Service.
func (*ServiceVars) DeepCopy ¶ added in v0.8.0
func (in *ServiceVars) DeepCopy() *ServiceVars
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceVars.
func (*ServiceVars) DeepCopyInto ¶ added in v0.8.0
func (in *ServiceVars) DeepCopyInto(out *ServiceVars)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ShardingSpec ¶ added in v0.8.2
type ShardingSpec struct { // Specifies the identifier for the sharding configuration. This identifier is included as part of the Service DNS // name and must comply with IANA Service Naming rules. // It is used to generate the names of underlying components following the pattern `$(ShardingSpec.Name)-$(ShardID)`. // Note that the name of the component template defined in ShardingSpec.Template.Name will be disregarded. // // +kubebuilder:validation:Required // +kubebuilder:validation:MaxLength=15 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="name is immutable" Name string `json:"name"` // The blueprint for the components. // Generates a set of components (also referred to as shards) based on this template. All components or shards // generated will have identical specifications and definitions. // // +kubebuilder:validation:Required Template ClusterComponentSpec `json:"template"` // Specifies the number of components, all of which will have identical specifications and definitions. // // The number of replicas for each component should be defined by template.replicas. // The logical relationship between these components should be maintained by the components themselves. // KubeBlocks only provides lifecycle management for sharding, including: // // 1. Executing the postProvision Action defined in the ComponentDefinition when the number of shards increases, // provided the conditions are met. // 2. Executing the preTerminate Action defined in the ComponentDefinition when the number of shards decreases, // provided the conditions are met. // Resources and data associated with the corresponding Component will also be deleted. // // +kubebuilder:validation:Required // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=2048 Shards int32 `json:"shards,omitempty"` }
ShardingSpec defines the sharding spec.
func (*ShardingSpec) DeepCopy ¶ added in v0.8.2
func (in *ShardingSpec) DeepCopy() *ShardingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShardingSpec.
func (*ShardingSpec) DeepCopyInto ¶ added in v0.8.2
func (in *ShardingSpec) DeepCopyInto(out *ShardingSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StatefulSetSpec ¶ added in v0.6.0
type StatefulSetSpec struct { // Specifies the strategy for updating Pods. // For workloadType=`Consensus`, the update strategy can be one of the following: // // - `Serial`: Updates Members sequentially to minimize component downtime. // - `BestEffortParallel`: Updates Members in parallel to minimize component write downtime. Majority remains online // at all times. // - `Parallel`: Forces parallel updates. // // +kubebuilder:default=Serial // +optional UpdateStrategy UpdateStrategy `json:"updateStrategy,omitempty"` // Controls the creation of pods during initial scale up, replacement of pods on nodes, and scaling down. // // - `OrderedReady`: Creates pods in increasing order (pod-0, then pod-1, etc). The controller waits until each pod // is ready before continuing. Pods are removed in reverse order when scaling down. // - `Parallel`: Creates pods in parallel to match the desired scale without waiting. All pods are deleted at once // when scaling down. // // +optional LLPodManagementPolicy appsv1.PodManagementPolicyType `json:"llPodManagementPolicy,omitempty"` // Specifies the low-level StatefulSetUpdateStrategy to be used when updating Pods in the StatefulSet upon a // revision to the Template. // `UpdateStrategy` will be ignored if this is provided. // // +optional LLUpdateStrategy *appsv1.StatefulSetUpdateStrategy `json:"llUpdateStrategy,omitempty"` }
func (*StatefulSetSpec) DeepCopy ¶ added in v0.6.0
func (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec.
func (*StatefulSetSpec) DeepCopyInto ¶ added in v0.6.0
func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StatefulSetSpec) FinalStsUpdateStrategy ¶ added in v0.6.0
func (r *StatefulSetSpec) FinalStsUpdateStrategy() (appsv1.PodManagementPolicyType, appsv1.StatefulSetUpdateStrategy)
func (*StatefulSetSpec) GetUpdateStrategy ¶ added in v0.6.0
func (r *StatefulSetSpec) GetUpdateStrategy() UpdateStrategy
type StatefulSetWorkload ¶ added in v0.6.0
type StatefulSetWorkload interface { FinalStsUpdateStrategy() (appsv1.PodManagementPolicyType, appsv1.StatefulSetUpdateStrategy) GetUpdateStrategy() UpdateStrategy }
StatefulSetWorkload interface +kubebuilder:object:generate=false
type StatelessSetSpec ¶ added in v0.6.0
type StatelessSetSpec struct { // Specifies the deployment strategy that will be used to replace existing pods with new ones. // // +patchStrategy=retainKeys // +optional UpdateStrategy appsv1.DeploymentStrategy `json:"updateStrategy,omitempty"` }
func (*StatelessSetSpec) DeepCopy ¶ added in v0.6.0
func (in *StatelessSetSpec) DeepCopy() *StatelessSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatelessSetSpec.
func (*StatelessSetSpec) DeepCopyInto ¶ added in v0.6.0
func (in *StatelessSetSpec) DeepCopyInto(out *StatelessSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageConstraint ¶ added in v0.6.0
type StorageConstraint struct { // The minimum size of storage. // +kubebuilder:default="20Gi" // +optional Min *resource.Quantity `json:"min,omitempty"` // The maximum size of storage. // +kubebuilder:default="10Ti" // +optional Max *resource.Quantity `json:"max,omitempty"` }
func (*StorageConstraint) DeepCopy ¶ added in v0.6.0
func (in *StorageConstraint) DeepCopy() *StorageConstraint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageConstraint.
func (*StorageConstraint) DeepCopyInto ¶ added in v0.6.0
func (in *StorageConstraint) DeepCopyInto(out *StorageConstraint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SwitchPolicyType ¶
type SwitchPolicyType string
SwitchPolicyType defines the types of switch policies that can be applied to a cluster.
Currently, only the Noop policy is supported. Support for MaximumAvailability and MaximumDataProtection policies is planned for future releases.
+enum +kubebuilder:validation:Enum={Noop}
const ( // MaximumAvailability represents a switch policy that aims for maximum availability. This policy will switch if the // primary is active and the synchronization delay is 0 according to the user-defined lagProbe data delay detection // logic. If the primary is down, it will switch immediately. // This policy is intended for future support. MaximumAvailability SwitchPolicyType = "MaximumAvailability" // MaximumDataProtection represents a switch policy focused on maximum data protection. This policy will only switch // if the primary is active and the synchronization delay is 0, based on the user-defined lagProbe data lag detection // logic. If the primary is down, it will switch only if it can be confirmed that the primary and secondary data are // consistent. Otherwise, it will not switch. // This policy is planned for future implementation. MaximumDataProtection SwitchPolicyType = "MaximumDataProtection" // Noop indicates that KubeBlocks will not perform any high-availability switching for the components. Users are // required to implement their own HA solution or integrate an existing open-source HA solution. Noop SwitchPolicyType = "Noop" )
type Switchover ¶ added in v0.6.0
type Switchover struct { ComponentOps `json:",inline"` // Utilized to designate the candidate primary or leader instance for the switchover process. // If assigned "*", it signifies that no specific primary or leader is designated for the switchover, // and the switchoverAction defined in `clusterDefinition.componentDefs[x].switchoverSpec.withoutCandidate` will be executed. // // It is mandatory that `clusterDefinition.componentDefs[x].switchoverSpec.withoutCandidate` is not left blank. // // If assigned a valid instance name other than "*", it signifies that a specific candidate primary or leader is designated for the switchover. // The value can be retrieved using `kbcli cluster list-instances`, any other value is considered invalid. // // In this scenario, the `switchoverAction` defined in clusterDefinition.componentDefs[x].switchoverSpec.withCandidate will be executed, // and it is mandatory that clusterDefinition.componentDefs[x].switchoverSpec.withCandidate is not left blank. // // +kubebuilder:validation:Required InstanceName string `json:"instanceName"` }
func (*Switchover) DeepCopy ¶ added in v0.6.0
func (in *Switchover) DeepCopy() *Switchover
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Switchover.
func (*Switchover) DeepCopyInto ¶ added in v0.6.0
func (in *Switchover) DeepCopyInto(out *Switchover)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SwitchoverAction ¶ added in v0.6.0
type SwitchoverAction struct { // Specifies the switchover command. // // +kubebuilder:validation:Required CmdExecutorConfig *CmdExecutorConfig `json:"cmdExecutorConfig"` // Used to select the script that need to be referenced. // When defined, the scripts defined in scriptSpecs can be referenced within the SwitchoverAction.CmdExecutorConfig. // // +kubebuilder:deprecatedversion:warning="This field is deprecated from KB 0.9.0" // +optional ScriptSpecSelectors []ScriptSpecSelector `json:"scriptSpecSelectors,omitempty"` }
func (*SwitchoverAction) DeepCopy ¶ added in v0.6.0
func (in *SwitchoverAction) DeepCopy() *SwitchoverAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SwitchoverAction.
func (*SwitchoverAction) DeepCopyInto ¶ added in v0.6.0
func (in *SwitchoverAction) DeepCopyInto(out *SwitchoverAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SwitchoverShortSpec ¶ added in v0.6.0
type SwitchoverShortSpec struct { // Represents the configuration for the command executor. // // +kubebuilder:validation:Required CmdExecutorConfig *CommandExecutorEnvItem `json:"cmdExecutorConfig"` }
SwitchoverShortSpec represents a condensed version of the SwitchoverSpec.
func (*SwitchoverShortSpec) DeepCopy ¶ added in v0.6.0
func (in *SwitchoverShortSpec) DeepCopy() *SwitchoverShortSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SwitchoverShortSpec.
func (*SwitchoverShortSpec) DeepCopyInto ¶ added in v0.6.0
func (in *SwitchoverShortSpec) DeepCopyInto(out *SwitchoverShortSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SwitchoverSpec ¶ added in v0.6.0
type SwitchoverSpec struct { // Represents the action of switching over to a specified candidate primary or leader instance. // // +optional WithCandidate *SwitchoverAction `json:"withCandidate,omitempty"` // Represents the action of switching over without specifying a candidate primary or leader instance. // // +optional WithoutCandidate *SwitchoverAction `json:"withoutCandidate,omitempty"` }
func (*SwitchoverSpec) DeepCopy ¶ added in v0.6.0
func (in *SwitchoverSpec) DeepCopy() *SwitchoverSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SwitchoverSpec.
func (*SwitchoverSpec) DeepCopyInto ¶ added in v0.6.0
func (in *SwitchoverSpec) DeepCopyInto(out *SwitchoverSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SystemAccount ¶ added in v0.8.0
type SystemAccount struct { // Specifies the unique identifier for the account. This name is used by other entities to reference the account. // This field is immutable once set. // // +kubebuilder:validation:Required Name string `json:"name"` // Indicates if this account is the unique system initialization account (e.g., MySQL root). // Only one system initialization account is permitted. // This field is immutable once set. // // +kubebuilder:default=false // +optional InitAccount bool `json:"initAccount,omitempty"` // Defines the statement used to create the account with the necessary privileges. // This field is immutable once set. // // +optional Statement string `json:"statement,omitempty"` // Specifies the policy for generating the account's password. // This field is immutable once set. // // +optional PasswordGenerationPolicy PasswordConfig `json:"passwordGenerationPolicy"` // Refers to the secret from which data will be copied to create the new account. // This field is immutable once set. // // +optional SecretRef *ProvisionSecretRef `json:"secretRef,omitempty"` }
func (*SystemAccount) DeepCopy ¶ added in v0.8.0
func (in *SystemAccount) DeepCopy() *SystemAccount
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemAccount.
func (*SystemAccount) DeepCopyInto ¶ added in v0.8.0
func (in *SystemAccount) DeepCopyInto(out *SystemAccount)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SystemAccountConfig ¶
type SystemAccountConfig struct { // The unique identifier of a system account. // // +kubebuilder:validation:Required Name AccountName `json:"name"` // Outlines the strategy for creating the account. // // +kubebuilder:validation:Required ProvisionPolicy ProvisionPolicy `json:"provisionPolicy"` }
SystemAccountConfig specifies how to create and delete system accounts.
func (*SystemAccountConfig) DeepCopy ¶ added in v0.6.0
func (in *SystemAccountConfig) DeepCopy() *SystemAccountConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemAccountConfig.
func (*SystemAccountConfig) DeepCopyInto ¶ added in v0.6.0
func (in *SystemAccountConfig) DeepCopyInto(out *SystemAccountConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SystemAccountShortSpec ¶ added in v0.6.0
type SystemAccountShortSpec struct { // Configures the method for obtaining the client SDK and executing statements. // // +kubebuilder:validation:Required CmdExecutorConfig *CommandExecutorEnvItem `json:"cmdExecutorConfig"` }
SystemAccountShortSpec represents a condensed version of the SystemAccountSpec.
func (*SystemAccountShortSpec) DeepCopy ¶ added in v0.6.0
func (in *SystemAccountShortSpec) DeepCopy() *SystemAccountShortSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemAccountShortSpec.
func (*SystemAccountShortSpec) DeepCopyInto ¶ added in v0.6.0
func (in *SystemAccountShortSpec) DeepCopyInto(out *SystemAccountShortSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SystemAccountSpec ¶
type SystemAccountSpec struct { // Configures how to obtain the client SDK and execute statements. // // +kubebuilder:validation:Required CmdExecutorConfig *CmdExecutorConfig `json:"cmdExecutorConfig"` // Defines the pattern used to generate passwords for system accounts. // // +kubebuilder:validation:Required PasswordConfig PasswordConfig `json:"passwordConfig"` // Defines the configuration settings for system accounts. // // +kubebuilder:validation:Required // +kubebuilder:validation:MinItems=1 // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name Accounts []SystemAccountConfig `json:"accounts" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` }
SystemAccountSpec specifies information to create system accounts.
func (*SystemAccountSpec) DeepCopy ¶ added in v0.6.0
func (in *SystemAccountSpec) DeepCopy() *SystemAccountSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemAccountSpec.
func (*SystemAccountSpec) DeepCopyInto ¶ added in v0.6.0
func (in *SystemAccountSpec) DeepCopyInto(out *SystemAccountSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSConfig ¶ added in v0.8.0
type TLSConfig struct { // +kubebuilder:default=false // +optional Enable bool `json:"enable,omitempty"` // +optional Issuer *Issuer `json:"issuer,omitempty"` }
func (*TLSConfig) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.
func (*TLSConfig) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSSecretRef ¶
type TLSSecretRef struct { // Name of the Secret // +kubebuilder:validation:Required Name string `json:"name"` // CA cert key in Secret // +kubebuilder:validation:Required CA string `json:"ca"` // Cert key in Secret // +kubebuilder:validation:Required Cert string `json:"cert"` // Key of TLS private key in Secret // +kubebuilder:validation:Required Key string `json:"key"` }
TLSSecretRef defines Secret contains Tls certs
func (*TLSSecretRef) DeepCopy ¶ added in v0.6.0
func (in *TLSSecretRef) DeepCopy() *TLSSecretRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSSecretRef.
func (*TLSSecretRef) DeepCopyInto ¶ added in v0.6.0
func (in *TLSSecretRef) DeepCopyInto(out *TLSSecretRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetInstance ¶
type TargetInstance struct { // Specifies the instance of the corresponding role for backup. The roles can be: // // - Leader, Follower, or Leaner for the Consensus component. // - Primary or Secondary for the Replication component. // // Invalid roles of the component will be ignored. For example, if the workload type is Replication and the component's replicas is 1, // the secondary role is invalid. It will also be ignored when the component is Stateful or Stateless. // // The role will be transformed into a role LabelSelector for the BackupPolicy's target attribute. Role string `json:"role"` // Refers to spec.componentDef.systemAccounts.accounts[*].name in the ClusterDefinition. // The secret created by this account will be used to connect to the database. // If not set, the secret created by spec.ConnectionCredential of the ClusterDefinition will be used. // // It will be transformed into a secret for the BackupPolicy's target secret. // // +optional Account string `json:"account,omitempty"` // Specifies the PodSelectionStrategy to use when multiple pods are // selected for the backup target. // Valid values are: // // - Any: Selects any one pod that matches the labelsSelector. // - All: Selects all pods that match the labelsSelector. // // +optional Strategy dpv1alpha1.PodSelectionStrategy `json:"strategy,omitempty"` // Defines the connection credential key in the secret // created by spec.ConnectionCredential of the ClusterDefinition. // It will be ignored when the "account" is set. // // +optional ConnectionCredentialKey ConnectionCredentialKey `json:"connectionCredentialKey,omitempty"` }
func (*TargetInstance) DeepCopy ¶ added in v0.6.0
func (in *TargetInstance) DeepCopy() *TargetInstance
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetInstance.
func (*TargetInstance) DeepCopyInto ¶ added in v0.6.0
func (in *TargetInstance) DeepCopyInto(out *TargetInstance)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetPodSelector ¶ added in v0.8.0
type TargetPodSelector string
TargetPodSelector defines how to select pod(s) to execute a action. +enum +kubebuilder:validation:Enum={Any,All,Role,Ordinal}
const ( AnyReplica TargetPodSelector = "Any" AllReplicas TargetPodSelector = "All" RoleSelector TargetPodSelector = "Role" OrdinalSelector TargetPodSelector = "Ordinal" )
type TargetPodTemplate ¶
type TargetPodTemplate struct { // Represents the template name. // +kubebuilder:validation:MaxLength=32 // +kubebuilder:validation:Required Name string `json:"name"` // Defines the environment variables that need to be referenced from the target component pod, and will be injected into the pod's containers. // +optional Vars []OpsEnvVar `json:"vars,omitempty"` // Used to identify the target pod. // +kubebuilder:validation:Required PodSelector PodSelector `json:"podSelector"` // Specifies the mount points for the volumes defined in the `Volumes` section for the action pod. // +optional VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"` }
func (*TargetPodTemplate) DeepCopy ¶
func (in *TargetPodTemplate) DeepCopy() *TargetPodTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetPodTemplate.
func (*TargetPodTemplate) DeepCopyInto ¶
func (in *TargetPodTemplate) DeepCopyInto(out *TargetPodTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TenancyType ¶
type TenancyType string
TenancyType defines the type of tenancy for cluster tenant resources.
+enum +kubebuilder:validation:Enum={SharedNode,DedicatedNode}
const ( TenancyType = "SharedNode" // DedicatedNode means each pod runs on their own dedicated node. DedicatedNode TenancyType = "DedicatedNode" )SharedNode
type TerminationPolicyType ¶
type TerminationPolicyType string
TerminationPolicyType defines termination policy types.
+enum +kubebuilder:validation:Enum={DoNotTerminate,Halt,Delete,WipeOut}
const ( // DoNotTerminate will block delete operation. DoNotTerminate TerminationPolicyType = "DoNotTerminate" // Halt will delete workload resources such as statefulset, deployment workloads but keep PVCs. Halt TerminationPolicyType = "Halt" // Delete is based on Halt and deletes PVCs. Delete TerminationPolicyType = "Delete" // WipeOut is based on Delete and wipe out all volume snapshots and snapshot data from backup storage location. WipeOut TerminationPolicyType = "WipeOut" )
type TypedObjectRef ¶ added in v0.9.0
type TypedObjectRef struct { // Defines the group for the resource being referenced. // If not specified, the referenced Kind must belong to the core API group. // For all third-party types, this is mandatory. // +kubebuilder:validation:Required APIGroup *string `json:"apiGroup"` // Specifies the type of resource being referenced. // +kubebuilder:validation:Required Kind string `json:"kind"` // Indicates the name of the resource being referenced. // +kubebuilder:validation:Required Name string `json:"name"` }
func (*TypedObjectRef) DeepCopy ¶ added in v0.9.0
func (in *TypedObjectRef) DeepCopy() *TypedObjectRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypedObjectRef.
func (*TypedObjectRef) DeepCopyInto ¶ added in v0.9.0
func (in *TypedObjectRef) DeepCopyInto(out *TypedObjectRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UpdateStrategy ¶
type UpdateStrategy string
UpdateStrategy defines the update strategy for cluster components. This strategy determines how updates are applied across the cluster. The available strategies are `Serial`, `BestEffortParallel`, and `Parallel`.
+enum +kubebuilder:validation:Enum={Serial,BestEffortParallel,Parallel}
const ( // SerialStrategy indicates that updates are applied one at a time in a sequential manner. SerialStrategy UpdateStrategy = "Serial" // ParallelStrategy indicates that updates are applied simultaneously across all components. ParallelStrategy UpdateStrategy = "Parallel" // BestEffortParallelStrategy indicates that updates are applied as quickly as possible, but not necessarily all at once. // This strategy attempts to strike a balance between speed and stability. BestEffortParallelStrategy UpdateStrategy = "BestEffortParallel" )
type UpdatedParameters ¶
type UpdatedParameters struct { // Lists the keys that have been added. // +optional AddedKeys map[string]string `json:"addedKeys,omitempty"` // Lists the keys that have been deleted. // +optional DeletedKeys map[string]string `json:"deletedKeys,omitempty"` // Lists the keys that have been updated. // +optional UpdatedKeys map[string]string `json:"updatedKeys,omitempty"` }
func (*UpdatedParameters) DeepCopy ¶ added in v0.6.0
func (in *UpdatedParameters) DeepCopy() *UpdatedParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdatedParameters.
func (*UpdatedParameters) DeepCopyInto ¶ added in v0.6.0
func (in *UpdatedParameters) DeepCopyInto(out *UpdatedParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Upgrade ¶
type Upgrade struct { // A reference to the name of the ClusterVersion. // // +kubebuilder:validation:Required ClusterVersionRef string `json:"clusterVersionRef"` }
Upgrade represents the parameters required for an upgrade operation.
func (*Upgrade) DeepCopy ¶ added in v0.6.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Upgrade.
func (*Upgrade) DeepCopyInto ¶ added in v0.6.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UpgradePolicy ¶
type UpgradePolicy string
UpgradePolicy defines the policy of reconfiguring. +enum +kubebuilder:validation:Enum={simple,parallel,rolling,autoReload,operatorSyncUpdate,dynamicReloadBeginRestart}
const ( NonePolicy UpgradePolicy = "none" NormalPolicy UpgradePolicy = "simple" RestartPolicy UpgradePolicy = "parallel" RollingPolicy UpgradePolicy = "rolling" AsyncDynamicReloadPolicy UpgradePolicy = "autoReload" SyncDynamicReloadPolicy UpgradePolicy = "operatorSyncUpdate" DynamicReloadAndRestartPolicy UpgradePolicy = "dynamicReloadBeginRestart" )
type UserResourceRefs ¶ added in v0.8.0
type UserResourceRefs struct { // SecretRefs defines the user-defined secrets. // // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional SecretRefs []SecretRef `json:"secretRefs,omitempty"` // ConfigMapRefs defines the user-defined config maps. // // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name // +optional ConfigMapRefs []ConfigMapRef `json:"configMapRefs,omitempty"` }
UserResourceRefs defines references to user-defined secrets and config maps.
func (*UserResourceRefs) DeepCopy ¶ added in v0.8.0
func (in *UserResourceRefs) DeepCopy() *UserResourceRefs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserResourceRefs.
func (*UserResourceRefs) DeepCopyInto ¶ added in v0.8.0
func (in *UserResourceRefs) DeepCopyInto(out *UserResourceRefs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValueFrom ¶ added in v0.7.0
type ValueFrom struct { // Maps to the environment value. This is an optional field. // // +optional ClusterVersionRef []ValueMapping `json:"clusterVersionRef,omitempty"` // Maps to the environment value. This is also an optional field. // // +optional ComponentDef []ValueMapping `json:"componentDef,omitempty"` }
func (*ValueFrom) DeepCopy ¶ added in v0.7.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueFrom.
func (*ValueFrom) DeepCopyInto ¶ added in v0.7.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValueMapping ¶ added in v0.8.0
type ValueMapping struct { // Represents an array of ClusterVersion names that can be mapped to an environment variable value. // // +kubebuilder:validation:Required Names []string `json:"names"` // The value that corresponds to the specified ClusterVersion names. // // +kubebuilder:validation:Required MappingValue string `json:"mappingValue"` }
func (*ValueMapping) DeepCopy ¶ added in v0.8.0
func (in *ValueMapping) DeepCopy() *ValueMapping
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueMapping.
func (*ValueMapping) DeepCopyInto ¶ added in v0.8.0
func (in *ValueMapping) DeepCopyInto(out *ValueMapping)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VarOption ¶ added in v0.8.0
type VarOption string
VarOption defines whether a variable is required or optional. +enum +kubebuilder:validation:Enum={Required,Optional}
type VarSource ¶ added in v0.8.0
type VarSource struct { // Selects a key of a ConfigMap. // +optional ConfigMapKeyRef *corev1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty"` // Selects a key of a Secret. // +optional SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef,omitempty"` // Selects a defined var of a Pod. // +optional PodVarRef *PodVarSelector `json:"podVarRef,omitempty"` // Selects a defined var of a Service. // +optional ServiceVarRef *ServiceVarSelector `json:"serviceVarRef,omitempty"` // Selects a defined var of a Credential (SystemAccount). // +optional CredentialVarRef *CredentialVarSelector `json:"credentialVarRef,omitempty"` // Selects a defined var of a ServiceRef. // +optional ServiceRefVarRef *ServiceRefVarSelector `json:"serviceRefVarRef,omitempty"` }
VarSource represents a source for the value of an EnvVar.
func (*VarSource) DeepCopy ¶ added in v0.8.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VarSource.
func (*VarSource) DeepCopyInto ¶ added in v0.8.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VersionsContext ¶
type VersionsContext struct { // Provides override values for ClusterDefinition.spec.componentDefs.podSpec.initContainers. // Typically used in scenarios such as updating application container images. // // +kubebuilder:pruning:PreserveUnknownFields // +patchMergeKey=name // +patchStrategy=merge // +listType=map // +listMapKey=name // +optional InitContainers []corev1.Container `json:"initContainers,omitempty"` // Provides override values for ClusterDefinition.spec.componentDefs.podSpec.containers. // Typically used in scenarios such as updating application container images. // // +kubebuilder:pruning:PreserveUnknownFields // +patchMergeKey=name // +patchStrategy=merge // +listType=map // +listMapKey=name // +optional Containers []corev1.Container `json:"containers,omitempty"` }
func (*VersionsContext) DeepCopy ¶ added in v0.6.0
func (in *VersionsContext) DeepCopy() *VersionsContext
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionsContext.
func (*VersionsContext) DeepCopyInto ¶ added in v0.6.0
func (in *VersionsContext) DeepCopyInto(out *VersionsContext)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VerticalScaling ¶
type VerticalScaling struct { ComponentOps `json:",inline"` // Defines the computational resource size for vertical scaling. // +kubebuilder:pruning:PreserveUnknownFields corev1.ResourceRequirements `json:",inline"` // A reference to a class defined in ComponentClassDefinition. // +kubebuilder:deprecatedversion:warning="Due to the lack of practical use cases, this field is deprecated from KB 0.9.0." // +optional ClassDefRef *ClassDefRef `json:"classDefRef,omitempty"` }
VerticalScaling defines the parameters required for scaling compute resources.
func (*VerticalScaling) DeepCopy ¶ added in v0.6.0
func (in *VerticalScaling) DeepCopy() *VerticalScaling
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VerticalScaling.
func (*VerticalScaling) DeepCopyInto ¶ added in v0.6.0
func (in *VerticalScaling) DeepCopyInto(out *VerticalScaling)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeExpansion ¶
type VolumeExpansion struct { ComponentOps `json:",inline"` // volumeClaimTemplates specifies the storage size and volumeClaimTemplate name. // +kubebuilder:validation:Required // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name VolumeClaimTemplates []OpsRequestVolumeClaimTemplate `json:"volumeClaimTemplates" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` }
VolumeExpansion encapsulates the parameters required for a volume expansion operation.
func (*VolumeExpansion) DeepCopy ¶ added in v0.6.0
func (in *VolumeExpansion) DeepCopy() *VolumeExpansion
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeExpansion.
func (*VolumeExpansion) DeepCopyInto ¶ added in v0.6.0
func (in *VolumeExpansion) DeepCopyInto(out *VolumeExpansion)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeProtectionSpec ¶ added in v0.6.0
type VolumeProtectionSpec struct { // The high watermark threshold for volume space usage. // If there is any specified volumes who's space usage is over the threshold, the pre-defined "LOCK" action // will be triggered to degrade the service to protect volume from space exhaustion, such as to set the instance // as read-only. And after that, if all volumes' space usage drops under the threshold later, the pre-defined // "UNLOCK" action will be performed to recover the service normally. // // +kubebuilder:validation:Maximum=100 // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=90 // +optional HighWatermark int `json:"highWatermark,omitempty"` // The Volumes to be protected. // // +optional Volumes []ProtectedVolume `json:"volumes,omitempty"` }
func (*VolumeProtectionSpec) DeepCopy ¶ added in v0.6.0
func (in *VolumeProtectionSpec) DeepCopy() *VolumeProtectionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeProtectionSpec.
func (*VolumeProtectionSpec) DeepCopyInto ¶ added in v0.6.0
func (in *VolumeProtectionSpec) DeepCopyInto(out *VolumeProtectionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeType ¶
type VolumeType string
VolumeType defines the type of volume, specifically distinguishing between volumes used for backup data and those used for logs.
+enum +kubebuilder:validation:Enum={data,log}
const ( // VolumeTypeData indicates a volume designated for storing backup data. This type of volume is optimized for the // storage and retrieval of data backups, ensuring data persistence and reliability. VolumeTypeData VolumeType = "data" // VolumeTypeLog indicates a volume designated for storing logs. This type of volume is optimized for log data, // facilitating efficient log storage, retrieval, and management. VolumeTypeLog VolumeType = "log" )
type VolumeTypeSpec ¶
type VolumeTypeSpec struct { // Corresponds to the name of the VolumeMounts field in PodSpec.Container. // // +kubebuilder:validation:Required // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` Name string `json:"name"` // Type of data the volume will persistent. // // +optional Type VolumeType `json:"type,omitempty"` }
func (*VolumeTypeSpec) DeepCopy ¶ added in v0.6.0
func (in *VolumeTypeSpec) DeepCopy() *VolumeTypeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeTypeSpec.
func (*VolumeTypeSpec) DeepCopyInto ¶ added in v0.6.0
func (in *VolumeTypeSpec) DeepCopyInto(out *VolumeTypeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkloadType ¶
type WorkloadType string
WorkloadType defines the type of workload for the components of the ClusterDefinition. It can be one of the following: `Stateless`, `Stateful`, `Consensus`, or `Replication`.
+enum +kubebuilder:validation:Enum={Stateless,Stateful,Consensus,Replication}
const ( // Stateless represents a workload type where components do not maintain state, and instances are interchangeable. Stateless WorkloadType = "Stateless" // Stateful represents a workload type where components maintain state, and each instance has a unique identity. Stateful WorkloadType = "Stateful" // Consensus represents a workload type involving distributed consensus algorithms for coordinated decision-making. Consensus WorkloadType = "Consensus" // Replication represents a workload type that involves replication, typically used for achieving high availability // and fault tolerance. Replication WorkloadType = "Replication" )
Source Files ¶
- backuppolicytemplate_types.go
- cluster_types.go
- cluster_webhook.go
- clusterdefinition_types.go
- clusterdefinition_webhook.go
- clusterversion_types.go
- clusterversion_webhook.go
- component_types.go
- component_webhook.go
- componentclassdefinition_types.go
- componentdefinition_types.go
- componentdefinition_webhook.go
- componentresourceconstraint_types.go
- componentversion_types.go
- componentversion_webhook.go
- config.go
- config_meta.go
- configconstraint_conversion.go
- configconstraint_types.go
- configuration_types.go
- doc.go
- groupversion_info.go
- opsdefinition_types.go
- opsrequest_conditions.go
- opsrequest_types.go
- opsrequest_webhook.go
- register.go
- servicedescriptor_types.go
- servicedescriptor_webhook.go
- type.go
- zz_generated.deepcopy.go