settings.py flaps between reconciles: needsMigrationSetting depends on map iteration order
@fontaineajulien ya está trabajando en esto.
Desde el 5/10/2026.
- #1692 de @fontaineajulien — abierto
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- go
- Área
- infrastructure
Línea de trabajo
Lee controllers/repo_manager/secret.go, empezando por needsMigrationSetting() y cómo utiliza MigrationSettingsList(). Revisa las pruebas relacionadas antes de hacer cambios. Se considera terminado cuando settings.py generado es estable entre reconciliaciones y se escribe cada ajuste establecido en true.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Version
Operator 1.3.0. The same code is on main.
Describe the bug
needsMigrationSetting() in controllers/repo_manager/secret.go builds part of settings.py by ranging over MigrationSettingsList(), which is a Go map, and it returns at the first setting that is false.
Go randomizes map iteration order. With redirect_to_object_storage: true and hide_guarded_distributions: false, REDIRECT_TO_OBJECT_STORAGE = True is written on some reconciles and missing on others. With both settings true, the two lines swap order.
So the <name>-server Secret changes between reconciles. The operator logs The Data from Secret pulp-server has been modified! Reconciling ... and Reprovisioning pulpcore pods to get the new settings ..., and rolls the api, content and worker Deployments. The rollout triggers more reconciles, each with roughly a 50% chance of flipping the Secret again, so the loop sustains itself. We saw it run for minutes after a single CR change, and once it ran for days, creating tens of thousands of ReplicaSets.
There is a second effect. Depending on the order, a true setting can be dropped from settings.py entirely, so REDIRECT_TO_OBJECT_STORAGE is sometimes not applied.
To Reproduce
- Set
redirect_to_object_storage: trueand leavehide_guarded_distributionsunset. - Change anything on the CR to trigger a reconcile.
- Watch the operator logs and
kubectl get rs.
Expected behavior
settings.py is identical on every reconcile, and each true setting is written.
Additional context
Fix: iterate over sorted keys, and continue instead of return on a false setting. PR to follow.
- Lenguaje dominante
- Go
- Estrellas
- 88
- Forks
- 69
- Merge medio
- 3 d 3 h
- PR fusionados (30 d)
- 1
Preparar el entorno
- 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 pulp/pulp-operator
-
Documentation for metadata signing (APT/RPM) removed but still relevantQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. AbiertoIssue Triage-Needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
pulp/pulp-operator#1644 ·
-
Feature Triage-Needed
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
pulp/pulp-operator#1697 · 2 reacciones ·
-
Use /livez/ for the API liveness probe and a cheaper readiness probePosiblemente ocupada @caiconkhicon la tomó hace 20 días. AbiertoFeature Triage-Needed
Dificultad 3/5 Medio día Aptitud para principiantes 62/100
pulp/pulp-operator#1696 · 1 comentario ·
-
Issue Triage-Needed
Dificultad 3/5 1-2 días Aptitud para principiantes 74/100
pulp/pulp-operator#1685 ·
-
Gateway API compatibilityAbiertoFeature Triage-Needed
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
pulp/pulp-operator#1682 ·
Todos los issues de pulp/pulp-operator
Issues similares
-
Project submission: BivyAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
slavakurilyak/awesome-ai-agents#880 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/openserverless#282 · 2 comentarios ·
-
Dokumentasjon på nais defaultsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
agent-butler-finding bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
jordansmall/spindrift#6161 ·
Los mantenedores suelen responder en 1 día