[Feature] Set RevisionHistoryLimit on the generated Robin Deployment to bound retained ReplicaSets
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 75/100
Línea de trabajo
El issue señala la función buildDesiredRobinDeployment en internal/controller/redkey_robin.go. Empieza examinando la construcción de DeploymentSpec allí. Añade un campo RevisionHistoryLimit establecido en 2, utilizando una constante con nombre. Actualiza la función robinDeploymentNeedsUpdate para que compare este campo al detectar desviaciones. Ejecuta las pruebas unitarias existentes para asegurarte de que se aplique el valor predeterminado y la reconciliación siga siendo idempotente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
The operator builds the Robin Deployment in buildDesiredRobinDeployment (internal/controller/redkey_robin.go) without setting RevisionHistoryLimit, so Kubernetes applies its default of 10. Each rollout of the Robin Deployment (e.g. a spec.robin.image bump, args or template change) leaves an old, scaled-to-zero ReplicaSet behind, and up to 10 of them accumulate per cluster. For a singleton controller-style Deployment that changes rarely, keeping 10 historical ReplicaSets is unnecessary clutter in etcd and in kubectl get rs.
Proposed solution
Set RevisionHistoryLimit explicitly on the Robin Deployment spec to a small value (2), which still allows an immediate rollback to the previous revision without accumulating a long tail of empty ReplicaSets.
- Default:
RevisionHistoryLimit: 2. - Keep it overridable via
spec.robin.templateif/when that path exposes it (consistent with other defaults).
ProgressDeadlineSeconds was considered and intentionally left out of scope: the default (600s) is fine for a fast-starting single-replica Deployment, and lowering it adds little value. It can be revisited separately if rollout-stall alerting is ever needed.
Acceptance criteria
- The generated Robin Deployment sets
RevisionHistoryLimit: 2. - A user-supplied value via
spec.robin.template(if exposed) overrides the default. - Drift detection (
robinDeploymentNeedsUpdate) accounts forRevisionHistoryLimitso reconciliation stays idempotent (no patch loop). - Unit test asserts the default value is present on the generated Deployment.
Implementation notes
- Add the field in
buildDesiredRobinDeploymentwhere theDeploymentSpecis constructed (internal/controller/redkey_robin.go), alongsideReplicas/Selector/Template. - Use a named constant (e.g.
robinRevisionHistoryLimit int32 = 2) for clarity. - Include the field in the set compared by
robinDeploymentNeedsUpdateso an existing Deployment with the k8s default (10) is reconciled down to 2.
Related
- Same function as the probes (B) and securityContext/resources (C) features — coordinate edits to
buildDesiredRobinDeploymentto avoid conflicts.
- 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
-
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
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
InditexTech/redkey-operator#86 ·
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