[Feature] Add default liveness/readiness probes to the generated Robin Deployment
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 65/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Go
- Estrellas
- 29
- Forks
- 2
- Merge medio
- 13 h 32 min
- PR fusionados (30 d)
- 16
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de InditexTech/redkey-operator
-
[Feature] Set RevisionHistoryLimit on the generated Robin Deployment to bound retained ReplicaSetsAbiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
InditexTech/redkey-operator#87 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
InditexTech/redkey-operator#124 ·
Los mantenedores suelen responder en 1 día
-
[Bug] Operator memory usage scales with cluster size instead of with the number of Redkeys (OOMKilled on startup)Posiblemente ocupada @albertompe la tomó hace 10 días. Abiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
InditexTech/redkey-operator#122 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 22/100
InditexTech/redkey-operator#120 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 54/100
InditexTech/redkey-operator#111 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de InditexTech/redkey-operator
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
coder/openstorage#807 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
coder/coder-logstream-kube#255 · 1 comentario ·
-
[FEATURE]: 录入 AIDEV Agent Package v1 接入参考文档Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertokind/features
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
TencentBlueKing/bk-nodemgr#3991 ·
Los mantenedores suelen responder en 1 día