kiwigrid/helm-charts

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.
GraphiteSize