-
Notifications
You must be signed in to change notification settings - Fork 81
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[EAP7-1769] Add support for configuring Kubernetes startup probe via …
…Helm Charts
- Loading branch information
Showing
2 changed files
with
139 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
136 changes: 136 additions & 0 deletions
136
cloud/EAP7-1769-Helm-cahrts-Configuring-Kubernetes-startup-probe.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
--- | ||
categories: | ||
- helm-charts | ||
stability-level: default | ||
issue: https://github.com/wildfly/wildfly-charts/issues/37 | ||
feature-team: | ||
developer: yersan | ||
sme: jmesnil | ||
- | ||
outside-perspective: | ||
- laDok8 | ||
--- | ||
= [Default] Add support for configuring Kubernetes startup probe via Helm Charts | ||
:author: Yeray Borges | ||
:email: [email protected] | ||
:toc: left | ||
:icons: font | ||
:idprefix: | ||
:idseparator: - | ||
|
||
== Overview | ||
|
||
The probes (Liveness and Readiness) added by the Helm Chart uses the following default values: | ||
|
||
[literal] | ||
failureThreshold: 3 | ||
periodSeconds: 10 | ||
successThreshold: 1 | ||
timeoutSeconds: 1 | ||
initialDelaySeconds: 0 | ||
|
||
For the liveness probes, for example, this configuration means the server could take until `failureThreshold*periodSeconds=30` seconds to get started. If such a condition doesn't occur the cluster will kill the pod to start over it again (restart policy is always). | ||
|
||
Sometimes the pod could need more than 30 seconds to start, for example: | ||
|
||
The user has registered other liveness checks in their application code and to satisfy those conditions is needed more time. | ||
The management operations executed at runtime when the pod is started could also take some time to be applied, which delays the availability of the endpoint used by the default liveness probe. | ||
The node where the pod is running is slow. | ||
In such a case, users could be tempted to increase the `initialDelaySeconds` or the `failureThreshold` configuration, however increasing the `initialDelaySeconds` will delay a fixed value, which could compromise the expected fast response. Increasing the `failureThreshold` could also break the established conditions you have decided to check your application at runtime. | ||
|
||
The alternative to those issues is to have the ability to configure a Startup Probe. The Startup Probe can be used to delay the initial checks done by the liveness and readiness probes, allowing some configuration without compromising them. | ||
|
||
The goal of this RFE is to define the default initial configuration of a Startup Probe so users can tweak it when required. | ||
|
||
|
||
=== User Stories | ||
|
||
As a user, I want to delay the initial liveness and readiness check using an Startup probe. | ||
|
||
== Issue Metadata | ||
|
||
=== Related Issues | ||
|
||
* https://issues.redhat.com/browse/EAP7-1769 | ||
|
||
=== Affected Projects or Components | ||
|
||
* WildFly Helm Charts | ||
|
||
=== Other Interested Projects | ||
|
||
=== Relevant Installation Types | ||
|
||
* OpenShift Source-to-Image (S2I) | ||
|
||
== Requirements | ||
|
||
* Startup probe configuration will be available in the Helm Chart. | ||
* The Helm Chart will add by default a Startup Probe to give three minutes as additional time before starting the Readiness and Liveness probes. | ||
* Users should be able to tweak any of those default values when they are installing the chart. | ||
|
||
=== Changed requirements | ||
|
||
* N/A | ||
|
||
=== Non-Requirements | ||
|
||
* N/A | ||
|
||
=== Future Work | ||
|
||
* N/A | ||
|
||
== Backwards Compatibility | ||
|
||
* N/A | ||
|
||
=== Default Configuration | ||
|
||
* The proposal for the default Startup Probe configuration is the following: | ||
+ | ||
[source,yaml] | ||
startupProbe: | ||
httpGet: | ||
path: /health/live | ||
port: admin | ||
initialDelaySeconds: 5 | ||
failureThreshold: 36 | ||
periodSeconds: 5 | ||
|
||
=== Importing Existing Configuration | ||
|
||
* N/A | ||
|
||
=== Deployments | ||
|
||
* N/A | ||
|
||
=== Interoperability | ||
|
||
* N/A | ||
|
||
== Implementation Plan | ||
|
||
* N/A | ||
|
||
== Admin Clients | ||
|
||
* N/A | ||
|
||
== Security Considerations | ||
|
||
* N/A | ||
|
||
[[test_plan]] | ||
== Test Plan | ||
|
||
* Test plan will be delivered by a professional Quality Engineer with subject matter expertise. | ||
|
||
== Community Documentation | ||
|
||
The Helm Chart docs will include a description of the uses of the Startup Probe. | ||
|
||
== Release Note Content | ||
|
||
Added the ability to configure a Startup Probe using WildFly Helm Charts. |