Documentation ¶
Overview ¶
+k8s:openapi-gen=true +groupName=apps.kruise.io
Package v1beta1 contains API Schema definitions for the apps v1beta1 API group +kubebuilder:object:generate=true +groupName=apps.kruise.io
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- func SetDefaultPodSpec(in *corev1.PodSpec)
- func SetDefaultsStatefulSet(obj *StatefulSet)
- type PodUpdateStrategyType
- type RollingUpdateStatefulSetStrategy
- type StatefulSet
- type StatefulSetList
- type StatefulSetSpec
- type StatefulSetStatus
- type StatefulSetUpdateStrategy
- type UnorderedUpdateStrategy
Constants ¶
const ( FailedCreatePod apps.StatefulSetConditionType = "FailedCreatePod" FailedUpdatePod apps.StatefulSetConditionType = "FailedUpdatePod" )
These are valid conditions of a statefulset.
const (
// MaxMinReadySeconds is the max value of MinReadySeconds
MaxMinReadySeconds = 300
)
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "apps.kruise.io", Version: "v1beta1"} SchemeGroupVersion = GroupVersion // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource is required by pkg/client/listers/...
func SetDefaultPodSpec ¶
SetDefaultPodSpec sets default pod spec
func SetDefaultsStatefulSet ¶
func SetDefaultsStatefulSet(obj *StatefulSet)
SetDefaults_StatefulSet set default values for StatefulSet.
Types ¶
type PodUpdateStrategyType ¶
type PodUpdateStrategyType string
PodUpdateStrategyType is a string enumeration type that enumerates all possible ways we can update a Pod when updating application
const ( // RecreatePodUpdateStrategyType indicates that we always delete Pod and create new Pod // during Pod update, which is the default behavior RecreatePodUpdateStrategyType PodUpdateStrategyType = "ReCreate" // InPlaceIfPossiblePodUpdateStrategyType indicates that we try to in-place update Pod instead of // recreating Pod when possible. Currently, only image update of pod spec is allowed. Any other changes to the pod // spec will fall back to ReCreate PodUpdateStrategyType where pod will be recreated. InPlaceIfPossiblePodUpdateStrategyType PodUpdateStrategyType = "InPlaceIfPossible" // InPlaceOnlyPodUpdateStrategyType indicates that we will in-place update Pod instead of // recreating pod. Currently we only allow image update for pod spec. Any other changes to the pod spec will be // rejected by kube-apiserver InPlaceOnlyPodUpdateStrategyType PodUpdateStrategyType = "InPlaceOnly" )
type RollingUpdateStatefulSetStrategy ¶
type RollingUpdateStatefulSetStrategy struct { // Partition indicates the ordinal at which the StatefulSet should be partitioned by default. // But if unorderedUpdate has been set: // - Partition indicates the number of pods with non-updated revisions when rolling update. // - It means controller will update $(replicas - partition) number of pod. // Default value is 0. // +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 down. // Also, maxUnavailable can just be allowed to work with Parallel podManagementPolicy. // Defaults to 1. // +optional MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` // PodUpdatePolicy indicates how pods should be updated // Default value is "ReCreate" // +optional PodUpdatePolicy PodUpdateStrategyType `json:"podUpdatePolicy,omitempty"` // Paused indicates that the StatefulSet is paused. // Default value is false // +optional Paused bool `json:"paused,omitempty"` // UnorderedUpdate contains strategies for non-ordered update. // If it is not nil, pods will be updated with non-ordered sequence. // Noted that UnorderedUpdate can only be allowed to work with Parallel podManagementPolicy // +optional UnorderedUpdate *UnorderedUpdateStrategy `json:"unorderedUpdate,omitempty"` // InPlaceUpdateStrategy contains strategies for in-place update. // +optional InPlaceUpdateStrategy *appspub.InPlaceUpdateStrategy `json:"inPlaceUpdateStrategy,omitempty"` // MinReadySeconds indicates how long will the pod be considered ready after it's updated. // MinReadySeconds works with both OrderedReady and Parallel podManagementPolicy. // It affects the pod scale up speed when the podManagementPolicy is set to be OrderedReady. // Combined with MaxUnavailable, it affects the pod update speed regardless of podManagementPolicy. // Default value is 0, max is 300. // +optional MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` }
RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.
func (*RollingUpdateStatefulSetStrategy) DeepCopy ¶
func (in *RollingUpdateStatefulSetStrategy) DeepCopy() *RollingUpdateStatefulSetStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateStatefulSetStrategy.
func (*RollingUpdateStatefulSetStrategy) DeepCopyInto ¶
func (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateStatefulSetStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StatefulSet ¶
type StatefulSet struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec StatefulSetSpec `json:"spec,omitempty"` Status StatefulSetStatus `json:"status,omitempty"` }
StatefulSet is the Schema for the statefulsets API
func (*StatefulSet) DeepCopy ¶
func (in *StatefulSet) DeepCopy() *StatefulSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSet.
func (*StatefulSet) DeepCopyInto ¶
func (in *StatefulSet) DeepCopyInto(out *StatefulSet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StatefulSet) DeepCopyObject ¶
func (in *StatefulSet) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*StatefulSet) Hub ¶
func (*StatefulSet) Hub()
type StatefulSetList ¶
type StatefulSetList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []StatefulSet `json:"items"` }
StatefulSetList contains a list of StatefulSet
func (*StatefulSetList) DeepCopy ¶
func (in *StatefulSetList) DeepCopy() *StatefulSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetList.
func (*StatefulSetList) DeepCopyInto ¶
func (in *StatefulSetList) DeepCopyInto(out *StatefulSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StatefulSetList) DeepCopyObject ¶
func (in *StatefulSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StatefulSetSpec ¶
type StatefulSetSpec struct { // replicas is the desired number of replicas of the given Template. // These are replicas in the sense that they are instantiations of the // same Template, but individual replicas also have a consistent identity. // If unspecified, defaults to 1. // TODO: Consider a rename of this field. // +optional Replicas *int32 `json:"replicas,omitempty"` // selector is a label query over pods that should match the replica count. // It must match the pod template's labels. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors Selector *metav1.LabelSelector `json:"selector"` // template is the object that describes the pod that will be created if // insufficient replicas are detected. Each pod stamped out by the StatefulSet // will fulfill this Template, but have a unique identity from the rest // of the StatefulSet. Template v1.PodTemplateSpec `json:"template"` // volumeClaimTemplates is a list of claims that pods are allowed to reference. // The StatefulSet controller is responsible for mapping network identities to // claims in a way that maintains the identity of a pod. Every claim in // this list must have at least one matching (by name) volumeMount in one // container in the template. A claim in this list takes precedence over // any volumes in the template, with the same name. // TODO: Define the behavior if a claim already exists with the same name. // +optional VolumeClaimTemplates []v1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"` // serviceName is the name of the service that governs this StatefulSet. // This service must exist before the StatefulSet, and is responsible for // the network identity of the set. Pods get DNS/hostnames that follow the // pattern: pod-specific-string.serviceName.default.svc.cluster.local // where "pod-specific-string" is managed by the StatefulSet controller. ServiceName string `json:"serviceName,omitempty"` // podManagementPolicy 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 (pod-0, then // pod-1, etc) and the controller will wait 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. // +optional PodManagementPolicy apps.PodManagementPolicyType `json:"podManagementPolicy,omitempty"` // updateStrategy indicates the StatefulSetUpdateStrategy that will be // employed to update Pods in the StatefulSet when a revision is made to // Template. UpdateStrategy StatefulSetUpdateStrategy `json:"updateStrategy,omitempty"` // revisionHistoryLimit is the maximum number of revisions that will // be maintained in the StatefulSet's revision history. The revision history // consists of all revisions not represented by a currently applied // StatefulSetSpec version. The default value is 10. RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` // reserveOrdinals controls the ordinal numbers that should be reserved, and the replicas // will always be the expectation number of running Pods. // For a sts with replicas=3 and its Pods in [0, 1, 2]: // - If you want to migrate Pod-1 and reserve this ordinal, just set spec.reserveOrdinal to [1]. // Then controller will delete Pod-1 and create Pod-3 (existing Pods will be [0, 2, 3]) // - If you just want to delete Pod-1, you should set spec.reserveOrdinal to [1] and spec.replicas to 2. // Then controller will delete Pod-1 (existing Pods will be [0, 2]) ReserveOrdinals []int `json:"reserveOrdinals,omitempty"` // Lifecycle defines the lifecycle hooks for Pods pre-delete, in-place update. Lifecycle *appspub.Lifecycle `json:"lifecycle,omitempty"` }
StatefulSetSpec defines the desired state of StatefulSet
func (*StatefulSetSpec) DeepCopy ¶
func (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec.
func (*StatefulSetSpec) DeepCopyInto ¶
func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StatefulSetStatus ¶
type StatefulSetStatus struct { // observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the // StatefulSet's generation, which is updated on mutation by the API Server. // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // replicas is the number of Pods created by the StatefulSet controller. Replicas int32 `json:"replicas"` // readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition. ReadyReplicas int32 `json:"readyReplicas"` // AvailableReplicas is the number of Pods created by the StatefulSet controller that have been ready for //minReadySeconds. AvailableReplicas int32 `json:"availableReplicas"` // currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version // indicated by currentRevision. CurrentReplicas int32 `json:"currentReplicas"` // updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version // indicated by updateRevision. UpdatedReplicas int32 `json:"updatedReplicas"` // currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the // sequence [0,currentReplicas). CurrentRevision string `json:"currentRevision,omitempty"` // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) UpdateRevision string `json:"updateRevision,omitempty"` // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller // uses this field as a collision avoidance mechanism when it needs to create the name for the // newest ControllerRevision. // +optional CollisionCount *int32 `json:"collisionCount,omitempty"` // Represents the latest available observations of a statefulset's current state. // +optional // +patchMergeKey=type // +patchStrategy=merge Conditions []apps.StatefulSetCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` // LabelSelector is label selectors for query over pods that should match the replica count used by HPA. LabelSelector string `json:"labelSelector,omitempty"` }
StatefulSetStatus defines the observed state of StatefulSet
func (*StatefulSetStatus) DeepCopy ¶
func (in *StatefulSetStatus) DeepCopy() *StatefulSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetStatus.
func (*StatefulSetStatus) DeepCopyInto ¶
func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StatefulSetUpdateStrategy ¶
type StatefulSetUpdateStrategy struct { // Type indicates the type of the StatefulSetUpdateStrategy. // Default is RollingUpdate. // +optional Type apps.StatefulSetUpdateStrategyType `json:"type,omitempty"` // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. // +optional RollingUpdate *RollingUpdateStatefulSetStrategy `json:"rollingUpdate,omitempty"` }
StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.
func (*StatefulSetUpdateStrategy) DeepCopy ¶
func (in *StatefulSetUpdateStrategy) DeepCopy() *StatefulSetUpdateStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetUpdateStrategy.
func (*StatefulSetUpdateStrategy) DeepCopyInto ¶
func (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UnorderedUpdateStrategy ¶
type UnorderedUpdateStrategy struct { // Priorities are the rules for calculating the priority of updating pods. // Each pod to be updated, will pass through these terms and get a sum of weights. // +optional PriorityStrategy *appspub.UpdatePriorityStrategy `json:"priorityStrategy,omitempty"` }
UnorderedUpdateStrategy defines strategies for non-ordered update.
func (*UnorderedUpdateStrategy) DeepCopy ¶
func (in *UnorderedUpdateStrategy) DeepCopy() *UnorderedUpdateStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnorderedUpdateStrategy.
func (*UnorderedUpdateStrategy) DeepCopyInto ¶
func (in *UnorderedUpdateStrategy) DeepCopyInto(out *UnorderedUpdateStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.