Provide liveness probe for CRD and config (#3089)

* add LivenessProbe to both CRDs 
* auto-generate liveness probe for CRD
* update topolgySpreadConstraint schema validation
* Disable it for config map
This commit is contained in:
Felix Kunde
2026-06-02 17:31:42 +02:00
committed by GitHub
parent 26165be2d5
commit 4177fa27be
17 changed files with 1461 additions and 17 deletions
+2
View File
@@ -625,6 +625,8 @@ func (c *Cluster) compareContainers(description string, setA, setB []v1.Containe
func(a, b v1.Container) bool { return a.Name != b.Name }),
newCheck("new %s's %s (index %d) readiness probe does not match the current one",
func(a, b v1.Container) bool { return !reflect.DeepEqual(a.ReadinessProbe, b.ReadinessProbe) }),
newCheck("new %s's %s (index %d) liveness probe does not match the current one",
func(a, b v1.Container) bool { return !reflect.DeepEqual(a.LivenessProbe, b.LivenessProbe) }),
newCheck("new %s's %s (index %d) ports do not match the current one",
func(a, b v1.Container) bool { return !comparePorts(a.Ports, b.Ports) }),
newCheck("new %s's %s (index %d) resources do not match the current ones",
+15
View File
@@ -1299,6 +1299,19 @@ func generateSpiloReadinessProbe() *v1.Probe {
}
}
func generateSpiloLivenessProbe(probe, defaultProbe *v1.Probe) *v1.Probe {
if probe != nil {
return probe
}
if defaultProbe != nil {
return defaultProbe
}
return nil
}
func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.StatefulSet, error) {
var (
@@ -1405,6 +1418,8 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.Statef
spiloContainer.ReadinessProbe = generateSpiloReadinessProbe()
}
spiloContainer.LivenessProbe = generateSpiloLivenessProbe(spec.LivenessProbe, c.OpConfig.LivenessProbe)
// generate container specs for sidecars specified in the cluster manifest
clusterSpecificSidecars := []v1.Container{}
if len(spec.Sidecars) > 0 {