Documentation ¶
Index ¶
Constants ¶
View Source
const ( // RoleProbeTimeoutReason the event reason when all pods of the component role probe timed out. RoleProbeTimeoutReason = "RoleProbeTimeout" // PodContainerFailedTimeout the timeout for container of pod failures, the component phase will be set to Failed/Abnormal after this time. PodContainerFailedTimeout = time.Minute )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Component ¶
type Component interface { // IsRunning when relevant k8s workloads changes, it checks whether the component is running. // you can also reconcile the pods of component till the component is Running here. IsRunning(ctx context.Context, obj client.Object) (bool, error) // PodsReady checks whether all pods of the component are ready. // it means the pods are available in StatefulSet or Deployment. PodsReady(ctx context.Context, obj client.Object) (bool, error) // PodIsAvailable checks whether a pod of the component is available. // if the component is Stateless/StatefulSet, the available conditions follows as: // 1. the pod is ready. // 2. readyTime reached minReadySeconds. // if the component is ConsensusSet,it will be available when the pod is ready and labeled with its role. PodIsAvailable(pod *corev1.Pod, minReadySeconds int32) bool // HandleProbeTimeoutWhenPodsReady if the component has no role probe, return false directly. otherwise, // we should handle the component phase when the role probe timeout and return a bool. // if return true, means probe is not timing out and need to requeue after an interval time to handle probe timeout again. // else return false, means probe has timed out and needs to update the component phase to Failed or Abnormal. HandleProbeTimeoutWhenPodsReady(ctx context.Context, recorder record.EventRecorder) (bool, error) // GetPhaseWhenPodsNotReady when the pods of component are not ready, calculate the component phase is Failed or Abnormal. // if return an empty phase, means the pods of component are ready and skips it. GetPhaseWhenPodsNotReady(ctx context.Context, componentName string) (appsv1alpha1.ClusterComponentPhase, error) // HandleUpdate handles component updating when basic workloads of the components are updated HandleUpdate(ctx context.Context, obj client.Object) error }
Component is the interface to use for component status
type ComponentBase ¶
type ComponentBase struct { Cli client.Client Cluster *appsv1alpha1.Cluster Component *appsv1alpha1.ClusterComponentSpec ComponentDef *appsv1alpha1.ClusterComponentDefinition }
ComponentBase is a common component base struct
Click to show internal directories.
Click to hide internal directories.