Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set startupProbe on consul-dataplane container (injected as part of the Service Mesh implementation) #3346

Closed
komapa opened this issue Dec 11, 2023 · 0 comments · Fixed by #3450
Labels
type/enhancement New feature or request

Comments

@komapa
Copy link

komapa commented Dec 11, 2023

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request. Searching for pre-existing feature requests helps us consolidate datapoints for identical requirements into a single place, thank you!
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment.

Is your feature request related to a problem? Please describe.

We have an open ticket with HashiSupport on why the consul-dataplane container does not fully load in some cases but that problem revealed another shortcoming of the consul-dataplane container: It does not have any readinessProbe (or livenessProbe for that matter). What this means in reality is that if the consul-dataplane container does not start correctly (something in the initialization process gets wedged), we end up with a Pod that is never going to recover.

Feature Description

I proper for consul-k8s to set a startupProbe like this:

var startupProbe *corev1.Probe
	startupProbe = &corev1.Probe{
		ProbeHandler: corev1.ProbeHandler{
			TCPSocket: &corev1.TCPSocketAction{
				Port: intstr.FromInt(constants.ProxyDefaultInboundPort + mpi.serviceIndex),
			},
		},
		PeriodSeconds:       10,
		FailureThreshold:    6,
		InitialDelaySeconds: 1,
	}

What will need to be configurable is mostly the total time to wait for the container to start listening on its application port. In our case it can take sometimes close to a minute so some annotation on the Pod for some combination of FailureThreshold and PeriodSeconds will be required.

Use Case(s)

Described already

Contributions

Yes, if you think you will accept such a feature

@komapa komapa added the type/enhancement New feature or request label Dec 11, 2023
@david-yu david-yu linked a pull request Jan 9, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant