Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func StatefulSetComplete ¶
func StatefulSetComplete(sts *appsv1.StatefulSet) bool
StatefulSetComplete return true if StatefulSet is considered ready
Two strategies: OnDelete, RollingUpdate
OnDelete can be tracked in two situations: - resource is created - replicas attribute is changed A more sophisticated solution that will check Revision of Pods is not needed because of required manual intervention
RollingUpdate is automatic, so we can rely on the CurrentReplicas and UpdatedReplicas counters.
func StatefulSetRolloutStatus ¶
func StatefulSetRolloutStatus(sts *appsv1.StatefulSet) (string, bool, error)
StatefulSetRolloutStatus returns a message describing statefulset status, and a bool value indicating if the status is considered done. A code from kubectl sources. Doesn't work well for OnDelete, downscale and partition: 0 case. https://github.com/kubernetes/kubernetes/issues/72212 Now used only for debug purposes
Types ¶
type Feed ¶
type Feed interface { controller.ControllerFeed OnStatus(func(StatefulSetStatus) error) GetStatus() StatefulSetStatus Track(name, namespace string, kube kubernetes.Interface, opts tracker.Options) error }
type PodAddedReport ¶
type PodAddedReport struct { ReplicaSetPod replicaset.ReplicaSetPod StatefulSetStatus StatefulSetStatus }
type PodErrorReport ¶
type PodErrorReport struct { ReplicaSetPodError replicaset.ReplicaSetPodError StatefulSetStatus StatefulSetStatus }
type StatefulSetStatus ¶
type StatefulSetStatus struct { appsv1.StatefulSetStatus StatusGeneration uint64 ReplicasIndicator *indicators.Int64GreaterOrEqualConditionIndicator ReadyIndicator *indicators.Int64GreaterOrEqualConditionIndicator UpToDateIndicator *indicators.Int64GreaterOrEqualConditionIndicator WaitingForMessages []string WarningMessages []string IsReady bool IsFailed bool FailedReason string Pods map[string]pod.PodStatus NewPodsNames []string }
func NewStatefulSetStatus ¶
type Tracker ¶
type Tracker struct { tracker.Tracker State tracker.TrackerState Conditions []string TrackedPodsNames []string Added chan StatefulSetStatus Ready chan StatefulSetStatus Failed chan StatefulSetStatus Status chan StatefulSetStatus EventMsg chan string AddedPod chan PodAddedReport PodLogChunk chan *replicaset.ReplicaSetPodLogChunk PodError chan PodErrorReport // contains filtered or unexported fields }
func NewTracker ¶
func (*Tracker) Track ¶
Track starts tracking of StatefulSet rollout process. watch only for one StatefulSet resource with name d.ResourceName within the namespace with name d.Namespace Watcher can wait for namespace creation and then for StatefulSet creation watcher receives added event if StatefulSet is started watch is infinite by default there is option StopOnAvailable — if true, watcher stops after StatefulSet has available status you can define custom stop triggers using custom implementation of ControllerFeed.