feat(plan): support convertorLabels and convertorAffinity in Plan resource

Geschlossen Anfängerfreundlich
#2,849 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Ein zugehöriger Pull Request wurde bereits gemerged.

  • #2850 von @AmenB — gemerged

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
82/100
Issue-Typ
Feature
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
kubernetes, python
Bereich
backend

Rechercherichtung

Beginne in ocp_resources/plan.py und kopiere, wie convertor_node_selector in __init__ übernommen, gespeichert und in to_dict() nach spec["convertorNodeSelector"] geschrieben wird. Ergänze dann convertor_labels und convertor_affinity daneben mit ihren camelCase-Spec-Schlüsseln. Füge Docstring-Einträge und Fälle in tests/test_plan.py hinzu, die prüfen, dass jeder Schlüssel erscheint, wenn er gesetzt ist, und fehlt, wenn er None ist. Fertig ist es, wenn beide Tests bestehen und die Checkliste im Issue erfüllt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Problem

The forklift Plan CRD supports spec.convertorLabels (map[string]string) and spec.convertorAffinity (standard Kubernetes affinity dict), but the Plan wrapper (ocp_resources/plan.py) does not expose them. Consumers (e.g. mtv-api-tests, issue RedHatQE/mtv-api-tests#813 for MTV-7085 regression coverage) need to set labels and preferred podAffinity on virt-v2v conversion pods.

Current state

  • convertor_node_selector → spec["convertorNodeSelector"] was added in #2819 — exact pattern to follow.
  • target_affinity → spec["targetAffinity"] already exists as affinity precedent.
  • No convertor_labels / convertor_affinity anywhere in ocp_resources/plan.py.

Proposed change

Mirror the convertor_node_selector pattern in ocp_resources/plan.py:

  1. __init__ params: convertor_labels: dict[str, str] | None = None, convertor_affinity: dict[str, Any] | None = None
  2. Attribute assignment in __init__
  3. to_dict(): if self.convertor_labels is not None: spec["convertorLabels"] = ... and same for convertorAffinity (next to convertorNodeSelector block, ~line 232)
  4. Docstring entries next to convertor_node_selector's
  5. Tests in tests/test_plan.py asserting spec keys emitted when set and omitted when None

Done

  • convertor_labels param maps to spec.convertorLabels in to_dict()
  • convertor_affinity param maps to spec.convertorAffinity in to_dict()
  • Docstrings updated
  • Tests cover both fields (set and None cases)
  • prek run passes
  • uv run --group tests pytest passes
Vorherrschende Sprache
Python
Sterne
28
Forks
85
Ø Merge
1 T. 3 Min.
Gemergte PRs (30 T.)
30

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus RedHatQE/openshift-python-wrapper

Alle Issues in RedHatQE/openshift-python-wrapper

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.