cloudflow
cloudflow copied to clipboard
Configurable probe timeouts
What changes were proposed in this pull request?
This change adds the capability to manually configure/override the readiness- and liveness-probe for (Akka)Streamlets. Optionally, the probes created by default can only be partially overridden - e.g. by specifying different timeouts but keeping the original executable/command for performing the actual probing.
Why are the changes needed?
We need this flexibility because when lowering resource requirements for very low-utilized Streamlets (e.g. 100mCPU for HTTP endpoints) the related pod never starts up since probes time out. For the sake of completeness, this change does more than just allowing to configure the timeouts.
Does this PR introduce any user-facing change?
Documentation was updated and config samples added.
How was this patch tested?
Existing tests are kept untouched, additional unit tests were added for AkkaRunner and CloudflowConfig.
@franciscolopezsancho
Looking at the cloudflow-contributions project (spark and flink integration), I do not see a reason why the change would conflict. - Spark and Flink seem to be integrated via standard (akka-driven) Streamlets, or at least I did not see a dedicated SparkRunner and FlinkRunner anymore.
Is it correct that Spark and Flink now also use the AkkaRunner?
Otherwise, this change and also https://github.com/lightbend/cloudflow/pull/1211 could raise issues.
Plus, for extra deployment flexibility, we think about providing a PR adding support for Node (anti-)affinity.
At least one commit author ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]) is not linked to a user. See https://help.github.com/en/articles/why-are-my-commits-linked-to-the-wrong-user#commits-are-not-linked-to-any-user