[Feature] Add default liveness/readiness probes to the generated Robin Deployment
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 65/100
Direzione di ricerca
The change is in internal/controller/redkey_robin.go, function buildDesiredRobinDeployment. Start by examining how the Robin container is built, particularly around the Ports/Resources block. Look at the existing override logic for SecurityContext/Resources from spec.robin.template to understand precedence. Write unit tests to verify default probes are added and user overrides work. Check drift detection in robinDeploymentNeedsUpdate to include probe fields. Ensure the dependent Robin health endpoint issue is resolved before merging.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Depends on: redkey-robin issue "Expose an HTTP health endpoint (
/healthz,/readyz) for Kubernetes probes". This issue should only be merged once Robin actually serves the health endpoint(s), otherwise the probes point to a non-existent endpoint and the kubelet will kill the pod in a crash loop.
Problem
The operator builds the Robin Deployment in buildDesiredRobinDeployment (internal/controller/redkey_robin.go) without any LivenessProbe or ReadinessProbe. A hung Robin is neither restarted nor flagged unless the user manually defines probes via spec.robin.template. This reduces resilience out of the box.
(The operator's own pod is unaffected — its manager already registers /healthz and /readyz and its Deployment defines probes. This issue is specifically about the Robin pod that the operator generates.)
Proposed solution
In buildDesiredRobinDeployment, set default probes on the Robin container pointing at the health endpoint exposed by Robin:
livenessProbe: HTTP GET/healthzon the metrics port (8080), with sensibleinitialDelaySeconds/periodSeconds/failureThreshold.readinessProbe(optional but recommended for consistency): HTTP GET/readyzon the same port.- Defaults must remain overridable by
spec.robin.template(block-replacement semantics, consistent with how resources/securityContext are already handled). If the user provides probes in the template, they win.
Acceptance criteria
- Generated Robin Deployment includes a default
livenessProbe(HTTP/healthz, port8080). - Generated Robin Deployment includes a default
readinessProbe(HTTP/readyz) — or documented decision to omit readiness. - Probe timings (
initialDelaySeconds,periodSeconds,timeoutSeconds,failureThreshold) are reasonable for a reconciler and documented. - User-supplied probes via
spec.robin.templateoverride the defaults. - Unit tests assert: defaults present when no template; template probes take precedence when provided.
- Drift detection (
robinDeploymentNeedsUpdate) accounts for the probe fields so the operator does not fight the Deployment controller.
Implementation notes
- Add the probe defaults where the base
containeris constructed inbuildDesiredRobinDeployment(internal/controller/redkey_robin.go, around thePorts/Resourcesblock). - Honor the existing override precedence used for
SecurityContext/Resourcesfromspec.robin.template.spec.containers[0]. - Verify probes are included in the fields compared by the deployment-drift check to keep reconciliation idempotent.
Related
- Depends on redkey-robin: https://github.com/InditexTech/redkey-robin/issues/43.
- Lingua principale
- Go
- Stelle
- 29
- Fork
- 2
- Merge medio
- 13h 32m
- PR unite (30g)
- 16
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di InditexTech/redkey-operator
-
[Feature] Set RevisionHistoryLimit on the generated Robin Deployment to bound retained ReplicaSetsApertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
InditexTech/redkey-operator#87 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
InditexTech/redkey-operator#124 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] Operator memory usage scales with cluster size instead of with the number of Redkeys (OOMKilled on startup)Forse già presa @albertompe l’ha presa 10 giorni fa. Apertabug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
InditexTech/redkey-operator#122 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 22/100
InditexTech/redkey-operator#120 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 54/100
InditexTech/redkey-operator#111 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di InditexTech/redkey-operator
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
coder/openstorage#807 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
coder/coder-logstream-kube#255 · 1 commento ·
-
[FEATURE]: 录入 AIDEV Agent Package v1 接入参考文档Forse già presa Una pull request collegata a questa issue è aperta o già unita. Apertakind/features
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
TencentBlueKing/bk-nodemgr#3991 ·
I maintainer di solito rispondono entro 1 giorno