Documentation
¶
Overview ¶
+k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=workloads.kubeblocks.io
Package v1 contains API Schema definitions for the workloads v1 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) Hub()
- func (r *InstanceSet) IsInstanceSetReady() bool
- func (r *InstanceSet) IsInstancesReady() bool
- func (r *InstanceSet) SetupWebhookWithManager(mgr ctrl.Manager) error
- type InstanceSetList
- type InstanceSetSpec
- type InstanceSetStatus
- type InstanceTemplate
- type InstanceTemplateStatus
- type MemberStatus
- type MemberUpdateStrategy
- type MembershipReconfiguration
- type PodUpdatePolicyType
- type ReplicaRole
- type RoleUpdateMechanism
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 InstanceSetKind = "InstanceSet"
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "workloads.kubeblocks.io", Version: "v1"} // 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 ¶
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 ¶
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 ¶
func (in *InstanceSet) DeepCopy() *InstanceSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceSet.
func (*InstanceSet) DeepCopyInto ¶
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 ¶
func (in *InstanceSet) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*InstanceSet) Hub ¶
func (r *InstanceSet) Hub()
func (*InstanceSet) IsInstanceSetReady ¶
func (r *InstanceSet) IsInstanceSetReady() bool
IsInstanceSetReady gives InstanceSet level 'ready' state: 1. all instances are available 2. and all members have role set (if they are role-ful)
func (*InstanceSet) IsInstancesReady ¶
func (r *InstanceSet) IsInstancesReady() bool
IsInstancesReady gives Instance level 'ready' state when all instances are available
func (*InstanceSet) SetupWebhookWithManager ¶
func (r *InstanceSet) SetupWebhookWithManager(mgr ctrl.Manager) error
type InstanceSetList ¶
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 ¶
func (in *InstanceSetList) DeepCopy() *InstanceSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceSetList.
func (*InstanceSetList) DeepCopyInto ¶
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 ¶
func (in *InstanceSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type InstanceSetSpec ¶
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 kbappsv1.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"`
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.
// 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.
// UpdateStrategy.Type will be set to appsv1.OnDeleteStatefulSetStrategyType if MemberUpdateStrategy is not nil
//
// Note: This field will be removed in future version.
UpdateStrategy appsv1.StatefulSetUpdateStrategy `json:"updateStrategy,omitempty"`
// A list of roles defined in the system. Instanceset obtains role through pods' role label `kubeblocks.io/role`.
//
// +optional
Roles []ReplicaRole `json:"roles,omitempty"`
// Provides actions to do membership dynamic reconfiguration.
//
// +optional
MembershipReconfiguration *MembershipReconfiguration `json:"membershipReconfiguration,omitempty"`
// Provides variables which are used to call Actions.
//
// +optional
TemplateVars map[string]string `json:"templateVars,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"`
// 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 ¶
func (in *InstanceSetSpec) DeepCopy() *InstanceSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceSetSpec.
func (*InstanceSetSpec) DeepCopyInto ¶
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 ¶
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"`
// 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 ¶
func (in *InstanceSetStatus) DeepCopy() *InstanceSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceSetStatus.
func (*InstanceSetStatus) DeepCopyInto ¶
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 ¶
type InstanceTemplate = kbappsv1.InstanceTemplate
InstanceTemplate allows customization of individual replica configurations in a Component.
+kubebuilder:object:generate=false
type InstanceTemplateStatus ¶
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 ¶
func (in *InstanceTemplateStatus) DeepCopy() *InstanceTemplateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceTemplateStatus.
func (*InstanceTemplateStatus) DeepCopyInto ¶
func (in *InstanceTemplateStatus) DeepCopyInto(out *InstanceTemplateStatus)
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 ¶
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"`
// Defines the procedure for a controlled transition of a role to a new replica.
//
// +optional
Switchover *kbappsv1.Action `json:"switchover,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 PodUpdatePolicyType ¶
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" )
type ReplicaRole ¶
type ReplicaRole = kbappsv1.ReplicaRole
ReplicaRole represents a role that can be assigned to a component instance, defining its behavior and responsibilities. +kubebuilder:object:generate=false
type RoleUpdateMechanism ¶
type RoleUpdateMechanism string
RoleUpdateMechanism defines the way how pod role label being updated. +enum
const ( ReadinessProbeEventUpdate RoleUpdateMechanism = "ReadinessProbeEventUpdate" DirectAPIServerEventUpdate RoleUpdateMechanism = "DirectAPIServerEventUpdate" )