Init add liveness probe

Signed-off-by: DavidSpek <vanderspek.david@gmail.com>
This commit is contained in:
DavidSpek
2023-05-16 11:17:06 +02:00
committed by David van der Spek
parent af084a5a65
commit db96273ab3
14 changed files with 594 additions and 0 deletions
@@ -102,6 +102,7 @@ type KubernetesMetaConfiguration struct {
PodManagementPolicy string `json:"pod_management_policy,omitempty"`
EnableReadinessProbe bool `json:"enable_readiness_probe,omitempty"`
EnableCrossNamespaceSecret bool `json:"enable_cross_namespace_secret,omitempty"`
LivenessProbe *v1.Probe `json:"liveness_probe,omitempty"`
}
// PostgresPodResourcesDefaults defines the spec of default resources
@@ -87,6 +87,7 @@ type PostgresSpec struct {
AdditionalVolumes []AdditionalVolume `json:"additionalVolumes,omitempty"`
Streams []Stream `json:"streams,omitempty"`
Env []v1.EnvVar `json:"env,omitempty"`
LivenessProbe *v1.Probe `json:"livenessProbe,omitempty"`
// deprecated json tags
InitContainersOld []v1.Container `json:"init_containers,omitempty"`
+15
View File
@@ -1207,6 +1207,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 (
@@ -1326,6 +1339,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 spec.Sidecars != nil && len(spec.Sidecars) > 0 {
+1
View File
@@ -125,6 +125,7 @@ func (c *Controller) importConfigurationFromCRD(fromCRD *acidv1.OperatorConfigur
result.PodAntiAffinityTopologyKey = util.Coalesce(fromCRD.Kubernetes.PodAntiAffinityTopologyKey, "kubernetes.io/hostname")
result.PodAntiAffinityPreferredDuringScheduling = fromCRD.Kubernetes.PodAntiAffinityPreferredDuringScheduling
result.PodToleration = fromCRD.Kubernetes.PodToleration
result.LivenessProbe = fromCRD.Kubernetes.LivenessProbe
// Postgres Pod resources
result.DefaultCPURequest = util.Coalesce(fromCRD.PostgresPodResources.DefaultCPURequest, "100m")
+1
View File
@@ -245,6 +245,7 @@ type Config struct {
TargetMajorVersion string `name:"target_major_version" default:"15"`
PatroniAPICheckInterval time.Duration `name:"patroni_api_check_interval" default:"1s"`
PatroniAPICheckTimeout time.Duration `name:"patroni_api_check_timeout" default:"5s"`
LivenessProbe *v1.Probe `json:"liveness_probe,omitempty"`
EnablePatroniFailsafeMode *bool `name:"enable_patroni_failsafe_mode" default:"false"`
}