Init add liveness probe
Signed-off-by: DavidSpek <vanderspek.david@gmail.com>
This commit is contained in:
parent
af084a5a65
commit
db96273ab3
|
|
@ -260,6 +260,139 @@ spec:
|
|||
type: array
|
||||
items:
|
||||
type: string
|
||||
liveness_probe:
|
||||
description: Probe describes a health check to be performed against
|
||||
a container to determine whether it is alive or ready to receive
|
||||
traffic.
|
||||
properties:
|
||||
exec:
|
||||
description: One and only one of the following should be specified.
|
||||
Exec specifies the action to take.
|
||||
properties:
|
||||
command:
|
||||
description: Command is the command line to execute inside
|
||||
the container, the working directory for the command is
|
||||
root ('/') in the container's filesystem. The command
|
||||
is simply exec'd, it is not run inside a shell, so traditional
|
||||
shell instructions ('|', etc) won't work. To use a shell,
|
||||
you need to explicitly call out to that shell. Exit
|
||||
status of 0 is treated as live/healthy and non-zero
|
||||
is unhealthy.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
description: Minimum consecutive failures for the probe to
|
||||
be considered failed after having succeeded. Defaults to
|
||||
3. Minimum value is 1.
|
||||
format: int32
|
||||
type: integer
|
||||
httpGet:
|
||||
description: HTTPGet specifies the http request to perform.
|
||||
properties:
|
||||
host:
|
||||
description: Host name to connect to, defaults to the
|
||||
pod IP. You probably want to set "Host" in httpHeaders
|
||||
instead.
|
||||
type: string
|
||||
httpHeaders:
|
||||
description: Custom headers to set in the request. HTTP
|
||||
allows repeated headers.
|
||||
items:
|
||||
description: HTTPHeader describes a custom header to
|
||||
be used in HTTP probes
|
||||
properties:
|
||||
name:
|
||||
description: The header field name
|
||||
type: string
|
||||
value:
|
||||
description: The header field value
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
description: Path to access on the HTTP server.
|
||||
type: string
|
||||
port:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Name or number of the port to access on the
|
||||
container. Number must be in the range 1 to 65535. Name
|
||||
must be an IANA_SVC_NAME.
|
||||
x-kubernetes-int-or-string: true
|
||||
scheme:
|
||||
description: Scheme to use for connecting to the host.
|
||||
Defaults to HTTP.
|
||||
type: string
|
||||
required:
|
||||
- port
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
description: 'Number of seconds after the container has started
|
||||
before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
description: How often (in seconds) to perform the probe.
|
||||
Default to 10 seconds. Minimum value is 1.
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
description: Minimum consecutive successes for the probe to
|
||||
be considered successful after having failed. Defaults to
|
||||
1. Must be 1 for liveness and startup. Minimum value is
|
||||
1.
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
description: 'TCPSocket specifies an action involving a TCP
|
||||
port. TCP hooks not yet supported TODO: implement a realistic
|
||||
TCP lifecycle hook'
|
||||
properties:
|
||||
host:
|
||||
description: 'Optional: Host name to connect to, defaults
|
||||
to the pod IP.'
|
||||
type: string
|
||||
port:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Number or name of the port to access on the
|
||||
container. Number must be in the range 1 to 65535. Name
|
||||
must be an IANA_SVC_NAME.
|
||||
x-kubernetes-int-or-string: true
|
||||
required:
|
||||
- port
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
description: Optional duration in seconds the pod needs to
|
||||
terminate gracefully upon probe failure. The grace period
|
||||
is the duration in seconds after the processes running in
|
||||
the pod are sent a termination signal and the time when
|
||||
the processes are forcibly halted with a kill signal. Set
|
||||
this value longer than the expected cleanup time for your
|
||||
process. If this value is nil, the pod's terminationGracePeriodSeconds
|
||||
will be used. Otherwise, this value overrides the value
|
||||
provided by the pod spec. Value must be non-negative integer.
|
||||
The value zero indicates stop immediately via the kill signal
|
||||
(no opportunity to shut down). This is a beta field and
|
||||
requires enabling ProbeTerminationGracePeriod feature gate.
|
||||
Minimum value is 1. spec.terminationGracePeriodSeconds is
|
||||
used if unset.
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
description: 'Number of seconds after which the probe times
|
||||
out. Defaults to 1 second. Minimum value is 1. More info:
|
||||
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
master_pod_move_timeout:
|
||||
type: string
|
||||
default: "20m"
|
||||
|
|
|
|||
|
|
@ -202,6 +202,140 @@ spec:
|
|||
items:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
livenessProbe:
|
||||
description: 'Periodic probe of container liveness. Container
|
||||
will be restarted if the probe fails. Cannot be updated. More
|
||||
info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||
properties:
|
||||
exec:
|
||||
description: One and only one of the following should be
|
||||
specified. Exec specifies the action to take.
|
||||
properties:
|
||||
command:
|
||||
description: Command is the command line to execute
|
||||
inside the container, the working directory for the
|
||||
command is root ('/') in the container's filesystem.
|
||||
The command is simply exec'd, it is not run inside
|
||||
a shell, so traditional shell instructions ('|', etc)
|
||||
won't work. To use a shell, you need to explicitly
|
||||
call out to that shell. Exit status of 0 is treated
|
||||
as live/healthy and non-zero is unhealthy.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
description: Minimum consecutive failures for the probe
|
||||
to be considered failed after having succeeded. Defaults
|
||||
to 3. Minimum value is 1.
|
||||
format: int32
|
||||
type: integer
|
||||
httpGet:
|
||||
description: HTTPGet specifies the http request to perform.
|
||||
properties:
|
||||
host:
|
||||
description: Host name to connect to, defaults to the
|
||||
pod IP. You probably want to set "Host" in httpHeaders
|
||||
instead.
|
||||
type: string
|
||||
httpHeaders:
|
||||
description: Custom headers to set in the request. HTTP
|
||||
allows repeated headers.
|
||||
items:
|
||||
description: HTTPHeader describes a custom header
|
||||
to be used in HTTP probes
|
||||
properties:
|
||||
name:
|
||||
description: The header field name
|
||||
type: string
|
||||
value:
|
||||
description: The header field value
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
description: Path to access on the HTTP server.
|
||||
type: string
|
||||
port:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Name or number of the port to access on
|
||||
the container. Number must be in the range 1 to 65535.
|
||||
Name must be an IANA_SVC_NAME.
|
||||
x-kubernetes-int-or-string: true
|
||||
scheme:
|
||||
description: Scheme to use for connecting to the host.
|
||||
Defaults to HTTP.
|
||||
type: string
|
||||
required:
|
||||
- port
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
description: 'Number of seconds after the container has
|
||||
started before liveness probes are initiated. More info:
|
||||
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
description: How often (in seconds) to perform the probe.
|
||||
Default to 10 seconds. Minimum value is 1.
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
description: Minimum consecutive successes for the probe
|
||||
to be considered successful after having failed. Defaults
|
||||
to 1. Must be 1 for liveness and startup. Minimum value
|
||||
is 1.
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
description: 'TCPSocket specifies an action involving a
|
||||
TCP port. TCP hooks not yet supported TODO: implement
|
||||
a realistic TCP lifecycle hook'
|
||||
properties:
|
||||
host:
|
||||
description: 'Optional: Host name to connect to, defaults
|
||||
to the pod IP.'
|
||||
type: string
|
||||
port:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Number or name of the port to access on
|
||||
the container. Number must be in the range 1 to 65535.
|
||||
Name must be an IANA_SVC_NAME.
|
||||
x-kubernetes-int-or-string: true
|
||||
required:
|
||||
- port
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
description: Optional duration in seconds the pod needs
|
||||
to terminate gracefully upon probe failure. The grace
|
||||
period is the duration in seconds after the processes
|
||||
running in the pod are sent a termination signal and the
|
||||
time when the processes are forcibly halted with a kill
|
||||
signal. Set this value longer than the expected cleanup
|
||||
time for your process. If this value is nil, the pod's
|
||||
terminationGracePeriodSeconds will be used. Otherwise,
|
||||
this value overrides the value provided by the pod spec.
|
||||
Value must be non-negative integer. The value zero indicates
|
||||
stop immediately via the kill signal (no opportunity to
|
||||
shut down). This is a beta field and requires enabling
|
||||
ProbeTerminationGracePeriod feature gate. Minimum value
|
||||
is 1. spec.terminationGracePeriodSeconds is used if unset.
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
description: 'Number of seconds after which the probe times
|
||||
out. Defaults to 1 second. Minimum value is 1. More info:
|
||||
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
init_containers:
|
||||
type: array
|
||||
description: deprecated
|
||||
|
|
|
|||
|
|
@ -205,6 +205,19 @@ configKubernetes:
|
|||
# whether the Spilo container should run with additional permissions other than parent.
|
||||
# required by cron which needs setuid
|
||||
spilo_allow_privilege_escalation: true
|
||||
|
||||
# liveness probe for the spilo pod
|
||||
# liveness_probe:
|
||||
# httpGet:
|
||||
# scheme: HTTP
|
||||
# path: /liveness
|
||||
# port: 8008
|
||||
# initialDelaySeconds: 10
|
||||
# periodSeconds: 10
|
||||
# timeoutSeconds: 5
|
||||
# successThreshold: 1
|
||||
# failureThreshold: 3
|
||||
|
||||
# storage resize strategy, available options are: ebs, pvc, off or mixed
|
||||
storage_resize_mode: pvc
|
||||
# pod toleration assigned to instances of every Postgres cluster
|
||||
|
|
|
|||
|
|
@ -85,6 +85,10 @@ These parameters are grouped directly under the `spec` key in the manifest.
|
|||
requires a custom Spilo image. Note the FSGroup of a Pod cannot be changed
|
||||
without recreating a new Pod. Optional.
|
||||
|
||||
* **livenessProbe**
|
||||
Allows for adding a liveness probe to the Spilo container to detect if it's
|
||||
running properly.
|
||||
|
||||
* **enableMasterLoadBalancer**
|
||||
boolean flag to override the operator defaults (set by the
|
||||
`enable_master_load_balancer` parameter) to define whether to enable the load
|
||||
|
|
|
|||
|
|
@ -469,6 +469,10 @@ configuration they are grouped under the `kubernetes` key.
|
|||
process. Required by cron which needs setuid. Without this parameter,
|
||||
certification rotation & backups will not be done. The default is `true`.
|
||||
|
||||
* **liveness_probe**
|
||||
Allows for adding a liveness probe to the Spilo container to detect if it's
|
||||
running properly.
|
||||
|
||||
* **additional_pod_capabilities**
|
||||
list of additional capabilities to be added to the postgres container's
|
||||
SecurityContext (e.g. SYS_NICE etc.). Please, make sure first that the
|
||||
|
|
|
|||
|
|
@ -152,6 +152,16 @@ data:
|
|||
# spilo_runasgroup: 103
|
||||
# spilo_fsgroup: 103
|
||||
spilo_privileged: "false"
|
||||
# liveness_probe: |-
|
||||
# httpGet:
|
||||
# scheme: HTTP
|
||||
# path: /liveness
|
||||
# port: 8008
|
||||
# initialDelaySeconds: 10
|
||||
# periodSeconds: 10
|
||||
# timeoutSeconds: 5
|
||||
# successThreshold: 1
|
||||
# failureThreshold: 3
|
||||
storage_resize_mode: "pvc"
|
||||
super_username: postgres
|
||||
# target_major_version: "15"
|
||||
|
|
|
|||
|
|
@ -258,6 +258,139 @@ spec:
|
|||
type: array
|
||||
items:
|
||||
type: string
|
||||
liveness_probe:
|
||||
description: Probe describes a health check to be performed against
|
||||
a container to determine whether it is alive or ready to receive
|
||||
traffic.
|
||||
properties:
|
||||
exec:
|
||||
description: One and only one of the following should be specified.
|
||||
Exec specifies the action to take.
|
||||
properties:
|
||||
command:
|
||||
description: Command is the command line to execute inside
|
||||
the container, the working directory for the command is
|
||||
root ('/') in the container's filesystem. The command
|
||||
is simply exec'd, it is not run inside a shell, so traditional
|
||||
shell instructions ('|', etc) won't work. To use a shell,
|
||||
you need to explicitly call out to that shell. Exit
|
||||
status of 0 is treated as live/healthy and non-zero
|
||||
is unhealthy.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
description: Minimum consecutive failures for the probe to
|
||||
be considered failed after having succeeded. Defaults to
|
||||
3. Minimum value is 1.
|
||||
format: int32
|
||||
type: integer
|
||||
httpGet:
|
||||
description: HTTPGet specifies the http request to perform.
|
||||
properties:
|
||||
host:
|
||||
description: Host name to connect to, defaults to the
|
||||
pod IP. You probably want to set "Host" in httpHeaders
|
||||
instead.
|
||||
type: string
|
||||
httpHeaders:
|
||||
description: Custom headers to set in the request. HTTP
|
||||
allows repeated headers.
|
||||
items:
|
||||
description: HTTPHeader describes a custom header to
|
||||
be used in HTTP probes
|
||||
properties:
|
||||
name:
|
||||
description: The header field name
|
||||
type: string
|
||||
value:
|
||||
description: The header field value
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
description: Path to access on the HTTP server.
|
||||
type: string
|
||||
port:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Name or number of the port to access on the
|
||||
container. Number must be in the range 1 to 65535. Name
|
||||
must be an IANA_SVC_NAME.
|
||||
x-kubernetes-int-or-string: true
|
||||
scheme:
|
||||
description: Scheme to use for connecting to the host.
|
||||
Defaults to HTTP.
|
||||
type: string
|
||||
required:
|
||||
- port
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
description: 'Number of seconds after the container has started
|
||||
before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
description: How often (in seconds) to perform the probe.
|
||||
Default to 10 seconds. Minimum value is 1.
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
description: Minimum consecutive successes for the probe to
|
||||
be considered successful after having failed. Defaults to
|
||||
1. Must be 1 for liveness and startup. Minimum value is
|
||||
1.
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
description: 'TCPSocket specifies an action involving a TCP
|
||||
port. TCP hooks not yet supported TODO: implement a realistic
|
||||
TCP lifecycle hook'
|
||||
properties:
|
||||
host:
|
||||
description: 'Optional: Host name to connect to, defaults
|
||||
to the pod IP.'
|
||||
type: string
|
||||
port:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Number or name of the port to access on the
|
||||
container. Number must be in the range 1 to 65535. Name
|
||||
must be an IANA_SVC_NAME.
|
||||
x-kubernetes-int-or-string: true
|
||||
required:
|
||||
- port
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
description: Optional duration in seconds the pod needs to
|
||||
terminate gracefully upon probe failure. The grace period
|
||||
is the duration in seconds after the processes running in
|
||||
the pod are sent a termination signal and the time when
|
||||
the processes are forcibly halted with a kill signal. Set
|
||||
this value longer than the expected cleanup time for your
|
||||
process. If this value is nil, the pod's terminationGracePeriodSeconds
|
||||
will be used. Otherwise, this value overrides the value
|
||||
provided by the pod spec. Value must be non-negative integer.
|
||||
The value zero indicates stop immediately via the kill signal
|
||||
(no opportunity to shut down). This is a beta field and
|
||||
requires enabling ProbeTerminationGracePeriod feature gate.
|
||||
Minimum value is 1. spec.terminationGracePeriodSeconds is
|
||||
used if unset.
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
description: 'Number of seconds after which the probe times
|
||||
out. Defaults to 1 second. Minimum value is 1. More info:
|
||||
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
master_pod_move_timeout:
|
||||
type: string
|
||||
default: "20m"
|
||||
|
|
|
|||
|
|
@ -78,6 +78,16 @@ configuration:
|
|||
# inherited_labels:
|
||||
# - application
|
||||
# - environment
|
||||
# liveness_probe:
|
||||
# httpGet:
|
||||
# scheme: HTTP
|
||||
# path: /liveness
|
||||
# port: 8008
|
||||
# initialDelaySeconds: 10
|
||||
# periodSeconds: 10
|
||||
# timeoutSeconds: 5
|
||||
# successThreshold: 1
|
||||
# failureThreshold: 3
|
||||
master_pod_move_timeout: 20m
|
||||
# node_readiness_label:
|
||||
# status: ready
|
||||
|
|
|
|||
|
|
@ -200,6 +200,140 @@ spec:
|
|||
items:
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
livenessProbe:
|
||||
description: 'Periodic probe of container liveness. Container
|
||||
will be restarted if the probe fails. Cannot be updated. More
|
||||
info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||
properties:
|
||||
exec:
|
||||
description: One and only one of the following should be
|
||||
specified. Exec specifies the action to take.
|
||||
properties:
|
||||
command:
|
||||
description: Command is the command line to execute
|
||||
inside the container, the working directory for the
|
||||
command is root ('/') in the container's filesystem.
|
||||
The command is simply exec'd, it is not run inside
|
||||
a shell, so traditional shell instructions ('|', etc)
|
||||
won't work. To use a shell, you need to explicitly
|
||||
call out to that shell. Exit status of 0 is treated
|
||||
as live/healthy and non-zero is unhealthy.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
description: Minimum consecutive failures for the probe
|
||||
to be considered failed after having succeeded. Defaults
|
||||
to 3. Minimum value is 1.
|
||||
format: int32
|
||||
type: integer
|
||||
httpGet:
|
||||
description: HTTPGet specifies the http request to perform.
|
||||
properties:
|
||||
host:
|
||||
description: Host name to connect to, defaults to the
|
||||
pod IP. You probably want to set "Host" in httpHeaders
|
||||
instead.
|
||||
type: string
|
||||
httpHeaders:
|
||||
description: Custom headers to set in the request. HTTP
|
||||
allows repeated headers.
|
||||
items:
|
||||
description: HTTPHeader describes a custom header
|
||||
to be used in HTTP probes
|
||||
properties:
|
||||
name:
|
||||
description: The header field name
|
||||
type: string
|
||||
value:
|
||||
description: The header field value
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
description: Path to access on the HTTP server.
|
||||
type: string
|
||||
port:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Name or number of the port to access on
|
||||
the container. Number must be in the range 1 to 65535.
|
||||
Name must be an IANA_SVC_NAME.
|
||||
x-kubernetes-int-or-string: true
|
||||
scheme:
|
||||
description: Scheme to use for connecting to the host.
|
||||
Defaults to HTTP.
|
||||
type: string
|
||||
required:
|
||||
- port
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
description: 'Number of seconds after the container has
|
||||
started before liveness probes are initiated. More info:
|
||||
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
description: How often (in seconds) to perform the probe.
|
||||
Default to 10 seconds. Minimum value is 1.
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
description: Minimum consecutive successes for the probe
|
||||
to be considered successful after having failed. Defaults
|
||||
to 1. Must be 1 for liveness and startup. Minimum value
|
||||
is 1.
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
description: 'TCPSocket specifies an action involving a
|
||||
TCP port. TCP hooks not yet supported TODO: implement
|
||||
a realistic TCP lifecycle hook'
|
||||
properties:
|
||||
host:
|
||||
description: 'Optional: Host name to connect to, defaults
|
||||
to the pod IP.'
|
||||
type: string
|
||||
port:
|
||||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Number or name of the port to access on
|
||||
the container. Number must be in the range 1 to 65535.
|
||||
Name must be an IANA_SVC_NAME.
|
||||
x-kubernetes-int-or-string: true
|
||||
required:
|
||||
- port
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
description: Optional duration in seconds the pod needs
|
||||
to terminate gracefully upon probe failure. The grace
|
||||
period is the duration in seconds after the processes
|
||||
running in the pod are sent a termination signal and the
|
||||
time when the processes are forcibly halted with a kill
|
||||
signal. Set this value longer than the expected cleanup
|
||||
time for your process. If this value is nil, the pod's
|
||||
terminationGracePeriodSeconds will be used. Otherwise,
|
||||
this value overrides the value provided by the pod spec.
|
||||
Value must be non-negative integer. The value zero indicates
|
||||
stop immediately via the kill signal (no opportunity to
|
||||
shut down). This is a beta field and requires enabling
|
||||
ProbeTerminationGracePeriod feature gate. Minimum value
|
||||
is 1. spec.terminationGracePeriodSeconds is used if unset.
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
description: 'Number of seconds after which the probe times
|
||||
out. Defaults to 1 second. Minimum value is 1. More info:
|
||||
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
init_containers:
|
||||
type: array
|
||||
description: deprecated
|
||||
|
|
|
|||
|
|
@ -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"`
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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"`
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue