Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

settings.py flaps between reconciles: needsMigrationSetting depends on map iteration order

Aperta Adatta ai principianti
#1,691 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 4 giorni

@fontaineajulien ci sta già lavorando.

Dal 5/10/2026.

  • #1692 di @fontaineajulien — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
72/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
go

Direzione di ricerca

Leggi controllers/repo_manager/secret.go, iniziando da needsMigrationSetting() e da come utilizza MigrationSettingsList(). Controlla i test correlati prima di apportare modifiche. Il lavoro è concluso quando settings.py generato è stabile tra le riconciliazioni e ogni impostazione impostata su true viene scritta.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

  1. Set redirect_to_object_storage: true and leave hide_guarded_distributions unset.
  2. Change anything on the CR to trigger a reconcile.
  3. 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.

Lingua principale
Go
Stelle
88
Fork
68
Merge medio
3g 3h
PR unite (30g)
1

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di pulp/pulp-operator

Tutte le issue di pulp/pulp-operator

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.