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

Fechada Para iniciantes
#2,849 1 comentário 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Um pull request relacionado já foi integrado.

  • #2850 de @AmenB — integrado

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
82/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
kubernetes, python
Domínio
backend

Direção de pesquisa

Comece em ocp_resources/plan.py: copie como convertor_node_selector é aceito em __init__, armazenado e gravado em spec["convertorNodeSelector"] em to_dict(), depois adicione convertor_labels e convertor_affinity ao lado dele com suas chaves de spec em camelCase. Adicione entradas de docstring e casos em tests/test_plan.py que verifiquem que cada chave aparece quando definida e é omitida quando None. Está pronto quando os dois testes passam e a checklist da issue está atendida.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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
Linguagem predominante
Python
Estrelas
28
Forks
85
Merge médio
1d 3min
PRs com merge (30d)
30

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de RedHatQE/openshift-python-wrapper

Todas as issues de RedHatQE/openshift-python-wrapper

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.