Documentation ¶
Overview ¶
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=workloads.kubeblocks.io
Package v1alpha1 contains API Schema definitions for the workloads v1alpha1 API group +kubebuilder:object:generate=true +groupName=workloads.kubeblocks.io
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type AccessMode
- type Action
- type ConditionType
- type Credential
- type CredentialVar
- type InstanceSet
- func (in *InstanceSet) DeepCopy() *InstanceSet
- func (in *InstanceSet) DeepCopyInto(out *InstanceSet)
- func (in *InstanceSet) DeepCopyObject() runtime.Object
- func (r *InstanceSet) Default()
- func (r *InstanceSet) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *InstanceSet) ValidateCreate() (admission.Warnings, error)
- func (r *InstanceSet) ValidateDelete() (admission.Warnings, error)
- func (r *InstanceSet) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type InstanceSetList
- type InstanceSetSpec
- type InstanceSetStatus
- type InstanceTemplate
- type InstanceTemplateStatus
- type InstanceUpdateStrategy
- type MemberStatus
- type MemberUpdateStrategy
- type MembershipReconfiguration
- type Ordinals
- type PodUpdatePolicyType
- type Range
- type ReplicaRole
- type RoleProbe
- type RoleUpdateMechanism
- type SchedulingPolicy
Constants ¶
const ( // ReasonNotReady is a reason for condition InstanceReady. ReasonNotReady = "NotReady" // ReasonReady is a reason for condition InstanceReady. ReasonReady = "Ready" // ReasonNotAvailable is a reason for condition InstanceAvailable. ReasonNotAvailable = "NotAvailable" // ReasonAvailable is a reason for condition InstanceAvailable. ReasonAvailable = "Available" // ReasonInstanceFailure is a reason for condition InstanceFailure. ReasonInstanceFailure = "InstanceFailure" // ReasonInstanceUpdateRestricted is a reason for condition InstanceUpdateRestricted. ReasonInstanceUpdateRestricted = "InstanceUpdateRestricted" )
const Kind = "InstanceSet"
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "workloads.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 SchemeGroupVersion = GroupVersion
SchemeGroupVersion is group version used to register these objects.
Functions ¶
func Resource ¶
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 SVC access mode enums. +enum
const ( ReadWriteMode AccessMode = "ReadWrite" ReadonlyMode AccessMode = "Readonly" NoneMode AccessMode = "None" )
type Action ¶
type Action struct { // Refers to the utility image that contains the command which can be utilized to retrieve or process role information. // // +optional Image string `json:"image,omitempty"` // A set of instructions that will be executed within the Container to retrieve or process role information. This field is required. // // +kubebuilder:validation:Required Command []string `json:"command"` // Additional parameters used to perform specific statements. This field is optional. // // +optional Args []string `json:"args,omitempty"` }
func (*Action) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Action.
func (*Action) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConditionType ¶ added in v0.9.0
type ConditionType string
const ( // InstanceReady is added in an instance set when at least one of its instances(pods) is in a Ready condition. // ConditionStatus will be True if all its instances(pods) are in a Ready condition. // Or, a NotReady reason with not ready instances encoded in the Message filed will be set. InstanceReady ConditionType = "InstanceReady" // InstanceAvailable ConditionStatus will be True if all instances(pods) are in the ready condition // and continue for "MinReadySeconds" seconds. Otherwise, it will be set to False. InstanceAvailable ConditionType = "InstanceAvailable" // InstanceFailure is added in an instance set when at least one of its instances(pods) is in a `Failed` phase. InstanceFailure ConditionType = "InstanceFailure" // InstanceUpdateRestricted represents a ConditionType that indicates updates to an InstanceSet are blocked(when the // PodUpdatePolicy is set to StrictInPlace but the pods cannot be updated in-place). InstanceUpdateRestricted ConditionType = "InstanceUpdateRestricted" )
type Credential ¶
type Credential struct { // Defines the user's name for the credential. // The corresponding environment variable will be KB_ITS_USERNAME. // // +kubebuilder:validation:Required Username CredentialVar `json:"username"` // Represents the user's password for the credential. // The corresponding environment variable will be KB_ITS_PASSWORD. // // +kubebuilder:validation:Required Password CredentialVar `json:"password"` }
func (*Credential) DeepCopy ¶
func (in *Credential) DeepCopy() *Credential
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Credential.
func (*Credential) DeepCopyInto ¶
func (in *Credential) DeepCopyInto(out *Credential)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CredentialVar ¶
type CredentialVar struct { // Specifies the value of the environment variable. This field is optional and defaults to an empty string. // The value can include variable references in the format $(VAR_NAME) which will be 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 will remain unchanged. // Double $$ can be used to escape the $(VAR_NAME) syntax, resulting in a single $ and producing the string literal "$(VAR_NAME)". // Escaped references will not be expanded, regardless of whether the variable exists or not. // // +optional Value string `json:"value,omitempty"` // Defines the source for the environment variable's value. This field is optional and cannot be used if the 'Value' field is not empty. // // +optional ValueFrom *corev1.EnvVarSource `json:"valueFrom,omitempty"` }
func (*CredentialVar) DeepCopy ¶
func (in *CredentialVar) DeepCopy() *CredentialVar
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialVar.
func (*CredentialVar) DeepCopyInto ¶
func (in *CredentialVar) DeepCopyInto(out *CredentialVar)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InstanceSet ¶ added in v0.9.0
type InstanceSet struct { // The metadata for the type, like API version and kind. metav1.TypeMeta `json:",inline"` // Contains the metadata for the particular object, such as name, namespace, labels, and annotations. metav1.ObjectMeta `json:"metadata,omitempty"` // Defines the desired state of the state machine. It includes the configuration details for the state machine. // Spec InstanceSetSpec `json:"spec,omitempty"` // Represents the current information about the state machine. This data may be out of date. // Status InstanceSetStatus `json:"status,omitempty"` }
InstanceSet is the Schema for the instancesets API.
func (*InstanceSet) DeepCopy ¶ added in v0.9.0
func (in *InstanceSet) DeepCopy() *InstanceSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceSet.
func (*InstanceSet) DeepCopyInto ¶ added in v0.9.0
func (in *InstanceSet) DeepCopyInto(out *InstanceSet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*InstanceSet) DeepCopyObject ¶ added in v0.9.0
func (in *InstanceSet) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*InstanceSet) Default ¶ added in v0.9.0
func (r *InstanceSet) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*InstanceSet) SetupWebhookWithManager ¶ added in v0.9.0
func (r *InstanceSet) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*InstanceSet) ValidateCreate ¶ added in v0.9.0
func (r *InstanceSet) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*InstanceSet) ValidateDelete ¶ added in v0.9.0
func (r *InstanceSet) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*InstanceSet) ValidateUpdate ¶ added in v0.9.0
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type InstanceSetList ¶ added in v0.9.0
type InstanceSetList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []InstanceSet `json:"items"` }
InstanceSetList contains a list of InstanceSet
func (*InstanceSetList) DeepCopy ¶ added in v0.9.0
func (in *InstanceSetList) DeepCopy() *InstanceSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceSetList.
func (*InstanceSetList) DeepCopyInto ¶ added in v0.9.0
func (in *InstanceSetList) DeepCopyInto(out *InstanceSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*InstanceSetList) DeepCopyObject ¶ added in v0.9.0
func (in *InstanceSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type InstanceSetSpec ¶ added in v0.9.0
type InstanceSetSpec struct { // Specifies the desired number of replicas of the given Template. // These replicas are instantiations of the same Template, with each having a consistent identity. // Defaults to 1 if unspecified. // +kubebuilder:default=1 // +kubebuilder:validation:Minimum=0 // +optional Replicas *int32 `json:"replicas,omitempty"` // Specifies the desired Ordinals of the default template. // The Ordinals used to specify the ordinal of the instance (pod) names to be generated under the default template. // // For example, if Ordinals is {ranges: [{start: 0, end: 1}], discrete: [7]}, // then the instance names generated under the default template would be // $(cluster.name)-$(component.name)-0、$(cluster.name)-$(component.name)-1 and $(cluster.name)-$(component.name)-7 DefaultTemplateOrdinals Ordinals `json:"defaultTemplateOrdinals,omitempty"` // Defines the minimum number of seconds a newly created pod should be ready // without any of its container crashing to be considered available. // Defaults to 0, meaning the pod will be considered available as soon as it is ready. // +kubebuilder:default=0 // +kubebuilder:validation:Minimum=0 // +optional MinReadySeconds int32 `json:"minReadySeconds,omitempty"` // Represents a label query over pods that should match the desired replica count indicated by the `replica` field. // It must match the labels defined in the pod template. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors Selector *metav1.LabelSelector `json:"selector"` // Defines the behavior of a service spec. // Provides read-write service. // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status // // Note: This field will be removed in future version. // // +kubebuilder:pruning:PreserveUnknownFields // +optional Service *corev1.Service `json:"service,omitempty"` Template corev1.PodTemplateSpec `json:"template"` // 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. // An InstanceSet 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 InstanceSet to manage instances from different templates. // // The naming convention for instances (pods) based on the InstanceSet Name, InstanceTemplate Name, and ordinal. // The constructed instance name follows the pattern: $(instance_set.name)-$(template.name)-$(ordinal). // By default, the ordinal starts from 0 for each InstanceTemplate. // It is important to ensure that the Name of each InstanceTemplate is unique. // // The sum of replicas across all InstanceTemplates should not exceed the total number of Replicas specified for the InstanceSet. // Any remaining replicas will be generated using the default template and will follow the default naming rules. // // +optional // +patchMergeKey=name // +patchStrategy=merge,retainKeys // +listType=map // +listMapKey=name Instances []InstanceTemplate `json:"instances,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"` // Specifies the names of instances to be transitioned to offline status. // // Marking an instance as offline results in the following: // // 1. The associated pod is stopped, and its PersistentVolumeClaim (PVC) is retained for potential // future reuse or data recovery, but it is no longer actively used. // 2. The ordinal number assigned to this instance is preserved, ensuring it remains unique // and avoiding conflicts with new instances. // // Setting instances to offline allows for a controlled scale-in process, preserving their data and maintaining // ordinal consistency within the cluster. // Note that offline instances and their associated resources, such as PVCs, are not automatically deleted. // The cluster administrator must manually manage the cleanup and removal of these resources when they are no longer needed. // // +optional OfflineInstances []string `json:"offlineInstances,omitempty"` // Specifies a list of PersistentVolumeClaim templates that define the storage requirements for each replica. // Each template specifies the desired characteristics of a persistent volume, such as storage class, // size, and access modes. // These templates are used to dynamically provision persistent volumes for replicas upon their creation. // The final name of each PVC is generated by appending the pod's identifier to the name specified in volumeClaimTemplates[*].name. // // +optional VolumeClaimTemplates []corev1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"` // Controls how pods are created during initial scale up, // when replacing pods on nodes, or when scaling down. // // The default policy is `OrderedReady`, where pods are created in increasing order and the controller waits until each pod is ready before // continuing. When scaling down, the pods are removed in the opposite order. // The alternative policy is `Parallel` which will create pods in parallel // to match the desired scale without waiting, and on scale down will delete // all pods at once. // // Note: This field will be removed in future version. // // +optional PodManagementPolicy appsv1.PodManagementPolicyType `json:"podManagementPolicy,omitempty"` // Controls the concurrency of pods during initial scale up, when replacing pods on nodes, // or when scaling down. It only used when `PodManagementPolicy` is set to `Parallel`. // The default Concurrency is 100%. // // +optional ParallelPodManagementConcurrency *intstr.IntOrString `json:"parallelPodManagementConcurrency,omitempty"` // PodUpdatePolicy indicates how pods should be updated // // - `StrictInPlace` indicates that only allows in-place upgrades. // Any attempt to modify other fields will be rejected. // - `PreferInPlace` indicates that we will first attempt an in-place upgrade of the Pod. // If that fails, it will fall back to the ReCreate, where pod will be recreated. // - `Recreate` indicates that recreate the Pod no matter what fields being updated. // Default value is "PreferInPlace" // // +optional PodUpdatePolicy PodUpdatePolicyType `json:"podUpdatePolicy,omitempty"` // Indicates the StatefulSetUpdateStrategy that will be // employed to update Pods in the InstanceSet when a revision is made to // Template. // // Note: This field will be removed in future version. UpdateStrategy *InstanceUpdateStrategy `json:"updateStrategy,omitempty"` // A list of roles defined in the system. // // +optional Roles []ReplicaRole `json:"roles,omitempty"` // Provides method to probe role. // // +optional RoleProbe *RoleProbe `json:"roleProbe,omitempty"` // Provides actions to do membership dynamic reconfiguration. // // +optional MembershipReconfiguration *MembershipReconfiguration `json:"membershipReconfiguration,omitempty"` // Members(Pods) update strategy. // // Deprecated since v0.9.0 // - serial: update Members one by one that guarantee minimum component unavailable time. // - bestEffortParallel: update Members in parallel that guarantee minimum component un-writable time. // - parallel: force parallel // // +kubebuilder:validation:Enum={Serial,BestEffortParallel,Parallel} // +kubebuilder:deprecatedversion:warning="This field has been deprecated since 0.9.0" // +optional MemberUpdateStrategy *MemberUpdateStrategy `json:"memberUpdateStrategy,omitempty"` // Indicates that the InstanceSet is paused, meaning the reconciliation of this InstanceSet object will be paused. // +optional Paused bool `json:"paused,omitempty"` // Credential used to connect to DB engine // // +optional Credential *Credential `json:"credential,omitempty"` }
InstanceSetSpec defines the desired state of InstanceSet
func (*InstanceSetSpec) DeepCopy ¶ added in v0.9.0
func (in *InstanceSetSpec) DeepCopy() *InstanceSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceSetSpec.
func (*InstanceSetSpec) DeepCopyInto ¶ added in v0.9.0
func (in *InstanceSetSpec) DeepCopyInto(out *InstanceSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InstanceSetStatus ¶ added in v0.9.0
type InstanceSetStatus struct { // observedGeneration is the most recent generation observed for this InstanceSet. It corresponds to the // InstanceSet's generation, which is updated on mutation by the API Server. // // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // replicas is the number of instances created by the InstanceSet controller. Replicas int32 `json:"replicas"` // readyReplicas is the number of instances created for this InstanceSet with a Ready Condition. ReadyReplicas int32 `json:"readyReplicas,omitempty"` // currentReplicas is the number of instances created by the InstanceSet controller from the InstanceSet version // indicated by CurrentRevisions. CurrentReplicas int32 `json:"currentReplicas,omitempty"` // updatedReplicas is the number of instances created by the InstanceSet controller from the InstanceSet version // indicated by UpdateRevisions. UpdatedReplicas int32 `json:"updatedReplicas,omitempty"` // currentRevision, if not empty, indicates the version of the InstanceSet used to generate instances in the // sequence [0,currentReplicas). CurrentRevision string `json:"currentRevision,omitempty"` // updateRevision, if not empty, indicates the version of the InstanceSet used to generate instances in the sequence // [replicas-updatedReplicas,replicas) UpdateRevision string `json:"updateRevision,omitempty"` // Represents the latest available observations of an instanceset's current state. // Known .status.conditions.type are: "InstanceFailure", "InstanceReady" // // +optional // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` // Total number of available instances (ready for at least minReadySeconds) targeted by this InstanceSet. // // +optional AvailableReplicas int32 `json:"availableReplicas"` // Defines the initial number of instances when the cluster is first initialized. // This value is set to spec.Replicas at the time of object creation and remains constant thereafter. // Used only when spec.roles set. // // +optional InitReplicas int32 `json:"initReplicas"` // Represents the number of instances that have already reached the MembersStatus during the cluster initialization stage. // This value remains constant once it equals InitReplicas. // Used only when spec.roles set. // // +optional ReadyInitReplicas int32 `json:"readyInitReplicas,omitempty"` // Provides the status of each member in the cluster. // // +optional MembersStatus []MemberStatus `json:"membersStatus,omitempty"` // Indicates whether it is required for the InstanceSet to have at least one primary instance ready. // // +optional ReadyWithoutPrimary bool `json:"readyWithoutPrimary,omitempty"` // currentRevisions, if not empty, indicates the old version of the InstanceSet used to generate the underlying workload. // key is the pod name, value is the revision. // // +optional CurrentRevisions map[string]string `json:"currentRevisions,omitempty"` // updateRevisions, if not empty, indicates the new version of the InstanceSet used to generate the underlying workload. // key is the pod name, value is the revision. // // +optional UpdateRevisions map[string]string `json:"updateRevisions,omitempty"` // TemplatesStatus represents status of each instance generated by InstanceTemplates // +optional TemplatesStatus []InstanceTemplateStatus `json:"templatesStatus,omitempty"` }
InstanceSetStatus defines the observed state of InstanceSet
func (*InstanceSetStatus) DeepCopy ¶ added in v0.9.0
func (in *InstanceSetStatus) DeepCopy() *InstanceSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceSetStatus.
func (*InstanceSetStatus) DeepCopyInto ¶ added in v0.9.0
func (in *InstanceSetStatus) DeepCopyInto(out *InstanceSetStatus)
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 { // Name specifies the unique name of the instance Pod created using this InstanceTemplate. // This name is constructed by concatenating the component's name, the template's name, and the instance's ordinal // using the pattern: $(cluster.name)-$(component.name)-$(template.name)-$(ordinal). Ordinals start from 0. // The specified name overrides any default naming conventions or patterns. // // +kubebuilder:validation:MaxLength=54 // +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$` // +kubebuilder:validation:Required Name string `json:"name"` // Specifies the number of instances (Pods) to create from this InstanceTemplate. // This field allows setting how many replicated instances of the component, // with the specific overrides in the InstanceTemplate, are created. // The default value is 1. A value of 0 disables instance creation. // // +kubebuilder:default=1 // +kubebuilder:validation:Minimum=0 // +optional Replicas *int32 `json:"replicas,omitempty"` // Specifies the desired Ordinals of this InstanceTemplate. // The Ordinals used to specify the ordinal of the instance (pod) names to be generated under this InstanceTemplate. // // For example, if Ordinals is {ranges: [{start: 0, end: 1}], discrete: [7]}, // then the instance names generated under this InstanceTemplate would be // $(cluster.name)-$(component.name)-$(template.name)-0、$(cluster.name)-$(component.name)-$(template.name)-1 and // $(cluster.name)-$(component.name)-$(template.name)-7 Ordinals Ordinals `json:"ordinals,omitempty"` // Specifies a map of key-value pairs to be merged into the Pod's existing annotations. // Existing keys will have their values overwritten, while new keys will be added to the annotations. // // +optional Annotations map[string]string `json:"annotations,omitempty"` // Specifies a map of key-value pairs that will be merged into the Pod's existing labels. // Values for existing keys will be overwritten, and new keys will be added. // // +optional Labels map[string]string `json:"labels,omitempty"` // Specifies an override for the first container's image in the pod. // // +optional Image *string `json:"image,omitempty"` // Specifies the scheduling policy for the Component. // // +optional SchedulingPolicy *SchedulingPolicy `json:"schedulingPolicy,omitempty"` // Specifies an override for the resource requirements of the first container in the Pod. // This field allows for customizing resource allocation (CPU, memory, etc.) for the container. // // +optional Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // Defines Env to override. // Add new or override existing envs. // +optional Env []corev1.EnvVar `json:"env,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 allows customization of individual replica configurations within a Component, without altering the base component template defined in ClusterComponentSpec. It enables the application of distinct settings to specific instances (replicas), providing flexibility while maintaining a common configuration baseline.
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.
func (*InstanceTemplate) GetName ¶ added in v0.9.0
func (t *InstanceTemplate) GetName() string
func (*InstanceTemplate) GetOrdinals ¶ added in v0.9.1
func (t *InstanceTemplate) GetOrdinals() Ordinals
func (*InstanceTemplate) GetReplicas ¶ added in v0.9.0
func (t *InstanceTemplate) GetReplicas() int32
type InstanceTemplateStatus ¶ added in v0.9.1
type InstanceTemplateStatus struct { // Name, the name of the InstanceTemplate. Name string `json:"name"` // Replicas is the number of replicas of the InstanceTemplate. // +optional Replicas int32 `json:"replicas,omitempty"` // ReadyReplicas is the number of Pods that have a Ready Condition. // +optional ReadyReplicas int32 `json:"readyReplicas,omitempty"` // AvailableReplicas is the number of Pods that ready for at least minReadySeconds. // +optional AvailableReplicas int32 `json:"availableReplicas,omitempty"` // currentReplicas is the number of instances created by the InstanceSet controller from the InstanceSet version // indicated by CurrentRevisions. CurrentReplicas int32 `json:"currentReplicas,omitempty"` // UpdatedReplicas is the number of Pods created by the InstanceSet controller from the InstanceSet version // indicated by UpdateRevisions. // +optional UpdatedReplicas int32 `json:"updatedReplicas,omitempty"` }
InstanceTemplateStatus aggregates the status of replicas for each InstanceTemplate
func (*InstanceTemplateStatus) DeepCopy ¶ added in v0.9.1
func (in *InstanceTemplateStatus) DeepCopy() *InstanceTemplateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceTemplateStatus.
func (*InstanceTemplateStatus) DeepCopyInto ¶ added in v0.9.1
func (in *InstanceTemplateStatus) DeepCopyInto(out *InstanceTemplateStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InstanceUpdateStrategy ¶ added in v0.9.1
type InstanceUpdateStrategy struct { // Partition indicates the number of pods that should be updated during a rolling update. // The remaining pods will remain untouched. This is helpful in defining how many pods // should participate in the update process. The update process will follow the order // of pod names in descending lexicographical (dictionary) order. The default value is // Replicas (i.e., update all pods). // +optional Partition *int32 `json:"partition,omitempty"` // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). // Absolute number is calculated from percentage by rounding up. This can not be 0. // Defaults to 1. The field applies to all pods. That means if there is any unavailable pod, // it will be counted towards MaxUnavailable. // +optional MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` // Members(Pods) update strategy. // // - serial: update Members one by one that guarantee minimum component unavailable time. // - bestEffortParallel: update Members in parallel that guarantee minimum component un-writable time. // - parallel: force parallel // // +kubebuilder:validation:Enum={Serial,BestEffortParallel,Parallel} // +optional MemberUpdateStrategy *MemberUpdateStrategy `json:"memberUpdateStrategy,omitempty"` }
InstanceUpdateStrategy indicates the strategy that the InstanceSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.
func (*InstanceUpdateStrategy) DeepCopy ¶ added in v0.9.1
func (in *InstanceUpdateStrategy) DeepCopy() *InstanceUpdateStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceUpdateStrategy.
func (*InstanceUpdateStrategy) DeepCopyInto ¶ added in v0.9.1
func (in *InstanceUpdateStrategy) DeepCopyInto(out *InstanceUpdateStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MemberStatus ¶
type MemberStatus struct { // Represents the name of the pod. // // +kubebuilder:validation:Required // +kubebuilder:default=Unknown PodName string `json:"podName"` // Defines the role of the replica in the cluster. // // +optional ReplicaRole *ReplicaRole `json:"role,omitempty"` }
func (*MemberStatus) DeepCopy ¶
func (in *MemberStatus) DeepCopy() *MemberStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberStatus.
func (*MemberStatus) DeepCopyInto ¶
func (in *MemberStatus) DeepCopyInto(out *MemberStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MemberUpdateStrategy ¶ added in v0.7.0
type MemberUpdateStrategy string
MemberUpdateStrategy defines Cluster Component update strategy. +enum
const ( SerialUpdateStrategy MemberUpdateStrategy = "Serial" BestEffortParallelUpdateStrategy MemberUpdateStrategy = "BestEffortParallel" ParallelUpdateStrategy MemberUpdateStrategy = "Parallel" )
type MembershipReconfiguration ¶
type MembershipReconfiguration struct { // Specifies the environment variables that can be used in all following Actions: // - KB_ITS_USERNAME: Represents the username part of the credential // - KB_ITS_PASSWORD: Represents the password part of the credential // - KB_ITS_LEADER_HOST: Represents the leader host // - KB_ITS_TARGET_HOST: Represents the target host // - KB_ITS_SERVICE_PORT: Represents the service port // // Defines the action to perform a switchover. // If the Image is not configured, the latest [BusyBox](https://busybox.net/) image will be used. // // +optional SwitchoverAction *Action `json:"switchoverAction,omitempty"` // Defines the action to add a member. // If the Image is not configured, the Image from the previous non-nil action will be used. // // +optional MemberJoinAction *Action `json:"memberJoinAction,omitempty"` // Defines the action to remove a member. // If the Image is not configured, the Image from the previous non-nil action will be used. // // +optional MemberLeaveAction *Action `json:"memberLeaveAction,omitempty"` // Defines the action to trigger the new member to start log syncing. // If the Image is not configured, the Image from the previous non-nil action will be used. // // +optional LogSyncAction *Action `json:"logSyncAction,omitempty"` // Defines the action to inform the cluster that the new member can join voting now. // If the Image is not configured, the Image from the previous non-nil action will be used. // // +optional PromoteAction *Action `json:"promoteAction,omitempty"` }
func (*MembershipReconfiguration) DeepCopy ¶
func (in *MembershipReconfiguration) DeepCopy() *MembershipReconfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MembershipReconfiguration.
func (*MembershipReconfiguration) DeepCopyInto ¶
func (in *MembershipReconfiguration) DeepCopyInto(out *MembershipReconfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Ordinals ¶ added in v0.9.1
type Ordinals struct { Ranges []Range `json:"ranges,omitempty"` Discrete []int32 `json:"discrete,omitempty"` }
Ordinals represents a combination of continuous segments and individual values.
func (*Ordinals) DeepCopy ¶ added in v0.9.1
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ordinals.
func (*Ordinals) DeepCopyInto ¶ added in v0.9.1
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodUpdatePolicyType ¶ added in v0.9.1
type PodUpdatePolicyType string
const ( // StrictInPlacePodUpdatePolicyType indicates that only allows in-place upgrades. // Any attempt to modify other fields will be rejected. StrictInPlacePodUpdatePolicyType PodUpdatePolicyType = "StrictInPlace" // PreferInPlacePodUpdatePolicyType indicates that we will first attempt an in-place upgrade of the Pod. // If that fails, it will fall back to the ReCreate, where pod will be recreated. PreferInPlacePodUpdatePolicyType PodUpdatePolicyType = "PreferInPlace" // RecreatePodUpdatePolicyType indicates that recreate the Pod no matter what fields being updated. RecreatePodUpdatePolicyType PodUpdatePolicyType = "Recreate" )
type Range ¶ added in v0.9.1
Range represents a range with a start and an end value. It is used to define a continuous segment.
func (*Range) DeepCopy ¶ added in v0.9.1
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Range.
func (*Range) DeepCopyInto ¶ added in v0.9.1
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicaRole ¶
type ReplicaRole struct { // Defines the role name of the replica. // // +kubebuilder:validation:Required // +kubebuilder:default=leader Name string `json:"name"` // Specifies the service capabilities of this member. // // +kubebuilder:validation:Required // +kubebuilder:default=ReadWrite // +kubebuilder:validation:Enum={None, Readonly, ReadWrite} AccessMode AccessMode `json:"accessMode"` // Indicates if this member has voting rights. // // +kubebuilder:default=true // +optional CanVote bool `json:"canVote"` // Determines if this member is the leader. // // +kubebuilder:default=false // +optional IsLeader bool `json:"isLeader"` }
func (*ReplicaRole) DeepCopy ¶
func (in *ReplicaRole) DeepCopy() *ReplicaRole
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaRole.
func (*ReplicaRole) DeepCopyInto ¶
func (in *ReplicaRole) DeepCopyInto(out *ReplicaRole)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleProbe ¶ added in v0.7.0
type RoleProbe struct { // Specifies the builtin handler name to use to probe the role of the main container. // Available handlers include: mysql, postgres, mongodb, redis, etcd, kafka. // Use CustomHandler to define a custom role probe function if none of the built-in handlers meet the requirement. // // +optional BuiltinHandler *string `json:"builtinHandlerName,omitempty"` // Defines a custom method for role probing. // If the BuiltinHandler meets the requirement, use it instead. // Actions defined here are executed in series. // Upon completion of all actions, the final output should be a single string representing the role name defined in spec.Roles. // The latest [BusyBox](https://busybox.net/) image will be used if Image is not configured. // Environment variables can be used in Command: // - v_KB_ITS_LAST_STDOUT: stdout from the last action, watch for 'v_' prefix // - KB_ITS_USERNAME: username part of the credential // - KB_ITS_PASSWORD: password part of the credential // // +optional CustomHandler []Action `json:"customHandler,omitempty"` // Specifies the number of seconds to wait after the container has started before initiating role probing. // // +kubebuilder:default=0 // +kubebuilder:validation:Minimum=0 // +optional InitialDelaySeconds int32 `json:"initialDelaySeconds,omitempty"` // Specifies the number of seconds after which the probe times out. // // +kubebuilder:default=1 // +kubebuilder:validation:Minimum=1 // +optional TimeoutSeconds int32 `json:"timeoutSeconds,omitempty"` // Specifies the frequency (in seconds) of probe execution. // // +kubebuilder:default=2 // +kubebuilder:validation:Minimum=1 // +optional PeriodSeconds int32 `json:"periodSeconds,omitempty"` // Specifies the minimum number of consecutive successes for the probe to be considered successful after having failed. // // +kubebuilder:default=1 // +kubebuilder:validation:Minimum=1 // +optional SuccessThreshold int32 `json:"successThreshold,omitempty"` // Specifies the minimum number of consecutive failures for the probe to be considered failed after having succeeded. // // +kubebuilder:default=3 // +kubebuilder:validation:Minimum=1 // +optional FailureThreshold int32 `json:"failureThreshold,omitempty"` // Specifies the method for updating the pod role label. // // +kubebuilder:default=ReadinessProbeEventUpdate // +kubebuilder:validation:Enum={ReadinessProbeEventUpdate, DirectAPIServerEventUpdate} // +optional RoleUpdateMechanism RoleUpdateMechanism `json:"roleUpdateMechanism,omitempty"` }
RoleProbe defines how to observe role
func (*RoleProbe) DeepCopy ¶ added in v0.7.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleProbe.
func (*RoleProbe) DeepCopyInto ¶ added in v0.7.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RoleUpdateMechanism ¶ added in v0.7.0
type RoleUpdateMechanism string
RoleUpdateMechanism defines the way how pod role label being updated. +enum
const ( ReadinessProbeEventUpdate RoleUpdateMechanism = "ReadinessProbeEventUpdate" DirectAPIServerEventUpdate RoleUpdateMechanism = "DirectAPIServerEventUpdate" )
type SchedulingPolicy ¶ added in v0.9.1
type SchedulingPolicy struct { // If specified, the Pod will be dispatched by specified scheduler. // If not specified, the Pod will be dispatched by default scheduler. // // +optional SchedulerName string `json:"schedulerName,omitempty"` // NodeSelector is a selector which must be true for the Pod to fit on a node. // Selector which must match a node's labels for the Pod to be scheduled on that node. // More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ // // +optional // +mapType=atomic NodeSelector map[string]string `json:"nodeSelector,omitempty"` // NodeName is a request to schedule this Pod onto a specific node. If it is non-empty, // the scheduler simply schedules this Pod onto that node, assuming that it fits resource // requirements. // // +optional NodeName string `json:"nodeName,omitempty"` // Specifies a group of affinity scheduling rules of the Cluster, including NodeAffinity, PodAffinity, and PodAntiAffinity. // // +optional Affinity *corev1.Affinity `json:"affinity,omitempty"` // Allows Pods to be scheduled onto nodes with matching taints. // Each toleration in the array allows the Pod to tolerate node taints based on // specified `key`, `value`, `effect`, and `operator`. // // - The `key`, `value`, and `effect` identify the taint that the toleration matches. // - The `operator` determines how the toleration matches the taint. // // Pods with matching tolerations are allowed to be scheduled on tainted nodes, typically reserved for specific purposes. // // +optional Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // TopologySpreadConstraints describes how a group of Pods ought to spread across topology // domains. Scheduler will schedule Pods in a way which abides by the constraints. // All topologySpreadConstraints are ANDed. // // +optional TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` }
SchedulingPolicy the scheduling policy. Deprecated: Unify with apps/v1alpha1.SchedulingPolicy
func (*SchedulingPolicy) DeepCopy ¶ added in v0.9.1
func (in *SchedulingPolicy) DeepCopy() *SchedulingPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulingPolicy.
func (*SchedulingPolicy) DeepCopyInto ¶ added in v0.9.1
func (in *SchedulingPolicy) DeepCopyInto(out *SchedulingPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.