in pkg/common/utils/resource/pod.go [1071:1128]
func BuildDisaggregatedProbe(container *corev1.Container, cs *dv1.CommonSpec, componentType dv1.DisaggregatedComponentType) {
var failurethreshold int32
startTimeout := int32(300)
liveTimeout := cs.LiveTimeout
if cs.StartTimeout >= 300 {
startTimeout = cs.StartTimeout
}
failurethreshold = startTimeout / 5
if liveTimeout < 1 {
liveTimeout = 180
}
var commend string
switch componentType {
case dv1.DisaggregatedFE:
commend = HEALTH_DISAGGREGATED_FE_PROBE_COMMAND
case dv1.DisaggregatedBE:
commend = HEALTH_DISAGGREGATED_BE_PROBE_COMMAND
case dv1.DisaggregatedMS:
commend = HEALTH_DISAGGREGATED_MS_PROBE_COMMAND
default:
}
// check running status
alive := corev1.ProbeHandler{
Exec: &corev1.ExecAction{
Command: []string{commend, DISAGGREGATED_LIVE_PARAM_ALIVE},
},
}
// check ready status
ready := corev1.ProbeHandler{
Exec: &corev1.ExecAction{
Command: []string{commend, DISAGGREGATED_LIVE_PARAM_READY},
},
}
container.LivenessProbe = &corev1.Probe{
PeriodSeconds: 5,
FailureThreshold: 3,
InitialDelaySeconds: 80,
TimeoutSeconds: liveTimeout,
ProbeHandler: alive,
}
container.StartupProbe = &corev1.Probe{
FailureThreshold: failurethreshold,
PeriodSeconds: 5,
ProbeHandler: alive,
}
container.ReadinessProbe = &corev1.Probe{
PeriodSeconds: 5,
FailureThreshold: 3,
ProbeHandler: ready,
}
}