Skip to content

Add TCP startup checks #1824

@vrutkovs

Description

@vrutkovs

When TLS / mTLS is enabled existing healthchecks would fail as they expect the response to be plain text.

After a discussion with the team we've figures out that the healthchecks need to be reworked:

  • These are not checking if the application is running, they are checking whether web server is running. As a result, these can be checked via TCP probe
  • The checks are not updated throughout the lifecycle of the app, so instead of liveness / readiness check these can be converted into startupProbe

Plan:

  • Document current workaround for TLS users - custom startup probe, unset liveness/readiness checks
  • Add TCP probe startup checks
  • Announce deprecation in liveness/readiness checks
  • After 3 releases liveness / readiness checks will be removed - this will cause pod rollout
  • Document healthcheck strategy

Original issue

Is your feature request related to a problem? Please describe

With mTLS enabled in k8s environment kubelet has to have a valid certificate for liveness / readiness checks. This makes pod setup cumbersome

Describe the solution you'd like

Provide an unauthenticated /healthz endpoint, which doesn't require mTLS or TLS at all

Describe alternatives you've considered

Running a heathcheck via a command in the pod
Operator instrumenting a pod with correct certificates

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions