Skip to content

Commit b5ae040

Browse files
committed
feat: probe use built-in, discarded healthcheck.sh
Signed-off-by: drivebyer <yang.wu@daocloud.io>
1 parent 9cd2ae9 commit b5ae040

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

k8sutils/statefulset.go

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,9 @@ func createPVCTemplate(volumeName string, stsMeta metav1.ObjectMeta, storageSpec
345345

346346
// generateContainerDef generates container definition for Redis
347347
func generateContainerDef(name string, containerParams containerParameters, clusterMode, nodeConfVolume, enableMetrics bool, externalConfig, clusterVersion *string, mountpath []corev1.VolumeMount, sidecars []redisv1beta2.Sidecar) []corev1.Container {
348+
sentinelCntr := containerParams.Role == "sentinel"
349+
enableTLS := containerParams.TLSConfig != nil
350+
enableAuth := containerParams.EnabledPassword != nil && *containerParams.EnabledPassword == true
348351
containerDefinition := []corev1.Container{
349352
{
350353
Name: name,
@@ -363,8 +366,8 @@ func generateContainerDef(name string, containerParams containerParameters, clus
363366
containerParams.Port,
364367
clusterVersion,
365368
),
366-
ReadinessProbe: getProbeInfo(containerParams.ReadinessProbe),
367-
LivenessProbe: getProbeInfo(containerParams.LivenessProbe),
369+
ReadinessProbe: getProbeInfo(containerParams.ReadinessProbe, sentinelCntr, enableTLS, enableAuth),
370+
LivenessProbe: getProbeInfo(containerParams.LivenessProbe, sentinelCntr, enableTLS, enableAuth),
368371
VolumeMounts: getVolumeMount(name, containerParams.PersistenceEnabled, clusterMode, nodeConfVolume, externalConfig, mountpath, containerParams.TLSConfig, containerParams.ACLConfig),
369372
},
370373
}
@@ -593,7 +596,23 @@ func getVolumeMount(name string, persistenceEnabled *bool, clusterMode bool, nod
593596
}
594597

595598
// getProbeInfo generate probe for Redis StatefulSet
596-
func getProbeInfo(probe *commonapi.Probe) *corev1.Probe {
599+
func getProbeInfo(probe *commonapi.Probe, sentinel, enableTLS, enableAuth bool) *corev1.Probe {
600+
healthChecker := []string{
601+
"redis-cli",
602+
"ping",
603+
"-h", "$(hostname)",
604+
}
605+
if sentinel {
606+
healthChecker = append(healthChecker, "-p", "${SENTINEL_PORT}")
607+
} else {
608+
healthChecker = append(healthChecker, "-p", "${REDIS_PORT}")
609+
}
610+
if enableAuth {
611+
healthChecker = append(healthChecker, "-a", "${REDIS_PASSWORD}")
612+
}
613+
if enableTLS {
614+
healthChecker = append(healthChecker, "--tls", "--cert", "${REDIS_TLS_CERT}", "--key", "${REDIS_TLS_CERT_KEY}", "--cacert", "${REDIS_TLS_CA_KEY}")
615+
}
597616
return &corev1.Probe{
598617
InitialDelaySeconds: probe.InitialDelaySeconds,
599618
PeriodSeconds: probe.PeriodSeconds,
@@ -602,10 +621,7 @@ func getProbeInfo(probe *commonapi.Probe) *corev1.Probe {
602621
SuccessThreshold: probe.SuccessThreshold,
603622
ProbeHandler: corev1.ProbeHandler{
604623
Exec: &corev1.ExecAction{
605-
Command: []string{
606-
"bash",
607-
"/usr/bin/healthcheck.sh",
608-
},
624+
Command: healthChecker,
609625
},
610626
},
611627
}

0 commit comments

Comments
 (0)