Graphite: update chart to support readiness and liveness probe fine control
Opened this issue · 0 comments
Is this a request for help?:
NO
Is this a BUG REPORT or FEATURE REQUEST? (choose one):
FEATURE REQUEST
I would like to add variables or custom configuration for readiness and liveness probes of the helm chart: https://github.com/kiwigrid/helm-charts/blob/master/charts/graphite/templates/statefulset.yaml#L61
Example:
set up a variable
probes.liveness:
livenessProbe:
failureThreshold: 3
httpGet:
path: /
port: graphite-gui
scheme: HTTP
initialDelaySeconds: 300
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
probe.readiness:
readinessProbe:
failureThreshold: 5
httpGet:
path: /
port: graphite-gui
scheme: HTTP
initialDelaySeconds: 120
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 1
so that instead of the default controls, I can fine control when to start polling, what to start polling, and the failuire conditions.
I have a very large graphite instance, that takes nearly 3 minutes to start the graphite gui (nginx 80, gunicorn 8080), and this causes the k8s cluster to kill the pod (readiness failuire) and send it to the CrashLoopBackOff state that prevents further interaction (actually, start, killed by Probe loop)
Version of Helm and Kubernetes:
helm version
version.BuildInfo{Version:"v3.5.4", GitCommit:"1b5edb69df3d3a08df77c9902dc17af864ff05d1", GitTreeState:"clean", GoVersion:"go1.15.11"}
k8s version
root@444cdbf2a907:/code/production# kubectl --insecure-skip-tls-verify version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.3", GitCommit:"ca643a4d1f7bfe34773c74f79527be4afd95bf39", GitTreeState:"clean", BuildDate:"2021-07-15T21:04:39Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.10-gke.600", GitCommit:"2c921d7b040ed9c5a3a1f9407fb109b74d72d0a4", GitTreeState:"clean", BuildDate:"2022-06-02T09:20:24Z", GoVersion:"go1.16.15b7", Compiler:"gc", Platform:"linux/amd64"}
Which chart in which version:
chart = "graphite"
version = "0.7.2"
What happened:
helm apply, create readiness and liveness probes with default values (not user managed)
What you expected to happen:
I'd like to be able to use a variable on the chart to render kubernetes supported probes configuration controls: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
How to reproduce it (as minimally and precisely as possible):
just install the chart. There is no variable on the chart to control the configuration of the probes:
https://github.com/kiwigrid/helm-charts/blob/master/charts/graphite/templates/statefulset.yaml#L61
both Probes are hardcoded.
Anything else we need to know:
As indicated, I only need fine tuning due to the size of my deployment. When there is no data on graphite, it is fast enough to pass both probes.