@@ -142,7 +142,10 @@ func buildPostgresPodTemplateSpec() corev1.PodTemplateSpec {
142142 AllowPrivilegeEscalation : & []bool {false }[0 ],
143143 ReadOnlyRootFilesystem : & []bool {true }[0 ],
144144 },
145- VolumeMounts : volumeMounts ,
145+ StartupProbe : buildPostgresProbe (PostgresStartupProbePeriodSeconds , PostgresStartupProbeTimeoutSeconds , PostgresStartupProbeFailureThreshold , PostgresStartupProbeInitialDelaySeconds ),
146+ LivenessProbe : buildPostgresProbe (PostgresLivenessProbePeriodSeconds , PostgresLivenessProbeTimeoutSeconds , PostgresLivenessProbeFailureThreshold , 0 ),
147+ ReadinessProbe : buildPostgresProbe (PostgresReadinessProbePeriodSeconds , PostgresReadinessProbeTimeoutSeconds , PostgresReadinessProbeFailureThreshold , 0 ),
148+ VolumeMounts : volumeMounts ,
146149 Resources : corev1.ResourceRequirements {
147150 Requests : corev1.ResourceList {
148151 corev1 .ResourceCPU : resource .MustParse ("30m" ),
@@ -195,3 +198,17 @@ func buildPostgresPodTemplateSpec() corev1.PodTemplateSpec {
195198 },
196199 }
197200}
201+
202+ func buildPostgresProbe (period , timeout , failure , initialDelay int32 ) * corev1.Probe {
203+ return & corev1.Probe {
204+ ProbeHandler : corev1.ProbeHandler {
205+ Exec : & corev1.ExecAction {
206+ Command : []string {"pg_isready" , "-U" , PostgresDefaultUser , "-d" , PostgresDefaultDbName },
207+ },
208+ },
209+ InitialDelaySeconds : initialDelay ,
210+ PeriodSeconds : period ,
211+ TimeoutSeconds : timeout ,
212+ FailureThreshold : failure ,
213+ }
214+ }
0 commit comments