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

Graphite: update chart to support readiness and liveness probe fine control #456

Open
PedroMSantosD opened this issue Sep 6, 2022 · 0 comments

Comments

@PedroMSantosD
Copy link

PedroMSantosD commented Sep 6, 2022

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant